ZiPoNz

ZiPoNz-Codes - Version 1

May 12th, 2012
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.33 KB | None | 0 0
  1. //ZiPoNz codes system - © 2012
  2. #include "a_samp"
  3. #include "DOF"
  4.     #pragma unused DOF2_Exit
  5. #define CodesFile       "Codes.ini"
  6. #define CodesDialog     981
  7. new letters[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  8. enum PCode
  9. {
  10.     bool:CarJump, bool:VSpeed, bool:Jetpack
  11. }
  12. new PlayerCode[MAX_PLAYERS][PCode];
  13. public OnFilterScriptInit()
  14. {
  15.     if(!DOF2_FileExists(CodesFile)) DOF2_CreateFile(CodesFile);
  16.     return true;
  17. }
  18. public OnPlayerCommandText(playerid, cmdtext[])
  19. {
  20.     new cmd[128], idx;
  21.     cmd = strtok(cmdtext, idx);
  22.     if(!strcmp(cmdtext, "/createcode", true))
  23.     {
  24.         if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] Your'e not administrator.");
  25.         return ShowPlayerDialog(playerid, CodesDialog, DIALOG_STYLE_INPUT, "Creating codes in the server.", "Please write the type {ffffff}number{a9c4e4} of this code.\n\r\n\r1. Money.\n\r2. Randomally weapon\n\r3. Car jump\n\r4. Vehicle speed\n\r5. Jetpack\n\r\n\rThis codes system created by ZiPoNz.", "Create", "Cancel");
  26.     }
  27.     if(!strcmp(cmd, "/code", true))
  28.     {
  29.         new string[164];
  30.         cmd = strtok(cmdtext, idx);
  31.         if(!strlen(cmd)) return SendClientMessage(playerid, 0xFFFFFF00, "[Command] Type /code [Code text]");
  32.         if(!DOF2_IsSet(CodesFile, cmd)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] This code isn't exists.");
  33.         switch(DOF2_GetInt(CodesFile, cmd))
  34.         {
  35.             case 1: GivePlayerMoney(playerid, random(20000));
  36.             case 2: GivePlayerWeapon(playerid, random(36), 500);
  37.             case 3: PlayerCode[playerid][CarJump] = true;
  38.             case 4: PlayerCode[playerid][VSpeed] = true;
  39.             case 5: PlayerCode[playerid][Jetpack] = true, SetPlayerSpecialAction(playerid, 2);
  40.         }
  41.         new PName[24];
  42.         GetPlayerName(playerid, PName, 24);
  43.         format(string, 128, "The player %s has been won the code %s, the prize is: %s.", PName, cmd, IsCodeType(DOF2_GetInt(CodesFile, cmd)));
  44.         SendClientMessageToAll(0xFFFFFF00, string);
  45.         return DOF2_Unset(CodesFile, cmd), DOF2_SaveFile();
  46.     }
  47.     return false;
  48. }
  49. public OnPlayerSpawn(playerid)
  50. {
  51.     if(PlayerCode[playerid][Jetpack]) SetPlayerSpecialAction(playerid, 2);
  52.     return true;
  53. }
  54. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  55. {
  56.     if(newkeys & KEY_SUBMISSION && PlayerCode[playerid][CarJump])
  57.     {
  58.         new Float:Pos[3];
  59.         GetVehicleVelocity(GetPlayerVehicleID(playerid),Pos[0], Pos[1], Pos[2]);
  60.         SetVehicleVelocity(GetPlayerVehicleID(playerid),Pos[0], Pos[1], Pos[2]+0.2);
  61.     }
  62.     if(newkeys & KEY_FIRE && PlayerCode[playerid][VSpeed])
  63.     {
  64.         new Float:Pos[5];
  65.         GetVehicleVelocity(GetPlayerVehicleID(playerid), Pos[0], Pos[1], Pos[2]);
  66.         Pos[3] = floatsqroot(Pos[0]*Pos[0] + Pos[1]*Pos[1] + Pos[2]*Pos[2]);
  67.         if(Pos[3] > 0)
  68.         {
  69.             Pos[4] = ((50 + Pos[3] * 100) / (Pos[3] * 100));
  70.             return SetVehicleVelocity(GetPlayerVehicleID(playerid),Pos[0]*Pos[4],Pos[1]*Pos[4],Pos[2]*Pos[4]);
  71.         }
  72.     }
  73.     return true;
  74. }
  75. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  76. {
  77.     switch(dialogid)
  78.     {
  79.         case CodesDialog:
  80.         {
  81.             if(!response) return true;
  82.             new code[15], string[128];
  83.             search:
  84.             for(new i; i < 9; i++)
  85.             {
  86.                 code[i] = letters[rand(0, sizeof(letters) - 1)];
  87.             }
  88.             if(DOF2_IsSet(CodesFile, code)) goto search;
  89.             DOF2_SetInt(CodesFile, code, strval(inputtext));
  90.             DOF2_SaveFile();
  91.             format(string, 128, "The code is: %s.\n\rThe code type is: %s(%d).", code, IsCodeType(strval(inputtext)), strval(inputtext));
  92.             ShowPlayerDialog(playerid, 999, DIALOG_STYLE_MSGBOX, "Code created successfuly.", string, "Close", "");
  93.             format(string, 128, "Code has been created in the system, the code is: %s.", code);
  94.             SendClientMessageToAll(0xFFFFFF00, string);
  95.         }
  96.     }
  97.     return true;
  98. }
  99. stock IsCodeType(type)
  100. {
  101.     new codename[30];
  102.     switch(type)
  103.     {
  104.         case 1: codename = "Money";
  105.         case 2: codename = "Rand. weapon";
  106.         case 3: codename = "Car jump";
  107.         case 4: codename = "Vehicle speed";
  108.         case 5: codename = "Jetpack";
  109.     }
  110.     return codename;
  111. }
  112. strtok(const string[], &index)
  113. {
  114.     new length = strlen(string);
  115.     while ((index < length) && (string[index] <= ' ')) index++;
  116.     new offset = index, result[20];
  117.     while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  118.     {
  119.         result[index - offset] = string[index];
  120.         index++;
  121.     }
  122.     result[index - offset] = EOS;
  123.     return result;
  124. }
  125. rand(min, max) return random(max - min) + min;
Advertisement
Add Comment
Please, Sign In to add comment