|
Random Spawn tutorial
by ALIEN
Elsz: dv, most lerom sajt tudsom s tapasztalatom szerint azt hogy hogy kell Random Spawn-ot vagyis vletlenszer le spawnolst kszteni.
Magyarzat:
random: vletlen szer dolog.
spawn: az amikor skin vlaszts utn letesz a jtk valahol, vagyis lespawnolsz.
Random spawn: vletlen szer lespawnols
1. Lps (alap)
Mentsd el azokat a pontokat a szerveren, ahol akarod hogy spawnoljon a jtkos. (/save)
Nyisd meg a saveposition.txt (ltalban a GTA:SA mappjban szokott lenni), s ott kell lennie az elmentett pozcidnak ami j esetben gy nz ki:
AddPlayerClass(101,722.3772,-1477.2856,5.4688,272.3814,0,0,0,0,0,0); Ebbl neknk az x, y, z koordinta kell ami az els argumentum(els tag), utn van:
722.3772,-1477.2856,5.4688 Ez az x, y, z koordinta, vesszvel elvlasztva a tagok.
2. Lps
Nyissuk meg game mdunkat vagy szkriptnket, s hozzunk ltre egy vltozt amiben troljuk a pozcikat, (ezt valahova a md/szkript elejre) :
new Float:RandomSpawn[3][3] =
{
{2493.1816,-1668.0820,13.3438},
{2509.7822,-1687.0049,13.5684},
{2498.8340,-1644.2900,13.7826}
}; Magyarzat:
new Float = vltoz, tagokat trolunk benne
RandomSpawn = tetszleges nv, (brmi lehet)
[3][3] = (ide gy tudom nem muszj szmokat rni hagyhatjuk [][] gy is, de jobb ha runk), LSSUK A JELENTST: [3] ez a pozcik szma, n 3-at hasznlok(ha tbbet hasznlsz akkor egyrtelmen annyit rsz oda is), a msik [3] pedig az tagok szma az x, y, z tagoknak a szmt kell oda rni
{2493.1816,-1668.0820,13.3438},
{2509.7822,-1687.0049,13.5684},
{2498.8340,-1644.2900,13.7826} = ezek a pozcik, bersuk gy trtnik meg hogy a lementett x, y, z koordintkat egy kapcsos zrjellel kezded, s fejezed be, s egy vesszt raksz utna, de vigyzz az utols utn nem kell vessz mert felsorols. plda: {x, y , z},
3. Lps
Ltrehoztuk a vltoznkat, akkor most hasznljuk is.
Tekerjnk egernk grgjvel az OnPlayerSpawn -hoz, s lltsuk be hogy a jtkosaink, vletlenszeren spawnoljanak.
Hozzunk ltre egy j vltozt:
new rand = random(sizeof(RandomSpawn)) Magyarzat:
random(sizeof(RandomSpawn)) = egy tmbe troljuk a RandomSpawn pozciit
Utna jn a SetPlayerPos fggvny, amivel belltjuk hogy a jtkos hova spawnoljon. Hasznlata:
SetPlayerPos(playerid, x, y, z); Neknk az x, y, z helyre azokat a koordintkat kell megadni ami a RandomSpawn-ban van, ezrt hoztunk ltre vltozkat:
SetPlayerPos(playerid, RandomSpawn[rand][0], RandomSpawn[rand][1],RandomSpawn[rand][2]); Magyarzat:
[rand] = ez az a vltoz amiben lehvjuk a RandomSpawn-t mint vltozt
[0] = ez az amivel lehvjuk a RandomSpawn tagjait, vagyis, a megadott pozcik koordintit, itt a 0-sat vagyis az X koordintt hvjuk le, [1]-nl a Y koordintjt, [2]-nl pedig az Z koordintt hvjuk le.
Ezzel meg is volnnk, lssuk a teljes munkt:
new Float:RandomSpawn[3][3] =
{
{2493.1816,-1668.0820,13.3438},
{2509.7822,-1687.0049,13.5684},
{2498.8340,-1644.2900,13.7826}
};
public OnPlayerSpawn(playerid)
{
new rand = random(sizeof(RandomSpawn));
SetPlayerPos(playerid, RandomSpawn[rand][0], RandomSpawn[rand][1],RandomSpawn[rand][2]);
return 1;
}
Remlem segtettem valakinek ezzel a bemutatval!
Ha krdsetek van, vagy valamit rosszul rtam ltszves szljatok.
Ksznm.
dv, ALIEN voltam.
| |