Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*********************************************
- * *
- * RaFaeL's library *
- * @Release: 15/10/2012 *
- * @Version: v0.2 *
- * *
- * This include is part of RaFaeL's library -*
- *-All rights are reserved for rafael -*
- *-Thank's to zeedx for help! *
- * *
- *********************************************/
- #if defined _rcmd_included
- #endinput
- #endif
- #define _rcmd_included
- #define MAX_FUNC_NAME (32)
- #define COMMAND:%0(%1) \
- forward command_%0(%1); public command_%0(%1)
- #define CMD:%0(%1) COMMAND:%0(%1)
- #if !defined isnull
- #define isnull(%1) \
- ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
- #endif
- forward OnPlayerCommandSent(playerid, cmdtext[]);
- forward OnPlayerCommandExecuted(playerid, cmdtext[], bool:success);
- static
- bool:rcmd_HasOPCS = false,
- bool:rcmd_HasOPCE = false;
- #if defined FILTERSCRIPT
- public OnFilterScriptInit()
- #else
- public OnGameModeInit()
- #endif
- {
- rcmd_HasOPCS = (funcidx("OnPlayerCommandSent") != -1);
- rcmd_HasOPCE = (funcidx("OnPlayerCommandExecuted") != -1);
- return 0;
- }
- #if defined FILTERSCRIPT
- #if defined _ALS_OnFilterScriptInit
- #undef OnFilterScriptInit
- #else
- #define _ALS_OnFilterScriptInit
- #endif
- #define OnFilterScriptInit rcmd_OnFilterScriptInit
- forward rcmd_OnFilterScriptInit();
- #else
- #if defined _ALS_OnGameModeInit
- #undef OnGameModeInit
- #else
- #define _ALS_OnGameModeInit
- #endif
- #define OnGameModeInit rcmd_OnGameModeInit
- forward rcmd_OnGameModeInit();
- #endif
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if (rcmd_HasOPCS && !CallLocalFunction("OnPlayerCommandSent", "ds", playerid, cmdtext)) return 1;
- new
- funcname[64],
- spacechar = strfind(cmdtext, " ");
- strmid(funcname, cmdtext, 1, (spacechar != -1) ? (spacechar) : strlen(cmdtext));
- format(funcname, sizeof(funcname), "command_%s", lowercase(funcname));
- if (strlen(funcname) > MAX_FUNC_NAME+8) return 0;
- if (funcidx(funcname) != -1)
- {
- new params[64];
- if (spacechar != -1)
- strmid(params, cmdtext, spacechar + 1, strlen(cmdtext));
- CallLocalFunction("OnPlayerCommandExecuted", "dsb", playerid, cmdtext, true);
- return CallLocalFunction(funcname, "ds", playerid, (isnull(params))? ("\1"):(params));
- }
- return (rcmd_HasOPCE)? (CallLocalFunction("OnPlayerCommandExecuted", "dsb", playerid, cmdtext, false)):(0);
- }
- #if defined _ALS_OnPlayerCommandText
- #undef OnPlayerCommandText
- #else
- #define _ALS_OnPlayerCommandText
- #endif
- #define OnPlayerCommandText rcmd_OnPlayerCommandText
- forward rcmd_OnPlayerCommandText(playerid, cmdtext[]);
- stock lowercase(const string[])
- {
- new
- strreturn[64];
- strcat(strreturn, string);
- for (new iIter, iLen = strlen(strreturn); iIter < iLen; iIter++) if (strreturn[iIter] > 'A' && strreturn[iIter] < 'Z')
- {
- strreturn[iIter] = tolower(strreturn[iIter]);
- }
- return strreturn;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement