[Pomoc] Pozicija


Započeo CColucci.., Januar 29, 2015, 17:45:32 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim: Editujem jednu
Detaljan opis problema: Vako treba mi da napravim npr. kad napravim event i kad se event zavrsi ili kad igrac napusti event da ga vrati na staru poziciju na kojoj je bio prije nego sto je otisao na event.
Dio skripte: //
Neke slike/video za lakse dobivanje pomoci(neobavezno): //

//Prije nego sto igrac ode na event(npr kod komande join) ubacis ovo
	new Float: p_Pos[3];
	GetPlayerPos(playerid, p_Pos[0], p_Pos[1], p_Pos[2]);
	SetPVarInt(playerid, "pevent_int", GetPlayerInterior(playerid));
	SetPVarInt(playerid, "pevent_world", GetPlayerVirtualWorld(playerid));
	SetPVarFloat(playerid, "pevent_x", p_Pos[0]);
	SetPVarFloat(playerid, "pevent_y", p_Pos[1]);
	SetPVarFloat(playerid, "pevent_z", p_Pos[2]);
	SetPVarInt(playerid, "pevent_on", 1);
	
//Na kraju eventa dodas
	SetPlayerHealth(playerid, 0.0);

//onplayerspawn
public OnPlayerSpawn(playerid)
{
	if(GetPVarInt(playerid, "pevent_on"))
	{
	    SetPlayerInterior(playerid, GetPVarInt(playerid, "pevent_int") );
	    SetPlayerVirtualWorld(playerid, GetPVarInt(playerid, "pevent_world") );
	    SetPlayerPos(playerid, GetPVarFloat(playerid, "pevent_x"), GetPVarFloat(playerid, "pevent_y"), GetPVarFloat(playerid, "pevent_z") );
	    DeletePVar(playerid, "pevent_on");
	    DeletePVar(playerid, "pevent_int");
	    DeletePVar(playerid, "pevent_world");
	    DeletePVar(playerid, "pevent_x");
	    DeletePVar(playerid, "pevent_y");
	    DeletePVar(playerid, "pevent_z");
	}
	return 1;
}


Ako sam pogrijesio kod kucanja ispravi.
Poslednja Izmena: Januar 29, 2015, 18:02:16 POSLE PODNE od Sioux

A sta ce mi SetPlayerHealt ne zelim ga ubiti samo da ga vrati na staru poziciju :D

Citat: Jeffry_Vasquez poslato Januar 29, 2015, 18:18:55 POSLE PODNE
A sta ce mi SetPlayerHealt ne zelim ga ubiti samo da ga vrati na staru poziciju :D

Onda zanemari SetPlayerHealth a ovo iz onplayerspawn stavi na to mjesto.
Vodio sam se time da se na svim srw nakon eventa igrac ubije..


Evo ti jedan primer kako sam ja uradio ali ovo cu na brzinu ispisati
new Float:preEvent[3];

//ovo na CMD:join
GetPlayerPos(playerid,preEvent[0],preEvent[1],preEvent[2]);
if(slotovi == 10)
{
SetPlayerPos(playerid,x,y,z);
slotovi -=1;
}
if(slotovi == 9)
{
SetPlayerPos(playerid,x,y,z);
slotovi -=1;
}
if(slotovi == 8)
{
SetPlayerPos(playerid,x,y,z);
slotovi -=1;
}
// i tako dalje do slota 1

//i kada zavrsi event vraca ga na staru poziciju npr..
SetPlayerPos(playerid,preEvent[0],preEvent[1],preEvent[2]);

Potrebne su ti 3 float varijable za X, Y i Z kordinate i kada igrac kuca da ode na event ti lepo preko funkcije GetPlayerPos mu proveris kordinate i zapises u varijable i onda kada se event zavrsi samo preko SetPlayerPos ga stavis na te kordinate koje si zapisao kada je kucao komandu...