Vracanje na staru poziciju


Započeo GodX_, Avgust 04, 2021, 15:36:45 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Problem(error/warning): Ne znam kako da vratim igraca na staru poziciju kada ugasi spec
Deo skripte:
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 [i] [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 [i] [pAdmin] > 4) return SendClientMessage(i, -1, str);
		}

	}
	else NisiOvlasten;
	return 1;
}

Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
Vaš odgovor
Poslednja Izmena: Avgust 04, 2021, 20:25:55 POSLE PODNE od M Ө M Σ N Z I

Galardo

*

mgWhosyGD

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.
You'll be always in my heart, the end and thanks for amazing times. #WeAreLords

mozes li napisati to, ako ti nije problem
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 [i] [pAdmin] > 4) return SendClientMessage(i, -1, str);
		}

	}
	else NisiOvlasten;
	return 1;
}

Galardo

*

mgWhosyGD

Napravis player varijablu gdje su ti i ostale player varijable:
new 
       Float:lastX[MAX_PLAYERS],
       Float:lastY[MAX_PLAYERS],
       Float:lastZ[MAX_PLAYERS];


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


I kada zavrsi sa spec-om postavis te isti koordinate:
SetPlayerPos(playerid, lastX[playerid], lastY[playerid], lastZ[playerid]);