Random-Spawnsystem wird nicht richtig ausgeführt....

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 Leute, ich habe mal wieder ein Problem, wo ich jetzt nicht wüsste, wo der Schwerpunkt liegt.
    Ich habe mich mal an ein Random-Spawnsystem gesetzt, jedoch funktioniert, das nur Teilweise, manchmal wird -1 ausgeführt,
    wenn dies gemacht wird, Spawn man selber am 0 Punkt, da -1 nicht definiert wird :)
    Kann man das irgendwie machen, dass -1 nicht ausgeführt werden kann ?


    Hier mal der Code, ich habe es selber gedubuggt, um herauszufinden, warum ich manchmal am 0 Punkt Spawne.
    Das was ich herausgefunden habe war: Wert -1.
    So sieht der jetzige Code aus.


    Teil von OnPlayerSpawn


    new randomspawn=random(20);
    randomspawn--;
    switch(randomspawn)
    {
    case 0:{SetPlayerPos(playerid,1857.1609,-1665.5485,19.2438);}
    case 1:{SetPlayerPos(playerid,1852.5959,-1660.1313,19.2539);}
    case 2:{SetPlayerPos(playerid,1852.5231,-1654.1180,19.2540);}
    case 3:{SetPlayerPos(playerid,1852.6611,-1643.6871,19.2448);}
    case 4:{SetPlayerPos(playerid,1859.8341,-1651.5160,19.2438);}
    case 5:{SetPlayerPos(playerid,1862.7838,-1656.6807,19.2438);}
    case 6:{SetPlayerPos(playerid,1861.9385,-1666.7389,19.2438);}
    case 7:{SetPlayerPos(playerid,1854.2028,-1677.6946,19.0523);}
    case 8:{SetPlayerPos(playerid,1849.1158,-1638.6514,19.2448);}
    case 9:{SetPlayerPos(playerid,1843.7576,-1684.4540,18.3859);}
    case 10:{SetPlayerPos(playerid,1834.6785,-1663.3109,19.2438);}
    case 11:{SetPlayerPos(playerid,1841.9564,-1661.5547,19.2742);}
    case 12:{SetPlayerPos(playerid,1839.2928,-1670.2731,19.2605);}
    case 13:{SetPlayerPos(playerid,1852.2574,-1648.9725,19.2448);}
    case 14:{SetPlayerPos(playerid,1837.6794,-1659.0969,19.2586);}
    case 15:{SetPlayerPos(playerid,1855.5759,-1667.5471,19.2438);}
    case 16:{SetPlayerPos(playerid,1853.1945,-1664.9667,19.2529);}
    case 17:{SetPlayerPos(playerid,1853.1945,-1664.9667,19.2529);}
    case 18:{SetPlayerPos(playerid,1852.5568,-1655.2926,19.2540);}
    case 19:{SetPlayerPos(playerid,1858.3904,-1656.1357,19.2438);}
    case 20:{SetPlayerPos(playerid,1852.5959,-1660.1313,19.2539);}
    }
    format(string,sizeof(string),"Random %i",randomspawn);
    SendClientMessage(playerid,COLOR_YELLOW,string);


    LG Sunshine.

    Ich suche (Beta) Server-Tester für meinen Server.
    Bei Intresse bitte bei mir per PN melden.

  • Hier, schreib es so, dann kannst du es auch leichter erweitern:


    //Global deklarieren
    stock const Float:r_Spawns[][3] = {
    {1857.1609,-1665.5485,19.2438},{1852.5959,-1660.1313,19.2539},{1852.5231,-1654.1180,19.2540},
    {1859.8341,-1651.5160,19.2438},{1862.7838,-1656.6807,19.2438},{1861.9385,-1666.7389,19.2438},
    {1854.2028,-1677.6946,19.0523},{1849.1158,-1638.6514,19.2448},{1843.7576,-1684.4540,18.3859},
    {1834.6785,-1663.3109,19.2438},{1841.9564,-1661.5547,19.2742},{1839.2928,-1670.2731,19.2605},
    {1852.2574,-1648.9725,19.2448},{1837.6794,-1659.0969,19.2586},{1855.5759,-1667.5471,19.2438},
    {1853.1945,-1664.9667,19.2529},{1853.1945,-1664.9667,19.2529},{1852.5568,-1655.2926,19.2540},
    {1858.3904,-1656.1357,19.2438},{1852.5959,-1660.1313,19.2539},{1852.6611,-1643.6871,19.2448}
    };


    //Und dann unten
    new ran = random(sizeof r_Spawns);
    SetPlayerPos(playerid,r_Spawns[ran][0],r_Spawns[ran][1],r_Spawns[ran][2]);
    format(string,sizeof(string),"Random %i",ran);
    SendClientMessage(playerid,COLOR_YELLOW,string);


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

    Einmal editiert, zuletzt von Kaliber ()

  • http://wiki.sa-mp.com/wiki/Random


    die Random funktion ist wie im wiki beschrieben anders als viele denken.


    wenn ich 20 als max angebe können zahlen raus kommen die größer gleich 0 und kleiner gleich 19 sind.

  • Jo, danke Kaliber.
    Ich werde deins mal anwenden, allerdings halte ich nicht viel von Copy & Paste, weshalb es mir schwerfällt diesen Codeschnipsel anzunehmen,
    jedoch mache ich dies einfach mal. Heute habe ich mal das Einliefern in die Notaufnahme verbessert, und mir ist dann folgender Fehler aufgefallen,
    er hat mir die return ErrorMsg zurückgegeben, obwohl ich in einem passendem Fahrzeug war, kann mir da vielleicht einer helfen und mir sagen wo der Fehler
    liegt ? Ich habe euch mal den Code gepostet.


    //if(GetPlayerVehicleID(playerid)!=416&&GetPlayerVehicleID(playerid)!=563)return ErrorMsg(playerid,"Fahrzeug ist kein Rettungswagen/Rettungshelikopter");


    Help me


    Ich habe schon in betracht gezogen das && zu || zu ersetzen. Jedoch funktioniert auch dies nicht.

    Ich suche (Beta) Server-Tester für meinen Server.
    Bei Intresse bitte bei mir per PN melden.

  • Du musst die MoelID abfragen, nicht die VehicleID..


    Sieht dann in etwa so aus..:
    new vid = GetPlayerVehicleID(playerid);
    if(GetVehicleModel(vid)!=416&&GetVehicleModel(vid)!=563)return ErrorMsg(playerid,"Fahrzeug ist kein Rettungswagen/Rettungshelikopter");