Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: CColucci.. poslato Januar 29, 2015, 17:45:32 POSLE PODNE

Naslov: [Pomoc] Pozicija
Poruka od: CColucci.. poslato Januar 29, 2015, 17:45:32 POSLE PODNE
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): //
Naslov: Odg: [Pomoc] Pozicija
Poruka od: GreenG poslato Januar 29, 2015, 18:01:39 POSLE PODNE
//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.
Naslov: Odg: [Pomoc] Pozicija
Poruka od: CColucci.. 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
Naslov: Odg: [Pomoc] Pozicija
Poruka od: GreenG poslato Januar 29, 2015, 18:20:05 POSLE PODNE
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..
Naslov: Odg: [Pomoc] Pozicija
Poruka od: CColucci.. poslato Februar 01, 2015, 13:41:15 POSLE PODNE
Ubacio sam ovo. Ne radi  ;D
Naslov: Odg: [Pomoc] Pozicija
Poruka od: RilleX poslato Februar 01, 2015, 13:59:39 POSLE PODNE
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]);
Naslov: Odg: [Pomoc] Pozicija
Poruka od: ▂ ▃ ▅ Rudimental ▅ ▃ ▂ poslato Februar 01, 2015, 16:11:17 POSLE PODNE
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...