Advertisement
Guest User

DWS

a guest
Jul 29th, 2013
1,154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 24.99 KB | None | 0 0
  1. /*******************************************************************************
  2.  
  3.  
  4. DYNAMIC WEAPON SYSTEM
  5.  
  6. Author: Justin Roller
  7.  
  8. Features:
  9.  
  10. _ Drop weapons
  11.  
  12. _ Save weapons
  13.  
  14. _ Buying weapons with dialog
  15.  
  16. Please suggestion on forum !! if this cool
  17.  
  18. *******************************************************************************/
  19. #include " a_samp "
  20. #include " zcmd "
  21. #include " streamer "
  22. #include " foreach "
  23. #include " YSI\y_ini "
  24. #include " sscanf2 "
  25.  
  26. #define COLOR_YELLOW 0xFFFF00FF
  27. #define COLOR_RED 0xFF0000FF
  28. #define COLOR_GREEN 0x00FF00FF
  29. #define COLOR_BLUE 0x0080FFFF
  30. #define COLOR_LIGHTBLUE 0x00FFFFFF
  31.  
  32. #define MAX_GUNS 1000
  33. #define MAX_ARMOUR 1000
  34.  
  35. #define DIALOG_GUNS 1249
  36. #define DIALOG_NEXT 1250
  37.  
  38. #define wPacks "Weapons/%s.ini"
  39.  
  40. forward Can(playerid);
  41.  
  42. new GunObject[MAX_GUNS];
  43. new ArmorObject[MAX_ARMOUR];
  44. new weaponid1;
  45. new weaponammo1;
  46. new Float:armourdrop;
  47. new Dropped[MAX_PLAYERS];
  48. new Armor[MAX_PLAYERS];
  49. new Armors[MAX_PLAYERS];
  50. new GunShop;
  51.  
  52. enum ArmorInfo
  53. {
  54. Float:ax,
  55. Float:ay,
  56. Float:az
  57. }
  58. new aInfo[MAX_ARMOUR][ArmorInfo];
  59.  
  60. enum WeaponInfo
  61. {
  62. GunAmount[2],
  63. Float:GunPosX,
  64. Float:GunPosY,
  65. Float:GunPosZ,
  66. GunWorld,
  67. GunInterior,
  68. };
  69. new wInfo[MAX_GUNS][WeaponInfo];
  70.  
  71. enum WeaponData
  72. {
  73. Weapon1,
  74. Ammo1,
  75. Weapon2,
  76. Ammo2,
  77. Weapon3,
  78. Ammo3,
  79. Weapon4,
  80. Ammo4,
  81. Weapon5,
  82. Ammo5,
  83. Weapon6,
  84. Ammo6,
  85. Weapon7,
  86. Ammo7,
  87. Weapon8,
  88. Ammo8,
  89. Weapon9,
  90. Ammo9,
  91. Weapon10,
  92. Ammo10,
  93. Weapon11,
  94. Ammo11,
  95. Weapon12,
  96. Ammo12,
  97. Float:Armour
  98. }
  99. new wData[MAX_PLAYERS][WeaponData];
  100.  
  101. stock WeaponPath(playerid)
  102. {
  103. new string[128],playername[MAX_PLAYER_NAME];
  104. GetPlayerName(playerid,playername,sizeof(playername));
  105. format(string,sizeof(string),wPacks,playername);
  106. return string;
  107. }
  108.  
  109. new GunObjects[200] =
  110. {
  111. 1575, 331, 333, 334, 335, 336, 337, 338, 339, 341, 321, 322, 323, 324, 325, 326, 342, 343, 344, -1, -1 , -1 ,
  112. 346, 347, 348, 349, 350, 351, 352, 353, 355, 356, 372, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
  113. 368, 369, 1575
  114. };
  115.  
  116. public OnFilterScriptInit()
  117. {
  118. print("---------------------------------------");
  119. print(" Dynamic Weapons System Loaded");
  120. print("---------------------------------------");
  121. return 1;
  122. }
  123.  
  124. public OnPlayerConnect(playerid)
  125. {
  126. if(fexist(WeaponPath(playerid)))
  127. {
  128. INI_ParseFile(WeaponPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  129. }
  130. else
  131. {
  132. new INI:file = INI_Open(WeaponPath(playerid));
  133. INI_WriteInt(file, "Weapon1", wData[playerid][Weapon1]);
  134. INI_WriteInt(file, "Weapon2", wData[playerid][Weapon2]);
  135. INI_WriteInt(file, "Weapon3", wData[playerid][Weapon3]);
  136. INI_WriteInt(file, "Weapon4", wData[playerid][Weapon4]);
  137. INI_WriteInt(file, "Weapon5", wData[playerid][Weapon5]);
  138. INI_WriteInt(file, "Weapon6", wData[playerid][Weapon6]);
  139. INI_WriteInt(file, "Weapon7", wData[playerid][Weapon7]);
  140. INI_WriteInt(file, "Weapon8", wData[playerid][Weapon8]);
  141. INI_WriteInt(file, "Weapon9", wData[playerid][Weapon9]);
  142. INI_WriteInt(file, "Weapon10", wData[playerid][Weapon10]);
  143. INI_WriteInt(file, "Weapon11", wData[playerid][Weapon11]);
  144. INI_WriteInt(file, "Weapon12", wData[playerid][Weapon12]);
  145.  
  146. INI_WriteInt(file, "Ammo1", wData[playerid][Ammo1]);
  147. INI_WriteInt(file, "Ammo2", wData[playerid][Ammo2]);
  148. INI_WriteInt(file, "Ammo3", wData[playerid][Ammo3]);
  149. INI_WriteInt(file, "Ammo4", wData[playerid][Ammo4]);
  150. INI_WriteInt(file, "Ammo5", wData[playerid][Ammo5]);
  151. INI_WriteInt(file, "Ammo6", wData[playerid][Ammo6]);
  152. INI_WriteInt(file, "Ammo7", wData[playerid][Ammo7]);
  153. INI_WriteInt(file, "Ammo8", wData[playerid][Ammo8]);
  154. INI_WriteInt(file, "Ammo9", wData[playerid][Ammo9]);
  155. INI_WriteInt(file, "Ammo10", wData[playerid][Ammo10]);
  156. INI_WriteInt(file, "Ammo11", wData[playerid][Ammo11]);
  157. INI_WriteInt(file, "Ammo12", wData[playerid][Ammo12]);
  158.  
  159. INI_WriteInt(file, "Left Armour", Armors[playerid]);
  160.  
  161. INI_WriteFloat(file, "Armour", wData[playerid][Armour]);
  162. INI_ParseFile(WeaponPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  163. INI_Close(file);
  164. }
  165. return 1;
  166. }
  167.  
  168. public OnPlayerDisconnect(playerid,reason)
  169. {
  170. GetPlayerWeaponData(playerid, 1, wData[playerid][Weapon1], wData[playerid][Ammo1]);
  171. GetPlayerWeaponData(playerid, 2, wData[playerid][Weapon2], wData[playerid][Ammo2]);
  172. GetPlayerWeaponData(playerid, 3, wData[playerid][Weapon3], wData[playerid][Ammo3]);
  173. GetPlayerWeaponData(playerid, 4, wData[playerid][Weapon4], wData[playerid][Ammo4]);
  174. GetPlayerWeaponData(playerid, 5, wData[playerid][Weapon5], wData[playerid][Ammo5]);
  175. GetPlayerWeaponData(playerid, 6, wData[playerid][Weapon6], wData[playerid][Ammo6]);
  176. GetPlayerWeaponData(playerid, 7, wData[playerid][Weapon7], wData[playerid][Ammo7]);
  177. GetPlayerWeaponData(playerid, 8, wData[playerid][Weapon8], wData[playerid][Ammo8]);
  178. GetPlayerWeaponData(playerid, 9, wData[playerid][Weapon9], wData[playerid][Ammo9]);
  179. GetPlayerWeaponData(playerid, 10, wData[playerid][Weapon10], wData[playerid][Ammo10]);
  180. GetPlayerWeaponData(playerid, 11, wData[playerid][Weapon11], wData[playerid][Ammo11]);
  181. GetPlayerWeaponData(playerid, 12, wData[playerid][Weapon12], wData[playerid][Ammo12]);
  182.  
  183. Armors[playerid] = Armor[playerid];
  184.  
  185. GetPlayerArmour(playerid,wData[playerid][Armour]);
  186.  
  187. if(fexist(WeaponPath(playerid)))
  188. {
  189. new INI:file = INI_Open(WeaponPath(playerid));
  190. INI_WriteInt(file, "Weapon1", wData[playerid][Weapon1]);
  191. INI_WriteInt(file, "Weapon2", wData[playerid][Weapon2]);
  192. INI_WriteInt(file, "Weapon3", wData[playerid][Weapon3]);
  193. INI_WriteInt(file, "Weapon4", wData[playerid][Weapon4]);
  194. INI_WriteInt(file, "Weapon5", wData[playerid][Weapon5]);
  195. INI_WriteInt(file, "Weapon6", wData[playerid][Weapon6]);
  196. INI_WriteInt(file, "Weapon7", wData[playerid][Weapon7]);
  197. INI_WriteInt(file, "Weapon8", wData[playerid][Weapon8]);
  198. INI_WriteInt(file, "Weapon9", wData[playerid][Weapon9]);
  199. INI_WriteInt(file, "Weapon10", wData[playerid][Weapon10]);
  200. INI_WriteInt(file, "Weapon11", wData[playerid][Weapon11]);
  201. INI_WriteInt(file, "Weapon12", wData[playerid][Weapon12]);
  202.  
  203. INI_WriteInt(file, "Ammo1", wData[playerid][Ammo1]);
  204. INI_WriteInt(file, "Ammo2", wData[playerid][Ammo2]);
  205. INI_WriteInt(file, "Ammo3", wData[playerid][Ammo3]);
  206. INI_WriteInt(file, "Ammo4", wData[playerid][Ammo4]);
  207. INI_WriteInt(file, "Ammo5", wData[playerid][Ammo5]);
  208. INI_WriteInt(file, "Ammo6", wData[playerid][Ammo6]);
  209. INI_WriteInt(file, "Ammo7", wData[playerid][Ammo7]);
  210. INI_WriteInt(file, "Ammo8", wData[playerid][Ammo8]);
  211. INI_WriteInt(file, "Ammo9", wData[playerid][Ammo9]);
  212. INI_WriteInt(file, "Ammo10", wData[playerid][Ammo10]);
  213. INI_WriteInt(file, "Ammo11", wData[playerid][Ammo11]);
  214. INI_WriteInt(file, "Ammo12", wData[playerid][Ammo12]);
  215.  
  216. INI_WriteInt(file, "Left Armour", Armors[playerid]);
  217.  
  218. INI_WriteFloat(file,"Armour",wData[playerid][Armour]);
  219. INI_Close(file);
  220. }
  221. return 1;
  222. }
  223.  
  224. public OnPlayerSpawn(playerid)
  225. {
  226. SendClientMessage(playerid,COLOR_BLUE, "This server using Dynamic Weapon System v1.0 by JustinRoller");
  227. GivePlayerWeapon(playerid,wData[playerid][Weapon1],wData[playerid][Ammo1]);
  228. GivePlayerWeapon(playerid,wData[playerid][Weapon2],wData[playerid][Ammo2]);
  229. GivePlayerWeapon(playerid,wData[playerid][Weapon3],wData[playerid][Ammo3]);
  230. GivePlayerWeapon(playerid,wData[playerid][Weapon4],wData[playerid][Ammo4]);
  231. GivePlayerWeapon(playerid,wData[playerid][Weapon5],wData[playerid][Ammo5]);
  232. GivePlayerWeapon(playerid,wData[playerid][Weapon6],wData[playerid][Ammo6]);
  233. GivePlayerWeapon(playerid,wData[playerid][Weapon7],wData[playerid][Ammo7]);
  234. GivePlayerWeapon(playerid,wData[playerid][Weapon8],wData[playerid][Ammo8]);
  235. GivePlayerWeapon(playerid,wData[playerid][Weapon9],wData[playerid][Ammo9]);
  236. GivePlayerWeapon(playerid,wData[playerid][Weapon10],wData[playerid][Ammo10]);
  237. GivePlayerWeapon(playerid,wData[playerid][Weapon11],wData[playerid][Ammo11]);
  238. GivePlayerWeapon(playerid,wData[playerid][Weapon12],wData[playerid][Ammo12]);
  239.  
  240. Armor[playerid] = Armors[playerid];
  241.  
  242. SetPlayerArmour(playerid,wData[playerid][Armour]);
  243. return 1;
  244. }
  245.  
  246. CMD:dropgun(playerid,params[])
  247. {
  248. new Float:X,Float:Y,Float:Z,name[MAX_PLAYER_NAME],string[128];
  249. if(Dropped[playerid] == 1) return SendClientMessage(playerid,COLOR_RED,"You have to wait few second to drop next weapon");
  250. weaponid1 = GetPlayerWeapon(playerid);
  251. weaponammo1 = GetPlayerAmmo(playerid);
  252. GetPlayerName(playerid,name,sizeof(name));
  253. GetPlayerPos(playerid,X,Y,Z);
  254. Dropped[playerid] = 1;
  255. RemovePlayerWeapon(playerid,weaponid1);
  256. DropGun(playerid,weaponid1,weaponammo1,X,Y,Z,GetPlayerVirtualWorld(playerid),GetPlayerInterior(playerid));
  257. format(string, sizeof(string), "* %s drops his weapon to the pavement.", name);
  258. SendLocalMessage(playerid,string,10.0, COLOR_GREEN, COLOR_GREEN);
  259. SetTimer("Can",30000,false);
  260. return 1;
  261. }
  262.  
  263. CMD:weararmour(playerid,params[])
  264. {
  265. new string[128];
  266. if(Armor[playerid] >= 1)
  267. {
  268. SetPlayerArmour(playerid,100);
  269. Armor[playerid] --;
  270. format(string,sizeof(string),"You have used 1 armour, your left armour is %i",Armor[playerid]);
  271. SendClientMessage(playerid,COLOR_BLUE,string);
  272. }
  273. else return SendClientMessage(playerid,COLOR_RED,"You dont have any armor in your inventory");
  274. return 1;
  275. }
  276.  
  277. CMD:shop(playerid,params[])
  278. {
  279. new ed,name[MAX_PLAYER_NAME],string[128];
  280. if(!IsPlayerAdmin(playerid)) return 0;
  281. if(sscanf(params,"i",ed))
  282. {
  283. SendClientMessage(playerid,COLOR_RED,"USAGE: /shop [1/2]");
  284. SendClientMessage(playerid,COLOR_RED,"Note: This function will enable and disable the gun shop choose 1 for disable and 2 for enable");
  285. }
  286. if(ed == 1)
  287. {
  288. GunShop = 0;
  289. GetPlayerName(playerid,name,sizeof(name));
  290. format(string,sizeof(string),"The gun shop has been disable by admin %s",name);
  291. SendClientMessageToAll(COLOR_BLUE,string);
  292. }
  293. if(ed == 2)
  294. {
  295. GunShop = 1;
  296. GetPlayerName(playerid,name,sizeof(name));
  297. format(string,sizeof(string),"The gun shop has been enable by admin %s",name);
  298. SendClientMessageToAll(COLOR_BLUE,string);
  299. }
  300. return 1;
  301. }
  302.  
  303. CMD:gunshop(playerid,params[])
  304. {
  305. if(GunShop == 1)
  306. {
  307. ShowPlayerDialog(playerid,DIALOG_GUNS,DIALOG_STYLE_LIST,"Guns","Colt 45 Pistol - 500$\nSilenced Colt 45 Pistol - 600$\nDesert Eagle - 1000$\nShotgun - 1100$\nSawnoff Shotgun - 1500$\nCombat Shotgun - 2000$\nMicro SMG/Uzi - 2000$\nMP5 - 2500$\nAK-47 - 3500$\nM4 - 3500$\nTec-9 - 3500$\nCountry Rifle - 4000$\nSniper Rifle - 5000$\nRPG - 10000$\nHS Rocket - 10000$\nFlamethrower - 10000$\nMinigun - 20000$\nNext Page","Buy","Cancel");
  308. }
  309. if(GunShop == 0)
  310. {
  311. SendClientMessage(playerid,COLOR_RED,"This function has been disable");
  312. }
  313. return 1;
  314. }
  315.  
  316. CMD:droparmour(playerid,params[])
  317. {
  318. for(new i = 0; i < sizeof(aInfo); i++)
  319. {
  320. if(Armor[playerid] >= 1)
  321. {
  322. new VirtualWorld;
  323. VirtualWorld = GetPlayerVirtualWorld(playerid);
  324. GetPlayerPos(playerid,aInfo[i][ax],aInfo[i][ay],aInfo[i][az]);
  325. GetPlayerArmour(playerid,armourdrop);
  326. SetPlayerArmour(playerid,0);
  327. ArmorObject[i] = CreateDynamicObject(1242,aInfo[i][ax],aInfo[i][ay]+1.5,aInfo[i][az],80.0,0.0,0.0,VirtualWorld);
  328. }
  329. else
  330. {
  331. SendClientMessage(playerid,COLOR_RED,"You don't have any armour to drop");
  332. }
  333. }
  334. return 1;
  335. }
  336.  
  337. public OnPlayerKeyStateChange(playerid,newkeys,oldkeys)
  338. {
  339. if(newkeys == KEY_SECONDARY_ATTACK)
  340. {
  341. new name[MAX_PLAYER_NAME];
  342. new string[128];
  343. for(new i = 0; i < sizeof(wInfo); i++)
  344. {
  345. if(IsPlayerInRangeOfPoint(playerid, 2.0,wInfo[i][GunPosX],wInfo[i][GunPosY],wInfo[i][GunPosZ]))
  346. {
  347. if(GetPlayerVirtualWorld(playerid) == wInfo[i][GunWorld] && GetPlayerInterior(playerid) == wInfo[i][GunWorld])
  348. {
  349. GetPlayerName(playerid,name,sizeof(name));
  350. DestroyDynamicObject(GunObject[i]);
  351. wInfo[i][GunPosX] = 0.0;
  352. wInfo[i][GunPosY] = 0.0;
  353. wInfo[i][GunPosZ] = 0.0;
  354. wInfo[i][GunAmount][0] = 0;
  355. wInfo[i][GunAmount][1] = 0;
  356. GivePlayerWeapon(playerid,weaponid1,weaponammo1);
  357. format(string, sizeof(string),"* %s picks up a weapon from the pavement.",name);
  358. SendLocalMessage(playerid,string,10.0,COLOR_YELLOW,COLOR_YELLOW);
  359. return 1;
  360. }
  361. }
  362. }
  363. for(new i = 0; i < sizeof(aInfo); i++)
  364. {
  365. if(IsPlayerInRangeOfPoint(playerid,2.0,aInfo[i][ax],aInfo[i][ay],aInfo[i][az]))
  366. {
  367. DestroyDynamicObject(ArmorObject[i]);
  368. SetPlayerArmour(playerid,armourdrop);
  369. GetPlayerName(playerid,name,sizeof(name));
  370. format(string, sizeof(string),"* %s picks up a armour from the pavement.",name);
  371. SendLocalMessage(playerid,string,10.0,COLOR_YELLOW,COLOR_YELLOW);
  372. return 1;
  373. }
  374. }
  375. }
  376. return 1;
  377. }
  378.  
  379. public OnPlayerDeath(playerid, killerid, reason)
  380. {
  381. new Float:X,Float:Y,Float:Z;
  382. for(new i_slot = 0, weapon, ammo; i_slot != 12; i_slot++)
  383. {
  384. GetPlayerWeaponData(playerid,i_slot,weapon,ammo);
  385. DropGun(playerid,weapon,ammo,X,Y,Z,GetPlayerVirtualWorld(playerid),GetPlayerInterior(playerid));
  386. }
  387. return 1;
  388. }
  389.  
  390. public OnDialogResponse(playerid,dialogid,response,listitem,inputtext[])
  391. {
  392. switch(dialogid)
  393. {
  394. case DIALOG_GUNS:
  395. {
  396. if(response)
  397. {
  398. switch(listitem)
  399. {
  400. case 0:
  401. {
  402. if(GetPlayerMoney(playerid) < 500) return SendClientMessage(playerid,COLOR_RED,"You don't have enough money to buy this weapon");
  403. else {
  404. GivePlayerWeapon(playerid,22,5000);
  405. GivePlayerMoney(playerid,-500);
  406. }
  407. }
  408. case 1:
  409. {
  410. if(GetPlayerMoney(playerid) < 600) return SendClientMessage(playerid,COLOR_RED,"You don't have enough money to buy this weapon");
  411. else {
  412. GivePlayerWeapon(playerid,23,5000);
  413. GivePlayerMoney(playerid,-600);
  414. }
  415. }
  416. case 2:
  417. {
  418. if(GetPlayerMoney(playerid) < 1000) return SendClientMessage(playerid,COLOR_RED,"You don't have enough money to buy this weapon");
  419. else {
  420. GivePlayerWeapon(playerid,24,5000);
  421. GivePlayerMoney(playerid,-1000);
  422. }
  423. }
  424. case 3:
  425. {
  426. if(GetPlayerMoney(playerid) < 1100) return SendClientMessage(playerid,COLOR_RED,"You don't have enough money to buy this weapon");
  427. else {
  428. GivePlayerWeapon(playerid,25,5000);
  429. GivePlayerMoney(playerid,-1100);
  430. }
  431. }
  432. case 4:
  433. {
  434. if(GetPlayerMoney(playerid) < 1500) return SendClientMessage(playerid,COLOR_RED,"You don't have enough money to buy this weapon");
  435. else {
  436. GivePlayerWeapon(playerid,26,5000);
  437. GivePlayerMoney(playerid,-1500);
  438. }
  439. }
  440. case 5:
  441. {
  442. if(GetPlayerMoney(playerid) < 2000) return SendClientMessage(playerid,COLOR_RED,"You don't have enough money to buy this weapon");
  443. else {
  444. GivePlayerWeapon(playerid,27,5000);
  445. GivePlayerMoney(playerid,-2000);
  446. }
  447. }
  448. case 6:
  449. {
  450. if(GetPlayerMoney(playerid) < 2000) return SendClientMessage(playerid,COLOR_RED,"You don't have enough money to buy this weapon");
  451. else {
  452. GivePlayerWeapon(playerid,28,5000);
  453. GivePlayerMoney(playerid,-2000);
  454. }
  455. }
  456. case 7:
  457. {
  458. if(GetPlayerMoney(playerid) < 2500) return SendClientMessage(playerid,COLOR_RED,"You don't have enough money to buy this weapon");
  459. else {
  460. GivePlayerWeapon(playerid,29,5000);
  461. GivePlayerMoney(playerid,-2500);
  462. }
  463. }
  464. case 8:
  465. {
  466. if(GetPlayerMoney(playerid) < 3500) return SendClientMessage(playerid,COLOR_RED,"You don't have enough money to buy this weapon");
  467. else {
  468. GivePlayerWeapon(playerid,30,5000);
  469. GivePlayerMoney(playerid,-3500);
  470. }
  471. }
  472. case 9:
  473. {
  474. if(GetPlayerMoney(playerid) < 3500) return SendClientMessage(playerid,COLOR_RED,"You don't have enough money to buy this weapon");
  475. else {
  476. GivePlayerWeapon(playerid,31,3500);
  477. GivePlayerMoney(playerid,-3500);
  478. }
  479. }
  480. case 10:
  481. {
  482. if(GetPlayerMoney(playerid) < 3500) return SendClientMessage(playerid,COLOR_RED,"You don't have enough money to buy this weapon");
  483. else {
  484. GivePlayerWeapon(playerid,32,5000);
  485. GivePlayerMoney(playerid,-3500);
  486. }
  487. }
  488. case 11:
  489. {
  490. if(GetPlayerMoney(playerid) < 4000) return SendClientMessage(playerid,COLOR_RED,"You don't have enough money to buy this weapon");
  491. else {
  492. GivePlayerWeapon(playerid,33,5000);
  493. GivePlayerMoney(playerid,-4000);
  494. }
  495. }
  496. case 12:
  497. {
  498. if(GetPlayerMoney(playerid) < 5000) return SendClientMessage(playerid,COLOR_RED,"You don't have enough money to buy this weapon");
  499. else {
  500. GivePlayerWeapon(playerid,34,5000);
  501. GivePlayerMoney(playerid,-5000);
  502. }
  503. }
  504. case 13:
  505. {
  506. if(GetPlayerMoney(playerid) < 10000) return SendClientMessage(playerid,COLOR_RED,"You don't have enough money to buy this weapon");
  507. else {
  508. GivePlayerWeapon(playerid,35,5000);
  509. GivePlayerMoney(playerid,-500);
  510. }
  511. }
  512. case 14:
  513. {
  514. if(GetPlayerMoney(playerid) < 10000) return SendClientMessage(playerid,COLOR_RED,"You don't have enough money to buy this weapon");
  515. else {
  516. GivePlayerWeapon(playerid,36,5000);
  517. GivePlayerMoney(playerid,-10000);
  518. }
  519. }
  520. case 15:
  521. {
  522. if(GetPlayerMoney(playerid) < 10000) return SendClientMessage(playerid,COLOR_RED,"You don't have enough money to buy this weapon");
  523. else {
  524. GivePlayerWeapon(playerid,37,5000);
  525. GivePlayerMoney(playerid,-10000);
  526. }
  527. }
  528. case 16:
  529. {
  530. if(GetPlayerMoney(playerid) < 20000) return SendClientMessage(playerid,COLOR_RED,"You don't have enough money to buy this weapon");
  531. else {
  532. GivePlayerWeapon(playerid,38,5000);
  533. GivePlayerMoney(playerid,-20000);
  534. }
  535. }
  536. case 17:
  537. {
  538. ShowPlayerDialog(playerid,DIALOG_NEXT,DIALOG_STYLE_LIST,"Guns Page 2","Night Vis Goggles - 500$\nThermal Goggles - 500$\nCamera - 200$\nParachute - 100$\n3 Armour - 300$","Buy","Back");
  539. }
  540. }
  541. }
  542. }
  543. case DIALOG_NEXT:
  544. {
  545. if(!response) return ShowPlayerDialog(playerid,DIALOG_GUNS,DIALOG_STYLE_LIST,"Guns","Colt 45 Pistol - 500$\nSilenced Colt 45 Pistol - 600$\nDesert Eagle - 1000$\nShotgun - 1100$\nSawnoff Shotgun - 1500$\nCombat Shotgun - 2000$\nMicro SMG/Uzi - 2000$\nMP5 - 2500$\nAK-47 - 3500$\nM4 - 3500$\nTec-9 - 3500$\nCountry Rifle - 4000$\nSniper Rifle - 5000$\nRPG - 10000$\nHS Rocket - 10000$\nFlamethrower - 10000$\nMinigun - 20000$\nNext Page","Buy","Cancel");
  546. if(response)
  547. {
  548. switch(listitem)
  549. {
  550. case 0:
  551. {
  552. if(GetPlayerMoney(playerid) < 500) return SendClientMessage(playerid,COLOR_RED,"You don't have enough money to buy this weapon");
  553. else
  554. {
  555. GivePlayerWeapon(playerid,43,1);
  556. GivePlayerMoney(playerid,-500);
  557. }
  558. }
  559. case 1:
  560. {
  561. if(GetPlayerMoney(playerid) < 500) return SendClientMessage(playerid,COLOR_RED,"You don't have enough money to buy this weapon");
  562. else {
  563. GivePlayerWeapon(playerid,44,1);
  564. GivePlayerMoney(playerid,-500);
  565. }
  566. }
  567. case 2:
  568. {
  569. if(GetPlayerMoney(playerid) < 200) return SendClientMessage(playerid,COLOR_RED,"You don't have enough money to buy this weapon");
  570. else {
  571. GivePlayerWeapon(playerid,45,5000);
  572. GivePlayerMoney(playerid,-200);
  573. }
  574. }
  575. case 3:
  576. {
  577. if(GetPlayerMoney(playerid) < 100) return SendClientMessage(playerid,COLOR_RED,"You don't have enough money to buy this weapon");
  578. else {
  579. GivePlayerWeapon(playerid,46,1);
  580. GivePlayerMoney(playerid,-100);
  581. }
  582. }
  583. case 4:
  584. {
  585. Armor[playerid] = 3;
  586. SendClientMessage(playerid,COLOR_GREEN,"Enjoy the armour. Use /weararmour to wear it");
  587. }
  588. }
  589. }
  590. }
  591. }
  592. return 1;
  593. }
  594.  
  595. public Can(playerid)
  596. {
  597. Dropped[playerid] = 0;
  598. return 1;
  599. }
  600.  
  601. stock GetGun(weaponid)
  602. {
  603. if (weaponid < 0 || weaponid > 64)
  604. {
  605. return 1575;
  606. }
  607. return GunObjects[weaponid];
  608. }
  609.  
  610. stock DropGun(playerid,weaponid,weaponammo,Float:X,Float:Y,Float:Z,VirtualWorld,Interior)
  611. {
  612. new name[MAX_PLAYER_NAME];
  613. GetPlayerName(playerid,name,sizeof(name));
  614. if(weaponid != 0 && weaponid != 0)
  615. {
  616. for(new i = 0; i < sizeof(wInfo); i++)
  617. {
  618. if(wInfo[i][GunPosX] == 0.0 && wInfo[i][GunPosY] == 0.0 && wInfo[i][GunPosZ] == 0.0)
  619. {
  620. wInfo[i][GunAmount][0] = weaponid;
  621. wInfo[i][GunAmount][1] = weaponammo;
  622. wInfo[i][GunPosX] = X;
  623. wInfo[i][GunPosY] = Y;
  624. wInfo[i][GunPosZ] = Z;
  625. wInfo[i][GunWorld] = VirtualWorld;
  626. wInfo[i][GunInterior] = Interior;
  627. GunObject[i] = CreateDynamicObject(GetGun(weaponid), X, Y, Z-1, 80.0, 0.0, 0.0, VirtualWorld);
  628. return 1;
  629. }
  630. }
  631. return 1;
  632. }
  633. return 1;
  634. }
  635.  
  636. forward LoadUser_data(playerid, name[], value[]);
  637. public LoadUser_data(playerid, name[], value[])
  638. {
  639. INI_Int("Weapon1", wData[playerid][Weapon1]);
  640. INI_Int("Weapon2", wData[playerid][Weapon2]);
  641. INI_Int("Weapon3", wData[playerid][Weapon3]);
  642. INI_Int("Weapon4", wData[playerid][Weapon4]);
  643. INI_Int("Weapon5", wData[playerid][Weapon5]);
  644. INI_Int("Weapon6", wData[playerid][Weapon6]);
  645. INI_Int("Weapon7", wData[playerid][Weapon7]);
  646. INI_Int("Weapon8", wData[playerid][Weapon8]);
  647. INI_Int("Weapon9", wData[playerid][Weapon9]);
  648. INI_Int("Weapon10", wData[playerid][Weapon10]);
  649. INI_Int("Weapon11", wData[playerid][Weapon11]);
  650. INI_Int("Weapon12", wData[playerid][Weapon12]);
  651.  
  652. INI_Int("Ammo1", wData[playerid][Ammo1]);
  653. INI_Int("Ammo2", wData[playerid][Ammo2]);
  654. INI_Int("Ammo3", wData[playerid][Ammo3]);
  655. INI_Int("Ammo4", wData[playerid][Ammo4]);
  656. INI_Int("Ammo5", wData[playerid][Ammo5]);
  657. INI_Int("Ammo6", wData[playerid][Ammo6]);
  658. INI_Int("Ammo7", wData[playerid][Ammo7]);
  659. INI_Int("Ammo8", wData[playerid][Ammo8]);
  660. INI_Int("Ammo9", wData[playerid][Ammo9]);
  661. INI_Int("Ammo10", wData[playerid][Ammo10]);
  662. INI_Int("Ammo11", wData[playerid][Ammo11]);
  663. INI_Int("Ammo12", wData[playerid][Ammo12]);
  664. return 1;
  665. }
  666.  
  667. stock RemovePlayerWeapon( playerid, weaponid )
  668. {
  669. new
  670. plyWeapons[ 12 ], plyAmmo[ 12 ];
  671.  
  672. for( new slot = 0; slot != 12; slot ++ )
  673. {
  674. new
  675. weap, ammo;
  676.  
  677. GetPlayerWeaponData( playerid, slot, weap, ammo );
  678. if( weap != weaponid )
  679. {
  680. GetPlayerWeaponData( playerid, slot, plyWeapons[ slot ], plyAmmo[ slot ] );
  681. }
  682. }
  683. ResetPlayerWeapons( playerid );
  684. for( new slot = 0; slot != 12; slot ++ )
  685. {
  686. GivePlayerWeapon( playerid, plyWeapons[ slot ], plyAmmo[ slot ] );
  687. }
  688. }
  689.  
  690. stock SendLocalMessage(playerid, msg[], Float:MessageRange, Range1color, Range2color)
  691. {
  692. new Float: PlayerX, Float: PlayerY, Float: PlayerZ;
  693. GetPlayerPos(playerid, PlayerX, PlayerY, PlayerZ);
  694. foreach (Player, i)
  695. {
  696. if(IsPlayerInRangeOfPoint(i, MessageRange, PlayerX, PlayerY,PlayerZ))
  697. {
  698. SendClientMessage(i, Range1color, msg);
  699. }
  700. else if(IsPlayerInRangeOfPoint(i, MessageRange/2.0, PlayerX, PlayerY,PlayerZ))
  701. {
  702. SendClientMessage(i, Range2color, msg);
  703. }
  704. }
  705. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement