for- Schleife in ocmd bringt "SERVER: Unknown Command"

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
  • Guten Abend,


    ich habe ein sehr großes Problem. Ich muss in ocmd ein paar Befehle erstellen in denen ich eine for- Schleife ausführe in der MAX_VEHICLES der Maximalwert ist. Das Problem bei diesen Befehlen ist, sie werden garnicht ausgeführt und bringen die Meldung "SERVER: Unknown Command".


    So sieht jetzt mein Command aus:

    ocmd:test (playerid, params[])
    {
    for (new i = 0; i <= MAX_VEHICLES; i++)
    {
    SendClientMessage(playerid, grey, i);
    }
    return 1;
    }


    Wenn ich das ganze aber umändere in:


    ocmd:test (playerid, params[])


    {


    for (new i = 0; i <= MAX_PLAYERS; i++)


    {


    SendClientMessage(playerid, grey, i);


    }


    return 1;


    }



    Wird der Befehl mir ausgeführt und er bringt alle 250 Spieler ID's in den Chat.


    Ich habe schon einmal daran gedacht das vielleicht MAX_VEHICLES einen sehr hohen Wert hat. Aber wenn ich einfach MAX_VEHICLES durch 2 austausche, dann bringt er mir auch SERVER: Unknown Command.


    Ist derzeit ein richtiges Problem für.


    Vielen Dank im Voraus.

  • ocmd:test (playerid, params[])
    {
    for (new i = 0; i <= MAX_VEHICLES; i++)
    {
    SendClientMessage(playerid, grey, i);
    }
    return 1;
    }


    Du schickst jeden Vehicle eine Message oO ?


    MAX_VEHICLES


    EDIT::


    Sollte das nicht so sein? :D
    ocmd:test (playerid, params[])
    {
    for (new i = 0; i <= MAX_PLAYERS; i++)
    {
    if(IsPlayerConneted(i))
    {
    SendClientMessage(playerid, grey, i);
    }
    }
    return 1;
    }

  • Wenn du die Autos als message haben willst mach es einfach so!



    ocmd:test(playerid,params[])
    {
    for(new i = 0; i < MAX_VEHICLES;i++)
    {
    new string[128];
    format(string,128,"Es befinden sich %d Autos auf dem Server",i);
    SendClientMessage(playerid,grey,string);
    break;
    }
    return 1;
    }

    [tabmenu][tab='Angebote','http://cdn3.iconfinder.com/data/icons/glyph/227/Tag-48.png']

    + Die Preise liegen bei 5-100+€ Ablauf:
    + Entweder ihr addet mich in Skype (PN vorher Schreiben) oder Ihr schreibt eine PN an mich (Betreff - Euer Wunsch z.B. Filterscript)
    + So nun schreibt ihr mir was ihr alles in dem Script haben wollt ich werd euch dann sagen ob ich es hinbekomme.
    + Dann machen wir ein groben Preis aus. Ich werde das Script erstellen und es zusammen mit dem Kunden Testen.



    [tab='Kontakt','http://cdn3.iconfinder.com/data/icons/line/36/person_add-48.png']
    edmix23

    + Bitte beim Adden angeben wer ihr seit oder per PN bescheid sagen!
    [tab='Zahlungs Methoden','https://cdn3.iconfinder.com/data/icons/line/36/check_money-32.png']
    +Paypal!
    +Direkte Banküberweisung


  • :D das funktioniert so nicht ! Da würde dann 1 stehen :D


    Man muss das so machen:


    ocmd:test(playerid,params[])
    {
    new count = 0, i;
    for(; i<MAX_VEHICLES; i++)
    {
    count++;
    }
    new string[128];
    format(string,128,"Es befinden sich %d Autos auf dem Server",count);
    SendClientMessage(playerid,grey,string);
    return 1;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Kaliber, was soll das jetzt bewirken?


    Das ist so absolut Sinnlos.
    Da kann ich auch gleich MAX_VEHICLES in den Format mit reinschreiben.


    @Mr_Brox
    Was soll das genau bewirken, so wie dein Comandschnipsel momentan aussieht, würde dir der Compiler erstmal Errors raushauen,
    das ist aber scheinbar keinem aufgefallen.


    Der Fehler muss also woanders liegen.
    Poste doch mal den kompletten Command wie du ihn stehen hast ;)

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Das ergibt natürlich keinen Sinn weil ich es schnell auf meinem Laptop geschrieben habe, da ich an mein Selfmade nicht rankam. Warum sollte ich dem Spieler eine Nachricht senden welche ID's die Autos haben :wacko: Aber gut, das kann natürlich auch keiner wissen ^^


    Aber würde ich diesen Befehl ausführen, bringt er mir "SERVER: Unknown Command". Um alles andere auszuschließen habe ich halt nur die for- Schleife in den Befehl eingebaut und nicht mehr. Bevor ihr irgendwo anders ansetzt. Ich verstehe nämlich den Fehler garnicht.


    #Push - Da das Problem noch nicht gelöst wurde.

    Einmal editiert, zuletzt von Mr_Brox ()

  • i ist in diesem Fall ein Integer. Es ist jedoch ein String gefragt. Mich wundert es, dass du diesen Command im Spiel überhaupt ausführen kannst. Ich würde hier ein Tag Mismatch erwarten.


    Ebenfalls ist es doch egal, was für eine Zahl in der for-Schleife steht. MAX_VEHICLES ist genau wie MAX_PLAYERS eine Zahl, die mit einem Namen vordefiniert wurde alias #define. Hier wird der Fehler nicht zustande kommen.

  • Es ist exakt so wie das Codebeispiel oben. Nur das ich mich mit dem Integer und dem String vertan habe wie Cambell schon sagte.


    Nun gut, wenn das obere Beispiel schonmal nicht funktioniern kann, dann zeige doch einfach mal einen Ausschnitt von deinem Quellcode, welcher den Fehler tatsächlich im Spiel verursacht.