Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- HT-CMD
- Powered by BJIADOKC
- 2012
- Remove this copyright, if you want to be a superman!
- */
- #if defined htcmd_core
- #endinput
- #endif
- #define htcmd_core
- #if !defined _samp_included
- #error Include a_samp.inc before HT-CMD!
- #endif
- #define MAX_COMMAND_LEN 32
- #define MAX_PARAMS_LEN 128
- stock InitCMD(playerid, cmdtext[])
- {
- DeletePVar(playerid, "cmd");
- DeletePVar(playerid, "cmd_len");
- DeletePVar(playerid, "cmd_params");
- DeletePVar(playerid, "cmd_params_len");
- if(cmdtext[0] != '/' || !cmdtext[1])
- {
- printf("HTCMD Warning: NULL/Invalid command sent from PlayerID %d", playerid);
- return 0;
- }
- new space = strfind(cmdtext, " ", true, 1), len = strlen(cmdtext), cmd[MAX_COMMAND_LEN], params[MAX_PARAMS_LEN];
- if(len > (MAX_COMMAND_LEN + MAX_PARAMS_LEN))
- {
- printf("HTCMD Warning: Buffer overflowed (%d len) command sent from PlayerID %s", len, playerid);
- return 0;
- }
- /*#if defined sscanf
- sscanf(cmdtext, "p< >s[32]s[128]", cmd, params);
- goto PROCESS;
- #undef*/
- /*#if defined sparam && !defined sscanf
- sparam(cmd, MAX_COMMAND_LEN, cmdtext, ' ', 0);
- sparam(params, MAX_PARAMS_LEN, cmdtext, ' ', 1, 1);
- goto PROCESS;
- #endif*/
- strmid(cmd, cmdtext, 1, (space == -1) ? ((--len < 32) ? len : 0) : ((space > 31) ? 0 : space));
- strmid(params, cmdtext, ++space, len);
- /*PROCESS:*/
- if(cmd[0] < 20)
- {
- printf("HTCMD Warning: Unacceptable command sent from PlayerID %d", playerid);
- return 0;
- }
- SetPVarInt(playerid, "cmd", htdigest(cmd));
- SetPVarInt(playerid, "cmd_len", strlen(cmd));
- if((len = strlen(params)) && params[0] != '\1')
- {
- SetPVarString(playerid, "cmd_params", params);
- SetPVarInt(playerid, "cmd_params_len", len);
- }
- return 1;
- }
- stock htdigest(dest[])
- {
- new buffer = 1, temp;
- for(new i; dest[i]; i++)
- {
- buffer += dest[i];
- buffer %= 65521;
- temp += buffer;
- temp %= 65521;
- }
- return ((temp << 16) + buffer);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement