Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: GodX_ poslato Avgust 04, 2021, 15:36:45 POSLE PODNE

Naslov: Vracanje na staru poziciju
Poruka od: GodX_ poslato Avgust 04, 2021, 15:36:45 POSLE PODNE
Problem(error/warning): Ne znam kako da vratim igraca na staru poziciju kada ugasi spec
Deo skripte: [pawn]CMD:spec(playerid, params[])
{
   if(UlogovanProvjera[playerid] == 0) return NisiUlogovan;
   if(IsPlayerAdmin(playerid) || PlayerInfo [playerid] [pAdmin] > 0 || PlayerInfo [playerid] [pSpecTeam] > 0)
   {
      new targetid, pName[MAX_PLAYER_NAME], pSpectatedName[MAX_PLAYER_NAME], str[128], Float:X, Float:Y, Float:Z;
      if(sscanf(params, "u", targetid)) return SendClientMessage(playerid, -1, "{039DFC}[BC:RP]: {FFFFFF}/spec [ID/Ime]");
      GetPlayerName(playerid, pName, sizeof(pName));
      GetPlayerName(targetid, pSpectatedName, sizeof(pSpectatedName));
      format(str, sizeof(str), ""ADMINBOJA"Admin {FFFFFF}%s "ADMINBOJA"je poceo specati igraca "BIJELA"%s.", pName, pSpectatedName);
      SetTimerEx("spectimer", 10, false, "i", targetid);
      foreach(Player, i)
      if(PlayerInfo [pAdmin] >= 6)
      {
         SendClientMessage(i, -1, str);   
      }      
   }
   else NisiOvlasten;

   return 1;
}
CMD:specoff(playerid, params[])
{
   if(UlogovanProvjera[playerid] == 0) return NisiUlogovan;
   if(IsPlayerAdmin(playerid) || PlayerInfo [playerid] [pAdmin] > 0 || PlayerInfo [playerid] [pSpecTeam] > 0)
   {
      new str[64], pName[MAX_PLAYER_NAME];
      GameTextForPlayer(playerid, "\n\n\nPrekinuli ste spec. Vraceni ste na staru poziciju.", 3000, 3);
      GetPlayerName(playerid, pName, sizeof(pName));
      format(str, sizeof(str), ""ADMINBOJA"Admin {FFFFFF}%s "ADMINBOJA"je prekinuo specati.", pName);
      TogglePlayerSpectating(playerid, 0);
      foreach(Player, i)
      {
         if(PlayerInfo [pAdmin] > 4) return SendClientMessage(i, -1, str);
      }

   }
   else NisiOvlasten;
   return 1;
}[/pawn]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
Vaš odgovor
Naslov: Odg: Vracanje na staru poziciju
Poruka od: Galardo poslato Avgust 04, 2021, 15:42:14 POSLE PODNE
Sacuvas poziciju unutar varijabli x,y,z i samo postavis  :)
Naslov: Odg: Vracanje na staru poziciju
Poruka od: GodX_ poslato Avgust 04, 2021, 15:50:47 POSLE PODNE
ne mogu sacuvat u komandi spec a postavit u komandi specoff
Naslov: Odg: Vracanje na staru poziciju
Poruka od: pokerface poslato Avgust 04, 2021, 19:02:48 POSLE PODNE
Citat: GodX_ poslato Avgust 04, 2021, 15:50:47 POSLE PODNE
ne mogu sacuvat u komandi spec a postavit u komandi specoff

Kada ides specoff poziva se OnPlayerSpawn, tako da stavi provjeru ako dolazi iz spec moda da ga vrati na X, Y, Z koja je postavljenja na spec cmd.
Naslov: Odg: Vracanje na staru poziciju
Poruka od: GodX_ poslato Avgust 04, 2021, 19:09:00 POSLE PODNE
mozes li napisati to, ako ti nije problem
[pawn]CMD:specoff(playerid, params[])
{
   if(UlogovanProvjera[playerid] == 0) return NisiUlogovan;
   if(IsPlayerAdmin(playerid) || PlayerInfo [playerid] [pAdmin] > 0 || PlayerInfo [playerid] [pSpecTeam] > 0)
   {
      new str[64], pName[MAX_PLAYER_NAME];
      GameTextForPlayer(playerid, "\n\n\nPrekinuli ste spec. Vraceni ste na staru poziciju.", 3000, 3);
      GetPlayerName(playerid, pName, sizeof(pName));
      format(str, sizeof(str), ""ADMINBOJA"Admin {FFFFFF}%s "ADMINBOJA"je prekinuo specati.", pName);

      TogglePlayerSpectating(playerid, 0);
      foreach(Player, i)
      {
         if(PlayerInfo [pAdmin] > 4) return SendClientMessage(i, -1, str);
      }

   }
   else NisiOvlasten;
   return 1;
}[/pawn]
Naslov: Odg: Vracanje na staru poziciju
Poruka od: Galardo poslato Avgust 04, 2021, 19:48:13 POSLE PODNE
Napravis player varijablu gdje su ti i ostale player varijable:
[pawn]
new
       Float:lastX[MAX_PLAYERS],
       Float:lastY[MAX_PLAYERS],
       Float:lastZ[MAX_PLAYERS];
[/pawn]

Zatim unutar komande za spec sacuvas koordinate:
[pawn]
GetPlayerPos(playerid, lastX[playerid], lastY[playerid], lastZ[playerid]);[/pawn]

I kada zavrsi sa spec-om postavis te isti koordinate:
[pawn]
SetPlayerPos(playerid, lastX[playerid], lastY[playerid], lastZ[playerid]);[/pawn]
Naslov: Odg: Vracanje na staru poziciju
Poruka od: njoBe_ poslato Avgust 04, 2021, 19:54:03 POSLE PODNE
to kralju, hvala ti puno