Hus3n, можно сделать через консоль, но как по мне, лучше сделать через меню игроков. Пример из своих меню получения списка игроков в новой системе(естественно, флаг "b" убрать в get_players, а то только мертвые высветятся и повырезать лишнего и вполне норм для выдачи будет):
- Код: Выделить всё
public ShowMenuPlayerRevive(id){
new menu = menu_create( "\wВыберите игрока для \yвоскрешения :", "MenuReviverPlayer_Handler" );
new players[32], pnum, tempid;
new s_Name[32], s_Player[10];
get_players( players, pnum, "bch" );
for ( new i; i<pnum; i++ )
{
tempid = players[i];
if(id == tempid) continue;
get_user_name(tempid, s_Name, charsmax(s_Name))
num_to_str(tempid, s_Player, charsmax(s_Player))
menu_additem(menu, s_Name, s_Player, 0)
}
menu_setprop(menu,MPROP_NEXTNAME,"Далее");
menu_setprop(menu,MPROP_BACKNAME,"Назад");
menu_setprop(menu,MPROP_EXITNAME,"Выход");
menu_display( id, menu, 0 );
}
public MenuReviverPlayer_Handler( id, menu, item )
{
if ( item == MENU_EXIT )
{
menu_destroy( menu );
return PLUGIN_HANDLED;
}
new szData[6], szName[64];
new _access, item_callback;
menu_item_getinfo( menu, item, _access, szData,charsmax( szData ), szName,charsmax( szName ), item_callback );
new pIndex = str_to_num( szData );
new num_f = random_num(0,5);
new num_s = random_num(0,5);
while(num_f == num_s){
num_s = random_num(0,5);
}
if(!is_user_connected(pIndex)){
menu_destroy( menu );
PrintChatEx(0, "%s[Boss]%s Нельзя возродить т.к. он вышел из игры ",colors[num_f], colors[num_s]);
ShowMenuPlayerRevive(id);
return PLUGIN_HANDLED;
}
new name_boss[33], name_player[33];
get_user_name(id, name_boss, charsmax(name_boss));
get_user_name(pIndex, name_player, charsmax(name_player));
if(is_user_alive(pIndex)){
menu_destroy( menu );
PrintChatEx(0, "%s[Boss]%s Нельзя возродить %s, он и так жив ",colors[num_f], colors[num_s], name_player);
ShowMenuPlayerRevive(id);
return PLUGIN_HANDLED;
}
if(AliveCt() < 4 && !g_Owner[id]) {
PrintChatEx(id, "%s[Boss]%s %s, живых КТ меньше 4, сейчас нельзя возрождать других игроков! ",colors[num_f], colors[num_s], name_boss);
menu_destroy(menu);
return ShowReviveMenu(id);
}
if(dr_is_user_ghost(pIndex))
dr_set_user_ghost(pIndex, false);
ExecuteHamB(Ham_CS_RoundRespawn, pIndex);
PrintChatEx(0, "%s[Boss]%s Игрок, %s, возродил игрока %s",colors[num_f], colors[num_s], name_boss, name_player);
menu_destroy(menu);
ShowReviveMenu(id);
return PLUGIN_HANDLED;
}
После выбора игрока можно открыть следующее меню(предварительно сохранив индекс того игрока MassiveWithPlayer[id] = pIndex, где id- это индекс админа или кто там дает, pIndex - индекс игрока, которому нужно дать ех) с выбором кол-ва ех или как его там (можно добавить пункт через messagemode, если есть силы и желание). И уже с сохраненным индексом игрока в массиве по индексу выдающего можно легко выставить через
- Код: Выделить всё
new pIdPlayer = MassiveWithPlayer[id]
zp_set_user_ex(pIdPlayer , zp_get_user_xp(pIdPlayer) + iAmountEx);