Problem: ponekad nakon zavrsetka speca igrac se (re spawnjue) na poziciju gde se i ulogovao. I drugi problem nakon /endspec admin boja je bela a ne crvena
Deo Koda:
if (strcmp(cmd, "/spec", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if (PlayerInfo >= 1 || IsPlayerAdmin(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "USAGE: /spec [playerid/PartOfName]");
return 1;
}
giveplayerid = ReturnUser(tmp);
new Float:Health, Float:Armour;
new World = GetPlayerVirtualWorld(playerid);
new PlInterior = GetPlayerInterior(playerid);
new weaponid, ammo;
GetPlayerHealth(playerid, Health);
GetPlayerArmour(playerid, Armour);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if(Spectate == 255)
{
GetPlayerPos(playerid, TeleportDest,TeleportDest,TeleportDest);
if(PlayerInfo >= 6)
{
if(PlayerInfo == 1)
{
for (new i=0; i<13; i++)
{
GetPlayerWeaponData(playerid, i, weaponid, ammo);
OtherWeapons = weaponid;
OtherAmmo = ammo;
}
SpHealth = Health;
SpArmour = Armour;
}
else
{
SaveGuns(playerid);
PlayerInfo = Health;
PlayerInfo = Armour;
}
}
else
{
SaveGuns(playerid);
PlayerInfo = Health;
PlayerInfo = Armour;
}
}
Interior = PlInterior;
VirWorld = World;
TogglePlayerSpectating(playerid, 1);
if(IsPlayerInAnyVehicle(giveplayerid))
{
PlayerSpectateVehicle(playerid, GetPlayerVehicleID(giveplayerid));
Spectate = giveplayerid;
}
else
{
PlayerSpectatePlayer(playerid, giveplayerid);
Spectate = giveplayerid;
}
Spectate = giveplayerid;
SetPlayerHealth(playerid, Health);
SetPlayerArmour(playerid, Armour);
SafeSetPlayerInterior(playerid, GetPlayerInterior(giveplayerid));
SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(giveplayerid));
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), ": %s Is Now Spectating %s (%d).", sendername, giveplayer, giveplayerid);
SendAdminMessage(COLOR_LIGHTRED,string);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "* You are now spectating this player. To Unspec him spec another id or type /endspec ");
new y, m, d;
new h,mi,s;
getdate(y,m,d);
gettime(h,mi,s);
format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] %s is speccing %s's",d,m,y,h,mi,s,sendername,giveplayer);
AdminLog(string);
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " No Such Player");
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " You are not an admin");
}
}
return 1;
}
if (strcmp(cmd, "/endspec", true) == 0) //
{
if(IsPlayerConnected(playerid))
{
if (PlayerInfo >= 1 || IsPlayerAdmin(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "USAGE: /endspec [playerid/PartOfName]");
return 1;
}
//giveplayerid = strval(tmp);
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if(PlayerInfo == 1)
{
if(PlayerInfo >= 1) { SetPlayerColor(playerid,0xFF66FF00); }
if(PlayerInfo >= 3) { SetPlayerColor(playerid,0xFF550000); }
if(PlayerInfo >= 6) { SetPlayerColor(playerid,0xFF000000); }
}
else
{
SetPlayerToTeamColor(playerid);
}
TogglePlayerSpectating(playerid, 0);
SetPlayerHealth(playerid, PlayerInfo);
SetPlayerArmour(playerid, PlayerInfo);
Spectate = 255;
SafeSetPlayerPos(playerid,TeleportDest,TeleportDest,TeleportDest);
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), ": %s Is No longer Spectating %s (%d).", sendername, giveplayer, giveplayerid);
SendAdminMessage(COLOR_LIGHTRED,string);
new y, m, d;
new h,mi,s;
getdate(y,m,d);
gettime(h,mi,s);
format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] %s is speccing %s's",d,m,y,h,mi,s,sendername,giveplayer);
AdminLog(string);
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " No Such Player");
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " You are not an admin");
}
}
return 1;
} 