Y_Less

Cueball

Nov 15th, 2007
344
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.53 KB | None | 0 0
  1. /**************************************************
  2. * Command_Generator by ~Cueball~ *
  3. **************************************************/
  4. #include <a_samp>
  5. #define FILTERSCRIPT
  6. #if defined FILTERSCRIPT
  7.  
  8. /*--------------------------------------------------------------------------/
  9. / Change These To Alter Script /
  10. //-------------------------------------------------------------------------*/
  11.  
  12. #define VehicleTele true
  13. #define PrintInConsole true
  14. #define SendAdminMessage true
  15.  
  16. new File:GenCmds;
  17.  
  18. public OnFilterScriptInit()
  19. {
  20. print("\n**************************************************");
  21. print("* Command_Generator by ~Cueball~ *");
  22. print("**************************************************\n");
  23. if(!fexist("Generated_Commands.txt")) { GenCmds = fopen("Generated_Commands.txt", io_readwrite); fclose(GenCmds); }
  24. return 1;
  25. }
  26.  
  27. public OnFilterScriptExit()
  28. {
  29. print("\n**************************************************");
  30. print("* Command_Generator Closed *");
  31. print("**************************************************\n");
  32. return 1;
  33. }
  34. #endif
  35.  
  36. public OnPlayerConnect(playerid)
  37. {
  38. SendClientMessage(playerid,0x33CCFFAA,"Running Command_Generator Script by ~Cueball~ || To get started type /saveloc at your wanted location");
  39. return 1;
  40. }
  41.  
  42. public OnPlayerCommandText(playerid, cmdtext[])
  43. {
  44. new cmd[128];
  45. new idx;
  46. cmd = strtok(cmdtext, idx);
  47. if(strcmp (cmd, "/saveloc", true)==0)
  48. {
  49. new Float:x, Float:y, Float:z, Float:Ang, tmp[128], CommandName[700], VehicleLine[700], PlayerLine[700], AltPlayerLine[700], ReturnLine[50], EndBrace[50], NewLine[50], Separator[80], ConfirmationMessage[100], Stats[50], XValue[50], YValue[50], ZValue[50], ANGValue[50], AdminMessage[100], PlayerIp[50], PlayerName[MAX_PLAYER_NAME], hour, minute, second, year, month, day;
  50. tmp = strtok(cmdtext, idx); if (tmp[0] == 0) { SendClientMessage(playerid,0xFFFFFFAA,"Usage: /saveloc [teleport/command name] (DO NOT INCLUDE THE '/'!)"); return 1; }
  51. GetPlayerName(playerid,PlayerName,MAX_PLAYER_NAME); GetPlayerIp(playerid,PlayerIp,50); GetPlayerPos(playerid,x,y,z); GetPlayerFacingAngle(playerid,Ang); gettime(hour,minute,second); getdate(year,month,day);
  52. format(CommandName,700,"if (strcmp(\"/%s\", cmdtext,true)==0) { //requested by player '%s' (IP:%s) on the %d/%d/%d. Time: %d:%d:%d\r\n",cmdtext[9],PlayerName,PlayerIp,day,month,year,hour,minute,second);
  53. format(VehicleLine,700," if (GetPlayerState(playerid) == 2) { SetVehiclePos(GetPlayerVehicleID(playerid),%f,%f,%f); SetVehicleZAngle(GetPlayerVehicleID(playerid), %f); SetCameraBehindPlayer(playerid); } \r\n",x,y,z,Ang);
  54. format(PlayerLine, 700," else { SetPlayerPos(playerid,%f,%f,%f); SetPlayerFacingAngle(playerid,%f); SetCameraBehindPlayer(playerid); }\r\n",x,y,z,Ang);
  55. format(AltPlayerLine, 700," SetPlayerPos(playerid,%f,%f,%f); SetPlayerFacingAngle(playerid,%f); SetCameraBehindPlayer(playerid);\r\n",x,y,z,Ang);
  56. format(ReturnLine, 50,"return 1;\r\n"); format(EndBrace, 50,"}\r\n"); format(NewLine,50," \r\n"); format(Separator, 80,"//=====================================================\r\n");
  57. format(ConfirmationMessage,100,"Command Generator: Your command '/%s' has been generated and sent to the server admin.",cmdtext[9]);
  58. format(Stats,50,"Command Statistics:"); format(XValue,50,"X value: %f",x); format(YValue,50,"Y value: %f",y); format(ZValue,50,"Z value: %f",z); format(ANGValue,50,"Angle value: %f",Ang);
  59. SendClientMessage(playerid,0x33CCFFAA,ConfirmationMessage); SendClientMessage(playerid,0x33CCFFAA,Stats);
  60. SendClientMessage(playerid,0xFFFFFFAA,XValue); SendClientMessage(playerid,0xFFFFFFAA,YValue); SendClientMessage(playerid,0xFFFFFFAA,ZValue); SendClientMessage(playerid,0xFFFFFFAA,ANGValue);
  61. SendClientMessage(playerid,0xFFFFFFAA,"Thankyou. Your command was very helpful to the server owner.");
  62. #if PrintInConsole == true
  63. printf("[generator] Player '%s' (IP:%s) requested '/%s'.", PlayerName,PlayerIp,cmdtext[9]);
  64. #endif
  65. #if SendAdminMessage == true
  66. format(AdminMessage,100,"GENERATOR: Player '%s' (ID:%d) requested '/%s'",PlayerName,playerid,cmdtext[9]); SendClientMessageToAdmins(0x33CCFFAA,AdminMessage);
  67. #endif
  68. GenCmds = fopen("Generated_Commands.txt", io_append); fwrite(GenCmds,CommandName);
  69. #if VehicleTele == true
  70. fwrite(GenCmds,VehicleLine); fwrite(GenCmds,PlayerLine);
  71. #endif
  72. #if VehicleTele != true
  73. fwrite(GenCmds,AltPlayerLine);
  74. #endif
  75. fwrite(GenCmds,ReturnLine); fwrite(GenCmds,EndBrace); fwrite(GenCmds,NewLine); fwrite(GenCmds,Separator); fwrite(GenCmds,NewLine); fclose(GenCmds);
  76.  
  77. return 1;
  78. }
  79. return 0;
  80. }
  81.  
  82. strtok(const string[], &index)
  83. {
  84. new length = strlen(string);
  85. while ((index < length) && (string[index] <= ' '))
  86. {
  87. index++;
  88. }
  89.  
  90. new offset = index;
  91. new result[20];
  92. while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  93. {
  94. result[index - offset] = string[index];
  95. index++;
  96. }
  97. result[index - offset] = EOS;
  98. return result;
  99. }
  100.  
  101. stock SendClientMessageToAdmins(colour, const message[]) { // By 50p: http://forum.sa-mp.com/index.php?topic=638.msg59538#msg59538
  102. for(new i=0; i<MAX_PLAYERS; i++) {
  103. if(IsPlayerConnected(i)) {
  104. if(IsPlayerAdmin(i)) {
  105. SendClientMessage(i, colour, message);
  106. }
  107. }
  108. }
  109. }
Advertisement
Add Comment
Please, Sign In to add comment