Мониторинг и Раскрутка серверов CS 1.6

Делаем определенную функцию только для определенного игрока

Делаем определенную функцию только для определенного игрока для CS 1.6

Делаем функции к которым имеет доступ только ваш ник. Лично по моему мнение этодовольно таки полезно. Можно делать всякие сюрпризы и т.д.


И так. Для начала я хочу сказать что в тексте могут быть ошибки или что-то не досказано (я не прям скриптер, но что-то зная и что-то могу)

Начнем мы пожалуй с простого примера. Например сделать только себе двойной прыжок.
#include 
#include 
#include 

new jumpnum[33] = 0 new bool:dojump[33] = false

public plugin_init() {     register_plugin("MultiJump","1.1","Dedik")     register_cvar("amx_maxjumps1","1") }

public client_putinserver(id) {     jumpnum[id] = 0     dojump[id] = false }

public client_disconnect(id) {     jumpnum[id] = 0     dojump[id] = false }

public client_PreThink(id) {     if(!is_user_alive(id)) return PLUGIN_CONTINUE     new nbut = get_user_button(id)     new obut = get_user_oldbutton(id)     if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))     {         if(jumpnum[id] < get_cvar_num("amx_maxjumps1"))         {             dojump[id] = true             jumpnum[id]++             return PLUGIN_CONTINUE         }     }     if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))     {         jumpnum[id] = 0         return PLUGIN_CONTINUE     }     return PLUGIN_CONTINUE }

public client_PostThink(id) {     if(!is_user_alive(id)) return PLUGIN_CONTINUE     if(dojump[id] == true)     {         new Float:velocity[3]             entity_get_vector(id,EV_VEC_velocity,velocity)         velocity[2] = random_float(265.0,285.0)         entity_set_vector(id,EV_VEC_velocity,velocity)         dojump[id] = false         return PLUGIN_CONTINUE     }     return PLUGIN_CONTINUE }    


Добавим туда new name[32] и в функции client_PreThink узнаем все ники на сервере
#include 

include

include

new jumpnum[33] = 0 new bool:dojump[33] = false

new name[32]

public plugin_init() {     register_plugin("MultiJump","1.1","Dedik")     register_cvar("amx_maxjumps1","1") }

public client_putinserver(id) {     jumpnum[id] = 0     dojump[id] = false }

public client_disconnect(id) {     jumpnum[id] = 0     dojump[id] = false }

public client_PreThink(id) {     get_user_name(id, name, 31)          if(!is_user_alive(id)) return PLUGIN_CONTINUE     new nbut = get_user_button(id)     new obut = get_user_oldbutton(id)     if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))     {         if(jumpnum[id] < get_cvar_num("amx_maxjumps1"))         {             dojump[id] = true             jumpnum[id]++             return PLUGIN_CONTINUE         }     }     if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))     {         jumpnum[id] = 0         return PLUGIN_CONTINUE     }     return PLUGIN_CONTINUE }

public client_PostThink(id) {     if(!is_user_alive(id)) return PLUGIN_CONTINUE     if(dojump[id] == true)     {         new Float:velocity[3]             entity_get_vector(id,EV_VEC_velocity,velocity)         velocity[2] = random_float(265.0,285.0)         entity_set_vector(id,EV_VEC_velocity,velocity)         dojump[id] = false         return PLUGIN_CONTINUE     }     return PLUGIN_CONTINUE }    


Далее в проверке if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP)) добавляем свой ник
И получаем:
#include 

include

include

new jumpnum[33] = 0 new bool:dojump[33] = false

new name[32]

public plugin_init() {     register_plugin("MultiJump","1.1","Dedik")     register_cvar("amx_maxjumps1","1") }

public client_putinserver(id) {     jumpnum[id] = 0     dojump[id] = false }

public client_disconnect(id) {     jumpnum[id] = 0     dojump[id] = false }

public client_PreThink(id) {     get_user_name(id, name, 31)          if(!is_user_alive(id)) return PLUGIN_CONTINUE     new nbut = get_user_button(id)     new obut = get_user_oldbutton(id)     if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP) && (equali(name, "123321")))     {         if(jumpnum[id] < get_cvar_num("amx_maxjumps1"))         {             dojump[id] = true             jumpnum[id]++             return PLUGIN_CONTINUE         }     }     if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))     {         jumpnum[id] = 0         return PLUGIN_CONTINUE     }     return PLUGIN_CONTINUE }

public client_PostThink(id) {     if(!is_user_alive(id)) return PLUGIN_CONTINUE     if(dojump[id] == true)     {         new Float:velocity[3]             entity_get_vector(id,EV_VEC_velocity,velocity)         velocity[2] = random_float(265.0,285.0)         entity_set_vector(id,EV_VEC_velocity,velocity)         dojump[id] = false         return PLUGIN_CONTINUE     }     return PLUGIN_CONTINUE }    

в кавычках писать свой ник
например: "123321" (ну как показано выше)

Таким вот образом мы сделали так чтобы эта функция работала на определенный ник и при этом не надо будет использовать для этого флаги доступа
ИЛИ
Мы можем сделать так чтобы у всех работала данная функция КРОМЕ игрока с этим ником
Поставив всего лишь ! перед (equali(name, "123321")
Получится как-то так !(equali(name, "123321")

Это был простой способ ограничить функцию по нику.
А теперь сделаем свой плагин только чуточку по сложнее.

Представим что у нас есть друг-задрот кс 1.6 и у него скоро ДР и вы хотите его оригинально поздравить на своем сервере ИЛИ просто выделить его из толпы игроков.

Ну типо приступим...
Для начала это приветствие и представление. Типо когда этот ваш друг зашел на сервер, то тут же появляется dhud сообщение всем (ну типо "НАРООООД,СЕГОДНЯ У НАШЕГО ВИНИПУХА ДЕНЬ РОЖДЕНИЯ! Поздравьте его как следует!")
Ну можно и еще какую нибудь музычку добавить и т.д.
#include 

include

new name[32]

public plugin_init() {     register_plugin("днюха у винипуха", "1.0","XZ")     register_event("ResetHUD", "resetModel", "b") }

public plugin_precache() {     precache_generic("sound/dr_vinipyha.mp3")     precache_model("models/player/dr/dr.mdl") }

public client_putinserver(id) {     get_user_name(id, name, 31)          if(equali(name, "Vinipyx"))     {         set_dhudmessage(255, 0, 0, 0.45, 0.1, 1, 5.0, 8.0, 0.3, 0.5)         show_dhudmessage(0, "НАРООООД,СЕГОДНЯ У НАШЕГО ВИНИПУХА^n ДЕНЬ РОЖДЕНИЯ! Поздравьте его как следует!")         client_cmd(0, "mp3 play sound/dr_vinipyha.mp3")         color_print(id, "!t[!gBIO!t] С ДР !g%s!!!", name)         new flags = read_flags("abcdefghijklmnopqrstu")         set_user_flags(id, flags)     } }

public resetModel(id, level, cid) {     if(!is_user_alive(id))     return PLUGIN_HANDLED

    if(is_user_alive(id) && equali(name, "Vinipyx"))     {         cs_set_user_model(id, "dr")     }     else     {         cs_reset_user_model(id)     }     return PLUGIN_CONTINUE }

stock color_print(const id, const input[], any:...) { new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);

    replace_all(msg, 190, "!g", "^x04"); // Green Color                 
    replace_all(msg, 190, "!n", "^x01"); // Default Color
    replace_all(msg, 190, "!t", "^x03"); // Team Color

    if (id) players[0] = id; else get_players(players, count, "ch");
    {
        for (new i = 0; i < count; i++)
        {                                           
            if (is_user_connected(players[i]))
            {                                           
                message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
                write_byte(players[i]);    
                write_string(msg);
                message_end();
            }
        }
    }
}
Не знаю есть ли там ошибки... ну думаю должно работать =)
Я думаю винипуху понравилось такое поздравление (знаете... вроде мелочь а приятно будет =) )

Ну а более серьезные задачи вы сами себе придумаете!

Думаю я расписал все нормально и вопросов быть не должно. По коду все и так будет ясно.
Что ж, думаю вам это статья это пригодится =) если хотите что-то похожее, то пишите в коментах, ну и конечно же ставьте лайки =)


Опубликовал
Сборки CS 1.6
Рейтинг
Просмотры
218 раз.
Скачан
0 раз.

Отзывы