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
Sacuvas poziciju unutar varijabli x,y,z i samo postavis :)
ne mogu sacuvat u komandi spec a postavit u komandi specoff
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.
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]
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]
to kralju, hvala ti puno