плагины

Плагин Дуэли (Simply Duels)

 Counter-Strike 1.6, Плагины  Comments Off on Плагин Дуэли (Simply Duels)
Jul 102013
 

Simply Duels

Авторы: Psycrow
Версия: 0.76

Плагин дуэли это простенькая система дуэлей наподобие TF2. С помощью команды /duel игрок может вызвать другого игрока на дуэль, в которой для победы потребуется убить оппонента заданное кваром раз. На взаимодействие с другими игроками дуэль не влияет.

Что входит в плагин:

    * Выводиться в чат любые действия, связанные с дуэлью
    * Присутствует звуковое сопровождение
    * Над дуэлянтами будет появляться спрайт, который будут видеть только они
    * Победа на дуэли будет денежно вознаграждаться
    * Игрок может выйти из дуэли, введя в чате **/unduel**

Замените в коде //#define AES_EXP на #define AES_EXP если хотите заменить странадртную денежную систему на опыт AES.

Cvars:

cv_duels_frags – кол-во убийств до победы на дуэли. (изначально “3”)
cv_duels_reward – денежная награда (опыт) за победу на дуэли. 0 – отключить. (изначально “6000”)
cv_duels_losing – денежное взыскание (опыт) за проигрыш на дуэли или выход из нее. 0 – отключить. (изначально “3000”)
cv_duels_compensation – компенсация за прерванную дуэль вероятному победителю. 0 – отключить. (изначально “3000”)
cv_duels_maxmoney – максимальное кол-во денег, который может иметь игрок. Если у вас нету специального плагина для этого, то оставить квар без изменения. (изначально “16000”)
cv_duels_sounds – вкл/выкл звуки. (изначально “1″)
cv_duels_sprite – размер спрайта над головой. 0.0 – отключает отображение (изначально “0.5″)
cv_duels_sprite_dist – расстояние спрайта до головы игрока (изначально “40.0″)

Динамические состояния (state)

 Counter-Strike 1.6, Guids  Comments Off on Динамические состояния (state)
May 152013
 

Случайно наткнулся на старенькую статью, но решил что она всё же достойна внимания.

Автор: joaquimandrade
Перевод и редактирование: DJ_WEST

Данная статья поможет Вам в работе с состояниями (state) в плагинах. С помощью состояний можно улучшить производительность плагина, к примеру, в таких ситуациях, когда вызов функции нужно делать один раз или если Вам необходимо включать/выключать forward’ы для каких-то событий.
Continue reading »

Как сделать меню с 10+ пунктами

 Counter-Strike 1.6, Guids  Comments Off on Как сделать меню с 10+ пунктами
May 132013
 

Автор: Alekkkk

Хотели бы вы сделать более 10 пунктов в меню на 1 странице, с возможностью выбора пункта без всяких биндов дополнительных клавиш?

Мы создадим меню с 9 пунктами, которые добавим с помощью menu_additem, а остальные пункты с помощью menu_addtext.
Для отлова нажатия 10+ пункта мы создадим задержку в 0.2 сек. (Cvar) в течение которой будем ожидать ещё нажатия.
Например, если сначала нажмём 2, затем 1, то это будет считаться как 21 пункт меню.
А если за 0.2 секунды не будет нажата ещё какая-то клавиша (1 в нашем примере), то будет выбран пункт меню 2.

Вот пример:

#include <amxmodx> 

new g_fButton[ 33 ] 
new g_sButton[ 33 ] 
new g_Task[ 33 ] 

new Float:g_fTime[ 33 ] 

new g_pWait, Float:WAIT 

public plugin_init()  
{ 
    register_plugin( "How to make more options in one page", "1.0", "eMinEm" ) 
     
    register_clcmd( "say /menu", "catch_buttons" ) 
     
    g_pWait = register_cvar( "menu_waittime", "0.2" )  
    WAIT = get_pcvar_float( g_pWait ) 
} 

public client_putinserver( id ) null_all( id ); 

public catch_buttons( id ) 
{ 
    if( g_Task[ id ] ) 
    { 
        if( g_fButton[ id ] != 0 ) set_buttons( id, get_gametime( ) ); 
        else null_all( id ); 
         
        show_menu( id, 0, "^n" ) 
        return PLUGIN_HANDLED 
    } 
    new menu = menu_create( "Menu", "catch_buttons_handler" ) 
     
        /*    First type of formatting the menu    */ 
    /* 
    menu_additem( menu, "Option1     \r10. \wOption 10     \r19. \wOption 19", "1", 0 ); 
    menu_additem( menu, "Option2     \r11. \wOption 11     \r20. \wOption 20", "2", 0 ); 
    menu_additem( menu, "Option3     \r12. \wOption 12     \r21. \wOption 21", "3", 0 ); 
    menu_additem( menu, "Option4     \r13. \wOption 13     \r22. \wOption 22", "4", 0 ); 
    menu_additem( menu, "Option5     \r14. \wOption 14     \r23. \wOption 23", "5", 0 ); 
    menu_additem( menu, "Option6     \r15. \wOption 15     \r24. \wOption 24", "6", 0 ); 
    menu_additem( menu, "Option7     \r16. \wOption 16", "7", 0 ); 
    menu_additem( menu, "Option8     \r17. \wOption 17", "8", 0 ); 
    menu_additem( menu, "Option9     \r18. \wOption 18", "9", 0 ); 
    */ 
     
        /*    Second type of formatting the menu    */ 
         
    menu_additem( menu, "Option1", "1" ); 
    menu_additem( menu, "Option1", "2" ); 
    menu_additem( menu, "Option1", "3" ); 
    menu_additem( menu, "Option1", "4" ); 
    menu_additem( menu, "Option1", "5" ); 
    menu_additem( menu, "Option1", "6" ); 
    menu_additem( menu, "Option1", "7" ); 
    menu_additem( menu, "Option1", "8" ); 
    menu_additem( menu, "Option1", "9" ); 
    menu_addtext( menu, "\r10. \wOption10", 0 ); 
    menu_addtext( menu, "\r11. \wOption11", 0 ); 
    menu_addtext( menu, "\r12. \wOption12", 0 ); 
    menu_addtext( menu, "\r13. \wOption13", 0 ); 
    menu_addtext( menu, "\r14. \wOption14", 0 ); 
    menu_addtext( menu, "\r15. \wOption15", 0 ); 
    menu_addtext( menu, "\r16. \wOption16", 0 ); 
    menu_addtext( menu, "\r17. \wOption17", 0 ); 
    menu_addtext( menu, "\r18. \wOption18", 0 ); 
    menu_addtext( menu, "\r19. \wOption19", 0 ); 
    menu_addtext( menu, "\r20. \wOption20", 0 ); 
    menu_addtext( menu, "\r21. \wOption21", 0 ); 
    menu_addtext( menu, "\r22. \wOption22", 0 ); 
    menu_addtext( menu, "\r23. \wOption23", 0 ); 
    menu_addtext( menu, "\r24. \wOption24", 0 ); 

    menu_addblank( menu, 0 ) 
    menu_additem( menu, "Exit", "0" );  
     
    menu_setprop( menu, MPROP_PERPAGE, 0 ); 
     
    menu_display( id, menu, 0 ); 
    return PLUGIN_HANDLED 
} 

public catch_buttons_handler( id, menu, item ) 
{ 
    new data[ 6 ], szName[ 64 ] 
    new access, callback; 
     
    menu_item_getinfo( menu, item, access, data,charsmax( data ), szName,charsmax( szName ), callback ); 
     
    new key = str_to_num( data ); 
    new Float:iTime = get_gametime( ) 
     
    if( task_exists( id ) ) remove_task( id );  
     
    g_fButton[ id ] < 0 ? ( g_fButton[ id ] = key ) : ( g_sButton[ id ] = key );  
    g_fTime[ id ] = iTime 
    set_buttons( id, iTime ) 
     
    menu_destroy( menu ) 
    return PLUGIN_HANDLED 
} 

set_buttons( id, Float:iTime ) 
{ 
    if( g_sButton[ id ] < 0 ) 
    { 
        if( iTime - g_fTime[ id ] <= WAIT ) 
        { 
            catch_buttons( id ); 
            g_Task[ id ] = 1 
            set_task( WAIT, "catch_buttons", id ) 
        } 
        else  
        { 
            exec_selected( id, g_fButton[ id ], -1 ) 
            null_all( id ) 
        } 
    } 
    else  
    { 
        exec_selected( id, g_fButton[ id ], g_sButton[ id ] ) 
        null_all( id ) 
    } 
} 

null_all( id ) 
{ 
    g_fButton[ id ] = -1 
    g_sButton[ id ] = -1 
    g_fTime[ id ] = 0.0 
    g_Task[ id ] = 0 
} 

exec_selected( id, fslot, sslot ) 
{ 
    new szChoice[ 3 ], iChoice 
     
    sslot < 0 ? formatex( szChoice, charsmax( szChoice ), "%d", fslot ) : formatex( szChoice, charsmax( szChoice ), "%d%d", fslot, sslot ); 
     
    iChoice = str_to_num( szChoice ) 
    switch( iChoice ) 
    { 
        case 1:     client_print( id, print_chat, "Selected item : %d", iChoice ); 
        case 2:     client_print( id, print_chat, "Selected item : %d", iChoice ); 
        case 3:     client_print( id, print_chat, "Selected item : %d", iChoice ); 
        case 4:     client_print( id, print_chat, "Selected item : %d", iChoice ); 
        case 5:     client_print( id, print_chat, "Selected item : %d", iChoice ); 
        case 6:     client_print( id, print_chat, "Selected item : %d", iChoice ); 
        case 7:     client_print( id, print_chat, "Selected item : %d", iChoice ); 
        case 8:     client_print( id, print_chat, "Selected item : %d", iChoice ); 
        case 9:     client_print( id, print_chat, "Selected item : %d", iChoice ); 
        case 10: client_print( id, print_chat, "Selected item : %d", iChoice ); 
        case 11: client_print( id, print_chat, "Selected item : %d", iChoice ); 
        case 12: client_print( id, print_chat, "Selected item : %d", iChoice ); 
        case 13: client_print( id, print_chat, "Selected item : %d", iChoice ); 
        case 14: client_print( id, print_chat, "Selected item : %d", iChoice ); 
        case 15: client_print( id, print_chat, "Selected item : %d", iChoice ); 
        case 16: client_print( id, print_chat, "Selected item : %d", iChoice ); 
        case 17: client_print( id, print_chat, "Selected item : %d", iChoice ); 
        case 18: client_print( id, print_chat, "Selected item : %d", iChoice ); 
        case 19: client_print( id, print_chat, "Selected item : %d", iChoice ); 
        case 20: client_print( id, print_chat, "Selected item : %d", iChoice ); 
        case 21: client_print( id, print_chat, "Selected item : %d", iChoice ); 
        case 22: client_print( id, print_chat, "Selected item : %d", iChoice ); 
        case 23: client_print( id, print_chat, "Selected item : %d", iChoice ); 
        case 24: client_print( id, print_chat, "Selected item : %d", iChoice ); 
         
        default:  client_print( id, print_center, "Item : %d does not exist", iChoice );  
    } 
}  

Прим. перевод: Мне очень не хотелось переводить комментарии, если очень хотите, то напишите об этом в комментах, я добавлю комментарии в код (тавтология 80 lvl)
Перевод: Polarhigh
Источник: https://forums.alliedmods.net/showthread.php?t=210686

Плагин Server Tasks

 Counter-Strike 1.6, Плагины  Comments Off on Плагин Server Tasks
May 082013
 

Автор: stupok
Версия: 1.3

Описание:

С помощью этого плагина, вы сможете выполнять различные команды на сервере в определённое время.
Также вы можете настроить конфиг, который будет запускаться ночью и днём.
Конфиги применяются после смены карты.
Continue reading »

Плагин Wall Text

 Counter-Strike 1.6, Плагины  Comments Off on Плагин Wall Text
May 072013
 

dedust0002j

Автор: stupok
Версия: 1.09

Описание:

Плагин позволяет рисовать сообщения на стенах. Ограничение – можно нарисовать только символы английского алфавита и цифры
Сообщения отрисовываются заново, когда игрок присоединятся на сервер или начинается новый раунд.
Continue reading »

Плагин HL Weapon Physics

 Counter-Strike 1.6, Плагины  Comments Off on Плагин HL Weapon Physics
May 062013
 

Автор: Turanga_Leela
Версия: v0.6 [23.07.2012]

Описание:

Добавляет физику в игру, что прибавит реалистичности на ваш сервер.
Поддерживаемые моды: Half-Life, CStrike1.6, CZero (протестированы на работоспособность) win & linux

Демонстрация:


Continue reading »

Feb 192013
 

Авторы: Psycrow
Версия: 1.1
Ресурсы: Psycrow, Nexon

Описание:
Плагин Wolverine Claws заменяет стандартный нож на всеми известные когти Росомахи. Адамантиевые лезвия можно вынуть или убрать обратно, нажав на кнопку “G” (Drop). Из бонусов можно отметить удвоенный урон от когтей и регенерацию здоровья (2 HP/сек.). Кроме моделей и звуков к ним добавлен спрайт, который будет отображаться за место ножа во время переключения на другое оружие.
Continue reading »

ScreenShots

 Counter-Strike 1.6, Плагины  Comments Off on ScreenShots
Dec 262012
 

Автор: Polarhigh
Версия: 1.2

Описание:
Сегодня нашёл в куче файлов старенький плагин для снятие скриншотов игроку, на скрине будет видна такая информация как ip, steam, дата создания скриншота, ник игрока. Скриншот так же будет сделан, если игрок за раунд сделает определенное количество убийств.

В логах (addons/amxmodx/logs/!screen_shot_admins_log.txt) записывается информация кто из администраторов, когда и кому сделал скрин, выглядит это так:
L 10/20/2012 – 15:13:47: Admin [Steam: STEAM_1:1:00727160; Name: trofian] has created a screenshot at 10/20/12 15:13:47; INFO: [Mapname] 35hp_2; [Steam Id] STEAM_1:1:00727160 (true steam); [IP] 5.121.105.177; [Playername] trofian

А вот так будет выглядеть скрин:
ScreenShots

Команды:
say /smenu – вызов меню.
Continue reading »