amx_money

3Be3Da

Пользователь
Регистрация
14 Авг 2017
Сообщения
131
Симпатии
3
Пол
Мужской
#1
Код:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <fun>
#include <cstrike>

#define PLUGIN "give_hp_player"
#define VERSION "1.0"
#define AUTHOR "3Be3Da"


public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    register_clcmd("amx_money", "get_money", ADMIN_RCON)
}
new g_isplayerHP[33]
public get_money(id)
{
    new menu = menu_create("Выдача \rденег", "give_money")
    menu_additem(menu, "\yВыдать деньги \r1000", "1")
    menu_additem(menu, "\yВыдать деньги \r3000", "2")
    menu_additem(menu, "\yВыдать деньги \r5000", "3")
    menu_additem(menu, "\yВыдать деньги \r10000", "4")
    menu_additem(menu, "\yВыдать деньги \r16000", "5")
    menu_additem(menu, "\yВыдать деньги \r25000", "6")
    
    menu_setprop(menu, MPROP_EXIT, "Выход")
    menu_display(id, menu, 0)
}
public give_money(id, menu, iItem)
{
    if(!is_user_connected(id))
    return;
    
    if(iItem == MENU_EXIT)
    return;
    
    g_isplayerHP[id] = iItem
    menu_player(id)
}
public menu_player(id)
{
    new menu = menu_create("\yКакому игроку дать?", "player_give")
    new sName[32], sItem[3]
    for(new iPlayer = 1; iPlayer < get_maxplayers(); iPlayer++)
    {
    if(!is_user_alive(iPlayer))
    continue;
    
    get_user_name(iPlayer, sName, 32)
    num_to_str(iPlayer, sItem, 3)
    menu_additem(menu, sName, sItem)
    }
    
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
    menu_display(id, menu, 0)
}
public player_give(id, menu, iItem)
{
    if(!is_user_connected(id))
    return;
    
    if(iItem == MENU_EXIT)
    return;
    iItem++;
    if(!is_user_alive(iItem))
    return;
    switch(g_isplayerHP[id])
    {
        case 1:
        {
            cs_set_user_money(iItem, cs_get_user_money(iItem) + 1000)
        }
        case 2:
        {
            cs_set_user_money(iItem, cs_get_user_money(iItem) + 3000)
        }
        case 3:
        {
            cs_set_user_money(iItem, cs_get_user_money(iItem) + 5000)
        }
        case 4:
        {
            cs_set_user_money(iItem, cs_get_user_money(iItem) + 10000)
        }
        case 5:
        {
            cs_set_user_money(iItem, cs_get_user_money(iItem) + 16000)
        }
        case 6:
        {
            cs_set_user_money(iItem, cs_get_user_money(iItem) + 25000)
        }
    }
}
Заместь того что-б выдать 3000 выдаёт 5000 и так далее вот код
12 Апр 2018
И другим игрокам не выдаётся только если на себя нажму
 

Mandar1n

Постоялец
Регистрация
13 Янв 2018
Сообщения
389
Симпатии
66
Пол
Мужской
#2
3Be3Da, переделал код
C++:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>

#if AMXX_VERSION_NUM < 183
#include <colorchat>
#endif   

#define PLUGIN "give_hp_player"
#define VERSION "1.0"
#define AUTHOR "3Be3Da"

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    register_clcmd("amx_money", "get_money", ADMIN_RCON)
}

new g_Money

public get_money(id)
{
    new menu = menu_create("\yМеню выдачи денег:", "give_money")
    menu_additem(menu, "Выдать \r1000$", "1")
    menu_additem(menu, "Выдать \r3000$", "2")
    menu_additem(menu, "Выдать \r5000$", "3")
    menu_additem(menu, "Выдать \r10000$", "4")
    menu_additem(menu, "Выдать \r16000$", "5")
    menu_additem(menu, "Выдать \r25000$", "6")
    
    menu_setprop(menu, MPROP_EXIT, "Закрыть")
    menu_display(id, menu, 0)
}

public give_money(id, menu, iItem)
{
    if(!is_user_connected(id))
    return;
    
    if(iItem == MENU_EXIT)
    return;
    
    switch(iItem)
    {
        case 0: g_Money = 1000
        case 1: g_Money = 3000
        case 2: g_Money = 5000
        case 3: g_Money = 10000
        case 4: g_Money = 16000
        case 5: g_Money = 25000
    }
    
    My_Menu(id)
}

public My_Menu(id)
{
    // Сперва необходимо создать переменную для меню, с которой мы будем взаимодействовать в дальнейшем
    new i_Menu = menu_create("\yМеню выбора игрока:\w", "menu_handler")

    // Необходимые переменные, которые понадобятся нам при выводе меню из игроков
    new s_Players[32], i_Num, i_Player

    // Переменные для хранения информации об игроках
    new s_Name[32], s_Player[10]

    // Получаем массив игроков
    get_players(s_Players, i_Num)

    // Цикл по всем игрокам
    for (new i; i < i_Num; i++)
    {
        // Сохраняем текущего игрока в i_Player
        i_Player = s_Players[i]
        // Получаем имя и ID игрока

        get_user_name(i_Player, s_Name, charsmax(s_Name))
        num_to_str(i_Player, s_Player, charsmax(s_Player))

        // Добавляем опцию по данному игроку
        menu_additem(i_Menu, s_Name, s_Player, 0)

    }

    // Мы сформировали меню из игроков, присутствующих на сервере, теперь выводим его
    menu_display(id, i_Menu, 0)
}
 
public menu_handler(id, menu, item)
{
    if (item == MENU_EXIT)
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    }

    new s_Data[6], s_Name[64], i_Access, i_Callback
    menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

    // Получаем ID игрока, который был выбран в меню
    new i_Player = str_to_num(s_Data)
    new nameID[32], namei_Player[32]
    get_user_name(id, nameID, 31)
    get_user_name(i_Player, namei_Player, 31)

    cs_set_user_money(i_Player, cs_get_user_money(i_Player) + g_Money)
    client_print_color(0, print_chat, "[^4Money^1] Игрок^4 %s ^1выдал^3 %d$ ^1игроку^4 %s", nameID, g_Money, namei_Player)
 
    menu_destroy(menu)
    return PLUGIN_HANDLED
 }
 

kapangaIII

Команда форума
Разработчик
Регистрация
31 Окт 2017
Сообщения
393
Симпатии
123
#3
Не переделывай больше ничего, логика - не твое.
 

Bitter

Пользователь
Регистрация
6 Апр 2018
Сообщения
36
Симпатии
1
#5
3Be3Da, переделал код
C++:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>

#if AMXX_VERSION_NUM < 183
#include <colorchat>
#endif  

#define PLUGIN "give_hp_player"
#define VERSION "1.0"
#define AUTHOR "3Be3Da"

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
   
    register_clcmd("amx_money", "get_money", ADMIN_RCON)
}

new g_Money

public get_money(id)
{
    new menu = menu_create("\yМеню выдачи денег:", "give_money")
    menu_additem(menu, "Выдать \r1000$", "1")
    menu_additem(menu, "Выдать \r3000$", "2")
    menu_additem(menu, "Выдать \r5000$", "3")
    menu_additem(menu, "Выдать \r10000$", "4")
    menu_additem(menu, "Выдать \r16000$", "5")
    menu_additem(menu, "Выдать \r25000$", "6")
   
    menu_setprop(menu, MPROP_EXIT, "Закрыть")
    menu_display(id, menu, 0)
}

public give_money(id, menu, iItem)
{
    if(!is_user_connected(id))
    return;
   
    if(iItem == MENU_EXIT)
    return;
   
    switch(iItem)
    {
        case 0: g_Money = 1000
        case 1: g_Money = 3000
        case 2: g_Money = 5000
        case 3: g_Money = 10000
        case 4: g_Money = 16000
        case 5: g_Money = 25000
    }
   
    My_Menu(id)
}

public My_Menu(id)
{
    // Сперва необходимо создать переменную для меню, с которой мы будем взаимодействовать в дальнейшем
    new i_Menu = menu_create("\yМеню выбора игрока:\w", "menu_handler")

    // Необходимые переменные, которые понадобятся нам при выводе меню из игроков
    new s_Players[32], i_Num, i_Player

    // Переменные для хранения информации об игроках
    new s_Name[32], s_Player[10]

    // Получаем массив игроков
    get_players(s_Players, i_Num)

    // Цикл по всем игрокам
    for (new i; i < i_Num; i++)
    {
        // Сохраняем текущего игрока в i_Player
        i_Player = s_Players[i]
        // Получаем имя и ID игрока

        get_user_name(i_Player, s_Name, charsmax(s_Name))
        num_to_str(i_Player, s_Player, charsmax(s_Player))

        // Добавляем опцию по данному игроку
        menu_additem(i_Menu, s_Name, s_Player, 0)

    }

    // Мы сформировали меню из игроков, присутствующих на сервере, теперь выводим его
    menu_display(id, i_Menu, 0)
}

public menu_handler(id, menu, item)
{
    if (item == MENU_EXIT)
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    }

    new s_Data[6], s_Name[64], i_Access, i_Callback
    menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

    // Получаем ID игрока, который был выбран в меню
    new i_Player = str_to_num(s_Data)
    new nameID[32], namei_Player[32]
    get_user_name(id, nameID, 31)
    get_user_name(i_Player, namei_Player, 31)

    cs_set_user_money(i_Player, cs_get_user_money(i_Player) + g_Money)
    client_print_color(0, print_chat, "[^4Money^1] Игрок^4 %s ^1выдал^3 %d$ ^1игроку^4 %s", nameID, g_Money, namei_Player)

    menu_destroy(menu)
    return PLUGIN_HANDLED
}
А зачем было делать amx1.8.3 многие все еще на 1.8.2
 

fantom

Пользователь
Регистрация
11 Июн 2017
Сообщения
172
Симпатии
85
Пол
Мужской
#6
А зачем было делать amx1.8.3 многие все еще на 1.8.2
И где тут только 1.8.3 только? Есьб же подключение колорчата если версия ниже. Да и по сути зачем сидеть на старом не поддерживаемом дерьме? Даже сам разработчик АМХХ написал то, что незачем его использовать
 

Bitter

Пользователь
Регистрация
6 Апр 2018
Сообщения
36
Симпатии
1
#7
И где тут только 1.8.3 только? Есьб же подключение колорчата если версия ниже. Да и по сути зачем сидеть на старом не поддерживаемом дерьме? Даже сам разработчик АМХХ написал то, что незачем его использовать
Потому что приват плагины не поддерживает 1.8.3 версию. Вот почему!
 

ifx

Пользователь
Регистрация
11 Фев 2018
Сообщения
149
Симпатии
52
#8
Bitter, поставьте 183-dev build, большая часть таких плагинов должна запуститься без проблем, если конечно там не совсем кривой код
по моему опыту только 2 из 20+ плагинов НЕ запустились именно на дев-билде 183
 

perfectblood0

Флудер
Команда форума
Администратор
Регистрация
29 Окт 2017
Сообщения
1.047
Симпатии
309
#9

fantom

Пользователь
Регистрация
11 Июн 2017
Сообщения
172
Симпатии
85
Пол
Мужской
#10
Потому что приват плагины не поддерживает 1.8.3 версию. Вот почему!
Так заказывайте далее пределку под 1.8.2 если вам нужно больше приватов. А скриптеры пусть не паряться о совместимости и спокойно себе пилят под 1.8,3-1.9.0 где есть некоторые фичи которые сильно упрощают жизнь
 

Bitter

Пользователь
Регистрация
6 Апр 2018
Сообщения
36
Симпатии
1
#11
Какие нахер приват плагины? lol
CSSB
12 Сен 2018
Так заказывайте далее пределку под 1.8.2 если вам нужно больше приватов. А скриптеры пусть не паряться о совместимости и спокойно себе пилят под 1.8,3-1.9.0 где есть некоторые фичи которые сильно упрощают жизнь
Да я уже сам переписал под 1.8.2 -_-