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

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

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

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

Неизвестный косяк...

, Меню [РЕШЕНО]
Статус пользователя kolobok1
сообщение 8.8.2015, 19:21
Сообщение #1


Стаж: 11 лет

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

Возник такой косяк у меня в меню,а точнее функции "Заморозки игрока", в первый раз когда я нажимаю на ник игрока,код игнорируется(не чего не происходит),во второй раз нажимаю,код выполняется,в третий раз нажму(код игнорируется),в четвёртый раз заморозка снимается.Тут не много я вас запутал:)Но смысл в том что,должно быть так:Первый раз нажал заморозил игрока,второй раз нажал,снял заморозку.У меня что-то не получается найти косяк ubeysya.gif
Вот кусок кода отвечающий за функцию:
Скрытый текст

Код:

new g_BlockFreeze[33] // Это так для наглядности,чтобы вы не подумали что масив не создан)

public FreezeMenu(id)
{
new szText[64]

formatex(szText, charsmax( szText ), "%L", LANG_PLAYER, "MENU_TITLE_5")
new iMenu = menu_create(szText, "freeze_handler")

formatex(szText, charsmax( szText ), "%L", LANG_PLAYER, "FREEZE_MENU_ITEM_1")
menu_additem(iMenu, szText, "1", false)

formatex(szText, charsmax( szText ), "%L", LANG_PLAYER, "MENU_EXIT")
menu_setprop(iMenu, MPROP_EXITNAME, szText)
menu_display(id, iMenu, 0)
}

public freeze_handler(id, iMenu, iItem)
{
if(iItem == MENU_EXIT)
{
menu_destroy(iMenu)
return PLUGIN_HANDLED
}

new szData[6], szName[64], iAccess,iCallback
menu_item_getinfo(iMenu, iItem, iAccess, szData, charsmax(szData), szName, charsmax(szName), iCallback)

new iKey = str_to_num(szData)

switch(iKey)
{
case 1:
{
FreezePlayer(id)
}
}
menu_destroy(iMenu)
return PLUGIN_HANDLED;
}

public FreezePlayer(id)
{
new szText[256]
formatex(szText, charsmax( szText ), "%L", LANG_PLAYER, "MENU_PLAYER")
new menu = menu_create(szText, "freeze_player_handler")

new s_Players[32], i_Num, i_Player

new s_Name[64], s_Player[10]

get_players(s_Players, i_Num)
for (new i; i < i_Num; i++)
{
i_Player = s_Players[i]

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

if(is_user_alive(i_Player))
{
if(!g_BlockFreeze[i_Player])
format(s_Name, charsmax(s_Name), "\w%s", s_Name)
else
format(s_Name, charsmax(s_Name), "\w%s %L", s_Name, LANG_PLAYER, "PREFIX_OFF")
}
else
format(s_Name, charsmax(s_Name), "\d%s %L", s_Name, LANG_PLAYER, "PREFIX_MENU_2")

menu_additem(menu, s_Name, s_Player, 0)

}

formatex(szText, charsmax( szText ), "%L", LANG_PLAYER, "MENU_NEXT")
menu_setprop(menu, MPROP_NEXTNAME, szText)

formatex(szText, charsmax( szText ), "%L", LANG_PLAYER, "MENU_BACK")
menu_setprop(menu, MPROP_BACKNAME,szText)

formatex(szText, charsmax( szText ), "%L", LANG_PLAYER, "MENU_EXIT")
menu_setprop(menu, MPROP_EXITNAME, szText)
menu_display(id, menu, 0)
}

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

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

new i_Player = str_to_num(s_Data)

if(!is_user_alive(i_Player))
{
menu_destroy(menu)
FreezePlayer(id)
return PLUGIN_HANDLED
}

cs_get_user_team(i_Player)
get_user_name(id, playername, 32)
get_user_name(i_Player, playername2, 32)

if(g_BlockFreeze[i_Player])
{
g_BlockFreeze[i_Player] = false;
set_pev(i_Player, pev_maxspeed, 250.0);
set_user_rendering(i_Player);
client_cmd(0, "spk %s", FREEZE_OFF);
ColorChat(0, NORMAL,"^1[^4%L^1] %L", LANG_SERVER, "PREFIX", LANG_SERVER, "FREEZE_2",playername, playername2);
FreezePlayer(id);
return PLUGIN_HANDLED
}

g_BlockFreeze[i_Player] = true;
set_pev(i_Player, pev_maxspeed, 0.1);
set_user_rendering(i_Player, kRenderFxGlowShell, 32, 164, 241, kRenderNormal, 30);
client_cmd(0, "spk %s", FREEZE_ON);
ColorChat(0, NORMAL,"^1[^4%L^1] %L", LANG_SERVER, "PREFIX", LANG_SERVER, "FREEZE",playername, playername2);
FreezePlayer(id);

menu_destroy(menu)
return PLUGIN_HANDLED
}



Отредактировал: kolobok1, - 8.8.2015, 20:08
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя kolobok1
сообщение 9.8.2015, 17:50
Сообщение #2


Стаж: 11 лет

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

Код:

new g_BlockFreeze[33]
---->
new bool:g_BlockFreeze[33]
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: