bug spec
#1

The problem is that when someone comes into the store is corrupted
What is the solution؟





PHP код:
CMD:spec(playeridparams[])
{
    new 
id;
    
CL(playerid);
    if(
pInfo[playerid][Admin] >= 5)
    {
        if(
sscanf(params"u"id))
        {
            
SendClientMessage(playeridCOLOR_RED"USAGE: /spec [playerid]");
            
SendClientMessage(playeridCOLOR_ORANGE"Function: Spectates the specified player (Note there is no current next or prev spec)");
            return 
1;
        }
        if(
id == playerid) return Error(playerid1);
        if(
id == INVALID_PLAYER_ID) return Error(playerid0);
        if(
pInfo[playerid][Admin] < pInfo[id][Admin]) return Error(playerid8);
        if(
IsSpecing[playerid] == 1) return SendClientMessage(playeridCOLOR_RED"ERROR: You are already specing someone");
        if(
GPS[playerid] != -1) return SendClientMessage(playeridCOLOR_RED"ERROR: Disable the GPS first! (/gpsoff)");
        if(
IsInCameraMode[playerid] == 1) return SendClientMessage(playeridCOLOR_RED"ERROR: Turn off the Camera Mode first!");
        if(
ongps[playerid] == 1) return SendClientMessage(playeridCOLOR_RED"ERROR: Turn off your GPS destination first!");
        
GetPlayerPos(playeridSpecX[playerid], SpecY[playerid], SpecZ[playerid]);
        
Inter[playerid] = GetPlayerInterior(playerid);
        
vWorld[playerid] = GetPlayerVirtualWorld(playerid);
        
TogglePlayerSpectating(playeridtrue);
        if(
IsPlayerInAnyVehicle(id))
        {
            if(
GetPlayerInterior(id) > 0)
            {
                
SetPlayerInterior(playeridGetPlayerInterior(id));
            }
            if(
GetPlayerVirtualWorld(id) > 0)
            {
                
SetPlayerVirtualWorld(playeridGetPlayerVirtualWorld(id));
            }
            
PlayerSpectateVehicle(playeridGetPlayerVehicleID(id));
        }
        else
        {
            if(
GetPlayerInterior(id) > 0)
            {
                
SetPlayerInterior(playeridGetPlayerInterior(id));
            }
            if(
GetPlayerVirtualWorld(id) > 0)
            {
                
SetPlayerVirtualWorld(playeridGetPlayerVirtualWorld(id));
            }
            
PlayerSpectatePlayer(playeridid);
        }
        
format(Stringsizeof(String), "You have started to spectate %s(ID:%d)"GetName(id), id);
        
SendClientMessage(playeridCOLOR_YELLOWString);
        
IsSpecing[playerid] = 1;
        
IsBeingSpeced[id] = 1;
        
spectatorid[playerid] = id;
        
SendCommandToAdmins(playerid,"SPEC");
        new 
Float:hpFloat:ar;
        
GetPlayerHealth(idhp);
        
GetPlayerArmour(idar);
        new 
string[256];
        
format(string128"~w~- %s(%d) -~n~~n~~y~Health: ~w~%0.1f ~l~- ~y~Armour: ~w~%0.1f ~l~- ~y~Money: ~w~$%d~n~~n~~r~< Sprint - Jump >"GetName(id),id,hp,ar,GetPlayerMoney(id));
         
TextDrawSetString(GpsTD[playerid], string);
         
TextDrawShowForPlayer(playerid,GpsTD[playerid]);
    }
    else return 
Error(playerid3);
    return 
1;
}
CMD:specoff(playeridparams[])
{
    
CL(playerid);
    if(
pInfo[playerid][Admin] >= 1)
    {
        if(
IsSpecing[playerid] == 0) return SendClientMessage(playeridCOLOR_RED"ERROR: You are not spectating anyone");
        
TogglePlayerSpectating(playerid0);
        
IsSpecing[playerid] = 0;
        
SendCommandToAdmins(playerid,"SPECOFF");
        
TextDrawHideForPlayer(playerid,GpsTD[playerid]);
    }
    else return 
Error(playerid3);
    return 
1;

Reply
#2

pawn Код:
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
    for (new i; i != MAX_PLAYERS; ++i)
    {
        if (GetPlayerState(i) == PLAYER_STATE_SPECTATING && spectatorid[i] == playerid)
        {
            SetPlayerInterior(i, newinteriorid);
        }
    }
    return 1;
}
foreach is recommended instead of for loop.
Reply
#3

not work

change spec

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)