RandomSpawn problem

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo zusammen,
    ich hab ein Problem mit meinem RandomSpawn.
    Es komm immer die Fehler Meldung:
    D:\Programme\GTA San Andreas\Pawno Program\ArmyvsRebellenBETAT.pwn(688) : error 032: array index out of bounds (variable "ArmySpawn")
    D:\Programme\GTA San Andreas\Pawno Program\ArmyvsRebellenBETAT.pwn(703) : error 032: array index out of bounds (variable "RebellenSpawn")



    Mein Script sieht dabei so aus:
    // Unter den Includes
    new Float:ArmySpawn[4][3] ={
    {2540.8892,2757.1501,10.8203},
    {2545.4163,2748.3447,10.8203},
    {2531.9819,2749.9373,10.8203},
    {2524.7161,2760.0771,10.8203}
    };


    new Float:RebellenSpawn[4][3] = {
    {2621.4971,2728.9866,36.5386},
    {2627.0215,2712.6897,36.5386},
    {2619.1895,2736.2395,23.8222},
    {2625.1436,2746.4768,23.8222}
    };



    //forward
    forward SetPlayerRandomSpawn(playerid);



    // Des ganz Unten
    public SetPlayerRandomSpawn(playerid)
    {
    if (GetPlayerTeam(playerid) == 1)
    {
    new rand = random(sizeof(ArmySpawn));
    SetPlayerPos(playerid, ArmySpawn[rand][0], ArmySpawn[rand][1], ArmySpawn[rand][2], ArmySpawn[rand][3]);
    }
    else if (GetPlayerTeam(playerid) == 2)
    {
    new rSpawn2 = random(sizeof(RebellenSpawn));
    SetPlayerPos(playerid, RebellenSpawn[rSpawn2][0], RebellenSpawn[rSpawn2][1], RebellenSpawn[rSpawn2][2], RebellenSpawn[rSpawn2][3]);
    }
    return 1;
    }


    // Der Code der dann Vorkommt um den Spawn zusetzen
    SetPlayerRandomSpawn(playerid);


    Der Fehler kommt immer in dieser Zeile
    SetPlayerPos(playerid, ArmySpawn[rand][0], ArmySpawn[rand][1], ArmySpawn[rand][2], ArmySpawn[rand][3]);
    SetPlayerPos(playerid, RebellenSpawn[rSpawn2][0], RebellenSpawn[rSpawn2][1], RebellenSpawn[rSpawn2][2], RebellenSpawn[rSpawn2][3]);


    Ich weiß aber nicht wo der Fehler liegt.
    Es soll für 2 Verschiede Teams, wieder mehrere Spawns geben.
    Aber des funktioniert so nicht.
    Übersetzt heißt die Fehlermeldung so viel wie:
    "Feld Bereich liegt außerhalb des gültigen Bereichs" oder so was


    Aber was ist daran der fehler?
    Kann mir jemand Helfen?
    MFG xXRZ3Xx


  • public SetPlayerRandomSpawn(playerid)
    {
    if (GetPlayerTeam(playerid) == 1)
    {
    new rand = random(sizeof(ArmySpawn));
    SetPlayerPos(playerid, ArmySpawn[rand][0], ArmySpawn[rand][1], ArmySpawn[rand][2]);
    }
    else if (GetPlayerTeam(playerid) == 2)
    {
    new rSpawn2 = random(sizeof(RebellenSpawn));
    SetPlayerPos(playerid, RebellenSpawn[rSpawn2][0], RebellenSpawn[rSpawn2][1], RebellenSpawn[rSpawn2][2]);
    }
    return 1;
    }


    RFT