Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Теряется target в меню
Dsx Дата: Воскресенье, 28.10.2012, 22:19:21 | Сообщение # 1
Сообщений: 19
Репутация: 0 [ +/- ]
Имеется меню:

-------------------
Выбор игрока
-------------------
1. PlayerName1
2. PlayerName2
n. ..................

При клике на никнейм игрока идет переход в новое меню:

-------------------
Количество HP
-------------------
1. +10
2. +20
n. ......

И после клика по кол-ву HP пропадает 'client' выбранного игрока. Как его сохранить?
Code

public PlayerList(client)
{
     new Handle:menu = CreateMenu(Select_PlayerList);
     SetMenuTitle(menu, "Выбор игрока\n \n");
     decl String:userid[15], String:name[32];     
     for (new i = 1; i <= MaxClients; i++)     
     {     
      if (IsClientInGame(i))     
      {     
       IntToString(GetClientUserId(i), userid, 15);     
       GetClientName(i, name, 32);     
       AddMenuItem(menu, userid, name);     
      }
     }
     DisplayMenu(menu, client, 0);
}
public Select_PlayerList(Handle:menu, MenuAction:action, client, option)
{
     if (action == MenuAction_End)     
     {
      CloseHandle(menu);
      return;
     }
     if (action != MenuAction_Select) return;     
     decl String:userid[15];     
     GetMenuItem(menu, option, userid, 15);     
     //target[] = GetClientOfUserId(StringToInt(userid));     
     MenuGiveHP(client, GetClientOfUserId(StringToInt(userid)));
}


Code
public MenuGiveHP(client, target)
{
new Handle:menu = CreateMenu(VMSelect_AdminMenuGiveCredits);
SetMenuTitle(menu, "Выбрать кол-во [ Игрок - %N ] \n \n", target);
AddMenuItem(menu, "0", "+ 5");
AddMenuItem(menu, "1", "+ 10");
AddMenuItem(menu, "2", "+ 50");
AddMenuItem(menu, "3", "+ 100");
DisplayMenu(menu, client, 0);
}

public VMSelect_AdminMenuGiveCredits(Handle:menu, MenuAction:action, client, option)
{
if (action == MenuAction_End)
{
CloseHandle(menu);
return;
}
if (action != MenuAction_Select) return;

if (option == 0) GiveHP(client, 5); // Вот тут уже теряется target.
else < .. остальной код .. >
}

public GiveHP(client, hp) SetEntProp(client, Prop_Send, "m_iHealth", GetEntProp(client, Prop_Send, "m_iHealth") + hp);


Сообщение отредактировал Dsx - Воскресенье, 28.10.2012, 22:20:40
 
_wS_ Дата: Воскресенье, 28.10.2012, 22:33:37 | Сообщение # 2
Code
new g_MyTarget[MAXPLAYERS+1];

public Select_PlayerList(Handle:menu, MenuAction:action, admin, item)
{
     if (action == MenuAction_End)
     {
         CloseHandle(menu);
         return;
     }
     if (action != MenuAction_Select) return;

     decl String:userid[15]; GetMenuItem(menu, item, userid, 15);
     new target_id = StringToInt(userid);
     new target = GetClientOfUserId(target_id);
     if (target < 1)
     {
         PrintToChat(admin, "Цель не найдена");
         return;
     }

     g_MyTarget[admin] = target_id;
     MenuGiveHP(admin);
}

public VMSelect_AdminMenuGiveCredits(Handle:menu, MenuAction:action, admin, item)  
{  
     if (action == MenuAction_End)
     {
         CloseHandle(menu);
         return;
     }
     if (action != MenuAction_Select) return;

     new target = GetClientOfUserId(g_MyTarget[admin]);
     if (target < 1)
     {
         PrintToChat(admin, "Цель не найдена");
         return;
     }

     if (!IsPlayerAlive(target))
     {
         PrintToChat(admin, "Цель мертва");
         return;
     }

     if (item == 0) GiveHP(target, 5);
}
 
Dsx Дата: Воскресенье, 28.10.2012, 22:49:58 | Сообщение # 3
Сообщений: 19
Репутация: 0 [ +/- ]
Fuck my brain..
массив же.. забыл.. спасибо)
 
  • Страница 1 из 1
  • 1
Поиск: