| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850 |
- /*******************************************************************************************************************************************
- * *
- * )( Streamer Functions )( *
- * *
- * Copyright © 2017 Abyss Morgan. All rights reserved. *
- * *
- * Download: https://github.com/AbyssMorgan/SA-MP/tree/master/include/SAM *
- * Publication: http://forum.sa-mp.com/showthread.php?t=590918 *
- * Website: http://8.ct8.pl *
- * *
- * Plugins: Streamer *
- * Modules: None *
- * *
- * File Version: 2.8.0 *
- * SA:MP Version: 0.3.7 (REQUIRE) *
- * Streamer Version: 2.9.1 *
- * *
- * Compiler Options: *
- * DISABLE_STREAMER_SPEC_CHECK //Turn off check streamer version *
- * ENABLE_BULLET_DYNAMIC_OBJECT //Turn on call OnPlayerWeaponShot when we shoot in a dynamic object *
- * DISABLE_STREAMER_SPEC_FIXES //Turn off fixes (not recommended) *
- * *
- * Objects Functions: *
- * GetDynamicObjectModel(objectid); *
- * SetDynamicObjectModel(objectid,modelid); *
- * GetDynamicObjectVW(objectid); *
- * SetDynamicObjectVW(objectid,worldid); *
- * GetDynamicObjectINT(objectid); *
- * SetDynamicObjectINT(objectid,interiorid); *
- * GetDynamicObjectSD(objectid,&Float:streamdistance); *
- * SetDynamicObjectSD(objectid,Float:streamdistance); *
- * GetDynamicObjectDD(objectid,&Float:drawdistance); *
- * SetDynamicObjectDD(objectid,Float:drawdistance); *
- * GetDynamicObjectPosAndRot(objectid,&Float:x,&Float:y,&Float:z,&Float:rx,&Float:ry,&Float:rz); *
- * SetDynamicObjectPosAndRot(objectid,Float:x,Float:y,Float:z,Float:rx,Float:ry,Float:rz); *
- * GetDynamicObjectMoveSpeed(objectid,&Float:speed); *
- * SetDynamicObjectMoveSpeed(objectid,Float:speed); *
- * GetDynamicObjectMovePos(objectid,&Float:x,&Float:y,&Float:z); *
- * SetDynamicObjectMovePos(objectid,Float:x,Float:y,Float:z); *
- * GetDynamicObjectMoveRot(objectid,&Float:rx,&Float:ry,&Float:rz); *
- * SetDynamicObjectMoveRot(objectid,Float:rx = -1000.0,Float:ry = -1000.0,Float:rz = -1000.0); *
- * GetDynamicObjectMoveTime(objectid,&objstate,&rtime=0); *
- * SetDynamicObjectAttachSync(objectid,syncrotation); *
- * RemoveDynamicObjectMaterial(objectid,materialindex); *
- * RemoveDynamicObjectMaterialAll(objectid); *
- * DeattachObjectDynamicObject(objectid); *
- * DeattachDynamicObjectComponent(objectid,type); *
- * DestroyDynamicObjectComponent(objectid,type); *
- * RebuildDynamicObject(objectid,...); *
- * GetDynamicObjectArea(objectid); *
- * SetDynamicObjectArea(objectid,areaid); *
- * GetDynamicObjectPriority(objectid); *
- * SetDynamicObjectPriority(objectid,priority); *
- * GetDynamicObjectDatagram(objectid,data[]); *
- * SetDynamicObjectDatagram(objectid,data[]); *
- * RemoveDynamicObjectDatagram(objectid); *
- * bool:IsSetDynamicObjectDatagram(objectid); *
- * GetDynamicObjectInvertArea(objectid); *
- * SetDynamicObjectInvertArea(objectid,toggle); *
- * *
- * SAMP Functions: *
- * GetObjectPosAndRot(objectid,&Float:x,&Float:y,&Float:z,&Float:rx,&Float:ry,&Float:rz); *
- * SetObjectPosAndRot(objectid,Float:x,Float:y,Float:z,Float:rx,Float:ry,Float:rz); *
- * CountObjects(); *
- * CountPlayerObjects(playerid,bool:streamer = false); *
- * DestroyObjects(); *
- * DestroyPlayerObjects(playerid,bool:streamer = false); *
- * GangZoneDestroyAll(); *
- * *
- * Cube Functions: *
- * DestroyDynamicObjectsInCube(Float:minx,Float:miny,Float:minz,Float:maxx,Float:maxy,Float:maxz,worldid = -1,interiorid = -1); *
- * DestroyDynamicObjectsInCubeFM(modelid,Float:minx,Float:miny,Float:minz,Float:maxx,Float:maxy,Float:maxz,worldid = -1,interiorid = -1); *
- * bool:IsPointInArea(Float:x,Float:y,Float:z,Float:minx,Float:miny,Float:minz,Float:maxx,Float:maxy,Float:maxz); *
- * bool:IsPointInAreaEx(Float:x,Float:y,Float:z,Float:minx,Float:miny,Float:minz,Float:maxx,Float:maxy,Float:maxz,vw1,int1,vw2,int2); *
- * *
- * Vehicle Functions: *
- * CountVehicles(); *
- * DestroyVehicles(); *
- * DestroyVehicleDynamicObject(vehicleid); *
- * DeattachVehicleDynamicObject(vehicleid); *
- * GetVehicleDatagram(vehicleid,data[]); *
- * SetVehicleDatagram(vehicleid,data[]); *
- * RemoveVehicleDatagram(vehicleid); *
- * IsSetVehicleDatagram(vehicleid); *
- * *
- * Check Point Functions: *
- * GetDynamicCPPos(checkpointid,&Float:x,&Float:y,&Float:z); *
- * SetDynamicCPPos(checkpointid,Float:x,Float:y,Float:z); *
- * GetDynamicCPSize(checkpointid,&Float:size); *
- * SetDynamicCPSize(checkpointid,Float:size); *
- * GetDynamicCPVW(checkpointid); *
- * SetDynamicCPVW(checkpointid,worldid); *
- * GetDynamicCPINT(checkpointid); *
- * SetDynamicCPINT(checkpointid,interiorid); *
- * GetDynamicCPSD(checkpointid,&Float:streamdistance); *
- * SetDynamicCPSD(checkpointid,Float:streamdistance); *
- * GetDynamicCPArea(checkpointid); *
- * SetDynamicCPArea(checkpointid,areaid); *
- * GetDynamicCPPriority(checkpointid); *
- * SetDynamicCPPriority(checkpointid,priority); *
- * GetDynamicCPDatagram(checkpointid,data[]); *
- * SetDynamicCPDatagram(checkpointid,data[]); *
- * RemoveDynamicCPDatagram(checkpointid); *
- * bool:IsSetDynamicCPDatagram(checkpointid); *
- * GetDynamicCPInvertArea(checkpointid); *
- * SetDynamicCPInvertArea(checkpointid,toggle); *
- * *
- * Race Check Point Functions: *
- * GetDynamicRaceCPPos(checkpointid,&Float:x,&Float:y,&Float:z); *
- * SetDynamicRaceCPPos(checkpointid,Float:x,Float:y,Float:z); *
- * GetDynamicRaceCPNext(checkpointid,&Float:nextx,&Float:nexty,&Float:nextz); *
- * SetDynamicRaceCPNext(checkpointid,Float:nextx,Float:nexty,Float:nextz); *
- * GetDynamicRaceCPType(checkpointid); *
- * SetDynamicRaceCPType(checkpointid,type); *
- * GetDynamicRaceCPSize(checkpointid,&Float:size); *
- * SetDynamicRaceCPSize(checkpointid,Float:size); *
- * GetDynamicRaceCPVW(checkpointid); *
- * SetDynamicRaceCPVW(checkpointid,worldid); *
- * GetDynamicRaceCPINT(checkpointid); *
- * SetDynamicRaceCPINT(checkpointid,interiorid); *
- * GetDynamicRaceCPSD(checkpointid,&Float:streamdistance); *
- * SetDynamicRaceCPSD(checkpointid,Float:streamdistance); *
- * GetDynamicRaceCPArea(checkpointid); *
- * SetDynamicRaceCPArea(checkpointid,areaid); *
- * GetDynamicRaceCPPriority(checkpointid); *
- * SetDynamicRaceCPPriority(checkpointid,priority); *
- * GetDynamicRaceCPDatagram(checkpointid,data[]); *
- * SetDynamicRaceCPDatagram(checkpointid,data[]); *
- * RemoveDynamicRaceCPDatagram(checkpointid); *
- * bool:IsSetDynamicRaceCPDatagram(checkpointid); *
- * GetDynamicRaceCPInvertArea(checkpointid); *
- * SetDynamicRaceCPInvertArea(checkpointid,toggle); *
- * *
- * Player Functions: *
- * DestroyPlayerDynamicObject(playerid); *
- * DeattachPlayerDynamicObject(playerid); *
- * *
- * MapIcon Functions: *
- * GetDynamicMapIconPos(iconid,&Float:x,&Float:y,&Float:z); *
- * SetDynamicMapIconPos(iconid,Float:x,Float:y,Float:z); *
- * GetDynamicMapIconType(iconid); *
- * SetDynamicMapIconType(iconid,type); *
- * GetDynamicMapIconStyle(iconid); *
- * SetDynamicMapIconStyle(iconid,style); *
- * GetDynamicMapIconVW(iconid); *
- * SetDynamicMapIconVW(iconid,worldid); *
- * GetDynamicMapIconINT(iconid); *
- * SetDynamicMapIconINT(iconid,interiorid); *
- * GetDynamicMapIconSD(iconid,&Float:streamdistance); *
- * SetDynamicMapIconSD(iconid,Float:streamdistance); *
- * SetDynamicMapIconColor(iconid,color); *
- * GetDynamicMapIconColor(iconid); *
- * GetDynamicMapIconArea(iconid); *
- * SetDynamicMapIconArea(iconid,areaid); *
- * GetDynamicMapIconPriority(iconid); *
- * SetDynamicMapIconPriority(iconid,priority); *
- * GetDynamicMapIconDatagram(iconid,data[]); *
- * SetDynamicMapIconDatagram(iconid,data[]); *
- * RemoveDynamicMapIconDatagram(iconid); *
- * bool:IsSetDynamicMapIconDatagram(iconid); *
- * GetDynamicMapIconInvertArea(iconid); *
- * SetDynamicMapIconInvertArea(iconid,toggle); *
- * *
- * Pickup Functions: *
- * GetDynamicPickupPos(pickupid,&Float:x,&Float:y,&Float:z); *
- * SetDynamicPickupPos(pickupid,Float:x,Float:y,Float:z); *
- * GetDynamicPickupModel(pickupid); *
- * SetDynamicPickupModel(pickupid,modelid); *
- * GetDynamicPickupVW(pickupid); *
- * SetDynamicPickupVW(pickupid,worldid); *
- * GetDynamicPickupINT(pickupid); *
- * SetDynamicPickupINT(pickupid,interiorid); *
- * GetDynamicPickupSD(pickupid,&Float:streamdistance); *
- * SetDynamicPickupSD(pickupid,Float:streamdistance); *
- * GetDynamicPickupType(pickupid); *
- * SetDynamicPickupType(pickupid,type); *
- * GetDynamicPickupArea(pickupid); *
- * SetDynamicPickupArea(pickupid,areaid); *
- * GetDynamicPickupPriority(pickupid); *
- * SetDynamicPickupPriority(pickupid,priority); *
- * GetDynamicPickupDatagram(pickupid,data[]); *
- * SetDynamicPickupDatagram(pickupid,data[]); *
- * RemoveDynamicPickupDatagram(pickupid); *
- * bool:IsSetDynamicPickupDatagram(pickupid); *
- * GetDynamicPickupInvertArea(pickupid); *
- * SetDynamicPickupInvertArea(pickupid,toggle); *
- * *
- * 3DText Functions: *
- * GetDynamic3DTextPos(id,&Float:x,&Float:y,&Float:z); *
- * SetDynamic3DTextPos(id,Float:x,Float:y,Float:z); *
- * GetDynamic3DTextDD(id,Float:drawdistance); *
- * SetDynamic3DTextDD(id,Float:drawdistance); *
- * GetDynamic3DTextSD(id,&Float:streamdistance); *
- * SetDynamic3DTextSD(id,Float:streamdistance); *
- * GetDynamic3DTextVW(id); *
- * SetDynamic3DTextVW(id,worldid); *
- * GetDynamic3DTextINT(id); *
- * SetDynamic3DTextINT(id,interiorid); *
- * GetDynamic3DTextColor(id); *
- * SetDynamic3DTextColor(id,color); *
- * GetDynamic3DTextArea(id); *
- * SetDynamic3DTextArea(id,areaid); *
- * GetDynamic3DTextPriority(id); *
- * SetDynamic3DTextPriority(id,priority); *
- * SetDynamic3DTextTestLos(id,testlos); *
- * AttachDynamic3DTextToPlayer(id,attachedplayer); *
- * AttachDynamic3DTextToVehicle(id,attachedvehicle); *
- * GetDynamic3DTextDatagram(id,data[]); *
- * SetDynamic3DTextDatagram(id,data[]); *
- * RemoveDynamic3DTextDatagram(id); *
- * bool:IsSetDynamic3DTextDatagram(id); *
- * GetDynamic3DTextInvertArea(id); *
- * SetDynamic3DTextInvertArea(id,toggle); *
- * *
- * Area Functions: *
- * GetDynamicCirclePos(areaid,&Float:x,&Float:y); *
- * SetDynamicCirclePos(areaid,Float:x,Float:y); *
- * GetDynamicCylinderPos(areaid,&Float:x,&Float:y,&Float:minz,&Float:maxz); *
- * SetDynamicCylinderPos(areaid,Float:x,Float:y,Float:minz,Float:maxz); *
- * GetDynamicSpherePos(areaid,&Float:x,&Float:y,&Float:z); *
- * SetDynamicSpherePos(areaid,Float:x,Float:y,Float:z); *
- * GetDynamicRectanglePos(areaid,&Float:minx,&Float:miny,&Float:maxx,&Float:maxy); *
- * SetDynamicRectanglePos(areaid,Float:minx,Float:miny,Float:maxx,Float:maxy); *
- * GetDynamicCubePos(areaid,&Float:minx,&Float:miny,&Float:minz,&Float:maxx,&Float:maxy,&Float:maxz); *
- * SetDynamicCubePos(areaid,Float:minx,Float:miny,Float:minz,Float:maxx,Float:maxy,Float:maxz); *
- * GetDynamicCuboidPos(areaid,&Float:minx,&Float:miny,&Float:minz,&Float:maxx,&Float:maxy,&Float:maxz); *
- * SetDynamicCuboidPos(areaid,Float:minx,Float:miny,Float:minz,Float:maxx,Float:maxy,Float:maxz); *
- * GetDynamicAreaVW(areaid); *
- * SetDynamicAreaVW(areaid,worldid); *
- * GetDynamicAreaINT(areaid); *
- * SetDynamicAreaINT(areaid,interiorid); *
- * GetDynamicAreaSize(areaid,Float:size); *
- * SetDynamicAreaSize(areaid,Float:size); *
- * GetDynamicAreaDatagram(areaid,data[]); *
- * SetDynamicAreaDatagram(areaid,data[]); *
- * RemoveDynamicAreaDatagram(areaid); *
- * bool:IsSetDynamicAreaDatagram(areaid); *
- * *
- * Actor Functions: *
- * GetDynamicActorModel(actorid); *
- * SetDynamicActorModel(actorid,modelid); *
- * GetDynamicActorArea(actorid); *
- * SetDynamicActorArea(actorid,areaid); *
- * GetDynamicActorPriority(actorid); *
- * SetDynamicActorPriority(actorid,priority); *
- * GetDynamicActorSD(actorid,&Float:streamdistance); *
- * SetDynamicActorSD(actorid,Float:streamdistance); *
- * GetDynamicActorDatagram(actorid,data[]); *
- * SetDynamicActorDatagram(actorid,data[]); *
- * RemoveDynamicActorDatagram(actorid); *
- * IsSetDynamicActorDatagram(actorid); *
- * GetDynamicActorInterior(actorid); *
- * SetDynamicActorInterior(actorid,interiorid); *
- * DestroyAllDynamicActors(); *
- * CountDynamicActors(); *
- * GetDynamicActorInvertArea(actorid); *
- * SetDynamicActorInvertArea(actorid,toggle); *
- * *
- * Dynamic Vehicle Functions: *
- * SetDynamicVehicleModel(vehicleid,modelid); *
- * GetDynamicVehicleSiren(vehicleid); *
- * SetDynamicVehicleSiren(vehicleid,siren); *
- * GetDynamicVehicleRespawnTime(vehicleid); *
- * SetDynamicVehicleRespawnTime(vehicleid,respawndelay); *
- * GetDynamicVehicleArea(vehicleid); *
- * SetDynamicVehicleArea(vehicleid,areaid); *
- * GetDynamicVehiclePriority(vehicleid); *
- * SetDynamicVehiclePriority(vehicleid,priority); *
- * GetDynamicVehicleSD(vehicleid,&Float:streamdistance); *
- * SetDynamicVehicleSD(vehicleid,Float:streamdistance); *
- * GetDynamicVehicleInvertArea(vehicleid); *
- * SetDynamicVehicleInvertArea(vehicleid,toggle); *
- * GetDynamicVehicleDatagram(vehicleid,data[]); *
- * SetDynamicVehicleDatagram(vehicleid,data[]); *
- * RemoveDynamicVehicleDatagram(vehicleid); *
- * IsSetDynamicVehicleDatagram(vehicleid); *
- * DestroyAllDynamicVehicles(); *
- * CountDynamicVehicles(); *
- * *
- * Anti Area Functions: *
- * IsPointInAntiArea(areaid,Float:x,Float:y,Float:z); *
- * IsPlayerInAntiArea(playerid,areaid,recheck = 0); *
- * IsPlayerInAnyAntiArea(playerid,recheck = 0); *
- * IsAnyPlayerInAntiArea(areaid,recheck = 0); *
- * IsAnyPlayerInAnyAntiArea(recheck = 0); *
- * *
- * Anti Area Callbacks: *
- * OnPlayerEnterAntiArea(playerid,areaid); *
- * OnPlayerLeaveAntiArea(playerid,areaid); *
- * *
- * Pool Size Functions: *
- * GetDynamicObjectPoolSize(); *
- * GetDynamicPickupPoolSize(); *
- * GetDynamicCPPoolSize(); *
- * GetDynamicRaceCPPoolSize(); *
- * GetDynamicMapIconPoolSize(); *
- * GetDynamic3DTextPoolSize(); *
- * GetDynamicAreaPoolSize(); *
- * GetDynamicActorPoolSize(); *
- * GetDynamicVehiclePoolSize(); *
- * *
- * Update Functions: *
- * UpdateAllDynamicElements(); *
- * UpdateAllDynamicObjects(); *
- * UpdateAllDynamicPickups(); *
- * UpdateAllDynamicCPs(); *
- * UpdateAllDynamicRaceCPs(); *
- * UpdateAllDynamicMapIcons(); *
- * UpdateAllDynamic3DTextLabels(); *
- * UpdateAllDynamicAreas(); *
- * UpdateAllDynamicActors(); *
- * UpdateAllDynamicVehicles(); *
- * *
- * Foreach Functions: *
- * ForDynamicObjects(variable); *
- * ForDynamicPickups(variable); *
- * ForDynamicCPs(variable); *
- * ForDynamicRaceCPs(variable); *
- * ForDynamicMapIcons(variable); *
- * ForDynamic3DTextLabels(variable); *
- * ForDynamicAreas(variable); *
- * ForDynamicActors(variable); *
- * ForDynamicVehicles(variable); *
- * *
- * Nearest Item Functions: *
- * GetNearestVisibleItem(playerid,type); *
- * GetNearestVisibleObject(playerid); *
- * GetNearestVisiblePickup(playerid); *
- * GetNearestVisibleCP(playerid); *
- * GetNearestVisibleRaceCP(playerid); *
- * GetNearestVisibleMapIcon(playerid); *
- * GetNearestVisible3DText(playerid); *
- * GetNearestVisibleArea(playerid); *
- * GetNearestVisibleActor(playerid); *
- * GetNearestVisibleVehicle(playerid); *
- * *
- * Extended Functions: *
- * bool:IsValidStreamer(version); *
- * GetStreamerVersion(); *
- * GetValidStreamerVersion(); *
- * GetStreamerVersionName(name[], value = GET_STREAMER_VERSION, maxdest = sizeof name); *
- * CheckStreamerVersion(); *
- * GetStreamerDatagram(type,itemid,data[]); *
- * SetStreamerDatagram(type,itemid,data[]); *
- * RemoveStreamDatagram(type,itemid); *
- * bool:IsSetStreamerDatagram(type,itemid); *
- * GetStreamerSpecActiveCount(); *
- * *
- * Definitions: *
- * DEFAULT_VISIBLE_OBJECT *
- * DEFAULT_VISIBLE_PICKUP *
- * DEFAULT_VISIBLE_MAP_ICON *
- * DEFAULT_VISIBLE_3D_TEXT *
- * DEFAULT_VISIBLE_ACTOR *
- * INVALID_DYNAMIC_OBJECT_ID *
- * INVALID_DYNAMIC_PICKUP_ID *
- * INVALID_DYNAMIC_CP_ID *
- * INVALID_DYNAMIC_RACE_CP_ID *
- * INVALID_DYNAMIC_MAP_ICON_ID *
- * INVALID_DYNAMIC_3D_TEXT_ID *
- * INVALID_DYNAMIC_AREA_ID *
- * INVALID_DYNAMIC_ACTOR_ID *
- * INVALID_DYNAMIC_VEHICLE_ID *
- * INVALID_PICKUP_ID *
- * INVALID_STREAMER_COMPONENT *
- * MAX_STREAM_SIZE *
- * *
- * Fixes: *
- * DestroyDynamicObject -> Resets the variable after the destruction of the DynamicObject. *
- * DestroyDynamicPickup -> Resets the variable after the destruction of the DynamicPickup. *
- * DestroyDynamicCP -> Resets the variable after the destruction of the DynamicCP. *
- * DestroyDynamicRaceCP -> Resets the variable after the destruction of the DynamicRaceCP. *
- * DestroyDynamicMapIcon -> Resets the variable after the destruction of the DynamicMapIcon. *
- * DestroyDynamic3DTextLabel -> Resets the variable after the destruction of the Dynamic3DTextLabel. *
- * DestroyDynamicArea -> Resets the variable after the destruction of the DynamicArea. *
- * DestroyDynamicActor -> Resets the variable after the destruction of the DynamicActor. *
- * DestroyDynamicVehicle -> Resets the variable after the destruction of the DynamicVehicle. *
- * DestroyObject -> Resets the variable after the destruction of the Object. *
- * DestroyPlayerObject -> Resets the variable after the destruction of the PlayerObject. *
- * DestroyPickup -> Resets the variable after the destruction of the Pickup. *
- * Delete3DTextLabel -> Resets the variable after the destruction of the 3DTextLabel. *
- * DeletePlayer3DTextLabel -> Resets the variable after the destruction of the Player3DTextLabel. *
- * AttachDynamicObjectToObject -> Changes the priority of the parent to be greater than the priority of sub-objects. *
- * *
- *******************************************************************************************************************************************/
- /*
- //Check Version StreamerFunction.inc
- #if !defined _streamer_spec
- #error [ADM] You need StreamerFunction.inc v2.8.0 (github.com/AbyssMorgan/SA-MP/blob/master/include/SAM/StreamerFunction.inc)
- #elseif !defined Streamer_Spec_Version
- #error [ADM] Update you StreamerFunction.inc to v2.8.0 (github.com/AbyssMorgan/SA-MP/blob/master/include/SAM/StreamerFunction.inc)
- #elseif (Streamer_Spec_Version < 20800)
- #error [ADM] Update you StreamerFunction.inc to v2.8.0 (github.com/AbyssMorgan/SA-MP/blob/master/include/SAM/StreamerFunction.inc)
- #endif
- */
- #if defined _streamer_spec
- #endinput
- #endif
- #define _streamer_spec
- #if (!defined GetPlayerPoolSize || !defined GetSVarInt)
- #error [ADM] This include requires SA:MP version 0.3.7 (github.com/AbyssMorgan/SA-MP/blob/master/samp/include)
- #endif
- #if ((!defined Streamer_AppendArrayData) || (!defined INVALID_STREAMER_ID) || (!defined STREAMER_TYPE_ACTOR))
- #error [ADM] You need Streamer v2.9.1 (github.com/samp-incognito/samp-streamer-plugin/releases)
- #endif
- #if defined STREAMER_TYPE_VEHICLE
- #define SSpec_StreamerVehicle
- #endif
- #define Streamer_Spec_Version (20800) //a.b.c 10000*a+100*b+c
- #define Streamer_Spec_SAMP_Version "0.3.7"
- #define Valid_Streamer_Version (0x291)
- //Update Checker
- #if !defined HTTP
- #tryinclude <a_http>
- #endif
- #if !defined HTTP
- #error [ADM] Please include a_http.inc before StreamerFunction.inc
- #endif
- #if defined INVALID_DYNAMIC_OBJECT_ID
- #if (INVALID_DYNAMIC_OBJECT_ID != INVALID_STREAMER_ID)
- #error [ADM] Invalid DestroyDynamicObject Hook version. Invalid definition INVALID_DYNAMIC_OBJECT_ID
- #endif
- #undef INVALID_DYNAMIC_OBJECT_ID
- #endif
- #define INVALID_DYNAMIC_OBJECT_ID STREAMER_TAG_OBJECT INVALID_STREAMER_ID
- #define INVALID_DYNAMIC_PICKUP_ID STREAMER_TAG_PICKUP INVALID_STREAMER_ID
- #define INVALID_DYNAMIC_CP_ID STREAMER_TAG_CP INVALID_STREAMER_ID
- #define INVALID_DYNAMIC_RACE_CP_ID STREAMER_TAG_RACE_CP INVALID_STREAMER_ID
- #define INVALID_DYNAMIC_MAP_ICON_ID STREAMER_TAG_MAP_ICON INVALID_STREAMER_ID
- #define INVALID_DYNAMIC_3D_TEXT_ID STREAMER_TAG_3D_TEXT_LABEL INVALID_STREAMER_ID
- #define INVALID_DYNAMIC_AREA_ID STREAMER_TAG_AREA INVALID_STREAMER_ID
- #define INVALID_DYNAMIC_ACTOR_ID STREAMER_TAG_ACTOR INVALID_STREAMER_ID
- #if defined SSpec_StreamerVehicle
- #define INVALID_DYNAMIC_VEHICLE_ID STREAMER_TAG_VEHICLE INVALID_STREAMER_ID
- #endif
- #define DEFAULT_VISIBLE_OBJECT 500
- #define DEFAULT_VISIBLE_PICKUP 4096
- #define DEFAULT_VISIBLE_MAP_ICON 100
- #define DEFAULT_VISIBLE_3D_TEXT 1024
- #define DEFAULT_VISIBLE_ACTOR 1000
- #if defined SSpec_StreamerVehicle
- #define DEFAULT_VISIBLE_VEHICLE 2000
- #endif
- #if !defined INVALID_PICKUP_ID
- #define INVALID_PICKUP_ID -1
- #endif
- #if !defined MAX_STREAM_SIZE
- #define MAX_STREAM_SIZE 256
- #endif
- #if !defined INVALID_STREAMER_COMPONENT
- #define INVALID_STREAMER_COMPONENT -1
- #endif
- #define STREAMEX_VEHICLE 12
- #define StreamerSpec_Function:: stock
- #define StreamerSpec_Public::%0(%1) forward %0(%1); public %0(%1)
- #define StreamerSpec:: StreamerSpec_
- #if !defined isnull
- #define isnull(%1) ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
- #endif
- #define GET_STREAMER_VERSION 0xFFFFFFFF
- #define MOVE_OBJECT_STATE_STOP 0
- #define MOVE_OBJECT_STATE_MOVED 1
- #define MOVE_OBJECT_STATE_INVALID 2
- #define BULLET_HIT_TYPE_DYNAMIC_OBJECT 15
- #define GetStreamerVersion() Streamer_IncludeFileVersion
- #define GetValidStreamerVersion() Valid_Streamer_Version
- //DynamicObject
- #define GetDynamicObjectModel(%1) Streamer_GetIntData(STREAMER_TYPE_OBJECT,(%1),E_STREAMER_MODEL_ID)
- #define SetDynamicObjectModel(%1,%2) Streamer_SetIntData(STREAMER_TYPE_OBJECT,(%1),E_STREAMER_MODEL_ID,(%2))
- #define GetDynamicObjectINT(%1) Streamer_GetIntData(STREAMER_TYPE_OBJECT,(%1),E_STREAMER_INTERIOR_ID)
- #define SetDynamicObjectINT(%1,%2) Streamer_SetIntData(STREAMER_TYPE_OBJECT,(%1),E_STREAMER_INTERIOR_ID,(%2))
- #define GetDynamicObjectVW(%1) Streamer_GetIntData(STREAMER_TYPE_OBJECT,(%1),E_STREAMER_WORLD_ID)
- #define SetDynamicObjectVW(%1,%2) Streamer_SetIntData(STREAMER_TYPE_OBJECT,(%1),E_STREAMER_WORLD_ID,(%2))
- #define GetDynamicObjectSD(%1,%2) Streamer_GetFloatData(STREAMER_TYPE_OBJECT,(%1),E_STREAMER_STREAM_DISTANCE,(%2))
- #define SetDynamicObjectSD(%1,%2) Streamer_SetFloatData(STREAMER_TYPE_OBJECT,(%1),E_STREAMER_STREAM_DISTANCE,(%2))
- #define GetDynamicObjectDD(%1,%2) Streamer_GetFloatData(STREAMER_TYPE_OBJECT,(%1),E_STREAMER_DRAW_DISTANCE,(%2))
- #define SetDynamicObjectDD(%1,%2) Streamer_SetFloatData(STREAMER_TYPE_OBJECT,(%1),E_STREAMER_DRAW_DISTANCE,(%2))
- #define GetDynamicObjectMoveSpeed(%1,%2) Streamer_GetFloatData(STREAMER_TYPE_OBJECT,(%1),E_STREAMER_MOVE_SPEED,(%2))
- #define SetDynamicObjectMoveSpeed(%1,%2) Streamer_SetFloatData(STREAMER_TYPE_OBJECT,(%1),E_STREAMER_MOVE_SPEED,(%2))
- #define DeattachObjectDynamicObject(%1) Streamer_SetIntData(STREAMER_TYPE_OBJECT,(%1),E_STREAMER_ATTACHED_OBJECT,INVALID_STREAMER_ID)
- #define SetDynamicObjectAttachSync(%1,%2) Streamer_SetIntData(STREAMER_TYPE_OBJECT,(%1),E_STREAMER_SYNC_ROTATION,(%2))
- #define GetDynamicObjectArea(%1) STREAMER_TAG_AREA Streamer_GetIntData(STREAMER_TYPE_OBJECT,(%1),E_STREAMER_AREA_ID)
- #define SetDynamicObjectArea(%1,%2) Streamer_SetIntData(STREAMER_TYPE_OBJECT,(%1),E_STREAMER_AREA_ID,(_:%2))
- #define GetDynamicObjectPriority(%1) Streamer_GetIntData(STREAMER_TYPE_OBJECT,(%1),E_STREAMER_PRIORITY)
- #define SetDynamicObjectPriority(%1,%2) Streamer_SetIntData(STREAMER_TYPE_OBJECT,(%1),E_STREAMER_PRIORITY,(%2))
- #define GetDynamicObjectInvertArea(%1) Streamer_IsToggleItemInvAreas(STREAMER_TYPE_OBJECT,(%1))
- #define SetDynamicObjectInvertArea(%1,%2) Streamer_ToggleItemInvAreas(STREAMER_TYPE_OBJECT,(%1),(%2))
- #define GetDynamicObjectDatagram(%1,%2) GetStreamerDatagram(STREAMER_TYPE_OBJECT,(%1),(%2))
- #define SetDynamicObjectDatagram(%1,%2) SetStreamerDatagram(STREAMER_TYPE_OBJECT,(%1),(%2))
- #define RemoveDynamicObjectDatagram(%1) RemoveStreamDatagram(STREAMER_TYPE_OBJECT,(%1))
- #define IsSetDynamicObjectDatagram(%1) IsSetStreamerDatagram(STREAMER_TYPE_OBJECT,(%1))
- //DynamicPickup
- #define GetDynamicPickupModel(%1) Streamer_GetIntData(STREAMER_TYPE_PICKUP,(%1),E_STREAMER_MODEL_ID)
- #define SetDynamicPickupModel(%1,%2) Streamer_SetIntData(STREAMER_TYPE_PICKUP,(%1),E_STREAMER_MODEL_ID,(%2))
- #define GetDynamicPickupSD(%1,%2) Streamer_GetFloatData(STREAMER_TYPE_PICKUP,(%1),E_STREAMER_STREAM_DISTANCE,(%2))
- #define SetDynamicPickupSD(%1,%2) Streamer_SetFloatData(STREAMER_TYPE_PICKUP,(%1),E_STREAMER_STREAM_DISTANCE,(%2))
- #define GetDynamicPickupVW(%1) Streamer_GetIntData(STREAMER_TYPE_PICKUP,(%1),E_STREAMER_WORLD_ID)
- #define SetDynamicPickupVW(%1,%2) Streamer_SetIntData(STREAMER_TYPE_PICKUP,(%1),E_STREAMER_WORLD_ID,(%2))
- #define GetDynamicPickupINT(%1) Streamer_GetIntData(STREAMER_TYPE_PICKUP,(%1),E_STREAMER_INTERIOR_ID)
- #define SetDynamicPickupINT(%1,%2) Streamer_SetIntData(STREAMER_TYPE_PICKUP,(%1),E_STREAMER_INTERIOR_ID,(%2))
- #define GetDynamicPickupType(%1) Streamer_GetIntData(STREAMER_TYPE_PICKUP,(%1),E_STREAMER_TYPE)
- #define SetDynamicPickupType(%1,%2) Streamer_SetIntData(STREAMER_TYPE_PICKUP,(%1),E_STREAMER_TYPE,(%2))
- #define GetDynamicPickupArea(%1) STREAMER_TAG_AREA Streamer_GetIntData(STREAMER_TYPE_PICKUP,(%1),E_STREAMER_AREA_ID)
- #define SetDynamicPickupArea(%1,%2) Streamer_SetIntData(STREAMER_TYPE_PICKUP,(%1),E_STREAMER_AREA_ID,(_:%2))
- #define GetDynamicPickupPriority(%1) Streamer_GetIntData(STREAMER_TYPE_PICKUP,(%1),E_STREAMER_PRIORITY)
- #define SetDynamicPickupPriority(%1,%2) Streamer_SetIntData(STREAMER_TYPE_PICKUP,(%1),E_STREAMER_PRIORITY,(%2))
- #define GetDynamicPickupInvertArea(%1) Streamer_IsToggleItemInvAreas(STREAMER_TYPE_PICKUP,(%1))
- #define SetDynamicPickupInvertArea(%1,%2) Streamer_ToggleItemInvAreas(STREAMER_TYPE_PICKUP,(%1),(%2))
- #define GetDynamicPickupDatagram(%1,%2) GetStreamerDatagram(STREAMER_TYPE_PICKUP,(%1),(%2))
- #define SetDynamicPickupDatagram(%1,%2) SetStreamerDatagram(STREAMER_TYPE_PICKUP,(%1),(%2))
- #define RemoveDynamicPickupDatagram(%1) RemoveStreamDatagram(STREAMER_TYPE_PICKUP,(%1))
- #define IsSetDynamicPickupDatagram(%1) IsSetStreamerDatagram(STREAMER_TYPE_PICKUP,(%1))
- //DynamicCP
- #define GetDynamicCPSize(%1,%2) Streamer_GetFloatData(STREAMER_TYPE_CP,(%1),E_STREAMER_SIZE,(%2))
- #define SetDynamicCPSize(%1,%2) Streamer_SetFloatData(STREAMER_TYPE_CP,(%1),E_STREAMER_SIZE,(%2))
- #define GetDynamicCPArea(%1) STREAMER_TAG_AREA Streamer_GetIntData(STREAMER_TYPE_CP,(%1),E_STREAMER_AREA_ID)
- #define SetDynamicCPArea(%1,%2) Streamer_SetIntData(STREAMER_TYPE_CP,(%1),E_STREAMER_AREA_ID,(_:%2))
- #define GetDynamicCPPriority(%1) Streamer_GetIntData(STREAMER_TYPE_CP,(%1),E_STREAMER_PRIORITY)
- #define SetDynamicCPPriority(%1,%2) Streamer_SetIntData(STREAMER_TYPE_CP,(%1),E_STREAMER_PRIORITY,(%2))
- #define GetDynamicCPSD(%1,%2) Streamer_GetFloatData(STREAMER_TYPE_CP,(%1),E_STREAMER_STREAM_DISTANCE,(%2))
- #define SetDynamicCPSD(%1,%2) Streamer_SetFloatData(STREAMER_TYPE_CP,(%1),E_STREAMER_STREAM_DISTANCE,(%2))
- #define GetDynamicCPVW(%1) Streamer_GetIntData(STREAMER_TYPE_CP,(%1),E_STREAMER_WORLD_ID)
- #define SetDynamicCPVW(%1,%2) Streamer_SetIntData(STREAMER_TYPE_CP,(%1),E_STREAMER_WORLD_ID,(%2))
- #define GetDynamicCPINT(%1) Streamer_GetIntData(STREAMER_TYPE_CP,(%1),E_STREAMER_INTERIOR_ID)
- #define SetDynamicCPINT(%1,%2) Streamer_SetIntData(STREAMER_TYPE_CP,(%1),E_STREAMER_INTERIOR_ID,(%2))
- #define GetDynamicCPInvertArea(%1) Streamer_IsToggleItemInvAreas(STREAMER_TYPE_CP,(%1))
- #define SetDynamicCPInvertArea(%1,%2) Streamer_ToggleItemInvAreas(STREAMER_TYPE_CP,(%1),(%2))
- #define GetDynamicCPDatagram(%1,%2) GetStreamerDatagram(STREAMER_TYPE_CP,(%1),(%2))
- #define SetDynamicCPDatagram(%1,%2) SetStreamerDatagram(STREAMER_TYPE_CP,(%1),(%2))
- #define RemoveDynamicCPDatagram(%1) RemoveStreamDatagram(STREAMER_TYPE_CP,(%1))
- #define IsSetDynamicCPDatagram(%1) IsSetStreamerDatagram(STREAMER_TYPE_CP,(%1))
- //DynamicRaceCP
- #define GetDynamicRaceCPSize(%1,%2) Streamer_GetFloatData(STREAMER_TYPE_RACE_CP,(%1),E_STREAMER_SIZE,(%2))
- #define SetDynamicRaceCPSize(%1,%2) Streamer_SetFloatData(STREAMER_TYPE_RACE_CP,(%1),E_STREAMER_SIZE,(%2))
- #define GetDynamicRaceCPArea(%1) STREAMER_TAG_AREA Streamer_GetIntData(STREAMER_TYPE_RACE_CP,(%1),E_STREAMER_AREA_ID)
- #define SetDynamicRaceCPArea(%1,%2) Streamer_SetIntData(STREAMER_TYPE_RACE_CP,(%1),E_STREAMER_AREA_ID,(_:%2))
- #define GetDynamicRaceCPPriority(%1) Streamer_GetIntData(STREAMER_TYPE_RACE_CP,(%1),E_STREAMER_PRIORITY)
- #define SetDynamicRaceCPPriority(%1,%2) Streamer_SetIntData(STREAMER_TYPE_RACE_CP,(%1),E_STREAMER_PRIORITY,(%2))
- #define GetDynamicRaceCPSD(%1,%2) Streamer_GetFloatData(STREAMER_TYPE_RACE_CP,(%1),E_STREAMER_STREAM_DISTANCE,(%2))
- #define SetDynamicRaceCPSD(%1,%2) Streamer_SetFloatData(STREAMER_TYPE_RACE_CP,(%1),E_STREAMER_STREAM_DISTANCE,(%2))
- #define GetDynamicRaceCPType(%1) Streamer_GetIntData(STREAMER_TYPE_RACE_CP,(%1),E_STREAMER_TYPE)
- #define SetDynamicRaceCPType(%1,%2) Streamer_SetIntData(STREAMER_TYPE_RACE_CP,(%1),E_STREAMER_TYPE,(%2))
- #define GetDynamicRaceCPVW(%1) Streamer_GetIntData(STREAMER_TYPE_RACE_CP,(%1),E_STREAMER_WORLD_ID)
- #define SetDynamicRaceCPVW(%1,%2) Streamer_SetIntData(STREAMER_TYPE_RACE_CP,(%1),E_STREAMER_WORLD_ID,(%2))
- #define GetDynamicRaceCPINT(%1) Streamer_GetIntData(STREAMER_TYPE_RACE_CP,(%1),E_STREAMER_INTERIOR_ID)
- #define SetDynamicRaceCPINT(%1,%2) Streamer_SetIntData(STREAMER_TYPE_RACE_CP,(%1),E_STREAMER_INTERIOR_ID,(%2))
- #define GetDynamicRaceCPInvertArea(%1) Streamer_IsToggleItemInvAreas(STREAMER_TYPE_RACE_CP,(%1))
- #define SetDynamicRaceCPInvertArea(%1,%2) Streamer_ToggleItemInvAreas(STREAMER_TYPE_RACE_CP,(%1),(%2))
- #define GetDynamicRaceCPDatagram(%1,%2) GetStreamerDatagram(STREAMER_TYPE_RACE_CP,(%1),(%2))
- #define SetDynamicRaceCPDatagram(%1,%2) SetStreamerDatagram(STREAMER_TYPE_RACE_CP,(%1),(%2))
- #define RemoveDynamicRaceCPDatagram(%1) RemoveStreamDatagram(STREAMER_TYPE_RACE_CP,(%1))
- #define IsSetDynamicRaceCPDatagram(%1) IsSetStreamerDatagram(STREAMER_TYPE_RACE_CP,(%1))
- //DynamicMapIcon
- #define GetDynamicMapIconColor(%1) Streamer_GetIntData(STREAMER_TYPE_MAP_ICON,(%1),E_STREAMER_COLOR)
- #define SetDynamicMapIconColor(%1,%2) Streamer_SetIntData(STREAMER_TYPE_MAP_ICON,(%1),E_STREAMER_COLOR,(%2))
- #define GetDynamicMapIconArea(%1) STREAMER_TAG_AREA Streamer_GetIntData(STREAMER_TYPE_MAP_ICON,(%1),E_STREAMER_AREA_ID)
- #define SetDynamicMapIconArea(%1,%2) Streamer_SetIntData(STREAMER_TYPE_MAP_ICON,(%1),E_STREAMER_AREA_ID,(_:%2))
- #define GetDynamicMapIconPriority(%1) Streamer_GetIntData(STREAMER_TYPE_MAP_ICON,(%1),E_STREAMER_PRIORITY)
- #define SetDynamicMapIconPriority(%1,%2) Streamer_SetIntData(STREAMER_TYPE_MAP_ICON,(%1),E_STREAMER_PRIORITY,(%2))
- #define GetDynamicMapIconSD(%1,%2) Streamer_GetFloatData(STREAMER_TYPE_MAP_ICON,(%1),E_STREAMER_STREAM_DISTANCE,(%2))
- #define SetDynamicMapIconSD(%1,%2) Streamer_SetFloatData(STREAMER_TYPE_MAP_ICON,(%1),E_STREAMER_STREAM_DISTANCE,(%2))
- #define GetDynamicMapIconType(%1) Streamer_GetIntData(STREAMER_TYPE_MAP_ICON,(%1),E_STREAMER_TYPE)
- #define SetDynamicMapIconType(%1,%2) Streamer_SetIntData(STREAMER_TYPE_MAP_ICON,(%1),E_STREAMER_TYPE,(%2))
- #define GetDynamicMapIconVW(%1) Streamer_GetIntData(STREAMER_TYPE_MAP_ICON,(%1),E_STREAMER_WORLD_ID)
- #define SetDynamicMapIconVW(%1,%2) Streamer_SetIntData(STREAMER_TYPE_MAP_ICON,(%1),E_STREAMER_WORLD_ID,(%2))
- #define GetDynamicMapIconINT(%1) Streamer_GetIntData(STREAMER_TYPE_MAP_ICON,(%1),E_STREAMER_INTERIOR_ID)
- #define SetDynamicMapIconINT(%1,%2) Streamer_SetIntData(STREAMER_TYPE_MAP_ICON,(%1),E_STREAMER_INTERIOR_ID,(%2))
- #define GetDynamicMapIconStyle(%1) Streamer_GetIntData(STREAMER_TYPE_MAP_ICON,(%1),E_STREAMER_STYLE)
- #define SetDynamicMapIconStyle(%1,%2) Streamer_SetIntData(STREAMER_TYPE_MAP_ICON,(%1),E_STREAMER_STYLE,(%2))
- #define GetDynamicMapIconDatagram(%1,%2) GetStreamerDatagram(STREAMER_TYPE_MAP_ICON,(%1),(%2))
- #define SetDynamicMapIconDatagram(%1,%2) SetStreamerDatagram(STREAMER_TYPE_MAP_ICON,(%1),(%2))
- #define GetDynamicMapIconInvertArea(%1) Streamer_IsToggleItemInvAreas(STREAMER_TYPE_MAP_ICON,(%1))
- #define SetDynamicMapIconInvertArea(%1,%2) Streamer_ToggleItemInvAreas(STREAMER_TYPE_MAP_ICON,(%1),(%2))
- #define RemoveDynamicMapIconDatagram(%1) RemoveStreamDatagram(STREAMER_TYPE_MAP_ICON,(%1))
- #define IsSetDynamicMapIconDatagram(%1) IsSetStreamerDatagram(STREAMER_TYPE_MAP_ICON,(%1))
- //Dynamic3DText
- #define GetDynamic3DTextDD(%1,%2) Streamer_GetFloatData(STREAMER_TYPE_3D_TEXT_LABEL,(%1),E_STREAMER_DRAW_DISTANCE,(%2))
- #define SetDynamic3DTextDD(%1,%2) Streamer_SetFloatData(STREAMER_TYPE_3D_TEXT_LABEL,(%1),E_STREAMER_DRAW_DISTANCE,(%2))
- #define GetDynamic3DTextSD(%1,%2) Streamer_GetFloatData(STREAMER_TYPE_3D_TEXT_LABEL,(%1),E_STREAMER_STREAM_DISTANCE,(%2))
- #define SetDynamic3DTextSD(%1,%2) Streamer_SetFloatData(STREAMER_TYPE_3D_TEXT_LABEL,(%1),E_STREAMER_STREAM_DISTANCE,(%2))
- #define GetDynamic3DTextVW(%1) Streamer_GetIntData(STREAMER_TYPE_3D_TEXT_LABEL,(%1),E_STREAMER_WORLD_ID)
- #define SetDynamic3DTextVW(%1,%2) Streamer_SetIntData(STREAMER_TYPE_3D_TEXT_LABEL,(%1),E_STREAMER_WORLD_ID,(%2))
- #define GetDynamic3DTextINT(%1) Streamer_GetIntData(STREAMER_TYPE_3D_TEXT_LABEL,(%1),E_STREAMER_INTERIOR_ID)
- #define SetDynamic3DTextINT(%1,%2) Streamer_SetIntData(STREAMER_TYPE_3D_TEXT_LABEL,(%1),E_STREAMER_INTERIOR_ID,(%2))
- #define GetDynamic3DTextColor(%1) Streamer_GetIntData(STREAMER_TYPE_3D_TEXT_LABEL,(%1),E_STREAMER_COLOR)
- #define SetDynamic3DTextColor(%1,%2) Streamer_SetIntData(STREAMER_TYPE_3D_TEXT_LABEL,(%1),E_STREAMER_COLOR,(%2))
- #define SetDynamic3DTextTestLos(%1,%2) Streamer_SetIntData(STREAMER_TYPE_3D_TEXT_LABEL,(%1),E_STREAMER_TEST_LOS,(%2))
- #define AttachDynamic3DTextToPlayer(%1,%2) Streamer_SetIntData(STREAMER_TYPE_3D_TEXT_LABEL,(%1),E_STREAMER_ATTACHED_PLAYER,(%2))
- #define AttachDynamic3DTextToVehicle(%1,%2) Streamer_SetIntData(STREAMER_TYPE_3D_TEXT_LABEL,(%1),E_STREAMER_ATTACHED_VEHICLE,(%2))
- #define GetDynamic3DTextArea(%1) STREAMER_TAG_AREA Streamer_GetIntData(STREAMER_TYPE_3D_TEXT_LABEL,(%1),E_STREAMER_AREA_ID)
- #define SetDynamic3DTextArea(%1,%2) Streamer_SetIntData(STREAMER_TYPE_3D_TEXT_LABEL,(%1),E_STREAMER_AREA_ID,(_:%2))
- #define GetDynamic3DTextPriority(%1) Streamer_GetIntData(STREAMER_TYPE_3D_TEXT_LABEL,(%1),E_STREAMER_PRIORITY)
- #define SetDynamic3DTextPriority(%1,%2) Streamer_SetIntData(STREAMER_TYPE_3D_TEXT_LABEL,(%1),E_STREAMER_PRIORITY,(%2))
- #define GetDynamic3DTextInvertArea(%1) Streamer_IsToggleItemInvAreas(STREAMER_TYPE_3D_TEXT_LABEL,(%1))
- #define SetDynamic3DTextInvertArea(%1,%2) Streamer_ToggleItemInvAreas(STREAMER_TYPE_3D_TEXT_LABEL,(%1),(%2))
- #define GetDynamic3DTextDatagram(%1,%2) GetStreamerDatagram(STREAMER_TYPE_3D_TEXT_LABEL,(_:%1),(%2))
- #define SetDynamic3DTextDatagram(%1,%2) SetStreamerDatagram(STREAMER_TYPE_3D_TEXT_LABEL,(_:%1),(%2))
- #define RemoveDynamic3DTextDatagram(%1) RemoveStreamDatagram(STREAMER_TYPE_3D_TEXT_LABEL,(_:%1))
- #define IsSetDynamic3DTextDatagram(%1) IsSetStreamerDatagram(STREAMER_TYPE_3D_TEXT_LABEL,(_:%1))
- //DynamicArea
- #define GetDynamicAreaVW(%1) Streamer_GetIntData(STREAMER_TYPE_AREA,(%1),E_STREAMER_WORLD_ID)
- #define SetDynamicAreaVW(%1,%2) Streamer_SetIntData(STREAMER_TYPE_AREA,(%1),E_STREAMER_WORLD_ID,(%2))
- #define GetDynamicAreaINT(%1) Streamer_GetIntData(STREAMER_TYPE_AREA,(%1),E_STREAMER_INTERIOR_ID)
- #define SetDynamicAreaINT(%1,%2) Streamer_SetIntData(STREAMER_TYPE_AREA,(%1),E_STREAMER_INTERIOR_ID,(%2))
- #define GetDynamicAreaSize(%1,%2) Streamer_GetFloatData(STREAMER_TYPE_AREA,(%1),E_STREAMER_SIZE,(%2))
- #define SetDynamicAreaSize(%1,%2) Streamer_SetFloatData(STREAMER_TYPE_AREA,(%1),E_STREAMER_SIZE,(%2))
- #define GetDynamicAreaDatagram(%1,%2) GetStreamerDatagram(STREAMER_TYPE_AREA,(%1),(%2))
- #define SetDynamicAreaDatagram(%1,%2) SetStreamerDatagram(STREAMER_TYPE_AREA,(%1),(%2))
- #define RemoveDynamicAreaDatagram(%1) RemoveStreamDatagram(STREAMER_TYPE_AREA,(%1))
- #define IsSetDynamicAreaDatagram(%1) IsSetStreamerDatagram(STREAMER_TYPE_AREA,(%1))
- //DynamicActor
- #define GetDynamicActorModel(%1) Streamer_GetIntData(STREAMER_TYPE_ACTOR,(%1),E_STREAMER_MODEL_ID)
- #define SetDynamicActorModel(%1,%2) Streamer_SetIntData(STREAMER_TYPE_ACTOR,(%1),E_STREAMER_MODEL_ID,(%2))
- #define GetDynamicActorInterior(%1) Streamer_GetIntData(STREAMER_TYPE_ACTOR,(%1),E_STREAMER_INTERIOR_ID)
- #define SetDynamicActorInterior(%1,%2) Streamer_SetIntData(STREAMER_TYPE_ACTOR,(%1),E_STREAMER_INTERIOR_ID,(%2))
- #define GetDynamicActorArea(%1) STREAMER_TAG_AREA Streamer_GetIntData(STREAMER_TYPE_ACTOR,(%1),E_STREAMER_AREA_ID)
- #define SetDynamicActorArea(%1,%2) Streamer_SetIntData(STREAMER_TYPE_ACTOR,(%1),E_STREAMER_AREA_ID,(_:%2))
- #define GetDynamicActorPriority(%1) Streamer_GetIntData(STREAMER_TYPE_ACTOR,(%1),E_STREAMER_PRIORITY)
- #define SetDynamicActorPriority(%1,%2) Streamer_SetIntData(STREAMER_TYPE_ACTOR,(%1),E_STREAMER_PRIORITY,(%2))
- #define GetDynamicActorSD(%1,%2) Streamer_GetFloatData(STREAMER_TYPE_ACTOR,(%1),E_STREAMER_STREAM_DISTANCE,(%2))
- #define SetDynamicActorSD(%1,%2) Streamer_SetFloatData(STREAMER_TYPE_ACTOR,(%1),E_STREAMER_STREAM_DISTANCE,(%2))
- #define GetDynamicActorInvertArea(%1) Streamer_IsToggleItemInvAreas(STREAMER_TYPE_ACTOR,(%1))
- #define SetDynamicActorInvertArea(%1,%2) Streamer_ToggleItemInvAreas(STREAMER_TYPE_ACTOR,(%1),(%2))
- #define GetDynamicActorDatagram(%1,%2) GetStreamerDatagram(STREAMER_TYPE_ACTOR,(%1),(%2))
- #define SetDynamicActorDatagram(%1,%2) SetStreamerDatagram(STREAMER_TYPE_ACTOR,(%1),(%2))
- #define RemoveDynamicActorDatagram(%1) RemoveStreamDatagram(STREAMER_TYPE_ACTOR,(%1))
- #define IsSetDynamicActorDatagram(%1) IsSetStreamerDatagram(STREAMER_TYPE_ACTOR,(%1))
- #define DestroyAllDynamicActors() Streamer_DestroyAllItems(STREAMER_TYPE_ACTOR,1)
- #define CountDynamicActors() Streamer_CountItems(STREAMER_TYPE_ACTOR,1)
- //DynamicVehicle
- #if defined SSpec_StreamerVehicle
- #define SetDynamicVehicleModel(%1,%2) Streamer_SetIntData(STREAMER_TYPE_VEHICLE,(%1),E_STREAMER_MODEL_ID,(%2))
- #define GetDynamicVehicleSiren(%1) Streamer_GetIntData(STREAMER_TYPE_VEHICLE,(%1),E_STREAMER_SIREN)
- #define SetDynamicVehicleSiren(%1,%2) Streamer_SetIntData(STREAMER_TYPE_VEHICLE,(%1),E_STREAMER_SIREN,(%2))
- #define GetDynamicVehicleRespawnTime(%1) Streamer_GetIntData(STREAMER_TYPE_VEHICLE,(%1),E_STREAMER_RESPAWN_TIME)
- #define SetDynamicVehicleRespawnTime(%1,%2) Streamer_SetIntData(STREAMER_TYPE_VEHICLE,(%1),E_STREAMER_RESPAWN_TIME,(%2))
- #define GetDynamicVehicleArea(%1) STREAMER_TAG_AREA Streamer_GetIntData(STREAMER_TYPE_VEHICLE,(%1),E_STREAMER_AREA_ID)
- #define SetDynamicVehicleArea(%1,%2) Streamer_SetIntData(STREAMER_TYPE_VEHICLE,(%1),E_STREAMER_AREA_ID,(_:%2))
- #define GetDynamicVehiclePriority(%1) Streamer_GetIntData(STREAMER_TYPE_VEHICLE,(%1),E_STREAMER_PRIORITY)
- #define SetDynamicVehiclePriority(%1,%2) Streamer_SetIntData(STREAMER_TYPE_VEHICLE,(%1),E_STREAMER_PRIORITY,(%2))
- #define GetDynamicVehicleSD(%1,%2) Streamer_GetFloatData(STREAMER_TYPE_VEHICLE,(%1),E_STREAMER_STREAM_DISTANCE,(%2))
- #define SetDynamicVehicleSD(%1,%2) Streamer_SetFloatData(STREAMER_TYPE_VEHICLE,(%1),E_STREAMER_STREAM_DISTANCE,(%2))
- #define GetDynamicVehicleInvertArea(%1) Streamer_IsToggleItemInvAreas(STREAMER_TYPE_VEHICLE,(%1))
- #define SetDynamicVehicleInvertArea(%1,%2) Streamer_ToggleItemInvAreas(STREAMER_TYPE_VEHICLE,(%1),(%2))
- #define GetDynamicVehicleDatagram(%1,%2) GetStreamerDatagram(STREAMER_TYPE_VEHICLE,(%1),(%2))
- #define SetDynamicVehicleDatagram(%1,%2) SetStreamerDatagram(STREAMER_TYPE_VEHICLE,(%1),(%2))
- #define RemoveDynamicVehicleDatagram(%1) RemoveStreamDatagram(STREAMER_TYPE_VEHICLE,(%1))
- #define IsSetDynamicVehicleDatagram(%1) IsSetStreamerDatagram(STREAMER_TYPE_VEHICLE,(%1))
- #define DestroyAllDynamicVehicles() Streamer_DestroyAllItems(STREAMER_TYPE_VEHICLE,1)
- #define CountDynamicVehicles() Streamer_CountItems(STREAMER_TYPE_VEHICLE,1)
- #define GetDynamicVehiclePoolSize() Streamer_GetUpperBound(STREAMER_TYPE_VEHICLE)
- #define ForDynamicVehicles(%1) for(new STREAMER_TAG_VEHICLE %1 = STREAMER_TAG_VEHICLE 1, STREAMER_TAG_VEHICLE p_%1 = STREAMER_TAG_VEHICLE GetDynamicVehiclePoolSize(); _:%1 <= _:p_%1; STREAMER_TAG_VEHICLE ((_:%1)+=1))
- #define GetNearestVisibleVehicle(%0) GetNearestVisibleItem((%0),STREAMER_TYPE_VEHICLE)
-
- #endif
- //DynamicAntiArea
- #define IsPlayerInAntiArea(%0,%1,%2) (!IsPlayerInDynamicArea(%0,%1,%2))
- #define IsPlayerInAnyAntiArea(%0,%1) (!IsPlayerInAnyDynamicArea(%0,%1))
- #define IsAnyPlayerInAntiArea(%0,%1) (!IsAnyPlayerInDynamicArea(%0,%1))
- #define IsAnyPlayerInAnyAntiArea(%0) (!IsAnyPlayerInAnyDynamicArea(%0))
- #define IsPointInAntiArea(%0,%1,%2,%3) (!IsPointInDynamicArea(%0,%1,%2,%3))
- //Vehicle
- #define GetVehicleDatagram(%1,%2) GetStreamerDatagram(STREAMEX_VEHICLE,(%1),(%2))
- #define SetVehicleDatagram(%1,%2) SetStreamerDatagram(STREAMEX_VEHICLE,(%1),(%2))
- #define RemoveVehicleDatagram(%1) RemoveStreamDatagram(STREAMEX_VEHICLE,(%1))
- #define IsSetVehicleDatagram(%1) IsSetStreamerDatagram(STREAMEX_VEHICLE,(%1))
- //PoolSize
- #define GetDynamicObjectPoolSize() Streamer_GetUpperBound(STREAMER_TYPE_OBJECT)
- #define GetDynamicPickupPoolSize() Streamer_GetUpperBound(STREAMER_TYPE_PICKUP)
- #define GetDynamicCPPoolSize() Streamer_GetUpperBound(STREAMER_TYPE_CP)
- #define GetDynamicRaceCPPoolSize() Streamer_GetUpperBound(STREAMER_TYPE_RACE_CP)
- #define GetDynamicMapIconPoolSize() Streamer_GetUpperBound(STREAMER_TYPE_MAP_ICON)
- #define GetDynamic3DTextPoolSize() Streamer_GetUpperBound(STREAMER_TYPE_3D_TEXT_LABEL)
- #define GetDynamicAreaPoolSize() Streamer_GetUpperBound(STREAMER_TYPE_AREA)
- #define GetDynamicActorPoolSize() Streamer_GetUpperBound(STREAMER_TYPE_ACTOR)
- //Foreach
- #define ForDynamicObjects(%1) for(new STREAMER_TAG_OBJECT %1 = STREAMER_TAG_OBJECT 1, STREAMER_TAG_OBJECT p_%1 = STREAMER_TAG_OBJECT GetDynamicObjectPoolSize(); _:%1 <= _:p_%1; STREAMER_TAG_OBJECT ((_:%1)+=1))
- #define ForDynamicPickups(%1) for(new STREAMER_TAG_PICKUP %1 = STREAMER_TAG_PICKUP 1, STREAMER_TAG_PICKUP p_%1 = STREAMER_TAG_PICKUP GetDynamicPickupPoolSize(); _:%1 <= _:p_%1; STREAMER_TAG_PICKUP ((_:%1)+=1))
- #define ForDynamicCPs(%1) for(new STREAMER_TAG_CP %1 = STREAMER_TAG_CP 1, STREAMER_TAG_CP p_%1 = STREAMER_TAG_CP GetDynamicCPPoolSize(); _:%1 <= _:p_%1; STREAMER_TAG_CP ((_:%1)+=1))
- #define ForDynamicRaceCPs(%1) for(new STREAMER_TAG_RACE_CP %1 = STREAMER_TAG_RACE_CP 1, STREAMER_TAG_RACE_CP p_%1 = STREAMER_TAG_RACE_CP GetDynamicRaceCPPoolSize(); _:%1 <= _:p_%1; STREAMER_TAG_RACE_CP ((_:%1)+=1))
- #define ForDynamicMapIcons(%1) for(new STREAMER_TAG_MAP_ICON %1 = STREAMER_TAG_MAP_ICON 1, STREAMER_TAG_MAP_ICON p_%1 = STREAMER_TAG_MAP_ICON GetDynamicMapIconPoolSize(); _:%1 <= _:p_%1; STREAMER_TAG_MAP_ICON ((_:%1)+=1))
- #define ForDynamic3DTextLabels(%1) for(new STREAMER_TAG_3D_TEXT_LABEL %1 = STREAMER_TAG_3D_TEXT_LABEL 1, STREAMER_TAG_3D_TEXT_LABEL p_%1 = STREAMER_TAG_3D_TEXT_LABEL GetDynamic3DTextPoolSize(); _:%1 <= _:p_%1; STREAMER_TAG_3D_TEXT_LABEL ((_:%1)+=1))
- #define ForDynamicAreas(%1) for(new STREAMER_TAG_AREA %1 = STREAMER_TAG_AREA 1, STREAMER_TAG_AREA p_%1 = STREAMER_TAG_AREA GetDynamicAreaPoolSize(); _:%1 <= _:p_%1; STREAMER_TAG_AREA ((_:%1)+=1))
- #define ForDynamicActors(%1) for(new STREAMER_TAG_ACTOR %1 = STREAMER_TAG_ACTOR 1, STREAMER_TAG_ACTOR p_%1 = STREAMER_TAG_ACTOR GetDynamicActorPoolSize(); _:%1 <= _:p_%1; STREAMER_TAG_ACTOR ((_:%1)+=1))
- //GetNearestVisibleItem
- #define GetNearestVisibleObject(%0) GetNearestVisibleItem((%0),STREAMER_TYPE_OBJECT)
- #define GetNearestVisiblePickup(%0) GetNearestVisibleItem((%0),STREAMER_TYPE_PICKUP)
- #define GetNearestVisibleCP(%0) GetNearestVisibleItem((%0),STREAMER_TYPE_CP)
- #define GetNearestVisibleRaceCP(%0) GetNearestVisibleItem((%0),STREAMER_TYPE_RACE_CP)
- #define GetNearestVisibleMapIcon(%0) GetNearestVisibleItem((%0),STREAMER_TYPE_MAP_ICON)
- #define GetNearestVisible3DText(%0) GetNearestVisibleItem((%0),STREAMER_TYPE_3D_TEXT_LABEL)
- #define GetNearestVisibleArea(%0) GetNearestVisibleItem((%0),STREAMER_TYPE_AREA)
- #define GetNearestVisibleActor(%0) GetNearestVisibleItem((%0),STREAMER_TYPE_ACTOR)
- #define GetStreamerSpecActiveCount() GetSVarInt("ADM:StreamerSpec:ACTIVE")
- //extra names
- #define SetDynamic3DTextAttachPlayer AttachDynamic3DTextToPlayer
- #define SetDynamic3DTextAttachVehicle AttachDynamic3DTextToVehicle
- #define ResetDynamicObjectMaterial RemoveDynamicObjectMaterial
- #define ResetDynamicObjectMaterialAll RemoveDynamicObjectMaterialAll
- //Datagram
- StreamerSpec::Function:: GetStreamerDatagram(type,STREAMER_ALL_TAGS itemid,data[]){
- new address[32];
- format(address,sizeof(address),"Stream:%d:%d",type,_:itemid);
- GetSVarString(address,data,MAX_STREAM_SIZE);
- }
- StreamerSpec::Function:: SetStreamerDatagram(type,STREAMER_ALL_TAGS itemid,data[]){
- new address[32];
- format(address,sizeof(address),"Stream:%d:%d",type,_:itemid);
- SetSVarString(address,data);
- }
- StreamerSpec::Function:: RemoveStreamDatagram(type,STREAMER_ALL_TAGS itemid){
- new address[32];
- format(address,sizeof(address),"Stream:%d:%d",type,_:itemid);
- DeleteSVar(address);
- }
- StreamerSpec::Function:: bool:IsSetStreamerDatagram(type,STREAMER_ALL_TAGS itemid){
- new stream_data[MAX_STREAM_SIZE];
- GetStreamerDatagram(type,_:itemid,stream_data);
- if(isnull(stream_data)) return false;
- return true;
- }
- StreamerSpec::Function:: bool:IsValidStreamer(version){
- return (GetStreamerVersion() == version);
- }
- StreamerSpec::Function:: GetStreamerVersionName(name[], value = GET_STREAMER_VERSION, maxdest = sizeof name){
- if(value == GET_STREAMER_VERSION) value = GetStreamerVersion();
- new ver_str[10];
- format(ver_str,sizeof(ver_str),"%03x",value);
- format(name,maxdest,"%d.%d.%d",(ver_str[0]-48),(ver_str[1]-48),(ver_str[2]-48));
- }
- StreamerSpec::Function:: SetDynamicObjectPosAndRot(STREAMER_TAG_OBJECT objectid,Float:x,Float:y,Float:z,Float:rx,Float:ry,Float:rz){
- SetDynamicObjectPos(objectid,x,y,z);
- SetDynamicObjectRot(objectid,rx,ry,rz);
- }
- StreamerSpec::Function:: GetDynamicObjectPosAndRot(STREAMER_TAG_OBJECT objectid,&Float:x,&Float:y,&Float:z,&Float:rx,&Float:ry,&Float:rz){
- GetDynamicObjectPos(objectid,x,y,z);
- GetDynamicObjectRot(objectid,rx,ry,rz);
- }
- StreamerSpec::Function:: SetObjectPosAndRot(objectid,Float:x,Float:y,Float:z,Float:rx,Float:ry,Float:rz){
- SetObjectPos(objectid,x,y,z);
- SetObjectRot(objectid,rx,ry,rz);
- }
- StreamerSpec::Function:: GetObjectPosAndRot(objectid,&Float:x,&Float:y,&Float:z,&Float:rx,&Float:ry,&Float:rz){
- GetObjectPos(objectid,x,y,z);
- GetObjectRot(objectid,rx,ry,rz);
- }
- StreamerSpec::Function:: CountObjects(){
- new count = 0;
- for(new i = 0; i < MAX_OBJECTS; i++){
- if(IsValidObject(i)) count++;
- }
- return count;
- }
- StreamerSpec::Function:: DestroyObjects(){
- new count = 0;
- for(new i = 0; i < MAX_OBJECTS; i++){
- if(IsValidObject(i)){
- DestroyObject(i);
- count++;
- }
- }
- return count;
- }
- StreamerSpec::Function:: CountVehicles(){
- new count = 0;
- for(new i = 0, j = GetVehiclePoolSize(); i <= j; i++){
- if(IsValidVehicle(i)) count++;
- }
- return count;
- }
- StreamerSpec::Function:: DestroyVehicles(){
- new count = 0;
- for(new i = 0, j = GetVehiclePoolSize(); i <= j; i++){
- if(IsValidVehicle(i)){
- DestroyVehicle(i);
- count++;
- }
- }
- return count;
- }
- StreamerSpec::Function:: GangZoneDestroyAll(){
- for(new i = 0; i < MAX_GANG_ZONES; i++){
- GangZoneDestroy(i);
- }
- }
- StreamerSpec::Function:: CountPlayerObjects(playerid,bool:streamer = false){
- new count = 0;
- for(new i = 0; i < MAX_OBJECTS; i++){
- if(streamer){
- if(IsValidPlayerObject(playerid,i)){
- count++;
- }
- } else {
- if(Streamer_GetItemStreamerID(playerid,STREAMER_TYPE_OBJECT,i) == INVALID_STREAMER_ID){
- if(IsValidPlayerObject(playerid,i)){
- count++;
- }
- }
- }
- }
- return count;
- }
- StreamerSpec::Function:: DestroyPlayerObjects(playerid,bool:streamer = false){
- new count = 0;
- for(new i = 0; i < MAX_OBJECTS; i++){
- if(streamer){
- if(IsValidPlayerObject(playerid,i)){
- DestroyPlayerObject(playerid,i);
- count++;
- }
- } else {
- if(Streamer_GetItemStreamerID(playerid,STREAMER_TYPE_OBJECT,i) == INVALID_STREAMER_ID){
- if(IsValidPlayerObject(playerid,i)){
- DestroyPlayerObject(playerid,i);
- count++;
- }
- }
- }
- }
- return count;
- }
- StreamerSpec::Function:: RebuildDynamicObject(STREAMER_TAG_OBJECT objectid,modelid,Float:x,Float:y,Float:z,Float:rx,Float:ry,Float:rz,worldid = -1,interiorid = -1,playerid = -1,Float:streamdistance = STREAMER_OBJECT_SD,Float:drawdistance = STREAMER_OBJECT_DD,areaid = -1,priority = 0){
- if(!IsValidDynamicObject(objectid)) return 0;
- if(IsDynamicObjectMoving(objectid)) StopDynamicObject(objectid);
- SetDynamicObjectPosAndRot(objectid,x,y,z,rx,ry,rz);
- SetDynamicObjectModel(objectid,modelid);
- SetDynamicObjectVW(objectid,worldid);
- SetDynamicObjectINT(objectid,interiorid);
- SetDynamicObjectSD(objectid,streamdistance);
- SetDynamicObjectDD(objectid,drawdistance);
- SetDynamicObjectArea(objectid,areaid);
- SetDynamicObjectPriority(objectid,priority);
- return 1;
- }
- StreamerSpec::Function:: bool:IsPointInArea(Float:x,Float:y,Float:z,Float:minx,Float:miny,Float:minz,Float:maxx,Float:maxy,Float:maxz){
- if((x >= minx && x <= maxx) && (y >= miny && y <= maxy) && (z >= minz && z <= maxz)) return true;
- return false;
- }
- StreamerSpec::Function:: bool:IsPointInAreaEx(Float:x,Float:y,Float:z,Float:minx,Float:miny,Float:minz,Float:maxx,Float:maxy,Float:maxz,vw1 = -1,int1 = -1,vw2 = -1,int2 = -1){
- if((x >= minx && x <= maxx) && (y >= miny && y <= maxy) && (z >= minz && z <= maxz) && (vw1 == vw2) && (int1 == int2)) return true;
- return false;
- }
- StreamerSpec::Function:: DestroyDynamicObjectsInCube(Float:minx,Float:miny,Float:minz,Float:maxx,Float:maxy,Float:maxz,worldid = -1,interiorid = -1){
- new count = 0,Float:piox,Float:pioy,Float:pioz,pioVW,pioINT;
- ForDynamicObjects(i){
- if(IsValidDynamicObject(i)){
- GetDynamicObjectPos(i,piox,pioy,pioz);
- pioVW = GetDynamicObjectVW(i);
- pioINT = GetDynamicObjectINT(i);
- if(IsPointInArea(piox,pioy,pioz,minx,miny,minz,maxx,maxy,maxz)){
- if(((worldid == pioVW) || (worldid == -1)) && (interiorid == pioINT) || (interiorid == -1)){
- if(IsDynamicObjectMoving(i)) StopDynamicObject(i);
- DestroyDynamicObject(i);
- count++;
- }
- }
- }
- }
- return count;
- }
- StreamerSpec::Function:: DestroyDynamicObjectsInCubeFM(modelid,Float:minx,Float:miny,Float:minz,Float:maxx,Float:maxy,Float:maxz,worldid = -1,interiorid = -1){
- new count = 0,Float:piox,Float:pioy,Float:pioz,pioVW,pioINT;
- ForDynamicObjects(i){
- if(IsValidDynamicObject(i)){
- GetDynamicObjectPos(i,piox,pioy,pioz);
- pioVW = GetDynamicObjectVW(i);
- pioINT = GetDynamicObjectINT(i);
- if(IsPointInArea(piox,pioy,pioz,minx,miny,minz,maxx,maxy,maxz)){
- if(((worldid == pioVW) || (worldid == -1)) && ((interiorid == pioINT) || (interiorid == -1)) && (modelid == GetDynamicObjectModel(i))){
- if(IsDynamicObjectMoving(i)) StopDynamicObject(i);
- DestroyDynamicObject(i);
- count++;
- }
- }
- }
- }
- return count;
- }
- StreamerSpec::Function:: DestroyVehicleDynamicObject(vehicleid){
- new count = 0;
- ForDynamicObjects(i){
- if(IsValidDynamicObject(i)){
- if(Streamer_GetIntData(STREAMER_TYPE_OBJECT,i,E_STREAMER_ATTACHED_VEHICLE) == vehicleid){
- DestroyDynamicObject(i);
- count++;
- }
- }
- }
- return count;
- }
- StreamerSpec::Function:: DeattachVehicleDynamicObject(vehicleid){
- new count = 0;
- ForDynamicObjects(i){
- if(IsValidDynamicObject(i)){
- if(Streamer_GetIntData(STREAMER_TYPE_OBJECT,i,E_STREAMER_ATTACHED_VEHICLE) == vehicleid){
- Streamer_SetIntData(STREAMER_TYPE_OBJECT,i,E_STREAMER_ATTACHED_VEHICLE,INVALID_VEHICLE_ID);
- count++;
- }
- }
- }
- return count;
- }
- StreamerSpec::Function:: DeattachPlayerDynamicObject(playerid){
- new count = 0;
- ForDynamicObjects(i){
- if(IsValidDynamicObject(i)){
- if(Streamer_GetIntData(STREAMER_TYPE_OBJECT,i,E_STREAMER_ATTACHED_PLAYER) == playerid){
- Streamer_SetIntData(STREAMER_TYPE_OBJECT,i,E_STREAMER_ATTACHED_PLAYER,INVALID_PLAYER_ID);
- count++;
- }
- }
- }
- return count;
- }
- StreamerSpec::Function:: DestroyPlayerDynamicObject(playerid){
- new count = 0;
- ForDynamicObjects(i){
- if(IsValidDynamicObject(i)){
- if(Streamer_GetIntData(STREAMER_TYPE_OBJECT,i,E_STREAMER_ATTACHED_PLAYER) == playerid){
- DestroyDynamicObject(i);
- count++;
- }
- }
- }
- return count;
- }
- StreamerSpec::Function:: GetDynamicCPPos(STREAMER_TAG_CP checkpointid,&Float:x,&Float:y,&Float:z){
- Streamer_GetFloatData(STREAMER_TYPE_CP,checkpointid,E_STREAMER_X,x);
- Streamer_GetFloatData(STREAMER_TYPE_CP,checkpointid,E_STREAMER_Y,y);
- Streamer_GetFloatData(STREAMER_TYPE_CP,checkpointid,E_STREAMER_Z,z);
- }
- StreamerSpec::Function:: SetDynamicCPPos(STREAMER_TAG_CP checkpointid,Float:x,Float:y,Float:z){
- Streamer_SetFloatData(STREAMER_TYPE_CP,checkpointid,E_STREAMER_X,x);
- Streamer_SetFloatData(STREAMER_TYPE_CP,checkpointid,E_STREAMER_Y,y);
- Streamer_SetFloatData(STREAMER_TYPE_CP,checkpointid,E_STREAMER_Z,z);
- }
- StreamerSpec::Function:: GetDynamicRaceCPPos(STREAMER_TAG_RACE_CP checkpointid,&Float:x,&Float:y,&Float:z){
- Streamer_GetFloatData(STREAMER_TYPE_RACE_CP,checkpointid,E_STREAMER_X,x);
- Streamer_GetFloatData(STREAMER_TYPE_RACE_CP,checkpointid,E_STREAMER_Y,y);
- Streamer_GetFloatData(STREAMER_TYPE_RACE_CP,checkpointid,E_STREAMER_Z,z);
- }
- StreamerSpec::Function:: SetDynamicRaceCPPos(STREAMER_TAG_RACE_CP checkpointid,Float:x,Float:y,Float:z){
- Streamer_SetFloatData(STREAMER_TYPE_RACE_CP,checkpointid,E_STREAMER_X,x);
- Streamer_SetFloatData(STREAMER_TYPE_RACE_CP,checkpointid,E_STREAMER_Y,y);
- Streamer_SetFloatData(STREAMER_TYPE_RACE_CP,checkpointid,E_STREAMER_Z,z);
- }
- StreamerSpec::Function:: GetDynamicRaceCPNext(STREAMER_TAG_RACE_CP checkpointid,&Float:nextx,&Float:nexty,&Float:nextz){
- Streamer_GetFloatData(STREAMER_TYPE_RACE_CP,checkpointid,E_STREAMER_NEXT_X,nextx);
- Streamer_GetFloatData(STREAMER_TYPE_RACE_CP,checkpointid,E_STREAMER_NEXT_Y,nexty);
- Streamer_GetFloatData(STREAMER_TYPE_RACE_CP,checkpointid,E_STREAMER_NEXT_Z,nextz);
- }
- StreamerSpec::Function:: SetDynamicRaceCPNext(STREAMER_TAG_RACE_CP checkpointid,Float:nextx,Float:nexty,Float:nextz){
- Streamer_SetFloatData(STREAMER_TYPE_RACE_CP,checkpointid,E_STREAMER_NEXT_X,nextx);
- Streamer_SetFloatData(STREAMER_TYPE_RACE_CP,checkpointid,E_STREAMER_NEXT_Y,nexty);
- Streamer_SetFloatData(STREAMER_TYPE_RACE_CP,checkpointid,E_STREAMER_NEXT_Z,nextz);
- }
- StreamerSpec::Function:: GetDynamicObjectMovePos(STREAMER_TAG_OBJECT objectid,&Float:x,&Float:y,&Float:z){
- Streamer_GetFloatData(STREAMER_TYPE_OBJECT,objectid,E_STREAMER_MOVE_X,x);
- Streamer_GetFloatData(STREAMER_TYPE_OBJECT,objectid,E_STREAMER_MOVE_Y,y);
- Streamer_GetFloatData(STREAMER_TYPE_OBJECT,objectid,E_STREAMER_MOVE_Z,z);
- }
- StreamerSpec::Function:: GetDynamicObjectMoveRot(STREAMER_TAG_OBJECT objectid,&Float:rx,&Float:ry,&Float:rz){
- Streamer_GetFloatData(STREAMER_TYPE_OBJECT,objectid,E_STREAMER_MOVE_R_X,rx);
- Streamer_GetFloatData(STREAMER_TYPE_OBJECT,objectid,E_STREAMER_MOVE_R_Y,ry);
- Streamer_GetFloatData(STREAMER_TYPE_OBJECT,objectid,E_STREAMER_MOVE_R_Z,rz);
- }
- StreamerSpec::Function:: SetDynamicObjectMovePos(STREAMER_TAG_OBJECT objectid,Float:x,Float:y,Float:z){
- Streamer_SetFloatData(STREAMER_TYPE_OBJECT,objectid,E_STREAMER_MOVE_X,x);
- Streamer_SetFloatData(STREAMER_TYPE_OBJECT,objectid,E_STREAMER_MOVE_Y,y);
- Streamer_SetFloatData(STREAMER_TYPE_OBJECT,objectid,E_STREAMER_MOVE_Z,z);
- }
- StreamerSpec::Function:: SetDynamicObjectMoveRot(STREAMER_TAG_OBJECT objectid,Float:rx = -1000.0,Float:ry = -1000.0,Float:rz = -1000.0){
- Streamer_SetFloatData(STREAMER_TYPE_OBJECT,objectid,E_STREAMER_MOVE_R_X,rx);
- Streamer_SetFloatData(STREAMER_TYPE_OBJECT,objectid,E_STREAMER_MOVE_R_Y,ry);
- Streamer_SetFloatData(STREAMER_TYPE_OBJECT,objectid,E_STREAMER_MOVE_R_Z,rz);
- }
- StreamerSpec::Function:: GetDynamicPickupPos(STREAMER_TAG_PICKUP pickupid,&Float:x,&Float:y,&Float:z){
- Streamer_GetFloatData(STREAMER_TYPE_PICKUP,pickupid,E_STREAMER_X,x);
- Streamer_GetFloatData(STREAMER_TYPE_PICKUP,pickupid,E_STREAMER_Y,y);
- Streamer_GetFloatData(STREAMER_TYPE_PICKUP,pickupid,E_STREAMER_Z,z);
- }
- StreamerSpec::Function:: SetDynamicPickupPos(STREAMER_TAG_PICKUP pickupid,Float:x,Float:y,Float:z){
- Streamer_SetFloatData(STREAMER_TYPE_PICKUP,pickupid,E_STREAMER_X,x);
- Streamer_SetFloatData(STREAMER_TYPE_PICKUP,pickupid,E_STREAMER_Y,y);
- Streamer_SetFloatData(STREAMER_TYPE_PICKUP,pickupid,E_STREAMER_Z,z);
- }
- StreamerSpec::Function:: GetDynamicMapIconPos(STREAMER_TAG_MAP_ICON iconid,&Float:x,&Float:y,&Float:z){
- Streamer_GetFloatData(STREAMER_TYPE_MAP_ICON,iconid,E_STREAMER_X,x);
- Streamer_GetFloatData(STREAMER_TYPE_MAP_ICON,iconid,E_STREAMER_Y,y);
- Streamer_GetFloatData(STREAMER_TYPE_MAP_ICON,iconid,E_STREAMER_Z,z);
- }
- StreamerSpec::Function:: SetDynamicMapIconPos(STREAMER_TAG_MAP_ICON iconid,Float:x,Float:y,Float:z){
- Streamer_SetFloatData(STREAMER_TYPE_MAP_ICON,iconid,E_STREAMER_X,x);
- Streamer_SetFloatData(STREAMER_TYPE_MAP_ICON,iconid,E_STREAMER_Y,y);
- Streamer_SetFloatData(STREAMER_TYPE_MAP_ICON,iconid,E_STREAMER_Z,z);
- }
- StreamerSpec::Function:: GetDynamic3DTextPos(STREAMER_TAG_3D_TEXT_LABEL id,&Float:x,&Float:y,&Float:z){
- Streamer_GetFloatData(STREAMER_TYPE_3D_TEXT_LABEL,id,E_STREAMER_X,x);
- Streamer_GetFloatData(STREAMER_TYPE_3D_TEXT_LABEL,id,E_STREAMER_Y,y);
- Streamer_GetFloatData(STREAMER_TYPE_3D_TEXT_LABEL,id,E_STREAMER_Z,z);
- }
- StreamerSpec::Function:: SetDynamic3DTextPos(STREAMER_TAG_3D_TEXT_LABEL id,Float:x,Float:y,Float:z){
- Streamer_SetFloatData(STREAMER_TYPE_3D_TEXT_LABEL,id,E_STREAMER_X,x);
- Streamer_SetFloatData(STREAMER_TYPE_3D_TEXT_LABEL,id,E_STREAMER_Y,y);
- Streamer_SetFloatData(STREAMER_TYPE_3D_TEXT_LABEL,id,E_STREAMER_Z,z);
- }
- StreamerSpec::Function:: GetDynamicCirclePos(STREAMER_TAG_AREA areaid,&Float:x,&Float:y){
- Streamer_GetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_X,x);
- Streamer_GetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_Y,y);
- }
- StreamerSpec::Function:: SetDynamicCirclePos(STREAMER_TAG_AREA areaid,Float:x,Float:y){
- Streamer_SetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_X,x);
- Streamer_SetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_Y,y);
- }
- StreamerSpec::Function:: GetDynamicCylinderPos(STREAMER_TAG_AREA areaid,&Float:x,&Float:y,&Float:minz,&Float:maxz){
- Streamer_GetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_X,x);
- Streamer_GetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_Y,y);
- Streamer_GetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_MIN_Z,minz);
- Streamer_GetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_MAX_Z,maxz);
- }
- StreamerSpec::Function:: SetDynamicCylinderPos(STREAMER_TAG_AREA areaid,Float:x,Float:y,Float:minz,Float:maxz){
- Streamer_SetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_X,x);
- Streamer_SetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_Y,y);
- Streamer_SetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_MIN_Z,minz);
- Streamer_SetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_MAX_Z,maxz);
- }
- StreamerSpec::Function:: GetDynamicSpherePos(STREAMER_TAG_AREA areaid,&Float:x,&Float:y,&Float:z){
- Streamer_GetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_X,x);
- Streamer_GetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_Y,y);
- Streamer_GetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_Z,z);
- }
- StreamerSpec::Function:: SetDynamicSpherePos(STREAMER_TAG_AREA areaid,Float:x,Float:y,Float:z){
- Streamer_SetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_X,x);
- Streamer_SetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_Y,y);
- Streamer_SetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_Z,z);
- }
- StreamerSpec::Function:: GetDynamicCubePos(STREAMER_TAG_AREA areaid,&Float:minx,&Float:miny,&Float:minz,&Float:maxx,&Float:maxy,&Float:maxz){
- Streamer_GetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_MIN_X,minx);
- Streamer_GetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_MIN_Y,miny);
- Streamer_GetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_MIN_Z,minz);
- Streamer_GetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_MAX_X,maxx);
- Streamer_GetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_MAX_Y,maxy);
- Streamer_GetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_MAX_Z,maxz);
- }
- StreamerSpec::Function:: SetDynamicCubePos(STREAMER_TAG_AREA areaid,Float:minx,Float:miny,Float:minz,Float:maxx,Float:maxy,Float:maxz){
- Streamer_SetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_MIN_X,minx);
- Streamer_SetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_MIN_Y,miny);
- Streamer_SetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_MIN_Z,minz);
- Streamer_SetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_MAX_X,maxx);
- Streamer_SetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_MAX_Y,maxy);
- Streamer_SetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_MAX_Z,maxz);
- }
- StreamerSpec::Function:: GetDynamicRectanglePos(STREAMER_TAG_AREA areaid,&Float:minx,&Float:miny,&Float:maxx,&Float:maxy){
- Streamer_GetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_MIN_X,minx);
- Streamer_GetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_MIN_Y,miny);
- Streamer_GetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_MAX_X,maxx);
- Streamer_GetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_MAX_Y,maxy);
- }
- StreamerSpec::Function:: SetDynamicRectanglePos(STREAMER_TAG_AREA areaid,Float:minx,Float:miny,Float:maxx,Float:maxy){
- Streamer_SetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_MIN_X,minx);
- Streamer_SetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_MIN_Y,miny);
- Streamer_SetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_MAX_X,maxx);
- Streamer_SetFloatData(STREAMER_TYPE_AREA,areaid,E_STREAMER_MAX_Y,maxy);
- }
- StreamerSpec::Function:: DestroyDynamicObjectComponent(STREAMER_TAG_OBJECT objectid,type){
- new count = 0;
- switch(type){
- case STREAMER_TYPE_OBJECT: {
- ForDynamicObjects(i){
- if(Streamer_GetIntData(type,i,E_STREAMER_ATTACHED_OBJECT) == _:objectid){
- DestroyDynamicObject(i);
- count++;
- }
- }
- }
- case STREAMER_TYPE_AREA: {
- ForDynamicAreas(i){
- if(Streamer_GetIntData(type,i,E_STREAMER_ATTACHED_OBJECT) == _:objectid){
- DestroyDynamicArea(i);
- count++;
- }
- }
- }
- default: return INVALID_STREAMER_COMPONENT;
- }
- return count;
- }
- StreamerSpec::Function:: DeattachDynamicObjectComponent(STREAMER_TAG_OBJECT objectid,type){
- new count = 0;
- switch(type){
- case STREAMER_TYPE_OBJECT: {
- ForDynamicObjects(i){
- if(Streamer_GetIntData(type,i,E_STREAMER_ATTACHED_OBJECT) == _:objectid){
- Streamer_SetIntData(type,i,E_STREAMER_ATTACHED_OBJECT,INVALID_STREAMER_ID);
- count++;
- }
- }
- }
- case STREAMER_TYPE_AREA: {
- ForDynamicAreas(i){
- if(Streamer_GetIntData(type,i,E_STREAMER_ATTACHED_OBJECT) == _:objectid){
- Streamer_SetIntData(type,i,E_STREAMER_ATTACHED_OBJECT,INVALID_VEHICLE_ID);
- count++;
- }
- }
- }
- default: return INVALID_STREAMER_COMPONENT;
- }
- return count;
- }
- StreamerSpec::Function:: GetDynamicObjectMoveTime(STREAMER_TAG_OBJECT objectid,&objstate,&rtime=0){
- if(!IsValidDynamicObject(objectid)){
- objstate = MOVE_OBJECT_STATE_INVALID;
- rtime = 0;
- return rtime;
- } else if(IsDynamicObjectMoving(objectid)){
- new Float:piox,Float:pioy,Float:pioz,Float:piotx,Float:pioty,Float:piotz,Float:objspeed;
- GetDynamicObjectPos(objectid,piox,pioy,pioz);
- GetDynamicObjectMovePos(objectid,piotx,pioty,piotz);
- GetDynamicObjectMoveSpeed(objectid,objspeed);
- rtime = floatround((VectorSize(piox-piotx,pioy-pioty,pioz-piotz)/objspeed)*1000.0);
- objstate = MOVE_OBJECT_STATE_MOVED;
- return rtime;
- } else {
- objstate = MOVE_OBJECT_STATE_STOP;
- rtime = 0;
- return rtime;
- }
- }
- StreamerSpec::Function:: UpdateAllDynamicObjects(){
- for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++){
- Streamer_Update(i,STREAMER_TYPE_OBJECT);
- }
- }
- StreamerSpec::Function:: UpdateAllDynamicPickups(){
- for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++){
- Streamer_Update(i,STREAMER_TYPE_PICKUP);
- }
- }
- StreamerSpec::Function:: UpdateAllDynamicCPs(){
- for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++){
- Streamer_Update(i,STREAMER_TYPE_CP);
- }
- }
- StreamerSpec::Function:: UpdateAllDynamicRaceCPs(){
- for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++){
- Streamer_Update(i,STREAMER_TYPE_RACE_CP);
- }
- }
- StreamerSpec::Function:: UpdateAllDynamicMapIcons(){
- for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++){
- Streamer_Update(i,STREAMER_TYPE_MAP_ICON);
- }
- }
- StreamerSpec::Function:: UpdateAllDynamic3DTextLabels(){
- for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++){
- Streamer_Update(i,STREAMER_TYPE_3D_TEXT_LABEL);
- }
- }
- StreamerSpec::Function:: UpdateAllDynamicAreas(){
- for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++){
- Streamer_Update(i,STREAMER_TYPE_AREA);
- }
- }
- StreamerSpec::Function:: UpdateAllDynamicActors(){
- for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++){
- Streamer_Update(i,STREAMER_TYPE_ACTOR);
- }
- }
- #if defined SSpec_StreamerVehicle
- StreamerSpec::Function:: UpdateAllDynamicVehicles(){
- for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++){
- Streamer_Update(i,STREAMER_TYPE_VEHICLE);
- }
- }
- #endif
- StreamerSpec::Function:: UpdateAllDynamicElements(){
- for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++){
- Streamer_Update(i);
- }
- }
- StreamerSpec::Function:: RemoveDynamicObjectMaterial(STREAMER_TAG_OBJECT objectid,materialindex){
- SetDynamicObjectMaterial(objectid,materialindex,0,"","",0);
- SetDynamicObjectModel(objectid,GetDynamicObjectModel(objectid));
- }
- StreamerSpec::Function:: RemoveDynamicObjectMaterialAll(STREAMER_TAG_OBJECT objectid){
- for(new i = 0; i < 16; i++){
- if(IsDynamicObjectMaterialUsed(objectid,i)){
- SetDynamicObjectMaterial(objectid,i,0,"","",0);
- }
- }
- SetDynamicObjectModel(objectid,GetDynamicObjectModel(objectid));
- }
- StreamerSpec::Function:: CheckStreamerVersion(){
- if(!IsValidStreamer(GetValidStreamerVersion())){
- new str1[32], str2[32];
- GetStreamerVersionName(str1,GetStreamerVersion());
- GetStreamerVersionName(str2,GetValidStreamerVersion());
- if(GetSVarInt("ADM:Logging:Disable") == 0){
- printf("[ADM] Error: Your Streamer %s It is not compatible with this version Streamer Functions, update your Streamer to %s",str1,str2);
- }
- }
- }
- StreamerSpec::Function:: GetNearestVisibleItem(playerid,type){
- new Float:x, Float:y, Float:z, max_element, tmp_item, itemid = INVALID_STREAMER_ID,
- Float:min_radius = 20000.0, Float:distance, idx_max = 0, idx = 0;
-
- GetPlayerPos(playerid,x,y,z);
- idx_max = Streamer_CountVisibleItems(playerid,type,1);
- switch(type){
- case STREAMER_TYPE_OBJECT, STREAMER_TYPE_PICKUP, STREAMER_TYPE_MAP_ICON, STREAMER_TYPE_3D_TEXT_LABEL, STREAMER_TYPE_ACTOR: {
- max_element = Streamer_GetVisibleItems(type,playerid);
- while(idx <= max_element && idx_max > 0){
- if((tmp_item = Streamer_GetItemStreamerID(playerid,type,idx)) != INVALID_STREAMER_ID){
- idx_max--;
- Streamer_GetDistanceToItem(x,y,z,type,tmp_item,distance,3);
- if(distance < min_radius){
- itemid = tmp_item;
- min_radius = distance;
- }
- }
- idx++;
- }
- }
-
- #if defined SSpec_StreamerVehicle
- case STREAMER_TYPE_VEHICLE: {
- max_element = Streamer_GetVisibleItems(type,playerid);
- while(idx <= max_element && idx_max > 0){
- if((tmp_item = Streamer_GetItemStreamerID(playerid,type,idx)) != INVALID_STREAMER_ID){
- idx_max--;
- Streamer_GetDistanceToItem(x,y,z,type,tmp_item,distance,3);
- if(distance < min_radius){
- itemid = tmp_item;
- min_radius = distance;
- }
- }
- idx++;
- }
- }
- #endif
- case STREAMER_TYPE_CP: {
- itemid = GetPlayerVisibleDynamicCP(playerid);
- }
-
- case STREAMER_TYPE_RACE_CP: {
- itemid = GetPlayerVisibleDynamicRaceCP(playerid);
- }
-
- case STREAMER_TYPE_AREA: {
- max_element = GetDynamicAreaPoolSize(), idx = 1;
- while(idx <= max_element && idx_max > 0){
- if(IsValidDynamicArea(STREAMER_TAG_AREA idx)){
- if(Streamer_IsItemVisible(playerid,type,idx)){
- idx_max--;
- Streamer_GetDistanceToItem(x,y,z,type,tmp_item,distance,3);
- if(distance < min_radius){
- itemid = tmp_item;
- min_radius = distance;
- }
- }
- }
- idx++;
- }
- }
-
- default: return INVALID_STREAMER_ID;
- }
- return itemid;
- }
- #define GetDynamicCuboidPos GetDynamicCubePos
- #define SetDynamicCuboidPos SetDynamicCubePos
- /****************************************************************************************************
- * *
- * Fix Destroy Object Hook *
- * *
- ****************************************************************************************************/
- #if !defined DISABLE_STREAMER_SPEC_FIXES
- //Hook: DestroyDynamicObject
- StreamerSpec::Function:: SF_DestroyDynamicObject(&STREAMER_TAG_OBJECT objectid){
- new dobj = DestroyDynamicObject(objectid);
- objectid = INVALID_DYNAMIC_OBJECT_ID;
- return dobj;
- }
- #if defined _ALS_DestroyDynamicObject
- #undef DestroyDynamicObject
- #else
- #define _ALS_DestroyDynamicObject
- #endif
- #define DestroyDynamicObject SF_DestroyDynamicObject
- //Hook: DestroyDynamicPickup
- StreamerSpec::Function:: SF_DestroyDynamicPickup(&STREAMER_TAG_PICKUP pickupid){
- new dobj = DestroyDynamicPickup(pickupid);
- pickupid = INVALID_DYNAMIC_PICKUP_ID;
- return dobj;
- }
- #if defined _ALS_DestroyDynamicPickup
- #undef DestroyDynamicPickup
- #else
- #define _ALS_DestroyDynamicPickup
- #endif
- #define DestroyDynamicPickup SF_DestroyDynamicPickup
- //Hook: DestroyDynamicCP
- StreamerSpec::Function:: SF_DestroyDynamicCP(&STREAMER_TAG_CP checkpointid){
- new dobj = DestroyDynamicCP(checkpointid);
- checkpointid = INVALID_DYNAMIC_CP_ID;
- return dobj;
- }
- #if defined _ALS_DestroyDynamicCP
- #undef DestroyDynamicCP
- #else
- #define _ALS_DestroyDynamicCP
- #endif
- #define DestroyDynamicCP SF_DestroyDynamicCP
- //Hook: DestroyDynamicRaceCP
- StreamerSpec::Function:: SF_DestroyDynamicRaceCP(&STREAMER_TAG_RACE_CP checkpointid){
- new dobj = DestroyDynamicRaceCP(checkpointid);
- checkpointid = INVALID_DYNAMIC_RACE_CP_ID;
- return dobj;
- }
- #if defined _ALS_DestroyDynamicRaceCP
- #undef DestroyDynamicRaceCP
- #else
- #define _ALS_DestroyDynamicRaceCP
- #endif
- #define DestroyDynamicRaceCP SF_DestroyDynamicRaceCP
- //Hook: DestroyDynamicMapIcon
- StreamerSpec::Function:: SF_DestroyDynamicMapIcon(&STREAMER_TAG_MAP_ICON iconid){
- new dobj = DestroyDynamicMapIcon(iconid);
- iconid = INVALID_DYNAMIC_MAP_ICON_ID;
- return dobj;
- }
- #if defined _ALS_DestroyDynamicMapIcon
- #undef DestroyDynamicMapIcon
- #else
- #define _ALS_DestroyDynamicMapIcon
- #endif
- #define DestroyDynamicMapIcon SF_DestroyDynamicMapIcon
- //Hook: DestroyDynamic3DTextLabel
- StreamerSpec::Function:: SF_DestroyDynamic3DTextLabel(&STREAMER_TAG_3D_TEXT_LABEL id){
- new dobj = DestroyDynamic3DTextLabel(id);
- id = INVALID_DYNAMIC_3D_TEXT_ID;
- return dobj;
- }
- #if defined _ALS_DestroyDynamic3DTextLabel
- #undef DestroyDynamic3DTextLabel
- #else
- #define _ALS_DestroyDynamic3DTextLabel
- #endif
- #define DestroyDynamic3DTextLabel SF_DestroyDynamic3DTextLabel
- //Hook: DestroyDynamicArea
- StreamerSpec::Function:: SF_DestroyDynamicArea(&STREAMER_TAG_AREA areaid){
- new dobj = DestroyDynamicArea(areaid);
- areaid = INVALID_DYNAMIC_AREA_ID;
- return dobj;
- }
- #if defined _ALS_DestroyDynamicArea
- #undef DestroyDynamicArea
- #else
- #define _ALS_DestroyDynamicArea
- #endif
- #define DestroyDynamicArea SF_DestroyDynamicArea
-
- //Hook: DestroyDynamicActor
- StreamerSpec::Function:: SF_DestroyDynamicActor(&STREAMER_TAG_ACTOR actorid){
- new dobj = DestroyDynamicActor(actorid);
- actorid = INVALID_DYNAMIC_ACTOR_ID;
- return dobj;
- }
- #if defined _ALS_DestroyDynamicActor
- #undef DestroyDynamicActor
- #else
- #define _ALS_DestroyDynamicActor
- #endif
- #define DestroyDynamicActor SF_DestroyDynamicActor
-
- //Hook: AttachDynamicObjectToObject
- StreamerSpec::Function:: SF_AttachDynamicObjectToObject(STREAMER_TAG_OBJECT objectid,attachtoid,Float:offsetx,Float:offsety,Float:offsetz,Float:rx,Float:ry,Float:rz,syncrotation = 1){
- new dobj = AttachDynamicObjectToObject(objectid,attachtoid,offsetx,offsety,offsetz,rx,ry,rz,syncrotation);
- if(GetDynamicObjectPriority(objectid) <= GetDynamicObjectPriority(attachtoid)){
- SetDynamicObjectPriority(objectid,GetDynamicObjectPriority(attachtoid)+1);
- }
- return dobj;
- }
- #if defined _LS_AttachDynamicObjectToObject
- #undef AttachDynamicObjectToObject
- #else
- #define _LS_AttachDynamicObjectToObject
- #endif
- #define AttachDynamicObjectToObject SF_AttachDynamicObjectToObject
- //Hook: DestroyObject
- StreamerSpec::Function:: SF_DestroyObject(&objectid){
- new dobj = DestroyObject(objectid);
- objectid = INVALID_OBJECT_ID;
- return dobj;
- }
- #if defined _ALS_DestroyObject
- #undef DestroyObject
- #else
- #define _ALS_DestroyObject
- #endif
- #define DestroyObject SF_DestroyObject
- //Hook: DestroyPlayerObject
- StreamerSpec::Function:: SF_DestroyPlayerObject(playerid,&objectid){
- new dobj = DestroyPlayerObject(playerid,objectid);
- objectid = INVALID_OBJECT_ID;
- return dobj;
- }
- #if defined _ALS_DestroyPlayerObject
- #undef DestroyPlayerObject
- #else
- #define _ALS_DestroyPlayerObject
- #endif
- #define DestroyPlayerObject SF_DestroyPlayerObject
- //Hook: DestroyPickup
- StreamerSpec::Function:: SF_DestroyPickup(&pickupid){
- new dobj = DestroyPickup(pickupid);
- pickupid = INVALID_PICKUP_ID;
- return dobj;
- }
- #if defined _ALS_DestroyPickup
- #undef DestroyPickup
- #else
- #define _ALS_DestroyPickup
- #endif
- #define DestroyPickup SF_DestroyPickup
- //Hook: Delete3DTextLabel
- StreamerSpec::Function:: SF_Delete3DTextLabel(&Text3D:id){
- new dobj = Delete3DTextLabel(id);
- id = Text3D:INVALID_3DTEXT_ID;
- return dobj;
- }
- #if defined _ALS_Delete3DTextLabel
- #undef Delete3DTextLabel
- #else
- #define _ALS_Delete3DTextLabel
- #endif
- #define Delete3DTextLabel SF_Delete3DTextLabel
- //Hook: DeletePlayer3DTextLabel
- StreamerSpec::Function:: SF_DeletePlayer3DTextLabel(playerid,&PlayerText3D:id){
- new dobj = DeletePlayer3DTextLabel(playerid,id);
- id = PlayerText3D:INVALID_3DTEXT_ID;
- return dobj;
- }
- #if defined _ALS_DeletePlayer3DTextLabel
- #undef DeletePlayer3DTextLabel
- #else
- #define _ALS_DeletePlayer3DTextLabel
- #endif
- #define DeletePlayer3DTextLabel SF_DeletePlayer3DTextLabel
-
-
- #if defined SSpec_StreamerVehicle
- //Hook: DestroyDynamicVehicle
- StreamerSpec::Function:: SF_DestroyDynamicVehicle(&STREAMER_TAG_VEHICLE vehicleid){
- new dobj = DestroyDynamicVehicle(vehicleid);
- vehicleid = INVALID_DYNAMIC_VEHICLE_ID;
- return dobj;
- }
- #if defined _ALS_DestroyDynamicVehicle
- #undef DestroyDynamicVehicle
- #else
- #define _ALS_DestroyDynamicVehicle
- #endif
- #define DestroyDynamicVehicle SF_DestroyDynamicVehicle
- #endif
-
- #endif
- /****************************************************************************************************
- * *
- * DynamicAntiArea Hook *
- * *
- ****************************************************************************************************/
- #if defined OnPlayerEnterAntiArea
- forward OnPlayerEnterAntiArea(playerid,STREAMER_TAG_AREA areaid);
- #endif
- #if defined OnPlayerLeaveAntiArea
- forward OnPlayerLeaveAntiArea(playerid,STREAMER_TAG_AREA areaid);
- #endif
- //Hook: OnPlayerEnterDynamicArea
- public OnPlayerEnterDynamicArea(playerid,STREAMER_TAG_AREA areaid){
- #if defined OnPlayerLeaveAntiArea
- OnPlayerLeaveAntiArea(playerid,areaid);
- #endif
- #if defined SSpec_OnPlayerEnterDynamicArea
- SSpec_OnPlayerEnterDynamicArea(playerid,areaid);
- #endif
- return 1;
- }
- #if defined _ALS_OnPlayerEnterDynamicArea
- #undef OnPlayerEnterDynamicArea
- #else
- #define _ALS_OnPlayerEnterDynamicArea
- #endif
- #define OnPlayerEnterDynamicArea SSpec_OnPlayerEnterDynamicArea
- #if defined SSpec_OnPlayerEnterDynamicArea
- forward SSpec_OnPlayerEnterDynamicArea(playerid,STREAMER_TAG_AREA areaid);
- #endif
- //Hook: OnPlayerLeaveDynamicArea
- public OnPlayerLeaveDynamicArea(playerid,STREAMER_TAG_AREA areaid){
- #if defined OnPlayerEnterAntiArea
- OnPlayerEnterAntiArea(playerid,areaid);
- #endif
- #if defined SSpec_OnPlayerLeaveDynamicArea
- SSpec_OnPlayerLeaveDynamicArea(playerid,areaid);
- #endif
- return 1;
- }
- #if defined _ALS_OnPlayerLeaveDynamicArea
- #undef OnPlayerLeaveDynamicArea
- #else
- #define _ALS_OnPlayerLeaveDynamicArea
- #endif
- #define OnPlayerLeaveDynamicArea SSpec_OnPlayerLeaveDynamicArea
- #if defined SSpec_OnPlayerLeaveDynamicArea
- forward SSpec_OnPlayerLeaveDynamicArea(playerid,STREAMER_TAG_AREA areaid);
- #endif
- /****************************************************************************************************
- * *
- * OnPlayerWeaponShot for Streamer Object *
- * *
- ****************************************************************************************************/
- #if defined ENABLE_BULLET_DYNAMIC_OBJECT
- //Hook: OnPlayerShootDynamicObject
- public OnPlayerShootDynamicObject(playerid,weaponid,STREAMER_TAG_OBJECT objectid,Float:x,Float:y,Float:z){
- new Float:ox, Float:oy, Float:oz, Float:tx, Float:ty, Float:tz;
- GetPlayerLastShotVectors(playerid,ox,oy,oz,tx,ty,tz);
- #if defined OnPlayerWeaponShot
- OnPlayerWeaponShot(playerid,weaponid,BULLET_HIT_TYPE_DYNAMIC_OBJECT,0,tx,ty,tz);
- #endif
- #if defined SSpec_OnShootDynamicObject
- SSpec_OnShootDynamicObject(playerid,weaponid,objectid,x,y,z);
- #endif
- return 1;
- }
- #if defined _ALS_OnPlayerShootDynamicObject
- #undef OnPlayerShootDynamicObject
- #else
- #define _ALS_OnPlayerShootDynamicObject
- #endif
- #define OnPlayerShootDynamicObject SSpec_OnShootDynamicObject
- #if defined SSpec_OnShootDynamicObject
- forward SSpec_OnShootDynamicObject(playerid,weaponid,STREAMER_TAG_OBJECT objectid,Float:x,Float:y,Float:z);
- #endif
-
- #endif
- /****************************************************************************************************
- * *
- * FilterScript/GameMode Init Hook *
- * *
- ****************************************************************************************************/
- new bool:CRC_StreamerFunctionInit = true,
- bool:CRC_StreamerFunctionExit = true;
- StreamerSpec::Public:: SSpec_OnRequestResponse(index, response_code, data[]){
- if(response_code == 200){
- if(isnull(data)) return 0;
- new sspec_version[16], sspec_ver, sspec_file_ver = Streamer_Spec_Version;
- strmid(sspec_version,data,0,strlen(data));
- sspec_ver = strval(sspec_version);
- if(sspec_ver != sspec_file_ver){
- print(" ");
- printf("[ADM] Info: Please update your StreamerFunction include to v%d.%d.%d from here:",(sspec_ver / 10000),((sspec_ver % 10000) / 100),((sspec_ver % 10000) % 100));
- print("https://github.com/AbyssMorgan/SA-MP/blob/master/include/SAM/StreamerFunction.inc");
- print(" ");
- }
- }
- return 1;
- }
- StreamerSpec::Function:: StreamerSpecInit(){
- SetSVarInt("ADM:StreamerSpec:ACTIVE",GetStreamerSpecActiveCount()+1);
-
- //Welcome to StreamerFunction
- new ver_name[16];
- format(ver_name,sizeof(ver_name),"%d.%d.%d",(Streamer_Spec_Version / 10000),((Streamer_Spec_Version % 10000) / 100),((Streamer_Spec_Version % 10000) % 100));
- if(GetSVarInt("ADM:StreamerSpec:INIT") == 0){
- SetSVarInt("ADM:StreamerSpec:INIT",1);
- if(GetSVarInt("ADM:Logging:Disable") == 0){
- printf("[ADM] Info: Load Streamer Functions v%s for SA:MP %s by Abyss Morgan",ver_name,Streamer_Spec_SAMP_Version);
- }
- }
-
- if(GetSVarInt("ADM:StreamerSpec:VERCHECK") == 0){
- SetSVarInt("ADM:StreamerSpec:VERCHECK",1);
- new sspec_send_data[50];
- format(sspec_send_data,sizeof(sspec_send_data),"8.ct8.pl/sspec/check.php?version=%d",Streamer_Spec_Version);
- HTTP(1,HTTP_GET,sspec_send_data,"","SSpec_OnRequestResponse");
- }
-
- #if !defined DISABLE_STREAMER_SPEC_CHECK
- CheckStreamerVersion();
- #endif
- }
- StreamerSpec::Function:: StreamerSpecExit(){
- SetSVarInt("ADM:StreamerSpec:ACTIVE",GetStreamerSpecActiveCount()-1);
-
- //Goodbye StreamerSpec
- new ver_name[16];
- format(ver_name,sizeof(ver_name),"%d.%d.%d",(Streamer_Spec_Version / 10000),((Streamer_Spec_Version % 10000) / 100),((Streamer_Spec_Version % 10000) % 100));
- if(GetStreamerSpecActiveCount() == 0){
- SetSVarInt("ADM:StreamerSpec:INIT",0);
- if(GetSVarInt("ADM:Logging:Disable") == 0){
- printf("[ADM] Info: Unload Streamer Functions v%s for SA:MP %s by Abyss Morgan",ver_name,Streamer_Spec_SAMP_Version);
- }
- }
- }
- //Hook: OnFilterScriptInit
- public OnFilterScriptInit(){
- if(CRC_StreamerFunctionInit){
- CRC_StreamerFunctionInit = false;
- StreamerSpecInit();
- }
- #if defined SSpec_OnFilterScriptInit
- SSpec_OnFilterScriptInit();
- #endif
- return 1;
- }
- #if defined _ALS_OnFilterScriptInit
- #undef OnFilterScriptInit
- #else
- #define _ALS_OnFilterScriptInit
- #endif
- #define OnFilterScriptInit SSpec_OnFilterScriptInit
- #if defined SSpec_OnFilterScriptInit
- forward SSpec_OnFilterScriptInit();
- #endif
- //Hook: OnGameModeInit
- public OnGameModeInit(){
- if(CRC_StreamerFunctionInit){
- CRC_StreamerFunctionInit = false;
- StreamerSpecInit();
- }
- #if defined SSpec_OnGameModeInit
- SSpec_OnGameModeInit();
- #endif
- return 1;
- }
- #if defined _ALS_OnGameModeInit
- #undef OnGameModeInit
- #else
- #define _ALS_OnGameModeInit
- #endif
- #define OnGameModeInit SSpec_OnGameModeInit
- #if defined SSpec_OnGameModeInit
- forward SSpec_OnGameModeInit();
- #endif
- //Hook: OnFilterScriptExit
- public OnFilterScriptExit(){
- if(CRC_StreamerFunctionExit){
- CRC_StreamerFunctionExit = false;
- StreamerSpecExit();
- }
- #if defined SSpec_OnFilterScriptExit
- SSpec_OnFilterScriptExit();
- #endif
- return 1;
- }
- #if defined _ALS_OnFilterScriptExit
- #undef OnFilterScriptExit
- #else
- #define _ALS_OnFilterScriptExit
- #endif
- #define OnFilterScriptExit SSpec_OnFilterScriptExit
- #if defined SSpec_OnFilterScriptExit
- forward SSpec_OnFilterScriptExit();
- #endif
- //Hook: OnGameModeExit
- public OnGameModeExit(){
- if(CRC_StreamerFunctionExit){
- CRC_StreamerFunctionExit = false;
- StreamerSpecExit();
- }
- #if defined SSpec_OnGameModeExit
- SSpec_OnGameModeExit();
- #endif
- return 1;
- }
- #if defined _ALS_OnGameModeExit
- #undef OnGameModeExit
- #else
- #define _ALS_OnGameModeExit
- #endif
- #define OnGameModeExit SSpec_OnGameModeExit
- #if defined SSpec_OnGameModeExit
- forward SSpec_OnGameModeExit();
- #endif
- //EOF
|