| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322 |
- /*
- New SA-MP callbacks by Emmet_
- Description:
- An include which offers a wide selection of callbacks for scripters to use.
- Start Date:
- 01/26/2014 @ 11:58 AM.
- Last Update:
- 02/29/2016 @ 12:00 AM
- Callbacks:
- OnPlayerPause(playerid)
- Description: Called when a player is paused.
- OnPlayerResume(playerid, time)
- Description: Called when a player has resumed.
- OnPlayerHoldingKey(playerid, keys)
- Description: Called when a player begins holding a specific key.
- OnPlayerReleaseKey(playerid, keys)
- Description: Called when a player releases a key.
- OnPlayerFall(playerid, Float:damage)
- Description: Called when a player falls and loses damage.
- OnPlayerPacketLoss(playerid, Float:newpacket, Float:oldpacket)
- Description: Called when a player experiences packet loss.
- OnPlayerUseVending(playerid, type)
- Description: Called when a player uses a vending machine.
- OnPlayerCrashVehicle(playerid, vehicleid, Float:damage)
- Description: Called when a player crashes a vehicle.
- OnPlayerFPSChange(playerid, oldfps, newfps)
- Description: Called when a player's FPS rate changes.
- OnPlayerJackVehicle(playerid, targetid, vehicleid)
- Description: Called when a player jacks another player's vehicle.
- OnPlayerEmptyWeapon(playerid, weaponid)
- Description: Called when a player depletes all ammo in a weapon.
- OnPlayerFriendlyFire(playerid, targetid, weaponid)
- Description: Called when a player shoots at a teammate.
- OnPlayerTargetPlayer(playerid, targetid, weaponid)
- Description: Called when a player targets a player with their weapon.
- OnPlayerHideCursor(playerid, hovercolor)
- Description: Called when a player cancels textdraw selection.
- OnPlayerAntiReload(playerid, weaponid)
- Description: Called when a player shoots without reloading their weapon.
- OnPlayerAnimationPlay(playerid, animlib[], animname[])
- Description: Called when an animation is played.
- OnPlayerReloadWeapon(playerid, weaponid, ammo)
- Description: Called when a player reloads their weapon.
- OnPlayerActionChange(playerid, oldaction, newaction)
- Description: Called when a player's action change (see action list).
- OnPlayerRamPlayer(playerid, driverid, vehicleid, Float:damage)
- Description: Called when a player rams another player.
- OnPlayerSprayAtVehicle(playerid, vehicleid)
- Description: Called wehn a player is spraying at a vehicle.
- OnPlayerStartBurn(playerid)
- Description: Called when a player is burning from fire.
- OnPlayerStopBurn(playerid)
- Description: Called when a player stops burning.
- OnPlayerStartAim(playerid, weaponid)
- Description: Called when a player is aiming a weapon.
- OnPlayerStopAim(playerid)
- Description: Called when a player stops aiming.
- OnPlayerUseCamera(playerid)
- Description: Called when a player snaps a picture with a camera (weapon ID: 43).
- OnPlayerJump(playerid)
- Description: Called when a player jumps (SHIFT key).
- OnPlayerUseGarage(playerid, vehicleid, type)
- Description: Called when a player uses a Pay'n'Spray or bomb shop.
- OnVehicleCreated(vehicleid, color1, color2)
- Description: Called when a vehicle is created by the server.
- Definitions:
- POTENTIAL_CRASH_DAMAGE
- Description: The maximum amount of damage a vehicle must take before being ruled as a crash.
- MAX_ACCUMULATED_SHOTS
- Description: The maximum amount of shots the player fired without reloading before calling OnPlayerAntiReload.
- */
- /*
- native IsPlayerPaused(playerid);
- native IsPlayerBurning(playerid);
- native IsPlayerAiming(playerid);
- native IsPlayerSwimming(playerid);
- native IsPlayerSkydiving(playerid);
- native IsPlayerJumping(playerid);
- native IsPlayerNearVending(playerid);
- native IsPlayerNearGarage(playerid, type);
- native IsPlayerSprayingVehicle(playerid, vehicleid);
- native GetPlayerFPS(playerid);
- native GetPlayerAction(playerid);
- native GetPlayerPausedTime(playerid);
- native GetConnectedTime(playerid);
- native GetPlayerPacketLoss(playerid);
- */
- #if !defined POTENTIAL_CRASH_DAMAGE
- #define POTENTIAL_CRASH_DAMAGE 55.0
- #endif
- #if !defined MAX_ACCUMULATED_SHOTS
- #define MAX_ACCUMULATED_SHOTS 5
- #endif
- #define PLAYER_ACTION_NONE 0
- #define PLAYER_ACTION_SHOOTING 1
- #define PLAYER_ACTION_SWIMMING 2
- #define PLAYER_ACTION_SKYDIVING 3
- #define VENDING_TYPE_SPRUNK 1
- #define VENDING_TYPE_CANDY 2
- #define GARAGE_BOMBSHOP 1
- #define GARAGE_PAYNSPRAY 2
- // --------------------------------------------------
- // Enumerators
- // --------------------------------------------------
- enum _:e_PLAYER_TICK_ENUM {
- e_PLAYER_TICK,
- e_PLAYER_LAST_UPDATE,
- e_PLAYER_LAST_SHOT,
- e_PLAYER_LAST_JUMP,
- e_PLAYER_BURN_TICK,
- e_PLAYER_VENDING_TICK
- };
- enum e_PLAYER_DATA {
- e_PLAYER_FLAGS:e_bFlags,
- Float:e_fPacket,
- e_iHoldTimer,
- e_iFrames,
- e_iDrunk,
- e_iMoney,
- e_iTargetID,
- e_iAction,
- e_iAnimIndex,
- e_iHoverColor,
- e_iShotsFired[12],
- e_iLastGun,
- e_iLastAmmo,
- e_iVehicleID
- };
- enum e_VEHICLE_DATA {
- e_iPanels,
- e_iDoors,
- e_iLights,
- Float:e_fHealth,
- Float:e_fSpeed
- };
- enum e_PLAYER_FLAGS (<<= 1) {
- e_bUpdate = 1,
- e_bPaused,
- e_bHoldKey,
- e_bSelectTD,
- e_bAnimSet,
- e_bKeyPress,
- e_bReloading,
- e_bBurning,
- e_bAiming
- };
- static
- s_aPlayerInfo[MAX_PLAYERS][e_PLAYER_DATA],
- s_aPlayerTickInfo[MAX_PLAYERS][e_PLAYER_TICK_ENUM],
- s_aVehicleInfo[MAX_VEHICLES][e_VEHICLE_DATA];
- // --------------------------------------------------
- // Arrays
- // --------------------------------------------------
- enum e_VENDING_MACHINES {
- e_VENDING_MACHINE_TYPE,
- Float:e_VENDING_MACHINE_X,
- Float:e_VENDING_MACHINE_Y,
- Float:e_VENDING_MACHINE_Z,
- };
- enum e_VEHICLE_GARAGES {
- e_VEHICLE_GARAGE_TYPE,
- Float:e_VEHICLE_GARAGE_X,
- Float:e_VEHICLE_GARAGE_Y,
- Float:e_VEHICLE_GARAGE_Z
- };
- static
- s_aVendingMachines[84][e_VENDING_MACHINES] = {
- {VENDING_TYPE_SPRUNK, 1153.7322,-1461.0480,15.7969},
- {VENDING_TYPE_CANDY, -1455.2928,2592.6465,55.8359}, // candy
- {VENDING_TYPE_SPRUNK, 1929.7653,-1772.2271,13.5469}, // sprunk
- {VENDING_TYPE_SPRUNK, 2060.3145,-1898.6770,13.5538}, // sprunk
- {VENDING_TYPE_CANDY, 2480.6538,-1958.3058,13.5848}, // candy
- {VENDING_TYPE_SPRUNK, 2326.2078,-1646.1168,14.8270}, // sprunk
- {VENDING_TYPE_SPRUNK, 1788.2222,-1369.4314,15.7578}, // sprunk
- {VENDING_TYPE_CANDY, 2153.8999,-1015.4236,62.8926}, // candy
- {VENDING_TYPE_CANDY, 2140.4973,-1161.2883,23.9922}, // candy
- {VENDING_TYPE_SPRUNK, 2353.1555,-1356.9226,24.3984}, // sprunk
- {VENDING_TYPE_SPRUNK, -14.70, 1175.36, 18.95}, //Sprunk
- {VENDING_TYPE_SPRUNK, 201.02, -107.62, 0.90}, //Sprunk
- {VENDING_TYPE_CANDY, 662.43, -552.16, 15.71}, //Candy
- {VENDING_TYPE_CANDY, -76.03, 1227.99, 19.13}, //Candy
- {VENDING_TYPE_SPRUNK, 1154.73, -1460.89, 15.16}, //Sprunk
- {VENDING_TYPE_SPRUNK, 1277.84, 372.52, 18.95}, //Sprunk
- {VENDING_TYPE_CANDY, 1398.84, 2222.61, 10.42}, //Candy
- {VENDING_TYPE_SPRUNK, 1520.15, 1055.27, 10.00}, //Sprunk
- {VENDING_TYPE_CANDY, 1634.11, -2237.53, 12.89}, //Candy
- {VENDING_TYPE_CANDY, 1659.46, 1722.86, 10.22}, //Candy
- {VENDING_TYPE_SPRUNK, 1729.79, -1943.05, 12.95}, //Sprunk
- {VENDING_TYPE_SPRUNK, 1789.21, -1369.27, 15.16}, //Sprunk
- {VENDING_TYPE_SPRUNK, 1928.73, -1772.45, 12.95}, //Sprunk
- {VENDING_TYPE_SPRUNK, 2060.12, -1897.64, 12.93}, //Sprunk
- {VENDING_TYPE_SPRUNK, 2085.77, 2071.36, 10.45}, //Sprunk
- {VENDING_TYPE_CANDY, 2139.52, -1161.48, 23.36}, //Candy
- {VENDING_TYPE_CANDY, 2153.23, -1016.15, 62.23}, //Candy
- {VENDING_TYPE_CANDY, 2271.73, -76.46, 25.96}, //Candy
- {VENDING_TYPE_SPRUNK, 2319.99, 2532.85, 10.22}, //Sprunk
- {VENDING_TYPE_SPRUNK, 2325.98, -1645.13, 14.21}, //Sprunk
- {VENDING_TYPE_SPRUNK, 2352.18, -1357.16, 23.77}, //Sprunk
- {VENDING_TYPE_CANDY, 2480.86, -1959.27, 12.96}, //Candy
- {VENDING_TYPE_SPRUNK, 2503.14, 1243.70, 10.22}, //Sprunk
- {VENDING_TYPE_SPRUNK, -253.74, 2597.95, 62.24}, //Sprunk
- {VENDING_TYPE_CANDY, -253.74, 2599.76, 62.24}, //Candy
- {VENDING_TYPE_CANDY, 2647.70, 1129.66, 10.22}, //Candy
- {VENDING_TYPE_CANDY, 2845.73, 1295.05, 10.79}, //Candy
- {VENDING_TYPE_SPRUNK, -862.83, 1536.61, 21.98}, //Sprunk
- {VENDING_TYPE_SPRUNK, -1350.12, 492.29, 10.59}, //Sprunk
- {VENDING_TYPE_CANDY, -1350.12, 493.86, 10.59}, //Candy
- {VENDING_TYPE_CANDY, -1455.12, 2591.66, 55.23}, //Candy
- {VENDING_TYPE_SPRUNK, -1980.79, 142.66, 27.07}, //Sprunk
- {VENDING_TYPE_SPRUNK, -2005.65, -490.05, 34.73}, //Sprunk
- {VENDING_TYPE_SPRUNK, -2011.14, -398.34, 34.73}, //Sprunk
- {VENDING_TYPE_SPRUNK, -2034.46, -490.05, 34.73}, //Sprunk
- {VENDING_TYPE_SPRUNK, -2039.85, -398.34, 34.73}, //Sprunk
- {VENDING_TYPE_SPRUNK, -2063.27, -490.05, 34.73}, //Sprunk
- {VENDING_TYPE_SPRUNK, -2068.56, -398.34, 34.73}, //Sprunk
- {VENDING_TYPE_SPRUNK, -2092.09, -490.05, 34.73}, //Sprunk
- {VENDING_TYPE_SPRUNK, -2097.27, -398.34, 34.73}, //Sprunk
- {VENDING_TYPE_SPRUNK, -2118.62, -422.41, 34.73}, //Sprunk
- {VENDING_TYPE_SPRUNK, -2118.97, -423.65, 34.73}, //Sprunk
- {VENDING_TYPE_CANDY, -2229.19, 286.41, 34.70}, //Candy
- {VENDING_TYPE_SPRUNK, -2420.18, 985.95, 44.30}, //Sprunk
- {VENDING_TYPE_SPRUNK, -2420.22, 984.58, 44.30}, //Sprunk
- {VENDING_TYPE_CANDY, 2155.84, 1607.88, 1000.06}, // Vending - Caligula's basement
- {VENDING_TYPE_SPRUNK, 2155.91, 1606.77, 1000.05}, // Sprunk - Caligula's basement
- {VENDING_TYPE_CANDY, 2202.45, 1617.01, 1000.06}, // Vending - Caligula's basement
- {VENDING_TYPE_CANDY, 2209.24, 1621.21, 1000.06}, // Vending - Caligula's basement
- {VENDING_TYPE_SPRUNK, 2209.91, 1607.20, 1000.05}, // Sprunk - Caligula's basement
- {VENDING_TYPE_SPRUNK, 2222.20, 1606.77, 1000.05}, // Sprunk - Caligula's basement
- {VENDING_TYPE_CANDY, 2222.37, 1602.64, 1000.06}, // Vending - Caligula's basement
- {VENDING_TYPE_SPRUNK, 2225.20, -1153.42, 1025.91}, // Sprunk - Jefferson Hotel
- {VENDING_TYPE_SPRUNK, -15.10, -140.23, 1003.63}, // Sprunk - 24/7
- {VENDING_TYPE_SPRUNK, -16.12, -91.64, 1003.63}, // Sprunk - 24/7
- {VENDING_TYPE_CANDY, -16.53, -140.30, 1003.63}, // Vending - 24/7
- {VENDING_TYPE_CANDY, -17.55, -91.71, 1003.63}, // Vending - 24/7
- {VENDING_TYPE_SPRUNK, -19.04, -57.84, 1003.63}, // Sprunk - 24/7
- {VENDING_TYPE_SPRUNK, -32.45, -186.70, 1003.63}, // Sprunk - 24/7
- {VENDING_TYPE_CANDY, -33.88, -186.77, 1003.63}, // Vending - 24/7
- {VENDING_TYPE_CANDY, 330.68, 178.50, 1020.07}, // Vending - City Hall
- {VENDING_TYPE_CANDY, 331.92, 178.50, 1020.07}, // Vending - City Hall
- {VENDING_TYPE_SPRUNK, -35.73, -140.23, 1003.63}, // Sprunk - 24/7
- {VENDING_TYPE_CANDY, 350.91, 206.09, 1008.48}, // Vending - City Hall
- {VENDING_TYPE_CANDY, -36.15, -57.88, 1003.63}, // Vending - 24/7
- {VENDING_TYPE_CANDY, 361.56, 158.62, 1008.48}, // Vending - City Hall
- {VENDING_TYPE_CANDY, 371.59, 178.45, 1020.07}, // Vending - City Hall
- {VENDING_TYPE_SPRUNK, 373.83, -178.14, 1000.73}, // Sprunk - Donuts
- {VENDING_TYPE_CANDY, 374.89, 188.98, 1008.48}, // Vending - City Hall
- {VENDING_TYPE_CANDY, 379.04, -178.88, 1000.73}, // Vending - Donuts
- {VENDING_TYPE_SPRUNK, 495.97, -24.32, 1000.73}, // Sprunk - Nightclub
- {VENDING_TYPE_CANDY, 500.56, -1.37, 1000.73}, // Vending - Nightclub
- {VENDING_TYPE_SPRUNK, 501.83, -1.43, 1000.73}, // Sprunk - Nightclub
- {VENDING_TYPE_SPRUNK, 2576.70, -1284.43, 1061.09} // Sprunk - Big Smoke Int
- },
- s_aVehicleGarages[][e_VEHICLE_GARAGES] = {
- {GARAGE_PAYNSPRAY, -100.0488, 1117.3574, 19.7417},
- {GARAGE_PAYNSPRAY, -1420.5437, 2585.5051, 55.8433},
- {GARAGE_PAYNSPRAY, -2425.8203, 1022.0131, 50.3977},
- {GARAGE_PAYNSPRAY, -1904.3649, 284.2363, 41.0469},
- {GARAGE_PAYNSPRAY, 2065.1960, -1831.4946, 13.5469},
- {GARAGE_PAYNSPRAY, 1025.0665, -1024.4612, 32.1016},
- {GARAGE_PAYNSPRAY, 720.1285, -457.2187, 16.3359},
- {GARAGE_PAYNSPRAY, 487.4250, -1739.0385, 10.8542},
- {GARAGE_PAYNSPRAY, 1974.4723, 2162.3350, 11.0703},
- {GARAGE_BOMBSHOP, 1849.0271, -1856.3948, 13.3828},
- {GARAGE_BOMBSHOP, 2005.9357, 2312.9939, 10.8203}
- }
- ;
- // --------------------------------------------------
- // Callbacks
- // --------------------------------------------------
- forward OnPlayerPause(playerid);
- forward OnPlayerResume(playerid, time);
- forward OnPlayerHoldingKey(playerid, keys);
- forward OnPlayerReleaseKey(playerid, keys, time);
- forward OnPlayerFall(playerid, Float:damage);
- forward OnPlayerPacketLoss(playerid, Float:oldloss, Float:newloss);
- forward OnPlayerCrashVehicle(playerid, vehicleid, Float:damage);
- forward OnPlayerUseVending(playerid, type);
- forward OnPlayerFPSChange(playerid, oldfps, newfps);
- forward OnPlayerJackVehicle(playerid, targetid, vehicleid);
- forward OnPlayerEmptyWeapon(playerid, weaponid);
- forward OnPlayerFriendlyFire(playerid, targetid, weaponid);
- forward OnPlayerTargetPlayer(playerid, targetid, weaponid);
- forward OnPlayerHideCursor(playerid, hovercolor);
- forward OnPlayerAntiReload(playerid, weaponid);
- forward OnPlayerAnimationPlay(playerid, animlib[], animname[]);
- forward OnPlayerReloadWeapon(playerid, weaponid, ammo);
- forward OnPlayerActionChange(playerid, oldaction, newaction);
- forward OnPlayerRamPlayer(playerid, driverid, vehicleid, Float:damage);
- forward OnPlayerSprayAtVehicle(playerid, vehicleid);
- forward OnPlayerStartBurn(playerid);
- forward OnPlayerStopBurn(playerid);
- forward OnPlayerStartAim(playerid, weaponid);
- forward OnPlayerStopAim(playerid);
- forward OnPlayerUseCamera(playerid);
- forward OnPlayerJump(playerid);
- forward OnPlayerUseGarage(playerid, vehicleid, type);
- forward OnVehicleCreated(vehicleid, color1, color2);
- // --------------------------------------------------
- // Internal functions
- // --------------------------------------------------
- stock static Callback_GetFlag(playerid, e_PLAYER_FLAGS:flag)
- {
- return s_aPlayerInfo[playerid][e_bFlags] & flag;
- }
- stock static Callback_SetFlag(playerid, e_PLAYER_FLAGS:flag, status)
- {
- if(status)
- return s_aPlayerInfo[playerid][e_bFlags] |= flag;
- else
- return s_aPlayerInfo[playerid][e_bFlags] &= ~flag;
- }
- stock static Callback_GetDriver(vehicleid)
- {
- // Returns the driver of a vehicle (obvious).
- for(new i = 0, l = GetPlayerPoolSize(); i <= l; i ++)
- {
- if(IsPlayerInVehicle(i, vehicleid) && GetPlayerState(i) == PLAYER_STATE_DRIVER)
- {
- return i;
- }
- }
- return INVALID_PLAYER_ID;
- }
- stock static Callback_GetMaxClip(weaponid)
- {
- // Returns the clip capacity for the specified weapon (required by OnPlayerAntiReload).
- switch(weaponid)
- {
- case 22:
- return 34;
- case 23:
- return 17;
- case 24, 27:
- return 7;
- case 28, 32:
- return 100;
- case 29, 30:
- return 30;
- case 26:
- return 4;
- case 31:
- return 50;
- }
- return 0;
- }
- stock static Float:Callback_GetSpeed(vehicleid)
- {
- // This is only for basic speed calculations. No need to get the real speed.
- new
- Float:fX,
- Float:fY,
- Float:fZ
- ;
- GetVehicleVelocity(vehicleid, fX, fY, fZ);
- return (floatsqroot((fX * fX) + (fY * fY) + (fZ * fZ)) * 100);
- }
- stock static Callback_IsVehicleInPoint(vehicleid, Float:range, Float:x, Float:y, Float:z)
- {
- // Checks if a vehicle is in range of a point.
- new
- Float:fX,
- Float:fY,
- Float:fZ
- ;
- GetVehiclePos(vehicleid, fX, fY, fZ);
- fX -= x;
- fY -= y;
- fZ -= z;
- return ((fX * fX) + (fY * fY) + (fZ * fZ)) < (range * range);
- }
- // --------------------------------------------------
- // External functions
- // --------------------------------------------------
- stock IsPlayerPaused(playerid)
- {
- return Callback_GetFlag(playerid, e_bPaused);
- }
- stock IsPlayerBurning(playerid)
- {
- return Callback_GetFlag(playerid, e_bBurning);
- }
- stock IsPlayerAiming(playerid)
- {
- return Callback_GetFlag(playerid, e_bAiming);
- }
- stock IsPlayerSwimming(playerid)
- {
- return (1538 <= GetPlayerAnimationIndex(playerid) <= 1544);
- }
- stock IsPlayerSkydiving(playerid)
- {
- return (GetPlayerWeapon(playerid) == 46 && GetPlayerAnimationIndex(playerid) == 1134);
- }
- stock IsPlayerJumping(playerid)
- {
- new
- index = GetPlayerAnimationIndex(playerid),
- keys,
- ud,
- lr
- ;
- GetPlayerKeys(playerid, keys, ud, lr);
- return (keys & KEY_JUMP) && (1196 <= index <= 1198);
- }
- stock GetPlayerFPS(playerid)
- {
- return s_aPlayerInfo[playerid][e_iFrames];
- }
- stock GetPlayerPausedTime(playerid)
- {
- return (GetConnectedTime(playerid) - s_aPlayerTickInfo[playerid][e_PLAYER_TICK]);
- }
- stock Float:GetPlayerPacketLoss(playerid)
- {
- return s_aPlayerInfo[playerid][e_fPacket];
- }
- stock GetPlayerAction(playerid)
- {
- return s_aPlayerInfo[playerid][e_iAction];
- }
- stock GetConnectedTime(playerid)
- {
- return NetStats_GetConnectedTime(playerid);
- }
- stock IsPlayerNearVending(playerid, type)
- {
- for(new i = 0; i < sizeof(s_aVehicleGarages); i ++)
- {
- if(s_aVendingMachines[i][e_VENDING_MACHINE_TYPE] == type && IsPlayerInRangeOfPoint(playerid, 2.0, s_aVendingMachines[i][e_VENDING_MACHINE_X], s_aVendingMachines[i][e_VENDING_MACHINE_Y], s_aVendingMachines[i][e_VENDING_MACHINE_Z]))
- {
- return 1;
- }
- }
- return 0;
- }
- stock IsPlayerNearGarage(playerid, type)
- {
- for(new i = 0; i < sizeof(s_aVehicleGarages); i ++)
- {
- if(s_aVehicleGarages[i][e_VEHICLE_GARAGE_TYPE] == type && IsPlayerInRangeOfPoint(playerid, 8.0, s_aVehicleGarages[i][e_VEHICLE_GARAGE_X], s_aVehicleGarages[i][e_VEHICLE_GARAGE_Y], s_aVehicleGarages[i][e_VEHICLE_GARAGE_Z]))
- {
- return 1;
- }
- }
- return 0;
- }
- stock IsPlayerSprayingVehicle(playerid, vehicleid)
- {
- new
- index = GetPlayerAnimationIndex(playerid),
- Float:x,
- Float:y,
- Float:z,
- Float:a
- ;
- if(IsVehicleStreamedIn(vehicleid, playerid))
- {
- GetPlayerPos(playerid, x, y, z);
- GetPlayerFacingAngle(playerid, a);
- x += 2.0 * floatsin(-a, degrees);
- y += 2.0 * floatcos(-a, degrees);
- if(Callback_IsVehicleInPoint(vehicleid, 2.0, x, y, z))
- {
- return (1160 <= index <= 1163) || index == 1167 || index == 640;
- }
- }
- return 0;
- }
- // --------------------------------------------------
- // Native hooks
- // --------------------------------------------------
- stock CB_AddStaticVehicle(modelid, Float:x, Float:y, Float:z, Float:rotation, color1, color2)
- {
- new
- vehicleid = AddStaticVehicle(modelid, x, y, z, rotation, color1, color2);
- if(vehicleid != INVALID_VEHICLE_ID)
- {
- CallLocalFunction("OnVehicleCreated", "iii", vehicleid, color1, color2);
- }
- return vehicleid;
- }
- stock CB_AddStaticVehicleEx(modelid, Float:x, Float:y, Float:z, Float:rotation, color1, color2, respawn_delay, addsiren = 0)
- {
- new
- vehicleid = AddStaticVehicleEx(modelid, x, y, z, rotation, color1, color2, respawn_delay, addsiren);
- if(vehicleid != INVALID_VEHICLE_ID)
- {
- CallLocalFunction("OnVehicleCreated", "iii", vehicleid, color1, color2);
- }
- return vehicleid;
- }
- stock CB_ApplyAnimation(playerid, animlib[], animname[], Float:fDelta, loop, lockx, locky, freeze, time, forcesync = 0)
- {
- new
- ret = ApplyAnimation(playerid, animlib, animname, fDelta, loop, lockx, locky, freeze, time, forcesync);
- if(ret)
- {
- SetTimerEx("Callback_CheckAnimation", 100, false, "i", playerid);
- }
- return ret;
- }
- stock CB_SelectTextDraw(playerid, hovercolor)
- {
- new
- ret = SelectTextDraw(playerid, hovercolor);
- if(ret)
- {
- s_aPlayerInfo[playerid][e_iHoverColor] = hovercolor;
- Callback_SetFlag(playerid, e_bSelectTD, true);
- }
- return ret;
- }
- stock CB_CancelSelectTextDraw(playerid)
- {
- new
- ret = CancelSelectTextDraw(playerid);
- if(ret)
- {
- s_aPlayerInfo[playerid][e_iHoverColor] = 0;
- Callback_SetFlag(playerid, e_bSelectTD, false);
- }
- return ret;
- }
- // --------------------------------------------------
- // SA-MP Callbacks
- // --------------------------------------------------
- public OnPlayerDisconnect(playerid, reason)
- {
- if(Callback_GetFlag(playerid, e_bHoldKey))
- {
- KillTimer(s_aPlayerInfo[playerid][e_iHoldTimer]);
- }
- for(new i = 0; i < e_PLAYER_TICK_ENUM; i ++)
- {
- s_aPlayerTickInfo[playerid][i] = 0;
- }
- s_aPlayerInfo[playerid][e_iAction] = PLAYER_ACTION_NONE;
- s_aPlayerInfo[playerid][e_iLastGun] = 0;
- s_aPlayerInfo[playerid][e_iLastAmmo] = 0;
- s_aPlayerInfo[playerid][e_iFrames] = 0;
- s_aPlayerInfo[playerid][e_iDrunk] = 0;
- s_aPlayerInfo[playerid][e_iMoney] = 0;
- s_aPlayerInfo[playerid][e_iTargetID] = 0;
- s_aPlayerInfo[playerid][e_iAnimIndex] = 0;
- s_aPlayerInfo[playerid][e_iHoverColor] = 0;
- s_aPlayerInfo[playerid][e_fPacket] = 0.0;
- s_aPlayerInfo[playerid][e_iVehicleID] = INVALID_VEHICLE_ID;
- s_aPlayerInfo[playerid][e_bFlags] = e_PLAYER_FLAGS:0;
- for(new i = 0; i < 12; i ++)
- {
- s_aPlayerInfo[playerid][e_iShotsFired][i] = 0;
- }
- #if defined CB_OnPlayerDisconnect
- return CB_OnPlayerDisconnect(playerid, reason);
- #else
- return 1;
- #endif
- }
- public OnFilterScriptInit()
- {
- SetTimer("Callback_TabCheck", 600, true);
- #if defined CB_OnFilterScriptInit
- return CB_OnFilterScriptInit();
- #else
- return 1;
- #endif
- }
- public OnGameModeInit()
- {
- SetTimer("Callback_TabCheck", 600, true);
- #if defined CB_OnGameModeInit
- return CB_OnGameModeInit();
- #else
- return 1;
- #endif
- }
- public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
- {
- new
- capacity = Callback_GetMaxClip(weaponid),
- teamid = GetPlayerTeam(playerid);
- if((teamid != NO_TEAM && hittype == BULLET_HIT_TYPE_PLAYER) && GetPlayerTeam(hitid) == teamid)
- {
- CallLocalFunction("OnPlayerFriendlyFire", "iii", playerid, hitid, weaponid);
- }
- if(GetPlayerWeaponState(playerid) == WEAPONSTATE_LAST_BULLET && GetPlayerAmmo(playerid) == 1)
- {
- CallLocalFunction("OnPlayerEmptyWeapon", "ii", playerid, weaponid);
- }
-
- if((WEAPON_COLT45 <= weaponid <= WEAPON_TEC9) && weaponid != WEAPON_SHOTGUN)
- {
- new
- index = (weaponid - WEAPON_COLT45);
- s_aPlayerInfo[playerid][e_iShotsFired][index]++;
- if(s_aPlayerInfo[playerid][e_iShotsFired][index] - capacity >= MAX_ACCUMULATED_SHOTS)
- {
- CallLocalFunction("OnPlayerAntiReload", "ii", playerid, weaponid);
- s_aPlayerInfo[playerid][e_iShotsFired][index] = 0;
- }
- }
- if(s_aPlayerInfo[playerid][e_iAction] != PLAYER_ACTION_SHOOTING)
- {
- CallLocalFunction("OnPlayerActionChange", "iii", playerid, s_aPlayerInfo[playerid][e_iAction], PLAYER_ACTION_SHOOTING);
- s_aPlayerInfo[playerid][e_iAction] = PLAYER_ACTION_SHOOTING;
- }
- s_aPlayerTickInfo[playerid][e_PLAYER_LAST_SHOT] = GetConnectedTime(playerid);
- #if defined CB_OnPlayerWeaponShot
- return CB_OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, fX, fY, fZ);
- #else
- return 1;
- #endif
- }
- public OnPlayerUpdate(playerid)
- {
- new
- weaponid = GetPlayerWeapon(playerid),
- level = GetPlayerDrunkLevel(playerid),
- Float:health,
- animlib[32],
- animname[32];
- if(IsPlayerSkydiving(playerid) && s_aPlayerInfo[playerid][e_iAction] != PLAYER_ACTION_SKYDIVING)
- {
- CallLocalFunction("OnPlayerActionChange", "iii", playerid, s_aPlayerInfo[playerid][e_iAction], PLAYER_ACTION_SKYDIVING);
- s_aPlayerInfo[playerid][e_iAction] = PLAYER_ACTION_SKYDIVING;
- }
- else if(!IsPlayerSkydiving(playerid) && s_aPlayerInfo[playerid][e_iAction] == PLAYER_ACTION_SKYDIVING)
- {
- CallLocalFunction("OnPlayerActionChange", "iii", playerid, s_aPlayerInfo[playerid][e_iAction], PLAYER_ACTION_NONE);
- s_aPlayerInfo[playerid][e_iAction] = PLAYER_ACTION_SKYDIVING;
- }
- else if(IsPlayerSwimming(playerid) && s_aPlayerInfo[playerid][e_iAction] != PLAYER_ACTION_SWIMMING)
- {
- CallLocalFunction("OnPlayerActionChange", "iii", playerid, s_aPlayerInfo[playerid][e_iAction], PLAYER_ACTION_SWIMMING);
- s_aPlayerInfo[playerid][e_iAction] = PLAYER_ACTION_SWIMMING;
- }
- else if(!IsPlayerSwimming(playerid) && s_aPlayerInfo[playerid][e_iAction] == PLAYER_ACTION_SWIMMING)
- {
- CallLocalFunction("OnPlayerActionChange", "iii", playerid, s_aPlayerInfo[playerid][e_iAction], PLAYER_ACTION_NONE);
- s_aPlayerInfo[playerid][e_iAction] = PLAYER_ACTION_NONE;
- }
- else if(s_aPlayerInfo[playerid][e_iAction] == PLAYER_ACTION_SHOOTING && (GetConnectedTime(playerid) - s_aPlayerTickInfo[playerid][e_PLAYER_LAST_SHOT]) > 1200)
- {
- CallLocalFunction("OnPlayerActionChange", "iii", playerid, s_aPlayerInfo[playerid][e_iAction], PLAYER_ACTION_NONE);
- s_aPlayerInfo[playerid][e_iAction] = PLAYER_ACTION_NONE;
- }
- if((GetConnectedTime(playerid) - s_aPlayerTickInfo[playerid][e_PLAYER_BURN_TICK]) >= 1500 && Callback_GetFlag(playerid, e_bBurning))
- {
- Callback_SetFlag(playerid, e_bBurning, false);
- CallLocalFunction("OnPlayerStopBurn", "i", playerid);
- }
- switch(GetPlayerState(playerid))
- {
- case PLAYER_STATE_ONFOOT:
- {
- if(!s_aPlayerInfo[playerid][e_iTargetID] && GetPlayerTargetPlayer(playerid) == INVALID_PLAYER_ID)
- {
- s_aPlayerInfo[playerid][e_iTargetID] = INVALID_PLAYER_ID;
- }
- else if(GetPlayerTargetPlayer(playerid) != s_aPlayerInfo[playerid][e_iTargetID])
- {
- CallLocalFunction("OnPlayerTargetPlayer", "iii", playerid, s_aPlayerInfo[playerid][e_iTargetID], GetPlayerWeapon(playerid));
- s_aPlayerInfo[playerid][e_iTargetID] = GetPlayerTargetPlayer(playerid);
- }
- if(!Callback_GetFlag(playerid, e_bReloading) && (WEAPON_COLT45 <= weaponid <= WEAPON_SNIPER) && GetPlayerWeaponState(playerid) == WEAPONSTATE_RELOADING)
- {
- Callback_SetFlag(playerid, e_bReloading, true);
- CallLocalFunction("OnPlayerReloadWeapon", "iii", playerid, weaponid, GetPlayerAmmo(playerid));
- }
- else if(GetPlayerWeaponState(playerid) != WEAPONSTATE_RELOADING)
- {
- Callback_SetFlag(playerid, e_bReloading, false);
- }
- for(new i = 0; i < sizeof(s_aVendingMachines); i ++)
- {
- if(IsPlayerInRangeOfPoint(playerid, 2.0, s_aVendingMachines[i][e_VENDING_MACHINE_X], s_aVendingMachines[i][e_VENDING_MACHINE_Y], s_aVendingMachines[i][e_VENDING_MACHINE_Z]))
- {
- if(GetPlayerAnimationIndex(playerid) == 1660 && (GetConnectedTime(playerid) - s_aPlayerTickInfo[playerid][e_PLAYER_VENDING_TICK]) > 3500)
- {
- CallLocalFunction("OnPlayerUseVending", "ii", playerid, s_aVendingMachines[i][e_VENDING_MACHINE_TYPE]);
- s_aPlayerTickInfo[playerid][e_PLAYER_VENDING_TICK] = GetConnectedTime(playerid);
- return 1;
- }
- }
- }
- if((GetConnectedTime(playerid) - s_aPlayerTickInfo[playerid][e_PLAYER_LAST_JUMP] >= 1000) && IsPlayerJumping(playerid))
- {
- CallLocalFunction("OnPlayerJump", "i", playerid);
- s_aPlayerTickInfo[playerid][e_PLAYER_LAST_JUMP] = GetConnectedTime(playerid);
- }
- }
- case PLAYER_STATE_DRIVER:
- {
- new
- money = GetPlayerMoney(playerid);
- if(s_aPlayerInfo[playerid][e_iMoney] != money)
- {
- if(GetPlayerCameraMode(playerid) == 15)
- {
- switch(s_aPlayerInfo[playerid][e_iMoney] - money)
- {
- case 100:
- {
- if(IsPlayerNearGarage(playerid, GARAGE_PAYNSPRAY))
- {
- CallLocalFunction("OnPlayerUseGarage", "iii", playerid, GetPlayerVehicleID(playerid), GARAGE_PAYNSPRAY);
- }
- }
- case 500:
- {
- if(IsPlayerNearGarage(playerid, GARAGE_BOMBSHOP))
- {
- CallLocalFunction("OnPlayerUseGarage", "iii", playerid, GetPlayerVehicleID(playerid), GARAGE_BOMBSHOP);
- }
- }
- }
- }
- s_aPlayerInfo[playerid][e_iMoney] = money;
- }
- new
- vehicleid = GetPlayerVehicleID(playerid),
- panels,
- doors,
- lights,
- tires
- ;
- GetVehicleHealth(vehicleid, health);
- if(s_aVehicleInfo[vehicleid][e_fHealth] > health && floatabs(s_aVehicleInfo[vehicleid][e_fHealth] - health) >= POTENTIAL_CRASH_DAMAGE && floatabs(s_aVehicleInfo[vehicleid][e_fSpeed] - Callback_GetSpeed(vehicleid)) >= 5.0)
- {
- GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
- if(s_aVehicleInfo[vehicleid][e_iPanels] != panels || s_aVehicleInfo[vehicleid][e_iDoors] != doors || s_aVehicleInfo[vehicleid][e_iLights] != lights)
- {
- CallLocalFunction("OnPlayerCrashVehicle", "iif", playerid, vehicleid, floatsub(s_aVehicleInfo[vehicleid][e_fHealth], health));
- }
- GetVehicleDamageStatus(vehicleid, s_aVehicleInfo[vehicleid][e_iPanels], s_aVehicleInfo[vehicleid][e_iDoors], s_aVehicleInfo[vehicleid][e_iLights], tires);
- }
- s_aVehicleInfo[vehicleid][e_fHealth] = health;
- s_aVehicleInfo[vehicleid][e_fSpeed] = Callback_GetSpeed(vehicleid);
- }
- }
- new
- difference = s_aPlayerInfo[playerid][e_iDrunk] - level;
- if(GetPlayerDrunkLevel(playerid) < 100)
- {
- SetPlayerDrunkLevel(playerid, 2000);
- }
- else if(s_aPlayerInfo[playerid][e_iDrunk] != level)
- {
- if((0 <= difference <= 200) && s_aPlayerInfo[playerid][e_iFrames] != difference)
- {
- if(s_aPlayerInfo[playerid][e_iFrames] < 0)
- {
- s_aPlayerInfo[playerid][e_iFrames] = 0;
- }
- CallLocalFunction("OnPlayerFPSChange", "iii", playerid, s_aPlayerInfo[playerid][e_iFrames], difference);
- }
- s_aPlayerInfo[playerid][e_iFrames] = difference;
- s_aPlayerInfo[playerid][e_iDrunk] = level;
- }
- new
- Float:packet = NetStats_PacketLossPercent(playerid);
- if(floatcmp(packet, 0.0) != 0 && floatcmp(packet, s_aPlayerInfo[playerid][e_fPacket]) != 0)
- {
- CallLocalFunction("OnPlayerPacketLoss", "iff", playerid, s_aPlayerInfo[playerid][e_fPacket], packet);
- s_aPlayerInfo[playerid][e_fPacket] = packet;
- }
- if(Callback_GetFlag(playerid, e_bAnimSet) && s_aPlayerInfo[playerid][e_iAnimIndex] != GetPlayerAnimationIndex(playerid))
- {
- Callback_SetFlag(playerid, e_bAnimSet, false);
- GetAnimationName(s_aPlayerInfo[playerid][e_iAnimIndex], animlib, sizeof(animlib), animname, sizeof(animname));
-
- if(strlen(animlib) > 0 && strlen(animname) > 0)
- {
- CallLocalFunction("OnPlayerAnimationPlay", "iss", playerid, animlib, animname);
- }
- }
- new
- ammo = GetPlayerAmmo(playerid);
- if(s_aPlayerInfo[playerid][e_iLastAmmo] != ammo)
- {
- if(GetPlayerWeapon(playerid) == WEAPON_CAMERA && s_aPlayerInfo[playerid][e_iLastAmmo] > ammo)
- {
- CallLocalFunction("OnPlayerUseCamera", "i", playerid);
- }
- else if(GetPlayerWeapon(playerid) == WEAPON_SPRAYCAN && s_aPlayerInfo[playerid][e_iLastAmmo] > ammo)
- {
- for(new i = 1, l = GetVehiclePoolSize(); i <= l; i ++)
- {
- if(IsPlayerSprayingVehicle(playerid, i))
- {
- CallLocalFunction("OnPlayerSprayAtVehicle", "ii", playerid, i);
- break;
- }
- }
- }
- s_aPlayerInfo[playerid][e_iLastAmmo] = ammo;
- }
- if(s_aPlayerInfo[playerid][e_iLastGun] != weaponid)
- {
- new
- lastweapon = s_aPlayerInfo[playerid][e_iLastGun];
- if((WEAPON_COLT45 <= lastweapon <= WEAPON_TEC9) && lastweapon != WEAPON_SHOTGUN)
- {
- s_aPlayerInfo[playerid][e_iShotsFired][lastweapon - WEAPON_COLT45] = 0;
- }
- s_aPlayerInfo[playerid][e_iLastGun] = weaponid;
- }
- else
- {
- if((WEAPON_COLT45 <= weaponid <= WEAPON_TEC9) && weaponid != WEAPON_SHOTGUN && GetPlayerWeaponState(playerid) == WEAPONSTATE_RELOADING)
- {
- s_aPlayerInfo[playerid][e_iShotsFired][weaponid - WEAPON_COLT45] = 0;
- }
- }
- if(!Callback_GetFlag(playerid, e_bUpdate))
- {
- Callback_SetFlag(playerid, e_bUpdate, true);
- }
- s_aPlayerTickInfo[playerid][e_PLAYER_LAST_UPDATE] = GetConnectedTime(playerid);
- #if defined CB_OnPlayerUpdate
- return CB_OnPlayerUpdate(playerid);
- #else
- return 1;
- #endif
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- new
- vehicleid = GetPlayerVehicleID(playerid);
- switch(newstate)
- {
- case PLAYER_STATE_DRIVER:
- {
- GetVehicleHealth(vehicleid, s_aVehicleInfo[vehicleid][e_fHealth]);
- s_aPlayerInfo[playerid][e_iVehicleID] = vehicleid;
- }
- case PLAYER_STATE_WASTED:
- {
- s_aPlayerInfo[playerid][e_iAction] = PLAYER_ACTION_NONE;
- }
- case PLAYER_STATE_ONFOOT:
- {
- if(oldstate == PLAYER_STATE_DRIVER && GetVehicleModel(s_aPlayerInfo[playerid][e_iVehicleID]))
- {
- new
- driverid = Callback_GetDriver(s_aPlayerInfo[playerid][e_iVehicleID]);
- if(driverid != INVALID_PLAYER_ID)
- {
- CallLocalFunction("OnPlayerJackVehicle", "iii", driverid, playerid, s_aPlayerInfo[playerid][e_iVehicleID]);
- }
- s_aPlayerInfo[playerid][e_iVehicleID] = INVALID_VEHICLE_ID;
- }
- }
- }
- #if defined CB_OnPlayerStateChange
- return CB_OnPlayerStateChange(playerid, newstate, oldstate);
- #else
- return 1;
- #endif
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- new
- weaponid = GetPlayerWeapon(playerid);
- if(GetPlayerState(playerid) != PLAYER_STATE_SPECTATING && GetPlayerState(playerid) != PLAYER_STATE_SPAWNED && GetPlayerState(playerid) != PLAYER_STATE_WASTED)
- {
- if(!Callback_GetFlag(playerid, e_bHoldKey))
- {
- Callback_SetFlag(playerid, e_bHoldKey, true);
- s_aPlayerTickInfo[playerid][e_PLAYER_TICK] = GetConnectedTime(playerid);
- s_aPlayerInfo[playerid][e_iHoldTimer] = SetTimerEx("Callback_HoldTimer", 200, true, "ii", playerid, newkeys);
- }
- if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
- {
- if((WEAPON_COLT45 <= weaponid <= WEAPON_CAMERA) && weaponid != WEAPON_BOMB)
- {
- if(!Callback_GetFlag(playerid, e_bAiming) && (newkeys & KEY_HANDBRAKE) & KEY_HANDBRAKE)
- {
- Callback_SetFlag(playerid, e_bAiming, true);
- CallLocalFunction("OnPlayerStartAim", "ii", playerid, weaponid);
- }
- else if((newkeys & KEY_HANDBRAKE) != KEY_HANDBRAKE && (oldkeys & KEY_HANDBRAKE) == KEY_HANDBRAKE)
- {
- Callback_SetFlag(playerid, e_bAiming, false);
- CallLocalFunction("OnPlayerStopAim", "i", playerid);
- }
- }
- }
- }
- #if defined CB_OnPlayerKeyStateChange
- return CB_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
- #else
- return 1;
- #endif
- }
- public OnPlayerClickTextDraw(playerid, Text:clickedid)
- {
- if(clickedid == Text:INVALID_TEXT_DRAW && Callback_GetFlag(playerid, e_bSelectTD))
- {
- Callback_SetFlag(playerid, e_bSelectTD, false);
- CallLocalFunction("OnPlayerHideCursor", "ii", playerid, s_aPlayerInfo[playerid][e_iHoverColor]);
- }
- #if defined CB_OnPlayerClickTextDraw
- return CB_OnPlayerClickTextDraw(playerid, clickedid);
- #else
- return 0;
- #endif
- }
- public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)
- {
- if(weaponid == WEAPON_COLLISION && issuerid == INVALID_PLAYER_ID && amount >= 4.95)
- {
- CallLocalFunction("OnPlayerFall", "if", playerid, amount);
- }
- if(weaponid == WEAPON_VEHICLE && issuerid != INVALID_PLAYER_ID)
- {
- CallLocalFunction("OnPlayerRamPlayer", "iiif", playerid, issuerid, GetPlayerVehicleID(issuerid), amount);
- }
- if(weaponid == WEAPON_FLAMETHROWER)
- {
- if(!Callback_GetFlag(playerid, e_bBurning))
- {
- Callback_SetFlag(playerid, e_bBurning, true);
- CallLocalFunction("OnPlayerStartBurn", "i", playerid);
- }
- s_aPlayerTickInfo[playerid][e_PLAYER_BURN_TICK] = GetConnectedTime(playerid);
- }
- #if defined CB_OnPlayerTakeDamage
- return CB_OnPlayerTakeDamage(playerid, issuerid, amount, weaponid, bodypart);
- #else
- return 1;
- #endif
- }
- // --------------------------------------------------
- // Timers
- // --------------------------------------------------
- forward Callback_CheckAnimation(playerid);
- public Callback_CheckAnimation(playerid)
- {
- s_aPlayerInfo[playerid][e_iAnimIndex] = GetPlayerAnimationIndex(playerid);
- Callback_SetFlag(playerid, e_bAnimSet, true);
- }
- forward Callback_HoldTimer(playerid, key);
- public Callback_HoldTimer(playerid, key)
- {
- new
- keys,
- ud,
- lr;
- GetPlayerKeys(playerid, keys, ud, lr);
- if(keys & key)
- {
- Callback_SetFlag(playerid, e_bKeyPress, true);
- CallLocalFunction("OnPlayerHoldingKey", "ii", playerid, key);
- }
- else
- {
- if(Callback_GetFlag(playerid, e_bKeyPress))
- {
- CallLocalFunction("OnPlayerReleaseKey", "iii", playerid, key, GetConnectedTime(playerid) - s_aPlayerTickInfo[playerid][e_PLAYER_TICK]);
- }
- KillTimer(s_aPlayerInfo[playerid][e_iHoldTimer]);
- Callback_SetFlag(playerid, e_bKeyPress, false);
- Callback_SetFlag(playerid, e_bHoldKey, false);
- }
- }
- forward Callback_TabCheck();
- public Callback_TabCheck()
- {
- for(new i = 0, l = GetPlayerPoolSize(); i <= l; i ++)
- {
- switch(GetPlayerState(i))
- {
- case PLAYER_STATE_ONFOOT, PLAYER_STATE_DRIVER, PLAYER_STATE_PASSENGER:
- {
- if(Callback_GetFlag(i, e_bUpdate))
- {
- if(Callback_GetFlag(i, e_bPaused))
- {
- CallLocalFunction("OnPlayerResume", "ii", i, GetConnectedTime(i) - s_aPlayerTickInfo[i][e_PLAYER_TICK]);
- }
- Callback_SetFlag(i, e_bUpdate, false);
- Callback_SetFlag(i, e_bPaused, false);
- }
- if(!Callback_GetFlag(i, e_bPaused) && (GetConnectedTime(i) - s_aPlayerTickInfo[i][e_PLAYER_LAST_UPDATE]) >= 4000)
- {
- CallLocalFunction("OnPlayerPause", "i", i);
- s_aPlayerTickInfo[i][e_PLAYER_TICK] = GetConnectedTime(i);
- Callback_SetFlag(i, e_bPaused, true);
- }
- }
- }
- }
- }
- // --------------------------------------------------
- // Native hooks
- // --------------------------------------------------
- #if defined _ALS_AddStaticVehicle
- #undef AddStaticVehicle
- #else
- #define _ALS_AddStaticVehicle
- #endif
- #if defined _ALS_AddStaticVehicleEx
- #undef AddStaticVehicleEx
- #else
- #define _ALS_AddStaticVehicleEx
- #endif
- #if defined _ALS_ApplyAnimation
- #undef ApplyAnimation
- #else
- #define _ALS_ApplyAnimation
- #endif
- #if defined _ALS_SelectTextDraw
- #undef SelectTextDraw
- #else
- #define _ALS_SelectTextDraw
- #endif
- #if defined _ALS_CancelSelectTextDraw
- #undef CancelSelectTextDraw
- #else
- #define _ALS_CancelSelectTextDraw
- #endif
- #define AddStaticVehicle CB_AddStaticVehicle
- #define AddStaticVehicleEx CB_AddStaticVehicleEx
- #define ApplyAnimation CB_ApplyAnimation
- #define SelectTextDraw CB_SelectTextDraw
- #define CancelSelectTextDraw CB_CancelSelectTextDraw
- // --------------------------------------------------
- // Callback hooks
- // --------------------------------------------------
- #if defined _ALS_OnFilterScriptInit
- #undef OnFilterScriptInit
- #else
- #define _ALS_OnFilterScriptInit
- #endif
- #if defined _ALS_OnGameModeInit
- #undef OnGameModeInit
- #else
- #define _ALS_OnGameModeInit
- #endif
- #if defined _ALS_OnPlayerDisconnect
- #undef OnPlayerDisconnect
- #else
- #define _ALS_OnPlayerDisconnect
- #endif
- #if defined _ALS_OnPlayerStateChange
- #undef OnPlayerStateChange
- #else
- #define _ALS_OnPlayerStateChange
- #endif
- #if defined _ALS_OnPlayerKeyStateChange
- #undef OnPlayerKeyStateChange
- #else
- #define _ALS_OnPlayerKeyStateChange
- #endif
- #if defined _ALS_OnPlayerUpdate
- #undef OnPlayerUpdate
- #else
- #define _ALS_OnPlayerUpdate
- #endif
- #if defined _ALS_OnPlayerWeaponShot
- #undef OnPlayerWeaponShot
- #else
- #define _ALS_OnPlayerWeaponShot
- #endif
- #if defined _ALS_OnPlayerClickTextDraw
- #undef OnPlayerClickTextDraw
- #else
- #define _ALS_OnPlayerClickTextDraw
- #endif
- #if defined _ALS_OnPlayerTakeDamage
- #undef OnPlayerTakeDamage
- #else
- #define _ALS_OnPlayerTakeDamage
- #endif
- #define OnFilterScriptInit CB_OnFilterScriptInit
- #define OnGameModeInit CB_OnGameModeInit
- #define OnPlayerDisconnect CB_OnPlayerDisconnect
- #define OnPlayerUpdate CB_OnPlayerUpdate
- #define OnPlayerStateChange CB_OnPlayerStateChange
- #define OnPlayerKeyStateChange CB_OnPlayerKeyStateChange
- #define OnPlayerWeaponShot CB_OnPlayerWeaponShot
- #define OnPlayerClickTextDraw CB_OnPlayerClickTextDraw
- #define OnPlayerTakeDamage CB_OnPlayerTakeDamage
- #if defined CB_OnPlayerUpdate
- forward CB_OnPlayerUpdate(playerid);
- #endif
- #if defined CB_OnFilterScriptInit
- forward CB_OnFilterScriptInit();
- #endif
- #if defined CB_OnGameModeInit
- forward CB_OnGameModeInit();
- #endif
- #if defined CB_OnPlayerDisconnect
- forward CB_OnPlayerDisconnect(playerid, reason);
- #endif
- #if defined CB_OnPlayerStateChange
- forward CB_OnPlayerStateChange(playerid, newstate, oldstate);
- #endif
- #if defined CB_OnPlayerKeyStateChange
- forward CB_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
- #endif
- #if defined CB_OnPlayerWeaponShot
- forward CB_OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ);
- #endif
- #if defined CB_OnPlayerClickTextDraw
- forward CB_OnPlayerClickTextDraw(playerid, Text:clickedid);
- #endif
- #if defined CB_OnPlayerTakeDamage
- forward CB_OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart);
- #endif
|