Контакты Поиск

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

  • Страница 1 из 2
  • 1
  • 2
  • »
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Target menu
Target menu
Darkeneez Дата: Воскресенье, 24.02.2013, 08:53:59 | Сообщение # 1
Сообщений: 221
Репутация: 18 [ +/- ]
Я создал меню клиенту, он выбирает там игрока, как сделать чтобы выбранному посылалось меню, и по нажатию "Да" телепортировался по Координатам клиента которые были получены при выборе игрока.
 
TEIN Дата: Воскресенье, 24.02.2013, 08:58:51 | Сообщение # 2
Сообщений: 568
Репутация: 78 [ +/- ]
Наработки?
 
Darkeneez Дата: Воскресенье, 24.02.2013, 09:03:21 | Сообщение # 3
Сообщений: 221
Репутация: 18 [ +/- ]
Ах да.

Код

#include <sourcemod>
#include <sdktools>
#include <cstrike>

new Float:checkpoint[MAXPLAYERS+1][3];

public Plugin:myinfo =
{
  name = "MiniGame",
  author = "Darkeneez",
  description = "MiniGame TeamHelp",
  version = "0.1",
  url = "http://Servers-info.ru"
};

public OnPluginStart()
{
  RegConsoleCmd("teamhelp", team_help);
  RegConsoleCmd("th", team_help);
}

public Action:team_help(client, args)
{
  new Handle:menu = CreateMenu(Select_Menu);  
  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_Menu(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);
  new target = GetClientOfUserId(StringToInt(userid));
  if(target > 0)
  {
   checkpoint[client][0] = 0.0;
   checkpoint[client][1] = 0.0;
   checkpoint[client][2] = 0.0;
   GetEntPropVector(client, Prop_Send, "m_vecOrigin", checkpoint[client]);
   PrintToChat(client, "Координаты: %d", checkpoint[client]);
   TpAccept(target);
  }
  else PrintToChat(client, "НЕ найден");
}

TpAccept(target);
{
  new Handle:tmenu = CreateMenu(Select_MenuTarget);  
  SetMenuTitle(tmenu, "Вы согласны на телепортацию?\n \n");
  AddMenuItem(tmenu, "Да");
  AddMenuItem(tmenu, "Нет");
  }
  DisplayMenu(tmenu, target, 0);
}

public Select_MenuTarget(Handle:menu, MenuAction:action, target, option)
{
  if(action == MenuAction_End)
  {
  CloseHandle(tmenu);
  return;
  }
  if(action != MenuAction_Select) return;
  {
   TeleportEntity(target, checkpoint[client], NULL_VECTOR, NULL_VECTOR);
   PrintToChat(target, "Телепортирован на: %d", checkpoint[client]);
  }
}
 
Scarface_slv Дата: Воскресенье, 24.02.2013, 09:03:55 | Сообщение # 4
Сообщений: 738
Репутация: 61 [ +/- ]
Создаешь меню с "ДА"
отправляешь созданное меню игроку
bool:DisplayMenu(Handle:menu, client, time); - отправить меню игроку на time сек (0 = всегда)
после нажатия игроком ДА телепортируешь TeleportEntity(index, NULL_VECTOR, 1, 2)
 
Darkeneez Дата: Воскресенье, 24.02.2013, 09:04:58 | Сообщение # 5
Сообщений: 221
Репутация: 18 [ +/- ]
Цитата (Scarface_slv)
Создаешь меню с "ДА"
отправляешь созданное меню игроку
bool:DisplayMenu(Handle:menu, client, time); - отправить меню игроку на time сек (0 = всегда)
после нажатия игроком ДА телепортируешь TeleportEntity(index, NULL_VECTOR, 1, 2)

Но мне нужно не игроку, а цели.
 
Scarface_slv Дата: Воскресенье, 24.02.2013, 09:06:50 | Сообщение # 6
Сообщений: 738
Репутация: 61 [ +/- ]
Оу а что не так? у тебя же вроде все правильно кроме
Код

if(action != MenuAction_Select) return;
{
      TeleportEntity(target, checkpoint[client], NULL_VECTOR, NULL_VECTOR);
      PrintToChat(target, "Телепортирован на: %d", checkpoint[client]);
}

надо так
Код

if(action != MenuAction_Select) return;
TeleportEntity(target, checkpoint[client], NULL_VECTOR, NULL_VECTOR);
PrintToChat(target, "Телепортирован на: %d", checkpoint[client]);
 
Darkeneez Дата: Воскресенье, 24.02.2013, 09:23:46 | Сообщение # 7
Сообщений: 221
Репутация: 18 [ +/- ]
http://s40.radikal.ru/i090/1302/04/85c63a305e47.jpg
 
Scarface_slv Дата: Воскресенье, 24.02.2013, 09:49:34 | Сообщение # 8
Сообщений: 738
Репутация: 61 [ +/- ]
Убрал ошибки но там есть еще недочеты...

Прикрепления: 2487220.sp(2.0 Kb)
 
Darkeneez Дата: Воскресенье, 24.02.2013, 09:51:51 | Сообщение # 9
Сообщений: 221
Репутация: 18 [ +/- ]
Спасибо.
 
TEIN Дата: Воскресенье, 24.02.2013, 09:59:42 | Сообщение # 10
Сообщений: 568
Репутация: 78 [ +/- ]
Сомневаюсь, что будет работать, но вот...

Прикрепления: test-2-.sp(2.2 Kb)
 
Scarface_slv Дата: Воскресенье, 24.02.2013, 10:17:10 | Сообщение # 11
Сообщений: 738
Репутация: 61 [ +/- ]
ты помоему в конце пытаешься телепортировать игрока checkpoint[param1] но у него нет координат, ты сохранил их в другом индексе
 
TEIN Дата: Воскресенье, 24.02.2013, 10:23:02 | Сообщение # 12
Сообщений: 568
Репутация: 78 [ +/- ]
Даже и не знаю..
Просто ведь в начале new Float:checkpoint[MAXPLAYERS+1][3];
 
Scarface_slv Дата: Воскресенье, 24.02.2013, 10:27:20 | Сообщение # 13
Сообщений: 738
Репутация: 61 [ +/- ]
не это имею виду) ты отправил в другое меню где ДА и НЕТ один индекс target а координаты ты сохранил в другом индексе который ты так и не отправил) а в public Handler индекс param1 это и есть target)


Сообщение отредактировал Scarface_slv - Воскресенье, 24.02.2013, 10:27:59
 
TEIN Дата: Воскресенье, 24.02.2013, 11:22:13 | Сообщение # 14
Сообщений: 568
Репутация: 78 [ +/- ]
Раб вариант должен быть..

Прикрепления: 2750342.sp(2.2 Kb)
 
Darkeneez Дата: Воскресенье, 24.02.2013, 13:49:40 | Сообщение # 15
Сообщений: 221
Репутация: 18 [ +/- ]
Цитата (DoK_1997)
Раб вариант должен быть..

Разжуй для будущего плиз, почему param1? И в нем цель или сам клиент?
 
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Target menu
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: