Deomons
Новичок
Когда я ввожу /spec то сервер вырубаеться,ошибок и варнингов нет
Вот код /spec
Это в new
Это в public OnPlayerCommandText
Это в В public OnPlayerSelectedMenuRow
Это в public Menu()
Это в public OnVehicleDamageStatusUpdate
Команду брал от сюда http://pawno-info.ru/threads/90183-spec-%D0%A0%D0%B5%D0%B6%D0%B8%D0%BC-%D0%BD%D0%B0%D0%B1%D0%BB%D1%8E%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F?highlight=%2Fspec
Вот код /spec
Это в new
PHP:
new Spectate[MAX_PLAYERS];
new Menu:specmenu;
new Toogle[MAX_PLAYERS];
PHP:
if(strcmp(cmd, "/spec", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new specid;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "» {00a8ff}Eniieucoaoa eiiaiao: {FFFFFF} /spec [PlayerID]");
specid = ReturnUser(tmp);
if(specid == playerid) return SendClientMessage(playerid, COLOR_GREY, "[Ioeaea] - Au oeacaee naie ID");
if(PlayerInfo[specid][pAdmin] >= 6) return SendClientMessage(playerid,COLOR_GREY,"[Ioeaea] - Au ia ii?aoa iaae?aaou ca aaieieno?aoeae");
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), "[Adm] Yoio ea?ie iaae?aaao ca {00a8ff}%s{ffffff} [PlayerID: {00a8ff}%d{ffffff}]", sendername,gSpectateID[specid]);
SendClientMessage(playerid, COLOR_BLUE, string);
return 1;
}
if(GetPlayerState(specid) != 1 && GetPlayerState(specid) != 2 && GetPlayerState(specid) != 3) return SendClientMessage(playerid, COLOR_GREY, " Ea?ie ia anooiee a ea?o!");
StartSpectate(playerid, specid);
Spectate[playerid] = specid;
ShowMenuForPlayer(specmenu,playerid);
}
}
}
return 1;
}
PHP:
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:
{
new spechp = Spectate[playerid];
// RepairVehicleAC(GetPlayerVehicleID(playerid));
Gas[GetPlayerVehicleID(spechp)] = 100;
format(string, sizeof(string), "Игрок %s получил 100 hp от администратора %s",giveplayer ,sendername);
ABroadCast(COLOR_GREY,string,1);
SetPlayerHealthAC(spechp, 100.0);
SetPlayerHealthAC(spechp, 100.0);
PlayerInfo[spechp][pHealth] = 100;
ShowMenuForPlayer(specmenu,playerid);
}
case 2:
{
if(Toogle[Spectate[playerid]] == 0)
{
TogglePlayerControllable(Spectate[playerid], 0);
format(string, sizeof(string), "Игрок %s был заморожен администратором %s",giveplayer ,sendername);
ABroadCast(COLOR_GREY,string,1);
ShowMenuForPlayer(specmenu,playerid);
Toogle[Spectate[playerid]] = 1;
}
else
{
TogglePlayerControllable(Spectate[playerid], 1);
format(string, sizeof(string), "Игрок %s был разморожен администратором %s",giveplayer ,sendername);
ABroadCast(COLOR_GREY,string,1);
ShowMenuForPlayer(specmenu,playerid);
Toogle[Spectate[playerid]] = 0;
}
}
case 3:
{
format(string, sizeof(string), "GMtest проведен на игроке %s администратором %s",giveplayer, sendername);
ABroadCast(COLOR_GREY,string,1);
new Float:boomx, Float:boomy, Float:boomz;
GetPlayerPos(Spectate[playerid],boomx, boomy, boomz);
CreateExplosion(boomx, boomy , boomz, 5, 2);
ShowMenuForPlayer(specmenu,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);
format(string, sizeof(string), "Игрок %s получил от администратора %s",giveplayer ,sendername);
ABroadCast(COLOR_GREY,string,1);
ShowMenuForPlayer(specmenu,playerid);
}
case 5:
{
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+100);
PlayerPlaySound(Spectate[playerid], 1130, slx, sly, slz+5);
format(string, sizeof(string), "Транспорт игрока %s проверен администратором %s",giveplayer ,sendername);
ABroadCast(COLOR_GREY,string,1);
ShowMenuForPlayer(specmenu,playerid);
}
case 6:
{
new playersip[150];
GetPlayerIp(Spectate[playerid],playersip,sizeof(playersip));
new bablonarykah = PlayerInfo[playerid][pMoney];
new bablovbanke = PlayerInfo[playerid][pAccount];
format(string,sizeof(string), "{ffffff} Nick - %s\n IP: %s\n Money: %d\n BankMoney: %d ",giveplayer,playersip,bablonarykah,bablovbanke);
ShowPlayerDialog(playerid,0,DIALOG_STYLE_MSGBOX,"{bbbbbb}Информация о игроке",string,"Okay","");
ShowMenuForPlayer(specmenu,playerid);
}
case 7:
{
ShowStats(playerid,Spectate[playerid]);
ShowMenuForPlayer(specmenu,playerid);
}
case 8:
{
if (PlayerInfo[playerid][pAdmin] >= 2)
{
format(string, sizeof(string), "sKick - Игрок %s отсоеденен от сервера администратором %s",giveplayer ,sendername);
ABroadCast(COLOR_GREY,string,1);
Kick(Spectate[playerid]);
}
else
{
SendClientMessage(playerid, COLOR_YELLOW, "Функция доступна администраторам 2 ADM LEVEL и выше");
ShowMenuForPlayer(specmenu,playerid);
return 1;
}
}
case 9:
{
if (PlayerInfo[playerid][pAdmin] >= 3)
{
new banplayer = Spectate[playerid];
format(string, sizeof(string), "sBan - Игрок %s заблокирован на неопределенный срок администратором %s",giveplayer ,sendername);
ABroadCast(COLOR_GREY,string,1);
PlayerInfo[banplayer][pBanned] = 1;
Kick(banplayer);
}
else
{
SendClientMessage(playerid, COLOR_YELLOW, "Функция доступна администраторам 3 ADM LEVEL и выше");
ShowMenuForPlayer(specmenu,playerid);
return 1;
}
}
case 10:
{
StopSpectate(playerid);
Spectate[playerid] = 255;
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
}
}
}
PHP:
public Menu()
{
specmenu = CreateMenu(" ", 1, 500.0, 150.0, 100.0 );
AddMenuItem(specmenu,0,"Update");
AddMenuItem(specmenu,0,"HP = 100");
AddMenuItem(specmenu,0,"Freeze");
AddMenuItem(specmenu,0,"GMtest");
AddMenuItem(specmenu,0,"Slap");
AddMenuItem(specmenu,0,"VehSlap");
AddMenuItem(specmenu,0,"Info");
AddMenuItem(specmenu,0,"Stats");
AddMenuItem(specmenu,0,"sKick");
AddMenuItem(specmenu,0,"sBan");
AddMenuItem(specmenu,0,"Spec Off");
DisableMenuRow(specmenu, 0);
}
PHP:
stock StartSpectate(playerid, specid)
{
for(new x=0; x<GetMaxPlayers(); x++)
{
if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && gSpectateID[x] == playerid)
{
// AdvanceSpectate(x);
}
}
if(IsPlayerInAnyVehicle(specid))
{
SetPlayerInterior(playerid,GetPlayerInterior(specid));
SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(specid));
TogglePlayerSpectating(playerid, 1);
PlayerSpectateVehicle(playerid, GetPlayerVehicleID(specid));
gSpectateID[playerid] = specid;
gSpectateType[playerid] = ADMIN_SPEC_TYPE_VEHICLE;
}
else
{
SetPlayerInterior(playerid,GetPlayerInterior(specid));
SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(specid));
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, specid);
gSpectateID[playerid] = specid;
gSpectateType[playerid] = ADMIN_SPEC_TYPE_PLAYER;
}
new ping = GetPlayerPing(specid);
new Float:health;
new Float:armour;
GetPlayerHealth(specid, health);
new string[100], name[24];
GetPlayerName(specid,name,sizeof(name));
SetTimer("SpectatorOb", 1000, 0);
format(string,sizeof(string),"~n~~n~~n~~n~~n~~n~~n~~n~~n~~w~NICK: %s - ID: %d~n~HP: %.0f - AP: %.1f - PING: %d", name,specid,health,armour,ping);
GameTextForPlayer(playerid,string,10000,3);
return 1;
}
stock StopSpectate(playerid)
{
TogglePlayerSpectating(playerid, 0);
gSpectateID[playerid] = INVALID_PLAYER_ID;
gSpectateType[playerid] = ADMIN_SPEC_TYPE_NONE;
GameTextForPlayer(playerid,"~n~~n~~n~~n~~n~~n~~n~~n~~w~Spectator Mode Off",3000,3);
return 1;
}
Последнее редактирование:
