Dave Stivenson
Ученик
Всем привет
Выкладываю мой первый написаный мною скрипт
Ко всем new:
PHP:
new SpecHATimer[MAX_PLAYERS];
new Float:GMHP[MAX_PLAYERS][2];
new Float:GMARMOUR[MAX_PLAYERS][1];
new Float:VEHHP[MAX_PLAYERS][2];
new TeleportDestNoFloat[MAX_PLAYERS][2];
new Toogle[MAX_PLAYERS];
new Text:DRAP[MAX_PLAYERS];
new Spectate[MAX_PLAYERS],Menu:specmenu,SpecID[MAX_PLAYERS];
PHP:
forward SpecHArefresh(playerid, specplayerid);
forward GETHP(playerid);
PHP:
DRAP[playerid] = TextDrawCreate(510.0, 120.0, "_");
TextDrawFont(DRAP[playerid], 2);
TextDrawLetterSize(DRAP[playerid], 0.30,1.20);
TextDrawColor(DRAP[playerid], -1);
TextDrawSetShadow(DRAP[playerid], 1);
TextDrawBackgroundColor(DRAP[playerid], 0x00000044);
TextDrawSetOutline(DRAP[playerid], 0);
TextDrawSetProportional(DRAP[playerid], 3);
TextDrawAlignment(DRAP[playerid], 1);
PHP:
for (new i, m = GetMaxPlayers(); i < m; 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);
TextDrawHideForPlayer(playerid, DRAP[playerid]);
KillTimer(SpecHATimer[playerid]);
}
}
PHP:
Menu()
{
specmenu = CreateMenu("RE", 1, 40.0, 220.0, 100.0);
AddMenuItem(specmenu,0,"UPDATE");
AddMenuItem(specmenu,0,"FREEZE");
AddMenuItem(specmenu,0,"SLAP");
AddMenuItem(specmenu,0,"GM");
AddMenuItem(specmenu,0,"STATS");
AddMenuItem(specmenu,0,"OFF");
}
PHP:
else if(Current == specmenu)
{
new giveplayer[24],sendername[24],string[150];
GetPlayerName(Spectate[playerid], giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername));
switch(row)
{
case 0:
{
StartSpectate(playerid, Spectate[playerid]);
ShowMenuForPlayer(specmenu,playerid);
}
case 1:
{
if(Toogle[Spectate[playerid]] == 0)
{
TogglePlayerControllable(Spectate[playerid], 0);
format(string, sizeof(string), "Администратор %s заморозил игрока %s",sendername,giveplayer);
ABroadCast(0xffa500aa,string,1);
ShowMenuForPlayer(specmenu,playerid);
Toogle[Spectate[playerid]] = 1;
}
else
{
TogglePlayerControllable(Spectate[playerid], 1);
format(string, sizeof(string), "Администратор %s разморозил игрока %s",sendername,giveplayer);
ABroadCast(0xffa500aa,string,1);
ShowMenuForPlayer(specmenu,playerid);
Toogle[Spectate[playerid]] = 0;
}
}
case 2:
{
if(PlayerInfo[playerid][pAdmin] < 2) return SendClientMessage(playerid, COLOR_RED, string);
format(string, sizeof(string), "Администратор %s ударил игрока %s",sendername ,giveplayer);
ABroadCast(0xffa500aa,string,0);
new Float:Xq,Float:Yq,Float:Zq;
GetPlayerPos(Spectate[playerid],Xq,Yq,Zq);
SetPlayerPos(Spectate[playerid],Xq,Yq,Zq+5);
SendClientMessage(Spectate[playerid], 0xbbbbbbaa, "Вас слапнул администратор");
ShowMenuForPlayer(specmenu,playerid);
}
case 3:
{
if(PlayerInfo[playerid][pAdmin] < 2) return SendClientMessage(playerid, COLOR_RED, string);
format(string, sizeof(string), "Администратор %s произвёл GMTEST на игроке %s",sendername ,giveplayer);
ABroadCast(COLOR_GREY,string,0);
GetPlayerHealth(Spectate[playerid],GMHP[Spectate[playerid]][0]);
GetVehicleHealth(GetPlayerVehicleID(Spectate[playerid]),VEHHP[Spectate[playerid]][0]);
GetPlayerArmour(Spectate[playerid], GMARMOUR[Spectate[playerid]][0]);
SetPlayerHealthAC(Spectate[playerid], 100.0);
player_NoCheckTimeVeh[Spectate[playerid]] = 3;
SetVehicleHealth(GetPlayerVehicleID(Spectate[playerid]),10000.0);
SetPlayerArmourAC(Spectate[playerid], 0);
SetTimerEx("GETHP",1000,false,"i",Spectate[playerid]);
new Float:boomx, Float:boomy, Float:boomz;
GetPlayerPos(Spectate[playerid],boomx, boomy, boomz);
CreateExplosion(boomx, boomy+3, boomz+8, 5, 2);
ShowMenuForPlayer(specmenu,playerid);
}
case 4: { ShowStats(playerid,Spectate[playerid]); ShowMenuForPlayer(specmenu,playerid); }
case 5: OnPlayerCommandText(playerid,"/reoff");
}
}
PHP:
if(strcmp(cmd, "/recon", true) == 0 || strcmp(cmd, "/re", true) == 0)
{
if (PlayerInfo[playerid][pAdmin] >= 1)
{
if(IsPlayerConnected(playerid))
{
new specplayerid;
GetPlayerName(specplayerid, giveplayer, sizeof(giveplayer));
tmp = strtok(cmdtext, idx);
specplayerid = strval(tmp);
if(!strlen(tmp)) return SendClientMessage(playerid, 0x22ff00AA, "» {bbbbbb}Введите{FFFFFF}: /re [ид]");
if(specplayerid == playerid) return SendClientMessage(playerid, COLOR_WHITE, "Ошибка: Вы ввели свой ID!");
if(IsPlayerConnected(specplayerid))
{
if(GetPlayerState(playerid) != PLAYER_STATE_SPECTATING)
{
GetPlayerPos(playerid, TeleportDest[playerid][0],TeleportDest[playerid][1],TeleportDest[playerid][2]);
TeleportDestNoFloat[playerid][0] = GetPlayerInterior(specplayerid);
TeleportDestNoFloat[playerid][1] = GetPlayerVirtualWorld(specplayerid);
SpecHATimer[playerid] = SetTimerEx("SpecHArefresh",500,true,"ff",playerid,specplayerid);
TextDrawShowForPlayer(playerid, DRAP[playerid]);
}
if(GetPlayerState(specplayerid) == PLAYER_STATE_SPECTATING && gSpectateID[specplayerid] != INVALID_PLAYER_ID)
{
GetPlayerName(gSpectateID[specplayerid], sendername, sizeof(sendername));
format(string, sizeof(string), "Администратор уже следит за {1e90ff}%s[%d]", sendername,gSpectateID[specplayerid]);
SendClientMessage(playerid, COLOR_WHITE, string);
return true;
}
if(GetPlayerState(specplayerid) != 1 && GetPlayerState(specplayerid) != 2 && GetPlayerState(specplayerid) != 3) return SendClientMessage(playerid, COLOR_WHITE, "Ошибка!");
StartSpectate(playerid, specplayerid);
Spectate[playerid] = specplayerid;
SpecID[specplayerid] = playerid;
ShowMenuForPlayer(specmenu,playerid);
}
}
}
return true;
}
if(strcmp(cmd, "/reoff", true) == 0)
{
if(PlayerInfo[playerid][pAdmin] >= 1)
{
if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING)
StopSpectate(playerid);
Spectate[playerid] = 255;
TextDrawHideForPlayer(playerid, DRAP[playerid]);
KillTimer(SpecHATimer[playerid]);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
}
return true;
}
PHP:
public SpecHArefresh(playerid, specplayerid)
{
new giveplayer[MAX_PLAYER_NAME];
new sendername[MAX_PLAYER_NAME];
new DRAPstring[512];
new Float:armour, Float:health;
new ping = GetPlayerPing(specplayerid);
new pip[64];
new pFPS[MAX_PLAYERS];
pFPS[specplayerid] = GetPlayerFPS(specplayerid);
GetPlayerIp(specplayerid, pip, sizeof(pip));
GetPlayerHealth(specplayerid, health);
GetPlayerArmour(specplayerid, armour);
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(specplayerid, giveplayer, sizeof(giveplayer));
format(DRAPstring,sizeof(DRAPstring),"~p~Name: ~w~%s~n~~p~IP: ~w~%s~n~~p~Number: ~w~%d~n~~p~Warns: ~w~%d~n~~n~~r~Health: ~w~%.0f~n~~r~Armour: ~w~%.0f~n~~n~~y~Speed: ~w~%d KM/H~n~~n~~g~$ Money: ~w~%d~n~~g~$ Bank: ~w~%d~n~~n~~b~Ping: ~w~%d~n~~b~FPS: ~w~%d",giveplayer,pip,PlayerInfo[specplayerid][pPnumber],PlayerInfo[specplayerid][pWarns],health,armour,SpeedVehicle(specplayerid) / 2,PlayerInfo[specplayerid][pCash],PlayerInfo[specplayerid][pBank],ping,pFPS[specplayerid]);
TextDrawSetString(DRAP[playerid], DRAPstring);
return true;
}
PHP:
public GETHP(playerid)
{
new string[128],sendername[MAX_PLAYER_NAME];
GetPlayerName(playerid,sendername,sizeof(sendername));
GetPlayerHealth(playerid,GMHP[playerid][1]);
GetVehicleHealth(GetPlayerVehicleID(playerid),VEHHP[playerid][1]);
if(!IsPlayerInAnyVehicle(playerid))
{
if(GMHP[playerid][1] >= 100.0)
{
format(string, sizeof(string), "{ff0000}[ERROR: 015/ANTI-GM] {bbbbbb}%s[%d] использует ГМ/CLEO скрипты.", sendername,playerid);
ABroadCast(-1,string,1);
SetPlayerHealthAC(playerid, GMHP[playerid][0]);
SetPlayerArmourAC(playerid, GMARMOUR[playerid][0]);
return true;
}
else
{
format(string, sizeof(string), "{34c924}[ANTI-GM] {bbbbbb}%s[%d] не использует ГМ/CLEO скрипты.", sendername,playerid);
ABroadCast(-1,string,1);
SetPlayerHealthAC(playerid, GMHP[playerid][0]);
SetPlayerArmourAC(playerid, GMARMOUR[playerid][0]);
return true;
}
}
else
{
if(VEHHP[playerid][1] >= 9999.0)
{
format(string, sizeof(string), "{ff0000}[ERROR: 015/ANTI-GM] {bbbbbb}%s[%d] Использует ГМ/CLEO скрипты.", sendername,playerid);
ABroadCast(-1,string,1);
SetVehicleHealth(GetPlayerVehicleID(playerid),VEHHP[playerid][0]);
return true;
}
else
{
format(string, sizeof(string), "{34c924}[ANTI-GM] {bbbbbb}%s[%d] не использует ГМ/CLEO скрипты.", sendername,playerid);
ABroadCast(-1,string,1);
SetVehicleHealth(GetPlayerVehicleID(playerid),VEHHP[playerid][0]);
return true;
}
}
}
PHP:
stock GetPlayerFPS(playerid)
{
SetPVarInt(playerid, "DrunkL", GetPlayerDrunkLevel(playerid));
if(GetPVarInt(playerid, "DrunkL") < 100) SetPlayerDrunkLevel(playerid, 2000);
else{
if(GetPVarInt(playerid, "LDrunkL") != GetPVarInt(playerid, "DrunkL"))
{
SetPVarInt(playerid, "FPS", (GetPVarInt(playerid, "LDrunkL") - GetPVarInt(playerid, "DrunkL")));
SetPVarInt(playerid, "LDrunkL", GetPVarInt(playerid, "DrunkL"));
if((GetPVarInt(playerid, "FPS") > 1) && (GetPVarInt(playerid, "FPS") < 256))
{
return GetPVarInt(playerid, "FPS") - 1;
}
}
}
return true;
}
За основу брал Ultra-RP (Автор: About.rp)
Текстдрав делал я (Dave Stivenson)
Если будут ошибки, пишите в комментарии,буду исправлять
Текстдрав делал я (Dave Stivenson)
Если будут ошибки, пишите в комментарии,буду исправлять
Последнее редактирование:
