SwiZzoR

Weapons System [English]

Oct 25th, 2013
465
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 3.81 KB | None | 0 0
  1. #include <a_samp>
  2. #include <DOF2>
  3. //====Defines
  4. #define Dialog_Weapon 222
  5. //====Defines
  6.  
  7. //====New And enum
  8. new str[128],strDialog[5000];
  9. enum WInfo
  10. {
  11. WeaponNum[5],
  12. Color[12],
  13. WeaponName[500],
  14. WeaponID,
  15. WeaponPrice,
  16. WeaponAmmu
  17. }
  18. new Weapon[][WInfo] ={
  19. // Knife
  20. {"01","{00CCFF}","Baseball Bat",5,800,1},
  21. {"02","{00CCFF}","Golf Club ",2,200,1},
  22. {"03","{00CCFF}","Knife ",4,400,1},
  23. {"04","{00CCFF}","Katana    ",8,800,1},
  24. {"05","{00CCFF}","NightStick    ",3,1000,1},
  25. // Guns
  26. {"06","{33CC00}","Pistol    ",23,3200,60},
  27. {"07","{33CC00}","Silenced Pistol",22,5000,60},
  28. {"08","{33CC00}","Desert Eagle",24,2500,30},
  29. // Easy Weapons
  30. {"09","{FFFF00}","Tec-9 ",32,1500,400},
  31. {"10","{FFFF00}","Micro Uzi ",28,2000,400},
  32. {"11","{FFFF00}","MP5       ",29,1700,300},
  33. //Heavy Weapons
  34. {"12","{FF9900}","Shotgun   ",25,2200,20},
  35. {"13","{FF9900}","Combat Shotgun",27,3500,100},
  36. {"14","{FF9900}","Sawn Of Shotgun",26,4200,200},
  37. //Sniper / Quick Weapons
  38. {"15","{660033}","AK-4  ",30,4000,200},
  39. {"16","{660033}","M4        ",31,5000,200},
  40. {"17","{660033}","Rifle "   ,33,4000,30},
  41. {"18","{660033}","Sniper Rifle  ",34,7500,20}
  42. };
  43. //====New And enum
  44. main()
  45. {
  46.     print("\n----------------------------------");
  47.     print(" Weapon System By SwiZzoR");
  48.     print("----------------------------------\n");
  49. }
  50.  
  51. public OnGameModeExit()
  52. {
  53.     DOF2_Exit();
  54.     return 1;
  55. }
  56.  
  57. public OnPlayerConnect(playerid)
  58. {
  59.     if(!DOF2_FileExists(WFile(playerid)))
  60.     {
  61.         DOF2_CreateFile(WFile(playerid));
  62.         for(new i;i<sizeof(Weapon);i++)
  63.         {
  64.             DOF2_SetBool(WFile(playerid), Weapon[i][WeaponName], false);
  65.             DOF2_SaveFile();
  66.         }
  67.     }
  68.     return 1;
  69. }
  70.  
  71. public OnPlayerDisconnect(playerid, reason)
  72. {
  73.     DOF2_SaveFile();
  74.     return 1;
  75. }
  76.  
  77. public OnPlayerSpawn(playerid)
  78. {
  79.     ResetPlayerWeapons(playerid);
  80.     for(new i;i < sizeof(Weapon);i++)
  81.     {
  82.         if(DOF2_GetBool(WFile(playerid),Weapon[i][WeaponName]) == true) GivePlayerWeapon(playerid,Weapon[i][WeaponID],Weapon[i][WeaponAmmu]);
  83.     }
  84.     return 1;
  85. }
  86.  
  87. public OnPlayerCommandText(playerid, cmdtext[])
  88. {
  89.     if (strcmp("/Weapon", cmdtext, true, 10) == 0)
  90.     {
  91.         for(new i;i<sizeof(Weapon);i++)
  92.         {
  93.             format(str,sizeof(str),"%s.%s %s{FFFFFF}\tPrice: $%d\tAmmu: %d\n",Weapon[i][WeaponNum],Weapon[i][Color],Weapon[i][WeaponName],Weapon[i][WeaponPrice],Weapon[i][WeaponAmmu]);
  94.             strcat(strDialog,str);
  95.         }
  96.         ShowPlayerDialog(playerid,Dialog_Weapon,DIALOG_STYLE_LIST,"List of Weapons",strDialog,"Buy","Exit");
  97.         strDialog[0] = EOS;
  98.         return 1;
  99.     }
  100.     return 0;
  101. }
  102.  
  103. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  104. {
  105.     if(dialogid == Dialog_Weapon && response)
  106.     {
  107.         if(GetPlayerMoney(playerid) < Weapon[listitem][WeaponPrice]) return SendClientMessage(playerid,0xFF0000FF,"You do not have enough money");
  108.         if(listitem < 5) for(new i;i<5;i++) DOF2_SetBool(WFile(playerid), Weapon[i][WeaponName], false);
  109.         if(listitem > 4 && listitem < 8) for(new i=5;i<8;i++) DOF2_SetBool(WFile(playerid), Weapon[i][WeaponName], false);
  110.         if(listitem > 7 && listitem < 11) for(new i=8;i<11;i++) DOF2_SetBool(WFile(playerid), Weapon[i][WeaponName], false);
  111.         if(listitem > 10 && listitem < 14) for(new i=11;i<14;i++) DOF2_SetBool(WFile(playerid), Weapon[i][WeaponName], false);
  112.         if(listitem > 13) for(new i=14;i<17;i++) DOF2_SetBool(WFile(playerid), Weapon[i][WeaponName], false);
  113.         GivePlayerWeapon(playerid,Weapon[listitem][WeaponID],Weapon[listitem][WeaponAmmu]);
  114.         GivePlayerMoney(playerid,-Weapon[listitem][WeaponPrice]);
  115.         DOF2_SetBool(WFile(playerid),Weapon[listitem][WeaponName],true);
  116.         DOF2_SaveFile();
  117.     }
  118.     return 1;
  119. }
  120.  
  121. stock WFile(playerid)
  122. {
  123.     new file[256];
  124.     format(file,sizeof(file),"Weapon/%s.ini",GetName(playerid));
  125.     return file;
  126. }
  127.  
  128. stock GetName(playerid)
  129. {
  130.     new name[MAX_PLAYER_NAME+1];
  131.     GetPlayerName(playerid,name,sizeof(name));
  132.     return name;
  133. }
Advertisement
Add Comment
Please, Sign In to add comment