cmdbuffer.pwn 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. /*
  2. #define MAX_COMMAND_BUFFER (20)
  3. new CommandBuffer[MAX_PLAYERS][MAX_COMMAND_BUFFER][128];
  4. #define PRESSED(%0) \
  5. (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
  6. #define RELEASED(%0) \
  7. (((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
  8. new bool:HoldKeyPressed;
  9. */
  10. OnPlayerKeyStateChangeCMD(playerid,newkeys,oldkeys)
  11. {
  12. #pragma unused playerid, newkeys, oldkeys
  13. /*
  14. if(HoldKeyPressed && PRESSED(KEY_CROUCH) && !isnull(CommandBuffer[playerid][0]))
  15. Command_ReProcess(playerid, sprintf("/%s", CommandBuffer[playerid][0]), 0); //BroadcastCommand(playerid, CommandBuffer[playerid][0]);
  16. if(PRESSED(KEY_WALK))
  17. HoldKeyPressed = true;
  18. else if(RELEASED(KEY_WALK))
  19. HoldKeyPressed = false;
  20. */
  21. return 0;
  22. }
  23. public OnPlayerCommandText(playerid, cmdtext[])
  24. {
  25. /*
  26. //print(cmdtext);
  27. // Make every slot, start from slot 2, take the data from the slot before
  28. for(new i = MAX_COMMAND_BUFFER - 1; i > 0; --i) {
  29. //printf("i = %2i 1, CB[i] = %s, CB[i-1] = %s", i, CommandBuffer[playerid][i], CommandBuffer[playerid][i - 1]);
  30. //CommandBuffer[playerid][i] = CommandBuffer[playerid][i - 1];
  31. //printf("i = %2i 2, CB[i] = %s, CB[i-1] = %s", i, CommandBuffer[playerid][i], CommandBuffer[playerid][i - 1]);
  32. format(CommandBuffer[playerid][i], 128, "%s", CommandBuffer[playerid][i - 1]);
  33. }
  34. // Insert the command and it's parameters into the buffer
  35. //CommandBuffer[playerid][0][0] = EOS;
  36. format(CommandBuffer[playerid][0], 128, "%s", cmdtext);
  37. */
  38. #if defined CB_OnPlayerCommandText
  39. CB_OnPlayerCommandText(playerid, cmdtext);
  40. #endif
  41. return 0;
  42. }
  43. #if defined _ALS_OnPlayerCommandText
  44. #undef OnPlayerCommandText
  45. #else
  46. #define _ALS_OnPlayerCommandText
  47. #endif
  48. #define OnPlayerCommandText CB_OnPlayerCommandText
  49. #if defined CB_OnPlayerCommandText
  50. forward CB_OnPlayerCommandText(playerid, cmdtext[]);
  51. #endif
  52. public OnPlayerConnect(playerid)
  53. {
  54. /*
  55. // Reset the player's buffer
  56. new tmpCommandBuffer[MAX_COMMAND_BUFFER][128];
  57. CommandBuffer[playerid] = tmpCommandBuffer;
  58. */
  59. #if defined CB_OnPlayerConnect
  60. CB_OnPlayerConnect(playerid);
  61. #endif
  62. return 1;
  63. }
  64. #if defined _ALS_OnPlayerConnect
  65. #undef OnPlayerConnect
  66. #else
  67. #define _ALS_OnPlayerConnect
  68. #endif
  69. #define OnPlayerConnect CB_OnPlayerConnect
  70. #if defined CB_OnPlayerConnect
  71. forward CB_OnPlayerConnect(playerid);
  72. #endif