Mh. Du hast da etwas falsch verstanden.
DMSpawn[0] = SetPlayerPos(playerid,1750.6611,767.7841,10.8279);
DMSpawn[1] = SetPlayerPos(playerid,1637.4896,670.2835,10.8203);
DMSpawn[2] = SetPlayerPos(playerid,1588.8384,720.9872,58.2375);
DMSpawn[3] = SetPlayerPos(playerid,1663.5165,759.5008,19.9342);
Das funktioniert leicher nicht so,wie du es möchtest.
SetPlayerPos gibt dir nichts brauchbares zurück, was du später für dein random verwenden könntest.Das Gleiche gilt ebenfalls für SetPlayerColor. Auch würde er so die Spielerposition 4x setzen, was du bestimmt nicht möchtest.
Du könntest dir die Koordinaten in einem Array ( Multidimensionales ) ablegen und dort über random auf einen Index zugreifen. Übrigens,dir hätte auffallen müssen,dass SetPlayerPos 4 Parameter erwartet ( playerid, X , Y, Z ).
new
fDMPos[][3] = { // X , Y, Z
{1750.6611,767.7841,10.8279},
{1637.4896,670.2835,10.8203},
{1588.8384,720.9872,58.2375},
{1663.5165,759.5008,19.9342}
};
Jetzt könntest du über random einen Index auswählen.
new index = random(sizeof(fDMPos));
Den zufälligen Index haben wir jetzt. Jetzt brauchen wir nur die Position setzen.
SetPlayerPos(playerid, fDMPos[index][0] , fDMPos[index][1] , fDMPos[index][2] );
Schon würde der Spieler immer eine zufällig ausgewählte Position erhalten.
Nach diesem Prinzip solltest du es auch für die Farben machen. Natürlich dort kein Multidimensionales Array.
new iColors[] = {0x000FFFFF,0x008500FF /* usw */};