Jump to content

[SA-MP|Mini-Tutorial] Willekeurige spawnplaatsen


Recommended Posts

Geplaatst: (bewerkt)

SA-MP Mini-Tutorial



Willekeurige spawnplaatsen

De mini-tutorial

Zet onder je defines dit neer.

forward PlayerSpawn(playerid);

En daar onder:

new Float:gRandSpawns[6][4] = {
// {PositieX,PositieY,PositieZ,Hoek},
{1958.3783,1343.1572,15.3746,90.0},
{2199.6531,1393.3678,10.8203,180.0},
{1441.5894,2567.9099,10.8203,270.0}, // De hoeken verzin ik ter plekke...
{1480.6473,2213.5718,11.0234,23.7},
{1400.5906,2225.6960,11.0234,64.98},
{1598.8419,2221.5676,11.0625,0.0},
}; // Al je spawnplaatsen

Zoek dan:

public OnPlayerSpawn(playerid)

en zet boven "return 1;".

PlayerSpawn(playerid);

En zet dan ergens je nieuwe functie (Niet in een andere functie).

public PlayerSpawn(playerid)
{
 new rand = random(sizeof(gRandSpawns));
 SetPlayerPos(playerid,gRandPlayerSpawns[rand][0],gRandPlayerSpawns[rand][1],gRandPlayerSpawns[rand][2]); // Verplaats de speler naar de punten.
 SetPlayerFacingAngle(playerid, gRandPlayerSpawns[rand][3]); // Draai de speler nog goed.
 return 1;
}

Enjoy ;)

Bewerkt: door Jarno
Geplaatst:

Je hebt de verkeerde arraynaam gebruikt in PlayerSpawn! Stoutert :puh:.Misschien is het handig om nog een 4e arrayvariabele te maken, voor de hoek.

new Float:gRandSpawns[6][4] = {
// {PositieX,PositieY,PositieZ,Hoek},
{1958.3783,1343.1572,15.3746,90.0},
{2199.6531,1393.3678,10.8203,180.0},
{1441.5894,2567.9099,10.8203,270.0}, // De hoeken verzin ik ter plekke...
{1480.6473,2213.5718,11.0234,23.7},
{1400.5906,2225.6960,11.0234,64.98},
{1598.8419,2221.5676,11.0625,0.0},
}; // Al je spawnplaatsen

public PlayerSpawn(playerid)
{
 new rand = random(sizeof(gRandSpawns));
 SetPlayerPos(playerid,gRandPlayerSpawns[rand][0],gRandPlayerSpawns[rand][1],gRandPlayerSpawns[rand][2]); // Verplaats de speler naar de punten.
 SetPlayerFacingAngle(playerid, gRandPlayerSpawns[rand][3]); // Draai de speler nog goed.
 return 1;
}

  • 1 year later...
Geplaatst: (bewerkt)

Ik kreeg allemaal errors, heb toen zitten klooien en toen kreeg ik geen errors meer.. Nu ziet het er zo uit:

forward PlayerSpawn(playerid);

new Float:gRandSpawns[6][3] = {
// {PositieX,PositieY,PositieZ,Hoek},
{1958.3783,1343.1572,15.3746},
{2199.6531,1393.3678,10.8203},
{1441.5894,2567.9099,10.8203}, // De hoeken verzin ik ter plekke...
{1480.6473,2213.5718,11.0234},
{1400.5906,2225.6960,11.0234},
{1598.8419,2221.5676,11.0625}
}; // Al je spawnplaatsen

En ergens onderaan:

public PlayerSpawn(playerid)
{
 new rand = random(sizeof(gRandSpawns));
 SetPlayerPos(playerid,gRandSpawns[rand][0],gRandSpawns[rand][1],gRandSpawns[rand][2]); // Verplaats de speler naar de punten.
 return 1;

Zo krijg ik geen errors meer :o

Edit: Ik krijg nu geen errors meer, maar als ik ingame ga krijg ik wel een crash... Zo werkt het wel goed:

Zet dit ergens neer boven "main" neer:

forward SetPlayerRandomSpawn(playerid);

new iSpawnSet[MAX_PLAYERS];

new Float:gRandomPlayerSpawns[50][3] = {
// {PositieX,PositieY,PositieZ,Hoek},
{1323.236,1540.658,10.82031},
{1323.236,1543.658,10.82031},
{1323.236,1546.658,10.82031},
{1323.236,1549.658,10.82031},
{1323.236,1552.658,10.82031},
{1323.236,1555.658,10.82031},
{1323.236,1558.658,10.82031},
{1323.236,1561.658,10.82031},
{1323.236,1564.658,10.82031},
{1323.236,1567.658,10.82031},
{1323.236,1570.658,10.82031},
{1323.236,1573.658,10.82031},
{1323.236,1576.658,10.82031},
{1323.236,1579.658,10.82031},
{1323.236,1582.658,10.82031},
{1323.236,1585.658,10.82031},
{1323.236,1588.658,10.82031},
{1323.236,1591.658,10.82031},
{1323.236,1594.658,10.82031},
{1323.236,1597.658,10.82031},
{1323.236,1600.658,10.82031},
{1323.236,1603.658,10.82031},
{1323.236,1606.658,10.82031},
{1323.236,1609.658,10.82031},
{1323.236,1612.658,10.82031},
{1323.236,1615.658,10.82031},
{1323.236,1618.658,10.82031},
{1323.236,1621.658,10.82031},
{1323.236,1624.658,10.82031},
{1323.236,1627.658,10.82031},
{1323.236,1630.658,10.82031},
{1323.236,1633.658,10.82031},
{1323.236,1636.658,10.82031},
{1323.236,1639.658,10.82031},
{1323.236,1642.658,10.82031},
{1323.236,1645.658,10.82031},
{1323.236,1648.658,10.82031},
{1323.236,1651.658,10.82031},
{1323.236,1654.658,10.82031},
{1323.236,1657.658,10.82031},
{1323.236,1660.658,10.82031},
{1323.236,1663.658,10.82031},
{1323.236,1666.658,10.82031},
{1323.236,1669.658,10.82031},
{1323.236,1672.658,10.82031},
{1323.236,1675.658,10.82031},
{1323.236,1678.658,10.82031},
{1323.236,1691.658,10.82031},
{1323.236,1694.658,10.82031},
{1323.236,1697.658,10.82031}}; 

// De coördinaten hiervan kun je veranderen, en daarna moet je bovenaan i.p.v. "50" het aantal coördinaatdingen zetten

Nu ergens (het makkelijkste is hélemaal onderaan je script) plaats je dit:

public SetPlayerRandomSpawn(playerid)
{
if (iSpawnSet[playerid] == 0)
{
	new rand = random(sizeof(gRandomPlayerSpawns));
	SetPlayerPos(playerid, gRandomPlayerSpawns[rand][0], gRandomPlayerSpawns[rand][1], gRandomPlayerSpawns[rand][2]); // Warp the player
}
return 1;
}

Nu werkt het als het goed is :)

Bewerkt: door Puma

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...