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

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

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

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

2 страниц V   1 2

Меню выбора напарника для выжившего

Статус пользователя Sorokin
сообщение 8.1.2017, 17:02
Сообщение #21
Стаж: 9 лет 5 месяцев

Сообщений: 427
Благодарности: выкл.

Captain, Код:
#include < amxmodx >
#include < zombieplague >

new bool: g_HasUsed;

public showMenu(id)
{
if(!is_user_connected(id))
return 1;

if(zp_get_human_count() < 0)
return 1;

new szName[32], iPlayers[32], nPlayers[10], iNum, iMenu, pId;

iMenu = menu_create("\yВыберите себе напарника", "menuHandled");

get_players(iPlayers, iNum, "c");

for(new i = 0; i < iNum; i++)
{
pId = iPlayers[i];

get_user_name(pId, szName, charsmax(szName));

num_to_str(pId, nPlayers, charsmax(nPlayers));

menu_additem(iMenu, szName, nPlayers);
}

menu_setprop(iMenu, MPROP_NUMBER_COLOR, "\y");
menu_setprop(iMenu, MPROP_NEXTNAME, "Далее");
menu_setprop(iMenu, MPROP_BACKNAME, "Назад");
menu_setprop(iMenu, MPROP_EXITNAME, "Выход");

menu_display(id, iMenu, 0);

return 1;
}

public menuHandled(id, iMenu, iItem)
{
if(iItem == MENU_EXIT)
{
menu_destroy(iMenu);
return 1;
}

new szName[64], iData[6], iAccess, iCallback;

menu_item_getinfo(iMenu, iItem, iAccess, iData, charsmax(iData), szName, charsmax(szName), iCallback);

new pId = str_to_num(iData);

if((!is_user_connected(pId)) || (id == pId))
{
client_print(id, print_center, "Выберите другого игрока!");
return showMenu(id);
}

zp_make_user_survivor(pId);
g_HasUsed = false;

return menu_destroy(iMenu);
}

public zp_user_humanized_post(id, survivor)
{
if(g_HasUsed)
{
set_task(1.0, "showMenu", survivor);
}
}

public zp_round_started(gamemode, id)
{
if(gamemode == 3)
{
g_HasUsed = true;
}
}


попробуйте вот это

[attachment=42929:Naparnik.sma]

Отредактировал: Sorokin, - 8.1.2017, 17:03
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Sorokin
сообщение 8.1.2017, 17:09
Сообщение #22
Стаж: 9 лет 5 месяцев

Сообщений: 427
Благодарности: выкл.

Вариант через round_start чисто
Код:
#include < amxmodx >
#include < zombieplague >

public showMenu(id)
{
if(!is_user_connected(id))
return 1;

if(zp_get_human_count() < 0)
return 1;

new szName[32], iPlayers[32], nPlayers[10], iNum, iMenu, pId;

iMenu = menu_create("\yВыберите себе напарника", "menuHandled");

get_players(iPlayers, iNum, "c");

for(new i = 0; i < iNum; i++)
{
pId = iPlayers[i];

get_user_name(pId, szName, charsmax(szName));

num_to_str(pId, nPlayers, charsmax(nPlayers));

menu_additem(iMenu, szName, nPlayers);
}

menu_setprop(iMenu, MPROP_NUMBER_COLOR, "\y");
menu_setprop(iMenu, MPROP_NEXTNAME, "Далее");
menu_setprop(iMenu, MPROP_BACKNAME, "Назад");
menu_setprop(iMenu, MPROP_EXITNAME, "Выход");

menu_display(id, iMenu, 0);

return 1;
}

public menuHandled(id, iMenu, iItem)
{
if(iItem == MENU_EXIT)
{
menu_destroy(iMenu);
return 1;
}

new szName[64], iData[6], iAccess, iCallback;

menu_item_getinfo(iMenu, iItem, iAccess, iData, charsmax(iData), szName, charsmax(szName), iCallback);

new pId = str_to_num(iData);

if((!is_user_connected(pId)) || (id == pId))
{
client_print(id, print_center, "Выберите другого игрока!");
return showMenu(id);
}

zp_make_user_survivor(pId);

return menu_destroy(iMenu);
}

public zp_round_started(gamemode, id)
{
if(gamemode == 3)
{
if(zp_get_user_survivor(id))
{
set_task(1.0, "showMenu", id);
}
}
}


[attachment=42931:Naparnik.sma]

Отредактировал: Sorokin, - 8.1.2017, 17:10
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Captain
сообщение 8.1.2017, 17:13
Сообщение #23
Стаж: 12 лет

Сообщений: 251
Благодарностей: 7
Полезность: < 0

Sorokin, первый вариант рабочий. Второй не проверял. Спасибо большое :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Sorokin
сообщение 8.1.2017, 17:14
Сообщение #24
Стаж: 9 лет 5 месяцев

Сообщений: 427
Благодарности: выкл.

Captain, второй тоже заработает =), но советую его использовать
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
2 страниц V   1 2
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: