Diese wahl die du oben beschrieben hast ist nicht empfehlenswert für die weise auf die du sie benutzen möchtest
dazu empfiehlt sich ein drei dimensionales Array
new Float:RandomF[][3][3]= {
{ //0
{X, Y, Z},
{X, Y, Z},
{X, Y, Z}
},
{//1
{X, Y, Z},
{X, Y, Z},
{X, Y, Z}
},
{ //2
{X, Y, Z},//nummer 0
{X, Y, Z}, //nummer 1
{X, Y, Z} //nummer 2
}
};
die 3 steht für die 3 werte pro "Eintrag" und die zweite 3 steht für die werte pro Eintrag in den Block also X,Y,Z
bei der rotation welche mann nicht brauch wäre es dann 4 da man 4 Werte hat also X,Y,Z,R
und zur verwendung kannst du dadurch eine forschleife schicken
new rand = random(sizeof(RandomF)) ,i;
for(;i< 3; i++){
RFire[i]=AddFire(RandomF[rand][i][0], RandomF[rand][i][1], RandomF[rand][i][2]);
}
warum das i noch bei RFire naja das wirst du schon sehen wenn du das RFire object zerstörst werden alle Objekte unter dieser variabel zerstört.
mit zahlen würde das zum Beispiel so aussehen
RFire[1]=AddFire(RandomF[2][1][0], RandomF[2][1][1], RandomF[2][1][2]);
das heißt das zweite Feuer hat die id 1 und daraus werden noch die daten/Werte aus dem array raus gezogen
für random haben wir mal als beispiel 2 genommen.
also werden die Zahlen aus dem zweiten Eintrag entnommen //2 und daraus wird nun Der Werteblock herraus gezogen welcher die nummer 1 hat //nummer 1