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

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

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

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

Настрока плагина VIP

Статус пользователя FDGod
сообщение 29.3.2016, 0:06
Сообщение #1


Стаж: 12 лет

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

Приветствую. Есть Вип-плагин в котором есть возможность подарить гравитацию или возродить кого-либо (огр. кол-во раз). Но при открытии меню, там по нулям.

Помогите исправить это и сделать 3 для обеих пунктов. Спасибо

Исходник
Код:
#include < amxmodx >
#include < amxmisc >
#include < cstrike >
#include < hamsandwich >
#include < fun >

#define PLUGIN "Vip Menu"
#define VERSION "1.2"
#define AUTHOR "OverGame"

#pragma tabsize 0

#define V_LVL ADMIN_LEVEL_H

new const gPrefix[] = "!g[VIP]!y"

enum _:PlData
{
gGravity, gSpawn, gType
};

new UserData[33][PlData];

new gPrice, MaxPlayers, g_Name[32], g_Temp[10], Players[32], Num, Player

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /vip", "open_menu")
register_clcmd("say_team /vip", "open_menu")
register_logevent("StartRound", 2, "1=Round_Start")
gPrice = register_cvar("price_vip", "100")

MaxPlayers = get_maxplayers()

return PLUGIN_CONTINUE;
}

public StartRound()
{
for(new id = 0; id <= MaxPlayers; id++)
{
if(!is_user_bot(id) && is_user_connected(id))
{
UserData[id][gSpawn] = 2
UserData[id][gGravity] = 2
}
}

return PLUGIN_CONTINUE;
}

public open_menu(id)
{
static s_MenuItem[255], s_Item6[168], s_Item7[168], s_Vip[168]

if ( get_user_flags(id) & V_LVL )
{
formatex(s_Vip, charsmax(s_Vip), "\dТы : \yВип\d | Цена вип : \y%d \dруб.", get_pcvar_num(gPrice))
} else {
formatex(s_Vip, charsmax(s_Vip), "\dТы : \yИгрок\d | Цена вип : \y%d \dруб.", get_pcvar_num(gPrice))
}
formatex(s_MenuItem, charsmax(s_MenuItem), "\rВип меню^n%s", s_Vip)

formatex(s_Item6, charsmax(s_Item6), "\yПодарить гравитацию \d(%d)", UserData[id][gGravity])
formatex(s_Item7, charsmax(s_Item7), "\yВозродить \d(%d)", UserData[id][gSpawn])

new menu = menu_create(s_MenuItem, "op_menu_hand" )

if ( get_user_flags(id) & V_LVL )
{

menu_additem(menu, "\yГравитация", "1")
menu_additem(menu, "\yСкорость", "2")
menu_additem(menu, "\yЖизни \d(100) \yи броня \d(100)", "3")
menu_additem(menu, "\yДеньги \d(5000)", "4")
menu_additem(menu, "\yВозродиться^n", "5")

menu_additem(menu, s_Item6, "6")
menu_additem(menu, s_Item7, "7")

} else {

menu_additem(menu, "\dГравитация", "1")
menu_additem(menu, "\dСкорость", "2")
menu_additem(menu, "\dЖизни (100) и броня (100)", "3")
menu_additem(menu, "\dДеньги (5000)", "4")
menu_additem(menu, "\dВозродиться^n", "5")

menu_additem(menu, "\dПодарить гравитацию (2)", "6")
menu_additem(menu, "\dВозродить (2)", "7")

}

menu_setprop(menu, MPROP_EXITNAME, "Выход")

menu_display(id,menu,0)
return PLUGIN_HANDLED
}

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

new data[6], iName[64], access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)

new key = str_to_num(data)

switch(key)
{
case 1: {
if ( !(get_user_flags(id) & V_LVL) ) return PLUGIN_HANDLED;

set_user_gravity(id, 0.5)
ChatColor(id, "%s Вы взяли гравитацию.", gPrefix)
}
case 2: {
if ( !(get_user_flags(id) & V_LVL) ) return PLUGIN_HANDLED;

set_user_maxspeed(id, 5000.0)
ChatColor(id, "%s Вы взяли скорость.", gPrefix)
}
case 3: {
if ( !(get_user_flags(id) & V_LVL) ) return PLUGIN_HANDLED;

set_user_health(id, 100)
set_user_armor(id, 100)
ChatColor(id, "%s Вы взяли !t100 HP !yи !t100 !yБрони.", gPrefix)
}
case 4: {
if ( !(get_user_flags(id) & V_LVL) ) return PLUGIN_HANDLED;

cs_set_user_money(id, cs_get_user_money(id) + 5000)
ChatColor(id, "%s Вы взяли деньги!", gPrefix)
}
case 5: {
if ( !(get_user_flags(id) & V_LVL) ) return PLUGIN_HANDLED;

ExecuteHam(Ham_CS_RoundRespawn, id)
ChatColor(id, "%s Вы возродились!", gPrefix)
}
case 6: {
if ( !(get_user_flags(id) & V_LVL) ) return PLUGIN_HANDLED;

if ( UserData[id][gGravity] == 0 ) return PLUGIN_HANDLED;

UserData[id][gType] = 1
players_menu(id)
}
case 7: {
if ( !(get_user_flags(id) & V_LVL) ) return PLUGIN_HANDLED;

if ( UserData[id][gSpawn] == 0 ) return PLUGIN_HANDLED;

UserData[id][gType] = 2
players_menu(id)
}
}
return PLUGIN_HANDLED
}

public players_menu(id)
{
new menu = menu_create("\rВип меню^n\yВыберите игрока", "pm_hand")

get_players(Players, Num, "ch")

for(new i; i< Num; i++)
{
Player = Players[i]

get_user_name(Player, g_Name, charsmax(g_Name));
num_to_str(Player, g_Temp, charsmax(g_Temp));
menu_additem(menu, g_Name, g_Temp, 0);
}

menu_setprop(menu, MPROP_NEXTNAME, "Далее")
menu_setprop(menu, MPROP_BACKNAME, "Назад")
menu_setprop(menu, MPROP_EXITNAME, "Выход")

menu_display(id,menu,0)
return PLUGIN_HANDLED
}

public pm_hand(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)

Player = str_to_num(s_Data)

new sName[33], mName[33]

get_user_name(id, mName, 32)
get_user_name(Player, sName, 32)

if ( UserData[id][gType] == 1 )
{
set_user_gravity(Player, 0.5)
UserData[id][gGravity] -= 1
ChatColor(0, "%s Вы !g%s !yдали !tгравитацию !yигроку !g%s", gPrefix, mName, sName)
} else
if ( UserData[id][gType] == 2 )
{

spawn(Player)

new team = get_user_team(Player)
give_item(Player, "weapon_knife")
switch(team)
{
case 1: give_item(Player, "weapon_glock18")
case 2: give_item(Player, "weapon_usp")
}

UserData[id][gSpawn] -= 1
ChatColor(0, "%s Вы !g%s !tвозродили !yигрока !g%s", gPrefix, mName, sName)

}

return PLUGIN_HANDLED;
}

stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[188]
vformat(msg, 187, input, 3)

replace_all(msg, 187, "!g", "^4")
replace_all(msg, 187, "!y", "^1")
replace_all(msg, 187, "!t", "^3")

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();
}
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Stimul1
сообщение 29.3.2016, 12:24
Сообщение #2


Стаж: 13 лет

Сообщений: 227
Благодарностей: 262
Полезность: 977

Код:
new UserData[33][PlData];
===>
Код:
new UserData[33][PlData] = { 3, ... };


Код:
public StartRound()
{
for(new id = 0; id <= MaxPlayers; id++)
{
if(!is_user_bot(id) && is_user_connected(id))
{
UserData[id][gSpawn] = 2
UserData[id][gGravity] = 2
}
}

return PLUGIN_CONTINUE;
}
===>
Код:
public StartRound()
{
for(new id = 1; id <= MaxPlayers; id++)
{
UserData[id][gSpawn] = 3;
UserData[id][gGravity] = 3;
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя FDGod
сообщение 29.3.2016, 16:10
Сообщение #3


Стаж: 12 лет

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

Stimul1,
Внес изменения. Но после них выдало ошибку.
Прикрепленное изображение

Внесены изменения в код
Код:
#include < amxmodx >
#include < amxmisc >
#include < cstrike >
#include < hamsandwich >
#include < fun >

#define PLUGIN "Vip Menu"
#define VERSION "1.2"
#define AUTHOR "OverGame"

#pragma tabsize 0

#define V_LVL ADMIN_LEVEL_H

new const gPrefix[] = "!g[VIP]!y"

enum _:PlData
{
gGravity, gSpawn, gType
};

new UserData[33][PlData] = { 3, ... };

new gPrice, MaxPlayers, g_Name[32], g_Temp[10], Players[32], Num, Player

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /vip", "open_menu")
register_clcmd("say_team /vip", "open_menu")
register_logevent("StartRound", 2, "1=Round_Start")
gPrice = register_cvar("price_vip", "100")

MaxPlayers = get_maxplayers()

return PLUGIN_CONTINUE;
}

public StartRound()
{
for(new id = 0; id <= MaxPlayers; id++)
{
{
UserData[id][gSpawn] = 3
UserData[id][gGravity] = 3
}
}

return PLUGIN_CONTINUE;
}

public open_menu(id)
{
static s_MenuItem[255], s_Item6[168], s_Item7[168], s_Vip[168]

if ( get_user_flags(id) & V_LVL )
{
formatex(s_Vip, charsmax(s_Vip), "\dТы : \yВип\d | Цена вип : \y%d \dруб.", get_pcvar_num(gPrice))
} else {
formatex(s_Vip, charsmax(s_Vip), "\dТы : \yИгрок\d | Цена вип : \y%d \dруб.", get_pcvar_num(gPrice))
}
formatex(s_MenuItem, charsmax(s_MenuItem), "\rВип меню^n%s", s_Vip)

formatex(s_Item6, charsmax(s_Item6), "\yПодарить гравитацию \d(%d)", UserData[id][gGravity])
formatex(s_Item7, charsmax(s_Item7), "\yВозродить \d(%d)", UserData[id][gSpawn])

new menu = menu_create(s_MenuItem, "op_menu_hand" )

if ( get_user_flags(id) & V_LVL )
{

menu_additem(menu, "\yГравитация", "1")
menu_additem(menu, "\yСкорость", "2")
menu_additem(menu, "\yЖизни \d(100) \yи броня \d(100)", "3")
menu_additem(menu, "\yДеньги \d(5000)", "4")
menu_additem(menu, "\yВозродиться^n", "5")

menu_additem(menu, s_Item6, "6")
menu_additem(menu, s_Item7, "7")

} else {

menu_additem(menu, "\dГравитация", "1")
menu_additem(menu, "\dСкорость", "2")
menu_additem(menu, "\dЖизни (100) и броня (100)", "3")
menu_additem(menu, "\dДеньги (5000)", "4")
menu_additem(menu, "\dВозродиться^n", "5")

menu_additem(menu, "\dПодарить гравитацию (2)", "6")
menu_additem(menu, "\dВозродить (2)", "7")

}

menu_setprop(menu, MPROP_EXITNAME, "Выход")

menu_display(id,menu,0)
return PLUGIN_HANDLED
}

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

new data[6], iName[64], access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)

new key = str_to_num(data)

switch(key)
{
case 1: {
if ( !(get_user_flags(id) & V_LVL) ) return PLUGIN_HANDLED;

set_user_gravity(id, 0.5)
ChatColor(id, "%s Вы взяли гравитацию.", gPrefix)
}
case 2: {
if ( !(get_user_flags(id) & V_LVL) ) return PLUGIN_HANDLED;

set_user_maxspeed(id, 5000.0)
ChatColor(id, "%s Вы взяли скорость.", gPrefix)
}
case 3: {
if ( !(get_user_flags(id) & V_LVL) ) return PLUGIN_HANDLED;

set_user_health(id, 100)
set_user_armor(id, 100)
ChatColor(id, "%s Вы взяли !t100 HP !yи !t100 !yБрони.", gPrefix)
}
case 4: {
if ( !(get_user_flags(id) & V_LVL) ) return PLUGIN_HANDLED;

cs_set_user_money(id, cs_get_user_money(id) + 5000)
ChatColor(id, "%s Вы взяли деньги!", gPrefix)
}
case 5: {
if ( !(get_user_flags(id) & V_LVL) ) return PLUGIN_HANDLED;

ExecuteHam(Ham_CS_RoundRespawn, id)
ChatColor(id, "%s Вы возродились!", gPrefix)
}
case 6: {
if ( !(get_user_flags(id) & V_LVL) ) return PLUGIN_HANDLED;

if ( UserData[id][gGravity] == 0 ) return PLUGIN_HANDLED;

UserData[id][gType] = 1
players_menu(id)
}
case 7: {
if ( !(get_user_flags(id) & V_LVL) ) return PLUGIN_HANDLED;

if ( UserData[id][gSpawn] == 0 ) return PLUGIN_HANDLED;

UserData[id][gType] = 2
players_menu(id)
}
}
return PLUGIN_HANDLED
}

public players_menu(id)
{
new menu = menu_create("\rВип меню^n\yВыберите игрока", "pm_hand")

get_players(Players, Num, "ch")

for(new i; i< Num; i++)
{
Player = Players[i]

get_user_name(Player, g_Name, charsmax(g_Name));
num_to_str(Player, g_Temp, charsmax(g_Temp));
menu_additem(menu, g_Name, g_Temp, 0);
}

menu_setprop(menu, MPROP_NEXTNAME, "Далее")
menu_setprop(menu, MPROP_BACKNAME, "Назад")
menu_setprop(menu, MPROP_EXITNAME, "Выход")

menu_display(id,menu,0)
return PLUGIN_HANDLED
}

public pm_hand(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)

Player = str_to_num(s_Data)

new sName[33], mName[33]

get_user_name(id, mName, 32)
get_user_name(Player, sName, 32)

if ( UserData[id][gType] == 1 )
{
set_user_gravity(Player, 0.5)
UserData[id][gGravity] -= 1
ChatColor(0, "%s Вы !g%s !yдали !tгравитацию !yигроку !g%s", gPrefix, mName, sName)
} else
if ( UserData[id][gType] == 2 )
{

spawn(Player)

new team = get_user_team(Player)
give_item(Player, "weapon_knife")
switch(team)
{
case 1: give_item(Player, "weapon_glock18")
case 2: give_item(Player, "weapon_usp")
}

UserData[id][gSpawn] -= 1
ChatColor(0, "%s Вы !g%s !tвозродили !yигрока !g%s", gPrefix, mName, sName)

}

return PLUGIN_HANDLED;
}

stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[188]
vformat(msg, 187, input, 3)

replace_all(msg, 187, "!g", "^4")
replace_all(msg, 187, "!y", "^1")
replace_all(msg, 187, "!t", "^3")

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();
}
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Stimul1
сообщение 29.3.2016, 19:47
Сообщение #4


Стаж: 13 лет

Сообщений: 227
Благодарностей: 262
Полезность: 977

FDGod, тогда в plugin_init, в самом низу добавь:
Код:
for(new id = 1; id <= MaxPlayers; id++)
{
UserData[id][gSpawn] = 3;
UserData[id][gGravity] = 3;
}

И это так же измени:
Код:
public StartRound()
{
for(new id = 0; id <= MaxPlayers; id++)
{
if(!is_user_bot(id) && is_user_connected(id))
{
UserData[id][gSpawn] = 2
UserData[id][gGravity] = 2
}
}

return PLUGIN_CONTINUE;
}
===>
Код:
public StartRound()
{
for(new id = 1; id <= MaxPlayers; id++)
{
UserData[id][gSpawn] = 3;
UserData[id][gGravity] = 3;
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя FDGod
сообщение 29.3.2016, 20:48
Сообщение #5


Стаж: 12 лет

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

Stimul1,
Сменил все как написано выше - та же ошибка. Сомжешь изменить и скинуть ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Stimul1
сообщение 29.3.2016, 21:22
Сообщение #6


Стаж: 13 лет

Сообщений: 227
Благодарностей: 262
Полезность: 977

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