26.07.2017, 13:35
Hi all. Need help with spectation. Command works ok, but when I wana stop spectation, system returns me to bad position ( system have to return me to my last positon, but returns to my login positon, where I loged last time ). Why?
Код:
CMD:spec(playerid,params[]) { if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING) return StopSpec(playerid); new id; if(sscanf(params, "u", id)) return SendError(playerid,"Use: /spec [ID]"); new mess[80 + MAX_PLAYER_NAME]; SpectatingIS(playerid); SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(id)); SetPlayerInterior(playerid, GetPlayerInterior(id)); TogglePlayerSpectating(playerid, true); if(IsPlayerInAnyVehicle(id)) PlayerSpectateVehicle(playerid, GetPlayerVehicleID(id)); else PlayerSpectatePlayer(playerid, id); return 1; }
Код:
stock SpectatingIS(playerid) { statec[playerid] = true; GetPlayerPos(playerid, krd[playerid][0], krd[playerid][1], krd[playerid][2]); pInfo[playerid][world] = GetPlayerVirtualWorld(playerid); for(new slot = 0; slot < 13; slot ++) GetPlayerWeaponData(playerid,slot,weaps[playerid] [slot],amunition[playerid][slot]); pInfo[playerid][interior] = GetPlayerInterior(playerid); return 1; }
Код:
stock StopSpec(playerid) { statec[playerid] = true; SetPlayerPos(playerid, krd[playerid][0], krd[playerid][1], krd[playerid][2]); SetPlayerVirtualWorld(playerid, pInfo[playerid][world]); SetPlayerInterior(playerid,pInfo[playerid][interior]); TogglePlayerSpectating(playerid,false); if(pInfo[playerid][ant] == false) TogglePlayerControllable(playerid,true); for(new slot=0; slot < 13; slot++) GivePlayerWeaponEx(playerid,weaps[playerid][slot], amunition[playerid] [slot]); return 1; }