Колян_Отсыпь_Семян
Умник
Делал для своего мода так что подредактируете сами. 
СКРИНЫ:
Пешком:
В авто:
ко всем new
в OnPlayerSelectedMenuRow
в /recon команду
в stock Menu() - RLS
в stock StopSpectate(playerid)
Теперь TextDraw:
ко всем new
в OnPlayerConnect
в /recon команду
я засунул в UpdateSpeedometr вы как хотите в любой таймер не больше 1.5 сек
Теперь возврат на место после слежки:
ко всем new
в команду /recon
к пабликам
в stock StopSpectate(playerid)
в OnPlayerDisconnect
Повторяю!!! Делал для своего мода, подредактируйте под свой. by Freddy
СКРИНЫ:
Пешком:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
В авто:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
ко всем new
PHP:
new Menu:Admin;
--- у кого нету ---
new SpecAd[MAX_PLAYERS];
new SpecID[MAX_PLAYERS];
----------------------------
PHP:
if(Current == Admin)
{
if (dostup[playerid] != 1) return ShowPlayerDialog(playerid,2934,DIALOG_STYLE_INPUT,"Админ авторизация","Введите пароль\n\nПароль должен состоять из латинских букв и цифр\n\tразмером от 6 до 15 символов","Вход","Отмена");
ShowMenuForPlayer(Admin,playerid);
new ClickedPlayerName[MAX_PLAYER_NAME],pName[MAX_PLAYER_NAME]; GetPlayerName(SpecAd[playerid],ClickedPlayerName,24); GetPlayerName(playerid,pName,24);
switch(row)
{
case 0:
{
StartSpectate(playerid,SpecAd[playerid]);
}
case 1:
{
new string[128];
if(PlayerInfo[playerid][pAdmin] <= 1) return SendClientMessage(playerid, COLOR_WHITE, "Вам надо иметь 1 lvl админки или выше!"); ShowMenuForPlayer(Admin,playerid);
if(PlayerInfo[SpecAd[playerid]][pMuted] == 0)
{
if (dostup[playerid] != 1) return ShowPlayerDialog(playerid,2934,DIALOG_STYLE_PASSWORD,"Админ авторизация","Введите пароль\n\nПароль должен состоять из латинских букв и цифр\nразмером от 6 до 15 символов","Вход","Отмена");
format(string, sizeof(string), "%s получил бан чата от администратора %s ",ClickedPlayerName, pName );
SendClientMessageToAll(COLOR_LIGHTRED, string);
PlayerInfo[SpecAd[playerid]][pMuteTime] = 300;
PlayerInfo[SpecAd[playerid]][pMuted] = 1;
ShowMenuForPlayer(Admin,playerid);
}
else
{
format(string, sizeof(string), "Администратор %s снял бан чата у %s ", pName,ClickedPlayerName );
SendClientMessageToAll(COLOR_LIGHTRED, string);
PlayerInfo[SpecAd[playerid]][pMuteTime] = 0;
PlayerInfo[SpecAd[playerid]][pMuted] = 0;
ShowMenuForPlayer(Admin,playerid);
}
}
case 2:
{
if(PlayerInfo[playerid][pAdmin] <= 1) return SendClientMessage(playerid, COLOR_WHITE, "Вам надо иметь 1 lvl админки или выше!"); ShowMenuForPlayer(Admin,playerid);
ShowPlayerDialog(playerid,13997,DIALOG_STYLE_INPUT,"Кик","Введите причину","Кик","Отмена");
}
case 3:
{
if(PlayerInfo[playerid][pAdmin] <= 2) return SendClientMessage(playerid, COLOR_WHITE, "Вам надо иметь 2 lvl админки или выше!"); ShowMenuForPlayer(Admin,playerid);
ShowPlayerDialog(playerid,13998,DIALOG_STYLE_INPUT,"Варн","Введите причину","Варн","Отмена");
}
case 4:
{
if(PlayerInfo[playerid][pAdmin] <= 2) return SendClientMessage(playerid, COLOR_WHITE, "Вам надо иметь 2 lvl админки или выше!"); ShowMenuForPlayer(Admin,playerid);
ShowPlayerDialog(playerid,13999,DIALOG_STYLE_INPUT,"Бан","Введите причину","Бан","Отмена");
}
case 5:
{
if(PlayerInfo[playerid][pAdmin] <= 2) return SendClientMessage(playerid, COLOR_WHITE, "Вам надо иметь 2 lvl админки или выше!"); ShowMenuForPlayer(Admin,playerid);
new Float:shealth;
new Float:slx, Float:sly, Float:slz;
new name[MAX_PLAYER_NAME];
new sendername[MAX_PLAYER_NAME];
GetPlayerName(playerid ,name , sizeof(name));
GetPlayerName(SpecAd[playerid] ,sendername , sizeof(sendername));
GetPlayerHealth(SpecAd[playerid], shealth);
SetPlayerHealthAC(SpecAd[playerid], shealth-5);
GetPlayerPos(SpecAd[playerid], slx, sly, slz);
SetPlayerPosServer(SpecAd[playerid], slx, sly, slz+5);
PlayerPlaySound(SpecAd[playerid], 1130, slx, sly, slz+5);
new string[128];
format(string, sizeof(string), "Админ %s дал поджопник %s",name,sendername);
ABroadCast(COLOR_LIGHTRED,string,1);
SendClientMessage(SpecAd[playerid], COLOR_LIGHTRED, string);
}
case 6:
{
new mess[256];
format(mess, sizeof(mess), "/getstats %d",SpecAd[playerid]);
OnPlayerCommandText(playerid,mess);
}
case 7:
{
new giveplayer[256];
new playersip[256];
GetPlayerName(SpecAd[playerid], giveplayer, sizeof(giveplayer));
GetPlayerIp(SpecAd[playerid],playersip,sizeof(playersip));
new string[128];
format(string, sizeof(string), "[%s] IP: %s",giveplayer,playersip);
SendClientMessage(playerid,0x6495EDFF,string);
}
case 8:
{
if(PlayerInfo[playerid][pAdmin] <= 2) return SendClientMessage(playerid, COLOR_WHITE, "Вам надо иметь 2 lvl админки или выше!"); ShowMenuForPlayer(Admin,playerid);
GetPlayerHealth(SpecAd[playerid],GMHP[SpecAd[playerid]][0]);
GetVehicleHealth(GetPlayerVehicleID(SpecAd[playerid]),VEHHP[SpecAd[playerid]][0]);
GetPlayerArmour(SpecAd[playerid], GMARMOUR[SpecAd[playerid]][0]);
SetPlayerHealthAC(SpecAd[playerid], 100.0);
player_NoCheckTimeVeh[SpecAd[playerid]] = 3;
SetVehicleHealth(GetPlayerVehicleID(SpecAd[playerid]),10000.0);
SetPlayerArmourAC(SpecAd[playerid], 0);
SetTimerEx("GETHP",1000,false,"i",SpecAd[playerid]);
new Float:boomx, Float:boomy, Float:boomz;
GetPlayerPos(SpecAd[playerid],boomx, boomy, boomz);
CreateExplosion(boomx, boomy , boomz, 5, 2);
ShowMenuForPlayer(Admin,playerid);
}
case 10:
{
if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING)
{
StopSpectate(playerid);
SetPlayerHealthAC(playerid, 100);
}
SpawnPlayer(playerid);
HideMenuForPlayer(Admin,playerid);
}
case 9:
{
if(PlayerInfo[playerid][pAdmin] <= 2) return SendClientMessage(playerid, COLOR_WHITE, "Вам надо иметь 3 lvl админки или выше!"); ShowMenuForPlayer(Admin,playerid);
{
new stringskill[800];
new points[6],percent[2] = "%";
points[0] = 100 - PlayerInfo[SpecAd[playerid]][pGunSkill][0];
points[1] = 100 - PlayerInfo[SpecAd[playerid]][pGunSkill][1];
points[2] = 100 - PlayerInfo[SpecAd[playerid]][pGunSkill][2];
points[3] = 100 - PlayerInfo[SpecAd[playerid]][pGunSkill][3];
points[4] = 100 - PlayerInfo[SpecAd[playerid]][pGunSkill][4];
points[5] = 100 - PlayerInfo[SpecAd[playerid]][pGunSkill][5];
format(stringskill,sizeof(stringskill), "Nick player:\t %s\n\nSDPistol:\t[%s]%d%s\nDeagle:\t[%s]%d%s\nShotGun:\t[%s]%d%s\nMP5\t\t[%s]%d%s\nAK47:\t\t[%s]%d%s\nM4A1:\t\t[%s]%d%s",
getName(SpecAd[playerid]),
ToDevelopSkills(PlayerInfo[SpecAd[playerid]][pGunSkill][0],points[0]),PlayerInfo[SpecAd[playerid]][pGunSkill][0],percent,
ToDevelopSkills(PlayerInfo[SpecAd[playerid]][pGunSkill][1],points[1]),PlayerInfo[SpecAd[playerid]][pGunSkill][1],percent,
ToDevelopSkills(PlayerInfo[SpecAd[playerid]][pGunSkill][2],points[2]),PlayerInfo[SpecAd[playerid]][pGunSkill][2],percent,
ToDevelopSkills(PlayerInfo[SpecAd[playerid]][pGunSkill][3],points[3]),PlayerInfo[SpecAd[playerid]][pGunSkill][3],percent,
ToDevelopSkills(PlayerInfo[SpecAd[playerid]][pGunSkill][4],points[4]),PlayerInfo[SpecAd[playerid]][pGunSkill][4],percent,
ToDevelopSkills(PlayerInfo[SpecAd[playerid]][pGunSkill][5],points[5]),PlayerInfo[SpecAd[playerid]][pGunSkill][5],percent);
ShowPlayerDialog(playerid,43,DIALOG_STYLE_MSGBOX, "Скиллы игрока",stringskill, "Закрыть", "");
}
}
case 11:
{
if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING)
{
StopSpectate(playerid);
SetPlayerHealthAC(playerid, 100);
}
SpawnPlayer(playerid);
HideMenuForPlayer(Admin,playerid);
}
}
}
PHP:
case 13997:
{
if(PlayerInfo[playerid][pAdmin] >= 1)
{
new mess[256];
format(mess, sizeof(mess), "/kick %d %s",SpecAd[playerid],inputtext);
OnPlayerCommandText(playerid,mess);
}
}
case 13998:
{
if(PlayerInfo[playerid][pAdmin] >= 2)
{
new mess[256];
format(mess, sizeof(mess), "/warn %d %s",SpecAd[playerid],inputtext);
OnPlayerCommandText(playerid,mess);
}
}
case 13999:
{
if(PlayerInfo[playerid][pAdmin] >= 2)
{
new mess[256];
format(mess, sizeof(mess), "/ban %d %s",SpecAd[playerid],inputtext);
OnPlayerCommandText(playerid,mess);
}
}
PHP:
ShowMenuForPlayer(Admin,playerid);
------ у кого нету -----
SpecAd[playerid] = specid;
SpecID[specid] = playerid;
--------
PHP:
SetMenuColumnHeader(Admin, 0, "RMenu");
AddMenuItem(Admin,0,"Switch");
AddMenuItem(Admin,0,"Mute");
AddMenuItem(Admin,0,"Kick");
AddMenuItem(Admin,0,"Warn");
AddMenuItem(Admin,0,"Ban");
AddMenuItem(Admin,0,"Slap");
AddMenuItem(Admin,0,"Stats");
AddMenuItem(Admin,0,"GetIP");
AddMenuItem(Admin,0,"GMTest");
AddMenuItem(Admin,0,"Skills");
AddMenuItem(Admin,0,"OFF");
PHP:
HideMenuForPlayer(Admin,playerid);
Теперь TextDraw:
ко всем new
PHP:
new Text:FULLRECON[MAX_PLAYERS];
PHP:
FULLRECON[playerid] = TextDrawCreate(525.000000, 128.000000, "_");
TextDrawFont(FULLRECON[playerid], 1);
TextDrawSetOutline(FULLRECON[playerid], 0);
TextDrawLetterSize(FULLRECON[playerid], 0.410000, 1.000000);
PHP:
TextDrawShowForPlayer(playerid, FULLRECON[playerid]);
PHP:
for(new i = 0; i < MAX_PLAYERS; i++)
{
new tttgtg;
new strr1[256];
tttgtg = GetPlayerAmmo(SpecAd[i]);
new Float:hppp;
new Float:aermor;
GetPlayerArmour(SpecAd[i],aermor);
GetPlayerHealth(SpecAd[i],hppp);
if(PlayerInfo[i][pAdmin] >= 2)
{
if(IsPlayerInAnyVehicle(SpecAd[i]))
{
new Float:health;
GetVehicleHealth(GetPlayerVehicleID(SpecAd[i]),health);
format(strr1, sizeof(strr1),"%s~n~[ID:%d]~n~~n~~r~Armour: ~w~%.0f~n~~g~HP: ~w~%.0f~n~~g~CAR HP: ~w~%.0f~n~~r~MONEY:~w~%d~n~~b~AMMO: ~w~%d~n~~p~WARNS: ~w~%d~n~~y~PING: ~w~%d~n~~b~SPEED: ~w~%d~n~~b~OGRAN: ~w~%d",getName(SpecAd[i]),SpecAd[i],aermor,hppp,health,PlayerInfo[SpecAd[i]][pCash],tttgtg,PlayerInfo[SpecAd[i]][pWarns],GetPlayerPing(SpecAd[i]),SpeedVehicle(SpecAd[i]),Limiter[SpecAd[i]]);
TextDrawSetString(FULLRECON[i],strr1);
}
if(!IsPlayerInAnyVehicle(SpecAd[i]))
{
format(strr1, sizeof(strr1),"%s~n~[ID:%d]~n~~n~~r~Armour: ~w~%.0f~n~~g~HP: ~w~%.0f~n~~g~BANK:~w~%d~n~~r~MONEY:~w~%d~n~~b~AMMO: ~w~%d~n~~p~WARNS: ~w~%d~n~~y~PING: ~w~%d~n~~b~SPEED: ~w~%d",getName(SpecAd[i]),SpecAd[i],aermor,hppp,PlayerInfo[SpecAd[i]][pBank],PlayerInfo[SpecAd[i]][pCash],tttgtg,PlayerInfo[SpecAd[i]][pWarns],GetPlayerPing(SpecAd[i]),SpeedVehicle(SpecAd[i]));
TextDrawSetString(FULLRECON[i],strr1);
}
}
ко всем new
PHP:
new Float:TeleportDest[MAX_PLAYERS][5];
new TeleportDestNoFloat[MAX_PLAYERS][2];
PHP:
if(GetPlayerState(playerid) != PLAYER_STATE_SPECTATING)
{
GetPlayerPos(playerid, TeleportDest[playerid][0],TeleportDest[playerid][1],TeleportDest[playerid][2]);
TeleportDestNoFloat[playerid][0] = GetPlayerInterior(playerid);
TeleportDestNoFloat[playerid][1] = GetPlayerVirtualWorld(playerid);
}
PHP:
forward TeleportTimer(playerid);
public TeleportTimer(playerid)
{
SetPlayerPosServer(playerid, TeleportDest[playerid][0],TeleportDest[playerid][1],TeleportDest[playerid][2]);
SetPlayerInterior(playerid, TeleportDestNoFloat[playerid][0]);
SetPlayerVirtualWorld(playerid, TeleportDestNoFloat[playerid][1]);
return true;
}
PHP:
SetTimerEx("TeleportTimer",1000,false,"i",playerid);
PHP:
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(GetPlayerState(i) == PLAYER_STATE_SPECTATING && gSpectateID[i] == playerid)
{
StopSpectate(i);
SetPlayerHealthAC(i, 100);
format(string, sizeof(string), "~w~RECON ~r~ OFF~n~ ~r~PLAYER DISCONNECT");
GameTextForPlayer(i, string, 5000, 3);
}
}
Последнее редактирование модератором:
