Guest User

wcrp.pwn

a guest
Jul 18th, 2016
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 37.96 KB | None | 0 0
  1. #pragma dynamic 1000000
  2.  
  3. #include <a_samp>
  4. #include <core>
  5.  
  6. //all non-samp includes below
  7. #undef MAX_PLAYERS
  8. #define MAX_PLAYERS 100 //update this with the server slots
  9. #include <dns>
  10. #include <streamer>
  11. #include <a_mysql>
  12. #include <foreach>
  13. #include <sscanf2>
  14. #include <progress> //for fuel bars taken from old script
  15. //#include <timerfix>
  16. #include <md5>
  17. native WP_Hash(buffer[], len, const str[]); //Whirlpool
  18.  
  19. #define RELEASENUMBER "1.3"
  20.  
  21. #define chc-debug false
  22.  
  23. //cmd/Dialog spam stuff
  24. new lastCmdInfo[MAX_PLAYERS][2]; //number of cmds, time of last cmd
  25. new lastDialogInfo[MAX_PLAYERS][2]; //same as last cmd
  26.  
  27. #define MAX_CMDS_PER_SEC 15
  28. #define MAX_CMDS_TIME 1
  29. #define CMD_RESET_TIME 3
  30.  
  31. #if chc-debug
  32. #define debug 1
  33. #define dbg-callbacks 0
  34. #define MYSQL_HOST "174.165.21.64"
  35. #define MYSQL_USER "11896"
  36. #define MYSQL_DATABASE "11896"
  37. #define MYSQL_PASSWORD "banggang"
  38. #define ip_remote_check 0
  39. #else
  40. #define debug 0
  41. #define dbg-callbacks 0
  42. #define MYSQL_HOST "174.165.21.64"
  43. #define MYSQL_USER "11896"
  44. #define MYSQL_DATABASE "11896"
  45. #define MYSQL_PASSWORD "banggang"
  46. #define ip_remote_check 0
  47. #endif
  48.  
  49. #if debug
  50. #define VERSION ""RELEASENUMBER"-dev"
  51. #else
  52. #define VERSION RELEASENUMBER
  53. #endif
  54.  
  55. #define MODE_NAME "NW-RP "VERSION
  56.  
  57.  
  58. #include <YSI\y_commands>
  59. #include <YSI\y_master>
  60. #include <YSI\y_colours>
  61. #include <YSI\y_timers>
  62.  
  63.  
  64. /*
  65. EDialogBase specifies the start offset of all dialog IDs
  66. */
  67. enum {
  68. EAccountDialog_Base = 100,
  69. EBusiness_Base = EAccountDialog_Base + 100,
  70. EJob_Base = EBusiness_Base + 100,
  71. EAdminDialog_Base = EJob_Base + 100,
  72. EFamilyDialog_Base = EAdminDialog_Base + 100,
  73. EPointDialog_Base = EFamilyDialog_Base + 100,
  74. EVIPShopDialog_Base = EPointDialog_Base + 100,
  75. EAccessoriesDialog_Base = EVIPShopDialog_Base + 100,
  76. ERPDialog_Base = EAccessoriesDialog_Base + 100,
  77. ETurfDialog_Base = ERPDialog_Base + 100,
  78. EVehicles_Base = ETurfDialog_Base + 100,
  79. EFactionsDialog_Base = EVehicles_Base + 100,
  80. EGovDialog_Base = EFactionsDialog_Base + 100,
  81. EPaintball_Base = EGovDialog_Base + 100,
  82. ELockers_Base = EPaintball_Base + 100,
  83. EHelp_Base = ELockers_Base + 100,
  84. EGPS_Base = EHelp_Base + 100,
  85. EKeyBind_Base = EGPS_Base + 100,
  86. EIllegalBusiness_Base = EKeyBind_Base + 100,
  87. ERacing_Base = EIllegalBusiness_Base + 100,
  88. EHouseFurniture_Base = ERacing_Base + 100,
  89. EGunFactory_Base = EHouseFurniture_Base + 100,
  90. EWallTag_Base = EGunFactory_Base + 100,
  91. ECarToys_Base = EWallTag_Base + 100,
  92. ECheats_Base = ECarToys_Base + 100,
  93. EDialogBase_End = ECheats_Base + 100,
  94. };
  95.  
  96. //global variables used within all scripts
  97. new g_mysql_handle;
  98. new levelcost = 10000;
  99. new levelexp = 4;
  100. new tempstr[128];
  101. new query[1024];
  102. new dialogstr[4500];
  103.  
  104.  
  105. #define COLOR_WHITE 0xFFFFFFAA
  106. #define COLOR_FADE1 0xE6E6E6E6
  107. #define COLOR_FADE2 0xC8C8C8C8
  108. #define COLOR_FADE3 0xAAAAAAAA
  109. #define COLOR_FADE4 0x8C8C8C8C
  110. #define COLOR_FADE5 0x6E6E6E6E
  111. #define COLOR_GRAD1 0xB4B5B7FF
  112. #define COLOR_GRAD2 0xBFC0C2FF
  113. #define COLOR_GRAD3 0xCBCCCEFF
  114. #define COLOR_GRAD4 0xD8D8D8FF
  115. #define COLOR_GRAD5 0xE3E3E3FF
  116. #define COLOR_GRAD6 0xF0F0F0FF
  117. #define COLOR_PURPLE 0xC2A2DAAA
  118. #define COLOR_DBLUE 0x2641FEAA
  119. #define COLOR_ALLDEPT 0xFF8282AA
  120. #define COLOR_NEWS 0xFFA500AA
  121. #define COLOR_OOC 0xE0FFFFAA
  122. #define COLOR_LIGHTGREEN 0x7CFC00AA
  123. #define COLOR_MEDIUMAQUA 0x83BFBFFF
  124. #define COLOR_GREY 0xAFAFAFAA
  125. #define COLOR_LIGHTBLUE 0x00BFFFAA
  126. #define COLOR_GREENISHGOLD 0xCCFFDD56
  127. #define COLOR_LIGHTBLUEGREEN 0x0FFDD349
  128. #define COLOR_LIGHTCYAN 0xAAFFCC33
  129. #define COLOR_GREEN 0x33AA33AA
  130. #define COLOR_NEWS 0xFFA500AA
  131. #define COLOR_OOC 0xE0FFFFAA
  132. #define COLOR_BRIGHTRED 0xFF0000FF
  133. #define COLOR_RED 0xAA3333AA
  134. #define COLOR_ADMINCMD 0xAFAFAFAA
  135. #define COLOR_LIGHTRED 0xFF6347AA
  136. #define COLOR_YELLOW 0xFFFF00AA
  137. #define COLOR_YELLOW2 0xFFCC00AA
  138. #define COLOR_LIGHTYELLOW2 0xF5DEB3AA
  139. #define OBJECTIVE_COLOR 0x64000064
  140. #define TEAM_GREEN_COLOR 0xFFFFFFAA
  141. #define TEAM_JOB_COLOR 0xFFB6C1AA
  142. #define TEAM_HIT_COLOR 0xFFFFFF00
  143. #define TEAM_BLUE_COLOR 0x8D8DFF00
  144. #define COLOR_ADD 0x63FF60AA
  145. #define TEAM_GROVE_COLOR 0x00D900C8
  146. #define TEAM_VAGOS_COLOR 0xFFC801C8
  147. #define TEAM_BALLAS_COLOR 0xD900D3C8
  148. #define TEAM_AZTECAS_COLOR 0x01FCFFC8
  149. #define TEAM_CYAN_COLOR 0xFF8282AA
  150. #define COLOUR_DONATEPURPLE 0xFF33FFAA
  151. #define COLOR_PINK 0xFF66FFAA
  152. #define COLOR_HELPERCHAT 0x40808096
  153.  
  154. #define DP_VALUE 0.10 //value of 1 DP in real dollars
  155. #define MAX_HEALTH 98.0
  156. #define MAX_ARMOUR 98.0
  157. #define ENTEREXIT_COOLDOWN 2
  158. #define NAMETAG_DRAW_DISTANCE 15.0
  159. #define INFINITE_AMMO 22767
  160. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  161. #define KEY_AIM (128) //Defaults to SPACEBAR but it works as the aim key as well.
  162. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  163. #define HOLDING(%0) \
  164. ((newkeys & (%0)) == (%0)) //Holding key definition
  165. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  166.  
  167.  
  168.  
  169.  
  170.  
  171. enum ELicenseFlags (<<= 1) {
  172. ELicense_Drivers = 1,
  173. ELicense_Flying,
  174. ELicense_Fishing,
  175. ELicense_Sailing,
  176. ELicense_Gun,
  177. };
  178.  
  179. enum EAccountFlags (<<= 1) {
  180. EAccountFlags_NoNewb = 1,
  181. EAccountFlags_NoAds,
  182. EAccountFlags_NoOOC,
  183. EAccountFlags_HideAdminMessages,
  184. EAccountFlags_NoHints,
  185. EAccountFlags_NoJobMessages,
  186. EAccountFlags_AdBanned,
  187. EAccountFlags_NoChatAnim,
  188. EAccountFlags_FurnitureBanned,
  189. EAccountFlags_MustRedoTest,
  190. EAccountFlags_MovieMode,
  191. EAccountFlags_ShowRedScreen,
  192. EAccountFlags_BlockPMS,
  193. EAccountFlags_NoHelperChat,
  194. EAccountFlags_NoHungerTD,
  195. EAccountFlags_NewbBanned,
  196. EAccountFlags_GunBanned,
  197. };
  198.  
  199. enum FactionType {
  200. EFactionType_None,
  201. EFactionType_LEO,
  202. EFactionType_Government,
  203. EFactionType_Hitman,
  204. EFactionType_SanNews,
  205. EFactionType_EMS,
  206. };
  207.  
  208. enum ESettingsInfo {
  209. SettingsName[64],
  210. EAccountFlags:SettingsFlag,
  211. }
  212. new SettingsInfo[][ESettingsInfo] = {{"No Newb Chat",EAccountFlags_NoNewb},
  213. {"No Ads/News",EAccountFlags_NoAds},
  214. {"No Hints",EAccountFlags_NoHints},
  215. {"Hide Admin Messages",EAccountFlags_HideAdminMessages},
  216. {"No Job Messages",EAccountFlags_NoJobMessages},
  217. {"No Chat Animations",EAccountFlags_NoChatAnim},
  218. {"No Map Locations",EAccountFlags_MovieMode},
  219. {"No PM's",EAccountFlags_BlockPMS},
  220. {"No Helper Chat",EAccountFlags_NoHelperChat},
  221. {"No Hunger Text Draw",EAccountFlags_NoHungerTD}
  222. };
  223.  
  224.  
  225. //functions with tag definitions(to prevent compiler reparse(increasing compile time))
  226. Float:getLockDistance(ELockType:lock); //vehicles.pwn
  227. FactionType:getFactionType(faction); //factions.pwn
  228. FactionType:getPlayerFactionType(playerid);
  229. ESafeItemType:findItemType(index); //lockers.pwn
  230. Float:getPlantLength(i); //plants.pwn
  231. HouseHasSafe(id); //safes.pwn
  232. DeleteHouseSafe(id); //safes.pwn
  233. ESafeOwnerType:getSafeOwnerType(safeid); //safes.pwn
  234. SendRadioMsgToListeners(sender, msg[]);//specialitems.pwn
  235. SendDepartmentMsgToListeners(sender, msg[]);//specialitems.pwn
  236. SendWTMsgToListeners(sender, msg[], channel); //specialitems.pwn
  237.  
  238. #include "wcrp\utils.pwn"
  239. #include "wcrp\textdraws.pwn"
  240. #include "wcrp\colourcodes.pwn"
  241. #include "wcrp\admin.pwn"
  242. #include "wcrp\account.pwn" //account/character related functions get forwarded here
  243. //#include "wcrp\weather.pwn"
  244. #include "wcrp\rp.pwn" //generic RP related stuff here(such as /me, /do)
  245. #include "wcrp\anticheat.pwn"
  246. #include "wcrp\vehicles.pwn"
  247. #include "wcrp\fishing.pwn"
  248. #include "wcrp\business.pwn"
  249. //jobs was here
  250. #include "wcrp\interiors.pwn"
  251. #include "wcrp\families.pwn"
  252. #include "wcrp\houses.pwn"
  253. #include "wcrp\jobs.pwn"
  254. #include "wcrp\safes.pwn"
  255. #include "wcrp\points.pwn"
  256. #include "wcrp\VIP.pwn"
  257. #include "wcrp\accessories.pwn"
  258. #include "wcrp\hospital.pwn"
  259. #include "wcrp\factions.pwn"
  260. #include "wcrp\mapping.pwn" //generic NON-DONATOR mapping
  261. #include "wcrp\anims.pwn"
  262. #include "wcrp\gov.pwn"
  263. #include "wcrp\training.pwn"
  264. #include "wcrp\paintball.pwn"
  265. #include "wcrp\boxing.pwn"
  266. #include "wcrp\cameras.pwn"
  267. #include "wcrp\lockers.pwn"
  268. #include "wcrp\IRC.pwn"
  269. #include "wcrp\seatbelt.pwn"
  270. #include "wcrp\anticbug.pwn"
  271. #include "wcrp\help.pwn"
  272. #include "wcrp\logging.pwn"
  273. #include "wcrp\npc.pwn"
  274. #include "wcrp\GPS.pwn"
  275. #include "wcrp\radio.pwn"
  276. #include "wcrp\keybinder.pwn"
  277. //#include "wcrp\donatormapping.pwn"
  278. #include "wcrp\plants.pwn"
  279. #include "wcrp\forumsync.pwn"
  280. #include "wcrp\itemdropping.pwn"
  281. #include "wcrp\illegalbusiness.pwn"
  282. #include "wcrp\bomb.pwn"
  283. #include "wcrp\disease.pwn"
  284. //weather was here
  285. #include "wcrp\racing.pwn"
  286. #include "wcrp\externalfuncs.pwn" //functions for use with CallRemoteFunction in other scripts
  287. #include "wcrp\lotto.pwn"
  288. #include "wcrp\housefurniture.pwn"
  289. #include "wcrp\evidencesystem.pwn" //Must be before the damage system
  290. #include "wcrp\damagesystem.pwn"
  291. #include "wcrp\payphones.pwn" //Payphones
  292. #include "wcrp\apartments.pwn" //Apartments
  293. //#include "wcrp\gunfactory.pwn" //Gun factory, including dialogs
  294. //#include "wcrp\servermottos.pwn" //Server auto namechanger
  295. #include "wcrp\walltags.pwn" //Wall tags (families only)
  296. #include "wcrp\specialitems.pwn"
  297. #include "wcrp\hunger.pwn"
  298. #include "wcrp\votekick.pwn"
  299. #include "wcrp\speedtraps.pwn"
  300. #include "wcrp\fpscamplusdb.pwn"
  301. #include "wcrp\sqlqueries.pwn"
  302. #include "wcrp\cartoys.pwn"
  303. #include "wcrp\basketball.pwn"
  304. #include "wcrp\cheats.pwn"
  305. #include "wcrp\events.pwn"
  306. /*
  307. Script Documentation:
  308.  
  309. All Player PVars are below:
  310.  
  311. Account Related:
  312. AdminLevel(int) - Players Admin
  313. AccountName(string) - Account Name
  314. AccountID(int) - mysql Account ID
  315. */
  316.  
  317. new UsedMapIDs[99];
  318.  
  319.  
  320. main()
  321. {
  322. }
  323.  
  324. YCMD:commands(playerid, params[], help)
  325. {
  326. if (help)
  327. {
  328. SendClientMessage(playerid, 0xFF0000AA, "Lists all the commands a player can use.");
  329. }
  330. else
  331. {
  332. new
  333. count = Command_GetPlayerCommandCount(playerid);
  334. for (new i = 0; i != count; ++i)
  335. {
  336. SendClientMessage(playerid, 0xFF0000AA, Command_GetNext(i, playerid));
  337. }
  338. }
  339. return 1;
  340. }
  341. public OnGameModeInit()
  342. {
  343. SetGameModeText(MODE_NAME);
  344. SendRconCommand("mapname Los Santos");
  345. #if debug
  346. mysql_debug(1);
  347. #else
  348. mysql_debug(0);
  349. #endif
  350. enable_mutex(false);
  351. g_mysql_handle = mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_DATABASE,MYSQL_PASSWORD);
  352. Command_SetDeniedReturn( false );
  353. DisableInteriorEnterExits();
  354. EnableStuntBonusForAll(0);
  355. ShowPlayerMarkers(0);
  356. ShowNameTags(1);
  357. SetNameTagDrawDistance(NAMETAG_DRAW_DISTANCE);
  358. ManualVehicleEngineAndLights();
  359. acOnGameModeInit();
  360. jobsOnGameModeInit();
  361. mappingOnGameModeInit();
  362. adminOnGameModeInit();
  363. businessOnGameModeInit();
  364. VehOnGameModeInit();
  365. RPOnGameModeInit();
  366. interiorsOnGameModeInit();
  367. familiesOnGameModeInit(); //calls pointsOnGameModeInit() after families are loaded
  368. VIPOnGameModeInit();
  369. accessoriesOnGameModeInit();
  370. housesOnGameModeInit();
  371. factionsOnGameModeInit();
  372. animsOnGameModeInit();
  373. govOnGameModeInit();
  374. camsOnGameModeInit();
  375. lockersOnGameModeInit();
  376. seatbeltOnGameModeInit();
  377. AntiCBugOnGameModeInit();
  378. accountOnGameModeInit();
  379. helpOnGameModeInit();
  380. loggingOnGameModeInit();
  381. npcOnGameModeInit();
  382. //donatorMappingOnGameModeInit();
  383. plantsOnGameModeInit();
  384. illegalBizOnGameModeInit();
  385. //weatherOnGameModeInit();
  386. payphonesOnGameModeInit();
  387. apartmentsOnGameModeInit();
  388. //gunFactoryOnGameModeInit();
  389. wallTagsOnGameModeInit();
  390. TextDrawsOnGameModeInit();
  391. fishOnGameModeInit();
  392. hungerOnGameModeInit();
  393. damageOnGameModeInit();
  394. SpeedTrapsOnGameModeInit();
  395. //onServerMottoGameModeInit();
  396. SQLQueriesOnGameModeInit();
  397. basketballOnGameModeInit();
  398. EventOnGameModeInit();
  399. return 1;
  400. }
  401.  
  402. public OnGameModeExit()
  403. {
  404. seatbeltOnGameModeExit();
  405. loggingOnGameModeExit();
  406. lottoOnGameModeExit();
  407. for(new i=0;i<MAX_PLAYERS;i++) {
  408. if(IsPlayerConnectEx(i)) {
  409. SendClientMessage(i, COLOR_RED, "SYSTEM: The server is shutting down, you are being kicked to save your information.");
  410. KickEx(i, "GMX");
  411. }
  412. }
  413. if(g_mysql_handle)
  414. mysql_close(g_mysql_handle);
  415. while(mysql_ping(g_mysql_handle) == 1) {
  416. #emit NOP
  417. }
  418. return 1;
  419. }
  420.  
  421. public OnPlayerRequestClass(playerid, classid)
  422. {
  423. accountOnPlayerRequestClass(playerid, classid);
  424. return 1;
  425. }
  426. public OnPlayerConnect(playerid)
  427. {
  428. lastCmdInfo[playerid][0] = 0;
  429. lastCmdInfo[playerid][1] = 0;
  430. lastDialogInfo[playerid][0] = 0;
  431. lastDialogInfo[playerid][1] = 0;
  432.  
  433. if(IsPlayerNPC(playerid)) {
  434. SpawnPlayer(playerid);
  435. return 0;
  436. }
  437. #if ip_remote_check
  438. LookupPlayerIP(playerid);
  439. #else
  440. OnPlayerConnectEx(playerid);
  441. #endif
  442. return 1;
  443. }
  444. forward OnPlayerConnectEx(playerid);
  445. public OnPlayerConnectEx(playerid) {
  446.  
  447. if(numUsersOnIP(playerid) > 6) {
  448. #if ip_remote_check
  449. KickEx(playerid, "Too many simultaneous sessions");
  450. #else
  451. Ban(playerid);
  452. #endif
  453. return 0;
  454. }
  455. mappingOnPlayerConnect(playerid);
  456. adminOnPlayerConnect(playerid); //used for checking bans, etc
  457. accountOnPlayerConnect(playerid);
  458. interiorsOnPlayerConnect(playerid);
  459. pointsOnPlayerConnect(playerid);
  460. animsOnPlayerConnect(playerid);
  461. seatbeltOnPlayerConnect(playerid);
  462. AntiCBugOnPlayerConnect(playerid);
  463. camOnPlayerConnect(playerid);
  464. hungerOnPlayerConnect(playerid);
  465. //weatherOnPlayerConnect(playerid);
  466. return 0;
  467. }
  468.  
  469.  
  470.  
  471. public OnPlayerDisconnect(playerid, reason)
  472. {
  473. if(IsPlayerNPC(playerid)) {
  474. return 0;
  475. }
  476. paintballOnPlayerDisconnect(playerid, reason);
  477. vehOnPlayerDisconnect(playerid, reason);
  478. RPOnPlayerDisconnect(playerid, reason);
  479. accountOnPlayerDisconnect(playerid, reason);
  480. jobsOnPlayerDisconnect(playerid, reason);
  481. trainingOnPlayerDisconnect(playerid, reason);
  482. boxingOnPlayerDisconnect(playerid, reason);
  483. govOnPlayerDisconnect(playerid, reason);
  484. loggingOnPlayerDisconnect(playerid, reason);
  485. acOnPlayerDisconnect(playerid, reason);
  486. adminOnPlayerDisconnect(playerid, reason);
  487. medicOnPlayerDisconnect(playerid, reason);
  488. racingOnPlayerDisconnect(playerid, reason);
  489. //deleteRadioURLPVars(playerid);
  490. payphonesOnPayPhoneDisconnect(playerid, reason);
  491. damageSystemOnPlayerDisconnect(playerid, reason);
  492. //weatherOnPlayerDisconnect(playerid, reason);
  493. //evidenceOnPlayerDisconnect(playerid);
  494. TextDrawOnPlayerDisconnect(playerid, reason);
  495. specialItemsOnPlayerDisconnect(playerid, reason);
  496. hungerOnPlayerDisconnect(playerid, reason);
  497. fishingOnPlayerDisconnect(playerid, reason);
  498. voteKickOnPlayerDisconnect(playerid, reason);
  499. SpeedTrapsOnPlayerDisconnect(playerid, reason);
  500. fpsCamOnPlayerDisconnect(playerid, reason);
  501. SQLQueriesOnPlayerDisconnect(playerid, reason);
  502. basketballOnPlayerDisconnect(playerid, reason);
  503. cheatsOnPlayerDisconnect(playerid, reason);
  504. eventOnPlayerDisconnect(playerid, reason);
  505. return 1;
  506. }
  507.  
  508. public OnPlayerSpawn(playerid)
  509. {
  510. #if dbg-callbacks
  511. format(query, sizeof(query), "DBG: OnPlayerSpawn(%d)",playerid);
  512. SendClientMessageToAll(X11_YELLOW, query);
  513. #endif
  514. if(!IsPlayerNPC(playerid)) {
  515. if(!IsPlayerConnectEx(playerid)) {
  516. Kick(playerid);
  517. }
  518. }
  519. PreloadAnimLib(playerid,"MISC");
  520. PreloadAnimLib(playerid,"ped");
  521. PreloadAnimLib(playerid,"BEACH");
  522. PreloadAnimLib(playerid,"SMOKING");
  523. PreloadAnimLib(playerid,"BOMBER");
  524. PreloadAnimLib(playerid,"RAPPING");
  525. PreloadAnimLib(playerid,"SHOP");
  526. PreloadAnimLib(playerid,"COP_AMBIENT");
  527. PreloadAnimLib(playerid,"FOOD");
  528. PreloadAnimLib(playerid,"ON_LOOKERS");
  529. PreloadAnimLib(playerid,"SWEET");
  530. PreloadAnimLib(playerid,"DEALER");
  531. PreloadAnimLib(playerid,"KNIFE");
  532. PreloadAnimLib(playerid,"CRACK");
  533. PreloadAnimLib(playerid,"BLOWJOBZ");
  534. PreloadAnimLib(playerid,"PARK");
  535. PreloadAnimLib(playerid,"GYMNASIUM");
  536. PreloadAnimLib(playerid,"PAULNMAC");
  537. PreloadAnimLib(playerid,"CAR");
  538. PreloadAnimLib(playerid,"GANGS");
  539. PreloadAnimLib(playerid,"GHANDS");
  540. PreloadAnimLib(playerid,"MEDIC");
  541. PreloadAnimLib(playerid,"Attractors");
  542. PreloadAnimLib(playerid,"HEIST9");
  543. PreloadAnimLib(playerid,"RIOT");
  544. PreloadAnimLib(playerid,"CARRY");
  545. PreloadAnimLib(playerid,"KISSING");
  546. PreloadAnimLib(playerid,"INT_SHOP");
  547. PreloadAnimLib(playerid,"WUZI");
  548. PreloadAnimLib(playerid,"SWORD");
  549.  
  550. if(IsPlayerInEvent(playerid)) {
  551. OnPlayerExitEvent(playerid);
  552. return 1;
  553. }
  554.  
  555. acOnPlayerSpawn(playerid);
  556. accountOnPlayerSpawn(playerid); //for HP setting, etc
  557. hospitalOnPlayerSpawn(playerid);
  558. return 1;
  559. }
  560.  
  561. public OnPlayerDeath(playerid, killerid, reason)
  562. {
  563. #if dbg-callbacks
  564. format(query, sizeof(query), "DBG: OnPlayerDeath(%d,%d,%d)",playerid,killerid, reason);
  565. SendClientMessageToAll(X11_YELLOW, query);
  566. #endif
  567. adminOnPlayerDeath(playerid, killerid, reason);
  568. if(IsPlayerInEvent(playerid)) {
  569. return 1;
  570. }
  571. hospitalOnPlayerDeath(playerid, killerid, reason);
  572. trainingOnPlayerDeath(playerid);
  573. seatbeltOnPlayerDeath(playerid, killerid, reason);
  574. loggingOnPlayerDeath(playerid, killerid, reason);
  575. boxingOnPlayerDeath(playerid, killerid, reason);
  576. hitmanOnPlayerDeath(playerid, killerid, reason);
  577. racingOnPlayerDeath(playerid, killerid, reason);
  578. rpOnPlayerDeath(playerid, killerid, reason);
  579. damageSystemOnPlayerDeath(playerid, killerid, reason);
  580.  
  581. return 1;
  582. }
  583.  
  584. public OnVehicleSpawn(vehicleid)
  585. {
  586. #if dbg-callbacks
  587. format(query, sizeof(query), "DBG: OnVehicleSpawn(%d)",vehicleid);
  588. SendClientMessageToAll(X11_YELLOW, query);
  589. #endif
  590. vehOnVehicleSpawn(vehicleid);
  591. return 1;
  592. }
  593.  
  594. public OnVehicleDeath(vehicleid, killerid)
  595. {
  596. #if dbg-callbacks
  597. format(query, sizeof(query), "DBG: OnVehicleDeath(%d,%d)",vehicleid, killerid);
  598. SendClientMessageToAll(X11_YELLOW, query);
  599. #endif
  600. vehOnVehicleDeath(vehicleid, killerid);
  601. return 1;
  602. }
  603.  
  604. public OnPlayerText(playerid, text[])
  605. {
  606. #if dbg-callbacks
  607. format(query, sizeof(query), "DBG: OnPlayerText(%d,\"%s\")",playerid, text);
  608. SendClientMessageToAll(X11_YELLOW, query);
  609. #endif
  610. if(!IsPlayerConnectEx(playerid)) {
  611. return 0;
  612. }
  613. new ret = adminsOnPlayerText(playerid, text);
  614. if(ret == 2) {
  615. return 1;
  616. } else if(ret == 1) {
  617. return 0;
  618. }
  619. if(isMuted(playerid) && ~EAdminFlags:GetPVarInt(playerid, "AdminFlags") & EAdminFlags_Unbannable) {
  620. SendClientMessage(playerid, X11_TOMATO_2, "You are muted!");
  621. return 0;
  622. }
  623. newsOnPlayerText(playerid, text);
  624. RPOnPlayerText(playerid, text);
  625. return 0;
  626. }
  627.  
  628.  
  629. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  630. {
  631. #if dbg-callbacks
  632. format(query, sizeof(query), "DBG: OnPlayerEnterVehicle(%d,%d,%d)",playerid, vehicleid, ispassenger);
  633. SendClientMessageToAll(X11_YELLOW, query);
  634. #endif
  635. vehOnPlayerEnterVehicle(playerid, vehicleid, ispassenger);
  636. acOnPlayerEnterVehicle(playerid, vehicleid, ispassenger);
  637. return 1;
  638. }
  639.  
  640. public OnPlayerExitVehicle(playerid, vehicleid)
  641. {
  642. #if dbg-callbacks
  643. format(query, sizeof(query), "DBG: OnPlayerExitVehicle(%d,%d)",playerid, vehicleid);
  644. SendClientMessageToAll(X11_YELLOW, query);
  645. #endif
  646. seatbeltOnPlayerExitVehicle(playerid, vehicleid);
  647. drivebyOnPlayerExitVehicle(playerid, vehicleid);
  648. return 1;
  649. }
  650.  
  651. public OnPlayerStateChange(playerid, newstate, oldstate)
  652. {
  653. #if dbg-callbacks
  654. format(query, sizeof(query), "DBG: OnPlayerStateChange(%d,%d,%d)",playerid, newstate, oldstate);
  655. SendClientMessageToAll(X11_YELLOW, query);
  656. #endif
  657. setLastCarPVar(playerid, newstate, oldstate);
  658. acOnPlayerStateChange(playerid, newstate, oldstate);
  659. adminOnPlayerStateChange(playerid, newstate, oldstate);
  660. vehOnPlayerStateChange(playerid, newstate, oldstate);
  661. trainingOnPlayerStateChange(playerid, newstate, oldstate);
  662. govOnPlayerStateChange(playerid, newstate, oldstate);
  663. seatbeltOnPlayerStateChange(playerid, newstate, oldstate);
  664. racingOnPlayerStateChange(playerid, newstate, oldstate);
  665. drivebyOnPlayerStateChange(playerid, newstate, oldstate);
  666. return 1;
  667. }
  668.  
  669. public OnPlayerEnterCheckpoint(playerid)
  670. {
  671. #if dbg-callbacks
  672. format(query, sizeof(query), "DBG: OnPlayerEnterCheckpoint(%d)",playerid);
  673. SendClientMessageToAll(X11_YELLOW, query);
  674. #endif
  675. jobOnPlayerEnterCheckpoint(playerid);
  676. govOnPlayerEnterCheckpoint(playerid);
  677. leoOnPlayerEnterCheckpoint(playerid);
  678. return 1;
  679. }
  680.  
  681. public OnPlayerLeaveCheckpoint(playerid)
  682. {
  683. #if dbg-callbacks
  684. format(query, sizeof(query), "DBG: OnPlayerLeaveCheckpoint(%d)",playerid);
  685. SendClientMessageToAll(X11_YELLOW, query);
  686. #endif
  687. return 1;
  688. }
  689.  
  690. public OnPlayerEnterRaceCheckpoint(playerid)
  691. {
  692. #if dbg-callbacks
  693. format(query, sizeof(query), "DBG: OnPlayerEnterRaceCheckpoint(%d)",playerid);
  694. SendClientMessageToAll(X11_YELLOW, query);
  695. #endif
  696. trainingOnPlayerEnterRacePoint(playerid);
  697. govOnPlayerEnterCheckpoint(playerid);
  698. racingOnEnterCheckpoint(playerid);
  699. return 1;
  700. }
  701.  
  702. public OnPlayerLeaveRaceCheckpoint(playerid)
  703. {
  704. #if dbg-callbacks
  705. format(query, sizeof(query), "DBG: OnPlayerLeaveRaceCheckpoint(%d)",playerid);
  706. SendClientMessageToAll(X11_YELLOW, query);
  707. #endif
  708. return 1;
  709. }
  710.  
  711. public OnRconCommand(cmd[])
  712. {
  713. #if dbg-callbacks
  714. format(query, sizeof(query), "DBG: OnRconCommand(\"%s\")",cmd);
  715. SendClientMessageToAll(X11_YELLOW, query);
  716. #endif
  717. return 1;
  718. }
  719.  
  720. public OnPlayerRequestSpawn(playerid)
  721. {
  722. #if dbg-callbacks
  723. format(query, sizeof(query), "DBG: OnPlayerRequestSpawn(%d)",playerid);
  724. SendClientMessageToAll(X11_YELLOW, query);
  725. #endif
  726. if(IsPlayerNPC(playerid)) return 1;
  727. if(!IsPlayerConnectEx(playerid)) {
  728. return 0;
  729. }
  730. return 1;
  731. }
  732.  
  733. public OnObjectMoved(objectid)
  734. {
  735. return 1;
  736. }
  737.  
  738. public OnPlayerObjectMoved(playerid, objectid)
  739. {
  740. return 1;
  741. }
  742.  
  743. public OnPlayerPickUpPickup(playerid, pickupid)
  744. {
  745. return 1;
  746. }
  747.  
  748. public OnVehicleMod(playerid, vehicleid, componentid)
  749. {
  750. #if dbg-callbacks
  751. format(query, sizeof(query), "DBG: OnVehicleMod(%d,%d,%d)",playerid,vehicleid, componentid);
  752. SendClientMessageToAll(X11_YELLOW, query);
  753. #endif
  754. acOnVehicleMod(playerid, vehicleid, componentid);
  755. return 1;
  756. }
  757.  
  758. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  759. {
  760. #if dbg-callbacks
  761. format(query, sizeof(query), "DBG: OnVehiclePaintjob(%d,%d,%d)",playerid, vehicleid, paintjobid);
  762. SendClientMessageToAll(X11_YELLOW, query);
  763. #endif
  764. vehOnVehiclePaintjob(vehicleid, playerid, paintjobid);
  765. return 1;
  766. }
  767.  
  768. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  769. {
  770. #if dbg-callbacks
  771. format(query, sizeof(query), "DBG: OnVehiclePaintjob(%d,%d,%d,%d)",playerid, vehicleid, color1, color2);
  772. SendClientMessageToAll(X11_YELLOW, query);
  773. #endif
  774. vehOnVehicleRespray(playerid, vehicleid, color1, color2);
  775. return 1;
  776. }
  777.  
  778. public OnPlayerSelectedMenuRow(playerid, row)
  779. {
  780. return 1;
  781. }
  782.  
  783. public OnPlayerExitedMenu(playerid)
  784. {
  785. return 1;
  786. }
  787.  
  788. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  789. {
  790. #if dbg-callbacks
  791. format(query, sizeof(query), "DBG: OnPlayerInteriorChange(%d,%d,%d)",playerid, newinteriorid, oldinteriorid);
  792. SendClientMessageToAll(X11_YELLOW, query);
  793. #endif
  794. DynamicStreamerIntCheck(playerid);
  795. updateSpectators(playerid);
  796. paintballOnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid);
  797. //checkSnow(playerid);
  798. TextDrawsOnPlayerEnterInterior(playerid, newinteriorid, oldinteriorid);
  799. return 1;
  800. }
  801.  
  802. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  803. {
  804. #if dbg-callbacks
  805. format(query, sizeof(query), "DBG: OnPlayerKeyStateChange(%d,%d,%d)",playerid, newkeys, oldkeys);
  806. SendClientMessageToAll(X11_YELLOW, query);
  807. #endif
  808. keybindOnKeyStateChange(playerid, newkeys, oldkeys);
  809. animsOnKeyStateChange(playerid, newkeys, oldkeys);
  810. fishOnPlayerKeyState(playerid, newkeys, oldkeys);
  811. camsOnPlayerKeyState(playerid, newkeys, oldkeys);
  812. acOnKeyStateChange(playerid, newkeys, oldkeys);
  813. dbkeysOnPlayerKeyState(playerid, newkeys, oldkeys);
  814. basketballKeysOnPlayerKeyState(playerid, newkeys, oldkeys);
  815. cheatsOnPlayerKeyStateChange(playerid, newkeys, oldkeys);
  816. if(newkeys & KEY_SECONDARY_ATTACK)
  817. {
  818. new time = GetPVarInt(playerid, "EnterExitCooldown");
  819. new timenow = gettime();
  820. if(ENTEREXIT_COOLDOWN-(timenow-time) > 0) {
  821. return 1;
  822. }
  823. businessTryEnter(playerid);
  824. interiorTryEnterExit(playerid);
  825. familiesTryEnterExit(playerid);
  826. housesTryEnterExit(playerid);
  827. updateSpectators(playerid);
  828. factionTryEnterExit(playerid);
  829. iBizTryEnter(playerid);
  830. apartmentTryEnterExit(playerid);
  831. joiningOrLeavingBBall(playerid); //basketball
  832. SetPVarInt(playerid, "EnterExitCooldown", gettime());
  833. }
  834. if(newkeys & KEY_CTRL_BACK) {
  835. ShamalTryEnterExit(playerid);
  836. }
  837. if(newkeys & KEY_LOOK_BEHIND) {
  838. vehOnEngineTry(playerid);
  839. }
  840. return 1;
  841. }
  842.  
  843. public OnRconLoginAttempt(ip[], password[], success)
  844. {
  845. new msg[128];
  846. if(success) {
  847. format(msg, sizeof(msg), "AdmWarn: %s logged in via RCON",ip);
  848. } else {
  849. format(msg, sizeof(msg), "AdmWarn: %s failed to login via RCON",ip);
  850. }
  851. ABroadcast(X11_RED3,msg,EAdminFlags_ServerManager);
  852. return 1;
  853. }
  854.  
  855. public OnPlayerUpdate(playerid)
  856. {
  857. acOnPlayerUpdate(playerid);
  858. cheatsOnPlayerUpdate(playerid);
  859. if(IsPlayerConnectEx(playerid)) {
  860. //should be moved into a local variable
  861. if(GetPVarType(playerid, "Desynced") != PLAYER_VARTYPE_NONE) {
  862. return 0;
  863. }
  864. rpOnPlayerUpdate(playerid);
  865. new EAdminFlags:aflags = EAdminFlags:GetPVarInt(playerid, "AdminFlags");
  866. if(~aflags & EAdminFlags_AntiCheat) {
  867. if(AntiCBugOnPlayerUpdate(playerid) == 2) {
  868. return 0;
  869. }
  870. }
  871. camsOnPlayerUpdate(playerid);
  872. damageSystemOnPlayerUpdate(playerid);
  873. } else return 0;
  874. return 1;
  875. }
  876.  
  877. public OnPlayerStreamIn(playerid, forplayerid)
  878. {
  879. RPOnPlayerStreamIn(playerid, forplayerid);
  880. return 1;
  881. }
  882.  
  883. public OnPlayerStreamOut(playerid, forplayerid)
  884. {
  885.  
  886. return 1;
  887. }
  888.  
  889. public OnVehicleStreamIn(vehicleid, forplayerid)
  890. {
  891. vehOnVehicleStreamIn(vehicleid, forplayerid);
  892. return 1;
  893. }
  894.  
  895. public OnVehicleStreamOut(vehicleid, forplayerid)
  896. {
  897. return 1;
  898. }
  899.  
  900. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  901. {
  902. if(lastDialogInfo[playerid][0]++ == 0) {
  903. lastDialogInfo[playerid][1] = gettime();
  904. }
  905.  
  906. if(lastDialogInfo[playerid][0] > MAX_CMDS_PER_SEC) {
  907. if(gettime()-lastDialogInfo[playerid][1] > CMD_RESET_TIME) {
  908. lastDialogInfo[playerid][1] = gettime();
  909. lastDialogInfo[playerid][0] = 0;
  910. } else if(gettime()-lastDialogInfo[playerid][1] > MAX_CMDS_TIME) {
  911. format(dialogstr, sizeof(dialogstr), "AdmWarn: %s[%d] has been kicked for dialog response spamming: ID: %d Resp: %d ListItem: %d InputText: %s",GetPlayerNameEx(playerid, ENameType_CharName),playerid, dialogid,response, listitem, inputtext);
  912. ABroadcast(X11_YELLOW, dialogstr, EAdminFlags_BasicAdmin);
  913. KickEx(playerid, "Dialog Spamming");
  914. return 1;
  915. }
  916. }
  917. if(dialogid >= EAccountDialog_Base && dialogid < EBusiness_Base) {
  918. if(accountOnDialogResponse(playerid, dialogid, response, listitem, inputtext) == 1) {
  919. return 1;
  920. }
  921. } else if(dialogid >= EBusiness_Base && dialogid < EJob_Base) {
  922. if(bOnDialogResponse(playerid, dialogid, response, listitem, inputtext) == 1) {
  923. return 1;
  924. }
  925. } else if(dialogid >= EJob_Base && dialogid < EAdminDialog_Base) {
  926. if(jobOnDialogResponse(playerid, dialogid, response, listitem, inputtext) == 1) {
  927. return 1;
  928. }
  929. } else if(dialogid >= EAdminDialog_Base && dialogid < EFamilyDialog_Base) {
  930. if(adminOnDialogResponse(playerid, dialogid, response, listitem, inputtext) == 1) {
  931. return 1;
  932. }
  933. } else if(dialogid >= EFamilyDialog_Base && dialogid < EPointDialog_Base) {
  934. if(familyOnDialogResponse(playerid, dialogid, response, listitem, inputtext) == 1) {
  935. return 1;
  936. }
  937. } else if(dialogid >= EPointDialog_Base && dialogid < EVIPShopDialog_Base) {
  938. //we don't handle responses from point dialogs atm
  939. } else if(dialogid >= EVIPShopDialog_Base && dialogid < EAccessoriesDialog_Base) {
  940. if(VIPOnDialogResponse(playerid, dialogid, response, listitem, inputtext)) {
  941. return 1;
  942. }
  943. } else if(dialogid >= EAccessoriesDialog_Base && dialogid < ERPDialog_Base) {
  944. if(accessoriesOnDialogResp(playerid, dialogid, response, listitem, inputtext)) {
  945. return 1;
  946. }
  947. } else if(dialogid >= ERPDialog_Base && dialogid < ETurfDialog_Base) {
  948. if(RPOnDialogResp(playerid, dialogid, response, listitem, inputtext)) {
  949. return 1;
  950. }
  951. } else if(dialogid >= EVehicles_Base && dialogid < EFactionsDialog_Base) {
  952. if(vehOnDialogResp(playerid, dialogid, response, listitem, inputtext)) {
  953. return 1;
  954. }
  955. } else if(dialogid >= EFactionsDialog_Base && dialogid < EGovDialog_Base) {
  956. if(factionsOnDialogResp(playerid, dialogid, response, listitem, inputtext)) {
  957. return 1;
  958. }
  959. } else if(dialogid >= EGovDialog_Base && dialogid < EPaintball_Base) {
  960. if(govOnDialogResp(playerid, dialogid, response, listitem, inputtext)) {
  961. return 1;
  962. }
  963. } else if(dialogid >= EPaintball_Base && dialogid < ELockers_Base) {
  964. if(paintballOnDialogResponse(playerid, dialogid, response, listitem, inputtext)) {
  965. return 1;
  966. }
  967. }else if(dialogid >= ELockers_Base && dialogid < EHelp_Base) {
  968. if(lockersOnDialogResp(playerid, dialogid, response, listitem, inputtext)) {
  969. return 1;
  970. }
  971. }else if(dialogid >= EHelp_Base && dialogid < EGPS_Base) {
  972. if(helpOnDialogResp(playerid, dialogid, response, listitem, inputtext)) {
  973. return 1;
  974. }
  975. } else if(dialogid >= EGPS_Base && dialogid < EKeyBind_Base) {
  976. if(gpsOnDialogResp(playerid, dialogid, response, listitem, inputtext)) {
  977. return 1;
  978. }
  979. } else if(dialogid >= EKeyBind_Base && dialogid < EIllegalBusiness_Base) {
  980. if(keybindOnDialogResp(playerid, dialogid, response, listitem, inputtext)) {
  981. return 1;
  982. }
  983. } else if(dialogid >= EIllegalBusiness_Base && dialogid < ERacing_Base) {
  984. if(iBizOnDialogResp(playerid, dialogid, response, listitem, inputtext)) {
  985. return 1;
  986. }
  987. } else if(dialogid >= ERacing_Base && dialogid < EHouseFurniture_Base) {
  988. if(RacingOnDialogResp(playerid, dialogid, response, listitem, inputtext)) {
  989. return 1;
  990. }
  991. } else if(dialogid >= EHouseFurniture_Base && dialogid < EGunFactory_Base) {
  992. if(HouseFurnOnDialogResp(playerid, dialogid, response, listitem, inputtext)) {
  993. return 1;
  994. }
  995. } else if(dialogid >= EGunFactory_Base && dialogid < EWallTag_Base) {
  996. //if(GunFactoryOnDialogResp(playerid, dialogid, response, listitem, inputtext)) {
  997. //return 1;
  998. //}
  999. } else if(dialogid >= EWallTag_Base && dialogid < ECarToys_Base) {
  1000. if(WallTagOnDialogResp(playerid, dialogid, response, listitem, inputtext)) {
  1001. return 1;
  1002. }
  1003. } else if(dialogid >= ECarToys_Base && dialogid < ECheats_Base) {
  1004. if(CarToysOnDialogResp(playerid, dialogid, response, listitem, inputtext)) {
  1005. return 1;
  1006. }
  1007. } else if(dialogid >= ECheats_Base && dialogid < EDialogBase_End) {
  1008. if(CheatsOnDialogResp(playerid, dialogid, response, listitem, inputtext)) {
  1009. return 1;
  1010. }
  1011. }
  1012. //EWallTag_Base EDialogBase_End
  1013. return 0;
  1014. }
  1015.  
  1016. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  1017. {
  1018. new EAdminFlags:aflags = EAdminFlags:GetPVarInt(playerid, "AdminFlags");
  1019. if(aflags & EAdminFlags_BasicAdmin) {
  1020. if(!IsPlayerConnectEx(clickedplayerid)) {
  1021. return 0;
  1022. }
  1023. if(source == CLICK_SOURCE_SCOREBOARD && playerid != clickedplayerid) {
  1024. if(GetPVarType(playerid, "SpecX") == PLAYER_VARTYPE_NONE) {
  1025. new Float:X, Float:Y, Float:Z, interior, vw;
  1026. GetPlayerPos(clickedplayerid, X, Y, Z);
  1027. interior = GetPlayerInterior(clickedplayerid);
  1028. vw = GetPlayerVirtualWorld(clickedplayerid);
  1029. SetPlayerPos(playerid, X, Y, Z);
  1030. SetPlayerInterior(playerid, interior);
  1031. SetPlayerVirtualWorld(playerid, vw);
  1032. SendClientMessage(playerid, X11_ORANGE, "You have been teleported.");
  1033. } else {
  1034. format(query, sizeof(query), "/spectate player %d",clickedplayerid);
  1035. Command_ReProcess(playerid, query, false);
  1036. }
  1037. }
  1038. }
  1039. return 1;
  1040. }
  1041.  
  1042. public OnPlayerCommandReceived(playerid, cmdtext[]) {
  1043.  
  1044. if(isnull(cmdtext)) return 0;
  1045.  
  1046. loggingOnPlayerCommand(playerid, cmdtext);
  1047.  
  1048. if(lastCmdInfo[playerid][0]++ == 0) {
  1049. lastCmdInfo[playerid][1] = gettime();
  1050. }
  1051.  
  1052. if(lastCmdInfo[playerid][0] > MAX_CMDS_PER_SEC) {
  1053. if(gettime()-lastCmdInfo[playerid][1] > CMD_RESET_TIME) {
  1054. lastCmdInfo[playerid][1] = gettime();
  1055. lastCmdInfo[playerid][0] = 0;
  1056. } else if(gettime()-lastCmdInfo[playerid][1] > MAX_CMDS_TIME) {
  1057. format(dialogstr, sizeof(dialogstr), "AdmWarn: %s[%d] has been kicked for command spamming: %s",GetPlayerNameEx(playerid, ENameType_CharName),playerid, cmdtext);
  1058. ABroadcast(X11_YELLOW, dialogstr, EAdminFlags_BasicAdmin);
  1059. KickEx(playerid, "Command Spamming");
  1060. return 0;
  1061. }
  1062. }
  1063. if(isMuted(playerid) && ~EAdminFlags:GetPVarInt(playerid, "AdminFlags") & EAdminFlags_Unbannable) {
  1064. SendClientMessage(playerid, X11_TOMATO_2, "You are muted!");
  1065. return 0;
  1066. }
  1067. if(CheckText(cmdtext) == 0 && ~EAdminFlags:GetPVarInt(playerid, "AdminFlags") & EAdminFlags_ServerManager) {
  1068. format(dialogstr, sizeof(dialogstr), "AdmWarn: %s[%d] may have just tried to advertise: %s",GetPlayerNameEx(playerid, ENameType_CharName),playerid, cmdtext);
  1069. ABroadcast(X11_YELLOW, dialogstr, EAdminFlags_BasicAdmin);
  1070. return -1;
  1071. }
  1072. if(!IsPlayerNPC(playerid)) {
  1073. if(!IsPlayerConnectEx(playerid)) {
  1074. //they haven't logged in, so don't process the command
  1075. return -1;
  1076. }
  1077. }
  1078. if(adminOnCmdRecieved(playerid, cmdtext) == 0) {
  1079. SendClientMessage(playerid, X11_TOMATO_2, "You must be on admin duty to do this command.");
  1080. return 0;
  1081. }
  1082. return 1;
  1083. }
  1084. public OnPlayerCommandPerformed(playerid, cmdtext[], success)
  1085. {
  1086. if(!success) {
  1087. SendClientMessage(playerid, X11_RED3, "Unknown command, try /help");
  1088. }
  1089. return 1;
  1090. }
  1091.  
  1092. public OnPlayerPickUpDynamicPickup(playerid, pickupid) {
  1093. businessPickupPickup(playerid, pickupid);
  1094. jobsOnPickupPickup(playerid, pickupid);
  1095. VIPOnPickupPickup(playerid, pickupid);
  1096. RPOnPlayerPickupPickup(playerid, pickupid);
  1097. accessoriesOnPlayerPickupPickup(playerid, pickupid);
  1098. govOnPlayerPickupPickup(playerid, pickupid);
  1099. return 1;
  1100. }
  1101. public OnPlayerEditAttachedObject(playerid, response, index, modelid, boneid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ)
  1102. {
  1103. accessoriesOnPlayerEditObject(playerid, response, index, modelid, boneid, fOffsetX, fOffsetY, fOffsetZ, fRotX, fRotY, fRotZ, fScaleX, fScaleY, fScaleZ);
  1104. }
  1105. public OnQueryError( errorid, error[], callback[], query[], connectionHandle ) {
  1106. #if debug
  1107. new msg[256];
  1108. format(msg,sizeof(msg),"SQL ERROR: %d %s",errorid, error);
  1109. printf(msg);
  1110. ABroadcast(X11_RED, msg, EAdminFlags_All);
  1111. #endif
  1112. return 0;
  1113. }
  1114. allocMapID() {
  1115. for(new i=0;i<sizeof(UsedMapIDs);i++) {
  1116. if(UsedMapIDs[i] == 0) {
  1117. UsedMapIDs[i] = 1;
  1118. return i;
  1119. }
  1120. }
  1121. return -1;
  1122. }
  1123. freeMapID(index) {
  1124. if(index > sizeof(UsedMapIDs)) {
  1125. return -1;
  1126. }
  1127. UsedMapIDs[index] = 0;
  1128. return 0;
  1129. }
  1130. PreloadAnimLib(playerid, animlib[]) {
  1131. ApplyAnimation(playerid,animlib,"null",0.0,0,0,0,0,0,0);
  1132. return;
  1133. }
  1134. public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid) {
  1135. factionsOnPlayerGiveDamage(playerid, damagedid, amount, weaponid);
  1136. acOnPlayerGiveDamage(playerid, damagedid, amount, weaponid);
  1137. }
  1138. public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid) {
  1139. boxingOnPlayerTakeDamage(playerid, issuerid, amount, weaponid);
  1140. damageSystemOnPlayerTakeDamage(playerid, issuerid, amount, weaponid);
  1141. }
  1142. public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ) {
  1143. // accessoriesOnEditObject(playerid, playerobject, objectid, response, fX, fY, fZ, fRotX, fRotY, fRotZ);
  1144. return 1;
  1145. }
  1146. public OnPlayerSelectObject(playerid, type, objectid, modelid, Float:fX, Float:fY, Float:fZ) {
  1147. }
  1148. public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz) {
  1149. safesOnPlayerEditObject(playerid, objectid, response, x, y, z, rx, ry, rz);
  1150. houseFurnOnPlayerEditObject(playerid, objectid, response, x, y, z, rx, ry, rz);
  1151. leoOnPlayerEditObject(playerid, objectid, response, x, y, z, rx, ry, rz);
  1152. walltagsOnPlayerEditObject(playerid, objectid, response, x, y, z, rx, ry, rz);
  1153. carToysOnEditObject(playerid, objectid, response, x, y, z, rx, ry, rz);
  1154. Streamer_Update(playerid);
  1155. }
  1156. public OnPlayerSelectDynamicObject(playerid, objectid, modelid, Float:x, Float:y, Float:z) {
  1157. walltagsOnPlayerSelectObject(playerid, objectid, modelid, x, y, z);
  1158. safesOnPlayerSelectObject(playerid, objectid, modelid, x, y, z);
  1159. houseFurnOnPlayerSelectObject(playerid, objectid, modelid, x, y, z);
  1160. leoOnPlayerSelectObject(playerid, objectid, modelid, x, y, z);
  1161. cartoysOnPlayerSelectObject(playerid, objectid, modelid, x, y, z);
  1162. Streamer_Update(playerid);
  1163. }
  1164. public OnEnterExitModShop(playerid, enterexit, interiorid) {
  1165. #if dbg-callbacks
  1166. format(query, sizeof(query), "DBG: OnEnterExitModShop(%d,%d,%d)", playerid, enterexit, interiorid);
  1167. SendClientMessageToAll(X11_YELLOW, query);
  1168. #endif
  1169. return 1;
  1170. }
  1171. public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
  1172. {
  1173. #if dbg-callbacks
  1174. format(query, sizeof(query), "DBG: OnPlayerClickMap(%d,%f,%f,%f)", playerid, fX, fY, fZ);
  1175. SendClientMessageToAll(X11_YELLOW, query);
  1176. #endif
  1177. new EAdminFlags:aflags = EAdminFlags:GetPVarInt(playerid, "AdminFlags");
  1178. if(aflags & EAdminFlags_BasicAdmin) {
  1179. SetPlayerPosFindZ(playerid, fX, fY, fZ);
  1180. SetPlayerInterior(playerid, 0);
  1181. SetPlayerVirtualWorld(playerid, 0);
  1182. SendClientMessage(playerid, X11_TOMATO_2, "You have been teleported.");
  1183. }
  1184. return 1;
  1185. }
  1186. public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat) {
  1187. #if dbg-callbacks
  1188. format(query, sizeof(query), "DBG: OnUnoccupiedVehicleUpdate(%d,%d,%d)", vehicleid, playerid, passenger_seat);
  1189. SendClientMessageToAll(X11_YELLOW, query);
  1190. #endif
  1191. return 1;
  1192. }
  1193. public OnVehicleDamageStatusUpdate(vehicleid, playerid)
  1194. {
  1195. #if dbg-callbacks
  1196. format(query, sizeof(query), "DBG: OnVehicleDamageStatusUpdate(%d,%d)", vehicleid, playerid);
  1197. SendClientMessageToAll(X11_YELLOW, query);
  1198. #endif
  1199. return 1;
  1200. }
  1201. task SystemTimer[1000]() {
  1202. checkAJail();
  1203. checkAFK();
  1204. checkPayday();
  1205. JailTimer();
  1206. DiseaseTimer();
  1207. leoSysTimer();
  1208. CheckGates();
  1209. checkCarRadios();
  1210. checkJobsTime();
  1211. checkDrivingTestTimer();
  1212. vehicleMileAgeTimer();
  1213. updatePlayerMapLocations();
  1214. //checkCustomPrivateRadios();
  1215. }
  1216. task ChargeTimer[15000]() {
  1217. //used for things which msg the user
  1218. doTaxiCharges();
  1219. //destroyAllOldEvidence();
  1220. }
  1221. task SellTimer[21600000]() {
  1222. sellInactiveHouses();
  1223. sellInactiveBusinesses();
  1224. }
  1225. public OnPlayerEnterDynamicArea(playerid, areaid) {
  1226. //weatherOnPlayerEnterDynamicArea(playerid, areaid);
  1227. }
  1228. public OnPlayerLeaveDynamicArea(playerid, areaid) {
  1229. //weatherOnPlayerLeaveDynamicArea(playerid, areaid);
  1230. }
Add Comment
Please, Sign In to add comment