kein Derbyspawn doppelt belegt

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
  • hey,
    Also..., ich arbeite grad an einem Derby Script mit Rundensystem usw.
    Jedoch weiß ich ncht, wie ich es hinkriege, dass JEDER Spieler woanders spawnt, Randomspawn ist dafür nicht sehr praktisch, weil es dann vorkommt, dass mal 2 Spieler am selben Ort spawnen und mit ihren Wagen ineinander festhängen.
    Ich hoffe ihr versteht wie ich das meine...


    MfG

  • Gibt mehrere Möglichkeiten dies zu Lösen, unten ein Ansatz. Ich denke die Arena geht nach Runden, also reicht das so aus, wenn sie nicht nach Runden geht, sondern man immer dazukann, wann man will, dann kann man dies auch entsprechend anpassen. Grunsätzätzlich kann man es so machen, indem man ein Array erstellt mit der Größe der Spawns. Beim betreten wird es dann alles ausgewertet un der Spieler an einen entsprechende Position gespawnt. Man kann es auch über PlayerToPoint regeln, dann kann man auf den Array verzichten. Wie du willst, hier mal die erstere Variante.


    // oben
    #define MAX_DERBYSPAWNS 5 // maximale Anzahl der Spawns


    new
    bool:dSpawn[MAX_DERBYSPAWNS];


    // beim Betreten der Arena


    new
    spawn = MAX_DERBYSPAWNS;
    for(new s = 0; s < MAX_DERBYSPAWNS; s++);
    {
    if(!dSpawn[s]) spawn = s; break;
    }
    switch(spawn)
    {
    case 0:
    {
    // Position setzen von Platz 1

    }
    case 1:
    {
    // Position setzen von Platz 2
    }
    case 2:
    {
    // Position setzen von Platz 2
    }
    [... usw. ...]
    default:
    {
    SendClientMessage(playerid, Farbe, "Die Arena ist voll");
    return 1;
    }
    }
    dSpawn[spawn] = true;


    // Beim Beenden der aktuellen Runde


    for(new s = 0; s < MAX_DERBYSPAWNS; s++)
    {
    dSpawn[s] = false;
    }