Advertisement
Guest User

SimpleScripting 0.1

a guest
Nov 24th, 2011
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 5.73 KB | None | 0 0
  1. /********************************************************/
  2. /*######################################################*/
  3. /********************************************************/
  4. /* Simple Scripting 24.11                               */
  5. /*                by Tion                               */
  6. /* • Neuveröffentlichung verboten !                     */
  7. /* • Copyright ( dieser Header ) muss drinne bleiben !  */
  8. /* • Habt Spaß =)                                       */
  9. /* Benutzung von SimpleCommand:                         */
  10. /*  CMD:befehl(playerid, params[])                      */
  11. /*   • Der Befehl muss klein geschrieben werden         */
  12. /*   • Wenn keine Parameter, params == "\0"             */
  13. /* Benutzung von SimpleRcon:                            */
  14. /*  RCON:befehl(params[])                               */
  15. /*   • Der Befehl muss klein geschrieben werden         */
  16. /*   • Wenn keine Parameter, params == "\0"             */
  17. /* Benutzung von SimpleDialog:                          */
  18. /*  DIALOG:dialogid(playerid,response,listitem,input[]) */
  19. /*   • Die Dialogid muss eine Zahl sein                 */
  20. /*   • Nichts weiter zu beachten =)                     */
  21. /********************************************************/
  22. /*######################################################*/
  23. /********************************************************/
  24.  
  25. /* SimpleCommands - Zum deaktivieren "#define SimpleCommandsDeaktivate" vor Einbindung des Scriptes */
  26.  
  27. #if !defined SimpleCommandsDeaktivate
  28.  
  29.     public OnPlayerCommandText(playerid, cmdtext[])
  30.     {
  31.         #if defined DEBUG_MODE
  32.             printf("OPCT: %d / %s", playerid, cmdtext);
  33.         #endif
  34.         new stringpos = 1, commandparser[32], calllocalfunction[64];
  35.         // wir trennen den Befehl von dem restlichen String, dabei machen wir den ersten Teil des Befehles kleiner ( tolower )
  36.         //  damit man /help & /hELp & /Help (...) eingeben kann.
  37.         //  Da es sich hier nur um Chars handelt ( Strings sind ja eig. ein Char-Array :O ) kann man ein "=" anstelle von strmid benutzen
  38.         for(/* stringpos ist lokal global definiert */; cmdtext[stringpos] != ' ' && stringpos < 28; stringpos++)
  39.         {
  40.             commandparser[stringpos - 1] = tolower(cmdtext[stringpos]);
  41.         }
  42.         // Überspringen wir alle Leerstellen vor dem ersten Parameter, damit "/kick   x xxx" zu "/kick x xxx" geformt wird.
  43.         while (cmdtext[stringpos] == ' ') stringpos++;
  44.         // Jetzt wird die Funktion "geformt", die später aufgerufen wird.
  45.         format(calllocalfunction, 64, "cmd_%s", commandparser);
  46.         // Testen wir, ob weitere Parameter nach unendlichen Leerzeichen vorhanden sind.
  47.         if (!cmdtext[stringpos])
  48.         {
  49.             // Es sind keine weiteren Parameter mehr vorhanden. Schade eigentlich :D
  50.             CallLocalFunction(calllocalfunction, "is", playerid, "\0");
  51.             }
  52.         else
  53.         {
  54.             // Es sind weitere Parameter vorhanden. Durch das von C++ bekannte Prinzip der ( ich glaube es heißt so )
  55.             //  "Arrayverschiebung" wird bei dem Aufrufen eines Indexes eines Arrays die restlichen Chars mitgeliefert.
  56.                 CallLocalFunction(calllocalfunction, "is", playerid, cmdtext[stringpos++]);
  57.         }
  58.         return 1;
  59.     }
  60.  
  61.     #define OnPlayerCommandText OnPlayerCommandTextEx // Um Befehlsüberschneidung zu vermeiden
  62.  
  63. #endif
  64.  
  65. /* SimpleRcon - Zum deaktivieren "#define SimpleRconDeaktivate" vor Einbindung des Scriptes */
  66.  
  67. #if !defined SimpleRconDeaktivate
  68.  
  69.     public OnRconCommand(cmd[])
  70.     {
  71.         #if defined DEBUG_MODE
  72.             printf("ORC: %s / %s", cmd);
  73.         #endif
  74.         new stringpos = 1, commandparser[32], calllocalfunction[64];
  75.         // Wir fangen wie bei OnPlayerCommandText an
  76.         for(/* stringpos ist lokal global definiert */; cmd[stringpos] != ' ' && stringpos < 28; stringpos++)
  77.         {
  78.             commandparser[stringpos - 1] = tolower(cmd[stringpos]);
  79.         }
  80.         // Überspringen wir alle Leerstellen vor dem ersten Parameter, damit "kick   x" zu "kick x" geformt wird.
  81.         while (cmd[stringpos] == ' ') stringpos++;
  82.         // Jetzt wird die Funktion "geformt", die später aufgerufen wird.
  83.         format(calllocalfunction, 64, "rcon_%s", commandparser);
  84.         // Testen wir, ob weitere Parameter nach unendlichen Leerzeichen vorhanden sind.
  85.         if (!cmd[stringpos])
  86.         {
  87.             // Es sind keine weiteren Parameter mehr vorhanden. Schade eigentlich :D
  88.             CallLocalFunction(calllocalfunction, "s", "\0");
  89.         }
  90.         else
  91.         {
  92.             // Es sind weitere Parameter vorhanden. Durch das von C++ bekannte Prinzip der ( ich glaube es heißt so )
  93.             //  "Arrayverschiebung" wird bei dem Aufrufen eines Indexes eines Arrays die restlichen Chars mitgeliefert.
  94.             CallLocalFunction(calllocalfunction, "s", cmd[stringpos++]);
  95.         }
  96.         return 1;
  97.     }
  98.    
  99.     #define OnRconCommand OnRconCommandEx // Um Befehlsüberschneidung zu vermeiden
  100. #endif
  101.  
  102. /* SimpleDialog - Zum deaktivieren "#define SimpleDialogDeaktivate" vor Einbindung des Scriptes */
  103.  
  104. #if !defined SimpleDialogDeaktivate
  105.  
  106.     public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  107.     {
  108.         #if defined DEBUG_MODE
  109.             printf("ODR: %i / %i / %i / %i / %s", playerid, dialogid, response, listitem, inputtext);
  110.         #endif
  111.         new calllocalfunction[64];
  112.         // Hier ist das ganze schon weeeeesetnlich einfacher, da alles gegeben ist =)
  113.         format(calllocalfunction, 64, "dialog_%d", dialogid);
  114.         CallLocalFunction(calllocalfunction, "iiis", playerid, response, listitem, inputtext);
  115.         return 1;
  116.     }
  117.  
  118.     #define OnDialogResponse OnDialogResponseEx // Um Befehlsüberschneidung zu vermeiden
  119. #endif
  120.  
  121. // CMD:befehl(playerid, params[])
  122. #define CMD:%1(%2,%3)           forward cmd_%1(%2,%3);      public cmd_%1(%2,%3)
  123. // RCON:kick(params[])
  124. #define RCON:%1(%2)             forward rcon_%1(%2);    public rcon_%1(%2)
  125. // DIALOG:1(playerid, response, listitem, input[])
  126. #define DIALOG:%1(%2,%3,%4,%5)  forward dialog_%1(%2,%3,%4,%5); public dialog_%1(%2,%3,%4,%5)
  127.  
  128. /* Ende SimpleScripting */
  129.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement