CRAZy_Str
Специалист
Здравствуйте уважаемые пользователи, решил написать мануал по слежке за игроками для администрации и так приступим
Ко всем командам
Ко всем new
в
Новая под ****-Rp
в
Под ****-Rp
Ну и диалоги
Вроде всё =) будут проблемы пишите
Автор мануала: Я
Скрин
Под ****-Rp
Нету кнопки переключения и правого текстдрава. Лень делать.
Ко всем командам
PHP:
if(strcmp(cmd, "/re", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new specid;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "{F74848}» Введите: {FFFFFF} /re(con) [id]");
specid = ReturnUser(tmp);
if(specid == playerid) return SendClientMessage(playerid, COLOR_RED, " Вы указали свой ID!");
if(PlayerInfo[specid][pAdmin] >= 6) return SendClientMessage(playerid,COLOR_GRAD1,"Наблюдение за администрацией запрещено!");
if (PlayerInfo[playerid][pAdmin] >= 1)
{
if(IsPlayerConnected(specid))
{
if(GetPlayerState(specid) == PLAYER_STATE_SPECTATING && gSpectateID[specid] != INVALID_PLAYER_ID)
{
GetPlayerName(gSpectateID[specid], sendername, sizeof(sendername));
format(string, sizeof(string), " Этот игрок наблюдает за [%d]%s!",gSpectateID[specid], sendername);
SendClientMessage(playerid, COLOR_RED, string);
return 1;
}
if(GetPlayerState(specid) != 1 && GetPlayerState(specid) != 2 && GetPlayerState(specid) != 3) return SendClientMessage(playerid, COLOR_RED, "Игрок не вступил в игру !");
StartSpectate(playerid, specid);
Spectate[playerid] = specid;
ShowMenuForPlayer(reconmenu,playerid);
}
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "Недостаточно прав для использования данной функции !");
}
}
return 1;
}
if(strcmp(cmd, "/reoff", true) == 0)
{
new specid;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING)
StopSpectate(playerid);
return 1;
}
if(PlayerInfo[playerid][pAdmin] >= 6)
{
specid = ReturnUser(tmp);
StopSpectate(specid);
format(string, sizeof(string), " Вы отключили [%d]%s из режима слежения!",gSpectateID[specid], sendername);
SendClientMessage(playerid, COLOR_GRAD2, string);
}
return 1;
}
PHP:
//======== /re ========
new Spectate[MAX_PLAYERS];
new Menu:reconmenu;
new Toogle[MAX_PLAYERS];
new mute[MAX_PLAYERS];
new timemute[MAX_PLAYERS];
new kick[MAX_PLAYERS];
new warn[MAX_PLAYERS];
new ban[MAX_PLAYERS];
PHP:
public OnPlayerSelectedMenuRow(playerid, row)
PHP:
if(Current == reconmenu)
{
new giveplayer[24],sendername[24],string[150];
GetPlayerName(Spectate[playerid], giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
switch(row)
{
case 0:
{
if(Toogle[Spectate[playerid]] == 0)
{
TogglePlayerControllable(Spectate[playerid], 0);
format(string, sizeof(string), "%s Был заморожен администратором %s",giveplayer ,sendername);
ABroadCast(COLOR_LIGHTRED,string,1);
ShowMenuForPlayer(reconmenu,playerid);
Toogle[Spectate[playerid]] = 1;
}
else
{
TogglePlayerControllable(Spectate[playerid], 1);
format(string, sizeof(string), "%s был разморожен администратором %s",giveplayer ,sendername);
ABroadCast(COLOR_LIGHTRED,string,1);
ShowMenuForPlayer(reconmenu,playerid);
Toogle[Spectate[playerid]] = 0;
}
}
case 1:
{
format(string, sizeof(string), "Игрок %s | На GM test Администратором %s",giveplayer, sendername);
ABroadCast(COLOR_WHITE,string,1);
new Float:boomx, Float:boomy, Float:boomz;
GetPlayerPos(Spectate[playerid],boomx, boomy, boomz);
CreateExplosion(boomx, boomy , boomz, 5, 2);
ShowMenuForPlayer(reconmenu,playerid);
}
case 2:
{
new Float:slx, Float:sly, Float:slz;
GetPlayerName(Spectate[playerid], giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
SetPlayerHealth(Spectate[playerid], 130);
GetVehiclePos(GetPlayerVehicleID(Spectate[playerid]), slx, sly, slz);
SetVehiclePos(GetPlayerVehicleID(Spectate[playerid]), slx, sly, slz+550);
PlayerPlaySound(Spectate[playerid], 1130, slx, sly, slz+5);
format(string, sizeof(string), "AdmCmd: %s был подкинут администратором %s",giveplayer ,sendername);
ABroadCast(COLOR_LIGHTRED,string,1);
ShowMenuForPlayer(reconmenu,playerid);
}
case 3:
{
new playersip[150];
GetPlayerIp(Spectate[playerid],playersip,sizeof(playersip));
format(string, sizeof(string), "[%s] IP: %s",giveplayer,playersip);
SendClientMessage(playerid,COLOR_BLUE,string);
ShowMenuForPlayer(reconmenu,playerid);
}
case 4:
{
new Float:shealth;
new Float:slx, Float:sly, Float:slz;
GetPlayerHealth(Spectate[playerid], shealth);
SetPlayerHealth(Spectate[playerid], shealth-5);
GetPlayerPos(Spectate[playerid], slx, sly, slz);
SetPlayerPos(Spectate[playerid], slx, sly, slz+5);
PlayerPlaySound(Spectate[playerid], 1130, slx, sly, slz+5);
ShowMenuForPlayer(reconmenu,playerid);
}
case 5:
{
ShowStats(playerid,Spectate[playerid]);
ShowMenuForPlayer(reconmenu,playerid);
}
case 6:
{
StartSpectate(playerid, Spectate[playerid]);
ShowMenuForPlayer(reconmenu,playerid);
}
case 7:
{
StopSpectate(playerid);
Spectate[playerid] = 255;
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
}
}
}
PHP:
if(Current == reconmenu)
{
new giveplayer[24],sendername[24],string[150];
GetPlayerName(Spectate[playerid], giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
switch(row)
{
case 0://freeze
{
if(Toogle[Spectate[playerid]] == 0)
{
TogglePlayerControllable(Spectate[playerid], 0);
format(string, sizeof(string), "%s был заморожен администратором %s",giveplayer ,sendername);
ABroadCast(COLOR_LIGHTRED,string,1);
ShowMenuForPlayer(reconmenu,playerid);
Toogle[Spectate[playerid]] = 1;
}
else
{
TogglePlayerControllable(Spectate[playerid], 1);
format(string, sizeof(string), "%s был разморожен администратором %s",giveplayer ,sendername);
ABroadCast(COLOR_LIGHTRED,string,1);
ShowMenuForPlayer(reconmenu,playerid);
Toogle[Spectate[playerid]] = 0;
}
}
case 1://gmtest
{
format(string, sizeof(string), "Игрок %s | проверен на GM админом %s",giveplayer, sendername);
ABroadCast(COLOR_WHITE,string,1);
new Float:boomx, Float:boomy, Float:boomz;
GetPlayerPos(Spectate[playerid],boomx, boomy, boomz);
CreateExplosion(boomx, boomy , boomz, 5, 2);
ShowMenuForPlayer(reconmenu,playerid);
}
case 2://mute
{
ShowPlayerDialog(playerid,10011,DIALOG_STYLE_INPUT,"Mute","Введите ид игрока которому хотите выдать бан чата","Ок","Отмена");
ShowMenuForPlayer(reconmenu,playerid);
}
case 3: // kick
{
ShowPlayerDialog(playerid,10014,DIALOG_STYLE_INPUT,"Kick","Введите ид игрока которого хотите кикнуть","Ок","Отмена");
ShowMenuForPlayer(reconmenu,playerid);
}
case 4: //warn
{
ShowPlayerDialog(playerid,10016,DIALOG_STYLE_INPUT,"Warn","Введите ид игрока которому хотите выдать предупреждение","Ок","Отмена");
ShowMenuForPlayer(reconmenu,playerid);
}
case 5: //ban
{
ShowPlayerDialog(playerid,10018,DIALOG_STYLE_INPUT,"Ban","Введите ид игрока которому хотите выдать предупреждение","Ок","Отмена");
ShowMenuForPlayer(reconmenu,playerid);
}
case 6: //getip
{
new playersip[150];
GetPlayerIp(Spectate[playerid],playersip,sizeof(playersip));
format(string, sizeof(string), "[%s] IP: %s",giveplayer,playersip);
SendClientMessage(playerid,COLOR_BLUE,string);
ShowMenuForPlayer(reconmenu,playerid);
}
case 7: //slap
{
new Float:shealth;
new Float:slx, Float:sly, Float:slz;
GetPlayerHealth(Spectate[playerid], shealth);
SetPlayerHealth(Spectate[playerid], shealth-5);
GetPlayerPos(Spectate[playerid], slx, sly, slz);
SetPlayerPos(Spectate[playerid], slx, sly, slz+5);
PlayerPlaySound(Spectate[playerid], 1130, slx, sly, slz+5);
ShowMenuForPlayer(reconmenu,playerid);
}
case 8: // stats
{
ShowStats(playerid,Spectate[playerid]);
ShowMenuForPlayer(reconmenu,playerid);
}
case 9: // update
{
StartSpectate(playerid, Spectate[playerid]);
ShowMenuForPlayer(reconmenu,playerid);
}
case 10: // reoff
{
StopSpectate(playerid);
Spectate[playerid] = 255;
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
}
}
}
PHP:
public Menu()
PHP:
reconmenu = CreateMenu("Recon", 1, 25.0, 160.0, 100.0 );
AddMenuItem(reconmenu,0,"Freeze");
AddMenuItem(reconmenu,0,"GMtest");
AddMenuItem(reconmenu,0,"VehSlap");
AddMenuItem(reconmenu,0,"Getip");
AddMenuItem(reconmenu,0,"Slap");
AddMenuItem(reconmenu,0,"Stats");
AddMenuItem(reconmenu,0,"Update");
AddMenuItem(reconmenu,0,"Re Off");
PHP:
reconmenu = CreateMenu("RMenu", 1, 25.0, 160.0, 100.0 );
AddMenuItem(reconmenu,0,"Freeze");
AddMenuItem(reconmenu,0,"GMtest");
AddMenuItem(reconmenu,0,"Mute");
AddMenuItem(reconmenu,0,"Kick");
AddMenuItem(reconmenu,0,"Warn");
AddMenuItem(reconmenu,0,"Ban");
AddMenuItem(reconmenu,0,"Getip");
AddMenuItem(reconmenu,0,"Slap");
AddMenuItem(reconmenu,0,"Stats");
AddMenuItem(reconmenu,0,"Update");
AddMenuItem(reconmenu,0,"Re Off");
PHP:
case 10011:
{
if(response)
{
if(!strval(inputtext)) return ShowPlayerDialog(playerid,10011,DIALOG_STYLE_INPUT,"Mute","Введите ид игрока которому хотите дать mute","Ок","Отмена");
if(mute[playerid] == INVALID_PLAYER_ID) return ShowPlayerDialog(playerid,10011,DIALOG_STYLE_INPUT,"Mute","Введите ид игрока которому хотите дать mute","Ок","Отмена");
mute[playerid] = strval(inputtext);
ShowPlayerDialog(playerid,10012,DIALOG_STYLE_INPUT,"Минут","Введите колл-во минут","Далее","Отмена");
}
else
{
return true;
}
}
case 10012:
{
if(response)
{
if(!strval(inputtext)) return ShowPlayerDialog(playerid,10012,DIALOG_STYLE_INPUT,"Минут","Введите колл-во времени","Далее","Отмена");
if(timemute[playerid] < 1 || timemute[playerid] > 180) return ShowPlayerDialog(playerid,10012,DIALOG_STYLE_INPUT,"Минут","Введите колл-во времени","Далее","Отмена");
timemute[playerid] = strval(inputtext);
ShowPlayerDialog(playerid,10013,DIALOG_STYLE_INPUT,"Причина","Введите причину","Ок","Отмена");
}
else
{
return true;
}
}
case 10013:
{
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid,10013,DIALOG_STYLE_INPUT,"Причина","Введите причину","Ок","Отмена");
format(string,sizeof(string),"/mute %d %d %s",mute[playerid],timemute[playerid],(inputtext));
OnPlayerCommandText(playerid,string);
}
else
{
return true;
}
}
case 10014:
{
if(response)
{
if(!strval(inputtext)) return ShowPlayerDialog(playerid,10014,DIALOG_STYLE_INPUT,"Kick","Введите ид игрока которого хотите кикнуть","Ок","Отмена");
if(kick[playerid] == INVALID_PLAYER_ID) return ShowPlayerDialog(playerid,10014,DIALOG_STYLE_INPUT,"Kick","Введите ид игрока которого хотите кикнуть","Ок","Отмена");
kick[playerid] = strval(inputtext);
ShowPlayerDialog(playerid,10015,DIALOG_STYLE_INPUT,"Причина","Введите причину","Ок","Отмена");
}
else
{
return true;
}
}
case 10015:
{
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid,10015,DIALOG_STYLE_INPUT,"Причина","Введите причину","Ок","Отмена");
format(string,sizeof(string),"/kick %d %s",kick[playerid],(inputtext));
OnPlayerCommandText(playerid,string);
}
else
{
return true;
}
}
case 10016:
{
if(response)
{
if(!strval(inputtext)) return ShowPlayerDialog(playerid,10016,DIALOG_STYLE_INPUT,"Warn","Введите ид игрока которому хотите выдать предупреждение","Ок","Отмена");
if(warn[playerid] == INVALID_PLAYER_ID) return ShowPlayerDialog(playerid,10016,DIALOG_STYLE_INPUT,"Warn","Введите ид игрока которому хотите выдать предупреждение","Ок","Отмена");
warn[playerid] = strval(inputtext);
ShowPlayerDialog(playerid,10017,DIALOG_STYLE_INPUT,"Причина","Введите причину","Ок","Отмена");
}
else
{
return true;
}
}
case 10017:
{
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid,10017,DIALOG_STYLE_INPUT,"Причина","Введите причину","Ок","Отмена");
format(string,sizeof(string),"/warn %d %s",warn[playerid],(inputtext));
OnPlayerCommandText(playerid,string);
}
else
{
return true;
}
}
case 10018:
{
if(response)
{
if(!strval(inputtext)) return ShowPlayerDialog(playerid,10018,DIALOG_STYLE_INPUT,"Ban","Введите ид игрока которого хотите забанить","Ок","Отмена");
if(ban[playerid] == INVALID_PLAYER_ID) return ShowPlayerDialog(playerid,10018,DIALOG_STYLE_INPUT,"Ban","Введите ид игрока которого хотите забанить","Ок","Отмена");
ban[playerid] = strval(inputtext);
ShowPlayerDialog(playerid,10019,DIALOG_STYLE_INPUT,"Причина","Введите причину","Ок","Отмена");
}
else
{
return true;
}
}
case 10019:
{
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid,10019,DIALOG_STYLE_INPUT,"Причина","Введите причину","Ок","Отмена");
format(string,sizeof(string),"/ban %d %s",ban[playerid],(inputtext));
OnPlayerCommandText(playerid,string);
}
else
{
return true;
}
}
Автор мануала: Я
Скрин
Под ****-Rp
Нету кнопки переключения и правого текстдрава. Лень делать.
Последнее редактирование:
