SA-MP Forums Archive
not so random, random spawns :) - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+---- Forum: Help Archive (https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: not so random, random spawns :) (/showthread.php?tid=149214)



not so random, random spawns :) - iggy1 - 21.05.2010

hi, i have 4 basses in my fs and i need to know if there is a way to get a player to spawn at a random base not just a random position i have looked on the wiki and i made this.
Code:
new Float:randspawn[][4]=
{
  -1631.6195,-2238.2793,31.4766,96.3710,
  -1352.3009,-2403.2361,35.4450,81.5111,
  -1418.8741,-2597.6355,68.8439,348.0974,
  -1277.3259,-2064.2441,24.0359,178.2503
};
COMMAND:rspawn(playerid,params[])
{
  new rand = random(sizeof(randspawn));
  SetPlayerPos(playerid,randspawn[rand][0],randspawn[rand][1],randspawn[rand][2]);
  SetPlayerFacingAngle(playerid,randspawn[rand][3]);
  return 1;
}
Is there a way i can get it to pick one of the sets of co-ords at random and not just completly randomise the spawn. Im fairly new to scripting so sorry if my question annoys u
Thanks in advance.


Re: not so random, random spawns :) - cessil - 21.05.2010

I don't understand what's wrong, just put
Code:
  new rand = random(sizeof(randspawn));
  SetPlayerPos(playerid,randspawn[rand][0],randspawn[rand][1],randspawn[rand][2]);
  SetPlayerFacingAngle(playerid,randspawn[rand][3]);
  return 1;
under OnPlayerSpawn


Re: not so random, random spawns :) - iJumbo - 21.05.2010

yea like a normal lvdm ?


Re: not so random, random spawns :) - iggy1 - 21.05.2010

Code:
new rand = random(sizeof(randspawn));
  SetPlayerPos(playerid,randspawn[rand][0],randspawn[rand][1],randspawn[rand][2]);
  SetPlayerFacingAngle(playerid,randspawn[rand][3]);
  return 1;
If im not mistaken that will pick a random x,y,z and angle.. Thats not what i want i want it to pick one of the sets of co-ords at random i hope u get me.


Edit: i dont want it in OnPlayerSpawn its a command spawn


Re: not so random, random spawns :) - Cank - 26.05.2010

hmm, maybe so:

new Float:randspawn[][4]=
{
{-1631.6195,-2238.2793,31.4766,96.3710},
{-1352.3009,-2403.2361,35.4450,81.5111},
{-1418.8741,-2597.6355,68.8439,348.0974},
{-1277.3259,-2064.2441,24.0359,178.2503}
};

so, there is a maximum of 4 random spawns.


Re: not so random, random spawns :) - Joe_ - 26.05.2010

pawn Code:
new Float:coords[][4] =
{
{X, Y, Z, A},
{X, Y, Z, A}.
{X, Y, Z, A},
{X, Y, Z, A}
};

new rand = random(sizeof(coords));
SetPlayerPos(playerid, coords[rand][0], coords[rand][1], coords[rand][2]);
SetPlayerFacingAngle(playerid, coods[rands][3]);
Random(sizeof(coords)); will get a random slot out of sizeof coords (which is empty, so the compiler will calculate automaticly)
So if random picks 1 (out of 4) it will then store that into rand.

Then you're setting pos via coords[rand][0], so if random picks 1 and stores that into rand, rand is 1, so it's basicly saying:
coords[1][0], remember you're calling it once, not calling it when you use coords[rand][0].

Simpler:

Random picks a number out of how many sets there are, stores the number into rand, then you're using rand (which is a number).