by ALIEN
Elõszó: Üdv, most leírom saját tudásom és tapasztalatom szerint azt hogy hogy kell Random Spawn-ot vagyis véletlenszerû le spawnolást készíteni.
Magyarázat:random: véletlen szerû dolog.
spawn: az amikor skin választás után letesz a játék valahol, vagyis lespawnolsz.
Random spawn: véletlen szerû lespawnolás
1. Lépés (alap)Mentsd el azokat a pontokat a szerveren, ahol akarod hogy spawnoljon a játékos. (/save)
Nyisd meg a saveposition.txt (általában a GTA:SA mappájában szokott lenni), és ott kell lennie az elmentett pozíciódnak ami jó esetben így néz ki:
AddPlayerClass(101,722.3772,-1477.2856,5.4688,272.3814,0,0,0,0,0,0);
Ebbõl nekünk az x, y, z koordináta kell ami az elsõ argumentum(elsõ tag), után van:
722.3772,-1477.2856,5.4688
Ez az x, y, z koordináta, vesszõvel elválasztva a tagok.
2. LépésNyissuk meg game módunkat vagy szkriptünket, és hozzunk létre egy változót amiben tároljuk a pozíciókat, (ezt valahova a mód/szkript elejére) :
new Float:RandomSpawn[3][3] =
{
{2493.1816,-1668.0820,13.3438},
{2509.7822,-1687.0049,13.5684},
{2498.8340,-1644.2900,13.7826}
};
Magyarázat: new Float
= változó, tagokat tárolunk benne
RandomSpawn
= tetszõleges név, (bármi lehet)
[3][3]
= (ide úgy tudom nem muszáj számokat írni hagyhatjuk [][] így is, de jobb ha írunk), LÁSSUK A JELENTÉSÉT: [3] ez a pozíciók száma, én 3-at használok(ha többet használsz akkor egyértelmûen annyit írsz oda is), a másik [3] pedig az tagok száma az x, y, z tagoknak a számát kell oda írni
{2493.1816,-1668.0820,13.3438},
{2509.7822,-1687.0049,13.5684},
{2498.8340,-1644.2900,13.7826}
= ezek a pozíciók, beírásuk úgy történik meg hogy a lementett x, y, z koordinátákat egy kapcsos zárójellel kezded, és fejezed be, és egy vesszõt raksz utána, de vigyázz az utolsó után nem kell vesszõ mert felsorolás. példa: {x, y , z},
3. LépésLétrehoztuk a változónkat, akkor most használjuk is.
Tekerjünk egerünk görgõjével az
OnPlayerSpawn -hoz, és állítsuk be hogy a játékosaink, véletlenszerûen spawnoljanak.
Hozzunk létre egy új változót:
new rand = random(sizeof(RandomSpawn))
Magyarázat:random(sizeof(RandomSpawn)) = egy tömbe tároljuk a RandomSpawn pozícióit
Utána jön a
SetPlayerPos függvény, amivel beállítjuk hogy a játékos hova spawnoljon. Használata:
SetPlayerPos(playerid, x, y, z);
Nekünk az x, y, z helyére azokat a koordinátákat kell megadni ami a RandomSpawn-ban van, ezért hoztunk létre változókat:
SetPlayerPos(playerid, RandomSpawn[rand][0], RandomSpawn[rand][1],RandomSpawn[rand][2]);
Magyarázat: [rand]
= ez az a változó amiben lehívjuk a RandomSpawn-t mint változót
= ez az amivel lehívjuk a RandomSpawn tagjait, vagyis, a megadott pozíciók koordinátáit, itt a 0-ásat vagyis az X koordinátát hívjuk le, [1]-nél a Y koordinátáját, [2]-nél pedig az Z koordinátát hívjuk le.
Ezzel meg is volnánk, lássuk a teljes munkát: 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;
}
Remélem segítettem valakinek ezzel a bemutatóval!
Ha kérdésetek van, vagy valamit rosszul írtam létszíves szóljatok.
Köszönöm.
Üdv, ALIEN voltam.