AUTOMATSKA VRATA
Automatska vrata
Prije nego što počnete sa skriptanjem vaših vrata, potrebno je imati nekoliko funkcija - koristit ćemo funkciju PlayerToPoint (). PlayerToPoint je funkcija koja provjerava igračevu udaljenost od određene točke i onda prema onome što provjera kaže, vraća true (istinito) (igrač je blizu mjesta, unutar radijusa) ili false(neistinito) (igrač je izvan radijusa).
Kod:
PlayerToPoint(Float:radius, playerid, Float:X, Float:Y, Float:Z)
{
new Float:oldpos[3], Float:temppos[3];
GetPlayerPos(playerid, oldpos[0], oldpos[1], oldpos[2]);
temppos[0] = (oldpos[0] -X);
temppos[1] = (oldpos[1] -Y);
temppos[2] = (oldpos[2] -Z);
if(((temppos[0] < radius) && (temppos[0] > -radius)) && ((temppos[1] < radius) && (temppos[1] > -radius)) && ((temppos[2] < radius) && (temppos[2] > -radius)))
{
return true;
}
return false;
}
Osim toga, morate imati kordinate od 2 lokacije - zatvorenih i otvorenih vrata (X, Y, Z) i zatvorena vrata moraju biti izrađena.
Kod:
// ovo ce ici iznad main(), posto je to global varijabla
new c_gate;
// Ovo će ići ispod OnGameModeInit ili OnFilterScriptInit
c_gate = CreateObject(object_ID, closed_X, closed_Y, closed_Z, closed_rad_X, closed_rad_Y, closed_rad_Z);
I treće, morate imati globalnu varijablu za igraca:
Kod:
// ovo ce ici iznad
main()
new OpenGate[MAX_PLAYERS];
Izrada automatskih vrata
Prvo ćemo postaviti brojač od OnGameModeInit () koji će pozvati nakon vaseg odabranog vremena (moje je čak nakon 500ms).Slobodno promijenite 500ms na neke druge vrijednosti, ali imajte na umu da 1000ms je jednaka jednoj sekundi.
Kod:
SetTimer("CheckGate", 500, true);
Sada ćemo se premjestiti na sat, što ćemo proslijediti ispravno.
Kod:
// ovo ce ici iznad
main()
forward CheckGate();
public CheckGate()
{
for(new i = 0; i < GetMaxPlayers(); i++)
{
if(!IsPlayerConnected(i)) continue;
if(PlayerToPoint(10.0, i, closed_X, closed_Y, closed_Z) && OpenGate[i] == 0)
{
MoveObject(c_gate, open_X, open_Y, open_Z);
OpenGate[i] = 1;
}
else if(!PlayerToPoint(10.0, i, closed_X, closed_Y, closed_Z) && OpenGate[i] == 1)
{
MoveObject(c_gate, closed_X, closed_Y, closed_Z);
OpenGate[i] = 0;
}
}
}
Vaša vrata bi trebala biti spremna , ako ste napravili sve što je vodič rekao na odgovarajući način..
NAPOMENA: Svaki pokusaj i svako kopiranje ovog teksta ili dijela ovog teksta strogo ce se kaznjavati!