Advertisement
CreativityLacker

clFunctions Version 2

Oct 16th, 2012
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 16.57 KB | None | 0 0
  1. #include <a_samp>
  2. #include <sscanf2>
  3.  
  4. /*
  5. native GetPlayersName(playerid)
  6. native SetPlayerPositionEx(playerid, Float:x, Float:y, Float:z, Float:angle, vworld, interior)
  7. native TeleportPlayerToPlayer(playerid, targetid)
  8. native TeleportCarToPlayer(vehicleid, playerid)
  9. native TeleportPlayerToCar(playerid, vehicleid)
  10. native GetPlayerIPAddress(playerid)
  11. native HealPlayer(playerid)
  12. native KillPlayer(playerid)
  13. native GivePlayerHealth(playerid, Float:health)
  14. native TakePlayerHealth(playerid, Float:health)
  15. native BankruptPlayer(playerid)
  16. native SetPlayerCash(playerid)
  17. native GivePlayerScore(playerid, score)
  18. native TakePlayerScore(playerid, score)
  19. native SlapPlayer(playerid)
  20. native IsPlayerSwimming(playerid)
  21. native IsPlayerInModdingShop(playerid)
  22. native ExplodePlayer(playerid)
  23. native IsPlayerAiming(playerid)
  24. native GetWeaponNameByID(weaponid)
  25. native GetWeaponSlotByID(weaponid)
  26. native GetPlayerArmedWeaponAmmo(playerid)
  27. native GetVehicleNameByModel(model)
  28. native GetWeatherName(weatherid)
  29. native LoadObjectsFromFile(const filename[])
  30. native LoadVehiclesFromFile(const filename[])
  31. native CreateLogEntry(log[], text[])
  32. native HealAll()
  33. native ArmourAll()
  34. native FreezeAll()
  35. native DisarmAll()
  36. native GiveWeaponToAll(weaponid, ammo)
  37. native GiveCashToAll(cash)
  38. native GiveScoreToAll(score)
  39. native UnfreezeAll()
  40. native GetOnlinePlayersCount()
  41. */
  42.  
  43. new VehicleNames[212][] = {
  44.         {"Landstalker"},
  45.         {"Bravura"},
  46.         {"Buffalo"},
  47.         {"Linerunner"},
  48.         {"Perrenial"},
  49.         {"Sentinel"},
  50.         {"Dumper"},
  51.         {"Firetruck"},
  52.         {"Trashmaster"},
  53.         {"Stretch"},
  54.         {"Manana"},
  55.         {"Infernus"},
  56.         {"Voodoo"},
  57.         {"Pony"},
  58.         {"Mule"},
  59.         {"Cheetah"},
  60.         {"Ambulance"},
  61.         {"Leviathan"},
  62.         {"Moonbeam"},
  63.         {"Esperanto"},
  64.         {"Taxi"},
  65.         {"Washington"},
  66.         {"Bobcat"},
  67.         {"Mr Whoopee"},
  68.         {"BF Injection"},
  69.         {"Hunter"},
  70.         {"Premier"},
  71.         {"Enforcer"},
  72.         {"Securicar"},
  73.         {"Banshee"},
  74.         {"Predator"},
  75.         {"Bus"},
  76.         {"Rhino"},
  77.         {"Barracks"},
  78.         {"Hotknife"},
  79.         {"Trailer 1"},
  80.         {"Previon"},
  81.         {"Coach"},
  82.         {"Cabbie"},
  83.         {"Stallion"},
  84.         {"Rumpo"},
  85.         {"RC Bandit"},
  86.         {"Romero"},
  87.         {"Packer"},
  88.         {"Monster"},
  89.         {"Admiral"},
  90.         {"Squalo"},
  91.         {"Seasparrow"},
  92.         {"Pizzaboy"},
  93.         {"Tram"},
  94.         {"Trailer 2"},
  95.         {"Turismo"},
  96.         {"Speeder"},
  97.         {"Reefer"},
  98.         {"Tropic"},
  99.         {"Flatbed"},
  100.         {"Yankee"},
  101.         {"Caddy"},
  102.         {"Solair"},
  103.         {"Berkley's RC Van"},
  104.         {"Skimmer"},
  105.         {"PCJ-600"},
  106.         {"Faggio"},
  107.         {"Freeway"},
  108.         {"RC Baron"},
  109.         {"RC Raider"},
  110.         {"Glendale"},
  111.         {"Oceanic"},
  112.         {"Sanchez"},
  113.         {"Sparrow"},
  114.         {"Patriot"},
  115.         {"Quad"},
  116.         {"Coastguard"},
  117.         {"Dinghy"},
  118.         {"Hermes"},
  119.         {"Sabre"},
  120.         {"Rustler"},
  121.         {"ZR-350"},
  122.         {"Walton"},
  123.         {"Regina"},
  124.         {"Comet"},
  125.         {"BMX"},
  126.         {"Burrito"},
  127.         {"Camper"},
  128.         {"Marquis"},
  129.         {"Baggage"},
  130.         {"Dozer"},
  131.         {"Maverick"},
  132.         {"News Chopper"},
  133.         {"Rancher"},
  134.         {"FBI Rancher"},
  135.         {"Virgo"},
  136.         {"Greenwood"},
  137.         {"Jetmax"},
  138.         {"Hotring"},
  139.         {"Sandking"},
  140.         {"Blista Compact"},
  141.         {"Police Maverick"},
  142.         {"Boxville"},
  143.         {"Benson"},
  144.         {"Mesa"},
  145.         {"RC Goblin"},
  146.         {"Hotring Racer A"},
  147.         {"Hotring Racer B"},
  148.         {"Bloodring Banger"},
  149.         {"Rancher"},
  150.         {"Super GT"},
  151.         {"Elegant"},
  152.         {"Journey"},
  153.         {"Bike"},
  154.         {"Mountain Bike"},
  155.         {"Beagle"},
  156.         {"Cropdust"},
  157.         {"Stunt"},
  158.         {"Tanker"},
  159.         {"Roadtrain"},
  160.         {"Nebula"},
  161.         {"Majestic"},
  162.         {"Buccaneer"},
  163.         {"Shamal"},
  164.         {"Hydra"},
  165.         {"FCR-900"},
  166.         {"NRG-500"},
  167.         {"HPV1000"},
  168.         {"Cement Truck"},
  169.         {"Tow Truck"},
  170.         {"Fortune"},
  171.         {"Cadrona"},
  172.         {"FBI Truck"},
  173.         {"Willard"},
  174.         {"Forklift"},
  175.         {"Tractor"},
  176.         {"Combine"},
  177.         {"Feltzer"},
  178.         {"Remington"},
  179.         {"Slamvan"},
  180.         {"Blade"},
  181.         {"Freight"},
  182.         {"Streak"},
  183.         {"Vortex"},
  184.         {"Vincent"},
  185.         {"Bullet"},
  186.         {"Clover"},
  187.         {"Sadler"},
  188.         {"Firetruck LA"},
  189.         {"Hustler"},
  190.         {"Intruder"},
  191.         {"Primo"},
  192.         {"Cargobob"},
  193.         {"Tampa"},
  194.         {"Sunrise"},
  195.         {"Merit"},
  196.         {"Utility"},
  197.         {"Nevada"},
  198.         {"Yosemite"},
  199.         {"Windsor"},
  200.         {"Monster A"},
  201.         {"Monster B"},
  202.         {"Uranus"},
  203.         {"Jester"},
  204.         {"Sultan"},
  205.         {"Stratum"},
  206.         {"Elegy"},
  207.         {"Raindance"},
  208.         {"RC Tiger"},
  209.         {"Flash"},
  210.         {"Tahoma"},
  211.         {"Savanna"},
  212.         {"Bandito"},
  213.         {"Freight Flat"},
  214.         {"Streak Carriage"},
  215.         {"Kart"},
  216.         {"Mower"},
  217.         {"Duneride"},
  218.         {"Sweeper"},
  219.         {"Broadway"},
  220.         {"Tornado"},
  221.         {"AT-400"},
  222.         {"DFT-30"},
  223.         {"Huntley"},
  224.         {"Stafford"},
  225.         {"BF-400"},
  226.         {"Newsvan"},
  227.         {"Tug"},
  228.         {"Trailer 3"},
  229.         {"Emperor"},
  230.         {"Wayfarer"},
  231.         {"Euros"},
  232.         {"Hotdog"},
  233.         {"Club"},
  234.         {"Freight Carriage"},
  235.         {"Trailer 3"},
  236.         {"Andromada"},
  237.         {"Dodo"},
  238.         {"RC Cam"},
  239.         {"Launch"},
  240.         {"Police Car (LSPD)"},
  241.         {"Police Car (SFPD)"},
  242.         {"Police Car (LVPD)"},
  243.         {"Police Ranger"},
  244.         {"Picador"},
  245.         {"S.W.A.T. Van"},
  246.         {"Alpha"},
  247.         {"Phoenix"},
  248.         {"Glendale"},
  249.         {"Sadler"},
  250.         {"Luggage Trailer A"},
  251.         {"Luggage Trailer B"},
  252.         {"Stair Trailer"},
  253.         {"Boxville"},
  254.         {"Farm Plow"},
  255.         {"Utility Trailer"}
  256. };
  257.  
  258.  
  259.  
  260. stock GetPlayersName(playerid)
  261. {
  262.     new name[MAX_PLAYER_NAME];
  263.     GetPlayerName(playerid, name, sizeof(name) );
  264.     return name;
  265. }
  266.  
  267. stock SetPlayerPositionEx(playerid, Float:x, Float:y, Float:z, Float:angle, vworld, interior)
  268. {
  269.     SetPlayerPos(playerid, x, y, z);
  270.     SetPlayerFacingAngle(playerid, angle);
  271.     SetPlayerVirtualWorld(playerid, vworld);
  272.     SetPlayerInterior(playerid, interior);
  273.     return 1;
  274. }
  275.  
  276. stock TeleportPlayerToPlayer(playerid, targetid)
  277. {
  278.     new Float:Pos[3];
  279.     if(playerid == INVALID_PLAYER_ID || targetid == INVALID_PLAYER_ID) return 0;
  280.     else
  281.     {
  282.         new Float:Pos[3];
  283.         GetPlayerPos(targetid, Pos[0], Pos[1], Pos[2]);
  284.         SetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  285.         SetPlayerInterior(playerid, GetPlayerInterior(targetid) );
  286.         SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(targetid) );
  287.     }
  288.     return 1;
  289. }
  290. stock TeleportCarToPlayer(vehicleid, playerid)
  291. {
  292.     if(vehicleid == INVALID_VEHICLE_ID || playerid == INVALID_PLAYER_ID) return 0;
  293.     else
  294.     {
  295.         new Float:PlayerPos[3];
  296.         GetPlayerPos(playerid, PlayerPos[0], PlayerPos[1], PlayerPos[2]);
  297.         SetVehiclePos(vehicleid, PlayerPos[0], PlayerPos[1], PlayerPos[2]);
  298.     }
  299.     return 1;
  300. }
  301.  
  302. stock TeleportPlayerToCar(playerid, vehicleid)
  303. {
  304.     if(vehicleid == INVALID_VEHICLE_ID || playerid == INVALID_PLAYER_ID) return 0;
  305.     else
  306.     {
  307.         new Float:CarPos[3];
  308.         GetVehiclePos(vehicleid, CarPos[0], CarPos[1], CarPos[2]);
  309.         SetVehiclePos(vehicleid, PlayerPos[0], PlayerPos[1], PlayerPos[2]);
  310.     }
  311.     return 1;
  312. }
  313.  
  314. stock GetPlayerIPAddress(playerid)
  315. {
  316.     new ip[20];
  317.     GetPlayerIp(playerid, ip, sizeof(ip) );
  318.     return ip;
  319. }
  320.  
  321. stock HealPlayer(playerid) return SetPlayerHealth(playerid, 100);
  322. stock KillPlayer(playerid) return SetPlayerHealth(playerid, -5);
  323.  
  324. stock GivePlayerHealth(playerid, Float:health)
  325. {
  326.     new Float:hp;
  327.     GetPlayerHealth(playerid, hp);
  328.     new calc = floatadd(hp, health);
  329.     SetPlayerHealth(playerid, calc);
  330.     return 1;
  331. }
  332.  
  333. stock TakePlayerHealth(playerid, Float:health)
  334. {
  335.     new Float:hp;
  336.     GetPlayerHealth(playerid, hp);
  337.     new calc = floatsub(hp, health);
  338.     SetPlayerHealth(playerid, calc);
  339.     return 1;
  340. }
  341.  
  342. stock BankruptPlayer(playerid) return ResetPlayerMoney(playerid)
  343.  
  344. stock SetPlayerCash(playerid, cash)
  345. {
  346.     ResetPlayerMoney(playerid);
  347.     GivePlayerMoney(playerid, cash);
  348. }
  349.  
  350. stock GivePlayerScore(playerid, score)
  351. {
  352.     new pscore = GetPlayerScore(playerid);
  353.     SetPlayerScore(playerid, pscore+score);
  354.     return 1;
  355. }
  356.  
  357. stock TakePlayerScore(playerid, score)
  358. {
  359.     new pscore = GetPlayerScore(playerid);
  360.     SetPlayerScore(playerid, pscore-score);
  361.     return 1;
  362. }
  363.  
  364. stock SlapPlayer(playerid)
  365. {
  366.     new Float:Pos[3];
  367.     GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2] );
  368.     SetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]+10);
  369.     return 1;
  370. }
  371.  
  372. stock ExplodePlayer(playerid)
  373. {
  374.     new Float:Pos[3];
  375.     GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2] );
  376.     CreateExplosion(Pos[0], Pos[1], Pos[2], 8, 5.0);
  377.     return 1;
  378. }
  379.  
  380. stock IsPlayerAiming(playerid)
  381. {
  382.     new anim = GetPlayerAnimationIndex(playerid);
  383.     switch(anim)
  384.     {
  385.         case 1167, 1365, 1643, 1453, 220: return 1;
  386.     }
  387.     return 0;
  388. }
  389.  
  390. stock IsPlayerInModdingShop(playerid)
  391. {
  392.     new mode = GetPlayerCameraMode(playerid);
  393.     if(mode == 15) return 1;
  394.     else return 0;
  395.     return 1;
  396. }
  397.  
  398. stock IsPlayerSwimming(playerid)
  399. {
  400.         new Index = GetPlayerAnimationIndex(playerid);
  401.         return (Index >= 1538 && Index <= 1544 && Index != 1542);
  402. }
  403.  
  404. stock GetWeaponNameByID(weaponid)
  405. {
  406.     new gunname[32];
  407.     switch (weaponid)
  408.     {
  409.         case 1..17,22..43,46: GetWeaponName(weaponid,gunname,sizeof(gunname));
  410.         case 0: format(gunname,32,"%s","Fist");
  411.         case 18: format(gunname,32,"%s","Molotov");
  412.         case 44: format(gunname,32,"%s","Night Goggles");
  413.         case 45: format(gunname,32,"%s","Thermal Goggles");
  414.         default: format(gunname,32,"%s","Unknown weapon");
  415.     }
  416.     return gunname;
  417. }
  418.  
  419. stock GetWeaponSlot(weaponid)
  420. {
  421.     new slot;
  422.     switch(weaponid)
  423.     {
  424.         case 0,1: slot = 0;
  425.         case 2 .. 9: slot = 1;
  426.         case 10 .. 15: slot = 10;
  427.         case 16 .. 18, 39: slot = 8;
  428.         case 22 .. 24: slot =2;
  429.         case 25 .. 27: slot = 3;
  430.         case 28, 29, 32: slot = 4;
  431.         case 30, 31: slot = 5;
  432.         case 33, 34: slot = 6;
  433.         case 35 .. 38: slot = 7;
  434.         case 40: slot = 12;
  435.         case 41 .. 43: slot = 9;
  436.         case 44 .. 46: slot = 11;
  437.     }
  438.     return slot;
  439. }
  440.  
  441. stock GetPlayerAmmoEx(playerid)
  442. {
  443.     new weapon[3];
  444.     weapon[0] = GetWeaponSlot(GetPlayerWeapon(playerid) );
  445.     GetPlayerWeaponData(playerid, weapon[0], weapon[1], weapon[2]);
  446.     return weapon[2];
  447. }
  448.  
  449. stock GetVehicleNameByModel(model)
  450. {
  451.     new string[32];
  452.     format(string,sizeof string,"%s",VehicleNames[model -400]);
  453.     return string;
  454. }
  455.  
  456. stock GetVehicleSpeed(vehicleid)
  457. {
  458.     new Float:Speed[3];
  459.     GetVehicleVelocity(vehicleid, Speed[0], Speed[1], Speed[2]);
  460.     new calculate1 = floatsqroot((Speed[0]*Speed[0]+Speed[1]*Speed[1]));
  461.     return floatround(calculate1* 100.0 * 1.6);
  462. }
  463.  
  464. stock GetWeatherName(weatherid)
  465. {
  466.     new wName[80];
  467.     switch(weatherid)
  468.     {
  469.         case 0..7: wName = "Clear skies";
  470.         case 8: wName = "Stormy";
  471.         case 9: wName = "Cloudy";
  472.         case 10: wName = "Clear skies";
  473.         case 11: wName = "Heatwave";
  474.         case 12..15: wName = "Cloudy/Clear";
  475.         case 16: wName = "Cloudy/Rainy";
  476.         case 17, 18: wName = "Heatwave";
  477.         case 19: wName = "Sandstorm";
  478.         case 20: wName = "Foggy/Greenish";
  479.         case 21,22: wName = "Dark clouds";
  480.         case 23..26: wName = "Heatwave";
  481.         case 27..29: wName = "Clear skies";
  482.         case 30: wName = "Cloudy";
  483.         case default: wName = "Unknown";
  484.     }
  485.     return wName;
  486. }
  487.  
  488. stock LoadObjectsFromFile(const filename[]) // Thanks to iPLEOMAX for fixing this
  489. {
  490.     if(!fexist(filename))
  491.     return printf("[Objects] Couldn't load objects from %s [Reason : File doesn't exist]", filename);
  492.     new File:Handler = fopen(filename, io_read);
  493.     if(!Handler) return printf("[Objects] Couldn't load objects from %s [Reason : I/O Error]", filename);
  494.     new Line[256], Index = -1, Model, Float:PosX, Float:PosY, Float:PosZ, Float:RotX, Float:RotY, Float:RotZ, Float:DrawDistance;
  495.     while(fread(Handler, Line))
  496.     Objects_loaded = 0;
  497.     {
  498.         Index++;
  499.         new EOL = strfind(Line, ";", false);
  500.         if(EOL != -1) strdel(Line, EOL - 1, sizeof Line - 1);
  501.         else
  502.         {
  503.             printf("[Objects] Error reading @LineIndex %i from %s (EOL not found)", Index, filename);
  504.             continue;
  505.         }
  506.         if(!sscanf(Line[13], "p<,>iffffffF(100)", Model, PosX, PosY, PosZ, RotX, RotY, RotZ, DrawDistance))
  507.         {
  508.             CreateObject(Model, PosX, PosY, PosZ, RotX, RotY, RotZ, DrawDistance);
  509.             Objects_loaded++;
  510.         }
  511.         else printf("[Objects] Error reading @LineIndex %i from %s [Invalid format]", Index, filename);
  512.     }
  513.     fclose(Handler);
  514.     printf("[Objects] Loaded %d objects from: %s", Objects_loaded, filename);
  515.     return true;
  516. }
  517.  
  518. stock LoadVehiclesFromFile(const filename[])
  519. {
  520.         if(!fexist(filename)) return printf("[Vehicles] Couldn't load vehicles from %s [Reason : File doesn't exist] ", filename);
  521.  
  522.         new File:Handler = fopen(filename, io_read);
  523.         if(!Handler) return printf("[Vehicles] Couldn't load vehicles from %s [Reason : I/O Error]", filename);
  524.         new Line[256], Index = -1, Model, Float:Pos[3], Float:Angle, col1, col2, respawn_delay, Vehicles_loaded;
  525.         while(fread(Handler, Line))
  526.         {
  527.             Index++;
  528.             new EOL = strfind(Line, ";", false);
  529.             if(EOL != -1) { strdel(Line, EOL - 1, sizeof Line - 1); }
  530.             else
  531.             {
  532.                 printf("[Vehicles] Error reading @LineIndex %i from %s (EOL not found)", Index, filename);
  533.                 continue;
  534.             }
  535.             if(!sscanf(Line[14], "p<,>iffffddd", Model, Pos[0], Pos[1], Pos[2], Angle, col1, col2, respawn_delay))
  536.             {
  537.                 CreateVehicle(Model, Pos[0], Pos[1], Pos[2], Angle, col1, col2, respawn_delay);
  538.                 Vehicles_loaded++;
  539.             } else
  540.             if(!sscanf(Line[17], "p<,>iffffdd", Model, Pos[0], Pos[1], Pos[2], Angle, col1, col2))
  541.             {
  542.                 AddStaticVehicle(Model, Pos[0], Pos[1], Pos[2], Angle, col1, col2);
  543.                 Vehicles_loaded++;
  544.             } else
  545.             if(!sscanf(Line, "p<,>iffffdd", Model, Pos[0], Pos[1], Pos[2], Angle, col1, col2)) //array
  546.             {
  547.                 CreateVehicle(Model, Pos[0], Pos[1], Pos[2], Angle, col1, col2, respawn_delay);
  548.                 Vehicles_loaded++;
  549.             }
  550.             else printf("[Vehicles] Error reading @LineIndex %i from %s [Invalid format]", Index, filename);
  551.         }
  552.         fclose(Handler);
  553.         printf("[Vehicles] Loaded %d vehicles from %s", Vehicles_loaded, filename);
  554.         return true;
  555. }
  556.  
  557. stock CreateLogEntry(log[], text[])
  558. {
  559.     if(!fexist(log)) return printf("[LOG] %s log not found! Function 'CreateLogEntry' not implemented! ");
  560.     else
  561.     {
  562.         new Time[3], Date[3];
  563.         gettime(Time[0], Time[1], Time[2]);
  564.         getdate(Date[0], Date[1], Date[2]);
  565.         new File:Handler = fopen(log, io_append);
  566.         new string[500];
  567.         format(string, sizeof(string), "\r\n[%02d/%02d/%d] [%02d:%02d:%02d] %s ",Date[0], Date[1], Date[2], Time[0], Time[1], Time[2], text);
  568.         fwrite(Handler, string);
  569.         fclose(Handler);
  570.     }
  571.     return 1;
  572. }
  573.  
  574.  
  575. stock HealAll()
  576. {
  577.     for(new i; i < MAX_PLAYERS; i++) SetPlayerHealth(i, 100);
  578.     return 1;
  579. }
  580.  
  581. stock ArmourAll()
  582. {
  583.     for(new i; i < MAX_PLAYERS; i++) SetPlayerArmour(playerid, 100);
  584.     return 1;
  585. }
  586.  
  587. stock DisarmAll()
  588. {
  589.     for(new i; i < MAX_PLAYERS; i++) ResetPlayerWeapons(i);
  590.     return 1;
  591. }
  592.  
  593. stock GiveWeaponToAll(weaponid, ammo)
  594. {
  595.     if(weaponid > 46) return 0;
  596.     for(new i; i < MAX_PLAYERS; i++) GivePlayerWeapon(playerid, weaponid, ammo);
  597.     return 1;
  598. }
  599.  
  600. stock GiveCashToAll(cash)
  601. {
  602.     for(new i; i < MAX_PLAYERS; i++) GivePlayerMoney(i, cash);
  603.     return 1;
  604. }
  605.  
  606. stock GiveScoreToAll(score)
  607. {
  608.     for(new i; i < MAX_PLAYERS; i++)
  609.     {
  610.         new pscore = GetPlayerScore(i);
  611.         SetPlayerScore(i, pscore+score);
  612.     }
  613.     return 1;
  614. }
  615.  
  616. stock FreezeAll()
  617. {
  618.     for(new i; i < MAX_PLAYERS; i++) TogglePlayerControllable(i, false);
  619.     return 1;
  620. }
  621.  
  622. stock UnfreezeAll()
  623. {
  624.     for(new i; i < MAX_PLAYERS; i++) TogglePlayerControllable(i, true);
  625.     return 1;
  626. }
  627.  
  628. stock GetOnlinePlayersCount()
  629. {
  630.     new count;
  631.     for(new x=0; x< MAX_PLAYERS; x++)
  632.     {
  633.         if(IsPlayerConnected(x))
  634.         {
  635.             count++;
  636.         }
  637.     }
  638.     return count;
  639. }
  640.  
  641. stock GetValidObjectsCount()
  642. {
  643.     new count;
  644.     for(new x = 0; x < MAX_OBJECTS; x++)
  645.     {
  646.         if(IsValidObject(x))
  647.         {
  648.             count++;
  649.         }
  650.     }
  651.     return count;
  652. }
  653.  
  654. stock GetValidVehiclesCount()
  655. {
  656.     new count;
  657.     for(new x = 0; x < MAX_VEHICLES; x++)
  658.     {
  659.         if(x != INVALID_VEHICLE_ID)
  660.         {
  661.             count++;
  662.         }
  663.     }
  664.     return count;
  665. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement