[TUT] Nasumicni spawn

Započeo Cannabis, Novembar 22, 2012, 21:52:36 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 4 gostiju pregledaju ovu temu.

Zdravo ljudi, evo mene opet s novim tutorialom. Ovaj put cu vam pokazati kako da napravite nasumicni spawn. Za izradu ovog tuta me nagnula jedna jednostavna cinjenica a to je da kada sam upisao u trazilicu "random spawn" nasao sam puno tema u kojima se trazi pomoc i objasnjenje a nijedan tutorial u vezi ovoga.


Stvari koje trebate znati:

-Izvuc koordinate (X,Y,Z)
(ako ste uopce poceli sa izradom moda ovo vec trebate znati, a ako neznate onda vam preporucujem da citate tutoriale za pocetnike)


Da zapocnemo:
Recimo da ste izvukli nekoliko mjesta za spawn i njihovi koordinati glase:

//(x,y,z)
1783.8303,-1885.3682,13.3921
1364.8800,-1279.0601,13.5469
1210.1868,-904.5264,42.9302
1479.2089,2618.9717,58.7813
1481.1246,-1771.1868,18.7958


Eh, sada ove koordinate bi trebalo postrojiti u funkciju:
new Float:NasumicniSpawn[][] =
{
};

Napomena: ova funkcija ide izvan skripte, odnosno ne smjesta se u nitijedan callback(vise o callbackovima mozes pronaci u tutovima za pocetnike)

Kada postrojimo koordinate, trebalo bi izgledati ovako:

new Float:NasumicniSpawn[][] =
{
         {1783.8303,-1885.3682,13.3921},
         {1364.8800,-1279.0601,13.5469},
         {1210.1868,-904.5264,42.9302},
         {1479.2089,2618.9717,58.7813},
         {1481.1246,-1771.1868,18.7958}
};

Primjetite kako svaka koordinata spawna dolazi u svoje viticaste zagrade( { } ), a izad svake zagrade dolazi zarez( , ) osim iza zadnje koordinate.

Å to sada kad smo postrojili nase koordinate?
Eh, sada bi trebalo "narediti" serveru da kada igrac se treba spawnati da ga spawna jendu od nasumicnih lokacija koje smo unijeli. Da bi to napravili trebamo u callback
public OnPlayerSpawn(playerid)
{
    return 1;
}


unijeti ovo:
    new Nasumicno = random(sizeof(NasumicniSpawn));
    SetPlayerPos(playerid, NasumicniSpawn[Nasumicno][0], NasumicniSpawn[Nasumicno][1], NasumicniSpawn[Nasumicno][2]);
    SetPlayerFacingAngle(playerid, NasumicniSpawn[Nasumicno][3]);
    return 1;


i to bi trebalo izgledati ovako

public OnPlayerSpawn(playerid)
{
    new Nasumicno = random(sizeof(NasumicniSpawn));
    SetPlayerPos(playerid, NasumicniSpawn[Nasumicno][0], NasumicniSpawn[Nasumicno][1],  NasumicniSpawn[Nasumicno][2]);
    SetPlayerFacingAngle(playerid, NasumicniSpawn[Nasumicno][3]);
    return 1;
}


I upravo ste napravili vas nasumicni spawn!

Eh sada, posto sam puno nasrao a malo objasnio slijedu objasnjenja:


// Ova funkcija nam dopusta da postrojimo nase koordinate te da iz nje mozemo izvuci jednu nasumicnu
new Float:Nasumicni spawn[][] =
{
};



// ovo je callback, sve naredbe koje unesemo unutar tog callbacka ce se izvrsiti kada se igrac spawna
public OnPlayerSpawn(playerid)
{
    return 1;
}


random(sizeof(NasumicniSpawn)) - > upravo zbog ovoga mi nasumicno izvlacimo lokaciju spawna
NasumicniSpawn[Nasumicno][0,1,2] - > stoji za X,Y,Z
NasumicniSpawn[Nasumicno][3] - > stoji za rotaciju igraca
SetPlayerPos(playerid, NasumicniSpawn[Nasumicno][0], NasumicniSpawn[Nasumicno][1], NasumicniSpawn[Nasumicno][2]); - > s ovom naredbom izvlacimo nasumicni X,Y,Z te postavljamo igraca na tu poziciju
SetPlayerFacingAngle(playerid, RandomSpawns[Random][3]); - > s ovom naredbom izvlacimo nasumicnu rotaciju te je primjenjujemo na igraca

Zavrsne rijeci:
Evo ovo je u grubo objasnjeno kako napraviti nasumicni spawn. Mnogo toga je tu za vas novoga i tu bi trebalo jos objasnjivati ali iskreno meni se neda vise jer su me zabolila leda sjedeci za kompom i pisajuci ovaj tut. Nadam se da ste shvatili i da sam vam pomogao.

Svaka cast! Vidim trudis se :) samo tako nastavi pomoci ces pocetnicima.


Zoran123

bravo dobar tut pomoći će nekome

Super tutorial, koristit ću ovo kad budem radio jail system. ;)


Lock zbog refresha:

[quote author=[B.T.L]Cvelle :) link=topic=59931.msg439961#msg439961 date=1354975696]
pomocice pocetnicima..  ,brw
[/quote]

Citat: Zoran123 poslato Decembar 07, 2012, 13:33:38 POSLE PODNE
bravo dobar tut pomoći će nekome