Guest User

Untitled

a guest
Mar 20th, 2011
375
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.45 KB | None | 0 0
  1. /*
  2. --------------------------------------------------------------------------------
  3.  
  4. - iWeapons 1.0.2 ( Advanced weapon control )
  5. - Author: Iggy
  6. - Special Thanks To Aelfred AKA Englander. Owner Of BionixGaming.
  7. - And Thanks To Everyone In The BionixGaming Community.
  8.  
  9. --------------------------------------------------------------------------------
  10.  
  11. Credits: ( alphabetical order )
  12.  
  13. Y_Less - foreach / y_ini
  14. ZeeX - zcmd
  15.  
  16. Also Obviously - The SA-MP Development Team.
  17. Last but not least - Anyone who uses this script :)
  18.  
  19. --------------------------------------------------------------------------------
  20.  
  21. Changelog : v1.0.2 (first update)
  22. - Fixed bugs with banned weapons not being saved to the file correctly.
  23. - Added /banallweapons command
  24. - Banned driveby weapons are now saved to file, and loaded to vars when the script is loaded.
  25. - Null checks added on commands that expect params.
  26. - y_ini reading functions modified. As per z3ros suggestion.
  27. - /bandb now disarms everyone in a vehicle, as soon as this command is used.
  28.  
  29. --------------------------------------------------------------------------------
  30. */
  31. #include <a_samp>
  32. #include <zcmd>
  33. #include <foreach>
  34. #include <YSI\y_ini>
  35.  
  36. #define ERROR_RED (0xFF6666AA)
  37. #define MESSAGE_COLOR (0x99FF00AA)
  38. #define HELP_COLOR (0x00FF00AA)
  39.  
  40. #define MAX_TEAM_KILLS (3)
  41.  
  42. #define WC_DEFAULT_UPDATE_TIME (10000)
  43.  
  44. #define MAX_BANNED_WEAPONID (46)
  45.  
  46. #define NO_PERMISSION();\
  47. SendClientMessage(playerid, ERROR_RED, "| iWeapons |: You do not have permission to use that command.");
  48.  
  49.  
  50. #define IWEAPON_DIALOG_MAIN (4891)
  51.  
  52. enum IWEAPON_DATA
  53. {
  54. bool:wc_BannedWeapons[MAX_BANNED_WEAPONID],
  55. bool:wc_VehicleWeapons[MAX_BANNED_WEAPONID],
  56. bool:wc_pDriveByBanned[MAX_PLAYERS],
  57. bool:wc_DriveByBanned,
  58. //bool:wc_TeamKills
  59. }
  60.  
  61. new wc_iWeaponData[IWEAPON_DATA];
  62.  
  63. new wc_UpdateTime = WC_DEFAULT_UPDATE_TIME;
  64. new wc_UpdateID;
  65.  
  66. //forward(s)
  67. wc_Update();
  68.  
  69. public OnFilterScriptInit()
  70. {
  71. if(fexist("iWeaponConfig.ini"))
  72. INI_Load("iWeaponConfig.ini");
  73. else
  74. {
  75. new
  76. INI:iweps = INI_Open("iWeaponConfig.ini");
  77. for ( new i = 1; i < 44; i++ )
  78. {
  79. new
  80. str[ 9 ];
  81. format( str, 9, "weapon%d", i );
  82. INI_WriteBool(iweps, str, false);
  83. }
  84. INI_Close(iweps);
  85. }
  86.  
  87. if(fexist("iVehicleWeaponCfg.ini"))
  88. INI_Load("iVehicleWeaponCfg.ini");
  89. else
  90. {
  91. new
  92. INI:iweps = INI_Open("iVehicleWeaponCfg.ini");
  93. for ( new i = 1; i < 44; i++ )
  94. {
  95. new
  96. str[ 9 ];
  97. format( str, 9, "weapon%d", i );
  98. INI_WriteBool(iweps, str, false);
  99. }
  100. INI_Close(iweps);
  101. }
  102. print("\n-----------------------------------------");
  103. print(" iWeapons - weapon control Unit 1.0.2 Loaded");
  104. print("-----------------------------------------\n");
  105. wc_UpdateID = SetTimer("wc_Update", wc_UpdateTime, true);
  106. return 1;
  107. }
  108.  
  109. public OnFilterScriptExit()
  110. {
  111. print("\n-----------------------------------------");
  112. print(" iWeapons - weapon control Unit 1.0.2 Unloaded");
  113. print("-----------------------------------------\n");
  114. return 1;
  115. }
  116.  
  117. public wc_Update()
  118. {
  119. foreach(Player, playerid)
  120. {
  121. if(wc_iWeaponData[ wc_BannedWeapons ][ GetPlayerWeapon(playerid) ] == true)
  122. {
  123. ResetPlayerWeapons(playerid);
  124. SendClientMessage(playerid, 0xFFFFFFAA, "| iWeapons |: {FF6666}You have been disarmed for having banned weapons.");
  125. continue;
  126. }
  127. }
  128. }
  129.  
  130. public OnPlayerDisconnect(playerid, reason)
  131. {
  132. wc_iWeaponData[ wc_pDriveByBanned ][ playerid ] = false;
  133. return 1;
  134. }
  135.  
  136. public OnPlayerDeath(playerid, killerid, reason)
  137. {/*
  138. if(wc_iWeaponData[ wc_TeamKills ] == true)
  139. {
  140. if(GetPlayerTeam(playerid) == GetPlayerTeam(killerid))
  141. {
  142. SetPVarInt(killerid, "TeamKills", GetPVarInt(killerid, "TeamKills") + 1);
  143.  
  144. switch( GetPVarInt(killerid, "TeamKills") )
  145. {
  146. case MAX_TEAM_KILLS:
  147. {
  148. SetPlayerHealth(killerid, -999999);
  149. SendClientMessage(killerid, ERROR_RED, "You have been killed for excessive team kills.");
  150. DeletePVar(killerid, "TeamKills");
  151. return 1;
  152. }
  153. }
  154. }
  155. }*/
  156. return 1;
  157. }
  158.  
  159. public OnPlayerStateChange(playerid, newstate, oldstate)
  160. {
  161. if(newstate == PLAYER_STATE_DRIVER && wc_iWeaponData[ wc_DriveByBanned ] || wc_iWeaponData[ wc_pDriveByBanned ][ playerid ])
  162. return SetPlayerArmedWeapon(playerid, 0);
  163. else if(newstate == PLAYER_STATE_PASSENGER)
  164. {
  165. new
  166. bool:count,
  167. vid = GetPlayerVehicleID(playerid);
  168.  
  169. foreach(Player, i)
  170. {
  171. if(i == playerid)continue;
  172. if(IsPlayerInVehicle(i, vid) && GetPlayerState(i) == PLAYER_STATE_DRIVER)
  173. {
  174. count = true;
  175. break;
  176. }
  177. }
  178. if(!count)
  179. {
  180. RemovePlayerFromVehicle(playerid);
  181. SendClientMessage(playerid, ERROR_RED, "ERROR: There must be a driver for you to be a passenger");
  182. return 1;
  183. }
  184. if(wc_iWeaponData[ wc_pDriveByBanned ][ playerid ])
  185. return SetPlayerArmedWeapon(playerid, 0);
  186.  
  187. if(wc_iWeaponData[ wc_DriveByBanned ])
  188. return SetPlayerArmedWeapon(playerid, 0);
  189.  
  190. if(wc_iWeaponData[ wc_VehicleWeapons ][ GetPlayerWeapon(playerid) ])
  191. return SetPlayerArmedWeapon(playerid, 0);
  192. }
  193. return 1;
  194. }
  195.  
  196. COMMAND:weaponhelp(playerid, params[])
  197. {
  198. if(!IsPlayerAdmin( playerid ))
  199. NO_PERMISSION();
  200. else
  201. {
  202. SendClientMessage(playerid, 0xFFFF00AA, "----------------------------- {FF6666}iWeapon Commands {FFFF00}-----------------------------");
  203. SendClientMessage(playerid, HELP_COLOR, "/bandb. /unbandb. /banplayerdb[playername/id]. /unbanplayerdb[playername/id]");
  204. SendClientMessage(playerid, HELP_COLOR, "/banweapon[weaponname/id]. /unbanweapon[weaponname/id]");
  205. SendClientMessage(playerid, HELP_COLOR, "/bandbwep[weaponname/id], /bandbwep[weaponname/id]");
  206. SendClientMessage(playerid, HELP_COLOR, "/weaponupdate[seconds]. This will change the update time.");
  207. SendClientMessage(playerid, HELP_COLOR, "/banallweapons. or /baw");
  208. }
  209. return 1;
  210. }
  211.  
  212. COMMAND:banweapon(playerid, params[])
  213. {
  214. if(!IsPlayerAdmin( playerid ))
  215. NO_PERMISSION();
  216. else
  217. {
  218. if( isnull( params ) )
  219. return SendClientMessage(playerid, ERROR_RED, "| iWeapons | ERROR: Usage /banweapon [weaponname/id]");
  220. new
  221. weaponid;
  222. if( isnumeric( params ) )
  223. {
  224. weaponid = strval( params );
  225. if(IsValidWeaponId( weaponid )) {
  226.  
  227. new
  228. str[64],
  229. weapon[32];
  230. GetWeaponName(weaponid, weapon, 32);
  231. format(str, sizeof(str), "| iWeapons |: You have banned %s.", weapon);
  232. wc_iWeaponData[ wc_BannedWeapons ][ weaponid ] = true;
  233. SendClientMessage(playerid, MESSAGE_COLOR, str);
  234. format(str, sizeof(str), "| SERVER |: %ss have been banned.", weapon);
  235. SendClientMessageToAll(0xFFFFFFAA, str);
  236. format(str, 9, "weapon%d", weaponid);
  237. new
  238. INI:iweps = INI_Open("iWeaponConfig.ini");
  239. INI_WriteBool(iweps, str, true);
  240. INI_Close(iweps);
  241. return 1;
  242. }
  243. else
  244. SendClientMessage(playerid, ERROR_RED, "| iWeapons | ERROR: Invalid Weapon Id.");
  245. }
  246. else
  247. {
  248. weaponid = GetWeaponIDFromName(params);
  249.  
  250. if(IsValidWeaponId( weaponid )) {
  251. new
  252. str[64],
  253. weapon[32];
  254. GetWeaponName(weaponid, weapon, 32);
  255. format(str, sizeof(str), "| iWeapons |: You have banned %s.", weapon);
  256. wc_iWeaponData[ wc_BannedWeapons ][ weaponid ] = true;
  257. SendClientMessage(playerid, MESSAGE_COLOR, str);
  258. format(str, sizeof(str), "| SERVER |: %ss have been banned.", weapon);
  259. SendClientMessageToAll(0xFFFFFFAA, str);
  260. format(str, 9, "weapon%d", weaponid);
  261. new
  262. INI:iweps = INI_Open("iWeaponConfig.ini");
  263. INI_WriteBool(iweps, str, true);
  264. INI_Close(iweps);
  265. return 1;
  266. }
  267. else
  268. SendClientMessage(playerid, ERROR_RED, "| iWeapons | ERROR: Invalid Weapon Id.");
  269. }
  270. }
  271. return 1;
  272. }
  273.  
  274. COMMAND:unbanweapon(playerid, params[])
  275. {
  276. if(!IsPlayerAdmin( playerid ))
  277. NO_PERMISSION();
  278. else
  279. {
  280. if( isnull( params ) )
  281. return SendClientMessage(playerid, ERROR_RED, "| iWeapons | ERROR: Usage /unbanweapon [weaponname/id]");
  282. new
  283. weaponid;
  284. if(isnumeric( params ))
  285. {
  286. weaponid = strval( params );
  287. if(IsValidWeaponId( weaponid )) {
  288. new
  289. str[64],
  290. weapon[32];
  291. GetWeaponName(weaponid, weapon, 32);
  292. format(str, sizeof(str), "| iWeapons |: You have unbanned %s.", weapon);
  293. wc_iWeaponData[ wc_BannedWeapons ][ weaponid ] = false;
  294. SendClientMessage(playerid, MESSAGE_COLOR, str);
  295. format(str, sizeof(str), "| SERVER |: %s have been banned.", weapon);
  296. SendClientMessageToAll(0xFFFFFFAA, str);
  297. format(str, 9, "weapon%d", weaponid);
  298. new
  299. INI:iweps = INI_Open("iWeaponConfig.ini");
  300. INI_WriteBool(iweps, str, false);
  301. INI_Close(iweps);
  302. return 1;
  303. }
  304. else
  305. SendClientMessage(playerid, ERROR_RED, "| iWeapons | ERROR: Invalid Weapon Id.");
  306. }
  307. else
  308. {
  309. weaponid = GetWeaponIDFromName(params);
  310.  
  311. if(IsValidWeaponId( weaponid )) {
  312. new
  313. str[64],
  314. weapon[32];
  315. GetWeaponName(weaponid, weapon, 32);
  316. format(str, sizeof(str), "| iWeapons |: You have unbanned %s.", weapon);
  317. wc_iWeaponData[ wc_BannedWeapons ][ weaponid ] = false;
  318. SendClientMessage(playerid, MESSAGE_COLOR, str);
  319. format(str, sizeof(str), "| SERVER |: %s have been banned.", weapon);
  320. SendClientMessageToAll(0xFFFFFFAA, str);
  321. format(str, 9, "weapon%d", weaponid);
  322. new
  323. INI:iweps = INI_Open("iWeaponConfig.ini");
  324. INI_WriteBool(iweps, str, false);
  325. INI_Close(iweps);
  326. return 1;
  327. }
  328. else
  329. SendClientMessage(playerid, ERROR_RED, "| iWeapons | ERROR: Invalid Weapon Id.");
  330. }
  331. }
  332. return 1;
  333. }
  334.  
  335. COMMAND:banallweapons(playerid, params[])
  336. {
  337. if(!IsPlayerAdmin( playerid ))
  338. NO_PERMISSION();
  339. else
  340. {
  341. new
  342. INI:iweps = INI_Open("iWeaponConfig.ini");
  343. for ( new i = 1; i < 44; i++ )
  344. {
  345. new
  346. str[ 9 ];
  347. format( str, 9, "weapon%d", i );
  348. INI_WriteBool(iweps, str, true);
  349. wc_iWeaponData[ wc_BannedWeapons ] [ i ] = true;
  350. }
  351. INI_Close(iweps);
  352. }
  353. return 1;
  354. }
  355. COMMAND:baw(playerid, params[]) {
  356. return cmd_banallweapons(playerid, params);
  357. }
  358.  
  359. COMMAND:disarmserver(playerid, params[])
  360. {
  361. return 1;
  362. }
  363.  
  364. COMMAND:bandb(playerid, params[])
  365. {
  366. if(!IsPlayerAdmin(playerid))
  367. NO_PERMISSION();
  368. else {
  369.  
  370. wc_iWeaponData[ wc_DriveByBanned ] = true;
  371. SendClientMessage(playerid, MESSAGE_COLOR, "| iWeapons |: You have disabled drivebys.");
  372. SendClientMessageToAll(0xFFFFFFAA, "| SERVER |: Drivebys have been {FF6666}disabled");
  373. foreach(Player, i)
  374. if(IsPlayerInAnyVehicle(i))
  375. SetPlayerArmedWeapon(playerid, 0);
  376. }
  377. return 1;
  378. }
  379.  
  380. COMMAND:unbandb(playerid, params[])
  381. {
  382. if(!IsPlayerAdmin(playerid))
  383. NO_PERMISSION();
  384. else {
  385.  
  386. wc_iWeaponData[ wc_DriveByBanned ] = false;
  387. SendClientMessage(playerid, MESSAGE_COLOR, "| iWeapons |: You have enabled drivebys.");
  388. SendClientMessageToAll(0xFFFFFFAA, "| SERVER |: Drivebys have been {00FF00}enabled");
  389. }
  390. return 1;
  391. }
  392.  
  393. COMMAND:bandbweapon(playerid, params[])
  394. {
  395. if(!IsPlayerAdmin( playerid ))
  396. NO_PERMISSION();
  397. else
  398. {
  399. if( isnull( params ) )
  400. return SendClientMessage(playerid, ERROR_RED, "| iWeapons | ERROR: Usage /bandbweapon [weaponname/id]");
  401. new
  402. weaponid;
  403. if(isnumeric( params ))
  404. {
  405. weaponid = strval( params );
  406. if(IsValidWeaponId( weaponid )) {
  407. new
  408. str[64];
  409. GetWeaponName(weaponid, str, 32);
  410. format(str, sizeof(str), "| iWeapons |: You have banned driveby weapon: %s.", str);
  411. wc_iWeaponData[ wc_VehicleWeapons ][ weaponid ] = true;
  412. SendClientMessage(playerid, MESSAGE_COLOR, str);
  413. format(str, 9, "weapon%d", weaponid);
  414. new
  415. INI:iweps = INI_Open("iVehicleWeaponCfg.ini");
  416. INI_WriteBool(iweps, str, true);
  417. INI_Close(iweps);
  418. return 1;
  419. }
  420. else
  421. SendClientMessage(playerid, ERROR_RED, "| iWeapons | ERROR: Invalid Weapon Id.");
  422. }
  423. else
  424. {
  425. weaponid = GetWeaponIDFromName(params);
  426.  
  427. if(weaponid != -1)
  428. {
  429. new
  430. str[64];
  431. format(str, sizeof(str), "| iWeapons |: You have banned driveby weapon: %s.", params);
  432. wc_iWeaponData[ wc_VehicleWeapons ][ weaponid ] = true;
  433. SendClientMessage(playerid, MESSAGE_COLOR, str);
  434. format(str, 9, "weapon%d", weaponid);
  435. new
  436. INI:iweps = INI_Open("iVehicleWeaponCfg.ini");
  437. INI_WriteBool(iweps, str, true);
  438. INI_Close(iweps);
  439. }
  440. else
  441. SendClientMessage(playerid, ERROR_RED, "| iWeapons | ERROR: Invalid Weapon.");
  442. }
  443. }
  444. return 1;
  445. }
  446. COMMAND:bandbwep(playerid, params[]) {
  447. return cmd_bandbweapon(playerid, params);
  448. }
  449.  
  450. COMMAND:unbandbweapon(playerid, params[])
  451. {
  452. if(!IsPlayerAdmin( playerid ))
  453. NO_PERMISSION();
  454. else
  455. {
  456. if( isnull( params ) )
  457. return SendClientMessage(playerid, ERROR_RED, "| iWeapons | ERROR: Usage /unbandbweapon [weaponname/id]");
  458. new
  459. weaponid;
  460. if(isnumeric( params ))
  461. {
  462. weaponid = strval( params );
  463. if(IsValidWeaponId( weaponid )) {
  464. new
  465. str[64];
  466. GetWeaponName(weaponid, str, 32);
  467. format(str, sizeof(str), "| iWeapons |: You have banned driveby weapon: %s.", str);
  468. wc_iWeaponData[ wc_VehicleWeapons ][ weaponid ] = true;
  469. SendClientMessage(playerid, MESSAGE_COLOR, str);
  470. format(str, 9, "weapon%d", weaponid);
  471. new
  472. INI:iweps = INI_Open("iVehicleWeaponCfg.ini");
  473. INI_WriteBool(iweps, str, false);
  474. INI_Close(iweps);
  475. return 1;
  476. }
  477. else
  478. SendClientMessage(playerid, ERROR_RED, "| iWeapons | ERROR: Invalid Weapon Id.");
  479. }
  480. else
  481. {
  482. weaponid = GetWeaponIDFromName(params);
  483. if(IsValidWeaponId( weaponid ))
  484. {
  485. new
  486. str[64];
  487. format(str, sizeof(str), "| iWeapons |: You have banned driveby weapon: %s.", params);
  488. wc_iWeaponData[ wc_VehicleWeapons ][ weaponid ] = true;
  489. SendClientMessage(playerid, MESSAGE_COLOR, str);
  490. format(str, 9, "weapon%d", weaponid);
  491. new
  492. INI:iweps = INI_Open("iVehicleWeaponCfg.ini");
  493. INI_WriteBool(iweps, str, false);
  494. INI_Close(iweps);
  495. }
  496. else
  497. SendClientMessage(playerid, ERROR_RED, "| iWeapons | ERROR: Invalid Weapon Id.");
  498. }
  499. }
  500. return 1;
  501. }
  502. COMMAND:unbandbwep(playerid, params[]) {
  503. return cmd_unbandbweapon(playerid, params);
  504. }
  505.  
  506. COMMAND:banplayerdb(playerid, params[])
  507. {
  508. if(!IsPlayerAdmin( playerid ))
  509. NO_PERMISSION();
  510. else
  511. {
  512. if( isnull( params ) )
  513. return SendClientMessage(playerid, ERROR_RED, "| iWeapons | ERROR: Usage /banplayerdb [name/id]");
  514. new
  515. id;
  516. if(isnumeric( params ))
  517. {
  518. id = strval( params );
  519. if(id != INVALID_PLAYER_ID)
  520. {
  521. new
  522. str[64];
  523. format(str, sizeof( str ), "| iWeapons |: You have disabled %s from doing drivebys", playername(id));
  524. wc_iWeaponData[ wc_pDriveByBanned ][ id ] = true;
  525. SendClientMessage(playerid, MESSAGE_COLOR, str);
  526. SendClientMessage(id, 0xFFFFFFAA, "| SERVER |: You have been disabled from doing drivebys");
  527. if(IsPlayerInAnyVehicle(id))
  528. SetPlayerArmedWeapon(id, 0);
  529. return 1;
  530. }
  531. else
  532. SendClientMessage(playerid, ERROR_RED, "| iWeapons |: Player not found.");
  533. }
  534. else
  535. {
  536. id = INVALID_PLAYER_ID;
  537. foreach(Player, i)
  538. {
  539. if(playerid == i)continue;
  540. if(!strcmp(params, playername(i), true))
  541. {
  542. id = i;
  543. break;
  544. }
  545. }
  546. if( id != INVALID_PLAYER_ID )
  547. {
  548. new
  549. str[64];
  550. format(str, sizeof( str ), "| iWeapons |: You have disabled %s from doing drivebys", playername(id));
  551. wc_iWeaponData[ wc_pDriveByBanned ][ id ] = true;
  552. SendClientMessage(playerid, MESSAGE_COLOR, str);
  553. SendClientMessage(id, 0xFFFFFFAA, "| SERVER |: You have been disabled from doing drivebys");
  554. if(IsPlayerInAnyVehicle(id))
  555. SetPlayerArmedWeapon(id, 0);
  556. return 1;
  557. }
  558. else
  559. SendClientMessage(playerid, ERROR_RED, "| iWeapons |: Player not found.");
  560. }
  561. }
  562. return 1;
  563. }
  564.  
  565. COMMAND:unbanplayerdb(playerid, params[])
  566. {
  567. if(!IsPlayerAdmin( playerid ))
  568. NO_PERMISSION();
  569. else
  570. {
  571. if( isnull( params ) )
  572. return SendClientMessage(playerid, ERROR_RED, "| iWeapons | ERROR: Usage /unbanplayerdb [name/id]");
  573. new
  574. id;
  575. if(isnumeric( params ))
  576. {
  577. id = strval( params );
  578. if(id != INVALID_PLAYER_ID)
  579. {
  580. new
  581. str[64];
  582. format(str, sizeof( str ), "| iWeapons |: You have enabled %s's drivebys", playername(id));
  583. wc_iWeaponData[ wc_pDriveByBanned ][ id ] = false;
  584. SendClientMessage(playerid, MESSAGE_COLOR, str);
  585. SendClientMessage(id, 0xFFFFFFAA, "| SERVER |: You can now driveby");
  586. return 1;
  587. }
  588. else
  589. SendClientMessage(playerid, ERROR_RED, "| iWeapons |: Player not found.");
  590. }
  591. else
  592. {
  593. id = INVALID_PLAYER_ID;
  594. foreach(Player, i)
  595. {
  596. if(playerid == i)continue;
  597. if(!strcmp(params, playername(i), true))
  598. {
  599. id = i;
  600. break;
  601. }
  602. }
  603. if( id != INVALID_PLAYER_ID )
  604. {
  605. new
  606. str[64];
  607. format(str, sizeof( str ), "| iWeapons |: You have enabled %s's drivebys", playername(id));
  608. wc_iWeaponData[ wc_pDriveByBanned ][ id ] = false;
  609. SendClientMessage(playerid, MESSAGE_COLOR, str);
  610. SendClientMessage(id, 0xFFFFFFAA, "| SERVER |: You can now driveby");
  611. return 1;
  612. }
  613. else
  614. SendClientMessage(playerid, ERROR_RED, "| iWeapons |: Player not found.");
  615. }
  616. }
  617. return 1;
  618. }
  619.  
  620. COMMAND:weaponupdate(playerid, params[])
  621. {
  622. if(!IsPlayerAdmin( playerid ))
  623. NO_PERMISSION();
  624. else
  625. {
  626. if( isnull( params ) )
  627. return SendClientMessage(playerid, ERROR_RED, "| iWeapons | ERROR: Usage /weaponupdate [time]. Time is in seconds.");
  628. if(isnumeric( params ))
  629. {
  630. new
  631. newtime = strval( params );
  632. if(newtime > 0 && newtime < ( 120*60 ))
  633. {
  634. new
  635. str[64];
  636. KillTimer(wc_UpdateID);
  637. wc_UpdateID = SetTimer("wc_Update", newtime, true);
  638. wc_Update();
  639. format(str, sizeof( str ), "| iWeapons |: You have set the new iWeapon update time to once every %d seconds", newtime);
  640. SendClientMessage(playerid, MESSAGE_COLOR, str);
  641. return 1;
  642. }
  643. else
  644. SendClientMessage(playerid, ERROR_RED, "| iWeapons | ERROR: Number must be between 2 and 120. (seconds)");
  645. }
  646. else
  647. SendClientMessage(playerid, ERROR_RED, "| iWeapons | ERROR: Expected value is a number. (2 - 120)");
  648. }
  649. return 1;
  650. }
  651.  
  652. stock GetWeaponIDFromName(WeaponName[])
  653. {
  654. if(strfind("molotov",WeaponName,true)!=-1)
  655. return 18;
  656. for(new i; i <= 46; i++)
  657. {
  658. switch( i )
  659. {
  660. case 0,19,20,21,44,45: continue;
  661. default:
  662. {
  663. new name[32]; GetWeaponName(i,name,32);
  664. if(strfind(name,WeaponName,true) != -1)
  665. return i;
  666. }
  667. }
  668. }
  669. return -1;
  670. }
  671.  
  672. IsValidWeaponId(weaponid)
  673. {
  674. if(weaponid>45||weaponid<1||weaponid==0||weaponid==19
  675. ||weaponid==20||weaponid==21||weaponid==44||weaponid==45)
  676. return 0;
  677. else
  678. return 1;
  679. }
  680.  
  681. playername(playerid)
  682. {
  683. new
  684. pName[MAX_PLAYER_NAME];
  685. GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  686. return pName;
  687. }
  688.  
  689. INI:iVehicleWeaponCfg[](name[], value[])
  690. {
  691. for ( new i = 1; i < 44; i++ )
  692. {
  693. new
  694. str[ 9 ];
  695. format( str, 9, "weapon%d", i );
  696. INI_Bool( str, wc_iWeaponData[ wc_VehicleWeapons ] [ i ]);
  697. }
  698. return 0;
  699. }
  700.  
  701. INI:iWeaponConfig[](name[], value[])
  702. {
  703. for ( new i = 1; i < 44; i++ )
  704. {
  705. new
  706. str[ 9 ];
  707. format( str, 9, "weapon%d", i );
  708. INI_Bool( str, wc_iWeaponData[ wc_BannedWeapons ] [ i ]);
  709. }
  710. return 0;
  711. }
Advertisement
Add Comment
Please, Sign In to add comment