Advertisement
Guest User

Untitled

a guest
Jun 3rd, 2012
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 32.50 KB | None | 0 0
  1. //-----------------------------------------------------------------------------------|
  2. // [svAddons] |
  3. // |
  4. // |
  5. // - You may not remove these credits |
  6. // - You may not claim this script as yours |
  7. // |
  8. // |
  9. // |
  10. // [VERSION 1.0] Created by SuperViper |
  11. //-----------------------------------------------------------------------------------|
  12.  
  13. #include <a_samp>
  14.  
  15. #define SVCS_svAddons
  16.  
  17. #define VEHICLE_INFO_ENGINE (0)
  18. #define VEHICLE_INFO_LIGHTS (1)
  19. #define VEHICLE_INFO_ALARM (2)
  20. #define VEHICLE_INFO_DOORS (3)
  21. #define VEHICLE_INFO_BONNET (4)
  22. #define VEHICLE_INFO_BOOT (5)
  23. #define VEHICLE_INFO_OBJECTIVE (6)
  24.  
  25. #define OBJECT_EDITING_NONE (0)
  26. #define OBJECT_EDITING_NORMAL (1)
  27. #define OBJECT_EDITING_PLAYER (2)
  28. #define OBJECT_EDITING_ATTACHED (3)
  29.  
  30. #define DEATH_EFFECT_NONE (0)
  31. #define DEATH_EFFECT_REDGAS (1)
  32. #define DEATH_EFFECT_SMOKE (2)
  33. #define DEATH_EFFECT_EXPLODE (3)
  34. #define DEATH_EFFECT_MINEXPLODE (4)
  35. #define DEATH_EFFECT_FIRE (5)
  36.  
  37. #define WHITELIST_MODE_NONE (0)
  38. #define WHITELIST_MODE_ALLOWPLAYER (1)
  39. #define WHITELIST_MODE_SPECIFICIP (2)
  40. #define WHITELIST_MODE_IP_FIND (3)
  41.  
  42. forward OnVehicleCreate(vehicleid);
  43. forward svAddons_PausedDetection();
  44. forward svAddons_StopShaking(playerid);
  45. forward svAddons_DeleteEffect(objectid);
  46. forward svAd_StopAudioStreamForPlayerEx(playerid);
  47. forward OnPlayerPausedUpdate(playerid, bool: paused);
  48. forward OnPlayerWeaponUpdate(playerid, newgun, oldgun);
  49. forward OnReceiveClientMessage(playerid, color, message[]);
  50. forward OnRconLoginBlocked(playerid, ip[], password[], success);
  51. forward OnPlayerStreamedAudioChange(playerid, stopped, audiourl[]);
  52.  
  53. new svAddons_oldURL[MAX_PLAYERS][256], svAddons_PlayerAudioLoops[MAX_PLAYERS], svAddons_PlayerLoopTime[MAX_PLAYERS];
  54. new bool: svAddons_cVehiclePlate[MAX_VEHICLES], svAddons_VehiclePlate[MAX_VEHICLES][20];
  55. new svAddons_EditingObjectState[MAX_PLAYERS], svAddons_EditingObject[MAX_PLAYERS];
  56. new svAddons_PlayerTabbedUpdates[MAX_PLAYERS], bool: svAddons_PlayerTabbed[MAX_PLAYERS];
  57. new bool: svAddons_BeingCrashed[MAX_PLAYERS], svAddons_CrashObject[MAX_PLAYERS];
  58. new bool: svAddons_DisabledSprunk;
  59. new svAddons_Whitelist, svAddons_WhitelistIP[17], bool: svAddons_Whitelisted[MAX_PLAYERS];
  60. new svAddons_PlayerWeapon[MAX_PLAYERS];
  61. new svAddons_DeathEffect[MAX_PLAYERS];
  62. new svAddons_VehicleInterior[MAX_PLAYERS];
  63.  
  64. new svAddons_VehicleNames[][] =
  65. {
  66. "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster",
  67. "Stretch", "Manana", "Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam",
  68. "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BF Injection", "Hunter", "Premier", "Enforcer",
  69. "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach",
  70. "Cabbie", "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral", "Squalo", "Seasparrow",
  71. "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair",
  72. "Berkley's RC Van", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale", "Oceanic",
  73. "Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR-350", "Walton",
  74. "Regina", "Comet", "BMX", "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper", "Rancher",
  75. "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking", "Blista Compact", "Police Maverick",
  76. "Boxville", "Benson", "Mesa", "RC Goblin", "Hotring Racer A", "Hotring Racer B", "Bloodring Banger", "Rancher",
  77. "Super GT", "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster", "Stunt", "Tanker", "Roadtrain",
  78. "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra", "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck",
  79. "Fortune", "Cadrona", "SWAT Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan",
  80. "Blade", "Streak", "Freight", "Vortex", "Vincent", "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder",
  81. "Primo", "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite", "Windsor", "Monster", "Monster",
  82. "Uranus", "Jester", "Sultan", "Stratium", "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito",
  83. "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper", "Broadway", "Tornado", "AT-400", "DFT-30",
  84. "Huntley", "Stafford", "BF-400", "News Van", "Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club",
  85. "Freight Box", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "LSPD Car", "SFPD Car", "LVPD Car",
  86. "Police Rancher", "Picador", "Splashy", "Alpha", "Phoenix", "Glendale", "Sadler", "Luggage", "Luggage", "Stairs",
  87. "Boxville", "Tiller", "Utility Trailer"
  88. };
  89.  
  90. new svAddons_WeaponNames[][] =
  91. {
  92. "Fist", "Brass Knuckles", "Golf Club", "Nightstick", "Knife", "Baseball Bat", "Shovel", "Pool Cue", "Katana",
  93. "Chainsaw", "Double-ended Dildo", "Dildo", "Vibrator", "Silver Vibrator", "Flowers", "Cane", "Grenade", "Tear Gas",
  94. "Molotov Cocktail", "", "", "", "9mm", "Silenced 9mm", "Desert Eagle", "Shotgun", "Sawnoff Shotgun", "Combat Shotgun",
  95. "Uzi", "MP5", "AK-47", "M4", "Tec-9", "Country Rifle", "Sniper Rifle", "RPG", "HS Rocket", "Flamethrower", "Minigun",
  96. "Satchel Charge", "Detonator", "Spraycan", "Fire Extinguisher", "Camera", "Night Vision Goggles", "Thermal Goggles",
  97. "Parachute"
  98. };
  99.  
  100. #define IsPlayerSwimming IsPlayerInWater
  101.  
  102. stock IsPlayerInWater(playerid)
  103. {
  104. new animationIndex = GetPlayerAnimationIndex(playerid);
  105. return (animationIndex >= 1538 && animationIndex <= 1544 && animationIndex != 1542);
  106. }
  107.  
  108. stock SetPlayerPosEx(playerid, Float: posX, Float: posY, Float: posZ, interior = 0, virtualworld = 0, Float: angle = 0.0)
  109. {
  110. SetPlayerVirtualWorld(playerid, virtualworld);
  111. SetPlayerInterior(playerid, interior);
  112. SetPlayerPos(playerid, posX, posY, posZ);
  113. SetPlayerFacingAngle(playerid, angle);
  114. return 1;
  115. }
  116.  
  117. stock GetPlayersName(playerid)
  118. {
  119. new playersName[MAX_PLAYER_NAME];
  120. GetPlayerName(playerid, playersName, MAX_PLAYER_NAME);
  121. return playersName;
  122. }
  123.  
  124. stock GetPlayersNameEx(playerid)
  125. {
  126. new playersName[MAX_PLAYER_NAME];
  127. GetPlayerName(playerid, playersName, MAX_PLAYER_NAME);
  128. for(new i = 0; i < strlen(playersName); i++)
  129. {
  130. if(playersName[i] == '_')
  131. {
  132. playersName[i] = ' ';
  133. }
  134. }
  135. return playersName;
  136. }
  137.  
  138. stock CrashPlayer(playerid)
  139. {
  140. new Float: playersPos[3];
  141. svAddons_BeingCrashed[playerid] = true;
  142. GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  143. return svAddons_CrashObject[playerid] = CreatePlayerObject(playerid, 385, playersPos[0], playersPos[1], playersPos[2], 0.0, 0.0, 0.0);
  144. }
  145.  
  146. stock GetPlayersIP(playerid)
  147. {
  148. new playersIP[17];
  149. GetPlayerIp(playerid, playersIP, 17);
  150. return playersIP;
  151. }
  152.  
  153. stock ExplodePlayer(playerid)
  154. {
  155. new Float: playersPos[3];
  156. GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  157. return CreateExplosion(playersPos[0], playersPos[1], playersPos[2], 6, 10.0);
  158. }
  159.  
  160. stock ExplodeVehicle(vehicleid)
  161. {
  162. new Float: vehiclesPos[3];
  163. GetVehiclePos(vehicleid, vehiclesPos[0], vehiclesPos[1], vehiclesPos[2]);
  164. return CreateExplosion(vehiclesPos[0], vehiclesPos[1], vehiclesPos[2], 6, 10.0);
  165. }
  166.  
  167. stock SetPlayerMoney(playerid, amount)
  168. {
  169. ResetPlayerMoney(playerid);
  170. return GivePlayerMoney(playerid, amount);
  171. }
  172.  
  173. stock GivePlayerJetpack(playerid)
  174. {
  175. return SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USEJETPACK);
  176. }
  177.  
  178. stock IsPlayerSpawned(playerid)
  179. {
  180. return ((GetPlayerState(playerid) >= 1 && GetPlayerState(playerid) <= 6) || GetPlayerState(playerid) == 8) ? 1 : 0;
  181. }
  182.  
  183. stock GetVehicleInfo(vehicleid, infoType)
  184. {
  185. new vInfo[7];
  186. GetVehicleParamsEx(vehicleid, vInfo[0], vInfo[1], vInfo[2], vInfo[3], vInfo[4], vInfo[5], vInfo[6]);
  187. return (infoType <= 6) ? vInfo[infoType] : -1;
  188. }
  189.  
  190. stock SetVehicleInfo(vehicleid, infoType, value)
  191. {
  192. new vInfo[7];
  193. GetVehicleParamsEx(vehicleid, vInfo[0], vInfo[1], vInfo[2], vInfo[3], vInfo[4], vInfo[5], vInfo[6]);
  194. if(infoType <= 6) vInfo[infoType] = value;
  195. return (infoType <= 6) ? SetVehicleParamsEx(vehicleid, vInfo[0], vInfo[1], vInfo[2], vInfo[3], vInfo[4], vInfo[5], vInfo[6]) : -1;
  196. }
  197.  
  198. stock IsPlayerInVehicleFireMode(playerid)
  199. {
  200. return (GetPlayerCameraMode(playerid) == 55) ? 1 : 0;
  201. }
  202.  
  203. stock IsPlayerInSpray(playerid)
  204. {
  205. return (GetPlayerCameraMode(playerid) == 15) ? 1 : 0;
  206. }
  207.  
  208. stock GetVehicleDriver(vehicleid)
  209. {
  210. new vehicleDriver = INVALID_PLAYER_ID;
  211.  
  212. for(new i = 0; i < MAX_PLAYERS; i++)
  213. {
  214. if(IsPlayerConnected(i))
  215. {
  216. if(GetPlayerState(i) == PLAYER_STATE_DRIVER)
  217. {
  218. if(GetPlayerVehicleID(i) == vehicleid)
  219. {
  220. vehicleDriver = i;
  221. break;
  222. }
  223. }
  224. }
  225. }
  226.  
  227. return vehicleDriver;
  228. }
  229.  
  230. stock GetVehiclePassengers(vehicleid, &passengerOne = INVALID_PLAYER_ID, &passengerTwo = INVALID_PLAYER_ID, &passengerThree = INVALID_PLAYER_ID)
  231. {
  232. for(new i = 0; i < MAX_PLAYERS; i++)
  233. {
  234. if(IsPlayerConnected(i))
  235. {
  236. if(GetPlayerState(i) == PLAYER_STATE_PASSENGER)
  237. {
  238. if(GetPlayerVehicleID(i) == vehicleid)
  239. {
  240. switch(GetPlayerVehicleSeat(i))
  241. {
  242. case 1: passengerOne = i;
  243. case 2: passengerTwo = i;
  244. case 3: passengerThree = i;
  245. }
  246. }
  247. }
  248. }
  249. }
  250. }
  251.  
  252. stock GetVehicleNumberPlate(vehicleid)
  253. {
  254. return (svAddons_cVehiclePlate[vehicleid] == true) ? svAddons_VehiclePlate[vehicleid] : "XYZR 000";
  255. }
  256.  
  257. stock IsPlayerSpectating(playerid)
  258. {
  259. return (GetPlayerState(playerid) == PLAYER_STATE_SPECTATING) ? 1 : 0:
  260. }
  261.  
  262. stock GetPlayerObjectEditingState(playerid)
  263. {
  264. return svAddons_EditingObjectState[playerid];
  265. }
  266.  
  267. stock GetPlayerEditingObject(playerid)
  268. {
  269. return (svAddons_EditingObjectState[playerid] == OBJECT_EDITING_NONE) ? -1 : svAddons_EditingObject[playerid];
  270. }
  271.  
  272. stock RemovePlayerWeapon(playerid, weaponid)
  273. {
  274. return SetPlayerAmmo(playerid, weaponid, 0);
  275. }
  276.  
  277. stock ClosePlayerDialog(playerid)
  278. {
  279. return ShowPlayerDialog(playerid, -1, 1, " ", " ", " ", "");
  280. }
  281.  
  282. stock SetPlayerDeathEffect(playerid, deffid)
  283. {
  284. return svAddons_DeathEffect[playerid] = deffid;
  285. }
  286.  
  287. stock GetPlayerDeathEffect(playerid)
  288. {
  289. return svAddons_DeathEffect[playerid];
  290. }
  291.  
  292. stock DisableSprunkMachines()
  293. {
  294. return svAddons_DisabledSprunk = true;
  295. }
  296.  
  297. stock ChangeServerPassword(password[])
  298. {
  299. new rconCMD[50];
  300. format(rconCMD, sizeof(rconCMD), "password %s", password);
  301. return SendRconCommand(rconCMD);
  302. }
  303.  
  304. stock LoadFilterscript(scriptName[], bool: reload = false)
  305. {
  306. new rconCMD[50], sof = sizeof(rconCMD);
  307. format(rconCMD, sof, "loadfs %s", scriptName);
  308. if(reload == true)
  309. {
  310. format(rconCMD, sof, "re%s", rconCMD);
  311. }
  312. return SendRconCommand(rconCMD);
  313. }
  314.  
  315. stock UnloadFilterscript(scriptName[])
  316. {
  317. new rconCMD[50];
  318. format(rconCMD, sizeof(rconCMD), "unloadfs %s", scriptName);
  319. return SendRconCommand(rconCMD);
  320. }
  321.  
  322. stock ChangeServerName(serverName[])
  323. {
  324. new rconCMD[50];
  325. format(rconCMD, sizeof(rconCMD), "hostname %s", serverName);
  326. return SendRconCommand(rconCMD);
  327. }
  328.  
  329. stock SendServerRCONMessage(message[])
  330. {
  331. new rconCMD[120];
  332. format(rconCMD, sizeof(rconCMD), "say %s", message);
  333. return SendRconCommand(rconCMD);
  334. }
  335.  
  336. stock SendMessageToRCONAdmins(color, message[])
  337. {
  338. for(new i = 0; i < MAX_PLAYERS; i++)
  339. {
  340. if(IsPlayerAdmin(i))
  341. {
  342. SendClientMessage(i, color, message);
  343. }
  344. }
  345. }
  346.  
  347. stock ChangeServerWebsite(url[])
  348. {
  349. new rconCMD[128];
  350. format(rconCMD, sizeof(rconCMD), "weburl %s", url);
  351. return SendRconCommand(rconCMD);
  352. }
  353.  
  354. stock ChangeMapName(mName[])
  355. {
  356. new rconCMD[60];
  357. format(rconCMD, sizeof(rconCMD), "mapname %s", mName);
  358. return SendRconCommand(rconCMD);
  359. }
  360.  
  361. stock IsValidSkin(skinID)
  362. {
  363. return (skinID != 74) ? 1 : 0;
  364. }
  365.  
  366. stock ClearPlayersChat(playerid, bool: includeScrollingChat = false)
  367. {
  368. for(new i = 0; i < (includeScrollingChat == true) ? 100 : 25; i++)
  369. {
  370. SendClientMessage(playerid, -1, "");
  371. }
  372. }
  373.  
  374. stock ClearAllPlayersChat(bool: includeScrollingChat = false)
  375. {
  376. for(new i = 0; i < (includeScrollingChat == true) ? 100 : 25; i++)
  377. {
  378. SendClientMessageToAll(-1, "");
  379. }
  380. }
  381.  
  382. stock TeleportPlayerToPlayer(playerid, giveplayerid, Float: offsetX = 1.0, Float: offsetY = 0.0, Float: offsetZ = 0.0)
  383. {
  384. new Float: playersPos[3];
  385. GetPlayerPos(giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  386. return SetPlayerPos(playerid, playersPos[0] + offsetX, playersPos[1] + offsetY, playersPos[2] + offsetZ);
  387. }
  388.  
  389. stock StopVehicleMovement(vehicleid)
  390. {
  391. return SetVehicleVelocity(vehicleid, 0.0, 0.0, 0.0);
  392. }
  393.  
  394. stock GetVehicleSpeed(vehicleid)
  395. {
  396. new Float: vehiclesVelocity[3];
  397. GetVehicleVelocity(vehicleid, vehiclesVelocity[0], vehiclesVelocity[1], vehiclesVelocity[2]);
  398. return floatround(floatsqroot((vehiclesVelocity[0]*vehiclesVelocity[0]+vehiclesVelocity[1]*vehiclesVelocity[1])) * 100.0 * 1.6);
  399. }
  400.  
  401. stock GetVehicleModelName(modelID)
  402. {
  403. new vehiclesName[25];
  404. if(modelID >= 400 && modelID <= 612)
  405. {
  406. format(vehiclesName, sizeof(vehiclesName), "%s", svAddons_VehicleNames[modelID - 400]);
  407. }
  408. return vehiclesName;
  409. }
  410.  
  411. stock GetVehicleIDFromName(string[], bool: useFind = false)
  412. {
  413.  
  414. if(string[0] >= '0' && string[0] <= '9')
  415. {
  416. new id = strval(string);
  417. if(id >= 400 && id <= 612)
  418. {
  419. return id;
  420. }
  421. }
  422. else
  423. {
  424. if(useFind == false)
  425. {
  426. for(new i = 0, sof = sizeof(svAddons_VehicleNames); i < sof; i++)
  427. {
  428. if(!strcmp(svAddons_VehicleNames[i], string, true))
  429. {
  430. return i + 400;
  431. }
  432. }
  433. }
  434. else if(useFind == true)
  435. {
  436. for(new i = 0, sof = sizeof(svAddons_VehicleNames); i < sof; i++)
  437. {
  438. if(strfind(svAddons_VehicleNames[i], string, true) != -1)
  439. {
  440. return i + 400;
  441. }
  442. }
  443. }
  444. }
  445.  
  446. return 0;
  447. }
  448.  
  449. stock GetWeaponID(weaponName[], bool: ignoreCase = true, bool: useFind = false)
  450. {
  451. new weaponID = -1;
  452. if(useFind == false)
  453. {
  454. for(new i = 0, sof = sizeof(svAddons_WeaponNames); i < sof; i++)
  455. {
  456. if(!strcmp(svAddons_WeaponNames[i], weaponName, ignoreCase))
  457. {
  458. weaponID = i;
  459. break;
  460. }
  461. }
  462. }
  463. else if(useFind == true)
  464. {
  465. for(new i = 0, sof = sizeof(svAddons_WeaponNames); i < sof; i++)
  466. {
  467. if(strfind(svAddons_WeaponNames[i], weaponName, ignorecase) > -1)
  468. {
  469. weaponID = i;
  470. break;
  471. }
  472. }
  473. }
  474. return weaponID;
  475. }
  476.  
  477. stock GetPlayerIDFromIP(ip[], bool: useFind = false)
  478. {
  479. new playerid = INVALID_PLAYER_ID, playersIP[17];
  480. if(useFind == false)
  481. {
  482. for(new i = 0; i < MAX_PLAYERS; i++)
  483. {
  484. if(IsPlayerConnected(i))
  485. {
  486. GetPlayerIp(i, playersIP, 17);
  487. if(!strcmp(playersIP, ip))
  488. {
  489. playerid = i;
  490. break;
  491. }
  492. }
  493. }
  494. }
  495. else if(useFind == true)
  496. {
  497. for(new i = 0; i < MAX_PLAYERS; i++)
  498. {
  499. if(IsPlayerConnected(i))
  500. {
  501. GetPlayerIp(i, playersIP, 17);
  502. if(strfind(playersIP, ip) > -1)
  503. {
  504. playerid = i;
  505. break;
  506. }
  507. }
  508. }
  509. }
  510. return playerid;
  511. }
  512.  
  513. stock CountTotalPlayers()
  514. {
  515. new count;
  516. for(new i = 0; i < MAX_PLAYERS; i++)
  517. {
  518. if(IsPlayerConnected(i))
  519. {
  520. count++;
  521. }
  522. }
  523. return count;
  524. }
  525.  
  526. stock CountTotalRCONAdmins()
  527. {
  528. new count;
  529. for(new i = 0; i < MAX_PLAYERS; i++)
  530. {
  531. if(IsPlayerAdmin(i))
  532. {
  533. count++;
  534. }
  535. }
  536. return count;
  537. }
  538.  
  539. stock CountTotalNPCs()
  540. {
  541. new count;
  542. for(new i = 0; i < MAX_PLAYERS; i++)
  543. {
  544. if(IsPlayerNPC(i))
  545. {
  546. count++;
  547. }
  548. }
  549. return count;
  550. }
  551.  
  552. stock CountTotalPausedPlayers()
  553. {
  554. new count;
  555. for(new i = 0; i < MAX_PLAYERS; i++)
  556. {
  557. if(IsPlayerConnected(i))
  558. {
  559. if(svAddons_PlayerTabbed[i] == true)
  560. {
  561. count++;
  562. }
  563. }
  564. }
  565. return count;
  566. }
  567.  
  568. stock Float: GetVehiclesAngle(vehicleid)
  569. {
  570. new Float: vehiclesAngle;
  571. GetVehicleZAngle(vehicleid, vehiclesAngle);
  572. return vehiclesAngle;
  573. }
  574.  
  575. stock Float: GetVehiclesHealth(vehicleid)
  576. {
  577. new Float: vehiclesHealth;
  578. GetVehicleHealth(vehicleid, vehiclesHealth);
  579. return vehiclesHealth;
  580. }
  581.  
  582. stock Float: GetPlayersHealth(playerid)
  583. {
  584. new Float: playersHealth;
  585. GetPlayerHealth(playerid, playersHealth);
  586. return playersHealth;
  587. }
  588.  
  589. stock Float: GetPlayersArmour(playerid)
  590. {
  591. new Float: playersArmor;
  592. GetPlayerArmour(playerid, playersArmor);
  593. return playersArmor);
  594. }
  595.  
  596. stock EnableWhitelist(mode = WHITELIST_MODE_ALLOWPLAYER, ip[] = "")
  597. {
  598. if(mode == WHITELIST_MODE_NONE)
  599. {
  600. for(new i = 0; i < MAX_PLAYERS; i++)
  601. {
  602. svAddons_Whitelisted[i] = false;
  603. }
  604. }
  605. else if(mode == WHITELIST_MODE_SPECIFICIP)
  606. {
  607. format(svAddons_WhitelistIP, 17, ip);
  608. }
  609.  
  610. return svAddons_Whitelist = mode;
  611. }
  612.  
  613. stock GetWhitelistMode()
  614. {
  615. return svAddons_Whitelist;
  616. }
  617.  
  618. stock AddPlayerToWhitelist(playerid)
  619. {
  620. if(svAddons_Whitelist != WHITELIST_MODE_ALLOWPLAYER)
  621. {
  622. return printf("(svAddons) AddPlayerToWhitelist(playerid = %d) failed because whitelist mode is not WHITELIST_MODE_ALLOWPLAYER", playerid);
  623. }
  624.  
  625. return svAddons_Whitelisted[playerid] = true;
  626. }
  627.  
  628. stock IsPlayerWhitelisted(playerid)
  629. {
  630. return svAddons_Whitelisted[playerid];
  631. }
  632.  
  633. stock GetVehicleInterior(vehicleid)
  634. {
  635. return svAddons_VehicleInterior[vehicleid];
  636. }
  637.  
  638. stock IsPlayerBehindVehicle(playerid, vehicleid)
  639. {
  640. new Float: vehicleInfo[3];
  641. GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_WHEELSREAR, vehicleInfo[0], vehicleInfo[1], vehicleInfo[2]);
  642. return (IsPlayerInAnyVehicle(playerid)) ? 0 : IsPlayerInRangeOfPoint(playerid, 2.0, vehicleInfo[0], vehicleInfo[1], vehicleInfo[2];
  643. }
  644.  
  645. public svAddons_DeleteEffect(objectid)
  646. {
  647. return DestroyObject(objectid);
  648. }
  649.  
  650. stock ShakePlayerScreen(playerid, duration = 1250)
  651. {
  652. SetTimerEx("svAddons_StopShaking", duration, 0, "i", playerid);
  653. return SetPlayerDrunkLevel(playerid, 5000);
  654. }
  655.  
  656. public svAddons_StopShaking(playerid)
  657. {
  658. return SetPlayerDrunkLevel(playerid, 0);
  659. }
  660.  
  661. stock PlayAudioStreamForPlayerEx(playerid, url[], audioLen = -1, loop = -1)
  662. {
  663. if(audioLen > -1)
  664. {
  665. if(loop > -1)
  666. {
  667. svAddons_PlayerAudioLoops[playerid] = loop;
  668. svAddons_PlayerLoopTime[playerid] = audioLen;
  669. }
  670.  
  671. SetTimerEx("svAd_StopAudioStreamForPlayerEx", audioLen, 0, "i", playerid);
  672. }
  673.  
  674. return PlayAudioStreamForPlayer(playerid, url, 0.0, 0.0, 0.0, 0.0, 0);
  675. }
  676.  
  677. public svAd_StopAudioStreamForPlayerEx(playerid)
  678. {
  679. svAddons_PlayerAudioLoops[playerid]--;
  680.  
  681. if(!svAddons_PlayerAudioLoops[playerid])
  682. {
  683. svAddo_StopAudioStreamForPlayer(playerid);
  684. }
  685. else
  686. {
  687. PlayAudioStreamForPlayer(playerid, svAddons_oldURL[playerid]);
  688. SetTimerEx("svAd_StopAudioStreamForPlayerEx", svAddons_PlayerLoopTime[playerid], 0, "i", playerid);
  689. }
  690.  
  691. return 1;
  692. }
  693.  
  694. stock svAddo_PlayAudioStreamForPlayer(playerid, url[], Float: posX = 0.0, Float: posY = 0.0, Float: posZ = 0.0, Float: distance = 50.0, usepos = 0)
  695. {
  696. new string[256];
  697. format(svAddons_oldURL[playerid], 256, url);
  698. format(string, sizeof(string), "Audio stream: %s", url);
  699. //CallRemoteFunction("OnPlayerStreamedAudioChange", "dds", playerid, 0, url);
  700. CallRemoteFunction("OnReceiveClientMessage", "dds", playerid, 0x33AA33AA, string);
  701. return PlayAudioStreamForPlayer(playerid, url, posX, posY, posZ, distance, usepos);
  702. }
  703.  
  704. #if defined _ALS_PlayAudioStreamForPlayer
  705. #undef PlayAudioStreamForPlayer
  706. #else
  707. #define _ALS_PlayAudioStreamForPlayer
  708. #endif
  709. #define PlayAudioStreamForPlayer svAddo_PlayAudioStreamForPlayer
  710.  
  711. stock svAddo_StopAudioStreamForPlayer(playerid)
  712. {
  713. svAddons_PlayerAudioLoops[playerid] = 0;
  714. //CallRemoteFunction("OnPlayerStreamedAudioChange", "dds", playerid, 1, svAddons_oldURL[playerid]);
  715. return StopAudioStreamForPlayer(playerid);
  716. }
  717.  
  718. #if defined _ALS_StopAudioStreamForPlayer
  719. #undef StopAudioStreamForPlayer
  720. #else
  721. #define _ALS_StopAudioStreamForPlayer
  722. #endif
  723. #define StopAudioStreamForPlayer svAddo_StopAudioStreamForPlayer
  724.  
  725. stock svAddon_SetPlayerSpecialAction(playerid, actionid)
  726. {
  727. if(actionid == SPECIAL_ACTION_USECELLPHONE)
  728. {
  729. SetPlayerAttachedObject(playerid, 9, 330, 6);
  730. }
  731. else if(actionid == SPECIAL_ACTION_STOPUSECELLPHONE)
  732. {
  733. RemovePlayerAttachedObject(playerid, 9);
  734. }
  735.  
  736. return SetPlayerSpecialAction(playerid, actionid);
  737. }
  738.  
  739. #if defined _ALS_SetPlayerSpecialAction
  740. #undef SetPlayerSpecialAction
  741. #else
  742. #define _ALS_SetPlayerSpecialAction
  743. #endif
  744. #define SetPlayerSpecialAction svAddon_SetPlayerSpecialAction
  745.  
  746. stock svAddons_CreateVehicle(vehicletype, Float: x, Float: y, Float: z, Float: rotation, color1, color2, respawn_delay)
  747. {
  748. new vehicleid = CreateVehicle(vehicletype, x, y, z, rotation, color1, color2, respawn_delay);
  749. CallRemoteFunction("OnVehicleCreate", "d", vehicleid);
  750. svAddons_cVehiclePlate[vehicleid] = false;
  751. svAddons_VehicleInterior[vehicleid] = 0;
  752. return vehicleid;
  753. }
  754.  
  755. #if defined _ALS_CreateVehicle
  756. #undef CreateVehicle
  757. #else
  758. #define _ALS_CreateVehicle
  759. #endif
  760. #define CreateVehicle svAddons_CreateVehicle
  761.  
  762. stock svAddons_AddStaticVehicle(modelid, Float: spawn_x, Float: spawn_y, Float: spawn_z, Float: z_angle, color1, color2)
  763. {
  764. new vehicleid = AddStaticVehicle(modelid, spawn_x, spawn_y, spawn_z, z_angle, color1, color2);
  765. CallRemoteFunction("OnVehicleCreate", "d", vehicleid);
  766. svAddons_cVehiclePlate[vehicleid] = false;
  767. svAddons_VehicleInterior[vehicleid] = 0;
  768. return vehicleid;
  769. }
  770.  
  771. #if defined _ALS_AddStaticVehicle
  772. #undef AddStaticVehicle
  773. #else
  774. #define _ALS_AddStaticVehicle
  775. #endif
  776. #define AddStaticVehicle svAddons_AddStaticVehicle
  777.  
  778. stock svAddons_AddStaticVehicleEx(modelid, Float: spawn_x, Float: spawn_y, Float: spawn_z, Float: z_angle, color1, color2, respawn_delay)
  779. {
  780. new vehicleid = AddStaticVehicleEx(modelid, spawn_x, spawn_y, spawn_z, z_angle, color1, color2, respawn_delay);
  781. CallRemoteFunction("OnVehicleCreate", "d", vehicleid);
  782. svAddons_cVehiclePlate[vehicleid] = false;
  783. svAddons_VehicleInterior[vehicleid] = 0;
  784. return vehicleid;
  785. }
  786.  
  787. #if defined _ALS_AddStaticVehicleEx
  788. #undef AddStaticVehicleEx
  789. #else
  790. #define _ALS_AddStaticVehicleEx
  791. #endif
  792. #define AddStaticVehicleEx svAddons_AddStaticVehicleEx
  793.  
  794. stock svAddon_SetVehicleNumberPlate(vehicleid, numberplate[])
  795. {
  796. svAddons_cVehiclePlate[vehicleid] = true;
  797. format(svAddons_VehiclePlate[vehicleid], 20, numberplate);
  798. CallRemoteFunction("OnLicensePlateChange", "ds", vehicleid, numberplate);
  799. return SetVehicleNumberPlate(vehicleid, numberplate);
  800. }
  801.  
  802. #if defined _ALS_SetVehicleNumberPlate
  803. #undef SetVehicleNumberPlate
  804. #else
  805. #define _ALS_SetVehicleNumberPlate
  806. #endif
  807. #define SetVehicleNumberPlate svAddon_SetVehicleNumberPlate
  808.  
  809. stock svAddons_EditObject(playerid, objectid)
  810. {
  811. svAddons_EditingObject[playerid] = objectid;
  812. svAddons_EditingObjectState[playerid] = OBJECT_EDITING_NORMAL;
  813. return EditObject(playerid, objectid);
  814. }
  815.  
  816. #if defined _ALS_EditObject
  817. #undef EditObject
  818. #else
  819. #define _ALS_EditObject
  820. #endif
  821. #define EditObject svAddons_EditObject
  822.  
  823. stock svAddons_EditPlayerObject(playerid, objectid)
  824. {
  825. svAddons_EditingObject[playerid] = objectid;
  826. svAddons_EditingObjectState[playerid] = OBJECT_EDITING_PLAYER;
  827. return EditPlayerObject(playerid, objectid);
  828. }
  829.  
  830. #if defined _ALS_EditPlayerObject
  831. #undef EditPlayerObject
  832. #else
  833. #define _ALS_EditPlayerObject
  834. #endif
  835. #define EditPlayerObject svAddons_EditPlayerObject
  836.  
  837. stock svAddons_EditAttachedObject(playerid, index)
  838. {
  839. svAddons_EditingObjectState[playerid] = OBJECT_EDITING_ATTACHED;
  840. svAddons_EditingObject[playerid] = index;
  841. return EditAttachedObject(playerid, index);
  842. }
  843.  
  844. #if defined _ALS_EditAttachedObject
  845. #undef EditAttachedObject
  846. #else
  847. #define _ALS_EditAttachedObject
  848. #endif
  849. #define EditAttachedObject svAddons_EditAttachedObject
  850.  
  851. stock svAddons_CancelEdit(playerid)
  852. {
  853. svAddons_EditingObjectState[playerid] = OBJECT_EDITING_NONE;
  854. return CancelEdit(playerid);
  855. }
  856.  
  857. #if defined _ALS_CancelEdit
  858. #undef CancelEdit
  859. #else
  860. #define _ALS_CancelEdit
  861. #endif
  862. #define CancelEdit svAddons_CancelEdit
  863.  
  864. stock svAddons_SendClientMessage(playerid, color, message[])
  865. {
  866. CallRemoteFunction("OnReceiveClientMessage", "dds", playerid, color, message);
  867. return SendClientMessage(playerid, color, message);
  868. }
  869.  
  870. #if defined _ALS_SendClientMessage
  871. #undef SendClientMessage
  872. #else
  873. #define _ALS_SendClientMessage
  874. #endif
  875. #define SendClientMessage svAddons_SendClientMessage
  876.  
  877. stock svAddons_LinkVehicleToInterior(vehicleid, interiorid)
  878. {
  879. svAddons_VehicleInterior[vehicleid] = interiorid;
  880. return LinkVehicleToInterior(vehicleid, interiorid);
  881. }
  882.  
  883. #if defined _ALS_LinkVehicleToInterior
  884. #undef LinkVehicleToInterior
  885. #else
  886. #define _ALS_LinkVehicleToInterior
  887. #endif
  888. #define LinkVehicleToInterior svAddons_LinkVehicleToInterior
  889.  
  890. forward svAddons_OnPlayerConnect(playerid);
  891. public OnPlayerConnect(playerid)
  892. {
  893. svAddons_PlayerAudioLoops[playerid] = 0;
  894. svAddons_EditingObjectState[playerid] = OBJECT_EDITING_NONE;
  895. svAddons_PlayerTabbedUpdates[playerid] = 0;
  896. svAddons_PlayerTabbed[playerid] = false;
  897. svAddons_BeingCrashed[playerid] = false;
  898. svAddons_Whitelisted[playerid] = false;
  899. svAddons_PlayerWeapon[playerid] = 0;
  900.  
  901. if(svAddons_DisabledSprunk == true)
  902. {
  903. RemoveBuildingForPlayer(playerid, 955, 0, 0, 0, 3000);
  904. RemoveBuildingForPlayer(playerid, 956, 0, 0, 0, 3000);
  905. RemoveBuildingForPlayer(playerid, 1209, 0, 0, 0, 3000);
  906. RemoveBuildingForPlayer(playerid, 1302, 0, 0, 0, 3000);
  907. RemoveBuildingForPlayer(playerid, 1775, 0, 0, 0, 3000);
  908. RemoveBuildingForPlayer(playerid, 1776, 0, 0, 0, 3000);
  909. }
  910.  
  911. return CallRemoteFunction("svAddons_OnPlayerConnect", "d", playerid);
  912. }
  913.  
  914. #if defined _ALS_OnPlayerConnect
  915. #undef OnPlayerConnect
  916. #else
  917. #define _ALS_OnPlayerConnect
  918. #endif
  919. #define OnPlayerConnect svAddons_OnPlayerConnect
  920.  
  921. forward svAddons_OnPlayerDisconnect(playerid, reason);
  922. public OnPlayerDisconnect(playerid, reason)
  923. {
  924. if(svAddons_BeingCrashed[playerid] == true)
  925. {
  926. DestroyPlayerObject(playerid, svAddons_CrashObject[playerid]);
  927. }
  928.  
  929. return CallRemoteFunction("svAddons_OnPlayerDisconnect", "dd", playerid, reason);
  930. }
  931.  
  932. #if defined _ALS_OnPlayerDisconnect
  933. #undef OnPlayerDisconnect
  934. #else
  935. #define _ALS_OnPlayerDisconnect
  936. #endif
  937. #define OnPlayerDisconnect svAddons_OnPlayerDisconnect
  938.  
  939. forward svAddons_OnPlayerUpdate(playerid);
  940. public OnPlayerUpdate(playerid)
  941. {
  942. svAddons_PlayerTabbedUpdates[playerid] = 0;
  943.  
  944. if(svAddons_PlayerTabbed[playerid] == true)
  945. {
  946. svAddons_PlayerTabbed[playerid] = false;
  947. CallRemoteFunction("OnPlayerPausedUpdate", "dd", playerid, svAddons_PlayerTabbed[playerid]);
  948. }
  949.  
  950. new playersWeapon = GetPlayerWeapon(playerid);
  951. if(playersWeapon != svAddons_PlayerWeapon[playerid])
  952. {
  953. CallRemoteFunction("OnPlayerWeaponUpdate", "ddd", playerid, playersWeapon, svAddons_PlayerWeapon[playerid]);
  954. svAddons_PlayerWeapon[playerid] = playersWeapon;
  955. }
  956.  
  957. return CallRemoteFunction("svAddons_OnPlayerUpdate", "d", playerid);
  958. }
  959.  
  960. #if defined _ALS_OnPlayerUpdate
  961. #undef OnPlayerUpdate
  962. #else
  963. #define _ALS_OnPlayerUpdate
  964. #endif
  965. #define OnPlayerUpdate svAddons_OnPlayerUpdate
  966.  
  967. forward svAddons_OnPlayerDeath(playerid, killerid, reason);
  968. public OnPlayerDeath(playerid, killerid, reason)
  969. {
  970. switch(svAddons_DeathEffect[playerid])
  971. {
  972. case 1:
  973. {
  974. new objectid = CreateObject(18668, 0.0, 0.0, -10.0, 0.0, 0.0, 0.0);
  975. AttachObjectToPlayer(objectid, playerid, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  976. SetTimerEx("svAddons_DeleteEffect", 2500, 0, "i", objectid);
  977. }
  978.  
  979. case 2:
  980. {
  981. new objectid = CreateObject(18731, 0.0, 0.0, -10.0, 0.0, 0.0, 0.0);
  982. AttachObjectToPlayer(objectid, playerid, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  983. SetTimerEx("svAddons_DeleteEffect", 2500, 0, "i", objectid);
  984. }
  985.  
  986. case 3:
  987. {
  988. new Float: playersPos[3];
  989. GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  990. CreateExplosion(playersPos[0], playersPos[1], playersPos[2], 6, 10.0);
  991. }
  992.  
  993. case 4:
  994. {
  995. new Float: playersPos[3];
  996. GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  997. CreateExplosion(playersPos[0], playersPos[1], playersPos[2] - 4.5, 6, 10.0);
  998. }
  999.  
  1000. case 5:
  1001. {
  1002. new objectid = CreateObject(18688, 0.0, 0.0, -10.0, 0.0, 0.0, 0.0);
  1003. AttachObjectToPlayer(objectid, playerid, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  1004. SetTimerEx("svAddons_DeleteEffect", 2500, 0, "i", objectid);
  1005. }
  1006. }
  1007. return CallRemoteFunction("svAddons_OnPlayerDeath", "ddd", playerid, killerid, reason);
  1008. }
  1009.  
  1010. #if defined _ALS_OnPlayerDeath
  1011. #undef OnPlayerDeath
  1012. #else
  1013. #define _ALS_OnPlayerDeath
  1014. #endif
  1015. #define OnPlayerDeath svAddons_OnPlayerDeath
  1016.  
  1017.  
  1018. forward svAddons_OnFilterScriptInit();
  1019. public OnFilterScriptInit()
  1020. {
  1021. SetTimer("svAddons_PausedDetection", 2250, 1);
  1022. return CallRemoteFunction("svAddons_OnFilterScriptInit", "");
  1023. }
  1024.  
  1025. #if defined _ALS_OnFilterScriptInit
  1026. #undef OnFilterScriptInit
  1027. #else
  1028. #define _ALS_OnFilterScriptInit
  1029. #endif
  1030. #define OnFilterScriptInit svAddons_OnFilterScriptInit
  1031.  
  1032. forward svAddons_OnGameModeInit();
  1033. public OnGameModeInit()
  1034. {
  1035. SetTimer("svAddons_PausedDetection", 2250, 1);
  1036. return CallRemoteFunction("svAddons_OnGameModeInit", "");
  1037. }
  1038.  
  1039. #if defined _ALS_OnGameModeInit
  1040. #undef OnGameModeInit
  1041. #else
  1042. #define _ALS_OnGameModeInit
  1043. #endif
  1044. #define OnGameModeInit svAddons_OnGameModeInit
  1045.  
  1046. forward svAddons_OnRconLoginAttempt(ip[], password[], success);
  1047. public OnRconLoginAttempt(ip[], password[], success)
  1048. {
  1049. if(svAddons_Whitelist != WHITELIST_MODE_NONE)
  1050. {
  1051. new playerid, playersIP[17];
  1052. for(new i = 0; i < MAX_PLAYERS; i++)
  1053. {
  1054. if(IsPlayerConnected(i))
  1055. {
  1056. GetPlayerIp(i, playersIP, 17);
  1057. if(!strcmp(playersIP, ip))
  1058. {
  1059. playerid = i;
  1060. break;
  1061. }
  1062. }
  1063. }
  1064.  
  1065. switch(svAddons_Whitelist)
  1066. {
  1067. case WHITELIST_MODE_ALLOWPLAYER:
  1068. {
  1069. if(svAddons_Whitelisted[playerid] == false)
  1070. {
  1071. CallRemoteFunction("OnRconLoginBlocked", "dssd", playerid, ip, password, success);
  1072. }
  1073. }
  1074.  
  1075. case WHITELIST_MODE_SPECIFICIP:
  1076. {
  1077. if(strcmp(ip, svAddons_WhitelistIP))
  1078. {
  1079. CallRemoteFunction("OnRconLoginBlocked", "dssd", playerid, ip, password, success);
  1080. }
  1081. }
  1082.  
  1083. case WHITELIST_MODE_IP_FIND:
  1084. {
  1085. if(strfind(ip, svAddons_WhitelistIP) == -1)
  1086. {
  1087. CallRemoteFunction("OnRconLoginBlocked", "dssd", playerid, ip, password, success);
  1088. }
  1089. }
  1090. }
  1091. }
  1092.  
  1093. return CallRemoteFunction("svAddons_OnRconLoginAttempt", "ssd", ip, password, success);
  1094. }
  1095.  
  1096. #if defined _ALS_OnRconLoginAttempt
  1097. #undef OnRconLoginAttempt
  1098. #else
  1099. #define _ALS_OnRconLoginAttempt
  1100. #endif
  1101. #define OnRconLoginAttempt svAddons_OnRconLoginAttempt
  1102.  
  1103. forward svAddons_OnVehicleSpawn(vehicleid);
  1104. public OnVehicleSpawn(vehicleid)
  1105. {
  1106. svAddons_VehicleInterior[vehicleid] = 0;
  1107. return CallRemoteFunction("svAddons_OnVehicleSpawn", "d", vehicleid);
  1108. }
  1109.  
  1110. #if defined _ALS_OnVehicleSpawn
  1111. #undef OnVehicleSpawn
  1112. #else
  1113. #define _ALS_OnVehicleSpawn
  1114. #endif
  1115. #define OnVehicleSpawn svAddons_OnVehicleSpawn
  1116.  
  1117. public svAddons_PausedDetection()
  1118. {
  1119. for(new i = 0; i < MAX_PLAYERS; i++)
  1120. {
  1121. if(svAddons_PlayerTabbed[i] == false)
  1122. {
  1123. if(IsPlayerConnected(i))
  1124. {
  1125. #if defined SVCS_svCheats
  1126. if(svCheats_ReportedTabbed[i] == true)
  1127. {
  1128. svAddons_PlayerTabbed[i] = true;
  1129. CallRemoteFunction("OnPlayerPausedUpdate", "dd", i, svAddons_PlayerTabbed[i]);
  1130. break;
  1131. }
  1132. #else
  1133. svAddons_PlayerTabbedUpdates[i]++;
  1134. if(svAddons_PlayerTabbedUpdates[i] > 1)
  1135. {
  1136. svAddons_PlayerTabbedUpdates[i] = 0;
  1137. svAddons_PlayerTabbed[i] = true;
  1138. CallRemoteFunction("OnPlayerPausedUpdate", "dd", i, svAddons_PlayerTabbed[i]);
  1139. }
  1140. #endif
  1141. }
  1142. }
  1143. }
  1144. return 1;
  1145. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement