ocmd 2.1.1 [ Update 3.11.2013 ]

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
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Ich weiß es ja nicht wirklich , aber was bitte schön hast du an dem kleinen update gemacht ich hab mal beide pastbins mal angeschaut von ocmd 2.0.1 und 2.0.2


    was hast du den da geupdatet bis auf das du dies ergänzt hast.


    2.0.1
    supports samp 0.2X, 0.3a, 0.3b, 0.3c, 0.3d, 0.3e
    2.0.2
    supports samp 0.2X, 0.3a, 0.3b, 0.3c, 0.3d, 0.3e, 0.3x


    pastebin 2.0.1

    /*
    OCMD 2.0.1
    by Kleiner Opa
    best command-solution for sa:mp
    supports samp 0.2X, 0.3a, 0.3b, 0.3c, 0.3d, 0.3e
    email: fisch70000@gmail.com
    http://forum.sa-mp.de/index.php?page=User&userID=24998
    */


    #include <a_samp>


    forward ocmdOnPlayerCommandText(playerid,cmdtext[]);
    #if defined OCMD_BEFORE_CALLBACK
    forward BeforePlayerCommandText(playerid,cmdtext[]);
    new bool:ocmdBeforeCallback,bool:ocmdInit;
    #endif


    #define ocmd:%1(%2) forward ocmd_%1(%2);\
    public ocmd_%1(%2)


    public OnPlayerCommandText(playerid,cmdtext[])
    {
    #if defined OCMD_BEFORE_CALLBACK
    if(!ocmdInit)
    {
    if(funcidx("BeforePlayerCommandText")!=-1)ocmdBeforeCallback=true;
    ocmdInit=true;
    }
    #endif
    new ocmdStr[32]="ocmd_",
    i=1,
    #if defined OCMD_COMMAND_LOG
    ocmdName[MAX_PLAYER_NAME],
    #endif
    bool:ocmdNoParams;
    #if defined OCMD_COMMAND_LOG
    GetPlayerName(playerid,ocmdName,sizeof ocmdName);
    printf("[cmd] [%s]: %s",ocmdName,cmdtext);
    #endif
    #if defined OCMD_BEFORE_CALLBACK
    if(ocmdBeforeCallback&&!CallLocalFunction("BeforePlayerCommandText","ds",playerid,cmdtext))return 1;
    #endif
    for(;i<128;i++)
    {
    if(!cmdtext[i]||cmdtext[i]==' ')
    {
    if(!cmdtext[i]||!cmdtext[i+1])ocmdNoParams=true;
    break;
    }
    ocmdStr[i+4]=tolower(cmdtext[i]);
    }
    if(!ocmdNoParams&&CallLocalFunction(ocmdStr,"ds",playerid,cmdtext[i+1]))return 1;
    if(ocmdNoParams&&CallLocalFunction(ocmdStr,"ds",playerid," "))return 1;
    return CallLocalFunction("ocmdOnPlayerCommandText","ds",playerid,cmdtext);
    }


    #define OnPlayerCommandText ocmdOnPlayerCommandText


    pastebin 2.0.2


    /*
    OCMD 2.0.2
    by Kleiner Opa
    best command-solution for sa:mp
    supports samp 0.2X, 0.3a, 0.3b, 0.3c, 0.3d, 0.3e, 0.3x
    email: fisch70000@gmail.com
    http://forum.sa-mp.de/index.php?page=User&userID=24998
    */

    #include <a_samp>

    forward ocmdOnPlayerCommandText(playerid,cmdtext[]);
    #if defined OCMD_BEFORE_CALLBACK
    forward BeforePlayerCommandText(playerid,cmdtext[]);
    new bool:ocmdBeforeCallback,bool:ocmdInit;
    #endif

    #define ocmd:%1(%2) forward ocmd_%1(%2);\
    public ocmd_%1(%2)

    public OnPlayerCommandText(playerid,cmdtext[])
    {
    #if defined OCMD_BEFORE_CALLBACK
    if(!ocmdInit)
    {
    if(funcidx("BeforePlayerCommandText")!=-1)ocmdBeforeCallback=true;
    ocmdInit=true;
    }
    #endif
    new ocmdStr[32]="ocmd_",
    i=1,
    #if defined OCMD_COMMAND_LOG
    ocmdName[MAX_PLAYER_NAME],
    #endif
    bool:ocmdNoParams;
    #if defined OCMD_COMMAND_LOG
    GetPlayerName(playerid,ocmdName,sizeof ocmdName);
    printf("[cmd] [%s]: %s",ocmdName,cmdtext);
    #endif
    #if defined OCMD_BEFORE_CALLBACK
    if(ocmdBeforeCallback&&!CallLocalFunction("BeforePlayerCommandText","ds",playerid,cmdtext))return 1;
    #endif
    for(;i<128;i++)
    {
    if(!cmdtext[i]||cmdtext[i]==' ')
    {
    if(!cmdtext[i]||!cmdtext[i+1])ocmdNoParams=true;
    break;
    }
    ocmdStr[i+4]=tolower(cmdtext[i]);
    }
    if(!ocmdNoParams&&CallLocalFunction(ocmdStr,"ds",playerid,cmdtext[i+1]))return 1;
    if(ocmdNoParams&&CallLocalFunction(ocmdStr,"ds",playerid," "))return 1;
    return CallLocalFunction("ocmdOnPlayerCommandText","ds",playerid,cmdtext);
    }

    #define OnPlayerCommandText ocmdOnPlayerCommandText


    //edit habe 2 zeilen vergessen

  • @Opa


    bitte änder deinen Hook der kann fehler bei anderen Includes verursachen X(


    schreib das bei dir rein
    #if defined _ALS_OnPlayerCommandText
    #undef OnPlayerCommandText
    #else
    #define _ALS_OnPlayerCommandText
    #endif
    #define OnPlayerCommandText ocmdOnPlayerCommandText
    anstatt
    #define OnPlayerCommandText ocmdOnPlayerCommandText


    Durch deine Include kommen bei mir in Includes macro fehler auf, da der Hook nicht richtig ist bei dir...

    All in all it's just another brick in the wall

  • Unter OnPlayerCommandText geht es nicht.


    Nun, du kannst den Callback OnPlayerCommandText bevor ocmd sie nutzt nochmal hooken und da das System einbauen oder direkt in die Include von ocmd ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


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


  • Nun, du kannst den Callback OnPlayerCommandText bevor ocmd sie nutzt nochmal hooken und da das System einbauen oder direkt in die Include von ocmd ;)


    mfg. :thumbup:


    für was gibts die möchtegern profi funktion

    #define OCMD_BEFORE_CALLBACK
    #include <ocmd>


    //...


    public BeforePlayerCommandText(playerid,cmdtext[])
    {
    if(GetPVarInt(playerid,"muted"))
    {
    SendClientMessage(playerid,0xff0000ff,"Du bist gemuted");
    return 0;
    }
    return 1;
    }