Commando mit parameter

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
  • kannste das net im originialen thread schreiben?!?! ich glaub ma das verstößt gegen die regeln oda?


    MY SELFMADE GAMEMODE "NoName"

    Spoiler anzeigen


    - AccountSystem: 100%
    - LizenzenSystem: 5%
    - TelefonSystem: 5%
    - JobSystem: 3%
    - GeldSystem: 80%
    - AutoSystem: 75%
    - FahndungsSystem: [color=#ff6600]10%
    [color=#000000]- HausSystem: [color=#ff0000]0%

    [color=#000000]- GeschäftsSystem: [color=#ff0000]0%

    [color=#000000]- ZahlTag System: [color=#ff0000]0%

    [color=#000000]- WetterSystem: [color=#ff0000]0%

    [color=#000000]- AntiCheatSystem: [color=#ff0000]0%

    Spoiler anzeigen
    GameModeName: [GM]MyGamemode
    Filterscripts: None
    Benutze Includes: [Inc]MyInclude
    Voraussichtliche Fertigstellung: Unbekannt
    Voraussichtliche Servereröffnung: Unbekannt
    Voraussichtliche Veröffentlichung des Scripts: Wahrscheinlich NIE
    Voraussichtliche Veröffentlichung des Scripts: Wahrscheinlich NIE
    Sonstige Anmerkungen: Selfmade

  • > STRTOK
    strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
    index++;
    }


    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
    }


    Dann bei OnPlayerCommandText
    new tmp[128],cmd[128],index;
    if (strcmp(cmd, "/healme", true) ==0 )
    {
    tmp = strtok(cmdtext,index);
    if(!strlen(tmp)){return 1;} // er geht zurück sobald der Inhalt von tmp nix war
    new health = strval(tmp);
    SetPlayerHealth(playerid,health);
    return 1;
    }
    falls du noch einen Parameter willst unter dem new health = ... also die Zwischenspeicherung nochmal
    tmp = strtok(cmdtext,index); dann die abfrage wegen dem Inhalt und noch ne Zwischenspeicherung dann den Wert dort einsetzen wo
    er gebraucht wird

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Fox du tust mir weh mit deinem strtok. :|


    Mario2323, benutz am besten dcmd in Verbindung mit sscanf. Hat viele Vorteile, zum einen bessere Übersichtlichkeit, kürzerer Code, weniger Buganfällig, ressourcenschonender und auch leicht verständlich.

    Help dcmd & sscanf to their way to Pawn domination. Read the tutorial below, and use it.
    dcmd & sscanf

  • habe noch ne frage.


    ich hab dcmd kapiert(teilweise).



    was ich nicht verstehe, wie werden die parameter in die vars gepackt?


    ich mein:



    dcmd_kick(playerid,params[]) {
    new sGrund[128], pID;
    if(sscanf(params, "ds",pID,sGrund)) {
    return SendClientMessage(playerid,COLOR_RED,"USAGE: /kick [playerid] [grund]");
    }
    if(!IsPlayerConnected(pID)) {
    return SendClientMessage(playerid,COLOR_RED,"Kein Spieler mit angegebener ID Online");
    }
    new ThePlayer[MAX_PLAYER_NAME], string[128];
    GetPlayerName(pID,ThePlayer,sizeof(ThePlayer));
    format(string,sizeof(string),"%s (ID %d) wurde vom Server gekickt,Grund: %s",ThePlayer,pID,sGrund);
    Kick(pID);
    return 1;
    }
    new sGrund[128], pID; müssten doch leer sein und Theplayer auch.
    warum werden die dann da rein geschrieben?
    ich mein sscanf(params, "ds",pID,sGrund) kann doch nicht das darein setzten, weil es doch inne if anweisung steht

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Diese if Bedingung bei if(sscanf.... gibt nur an dass sscanf benutzt wird und die Message die in diesem Fall bei dir dasteht an den Player gesendet wird wenn sGrund bzw. pID leer sind, also 0 Stellen haben.

    Help dcmd & sscanf to their way to Pawn domination. Read the tutorial below, and use it.
    dcmd & sscanf

  • Passiert schon irgendwie, durch denn sscanf Code^^
    Wie wird allen Pawn Scriptern, die sich nicht mit C++ beschäftigen, nie erfahren. Ich selbst auch nicht.
    Das ist sehr komplex, der sscanf Code. Auf jeden Fall funktioniert es und da nichts anderes den Variablen die Eingaben zuteilen könnte, kommt nur sscanf in Frage.
    Naja, solange es funktioniert ist es mir auch recht gleichgültig ;)