Advertisement
Samp-Pawn

Code System - Samp

May 23rd, 2012
589
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.63 KB | None | 0 0
  1. #include <a_samp>
  2. #include <dini>
  3.  
  4. #define CODES_FILE "Codes.ini"
  5. #define DIALOG_ID_CODE 100
  6. #define EXTRA_CASH 10000
  7. #define MINIGUN_AMMO 100000
  8.  
  9. new string[30];
  10. new str[128];
  11. new const charset[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
  12.  
  13. public OnFilterScriptInit()
  14. {
  15. print("\n--------------------------------------");
  16. print(" Codes and Prizes ");
  17. print("--------------------------------------\n");
  18. }
  19.  
  20. public OnFilterScriptExit()
  21. {
  22. print("\n--------------------------------------");
  23. print(" Codes and Prizes ");
  24. print("--------------------------------------\n");
  25. }
  26.  
  27. public OnGameModeInit()
  28. {
  29. if(!fexist(CODES_FILE))
  30. dini_Create(CODES_FILE);
  31. }
  32.  
  33. public OnPlayerCommandText(playerid, cmdtext[])
  34. {
  35. new cmd[256], tmp[256], idx;
  36. cmd = strtok(cmdtext,idx);
  37. if(!strcmp(cmd, "/CreateCode", true) && IsPlayerAdmin(playerid))
  38. {
  39. tmp = strtok(cmdtext,idx);
  40. if(!strlen(tmp))
  41. {
  42. SendClientMessage(playerid, 0xffee00ff, "USAGE: /CreateCode [Type]");
  43. SendClientMessage(playerid, 0xffee00ff, "Type 1: Extra Cash.");
  44. SendClientMessage(playerid, 0xffee00ff, "Type 2: Minigun.");
  45. SendClientMessage(playerid, 0xffee00ff, "Type 3: Rhino.");
  46. return SendClientMessage(playerid, 0xffee00ff, "Type 4: Vehicle Speed.");
  47. }
  48. do
  49. {
  50. for(new i; i < 15; i++)
  51. string[i] = charset[RandomEx(0, sizeof(charset) - 1)];
  52. }
  53. while(dini_Isset(CODES_FILE, string));
  54. dini_IntSet(CODES_FILE, string, strval(tmp));
  55. format(str, sizeof(str), "The Code: %s\nType: %s\nRemember To Write Down The Code!", string, GetCodeType(strval(tmp)));
  56. return ShowPlayerDialog(playerid, DIALOG_ID_CODE, DIALOG_STYLE_MSGBOX, "Prize Code Created!", str, "OK", "OK");
  57. }
  58. if(!strcmp(cmd, "/UseCode", true))
  59. {
  60. tmp = strtok(cmdtext,idx);
  61. if(!strlen(tmp))return SendClientMessage(playerid, 0xffee00ff, "USAGE: /UseCode [Code]");
  62. if(!dini_Isset(CODES_FILE, tmp))return SendClientMessage(playerid, 0xFF0000FF, "ERROR: The Code You Have Entered Doesn't Exist.");
  63. if(!dini_Int(CODES_FILE, tmp))return SendClientMessage(playerid, 0xFF0000FF, "ERROR: The Code You Have Entered Is Already Used.");
  64. switch(dini_Int(CODES_FILE, tmp))
  65. {
  66. case 1: GivePlayerMoney(playerid, EXTRA_CASH);
  67. case 2: GivePlayerWeapon(playerid, WEAPON_MINIGUN, MINIGUN_AMMO);
  68. case 3:
  69. {
  70. new Float:Pos[4], RhinoID;
  71. GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  72. GetPlayerFacingAngle(playerid, Pos[3]);
  73. RhinoID = CreateVehicle(432, Pos[0], Pos[1], Pos[2], Pos[3], -1, -1, -1);
  74. PutPlayerInVehicle(playerid, RhinoID, 0);
  75. }
  76. case 4:
  77. {
  78. if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, 0xFF0000FF, "ERROR: This Code Requires Vehicle.");
  79. new Float:Pos[3], Dv, Multiple;
  80. GetVehicleVelocity(GetPlayerVehicleID(playerid), Pos[0], Pos[1], Pos[2]);
  81. Multiple = ((50 + Dv * 100) / (Dv * 100));
  82. SetVehicleVelocity(GetPlayerVehicleID(playerid), Pos[0] * Multiple, Pos[1] * Multiple, Pos[2] * Multiple);
  83. }
  84. }
  85. format(str, sizeof(str), "You Have Used The Code And Got: %s.", GetCodeType(dini_Int(CODES_FILE,tmp)));
  86. SendClientMessage(playerid, 0x009900ff, str);
  87. return dini_IntSet(CODES_FILE, tmp, 0);
  88. }
  89. return 0;
  90. }
  91.  
  92. stock GetCodeType(num)
  93. {
  94. new type[50];
  95. switch(num)
  96. {
  97. case 1: type = "Extra Cash";
  98. case 2: type = "Minigun";
  99. case 3: type = "Rhino";
  100. case 4: type = "Vehicle Speed";
  101. }
  102. return type;
  103. }
  104.  
  105. RandomEx(min, max)
  106. return random(max - min) + min;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement