IP: 188.40.57.132:7777
Would you like to react to this message? Create an account in a few clicks or log in to continue.

IP: 188.40.57.132:7777


 
HomeLatest imagesTražiRegistracijaLogin

 

 *Automatska Vrata*

Go down 
AutorPoruka
Ryan_Cooper
Admin



Broj komentara : 68
Points : 124
Reputation : 1
Join date : 2009-07-17

*Automatska Vrata* Empty
KomentarNaslov komentara: *Automatska Vrata*   *Automatska Vrata* I_icon_minitimeThu Aug 06, 2009 11:49 am

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!
Na vrh Go down
https://bosnianmafia-samp.bosnianforum.com
 
*Automatska Vrata*
Na vrh 
Stranica 1/1

Permissions in this forum:Ne možete odgovoriti na teme ili komentare u ovom forumu
IP: 188.40.57.132:7777 :: *Skripting* :: Naućite skriptati uz nas-
Idi na: