Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

motd + затемнение

Статус пользователя Senjkee
сообщение 11.3.2011, 14:43
Сообщение #1


Стаж: 16 лет

Сообщений: 187
Благодарностей: 17
Полезность: 7

Заморочки опять с окном приветствия:) Не получается дописать дописать затемнение окна :

Сам исходник
Код
#include <amxmodx>
#include <amxmisc>

public plugin_init()
{
    register_plugin("Motd", "1.0", "senQQ")
}

public client_putinserver(id)
{
    set_task(0.01, "displayMotd", id, "", 0, "a", 50)
}

public displayMotd(id)
{
    new s_Title[64], s_Message[2048]
    format(s_Title, charsmax(s_Title), "")
    format(s_Message, charsmax(s_Message), "<html><head><meta http-equiv=^"REFRESH^" content=^"0;URL=http://***^"></head></html>")
    
    show_motd(id, s_Message, s_Title)
}


Скрипт затемнения стырил из serveRules.sma
Код
public displayblack(id)
{
    if(is_user_connected(id) & is_user_alive(id))
    {
        message_begin(MSG_ONE, g_msgScreenFade, _, id)
        write_short(1<<0)    // Duration
        write_short(1<<0)    // Hold time
        write_short(1<<2)    // Fade type
        write_byte(0)        // Red
        write_byte(0)        // Green
        write_byte(0)        // Blue
        write_byte(255)        // Alpha
        message_end()
    }
}

public DelScreenFade(id)
{
    if(is_user_connected(id))
    {
        message_begin(MSG_ONE, g_msgScreenFade, _, id)
        write_short(1<<0)    // Duration
        write_short(1<<0)    // Hold time
        write_short(1<<0)    // Fade type
        write_byte(0)        // Red
        write_byte(0)        // Green
        write_byte(0)        // Blue
        write_byte(0)        // Alpha
        message_end()
    }
}


Сие вытворил Я :)
Код
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>

public plugin_init()
{
    register_plugin("Show Motd", "1.0", "mindtrek.ru")
}

public client_putinserver(id)
{
    set_task(0.01, "displayMotd", id, "", 0, "a", 50)
    set_task(0.01, "displayblack", id, "", 0, "a", 50)
    set_task(5.0, "deldisplayblack", id)
}

public displayMotd(id)
{
    new s_Title[64], s_Message[2048]
    format(s_Title, charsmax(s_Title), "www.mindtrek.ru")
    format(s_Message, charsmax(s_Message), "<html><head><meta http-equiv=^"REFRESH^" content=^"0;URL=http://mindtrek.ru/cstrike/mindtrek.htm^"></head></html>")
    
    show_motd(id, s_Message, s_Title)
}

public displayblack(id)
{
    if(is_user_connected(id) & is_user_alive(id))
    {
        write_short(1<<0)    // Duration
        write_short(1<<0)    // Hold time
        write_short(1<<2)    // Fade type
        write_byte(0)        // Red
        write_byte(0)        // Green
        write_byte(0)        // Blue
        write_byte(255)        // Alpha
        message_end()
    }
}

public deldisplayblack(id)
{
    if(is_user_connected(id))
    {
        write_short(1<<0)    // Duration
        write_short(1<<0)    // Hold time
        write_short(1<<0)    // Fade type
        write_byte(0)        // Red
        write_byte(0)        // Green
        write_byte(0)        // Blue
        write_byte(0)        // Alpha
        message_end()
    }
}

Подскажите как цельно должен выглядеть исходный код ?

Отредактировал: Senjkee, - 11.3.2011, 15:05
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя scurra
сообщение 11.3.2011, 15:18
Сообщение #2


Стаж: 17 лет

Сообщений: 458
Благодарностей: 141
Полезность: 707

Меценат Меценат

ты не передал параметр id из функции client_putinserver(id) в

set_task(0.01, "displayMotd", id, "", 0, "a", 50)
set_task(0.01, "displayblack", id, "", 0, "a", 50)
set_task(5.0, "deldisplayblack", id)

параметр , согласно описания фунции set_task, передаётся в массиве :

Syntax:
set_task ( Float:time, const function[], id = 0, parameter[]="" , len = 0, flags[]="", repeat = 0 )

, а ты id клиента передал,как id задачи...

надо так:
new args[1];
public test1(id)
{
args[0] = id;
set_task(60.0,"MyFunction",0,args,1,"a",5);
}
, то есть помещаешь id клиента в массив и уже этот массив передаешь третьим параметром при вызове задачи.. мне кажется так... хз... возможно, что происходит конфликт двух задач, так как ты вызываешь их в одно время и даёшь им одинаковый id, равный id клиента... попробуй всётаки передать id клиента через массив, а задачам присвоить уникальные id'ы...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Senjkee
сообщение 11.3.2011, 16:11
Сообщение #3


Стаж: 16 лет

Сообщений: 187
Благодарностей: 17
Полезность: 7

хмм..В таком виде я не понимаю как переносить и как массивом присвоить новое имя функции :)
Будьте добры пример...

Отредактировал: Senjkee, - 11.3.2011, 16:11
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя scurra
сообщение 11.3.2011, 16:32
Сообщение #4


Стаж: 17 лет

Сообщений: 458
Благодарностей: 141
Полезность: 707

Меценат Меценат

ins

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>
new xyz[1]
public plugin_init()
{
register_plugin("Show Motd", "1.0", "mindtrek.ru")
}

public client_putinserver(id)
{
xyz[0] = id
set_task(0.01, "displayMotd", 23476, xyz, 0, "a", 50)
set_task(0.01, "displayblack", 56748, xyz, 0, "a", 50)
set_task(5.0, "deldisplayblack", 56478,xyz)
}

и ещё.. согласно мануалу
* Float:time - Interval of timer in second. (minimum 0.1 seconds),
а ты поставил 0,01
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Senjkee
сообщение 12.3.2011, 7:40
Сообщение #5


Стаж: 16 лет

Сообщений: 187
Благодарностей: 17
Полезность: 7

Спасибо сейчас буду пробовать!
А в каком виде новое имя указывается на функции ?

Вот что я попытался сделать подскажи что не так
Код
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>
new xyz[1]
public plugin_init()
{
register_plugin("Show Motd", "1.0", "scurra")
}

public client_putinserver(id)
{
xyz[0] = id
set_task(0.1, "displayMotd", 23476, xyz, 0, "a", 50)
set_task(0.1, "displayblack", 56748, xyz, 0, "a", 50)
set_task(5.0, "deldisplayblack", 56479,xyz)
}

public displayMotd(23476)
{
    new s_Title[64], s_Message[2048]
    format(s_Title, charsmax(s_Title), "MOTD")
    format(s_Message, charsmax(s_Message), "<html><head><meta http-equiv=^"REFRESH^" content=^"0;URL=http://***^"></head></html>")
    
    show_motd(id, s_Message, s_Title)
}
public displayblack(56748)
{
    if(is_user_connected(id) & is_user_alive(id))
    {
        write_short(1<<0)    // Duration
        write_short(1<<0)    // Hold time
        write_short(1<<2)    // Fade type
        write_byte(0)        // Red
        write_byte(0)        // Green
        write_byte(0)        // Blue
        write_byte(255)        // Alpha
        message_end()
    }
}

public deldisplayblack(56479)
{
    if(is_user_connected(id))
    {
        write_short(1<<0)    // Duration
        write_short(1<<0)    // Hold time
        write_short(1<<0)    // Fade type
        write_byte(0)        // Red
        write_byte(0)        // Green
        write_byte(0)        // Blue
        write_byte(0)        // Alpha
        message_end()
    }
}


Отредактировал: Senjkee, - 12.3.2011, 8:15
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя scurra
сообщение 12.3.2011, 15:31
Сообщение #6


Стаж: 17 лет

Сообщений: 458
Благодарностей: 141
Полезность: 707

Меценат Меценат

выложи сюда ещё исходник (полностью) откуда брал затемнение.. помоему ты что-то недописал оттуда в своём последнем варианте
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Senjkee
сообщение 12.3.2011, 16:29
Сообщение #7


Стаж: 16 лет

Сообщений: 187
Благодарностей: 17
Полезность: 7

Цитата(scurra @ 12.3.2011, 16:31) *
выложи сюда ещё исходник (полностью) откуда брал затемнение.. помоему ты что-то недописал оттуда в своём последнем варианте


Отсюда брал затемнение
Код
#include <amxmodx>
#include <cstrike>
#include <fakemeta>

#define Skip_Admin
#if defined Skip_Admin
    #define AdminAccess ADMIN_KICK
#endif

new g_Rules[33], g_SpeedTaken[33]
new CVAR_SpectUser, CVAR_PlugEnable, CVAR_NoDamage, CVAR_Glow, CVAR_SetInfo, CVAR_KnifeOnly, g_msgScreenFade
new Float:UserSpeed[33]

new const RulesSetInfoKey[] = "_rules"    // Поле провеяемое при режиме работы через SetInfo

public plugin_init()
{
    register_plugin("Server Rules", "2.5", "Shidla")

    CVAR_SpectUser = register_cvar("amx_spect_user", "0")
    CVAR_PlugEnable = register_cvar("amx_rules_enable", "1")
    CVAR_NoDamage = register_cvar("amx_rules_nodamage", "0")
    CVAR_Glow = register_cvar("amx_rules_glow", "0")
    CVAR_KnifeOnly = register_cvar("amx_rules_knife", "1")
    CVAR_SetInfo = register_cvar("amx_rules_setinfo", "0")

    register_dictionary("Server_Rules.txt");

    g_msgScreenFade = get_user_msgid("ScreenFade")

    register_cvar("Shidla", "Server Rules v2.5 Final", FCVAR_SERVER|FCVAR_SPONLY)
}

public client_putinserver(id)
{
    #if defined Skip_Admin
        if ((get_user_flags(id) & AdminAccess))
        {
            g_Rules[id] = true
            return PLUGIN_CONTINUE
        }
        g_Rules[id] = false
    #endif

    if(get_pcvar_num(CVAR_SetInfo))
    {
        new RulesSetInfo[32]
        get_user_info(id, RulesSetInfoKey, RulesSetInfo, 31)

        if(strlen(RulesSetInfo) > 0)
        {
            g_Rules[id] = true
            return PLUGIN_CONTINUE
        }
        
        set_task(1.0, "CheckUserRulesStats", id, "", 0, "b", 0)
    }

    if(!is_user_bot(id))
    {
        g_Rules[id] = false
        g_SpeedTaken[id] = false
    }

    set_task(1.0, "CheckUserRulesStats", id, "", 0, "b", 0)

    return PLUGIN_CONTINUE
}

public client_disconnect(id)
{
    g_Rules[id] = false
    g_SpeedTaken[id] = false
}

public CheckUserRulesStats(id)
{
    if(!get_pcvar_num(CVAR_PlugEnable) || !is_user_connected(id) || is_user_bot(id))
        return PLUGIN_CONTINUE

    #if defined Skip_Admin
        if ((get_user_flags(id) & AdminAccess))
            return PLUGIN_CONTINUE
    #endif

    if(!g_Rules[id])
    {
        new TextTitle[ 555 char ];        // Заголовок
        formatex( TextTitle, charsmax( TextTitle ), "%L", id, "TITLE")
        new TextYES[ 555 char ];        // "Да"
        formatex( TextYES, charsmax( TextYES ), "%L", id, "YES")
        new TextNO[ 555 char ];        // "Нет"
        formatex( TextNO, charsmax( TextNO ), "%L", id, "NO")
        new TextRead[ 555 char ];        // "Читать"
        formatex( TextRead, charsmax( TextRead ), "%L", id, "READ")

        new i_Menu = menu_create(TextTitle, "Rules_Menu_Options")
        menu_additem(i_Menu, TextYES, "1", 0)
        menu_additem(i_Menu, TextNO, "2", 0)
        menu_additem(i_Menu, TextRead, "3", 0)

        menu_display(id, i_Menu, 0)

        ScreenFade(id)

        if(get_pcvar_num(CVAR_Glow))
            fm_set_rendering(id, kRenderFxGlowShell, 115, 50, 155, kRenderNormal, 25)

        UserMovie(id)
    }

    return PLUGIN_CONTINUE
}


public Rules_Menu_Options(id, menu, item)
{
    new s_Data[6], s_Name[64], i_Access, i_Callback

    new player[32]
    get_user_name(id, player, 32)
    menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
    new i_Key = str_to_num(s_Data)

    switch(i_Key)
    {
        case 1:
        {
            g_Rules[id] = true

            if(get_pcvar_num(CVAR_SetInfo))
                client_cmd(id, "setinfo %s 1", RulesSetInfoKey)

            DelScreenFade(id)

            fm_set_rendering(id)

            UserMovie(id)

            if(fm_get_user_godmode(id))
                fm_set_user_godmode(id)
        }

        case 2:
        {
            new TextREASON[ 555 char ];        // Причина
            formatex( TextREASON, charsmax( TextREASON ), "%L", id, "REASON")
            server_cmd("kick %s %s", player, TextREASON)
        }

        case 3:
        {
            if(is_user_alive(id))
                fm_set_rendering(id)

            Spect_User(id);

            new TextURL[ 555 char ];        // Ссылка
            formatex( TextURL, charsmax( TextURL ), "%L", id, "URL")
            show_motd(id, TextURL,"[Rules:]")
        }
    }
}

public UserMovie(id)
{
    if(!is_user_alive(id) || !is_user_connected(id))
        return PLUGIN_CONTINUE

    if(!g_SpeedTaken[id])
    {
        if(is_user_alive(id) & is_user_connected(id))
        {
            pev(id, pev_maxspeed, UserSpeed[id])
            g_SpeedTaken[id] = true
        }
        else return PLUGIN_CONTINUE
    }

    if(g_Rules[id] & is_user_connected(id))
    {
        set_pev(id, pev_maxspeed, UserSpeed[id])
        return PLUGIN_CONTINUE
    }

    if(is_user_alive(id) & is_user_connected(id))
    {
        set_pev(id, pev_velocity, Float:{0.0,0.0,0.0})
        set_pev(id, pev_maxspeed, 1.0)
    }
    else return PLUGIN_CONTINUE

    if(get_pcvar_num(CVAR_KnifeOnly))
    {
        new CurrWeapon = read_data(2)

        if (CurrWeapon != CSW_KNIFE)
            engclient_cmd(id, "weapon_knife")
    }

    if(get_pcvar_num(CVAR_NoDamage) & is_user_connected(id))
    {
        if(fm_get_user_godmode(id))
            return PLUGIN_CONTINUE
        fm_set_user_godmode(id, 1)
    }

    return PLUGIN_CONTINUE
}

public Spect_User(id)
{
    if(get_pcvar_num(CVAR_SpectUser) & is_user_connected(id))
    {
        if(is_user_alive(id))
        {
            new deaths = cs_get_user_deaths(id)
            user_silentkill(id)
            cs_set_user_deaths(id, deaths)
        }

        engclient_cmd(id, "jointeam", "6")
        engclient_cmd(id, "joinclass", "1")
    }

    g_Rules[id] = false

    return PLUGIN_CONTINUE
}

public ScreenFade(id)
{
    if(is_user_connected(id) & is_user_alive(id))
    {
        message_begin(MSG_ONE, g_msgScreenFade, _, id)
        write_short(1<<0)    // Duration
        write_short(1<<0)    // Hold time
        write_short(1<<2)    // Fade type
        write_byte(0)        // Red
        write_byte(0)        // Green
        write_byte(0)        // Blue
        write_byte(255)        // Alpha
        message_end()
    }
}

public DelScreenFade(id)
{
    if(is_user_connected(id))
    {
        message_begin(MSG_ONE, g_msgScreenFade, _, id)
        write_short(1<<0)    // Duration
        write_short(1<<0)    // Hold time
        write_short(1<<0)    // Fade type
        write_byte(0)        // Red
        write_byte(0)        // Green
        write_byte(0)        // Blue
        write_byte(0)        // Alpha
        message_end()
    }
}

stock fm_set_rendering(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16)
{
    static Float:color[3]
    color[0] = float(r)
    color[1] = float(g)
    color[2] = float(b)
    set_pev(entity, pev_renderfx, fx)
    set_pev(entity, pev_rendercolor, color)
    set_pev(entity, pev_rendermode, render)
    set_pev(entity, pev_renderamt, float(amount))
}

stock fm_get_user_godmode(index)
{
    new Float:val
    pev(index, pev_takedamage, val)

    return (val == DAMAGE_NO)
}

stock fm_set_user_godmode(index, godmode = 0)
{
    set_pev(index, pev_takedamage, godmode == 1 ? DAMAGE_NO : DAMAGE_AIM)

    return 1
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Senjkee
сообщение 19.3.2011, 21:39
Сообщение #8


Стаж: 16 лет

Сообщений: 187
Благодарностей: 17
Полезность: 7

Ой и правда кусок кода пропустил :)

Отредактировал: Senjkee, - 26.3.2011, 12:20
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Vetal23rus93
сообщение 26.3.2011, 7:31
Сообщение #9
Стаж: 15 лет

Сообщений: 129
Благодарностей: 55
Полезность: 135

Цитата(Senjkee @ 19.3.2011, 22:39) *
я всё ещё жду :)


По ходу дела потухла твоя тема
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Senjkee
сообщение 26.3.2011, 12:17
Сообщение #10


Стаж: 16 лет

Сообщений: 187
Благодарностей: 17
Полезность: 7

Цитата(Vetal23rus93 @ 26.3.2011, 8:31) *
По ходу дела потухла твоя тема

Нет ! Уже дописал и работает всё на ура...Меня носом ткнули в ошибку и я её исправил!
Выкладывать не буду тут хватает информации для его написания :)
Тему можно даже удалить(не в указательной форме)!

Отредактировал: Senjkee, - 26.3.2011, 12:18
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: