Слежка за игроком с меню проверок и функций - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: [CM]OlegEhtler, Getbackthere, Phoenixxx_Czar  
Слежка за игроком с меню проверок и функций
STy1e Дата: Вторник, 29.04.2014, 19:48 | Сообщение # 1
Боец
Сообщений: 51
Статус: Offline
Написал сегодня человечку одному с СМ команду слежки за игроком. При слежении за подозреваемым появляется менюшка с пунктами "Тихий кик, кик, бан, мут, слап, ГМТест"



Сама команда на ZCMD, кому нужно будет, переведу на другой процессор.

Приступим.

В самый низ мода вставим

Код
CMD:spec(playerid,params[])
{
if(!IsPlayerAdmin) return 1;
new ID;
new str[128], pname[MAX_PLAYER_NAME];
if(sscanf(params, "u", ID)) return SendClientMessage(playerid, 0xF97804FF, "Используйте: /spec [ID]");
if(IsPlayerConnected(ID) == 0) SendClientMessage(playerid, 0xF97804FF, "Такого игрока нет");
else
{
GetPlayerName(ID, pname, MAX_PLAYER_NAME);
SetPVarInt(playerid,"SpecID",ID);
format(str,sizeof(str),"Вы начали слежку за %s",pname);
SendClientMessage(playerid,COLOR_LIGHTRED,str);
TogglePlayerSpectating(playerid, ID);
PlayerSpectatePlayer(playerid, ID);
ShowMenuForPlayer(specmenu,playerid);
}
return 1;
}


В начало мода вставим

Код
new Menu:specmenu


В OnGameModeInit

Код
specmenu = CreateMenu("Spec Menu", 1, 50.0, 180.0, 200.0, 200.0);
AddMenuItem(specmenu, 0, "- EXIT -");
AddMenuItem(specmenu, 0, "SKick");
AddMenuItem(specmenu, 0, "Mute");
AddMenuItem(specmenu, 0, "Kick");
AddMenuItem(specmenu, 0, "Ban");
AddMenuItem(specmenu, 0, "Slap");
AddMenuItem(specmenu, 0, "GMTest");
AddMenuItem(specmenu, 0, "- EXIT -");


В OnPlayerSelectedMenuRow вставим

Код

if(GetPlayerMenu(playerid) == specmenu)
{
new specid = GetPVarInt(playerid,"SpecID");
switch(row)
{
case 0:
{
TogglePlayerSpectating(playerid, 0);
SetCameraBehindPlayer(playerid);
SendClientMessage(playerid,0xF97804FF,"Слежка окончена");
DeletePVar(playerid,"SpecID");
}
case 1:
{
ShowMenuForPlayer(specmenu,playerid);
Kick(specid);
SendClientMessage(playerid,-1,"Вы кикнули игрока");
}
case 2:
{
//Тут функция мута
}
case 3:
{
ShowMenuForPlayer(specmenu,playerid);
ShowPlayerDialog(playerid,1593,DIALOG_STYLE_INPUT,"{0006ff}Кикнуть","Введите причину кика игрока:","Кикнуть","Отмена");
}
case 4:
{
ShowMenuForPlayer(specmenu,playerid);
ShowPlayerDialog(playerid,1593,DIALOG_STYLE_INPUT,"{0006ff}Бан","Введите причину бана игрока:","Забанить","Отмена");
}
case 5:
{
new Float:x, Float:y,Float:z;
GetPlayerPos(specid,x,y,z);
SetPlayerPos(specid,x,y,z+8);
ShowMenuForPlayer(specmenu,playerid);
}
case 6:
{
new stringg[144];
new Float:oldhp, Float:newhp;
new Float:x, Float:y,Float:z;
GetPlayerPos(specid,x,y,z);
GetPlayerHealth(specid, oldhp);
CreateExplosion(x, y , z, 5, 0.5);
GetPlayerHealth(specid, newhp);
format(stringg,144,"До проверки: %d HP, после: %d HP", oldhp, newhp);
SetPlayerHealth(specid,oldhp);
ShowMenuForPlayer(specmenu,playerid);
}
case 7:
{
TogglePlayerSpectating(playerid, 0);
SetCameraBehindPlayer(playerid);
SendClientMessage(playerid,0xF97804FF,"Слежка окончена");
DeletePVar(playerid,"SpecID");
}
}
}

И для работоспособности наших кика и бана в диалогах добавим:

В OnDialogResponse

Код

if(dialogid == 1593)
{
if(response)
{
new pname[24],pname2[24],str[144];
GetPlayerName(GetPVarInt(playerid,"SpecID"), pname, MAX_PLAYER_NAME);
GetPlayerName(playerid, pname2, MAX_PLAYER_NAME);
format(str,sizeof(str),"Администратор %s кикнул %s Причина: %s",pname2, pname,inputtext);
SendClientMessageToAll(COLOR_LIGHTRED,str);
Kick(GetPVarInt(playerid,"SpecID"));
}
else return 1;
}
if(dialogid == 1594)
{
if(response)
{
new pname[24],pname2[24],str[144];
GetPlayerName(GetPVarInt(playerid,"SpecID"), pname, MAX_PLAYER_NAME);
GetPlayerName(playerid, pname2, MAX_PLAYER_NAME);
format(str,sizeof(str),"Администратор %s забанил игрока %s Причина: %s",pname2, pname,inputtext);
SendClientMessageToAll(COLOR_LIGHTRED,str);
PlayerInfo[GetPVarInt(playerid,"SpecID")][pBan] = 1;//Меняем переменную бана на свою
Kick(GetPVarInt(playerid,"SpecID"));
}
else return 1;
}


Ну вот вроде бы и все. Писал человеку под определенный мод, по этому переменные меняем на свои...
Слил сюда, так как клиент не оплатил заказ.
Прикрепления: 2868800.png (1.14 Mb)


###adeaf6944f49fac015d35e9d3eb34516###

Сообщение отредактировал STy1e - Воскресенье, 04.05.2014, 19:11
Голубь Дата: Пятница, 02.05.2014, 16:05 | Сообщение # 2
Авторитет
Сообщений: 2137
Статус: Offline
Потом ваш сервер взломают багом

двач
https://vk.com/povargek
JonNou Дата: Пятница, 02.05.2014, 21:38 | Сообщение # 3
Любитель
Сообщений: 34
Статус: Offline
Мне кажется или тут нету проверки на то администратор игрок, который ввел команду или нет? :DD
STy1e Дата: Воскресенье, 04.05.2014, 19:12 | Сообщение # 4
Боец
Сообщений: 51
Статус: Offline
Цитата JonNou ()
Мне кажется или тут нету проверки на то администратор игрок, который ввел команду или нет? :DD

Исправил, забыл просто.
Голубь, ты о чем?


###adeaf6944f49fac015d35e9d3eb34516###
Danny_Marcelo Дата: Суббота, 25.06.2016, 21:35 | Сообщение # 5
Боец
Сообщений: 282
Статус: Offline
Годно.
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума