sa92.pwn 2.6 MB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191251922519325194251952519625197251982519925200252012520225203252042520525206252072520825209252102521125212252132521425215252162521725218252192522025221252222522325224252252522625227252282522925230252312523225233252342523525236252372523825239252402524125242252432524425245252462524725248252492525025251252522525325254252552525625257252582525925260252612526225263252642526525266252672526825269252702527125272252732527425275252762527725278252792528025281252822528325284252852528625287252882528925290252912529225293252942529525296252972529825299253002530125302253032530425305253062530725308253092531025311253122531325314253152531625317253182531925320253212532225323253242532525326253272532825329253302533125332253332533425335253362533725338253392534025341253422534325344253452534625347253482534925350253512535225353253542535525356253572535825359253602536125362253632536425365253662536725368253692537025371253722537325374253752537625377253782537925380253812538225383253842538525386253872538825389253902539125392253932539425395253962539725398253992540025401254022540325404254052540625407254082540925410254112541225413254142541525416254172541825419254202542125422254232542425425254262542725428254292543025431254322543325434254352543625437254382543925440254412544225443254442544525446254472544825449254502545125452254532545425455254562545725458254592546025461254622546325464254652546625467254682546925470254712547225473254742547525476254772547825479254802548125482254832548425485254862548725488254892549025491254922549325494254952549625497254982549925500255012550225503255042550525506255072550825509255102551125512255132551425515255162551725518255192552025521255222552325524255252552625527255282552925530255312553225533255342553525536255372553825539255402554125542255432554425545255462554725548255492555025551255522555325554255552555625557255582555925560255612556225563255642556525566255672556825569255702557125572255732557425575255762557725578255792558025581255822558325584255852558625587255882558925590255912559225593255942559525596255972559825599256002560125602256032560425605256062560725608256092561025611256122561325614256152561625617256182561925620256212562225623256242562525626256272562825629256302563125632256332563425635256362563725638256392564025641256422564325644256452564625647256482564925650256512565225653256542565525656256572565825659256602566125662256632566425665256662566725668256692567025671256722567325674256752567625677256782567925680256812568225683256842568525686256872568825689256902569125692256932569425695256962569725698256992570025701257022570325704257052570625707257082570925710257112571225713257142571525716257172571825719257202572125722257232572425725257262572725728257292573025731257322573325734257352573625737257382573925740257412574225743257442574525746257472574825749257502575125752257532575425755257562575725758257592576025761257622576325764257652576625767257682576925770257712577225773257742577525776257772577825779257802578125782257832578425785257862578725788257892579025791257922579325794257952579625797257982579925800258012580225803258042580525806258072580825809258102581125812258132581425815258162581725818258192582025821258222582325824258252582625827258282582925830258312583225833258342583525836258372583825839258402584125842258432584425845258462584725848258492585025851258522585325854258552585625857258582585925860258612586225863258642586525866258672586825869258702587125872258732587425875258762587725878258792588025881258822588325884258852588625887258882588925890258912589225893258942589525896258972589825899259002590125902259032590425905259062590725908259092591025911259122591325914259152591625917259182591925920259212592225923259242592525926259272592825929259302593125932259332593425935259362593725938259392594025941259422594325944259452594625947259482594925950259512595225953259542595525956259572595825959259602596125962259632596425965259662596725968259692597025971259722597325974259752597625977259782597925980259812598225983259842598525986259872598825989259902599125992259932599425995259962599725998259992600026001260022600326004260052600626007260082600926010260112601226013260142601526016260172601826019260202602126022260232602426025260262602726028260292603026031260322603326034260352603626037260382603926040260412604226043260442604526046260472604826049260502605126052260532605426055260562605726058260592606026061260622606326064260652606626067260682606926070260712607226073260742607526076260772607826079260802608126082260832608426085260862608726088260892609026091260922609326094260952609626097260982609926100261012610226103261042610526106261072610826109261102611126112261132611426115261162611726118261192612026121261222612326124261252612626127261282612926130261312613226133261342613526136261372613826139261402614126142261432614426145261462614726148261492615026151261522615326154261552615626157261582615926160261612616226163261642616526166261672616826169261702617126172261732617426175261762617726178261792618026181261822618326184261852618626187261882618926190261912619226193261942619526196261972619826199262002620126202262032620426205262062620726208262092621026211262122621326214262152621626217262182621926220262212622226223262242622526226262272622826229262302623126232262332623426235262362623726238262392624026241262422624326244262452624626247262482624926250262512625226253262542625526256262572625826259262602626126262262632626426265262662626726268262692627026271262722627326274262752627626277262782627926280262812628226283262842628526286262872628826289262902629126292262932629426295262962629726298262992630026301263022630326304263052630626307263082630926310263112631226313263142631526316263172631826319263202632126322263232632426325263262632726328263292633026331263322633326334263352633626337263382633926340263412634226343263442634526346263472634826349263502635126352263532635426355263562635726358263592636026361263622636326364263652636626367263682636926370263712637226373263742637526376263772637826379263802638126382263832638426385263862638726388263892639026391263922639326394263952639626397263982639926400264012640226403264042640526406264072640826409264102641126412264132641426415264162641726418264192642026421264222642326424264252642626427264282642926430264312643226433264342643526436264372643826439264402644126442264432644426445264462644726448264492645026451264522645326454264552645626457264582645926460264612646226463264642646526466264672646826469264702647126472264732647426475264762647726478264792648026481264822648326484264852648626487264882648926490264912649226493264942649526496264972649826499265002650126502265032650426505265062650726508265092651026511265122651326514265152651626517265182651926520265212652226523265242652526526265272652826529265302653126532265332653426535265362653726538265392654026541265422654326544265452654626547265482654926550265512655226553265542655526556265572655826559265602656126562265632656426565265662656726568265692657026571265722657326574265752657626577265782657926580265812658226583265842658526586265872658826589265902659126592265932659426595265962659726598265992660026601266022660326604266052660626607266082660926610266112661226613266142661526616266172661826619266202662126622266232662426625266262662726628266292663026631266322663326634266352663626637266382663926640266412664226643266442664526646266472664826649266502665126652266532665426655266562665726658266592666026661266622666326664266652666626667266682666926670266712667226673266742667526676266772667826679266802668126682266832668426685266862668726688266892669026691266922669326694266952669626697266982669926700267012670226703267042670526706267072670826709267102671126712267132671426715267162671726718267192672026721267222672326724267252672626727267282672926730267312673226733267342673526736267372673826739267402674126742267432674426745267462674726748267492675026751267522675326754267552675626757267582675926760267612676226763267642676526766267672676826769267702677126772267732677426775267762677726778267792678026781267822678326784267852678626787267882678926790267912679226793267942679526796267972679826799268002680126802268032680426805268062680726808268092681026811268122681326814268152681626817268182681926820268212682226823268242682526826268272682826829268302683126832268332683426835268362683726838268392684026841268422684326844268452684626847268482684926850268512685226853268542685526856268572685826859268602686126862268632686426865268662686726868268692687026871268722687326874268752687626877268782687926880268812688226883268842688526886268872688826889268902689126892268932689426895268962689726898268992690026901269022690326904269052690626907269082690926910269112691226913269142691526916269172691826919269202692126922269232692426925269262692726928269292693026931269322693326934269352693626937269382693926940269412694226943269442694526946269472694826949269502695126952269532695426955269562695726958269592696026961269622696326964269652696626967269682696926970269712697226973269742697526976269772697826979269802698126982269832698426985269862698726988269892699026991269922699326994269952699626997269982699927000270012700227003270042700527006270072700827009270102701127012270132701427015270162701727018270192702027021270222702327024270252702627027270282702927030270312703227033270342703527036270372703827039270402704127042270432704427045270462704727048270492705027051270522705327054270552705627057270582705927060270612706227063270642706527066270672706827069270702707127072270732707427075270762707727078270792708027081270822708327084270852708627087270882708927090270912709227093270942709527096270972709827099271002710127102271032710427105271062710727108271092711027111271122711327114271152711627117271182711927120271212712227123271242712527126271272712827129271302713127132271332713427135271362713727138271392714027141271422714327144271452714627147271482714927150271512715227153271542715527156271572715827159271602716127162271632716427165271662716727168271692717027171271722717327174271752717627177271782717927180271812718227183271842718527186271872718827189271902719127192271932719427195271962719727198271992720027201272022720327204272052720627207272082720927210272112721227213272142721527216272172721827219272202722127222272232722427225272262722727228272292723027231272322723327234272352723627237272382723927240272412724227243272442724527246272472724827249272502725127252272532725427255272562725727258272592726027261272622726327264272652726627267272682726927270272712727227273272742727527276272772727827279272802728127282272832728427285272862728727288272892729027291272922729327294272952729627297272982729927300273012730227303273042730527306273072730827309273102731127312273132731427315273162731727318273192732027321273222732327324273252732627327273282732927330273312733227333273342733527336273372733827339273402734127342273432734427345273462734727348273492735027351273522735327354273552735627357273582735927360273612736227363273642736527366273672736827369273702737127372273732737427375273762737727378273792738027381273822738327384273852738627387273882738927390273912739227393273942739527396273972739827399274002740127402274032740427405274062740727408274092741027411274122741327414274152741627417274182741927420274212742227423274242742527426274272742827429274302743127432274332743427435274362743727438274392744027441274422744327444274452744627447274482744927450274512745227453274542745527456274572745827459274602746127462274632746427465274662746727468274692747027471274722747327474274752747627477274782747927480274812748227483274842748527486274872748827489274902749127492274932749427495274962749727498274992750027501275022750327504275052750627507275082750927510275112751227513275142751527516275172751827519275202752127522275232752427525275262752727528275292753027531275322753327534275352753627537275382753927540275412754227543275442754527546275472754827549275502755127552275532755427555275562755727558275592756027561275622756327564275652756627567275682756927570275712757227573275742757527576275772757827579275802758127582275832758427585275862758727588275892759027591275922759327594275952759627597275982759927600276012760227603276042760527606276072760827609276102761127612276132761427615276162761727618276192762027621276222762327624276252762627627276282762927630276312763227633276342763527636276372763827639276402764127642276432764427645276462764727648276492765027651276522765327654276552765627657276582765927660276612766227663276642766527666276672766827669276702767127672276732767427675276762767727678276792768027681276822768327684276852768627687276882768927690276912769227693276942769527696276972769827699277002770127702277032770427705277062770727708277092771027711277122771327714277152771627717277182771927720277212772227723277242772527726277272772827729277302773127732277332773427735277362773727738277392774027741277422774327744277452774627747277482774927750277512775227753277542775527756277572775827759277602776127762277632776427765277662776727768277692777027771277722777327774277752777627777277782777927780277812778227783277842778527786277872778827789277902779127792277932779427795277962779727798277992780027801278022780327804278052780627807278082780927810278112781227813278142781527816278172781827819278202782127822278232782427825278262782727828278292783027831278322783327834278352783627837278382783927840278412784227843278442784527846278472784827849278502785127852278532785427855278562785727858278592786027861278622786327864278652786627867278682786927870278712787227873278742787527876278772787827879278802788127882278832788427885278862788727888278892789027891278922789327894278952789627897278982789927900279012790227903279042790527906279072790827909279102791127912279132791427915279162791727918279192792027921279222792327924279252792627927279282792927930279312793227933279342793527936279372793827939279402794127942279432794427945279462794727948279492795027951279522795327954279552795627957279582795927960279612796227963279642796527966279672796827969279702797127972279732797427975279762797727978279792798027981279822798327984279852798627987279882798927990279912799227993279942799527996279972799827999280002800128002280032800428005280062800728008280092801028011280122801328014280152801628017280182801928020280212802228023280242802528026280272802828029280302803128032280332803428035280362803728038280392804028041280422804328044280452804628047280482804928050280512805228053280542805528056280572805828059280602806128062280632806428065280662806728068280692807028071280722807328074280752807628077280782807928080280812808228083280842808528086280872808828089280902809128092280932809428095280962809728098280992810028101281022810328104281052810628107281082810928110281112811228113281142811528116281172811828119281202812128122281232812428125281262812728128281292813028131281322813328134281352813628137281382813928140281412814228143281442814528146281472814828149281502815128152281532815428155281562815728158281592816028161281622816328164281652816628167281682816928170281712817228173281742817528176281772817828179281802818128182281832818428185281862818728188281892819028191281922819328194281952819628197281982819928200282012820228203282042820528206282072820828209282102821128212282132821428215282162821728218282192822028221282222822328224282252822628227282282822928230282312823228233282342823528236282372823828239282402824128242282432824428245282462824728248282492825028251282522825328254282552825628257282582825928260282612826228263282642826528266282672826828269282702827128272282732827428275282762827728278282792828028281282822828328284282852828628287282882828928290282912829228293282942829528296282972829828299283002830128302283032830428305283062830728308283092831028311283122831328314283152831628317283182831928320283212832228323283242832528326283272832828329283302833128332283332833428335283362833728338283392834028341283422834328344283452834628347283482834928350283512835228353283542835528356283572835828359283602836128362283632836428365283662836728368283692837028371283722837328374283752837628377283782837928380283812838228383283842838528386283872838828389283902839128392283932839428395283962839728398283992840028401284022840328404284052840628407284082840928410284112841228413284142841528416284172841828419284202842128422284232842428425284262842728428284292843028431284322843328434284352843628437284382843928440284412844228443284442844528446284472844828449284502845128452284532845428455284562845728458284592846028461284622846328464284652846628467284682846928470284712847228473284742847528476284772847828479284802848128482284832848428485284862848728488284892849028491284922849328494284952849628497284982849928500285012850228503285042850528506285072850828509285102851128512285132851428515285162851728518285192852028521285222852328524285252852628527285282852928530285312853228533285342853528536285372853828539285402854128542285432854428545285462854728548285492855028551285522855328554285552855628557285582855928560285612856228563285642856528566285672856828569285702857128572285732857428575285762857728578285792858028581285822858328584285852858628587285882858928590285912859228593285942859528596285972859828599286002860128602286032860428605286062860728608286092861028611286122861328614286152861628617286182861928620286212862228623286242862528626286272862828629286302863128632286332863428635286362863728638286392864028641286422864328644286452864628647286482864928650286512865228653286542865528656286572865828659286602866128662286632866428665286662866728668286692867028671286722867328674286752867628677286782867928680286812868228683286842868528686286872868828689286902869128692286932869428695286962869728698286992870028701287022870328704287052870628707287082870928710287112871228713287142871528716287172871828719287202872128722287232872428725287262872728728287292873028731287322873328734287352873628737287382873928740287412874228743287442874528746287472874828749287502875128752287532875428755287562875728758287592876028761287622876328764287652876628767287682876928770287712877228773287742877528776287772877828779287802878128782287832878428785287862878728788287892879028791287922879328794287952879628797287982879928800288012880228803288042880528806288072880828809288102881128812288132881428815288162881728818288192882028821288222882328824288252882628827288282882928830288312883228833288342883528836288372883828839288402884128842288432884428845288462884728848288492885028851288522885328854288552885628857288582885928860288612886228863288642886528866288672886828869288702887128872288732887428875288762887728878288792888028881288822888328884288852888628887288882888928890288912889228893288942889528896288972889828899289002890128902289032890428905289062890728908289092891028911289122891328914289152891628917289182891928920289212892228923289242892528926289272892828929289302893128932289332893428935289362893728938289392894028941289422894328944289452894628947289482894928950289512895228953289542895528956289572895828959289602896128962289632896428965289662896728968289692897028971289722897328974289752897628977289782897928980289812898228983289842898528986289872898828989289902899128992289932899428995289962899728998289992900029001290022900329004290052900629007290082900929010290112901229013290142901529016290172901829019290202902129022290232902429025290262902729028290292903029031290322903329034290352903629037290382903929040290412904229043290442904529046290472904829049290502905129052290532905429055290562905729058290592906029061290622906329064290652906629067290682906929070290712907229073290742907529076290772907829079290802908129082290832908429085290862908729088290892909029091290922909329094290952909629097290982909929100291012910229103291042910529106291072910829109291102911129112291132911429115291162911729118291192912029121291222912329124291252912629127291282912929130291312913229133291342913529136291372913829139291402914129142291432914429145291462914729148291492915029151291522915329154291552915629157291582915929160291612916229163291642916529166291672916829169291702917129172291732917429175291762917729178291792918029181291822918329184291852918629187291882918929190291912919229193291942919529196291972919829199292002920129202292032920429205292062920729208292092921029211292122921329214292152921629217292182921929220292212922229223292242922529226292272922829229292302923129232292332923429235292362923729238292392924029241292422924329244292452924629247292482924929250292512925229253292542925529256292572925829259292602926129262292632926429265292662926729268292692927029271292722927329274292752927629277292782927929280292812928229283292842928529286292872928829289292902929129292292932929429295292962929729298292992930029301293022930329304293052930629307293082930929310293112931229313293142931529316293172931829319293202932129322293232932429325293262932729328293292933029331293322933329334293352933629337293382933929340293412934229343293442934529346293472934829349293502935129352293532935429355293562935729358293592936029361293622936329364293652936629367293682936929370293712937229373293742937529376293772937829379293802938129382293832938429385293862938729388293892939029391293922939329394293952939629397293982939929400294012940229403294042940529406294072940829409294102941129412294132941429415294162941729418294192942029421294222942329424294252942629427294282942929430294312943229433294342943529436294372943829439294402944129442294432944429445294462944729448294492945029451294522945329454294552945629457294582945929460294612946229463294642946529466294672946829469294702947129472294732947429475294762947729478294792948029481294822948329484294852948629487294882948929490294912949229493294942949529496294972949829499295002950129502295032950429505295062950729508295092951029511295122951329514295152951629517295182951929520295212952229523295242952529526295272952829529295302953129532295332953429535295362953729538295392954029541295422954329544295452954629547295482954929550295512955229553295542955529556295572955829559295602956129562295632956429565295662956729568295692957029571295722957329574295752957629577295782957929580295812958229583295842958529586295872958829589295902959129592295932959429595295962959729598295992960029601296022960329604296052960629607296082960929610296112961229613296142961529616296172961829619296202962129622296232962429625296262962729628296292963029631296322963329634296352963629637296382963929640296412964229643296442964529646296472964829649296502965129652296532965429655296562965729658296592966029661296622966329664296652966629667296682966929670296712967229673296742967529676296772967829679296802968129682296832968429685296862968729688296892969029691296922969329694296952969629697296982969929700297012970229703297042970529706297072970829709297102971129712297132971429715297162971729718297192972029721297222972329724297252972629727297282972929730297312973229733297342973529736297372973829739297402974129742297432974429745297462974729748297492975029751297522975329754297552975629757297582975929760297612976229763297642976529766297672976829769297702977129772297732977429775297762977729778297792978029781297822978329784297852978629787297882978929790297912979229793297942979529796297972979829799298002980129802298032980429805298062980729808298092981029811298122981329814298152981629817298182981929820298212982229823298242982529826298272982829829298302983129832298332983429835298362983729838298392984029841298422984329844298452984629847298482984929850298512985229853298542985529856298572985829859298602986129862298632986429865298662986729868298692987029871298722987329874298752987629877298782987929880298812988229883298842988529886298872988829889298902989129892298932989429895298962989729898298992990029901299022990329904299052990629907299082990929910299112991229913299142991529916299172991829919299202992129922299232992429925299262992729928299292993029931299322993329934299352993629937299382993929940299412994229943299442994529946299472994829949299502995129952299532995429955299562995729958299592996029961299622996329964299652996629967299682996929970299712997229973299742997529976299772997829979299802998129982299832998429985299862998729988299892999029991299922999329994299952999629997299982999930000300013000230003300043000530006300073000830009300103001130012300133001430015300163001730018300193002030021300223002330024300253002630027300283002930030300313003230033300343003530036300373003830039300403004130042300433004430045300463004730048300493005030051300523005330054300553005630057300583005930060300613006230063300643006530066300673006830069300703007130072300733007430075300763007730078300793008030081300823008330084300853008630087300883008930090300913009230093300943009530096300973009830099301003010130102301033010430105301063010730108301093011030111301123011330114301153011630117301183011930120301213012230123301243012530126301273012830129301303013130132301333013430135301363013730138301393014030141301423014330144301453014630147301483014930150301513015230153301543015530156301573015830159301603016130162301633016430165301663016730168301693017030171301723017330174301753017630177301783017930180301813018230183301843018530186301873018830189301903019130192301933019430195301963019730198301993020030201302023020330204302053020630207302083020930210302113021230213302143021530216302173021830219302203022130222302233022430225302263022730228302293023030231302323023330234302353023630237302383023930240302413024230243302443024530246302473024830249302503025130252302533025430255302563025730258302593026030261302623026330264302653026630267302683026930270302713027230273302743027530276302773027830279302803028130282302833028430285302863028730288302893029030291302923029330294302953029630297302983029930300303013030230303303043030530306303073030830309303103031130312303133031430315303163031730318303193032030321303223032330324303253032630327303283032930330303313033230333303343033530336303373033830339303403034130342303433034430345303463034730348303493035030351303523035330354303553035630357303583035930360303613036230363303643036530366303673036830369303703037130372303733037430375303763037730378303793038030381303823038330384303853038630387303883038930390303913039230393303943039530396303973039830399304003040130402304033040430405304063040730408304093041030411304123041330414304153041630417304183041930420304213042230423304243042530426304273042830429304303043130432304333043430435304363043730438304393044030441304423044330444304453044630447304483044930450304513045230453304543045530456304573045830459304603046130462304633046430465304663046730468304693047030471304723047330474304753047630477304783047930480304813048230483304843048530486304873048830489304903049130492304933049430495304963049730498304993050030501305023050330504305053050630507305083050930510305113051230513305143051530516305173051830519305203052130522305233052430525305263052730528305293053030531305323053330534305353053630537305383053930540305413054230543305443054530546305473054830549305503055130552305533055430555305563055730558305593056030561305623056330564305653056630567305683056930570305713057230573305743057530576305773057830579305803058130582305833058430585305863058730588305893059030591305923059330594305953059630597305983059930600306013060230603306043060530606306073060830609306103061130612306133061430615306163061730618306193062030621306223062330624306253062630627306283062930630306313063230633306343063530636306373063830639306403064130642306433064430645306463064730648306493065030651306523065330654306553065630657306583065930660306613066230663306643066530666306673066830669306703067130672306733067430675306763067730678306793068030681306823068330684306853068630687306883068930690306913069230693306943069530696306973069830699307003070130702307033070430705307063070730708307093071030711307123071330714307153071630717307183071930720307213072230723307243072530726307273072830729307303073130732307333073430735307363073730738307393074030741307423074330744307453074630747307483074930750307513075230753307543075530756307573075830759307603076130762307633076430765307663076730768307693077030771307723077330774307753077630777307783077930780307813078230783307843078530786307873078830789307903079130792307933079430795307963079730798307993080030801308023080330804308053080630807308083080930810308113081230813308143081530816308173081830819308203082130822308233082430825308263082730828308293083030831308323083330834308353083630837308383083930840308413084230843308443084530846308473084830849308503085130852308533085430855308563085730858308593086030861308623086330864308653086630867308683086930870308713087230873308743087530876308773087830879308803088130882308833088430885308863088730888308893089030891308923089330894308953089630897308983089930900309013090230903309043090530906309073090830909309103091130912309133091430915309163091730918309193092030921309223092330924309253092630927309283092930930309313093230933309343093530936309373093830939309403094130942309433094430945309463094730948309493095030951309523095330954309553095630957309583095930960309613096230963309643096530966309673096830969309703097130972309733097430975309763097730978309793098030981309823098330984309853098630987309883098930990309913099230993309943099530996309973099830999310003100131002310033100431005310063100731008310093101031011310123101331014310153101631017310183101931020310213102231023310243102531026310273102831029310303103131032310333103431035310363103731038310393104031041310423104331044310453104631047310483104931050310513105231053310543105531056310573105831059310603106131062310633106431065310663106731068310693107031071310723107331074310753107631077310783107931080310813108231083310843108531086310873108831089310903109131092310933109431095310963109731098310993110031101311023110331104311053110631107311083110931110311113111231113311143111531116311173111831119311203112131122311233112431125311263112731128311293113031131311323113331134311353113631137311383113931140311413114231143311443114531146311473114831149311503115131152311533115431155311563115731158311593116031161311623116331164311653116631167311683116931170311713117231173311743117531176311773117831179311803118131182311833118431185311863118731188311893119031191311923119331194311953119631197311983119931200312013120231203312043120531206312073120831209312103121131212312133121431215312163121731218312193122031221312223122331224312253122631227312283122931230312313123231233312343123531236312373123831239312403124131242312433124431245312463124731248312493125031251312523125331254312553125631257312583125931260312613126231263312643126531266312673126831269312703127131272312733127431275312763127731278312793128031281312823128331284312853128631287312883128931290312913129231293312943129531296312973129831299313003130131302313033130431305313063130731308313093131031311313123131331314313153131631317313183131931320313213132231323313243132531326313273132831329313303133131332313333133431335313363133731338313393134031341313423134331344313453134631347313483134931350313513135231353313543135531356313573135831359313603136131362313633136431365313663136731368313693137031371313723137331374313753137631377313783137931380313813138231383313843138531386313873138831389313903139131392313933139431395313963139731398313993140031401314023140331404314053140631407314083140931410314113141231413314143141531416314173141831419314203142131422314233142431425314263142731428314293143031431314323143331434314353143631437314383143931440314413144231443314443144531446314473144831449314503145131452314533145431455314563145731458314593146031461314623146331464314653146631467314683146931470314713147231473314743147531476314773147831479314803148131482314833148431485314863148731488314893149031491314923149331494314953149631497314983149931500315013150231503315043150531506315073150831509315103151131512315133151431515315163151731518315193152031521315223152331524315253152631527315283152931530315313153231533315343153531536315373153831539315403154131542315433154431545315463154731548315493155031551315523155331554315553155631557315583155931560315613156231563315643156531566315673156831569315703157131572315733157431575315763157731578315793158031581315823158331584315853158631587315883158931590315913159231593315943159531596315973159831599316003160131602316033160431605316063160731608316093161031611316123161331614316153161631617316183161931620316213162231623316243162531626316273162831629316303163131632316333163431635316363163731638316393164031641316423164331644316453164631647316483164931650316513165231653316543165531656316573165831659316603166131662316633166431665316663166731668316693167031671316723167331674316753167631677316783167931680316813168231683316843168531686316873168831689316903169131692316933169431695316963169731698316993170031701317023170331704317053170631707317083170931710317113171231713317143171531716317173171831719317203172131722317233172431725317263172731728317293173031731317323173331734317353173631737317383173931740317413174231743317443174531746317473174831749317503175131752317533175431755317563175731758317593176031761317623176331764317653176631767317683176931770317713177231773317743177531776317773177831779317803178131782317833178431785317863178731788317893179031791317923179331794317953179631797317983179931800318013180231803318043180531806318073180831809318103181131812318133181431815318163181731818318193182031821318223182331824318253182631827318283182931830318313183231833318343183531836318373183831839318403184131842318433184431845318463184731848318493185031851318523185331854318553185631857318583185931860318613186231863318643186531866318673186831869318703187131872318733187431875318763187731878318793188031881318823188331884318853188631887318883188931890318913189231893318943189531896318973189831899319003190131902319033190431905319063190731908319093191031911319123191331914319153191631917319183191931920319213192231923319243192531926319273192831929319303193131932319333193431935319363193731938319393194031941319423194331944319453194631947319483194931950319513195231953319543195531956319573195831959319603196131962319633196431965319663196731968319693197031971319723197331974319753197631977319783197931980319813198231983319843198531986319873198831989319903199131992319933199431995319963199731998319993200032001320023200332004320053200632007320083200932010320113201232013320143201532016320173201832019320203202132022320233202432025320263202732028320293203032031320323203332034320353203632037320383203932040320413204232043320443204532046320473204832049320503205132052320533205432055320563205732058320593206032061320623206332064320653206632067320683206932070320713207232073320743207532076320773207832079320803208132082320833208432085320863208732088320893209032091320923209332094320953209632097320983209932100321013210232103321043210532106321073210832109321103211132112321133211432115321163211732118321193212032121321223212332124321253212632127321283212932130321313213232133321343213532136321373213832139321403214132142321433214432145321463214732148321493215032151321523215332154321553215632157321583215932160321613216232163321643216532166321673216832169321703217132172321733217432175321763217732178321793218032181321823218332184321853218632187321883218932190321913219232193321943219532196321973219832199322003220132202322033220432205322063220732208322093221032211322123221332214322153221632217322183221932220322213222232223322243222532226322273222832229322303223132232322333223432235322363223732238322393224032241322423224332244322453224632247322483224932250322513225232253322543225532256322573225832259322603226132262322633226432265322663226732268322693227032271322723227332274322753227632277322783227932280322813228232283322843228532286322873228832289322903229132292322933229432295322963229732298322993230032301323023230332304323053230632307323083230932310323113231232313323143231532316323173231832319323203232132322323233232432325323263232732328323293233032331323323233332334323353233632337323383233932340323413234232343323443234532346323473234832349323503235132352323533235432355323563235732358323593236032361323623236332364323653236632367323683236932370323713237232373323743237532376323773237832379323803238132382323833238432385323863238732388323893239032391323923239332394323953239632397323983239932400324013240232403324043240532406324073240832409324103241132412324133241432415324163241732418324193242032421324223242332424324253242632427324283242932430324313243232433324343243532436324373243832439324403244132442324433244432445324463244732448324493245032451324523245332454324553245632457324583245932460324613246232463324643246532466324673246832469324703247132472324733247432475324763247732478324793248032481324823248332484324853248632487324883248932490324913249232493324943249532496324973249832499325003250132502325033250432505325063250732508325093251032511325123251332514325153251632517325183251932520325213252232523325243252532526325273252832529325303253132532325333253432535325363253732538325393254032541325423254332544325453254632547325483254932550325513255232553325543255532556325573255832559325603256132562325633256432565325663256732568325693257032571325723257332574325753257632577325783257932580325813258232583325843258532586325873258832589325903259132592325933259432595325963259732598325993260032601326023260332604326053260632607326083260932610326113261232613326143261532616326173261832619326203262132622326233262432625326263262732628326293263032631326323263332634326353263632637326383263932640326413264232643326443264532646326473264832649326503265132652326533265432655326563265732658326593266032661326623266332664326653266632667326683266932670326713267232673326743267532676326773267832679326803268132682326833268432685326863268732688326893269032691326923269332694326953269632697326983269932700327013270232703327043270532706327073270832709327103271132712327133271432715327163271732718327193272032721327223272332724327253272632727327283272932730327313273232733327343273532736327373273832739327403274132742327433274432745327463274732748327493275032751327523275332754327553275632757327583275932760327613276232763327643276532766327673276832769327703277132772327733277432775327763277732778327793278032781327823278332784327853278632787327883278932790327913279232793327943279532796327973279832799328003280132802328033280432805328063280732808328093281032811328123281332814328153281632817328183281932820328213282232823328243282532826328273282832829328303283132832328333283432835328363283732838328393284032841328423284332844328453284632847328483284932850328513285232853328543285532856328573285832859328603286132862328633286432865328663286732868328693287032871328723287332874328753287632877328783287932880328813288232883328843288532886328873288832889328903289132892328933289432895328963289732898328993290032901329023290332904329053290632907329083290932910329113291232913329143291532916329173291832919329203292132922329233292432925329263292732928329293293032931329323293332934329353293632937329383293932940329413294232943329443294532946329473294832949329503295132952329533295432955329563295732958329593296032961329623296332964329653296632967329683296932970329713297232973329743297532976329773297832979329803298132982329833298432985329863298732988329893299032991329923299332994329953299632997329983299933000330013300233003330043300533006330073300833009330103301133012330133301433015330163301733018330193302033021330223302333024330253302633027330283302933030330313303233033330343303533036330373303833039330403304133042330433304433045330463304733048330493305033051330523305333054330553305633057330583305933060330613306233063330643306533066330673306833069330703307133072330733307433075330763307733078330793308033081330823308333084330853308633087330883308933090330913309233093330943309533096330973309833099331003310133102331033310433105331063310733108331093311033111331123311333114331153311633117331183311933120331213312233123331243312533126331273312833129331303313133132331333313433135331363313733138331393314033141331423314333144331453314633147331483314933150331513315233153331543315533156331573315833159331603316133162331633316433165331663316733168331693317033171331723317333174331753317633177331783317933180331813318233183331843318533186331873318833189331903319133192331933319433195331963319733198331993320033201332023320333204332053320633207332083320933210332113321233213332143321533216332173321833219332203322133222332233322433225332263322733228332293323033231332323323333234332353323633237332383323933240332413324233243332443324533246332473324833249332503325133252332533325433255332563325733258332593326033261332623326333264332653326633267332683326933270332713327233273332743327533276332773327833279332803328133282332833328433285332863328733288332893329033291332923329333294332953329633297332983329933300333013330233303333043330533306333073330833309333103331133312333133331433315333163331733318333193332033321333223332333324333253332633327333283332933330333313333233333333343333533336333373333833339333403334133342333433334433345333463334733348333493335033351333523335333354333553335633357333583335933360333613336233363333643336533366333673336833369333703337133372333733337433375333763337733378333793338033381333823338333384333853338633387333883338933390333913339233393333943339533396333973339833399334003340133402334033340433405334063340733408334093341033411334123341333414334153341633417334183341933420334213342233423334243342533426334273342833429334303343133432334333343433435334363343733438334393344033441334423344333444334453344633447334483344933450334513345233453334543345533456334573345833459334603346133462334633346433465334663346733468334693347033471334723347333474334753347633477334783347933480334813348233483334843348533486334873348833489334903349133492334933349433495334963349733498334993350033501335023350333504335053350633507335083350933510335113351233513335143351533516335173351833519335203352133522335233352433525335263352733528335293353033531335323353333534335353353633537335383353933540335413354233543335443354533546335473354833549335503355133552335533355433555335563355733558335593356033561335623356333564335653356633567335683356933570335713357233573335743357533576335773357833579335803358133582335833358433585335863358733588335893359033591335923359333594335953359633597335983359933600336013360233603336043360533606336073360833609336103361133612336133361433615336163361733618336193362033621336223362333624336253362633627336283362933630336313363233633336343363533636336373363833639336403364133642336433364433645336463364733648336493365033651336523365333654336553365633657336583365933660336613366233663336643366533666336673366833669336703367133672336733367433675336763367733678336793368033681336823368333684336853368633687336883368933690336913369233693336943369533696336973369833699337003370133702337033370433705337063370733708337093371033711337123371333714337153371633717337183371933720337213372233723337243372533726337273372833729337303373133732337333373433735337363373733738337393374033741337423374333744337453374633747337483374933750337513375233753337543375533756337573375833759337603376133762337633376433765337663376733768337693377033771337723377333774337753377633777337783377933780337813378233783337843378533786337873378833789337903379133792337933379433795337963379733798337993380033801338023380333804338053380633807338083380933810338113381233813338143381533816338173381833819338203382133822338233382433825338263382733828338293383033831338323383333834338353383633837338383383933840338413384233843338443384533846338473384833849338503385133852338533385433855338563385733858338593386033861338623386333864338653386633867338683386933870338713387233873338743387533876338773387833879338803388133882338833388433885338863388733888338893389033891338923389333894338953389633897338983389933900339013390233903339043390533906339073390833909339103391133912339133391433915339163391733918339193392033921339223392333924339253392633927339283392933930339313393233933339343393533936339373393833939339403394133942339433394433945339463394733948339493395033951339523395333954339553395633957339583395933960339613396233963339643396533966339673396833969339703397133972339733397433975339763397733978339793398033981339823398333984339853398633987339883398933990339913399233993339943399533996339973399833999340003400134002340033400434005340063400734008340093401034011340123401334014340153401634017340183401934020340213402234023340243402534026340273402834029340303403134032340333403434035340363403734038340393404034041340423404334044340453404634047340483404934050340513405234053340543405534056340573405834059340603406134062340633406434065340663406734068340693407034071340723407334074340753407634077340783407934080340813408234083340843408534086340873408834089340903409134092340933409434095340963409734098340993410034101341023410334104341053410634107341083410934110341113411234113341143411534116341173411834119341203412134122341233412434125341263412734128341293413034131341323413334134341353413634137341383413934140341413414234143341443414534146341473414834149341503415134152341533415434155341563415734158341593416034161341623416334164341653416634167341683416934170341713417234173341743417534176341773417834179341803418134182341833418434185341863418734188341893419034191341923419334194341953419634197341983419934200342013420234203342043420534206342073420834209342103421134212342133421434215342163421734218342193422034221342223422334224342253422634227342283422934230342313423234233342343423534236342373423834239342403424134242342433424434245342463424734248342493425034251342523425334254342553425634257342583425934260342613426234263342643426534266342673426834269342703427134272342733427434275342763427734278342793428034281342823428334284342853428634287342883428934290342913429234293342943429534296342973429834299343003430134302343033430434305343063430734308343093431034311343123431334314343153431634317343183431934320343213432234323343243432534326343273432834329343303433134332343333433434335343363433734338343393434034341343423434334344343453434634347343483434934350343513435234353343543435534356343573435834359343603436134362343633436434365343663436734368343693437034371343723437334374343753437634377343783437934380343813438234383343843438534386343873438834389343903439134392343933439434395343963439734398343993440034401344023440334404344053440634407344083440934410344113441234413344143441534416344173441834419344203442134422344233442434425344263442734428344293443034431344323443334434344353443634437344383443934440344413444234443344443444534446344473444834449344503445134452344533445434455344563445734458344593446034461344623446334464344653446634467344683446934470344713447234473344743447534476344773447834479344803448134482344833448434485344863448734488344893449034491344923449334494344953449634497344983449934500345013450234503345043450534506345073450834509345103451134512345133451434515345163451734518345193452034521345223452334524345253452634527345283452934530345313453234533345343453534536345373453834539345403454134542345433454434545345463454734548345493455034551345523455334554345553455634557345583455934560345613456234563345643456534566345673456834569345703457134572345733457434575345763457734578345793458034581345823458334584345853458634587345883458934590345913459234593345943459534596345973459834599346003460134602346033460434605346063460734608346093461034611346123461334614346153461634617346183461934620346213462234623346243462534626346273462834629346303463134632346333463434635346363463734638346393464034641346423464334644346453464634647346483464934650346513465234653346543465534656346573465834659346603466134662346633466434665346663466734668346693467034671346723467334674346753467634677346783467934680346813468234683346843468534686346873468834689346903469134692346933469434695346963469734698346993470034701347023470334704347053470634707347083470934710347113471234713347143471534716347173471834719347203472134722347233472434725347263472734728347293473034731347323473334734347353473634737347383473934740347413474234743347443474534746347473474834749347503475134752347533475434755347563475734758347593476034761347623476334764347653476634767347683476934770347713477234773347743477534776347773477834779347803478134782347833478434785347863478734788347893479034791347923479334794347953479634797347983479934800348013480234803348043480534806348073480834809348103481134812348133481434815348163481734818348193482034821348223482334824348253482634827348283482934830348313483234833348343483534836348373483834839348403484134842348433484434845348463484734848348493485034851348523485334854348553485634857348583485934860348613486234863348643486534866348673486834869348703487134872348733487434875348763487734878348793488034881348823488334884348853488634887348883488934890348913489234893348943489534896348973489834899349003490134902349033490434905349063490734908349093491034911349123491334914349153491634917349183491934920349213492234923349243492534926349273492834929349303493134932349333493434935349363493734938349393494034941349423494334944349453494634947349483494934950349513495234953349543495534956349573495834959349603496134962349633496434965349663496734968349693497034971349723497334974349753497634977349783497934980349813498234983349843498534986349873498834989349903499134992349933499434995349963499734998349993500035001350023500335004350053500635007350083500935010350113501235013350143501535016350173501835019350203502135022350233502435025350263502735028350293503035031350323503335034350353503635037350383503935040350413504235043350443504535046350473504835049350503505135052350533505435055350563505735058350593506035061350623506335064350653506635067350683506935070350713507235073350743507535076350773507835079350803508135082350833508435085350863508735088350893509035091350923509335094350953509635097350983509935100351013510235103351043510535106351073510835109351103511135112351133511435115351163511735118351193512035121351223512335124351253512635127351283512935130351313513235133351343513535136351373513835139351403514135142351433514435145351463514735148351493515035151351523515335154351553515635157351583515935160351613516235163351643516535166351673516835169351703517135172351733517435175351763517735178351793518035181351823518335184351853518635187351883518935190351913519235193351943519535196351973519835199352003520135202352033520435205352063520735208352093521035211352123521335214352153521635217352183521935220352213522235223352243522535226352273522835229352303523135232352333523435235352363523735238352393524035241352423524335244352453524635247352483524935250352513525235253352543525535256352573525835259352603526135262352633526435265352663526735268352693527035271352723527335274352753527635277352783527935280352813528235283352843528535286352873528835289352903529135292352933529435295352963529735298352993530035301353023530335304353053530635307353083530935310353113531235313353143531535316353173531835319353203532135322353233532435325353263532735328353293533035331353323533335334353353533635337353383533935340353413534235343353443534535346353473534835349353503535135352353533535435355353563535735358353593536035361353623536335364353653536635367353683536935370353713537235373353743537535376353773537835379353803538135382353833538435385353863538735388353893539035391353923539335394353953539635397353983539935400354013540235403354043540535406354073540835409354103541135412354133541435415354163541735418354193542035421354223542335424354253542635427354283542935430354313543235433354343543535436354373543835439354403544135442354433544435445354463544735448354493545035451354523545335454354553545635457354583545935460354613546235463354643546535466354673546835469354703547135472354733547435475354763547735478354793548035481354823548335484354853548635487354883548935490354913549235493354943549535496354973549835499355003550135502355033550435505355063550735508355093551035511355123551335514355153551635517355183551935520355213552235523355243552535526355273552835529355303553135532355333553435535355363553735538355393554035541355423554335544355453554635547355483554935550355513555235553355543555535556355573555835559355603556135562355633556435565355663556735568355693557035571355723557335574355753557635577355783557935580355813558235583355843558535586355873558835589355903559135592355933559435595355963559735598355993560035601356023560335604356053560635607356083560935610356113561235613356143561535616356173561835619356203562135622356233562435625356263562735628356293563035631356323563335634356353563635637356383563935640356413564235643356443564535646356473564835649356503565135652356533565435655356563565735658356593566035661356623566335664356653566635667356683566935670356713567235673356743567535676356773567835679356803568135682356833568435685356863568735688356893569035691356923569335694356953569635697356983569935700357013570235703357043570535706357073570835709357103571135712357133571435715357163571735718357193572035721357223572335724357253572635727357283572935730357313573235733357343573535736357373573835739357403574135742357433574435745357463574735748357493575035751357523575335754357553575635757357583575935760357613576235763357643576535766357673576835769357703577135772357733577435775357763577735778357793578035781357823578335784357853578635787357883578935790357913579235793357943579535796357973579835799358003580135802358033580435805358063580735808358093581035811358123581335814358153581635817358183581935820358213582235823358243582535826358273582835829358303583135832358333583435835358363583735838358393584035841358423584335844358453584635847358483584935850358513585235853358543585535856358573585835859358603586135862358633586435865358663586735868358693587035871358723587335874358753587635877358783587935880358813588235883358843588535886358873588835889358903589135892358933589435895358963589735898358993590035901359023590335904359053590635907359083590935910359113591235913359143591535916359173591835919359203592135922359233592435925359263592735928359293593035931359323593335934359353593635937359383593935940359413594235943359443594535946359473594835949359503595135952359533595435955359563595735958359593596035961359623596335964359653596635967359683596935970359713597235973359743597535976359773597835979359803598135982359833598435985359863598735988359893599035991359923599335994359953599635997359983599936000360013600236003360043600536006360073600836009360103601136012360133601436015360163601736018360193602036021360223602336024360253602636027360283602936030360313603236033360343603536036360373603836039360403604136042360433604436045360463604736048360493605036051360523605336054360553605636057360583605936060360613606236063360643606536066360673606836069360703607136072360733607436075360763607736078360793608036081360823608336084360853608636087360883608936090360913609236093360943609536096360973609836099361003610136102361033610436105361063610736108361093611036111361123611336114361153611636117361183611936120361213612236123361243612536126361273612836129361303613136132361333613436135361363613736138361393614036141361423614336144361453614636147361483614936150361513615236153361543615536156361573615836159361603616136162361633616436165361663616736168361693617036171361723617336174361753617636177361783617936180361813618236183361843618536186361873618836189361903619136192361933619436195361963619736198361993620036201362023620336204362053620636207362083620936210362113621236213362143621536216362173621836219362203622136222362233622436225362263622736228362293623036231362323623336234362353623636237362383623936240362413624236243362443624536246362473624836249362503625136252362533625436255362563625736258362593626036261362623626336264362653626636267362683626936270362713627236273362743627536276362773627836279362803628136282362833628436285362863628736288362893629036291362923629336294362953629636297362983629936300363013630236303363043630536306363073630836309363103631136312363133631436315363163631736318363193632036321363223632336324363253632636327363283632936330363313633236333363343633536336363373633836339363403634136342363433634436345363463634736348363493635036351363523635336354363553635636357363583635936360363613636236363363643636536366363673636836369363703637136372363733637436375363763637736378363793638036381363823638336384363853638636387363883638936390363913639236393363943639536396363973639836399364003640136402364033640436405364063640736408364093641036411364123641336414364153641636417364183641936420364213642236423364243642536426364273642836429364303643136432364333643436435364363643736438364393644036441364423644336444364453644636447364483644936450364513645236453364543645536456364573645836459364603646136462364633646436465364663646736468364693647036471364723647336474364753647636477364783647936480364813648236483364843648536486364873648836489364903649136492364933649436495364963649736498364993650036501365023650336504365053650636507365083650936510365113651236513365143651536516365173651836519365203652136522365233652436525365263652736528365293653036531365323653336534365353653636537365383653936540365413654236543365443654536546365473654836549365503655136552365533655436555365563655736558365593656036561365623656336564365653656636567365683656936570365713657236573365743657536576365773657836579365803658136582365833658436585365863658736588365893659036591365923659336594365953659636597365983659936600366013660236603366043660536606366073660836609366103661136612366133661436615366163661736618366193662036621366223662336624366253662636627366283662936630366313663236633366343663536636366373663836639366403664136642366433664436645366463664736648366493665036651366523665336654366553665636657366583665936660366613666236663366643666536666366673666836669366703667136672366733667436675366763667736678366793668036681366823668336684366853668636687366883668936690366913669236693366943669536696366973669836699367003670136702367033670436705367063670736708367093671036711367123671336714367153671636717367183671936720367213672236723367243672536726367273672836729367303673136732367333673436735367363673736738367393674036741367423674336744367453674636747367483674936750367513675236753367543675536756367573675836759367603676136762367633676436765367663676736768367693677036771367723677336774367753677636777367783677936780367813678236783367843678536786367873678836789367903679136792367933679436795367963679736798367993680036801368023680336804368053680636807368083680936810368113681236813368143681536816368173681836819368203682136822368233682436825368263682736828368293683036831368323683336834368353683636837368383683936840368413684236843368443684536846368473684836849368503685136852368533685436855368563685736858368593686036861368623686336864368653686636867368683686936870368713687236873368743687536876368773687836879368803688136882368833688436885368863688736888368893689036891368923689336894368953689636897368983689936900369013690236903369043690536906369073690836909369103691136912369133691436915369163691736918369193692036921369223692336924369253692636927369283692936930369313693236933369343693536936369373693836939369403694136942369433694436945369463694736948369493695036951369523695336954369553695636957369583695936960369613696236963369643696536966369673696836969369703697136972369733697436975369763697736978369793698036981369823698336984369853698636987369883698936990369913699236993369943699536996369973699836999370003700137002370033700437005370063700737008370093701037011370123701337014370153701637017370183701937020370213702237023370243702537026370273702837029370303703137032370333703437035370363703737038370393704037041370423704337044370453704637047370483704937050370513705237053370543705537056370573705837059370603706137062370633706437065370663706737068370693707037071370723707337074370753707637077370783707937080370813708237083370843708537086370873708837089370903709137092370933709437095370963709737098370993710037101371023710337104371053710637107371083710937110371113711237113371143711537116371173711837119371203712137122371233712437125371263712737128371293713037131371323713337134371353713637137371383713937140371413714237143371443714537146371473714837149371503715137152371533715437155371563715737158371593716037161371623716337164371653716637167371683716937170371713717237173371743717537176371773717837179371803718137182371833718437185371863718737188371893719037191371923719337194371953719637197371983719937200372013720237203372043720537206372073720837209372103721137212372133721437215372163721737218372193722037221372223722337224372253722637227372283722937230372313723237233372343723537236372373723837239372403724137242372433724437245372463724737248372493725037251372523725337254372553725637257372583725937260372613726237263372643726537266372673726837269372703727137272372733727437275372763727737278372793728037281372823728337284372853728637287372883728937290372913729237293372943729537296372973729837299373003730137302373033730437305373063730737308373093731037311373123731337314373153731637317373183731937320373213732237323373243732537326373273732837329373303733137332373333733437335373363733737338373393734037341373423734337344373453734637347373483734937350373513735237353373543735537356373573735837359373603736137362373633736437365373663736737368373693737037371373723737337374373753737637377373783737937380373813738237383373843738537386373873738837389373903739137392373933739437395373963739737398373993740037401374023740337404374053740637407374083740937410374113741237413374143741537416374173741837419374203742137422374233742437425374263742737428374293743037431374323743337434374353743637437374383743937440374413744237443374443744537446374473744837449374503745137452374533745437455374563745737458374593746037461374623746337464374653746637467374683746937470374713747237473374743747537476374773747837479374803748137482374833748437485374863748737488374893749037491374923749337494374953749637497374983749937500375013750237503375043750537506375073750837509375103751137512375133751437515375163751737518375193752037521375223752337524375253752637527375283752937530375313753237533375343753537536375373753837539375403754137542375433754437545375463754737548375493755037551375523755337554375553755637557375583755937560375613756237563375643756537566375673756837569375703757137572375733757437575375763757737578375793758037581375823758337584375853758637587375883758937590375913759237593375943759537596375973759837599376003760137602376033760437605376063760737608376093761037611376123761337614376153761637617376183761937620376213762237623376243762537626376273762837629376303763137632376333763437635376363763737638376393764037641376423764337644376453764637647376483764937650376513765237653376543765537656376573765837659376603766137662376633766437665376663766737668376693767037671376723767337674376753767637677376783767937680376813768237683376843768537686376873768837689376903769137692376933769437695376963769737698376993770037701377023770337704377053770637707377083770937710377113771237713377143771537716377173771837719377203772137722377233772437725377263772737728377293773037731377323773337734377353773637737377383773937740377413774237743377443774537746377473774837749377503775137752377533775437755377563775737758377593776037761377623776337764377653776637767377683776937770377713777237773377743777537776377773777837779377803778137782377833778437785377863778737788377893779037791377923779337794377953779637797377983779937800378013780237803378043780537806378073780837809378103781137812378133781437815378163781737818378193782037821378223782337824378253782637827378283782937830378313783237833378343783537836378373783837839378403784137842378433784437845378463784737848378493785037851378523785337854378553785637857378583785937860378613786237863378643786537866378673786837869378703787137872378733787437875378763787737878378793788037881378823788337884378853788637887378883788937890378913789237893378943789537896378973789837899379003790137902379033790437905379063790737908379093791037911379123791337914379153791637917379183791937920379213792237923379243792537926379273792837929379303793137932379333793437935379363793737938379393794037941379423794337944379453794637947379483794937950379513795237953379543795537956379573795837959379603796137962379633796437965379663796737968379693797037971379723797337974379753797637977379783797937980379813798237983379843798537986379873798837989379903799137992379933799437995379963799737998379993800038001380023800338004380053800638007380083800938010380113801238013380143801538016380173801838019380203802138022380233802438025380263802738028380293803038031380323803338034380353803638037380383803938040380413804238043380443804538046380473804838049380503805138052380533805438055380563805738058380593806038061380623806338064380653806638067380683806938070380713807238073380743807538076380773807838079380803808138082380833808438085380863808738088380893809038091380923809338094380953809638097380983809938100381013810238103381043810538106381073810838109381103811138112381133811438115381163811738118381193812038121381223812338124381253812638127381283812938130381313813238133381343813538136381373813838139381403814138142381433814438145381463814738148381493815038151381523815338154381553815638157381583815938160381613816238163381643816538166381673816838169381703817138172381733817438175381763817738178381793818038181381823818338184381853818638187381883818938190381913819238193381943819538196381973819838199382003820138202382033820438205382063820738208382093821038211382123821338214382153821638217382183821938220382213822238223382243822538226382273822838229382303823138232382333823438235382363823738238382393824038241382423824338244382453824638247382483824938250382513825238253382543825538256382573825838259382603826138262382633826438265382663826738268382693827038271382723827338274382753827638277382783827938280382813828238283382843828538286382873828838289382903829138292382933829438295382963829738298382993830038301383023830338304383053830638307383083830938310383113831238313383143831538316383173831838319383203832138322383233832438325383263832738328383293833038331383323833338334383353833638337383383833938340383413834238343383443834538346383473834838349383503835138352383533835438355383563835738358383593836038361383623836338364383653836638367383683836938370383713837238373383743837538376383773837838379383803838138382383833838438385383863838738388383893839038391383923839338394383953839638397383983839938400384013840238403384043840538406384073840838409384103841138412384133841438415384163841738418384193842038421384223842338424384253842638427384283842938430384313843238433384343843538436384373843838439384403844138442384433844438445384463844738448384493845038451384523845338454384553845638457384583845938460384613846238463384643846538466384673846838469384703847138472384733847438475384763847738478384793848038481384823848338484384853848638487384883848938490384913849238493384943849538496384973849838499385003850138502385033850438505385063850738508385093851038511385123851338514385153851638517385183851938520385213852238523385243852538526385273852838529385303853138532385333853438535385363853738538385393854038541385423854338544385453854638547385483854938550385513855238553385543855538556385573855838559385603856138562385633856438565385663856738568385693857038571385723857338574385753857638577385783857938580385813858238583385843858538586385873858838589385903859138592385933859438595385963859738598385993860038601386023860338604386053860638607386083860938610386113861238613386143861538616386173861838619386203862138622386233862438625386263862738628386293863038631386323863338634386353863638637386383863938640386413864238643386443864538646386473864838649386503865138652386533865438655386563865738658386593866038661386623866338664386653866638667386683866938670386713867238673386743867538676386773867838679386803868138682386833868438685386863868738688386893869038691386923869338694386953869638697386983869938700387013870238703387043870538706387073870838709387103871138712387133871438715387163871738718387193872038721387223872338724387253872638727387283872938730387313873238733387343873538736387373873838739387403874138742387433874438745387463874738748387493875038751387523875338754387553875638757387583875938760387613876238763387643876538766387673876838769387703877138772387733877438775387763877738778387793878038781387823878338784387853878638787387883878938790387913879238793387943879538796387973879838799388003880138802388033880438805388063880738808388093881038811388123881338814388153881638817388183881938820388213882238823388243882538826388273882838829388303883138832388333883438835388363883738838388393884038841388423884338844388453884638847388483884938850388513885238853388543885538856388573885838859388603886138862388633886438865388663886738868388693887038871388723887338874388753887638877388783887938880388813888238883388843888538886388873888838889388903889138892388933889438895388963889738898388993890038901389023890338904389053890638907389083890938910389113891238913389143891538916389173891838919389203892138922389233892438925389263892738928389293893038931389323893338934389353893638937389383893938940389413894238943389443894538946389473894838949389503895138952389533895438955389563895738958389593896038961389623896338964389653896638967389683896938970389713897238973389743897538976389773897838979389803898138982389833898438985389863898738988389893899038991389923899338994389953899638997389983899939000390013900239003390043900539006390073900839009390103901139012390133901439015390163901739018390193902039021390223902339024390253902639027390283902939030390313903239033390343903539036390373903839039390403904139042390433904439045390463904739048390493905039051390523905339054390553905639057390583905939060390613906239063390643906539066390673906839069390703907139072390733907439075390763907739078390793908039081390823908339084390853908639087390883908939090390913909239093390943909539096390973909839099391003910139102391033910439105391063910739108391093911039111391123911339114391153911639117391183911939120391213912239123391243912539126391273912839129391303913139132391333913439135391363913739138391393914039141391423914339144391453914639147391483914939150391513915239153391543915539156391573915839159391603916139162391633916439165391663916739168391693917039171391723917339174391753917639177391783917939180391813918239183391843918539186391873918839189391903919139192391933919439195391963919739198391993920039201392023920339204392053920639207392083920939210392113921239213392143921539216392173921839219392203922139222392233922439225392263922739228392293923039231392323923339234392353923639237392383923939240392413924239243392443924539246392473924839249392503925139252392533925439255392563925739258392593926039261392623926339264392653926639267392683926939270392713927239273392743927539276392773927839279392803928139282392833928439285392863928739288392893929039291392923929339294392953929639297392983929939300393013930239303393043930539306393073930839309393103931139312393133931439315393163931739318393193932039321393223932339324393253932639327393283932939330393313933239333393343933539336393373933839339393403934139342393433934439345393463934739348393493935039351393523935339354393553935639357393583935939360393613936239363393643936539366393673936839369393703937139372393733937439375393763937739378393793938039381393823938339384393853938639387393883938939390393913939239393393943939539396393973939839399394003940139402394033940439405394063940739408394093941039411394123941339414394153941639417394183941939420394213942239423394243942539426394273942839429394303943139432394333943439435394363943739438394393944039441394423944339444394453944639447394483944939450394513945239453394543945539456394573945839459394603946139462394633946439465394663946739468394693947039471394723947339474394753947639477394783947939480394813948239483394843948539486394873948839489394903949139492394933949439495394963949739498394993950039501395023950339504395053950639507395083950939510395113951239513395143951539516395173951839519395203952139522395233952439525395263952739528395293953039531395323953339534395353953639537395383953939540395413954239543395443954539546395473954839549395503955139552395533955439555395563955739558395593956039561395623956339564395653956639567395683956939570395713957239573395743957539576395773957839579395803958139582395833958439585395863958739588395893959039591395923959339594395953959639597395983959939600396013960239603396043960539606396073960839609396103961139612396133961439615396163961739618396193962039621396223962339624396253962639627396283962939630396313963239633396343963539636396373963839639396403964139642396433964439645396463964739648396493965039651396523965339654396553965639657396583965939660396613966239663396643966539666396673966839669396703967139672396733967439675396763967739678396793968039681396823968339684396853968639687396883968939690396913969239693396943969539696396973969839699397003970139702397033970439705397063970739708397093971039711397123971339714397153971639717397183971939720397213972239723397243972539726397273972839729397303973139732397333973439735397363973739738397393974039741397423974339744397453974639747397483974939750397513975239753397543975539756397573975839759397603976139762397633976439765397663976739768397693977039771397723977339774397753977639777397783977939780397813978239783397843978539786397873978839789397903979139792397933979439795397963979739798397993980039801398023980339804398053980639807398083980939810398113981239813398143981539816398173981839819398203982139822398233982439825398263982739828398293983039831398323983339834398353983639837398383983939840398413984239843398443984539846398473984839849398503985139852398533985439855398563985739858398593986039861398623986339864398653986639867398683986939870398713987239873398743987539876398773987839879398803988139882398833988439885398863988739888398893989039891398923989339894398953989639897398983989939900399013990239903399043990539906399073990839909399103991139912399133991439915399163991739918399193992039921399223992339924399253992639927399283992939930399313993239933399343993539936399373993839939399403994139942399433994439945399463994739948399493995039951399523995339954399553995639957399583995939960399613996239963399643996539966399673996839969399703997139972399733997439975399763997739978399793998039981399823998339984399853998639987399883998939990399913999239993399943999539996399973999839999400004000140002400034000440005400064000740008400094001040011400124001340014400154001640017400184001940020400214002240023400244002540026400274002840029400304003140032400334003440035400364003740038400394004040041400424004340044400454004640047400484004940050400514005240053400544005540056400574005840059400604006140062400634006440065400664006740068400694007040071400724007340074400754007640077400784007940080400814008240083400844008540086400874008840089400904009140092400934009440095400964009740098400994010040101401024010340104401054010640107401084010940110401114011240113401144011540116401174011840119401204012140122401234012440125401264012740128401294013040131401324013340134401354013640137401384013940140401414014240143401444014540146401474014840149401504015140152401534015440155401564015740158401594016040161401624016340164401654016640167401684016940170401714017240173401744017540176401774017840179401804018140182401834018440185401864018740188401894019040191401924019340194401954019640197401984019940200402014020240203402044020540206402074020840209402104021140212402134021440215402164021740218402194022040221402224022340224402254022640227402284022940230402314023240233402344023540236402374023840239402404024140242402434024440245402464024740248402494025040251402524025340254402554025640257402584025940260402614026240263402644026540266402674026840269402704027140272402734027440275402764027740278402794028040281402824028340284402854028640287402884028940290402914029240293402944029540296402974029840299403004030140302403034030440305403064030740308403094031040311403124031340314403154031640317403184031940320403214032240323403244032540326403274032840329403304033140332403334033440335403364033740338403394034040341403424034340344403454034640347403484034940350403514035240353403544035540356403574035840359403604036140362403634036440365403664036740368403694037040371403724037340374403754037640377403784037940380403814038240383403844038540386403874038840389403904039140392403934039440395403964039740398403994040040401404024040340404404054040640407404084040940410404114041240413404144041540416404174041840419404204042140422404234042440425404264042740428404294043040431404324043340434404354043640437404384043940440404414044240443404444044540446404474044840449404504045140452404534045440455404564045740458404594046040461404624046340464404654046640467404684046940470404714047240473404744047540476404774047840479404804048140482404834048440485404864048740488404894049040491404924049340494404954049640497404984049940500405014050240503405044050540506405074050840509405104051140512405134051440515405164051740518405194052040521405224052340524405254052640527405284052940530405314053240533405344053540536405374053840539405404054140542405434054440545405464054740548405494055040551405524055340554405554055640557405584055940560405614056240563405644056540566405674056840569405704057140572405734057440575405764057740578405794058040581405824058340584405854058640587405884058940590405914059240593405944059540596405974059840599406004060140602406034060440605406064060740608406094061040611406124061340614406154061640617406184061940620406214062240623406244062540626406274062840629406304063140632406334063440635406364063740638406394064040641406424064340644406454064640647406484064940650406514065240653406544065540656406574065840659406604066140662406634066440665406664066740668406694067040671406724067340674406754067640677406784067940680406814068240683406844068540686406874068840689406904069140692406934069440695406964069740698406994070040701407024070340704407054070640707407084070940710407114071240713407144071540716407174071840719407204072140722407234072440725407264072740728407294073040731407324073340734407354073640737407384073940740407414074240743407444074540746407474074840749407504075140752407534075440755407564075740758407594076040761407624076340764407654076640767407684076940770407714077240773407744077540776407774077840779407804078140782407834078440785407864078740788407894079040791407924079340794407954079640797407984079940800408014080240803408044080540806408074080840809408104081140812408134081440815408164081740818408194082040821408224082340824408254082640827408284082940830408314083240833408344083540836408374083840839408404084140842408434084440845408464084740848408494085040851408524085340854408554085640857408584085940860408614086240863408644086540866408674086840869408704087140872408734087440875408764087740878408794088040881408824088340884408854088640887408884088940890408914089240893408944089540896408974089840899409004090140902409034090440905409064090740908409094091040911409124091340914409154091640917409184091940920409214092240923409244092540926409274092840929409304093140932409334093440935409364093740938409394094040941409424094340944409454094640947409484094940950409514095240953409544095540956409574095840959409604096140962409634096440965409664096740968409694097040971409724097340974409754097640977409784097940980409814098240983409844098540986409874098840989409904099140992409934099440995409964099740998409994100041001410024100341004410054100641007410084100941010410114101241013410144101541016410174101841019410204102141022410234102441025410264102741028410294103041031410324103341034410354103641037410384103941040410414104241043410444104541046410474104841049410504105141052410534105441055410564105741058410594106041061410624106341064410654106641067410684106941070410714107241073410744107541076410774107841079410804108141082410834108441085410864108741088410894109041091410924109341094410954109641097410984109941100411014110241103411044110541106411074110841109411104111141112411134111441115411164111741118411194112041121411224112341124411254112641127411284112941130411314113241133411344113541136411374113841139411404114141142411434114441145411464114741148411494115041151411524115341154411554115641157411584115941160411614116241163411644116541166411674116841169411704117141172411734117441175411764117741178411794118041181411824118341184411854118641187411884118941190411914119241193411944119541196411974119841199412004120141202412034120441205412064120741208412094121041211412124121341214412154121641217412184121941220412214122241223412244122541226412274122841229412304123141232412334123441235412364123741238412394124041241412424124341244412454124641247412484124941250412514125241253412544125541256412574125841259412604126141262412634126441265412664126741268412694127041271412724127341274412754127641277412784127941280412814128241283412844128541286412874128841289412904129141292412934129441295412964129741298412994130041301413024130341304413054130641307413084130941310413114131241313413144131541316413174131841319413204132141322413234132441325413264132741328413294133041331413324133341334413354133641337413384133941340413414134241343413444134541346413474134841349413504135141352413534135441355413564135741358413594136041361413624136341364413654136641367413684136941370413714137241373413744137541376413774137841379413804138141382413834138441385413864138741388413894139041391413924139341394413954139641397413984139941400414014140241403414044140541406414074140841409414104141141412414134141441415414164141741418414194142041421414224142341424414254142641427414284142941430414314143241433414344143541436414374143841439414404144141442414434144441445414464144741448414494145041451414524145341454414554145641457414584145941460414614146241463414644146541466414674146841469414704147141472414734147441475414764147741478414794148041481414824148341484414854148641487414884148941490414914149241493414944149541496414974149841499415004150141502415034150441505415064150741508415094151041511415124151341514415154151641517415184151941520415214152241523415244152541526415274152841529415304153141532415334153441535415364153741538415394154041541415424154341544415454154641547415484154941550415514155241553415544155541556415574155841559415604156141562415634156441565415664156741568415694157041571415724157341574415754157641577415784157941580415814158241583415844158541586415874158841589415904159141592415934159441595415964159741598415994160041601416024160341604416054160641607416084160941610416114161241613416144161541616416174161841619416204162141622416234162441625416264162741628416294163041631416324163341634416354163641637416384163941640416414164241643416444164541646416474164841649416504165141652416534165441655416564165741658416594166041661416624166341664416654166641667416684166941670416714167241673416744167541676416774167841679416804168141682416834168441685416864168741688416894169041691416924169341694416954169641697416984169941700417014170241703417044170541706417074170841709417104171141712417134171441715417164171741718417194172041721417224172341724417254172641727417284172941730417314173241733417344173541736417374173841739417404174141742417434174441745417464174741748417494175041751417524175341754417554175641757417584175941760417614176241763417644176541766417674176841769417704177141772417734177441775417764177741778417794178041781417824178341784417854178641787417884178941790417914179241793417944179541796417974179841799418004180141802418034180441805418064180741808418094181041811418124181341814418154181641817418184181941820418214182241823418244182541826418274182841829418304183141832418334183441835418364183741838418394184041841418424184341844418454184641847418484184941850418514185241853418544185541856418574185841859418604186141862418634186441865418664186741868418694187041871418724187341874418754187641877418784187941880418814188241883418844188541886418874188841889418904189141892418934189441895418964189741898418994190041901419024190341904419054190641907419084190941910419114191241913419144191541916419174191841919419204192141922419234192441925419264192741928419294193041931419324193341934419354193641937419384193941940419414194241943419444194541946419474194841949419504195141952419534195441955419564195741958419594196041961419624196341964419654196641967419684196941970419714197241973419744197541976419774197841979419804198141982419834198441985419864198741988419894199041991419924199341994419954199641997419984199942000420014200242003420044200542006420074200842009420104201142012420134201442015420164201742018420194202042021420224202342024420254202642027420284202942030420314203242033420344203542036420374203842039420404204142042420434204442045420464204742048420494205042051420524205342054420554205642057420584205942060420614206242063420644206542066420674206842069420704207142072420734207442075420764207742078420794208042081420824208342084420854208642087420884208942090420914209242093420944209542096420974209842099421004210142102421034210442105421064210742108421094211042111421124211342114421154211642117421184211942120421214212242123421244212542126421274212842129421304213142132421334213442135421364213742138421394214042141421424214342144421454214642147421484214942150421514215242153421544215542156421574215842159421604216142162421634216442165421664216742168421694217042171421724217342174421754217642177421784217942180421814218242183421844218542186421874218842189421904219142192421934219442195421964219742198421994220042201422024220342204422054220642207422084220942210422114221242213422144221542216422174221842219422204222142222422234222442225422264222742228422294223042231422324223342234422354223642237422384223942240422414224242243422444224542246422474224842249422504225142252422534225442255422564225742258422594226042261422624226342264422654226642267422684226942270422714227242273422744227542276422774227842279422804228142282422834228442285422864228742288422894229042291422924229342294422954229642297422984229942300423014230242303423044230542306423074230842309423104231142312423134231442315423164231742318423194232042321423224232342324423254232642327423284232942330423314233242333423344233542336423374233842339423404234142342423434234442345423464234742348423494235042351423524235342354423554235642357423584235942360423614236242363423644236542366423674236842369423704237142372423734237442375423764237742378423794238042381423824238342384423854238642387423884238942390423914239242393423944239542396423974239842399424004240142402424034240442405424064240742408424094241042411424124241342414424154241642417424184241942420424214242242423424244242542426424274242842429424304243142432424334243442435424364243742438424394244042441424424244342444424454244642447424484244942450424514245242453424544245542456424574245842459424604246142462424634246442465424664246742468424694247042471424724247342474424754247642477424784247942480424814248242483424844248542486424874248842489424904249142492424934249442495424964249742498424994250042501425024250342504425054250642507425084250942510425114251242513425144251542516425174251842519425204252142522425234252442525425264252742528425294253042531425324253342534425354253642537425384253942540425414254242543425444254542546425474254842549425504255142552425534255442555425564255742558425594256042561425624256342564425654256642567425684256942570425714257242573425744257542576425774257842579425804258142582425834258442585425864258742588425894259042591425924259342594425954259642597425984259942600426014260242603426044260542606426074260842609426104261142612426134261442615426164261742618426194262042621426224262342624426254262642627426284262942630426314263242633426344263542636426374263842639426404264142642426434264442645426464264742648426494265042651426524265342654426554265642657426584265942660426614266242663426644266542666426674266842669426704267142672426734267442675426764267742678426794268042681426824268342684426854268642687426884268942690426914269242693426944269542696426974269842699427004270142702427034270442705427064270742708427094271042711427124271342714427154271642717427184271942720427214272242723427244272542726427274272842729427304273142732427334273442735427364273742738427394274042741427424274342744427454274642747427484274942750427514275242753427544275542756427574275842759427604276142762427634276442765427664276742768427694277042771427724277342774427754277642777427784277942780427814278242783427844278542786427874278842789427904279142792427934279442795427964279742798427994280042801428024280342804428054280642807428084280942810428114281242813428144281542816428174281842819428204282142822428234282442825428264282742828428294283042831428324283342834428354283642837428384283942840428414284242843428444284542846428474284842849428504285142852428534285442855428564285742858428594286042861428624286342864428654286642867428684286942870428714287242873428744287542876428774287842879428804288142882428834288442885428864288742888428894289042891428924289342894428954289642897428984289942900429014290242903429044290542906429074290842909429104291142912429134291442915429164291742918429194292042921429224292342924429254292642927429284292942930429314293242933429344293542936429374293842939429404294142942429434294442945429464294742948429494295042951429524295342954429554295642957429584295942960429614296242963429644296542966429674296842969429704297142972429734297442975429764297742978429794298042981429824298342984429854298642987429884298942990429914299242993429944299542996429974299842999430004300143002430034300443005430064300743008430094301043011430124301343014430154301643017430184301943020430214302243023430244302543026430274302843029430304303143032430334303443035430364303743038430394304043041430424304343044430454304643047430484304943050430514305243053430544305543056430574305843059430604306143062430634306443065430664306743068430694307043071430724307343074430754307643077430784307943080430814308243083430844308543086430874308843089430904309143092430934309443095430964309743098430994310043101431024310343104431054310643107431084310943110431114311243113431144311543116431174311843119431204312143122431234312443125431264312743128431294313043131431324313343134431354313643137431384313943140431414314243143431444314543146431474314843149431504315143152431534315443155431564315743158431594316043161431624316343164431654316643167431684316943170431714317243173431744317543176431774317843179431804318143182431834318443185431864318743188431894319043191431924319343194431954319643197431984319943200432014320243203432044320543206432074320843209432104321143212432134321443215432164321743218432194322043221432224322343224432254322643227432284322943230432314323243233432344323543236432374323843239432404324143242432434324443245432464324743248432494325043251432524325343254432554325643257432584325943260432614326243263432644326543266432674326843269432704327143272432734327443275432764327743278432794328043281432824328343284432854328643287432884328943290432914329243293432944329543296432974329843299433004330143302433034330443305433064330743308433094331043311433124331343314433154331643317433184331943320433214332243323433244332543326433274332843329433304333143332433334333443335433364333743338433394334043341433424334343344433454334643347433484334943350433514335243353433544335543356433574335843359433604336143362433634336443365433664336743368433694337043371433724337343374433754337643377433784337943380433814338243383433844338543386433874338843389433904339143392433934339443395433964339743398433994340043401434024340343404434054340643407434084340943410434114341243413434144341543416434174341843419434204342143422434234342443425434264342743428434294343043431434324343343434434354343643437434384343943440434414344243443434444344543446434474344843449434504345143452434534345443455434564345743458434594346043461434624346343464434654346643467434684346943470434714347243473434744347543476434774347843479434804348143482434834348443485434864348743488434894349043491434924349343494434954349643497434984349943500435014350243503435044350543506435074350843509435104351143512435134351443515435164351743518435194352043521435224352343524435254352643527435284352943530435314353243533435344353543536435374353843539435404354143542435434354443545435464354743548435494355043551435524355343554435554355643557435584355943560435614356243563435644356543566435674356843569435704357143572435734357443575435764357743578435794358043581435824358343584435854358643587435884358943590435914359243593435944359543596435974359843599436004360143602436034360443605436064360743608436094361043611436124361343614436154361643617436184361943620436214362243623436244362543626436274362843629436304363143632436334363443635436364363743638436394364043641436424364343644436454364643647436484364943650436514365243653436544365543656436574365843659436604366143662436634366443665436664366743668436694367043671436724367343674436754367643677436784367943680436814368243683436844368543686436874368843689436904369143692436934369443695436964369743698436994370043701437024370343704437054370643707437084370943710437114371243713437144371543716437174371843719437204372143722437234372443725437264372743728437294373043731437324373343734437354373643737437384373943740437414374243743437444374543746437474374843749437504375143752437534375443755437564375743758437594376043761437624376343764437654376643767437684376943770437714377243773437744377543776437774377843779437804378143782437834378443785437864378743788437894379043791437924379343794437954379643797437984379943800438014380243803438044380543806438074380843809438104381143812438134381443815438164381743818438194382043821438224382343824438254382643827438284382943830438314383243833438344383543836438374383843839438404384143842438434384443845438464384743848438494385043851438524385343854438554385643857438584385943860438614386243863438644386543866438674386843869438704387143872438734387443875438764387743878438794388043881438824388343884438854388643887438884388943890438914389243893438944389543896438974389843899439004390143902439034390443905439064390743908439094391043911439124391343914439154391643917439184391943920439214392243923439244392543926439274392843929439304393143932439334393443935439364393743938439394394043941439424394343944439454394643947439484394943950439514395243953439544395543956439574395843959439604396143962439634396443965439664396743968439694397043971439724397343974439754397643977439784397943980439814398243983439844398543986439874398843989439904399143992439934399443995439964399743998439994400044001440024400344004440054400644007440084400944010440114401244013440144401544016440174401844019440204402144022440234402444025440264402744028440294403044031440324403344034440354403644037440384403944040440414404244043440444404544046440474404844049440504405144052440534405444055440564405744058440594406044061440624406344064440654406644067440684406944070440714407244073440744407544076440774407844079440804408144082440834408444085440864408744088440894409044091440924409344094440954409644097440984409944100441014410244103441044410544106441074410844109441104411144112441134411444115441164411744118441194412044121441224412344124441254412644127441284412944130441314413244133441344413544136441374413844139441404414144142441434414444145441464414744148441494415044151441524415344154441554415644157441584415944160441614416244163441644416544166441674416844169441704417144172441734417444175441764417744178441794418044181441824418344184441854418644187441884418944190441914419244193441944419544196441974419844199442004420144202442034420444205442064420744208442094421044211442124421344214442154421644217442184421944220442214422244223442244422544226442274422844229442304423144232442334423444235442364423744238442394424044241442424424344244442454424644247442484424944250442514425244253442544425544256442574425844259442604426144262442634426444265442664426744268442694427044271442724427344274442754427644277442784427944280442814428244283442844428544286442874428844289442904429144292442934429444295442964429744298442994430044301443024430344304443054430644307443084430944310443114431244313443144431544316443174431844319443204432144322443234432444325443264432744328443294433044331443324433344334443354433644337443384433944340443414434244343443444434544346443474434844349443504435144352443534435444355443564435744358443594436044361443624436344364443654436644367443684436944370443714437244373443744437544376443774437844379443804438144382443834438444385443864438744388443894439044391443924439344394443954439644397443984439944400444014440244403444044440544406444074440844409444104441144412444134441444415444164441744418444194442044421444224442344424444254442644427444284442944430444314443244433444344443544436444374443844439444404444144442444434444444445444464444744448444494445044451444524445344454444554445644457444584445944460444614446244463444644446544466444674446844469444704447144472444734447444475444764447744478444794448044481444824448344484444854448644487444884448944490444914449244493444944449544496444974449844499445004450144502445034450444505445064450744508445094451044511445124451344514445154451644517445184451944520445214452244523445244452544526445274452844529445304453144532445334453444535445364453744538445394454044541445424454344544445454454644547445484454944550445514455244553445544455544556445574455844559445604456144562445634456444565445664456744568445694457044571445724457344574445754457644577445784457944580445814458244583445844458544586445874458844589445904459144592445934459444595445964459744598445994460044601446024460344604446054460644607446084460944610446114461244613446144461544616446174461844619446204462144622446234462444625446264462744628446294463044631446324463344634446354463644637446384463944640446414464244643446444464544646446474464844649446504465144652446534465444655446564465744658446594466044661446624466344664446654466644667446684466944670446714467244673446744467544676446774467844679446804468144682446834468444685446864468744688446894469044691446924469344694446954469644697446984469944700447014470244703447044470544706447074470844709447104471144712447134471444715447164471744718447194472044721447224472344724447254472644727447284472944730447314473244733447344473544736447374473844739447404474144742447434474444745447464474744748447494475044751447524475344754447554475644757447584475944760447614476244763447644476544766447674476844769447704477144772447734477444775447764477744778447794478044781447824478344784447854478644787447884478944790447914479244793447944479544796447974479844799448004480144802448034480444805448064480744808448094481044811448124481344814448154481644817448184481944820448214482244823448244482544826448274482844829448304483144832448334483444835448364483744838448394484044841448424484344844448454484644847448484484944850448514485244853448544485544856448574485844859448604486144862448634486444865448664486744868448694487044871448724487344874448754487644877448784487944880448814488244883448844488544886448874488844889448904489144892448934489444895448964489744898448994490044901449024490344904449054490644907449084490944910449114491244913449144491544916449174491844919449204492144922449234492444925449264492744928449294493044931449324493344934449354493644937449384493944940449414494244943449444494544946449474494844949449504495144952449534495444955449564495744958449594496044961449624496344964449654496644967449684496944970449714497244973449744497544976449774497844979449804498144982449834498444985449864498744988449894499044991449924499344994449954499644997449984499945000450014500245003450044500545006450074500845009450104501145012450134501445015450164501745018450194502045021450224502345024450254502645027450284502945030450314503245033450344503545036450374503845039450404504145042450434504445045450464504745048450494505045051450524505345054450554505645057450584505945060450614506245063450644506545066450674506845069450704507145072450734507445075450764507745078450794508045081450824508345084450854508645087450884508945090450914509245093450944509545096450974509845099451004510145102451034510445105451064510745108451094511045111451124511345114451154511645117451184511945120451214512245123451244512545126451274512845129451304513145132451334513445135451364513745138451394514045141451424514345144451454514645147451484514945150451514515245153451544515545156451574515845159451604516145162451634516445165451664516745168451694517045171451724517345174451754517645177451784517945180451814518245183451844518545186451874518845189451904519145192451934519445195451964519745198451994520045201452024520345204452054520645207452084520945210452114521245213452144521545216452174521845219452204522145222452234522445225452264522745228452294523045231452324523345234452354523645237452384523945240452414524245243452444524545246452474524845249452504525145252452534525445255452564525745258452594526045261452624526345264452654526645267452684526945270452714527245273452744527545276452774527845279452804528145282452834528445285452864528745288452894529045291452924529345294452954529645297452984529945300453014530245303453044530545306453074530845309453104531145312453134531445315453164531745318453194532045321453224532345324453254532645327453284532945330453314533245333453344533545336453374533845339453404534145342453434534445345453464534745348453494535045351453524535345354453554535645357453584535945360453614536245363453644536545366453674536845369453704537145372453734537445375453764537745378453794538045381453824538345384453854538645387453884538945390453914539245393453944539545396453974539845399454004540145402454034540445405454064540745408454094541045411454124541345414454154541645417454184541945420454214542245423454244542545426454274542845429454304543145432454334543445435454364543745438454394544045441454424544345444454454544645447454484544945450454514545245453454544545545456454574545845459454604546145462454634546445465454664546745468454694547045471454724547345474454754547645477454784547945480454814548245483454844548545486454874548845489454904549145492454934549445495454964549745498454994550045501455024550345504455054550645507455084550945510455114551245513455144551545516455174551845519455204552145522455234552445525455264552745528455294553045531455324553345534455354553645537455384553945540455414554245543455444554545546455474554845549455504555145552455534555445555455564555745558455594556045561455624556345564455654556645567455684556945570455714557245573455744557545576455774557845579455804558145582455834558445585455864558745588455894559045591455924559345594455954559645597455984559945600456014560245603456044560545606456074560845609456104561145612456134561445615456164561745618456194562045621456224562345624456254562645627456284562945630456314563245633456344563545636456374563845639456404564145642456434564445645456464564745648456494565045651456524565345654456554565645657456584565945660456614566245663456644566545666456674566845669456704567145672456734567445675456764567745678456794568045681456824568345684456854568645687456884568945690456914569245693456944569545696456974569845699457004570145702457034570445705457064570745708457094571045711457124571345714457154571645717457184571945720457214572245723457244572545726457274572845729457304573145732457334573445735457364573745738457394574045741457424574345744457454574645747457484574945750457514575245753457544575545756457574575845759457604576145762457634576445765457664576745768457694577045771457724577345774457754577645777457784577945780457814578245783457844578545786457874578845789457904579145792457934579445795457964579745798457994580045801458024580345804458054580645807458084580945810458114581245813458144581545816458174581845819458204582145822458234582445825458264582745828458294583045831458324583345834458354583645837458384583945840458414584245843458444584545846458474584845849458504585145852458534585445855458564585745858458594586045861458624586345864458654586645867458684586945870458714587245873458744587545876458774587845879458804588145882458834588445885458864588745888458894589045891458924589345894458954589645897458984589945900459014590245903459044590545906459074590845909459104591145912459134591445915459164591745918459194592045921459224592345924459254592645927459284592945930459314593245933459344593545936459374593845939459404594145942459434594445945459464594745948459494595045951459524595345954459554595645957459584595945960459614596245963459644596545966459674596845969459704597145972459734597445975459764597745978459794598045981459824598345984459854598645987459884598945990459914599245993459944599545996459974599845999460004600146002460034600446005460064600746008460094601046011460124601346014460154601646017460184601946020460214602246023460244602546026460274602846029460304603146032460334603446035460364603746038460394604046041460424604346044460454604646047460484604946050460514605246053460544605546056460574605846059460604606146062460634606446065460664606746068460694607046071460724607346074460754607646077460784607946080460814608246083460844608546086460874608846089460904609146092460934609446095460964609746098460994610046101461024610346104461054610646107461084610946110461114611246113461144611546116461174611846119461204612146122461234612446125461264612746128461294613046131461324613346134461354613646137461384613946140461414614246143461444614546146461474614846149461504615146152461534615446155461564615746158461594616046161461624616346164461654616646167461684616946170461714617246173461744617546176461774617846179461804618146182461834618446185461864618746188461894619046191461924619346194461954619646197461984619946200462014620246203462044620546206462074620846209462104621146212462134621446215462164621746218462194622046221462224622346224462254622646227462284622946230462314623246233462344623546236462374623846239462404624146242462434624446245462464624746248462494625046251462524625346254462554625646257462584625946260462614626246263462644626546266462674626846269462704627146272462734627446275462764627746278462794628046281462824628346284462854628646287462884628946290462914629246293462944629546296462974629846299463004630146302463034630446305463064630746308463094631046311463124631346314463154631646317463184631946320463214632246323463244632546326463274632846329463304633146332463334633446335463364633746338463394634046341463424634346344463454634646347463484634946350463514635246353463544635546356463574635846359463604636146362463634636446365463664636746368463694637046371463724637346374463754637646377463784637946380463814638246383463844638546386463874638846389463904639146392463934639446395463964639746398463994640046401464024640346404464054640646407464084640946410464114641246413464144641546416464174641846419464204642146422464234642446425464264642746428464294643046431464324643346434464354643646437464384643946440464414644246443464444644546446464474644846449464504645146452464534645446455464564645746458464594646046461464624646346464464654646646467464684646946470464714647246473464744647546476464774647846479464804648146482464834648446485464864648746488464894649046491464924649346494464954649646497464984649946500465014650246503465044650546506465074650846509465104651146512465134651446515465164651746518465194652046521465224652346524465254652646527465284652946530465314653246533465344653546536465374653846539465404654146542465434654446545465464654746548465494655046551465524655346554465554655646557465584655946560465614656246563465644656546566465674656846569465704657146572465734657446575465764657746578465794658046581465824658346584465854658646587465884658946590465914659246593465944659546596465974659846599466004660146602466034660446605466064660746608466094661046611466124661346614466154661646617466184661946620466214662246623466244662546626466274662846629466304663146632466334663446635466364663746638466394664046641466424664346644466454664646647466484664946650466514665246653466544665546656466574665846659466604666146662466634666446665466664666746668466694667046671466724667346674466754667646677466784667946680466814668246683466844668546686466874668846689466904669146692466934669446695466964669746698466994670046701467024670346704467054670646707467084670946710467114671246713467144671546716467174671846719467204672146722467234672446725467264672746728467294673046731467324673346734467354673646737467384673946740467414674246743467444674546746467474674846749467504675146752467534675446755467564675746758467594676046761467624676346764467654676646767467684676946770467714677246773467744677546776467774677846779467804678146782467834678446785467864678746788467894679046791467924679346794467954679646797467984679946800468014680246803468044680546806468074680846809468104681146812468134681446815468164681746818468194682046821468224682346824468254682646827468284682946830468314683246833468344683546836468374683846839468404684146842468434684446845468464684746848468494685046851468524685346854468554685646857468584685946860468614686246863468644686546866468674686846869468704687146872468734687446875468764687746878468794688046881468824688346884468854688646887468884688946890468914689246893468944689546896468974689846899469004690146902469034690446905469064690746908469094691046911469124691346914469154691646917469184691946920469214692246923469244692546926469274692846929469304693146932469334693446935469364693746938469394694046941469424694346944469454694646947469484694946950469514695246953469544695546956469574695846959469604696146962469634696446965469664696746968469694697046971469724697346974469754697646977469784697946980469814698246983469844698546986469874698846989469904699146992469934699446995469964699746998469994700047001470024700347004470054700647007470084700947010470114701247013470144701547016470174701847019470204702147022470234702447025470264702747028470294703047031470324703347034470354703647037470384703947040470414704247043470444704547046470474704847049470504705147052470534705447055470564705747058470594706047061470624706347064470654706647067470684706947070470714707247073470744707547076470774707847079470804708147082470834708447085470864708747088470894709047091470924709347094470954709647097470984709947100471014710247103471044710547106471074710847109471104711147112471134711447115471164711747118471194712047121471224712347124471254712647127471284712947130471314713247133471344713547136471374713847139471404714147142471434714447145471464714747148471494715047151471524715347154471554715647157471584715947160471614716247163471644716547166471674716847169471704717147172471734717447175471764717747178471794718047181471824718347184471854718647187471884718947190471914719247193471944719547196471974719847199472004720147202472034720447205472064720747208472094721047211472124721347214472154721647217472184721947220472214722247223472244722547226472274722847229472304723147232472334723447235472364723747238472394724047241472424724347244472454724647247472484724947250472514725247253472544725547256472574725847259472604726147262472634726447265472664726747268472694727047271472724727347274472754727647277472784727947280472814728247283472844728547286472874728847289472904729147292472934729447295472964729747298472994730047301473024730347304473054730647307473084730947310473114731247313473144731547316473174731847319473204732147322473234732447325473264732747328473294733047331473324733347334473354733647337473384733947340473414734247343473444734547346473474734847349473504735147352473534735447355473564735747358473594736047361473624736347364473654736647367473684736947370473714737247373473744737547376473774737847379473804738147382473834738447385473864738747388473894739047391473924739347394473954739647397473984739947400474014740247403474044740547406474074740847409474104741147412474134741447415474164741747418474194742047421474224742347424474254742647427474284742947430474314743247433474344743547436474374743847439474404744147442474434744447445474464744747448474494745047451474524745347454474554745647457474584745947460474614746247463474644746547466474674746847469474704747147472474734747447475474764747747478474794748047481474824748347484474854748647487474884748947490474914749247493474944749547496474974749847499475004750147502475034750447505475064750747508475094751047511475124751347514475154751647517475184751947520475214752247523475244752547526475274752847529475304753147532475334753447535475364753747538475394754047541475424754347544475454754647547475484754947550475514755247553475544755547556475574755847559475604756147562475634756447565475664756747568475694757047571475724757347574475754757647577475784757947580475814758247583475844758547586475874758847589475904759147592475934759447595475964759747598475994760047601476024760347604476054760647607476084760947610476114761247613476144761547616476174761847619476204762147622476234762447625476264762747628476294763047631476324763347634476354763647637476384763947640476414764247643476444764547646476474764847649476504765147652476534765447655476564765747658476594766047661476624766347664476654766647667476684766947670476714767247673476744767547676476774767847679476804768147682476834768447685476864768747688476894769047691476924769347694476954769647697476984769947700477014770247703477044770547706477074770847709477104771147712477134771447715477164771747718477194772047721477224772347724477254772647727477284772947730477314773247733477344773547736477374773847739477404774147742477434774447745477464774747748477494775047751477524775347754477554775647757477584775947760477614776247763477644776547766477674776847769477704777147772477734777447775477764777747778477794778047781477824778347784477854778647787477884778947790477914779247793477944779547796477974779847799478004780147802478034780447805478064780747808478094781047811478124781347814478154781647817478184781947820478214782247823478244782547826478274782847829478304783147832478334783447835478364783747838478394784047841478424784347844478454784647847478484784947850478514785247853478544785547856478574785847859478604786147862478634786447865478664786747868478694787047871478724787347874478754787647877478784787947880478814788247883478844788547886478874788847889478904789147892478934789447895478964789747898478994790047901479024790347904479054790647907479084790947910479114791247913479144791547916479174791847919479204792147922479234792447925479264792747928479294793047931479324793347934479354793647937479384793947940479414794247943479444794547946479474794847949479504795147952479534795447955479564795747958479594796047961479624796347964479654796647967479684796947970479714797247973479744797547976479774797847979479804798147982479834798447985479864798747988479894799047991479924799347994479954799647997479984799948000480014800248003480044800548006480074800848009480104801148012480134801448015480164801748018480194802048021480224802348024480254802648027480284802948030480314803248033480344803548036480374803848039480404804148042480434804448045480464804748048480494805048051480524805348054480554805648057480584805948060480614806248063480644806548066480674806848069480704807148072480734807448075480764807748078480794808048081480824808348084480854808648087480884808948090480914809248093480944809548096480974809848099481004810148102481034810448105481064810748108481094811048111481124811348114481154811648117481184811948120481214812248123481244812548126481274812848129481304813148132481334813448135481364813748138481394814048141481424814348144481454814648147481484814948150481514815248153481544815548156481574815848159481604816148162481634816448165481664816748168481694817048171481724817348174481754817648177481784817948180481814818248183481844818548186481874818848189481904819148192481934819448195481964819748198481994820048201482024820348204482054820648207482084820948210482114821248213482144821548216482174821848219482204822148222482234822448225482264822748228482294823048231482324823348234482354823648237482384823948240482414824248243482444824548246482474824848249482504825148252482534825448255482564825748258482594826048261482624826348264482654826648267482684826948270482714827248273482744827548276482774827848279482804828148282482834828448285482864828748288482894829048291482924829348294482954829648297482984829948300483014830248303483044830548306483074830848309483104831148312483134831448315483164831748318483194832048321483224832348324483254832648327483284832948330483314833248333483344833548336483374833848339483404834148342483434834448345483464834748348483494835048351483524835348354483554835648357483584835948360483614836248363483644836548366483674836848369483704837148372483734837448375483764837748378483794838048381483824838348384483854838648387483884838948390483914839248393483944839548396483974839848399484004840148402484034840448405484064840748408484094841048411484124841348414484154841648417484184841948420484214842248423484244842548426484274842848429484304843148432484334843448435484364843748438484394844048441484424844348444484454844648447484484844948450484514845248453484544845548456484574845848459484604846148462484634846448465484664846748468484694847048471484724847348474484754847648477484784847948480484814848248483484844848548486484874848848489484904849148492484934849448495484964849748498484994850048501485024850348504485054850648507485084850948510485114851248513485144851548516485174851848519485204852148522485234852448525485264852748528485294853048531485324853348534485354853648537485384853948540485414854248543485444854548546485474854848549485504855148552485534855448555485564855748558485594856048561485624856348564485654856648567485684856948570485714857248573485744857548576485774857848579485804858148582485834858448585485864858748588485894859048591485924859348594485954859648597485984859948600486014860248603486044860548606486074860848609486104861148612486134861448615486164861748618486194862048621486224862348624486254862648627486284862948630486314863248633486344863548636486374863848639486404864148642486434864448645486464864748648486494865048651486524865348654486554865648657486584865948660486614866248663486644866548666486674866848669486704867148672486734867448675486764867748678486794868048681486824868348684486854868648687486884868948690486914869248693486944869548696486974869848699487004870148702487034870448705487064870748708487094871048711487124871348714487154871648717487184871948720487214872248723487244872548726487274872848729487304873148732487334873448735487364873748738487394874048741487424874348744487454874648747487484874948750487514875248753487544875548756487574875848759487604876148762487634876448765487664876748768487694877048771487724877348774487754877648777487784877948780487814878248783487844878548786487874878848789487904879148792487934879448795487964879748798487994880048801488024880348804488054880648807488084880948810488114881248813488144881548816488174881848819488204882148822488234882448825488264882748828488294883048831488324883348834488354883648837488384883948840488414884248843488444884548846488474884848849488504885148852488534885448855488564885748858488594886048861488624886348864488654886648867488684886948870488714887248873488744887548876488774887848879488804888148882488834888448885488864888748888488894889048891488924889348894488954889648897488984889948900489014890248903489044890548906489074890848909489104891148912489134891448915489164891748918489194892048921489224892348924489254892648927489284892948930489314893248933489344893548936489374893848939489404894148942489434894448945489464894748948489494895048951489524895348954489554895648957489584895948960489614896248963489644896548966489674896848969489704897148972489734897448975489764897748978489794898048981489824898348984489854898648987489884898948990489914899248993489944899548996489974899848999490004900149002490034900449005490064900749008490094901049011490124901349014490154901649017490184901949020490214902249023490244902549026490274902849029490304903149032490334903449035490364903749038490394904049041490424904349044490454904649047490484904949050490514905249053490544905549056490574905849059490604906149062490634906449065490664906749068490694907049071490724907349074490754907649077490784907949080490814908249083490844908549086490874908849089490904909149092490934909449095490964909749098490994910049101491024910349104491054910649107491084910949110491114911249113491144911549116491174911849119491204912149122491234912449125491264912749128491294913049131491324913349134491354913649137491384913949140491414914249143491444914549146491474914849149491504915149152491534915449155491564915749158491594916049161491624916349164491654916649167491684916949170491714917249173491744917549176491774917849179491804918149182491834918449185491864918749188491894919049191491924919349194491954919649197491984919949200492014920249203492044920549206492074920849209492104921149212492134921449215492164921749218492194922049221492224922349224492254922649227492284922949230492314923249233492344923549236492374923849239492404924149242492434924449245492464924749248492494925049251492524925349254492554925649257492584925949260492614926249263492644926549266492674926849269492704927149272492734927449275492764927749278492794928049281492824928349284492854928649287492884928949290492914929249293492944929549296492974929849299493004930149302493034930449305493064930749308493094931049311493124931349314493154931649317493184931949320493214932249323493244932549326493274932849329493304933149332493334933449335493364933749338493394934049341493424934349344493454934649347493484934949350493514935249353493544935549356493574935849359493604936149362493634936449365493664936749368493694937049371493724937349374493754937649377493784937949380493814938249383493844938549386493874938849389493904939149392493934939449395493964939749398493994940049401494024940349404494054940649407494084940949410494114941249413494144941549416494174941849419494204942149422494234942449425494264942749428494294943049431494324943349434494354943649437494384943949440494414944249443494444944549446494474944849449494504945149452494534945449455494564945749458494594946049461494624946349464494654946649467494684946949470494714947249473494744947549476494774947849479494804948149482494834948449485494864948749488494894949049491494924949349494494954949649497494984949949500495014950249503495044950549506495074950849509495104951149512495134951449515495164951749518495194952049521495224952349524495254952649527495284952949530495314953249533495344953549536495374953849539495404954149542495434954449545495464954749548495494955049551495524955349554495554955649557495584955949560495614956249563495644956549566495674956849569495704957149572495734957449575495764957749578495794958049581495824958349584495854958649587495884958949590495914959249593495944959549596495974959849599496004960149602496034960449605496064960749608496094961049611496124961349614496154961649617496184961949620496214962249623496244962549626496274962849629496304963149632496334963449635496364963749638496394964049641496424964349644496454964649647496484964949650496514965249653496544965549656496574965849659496604966149662496634966449665496664966749668496694967049671496724967349674496754967649677496784967949680496814968249683496844968549686496874968849689496904969149692496934969449695496964969749698496994970049701497024970349704497054970649707497084970949710497114971249713497144971549716497174971849719497204972149722497234972449725497264972749728497294973049731497324973349734497354973649737497384973949740497414974249743497444974549746497474974849749497504975149752497534975449755497564975749758497594976049761497624976349764497654976649767497684976949770497714977249773497744977549776497774977849779497804978149782497834978449785497864978749788497894979049791497924979349794497954979649797497984979949800498014980249803498044980549806498074980849809498104981149812498134981449815498164981749818498194982049821498224982349824498254982649827498284982949830498314983249833498344983549836498374983849839498404984149842498434984449845498464984749848498494985049851498524985349854498554985649857498584985949860498614986249863498644986549866498674986849869498704987149872498734987449875498764987749878498794988049881498824988349884498854988649887498884988949890498914989249893498944989549896498974989849899499004990149902499034990449905499064990749908499094991049911499124991349914499154991649917499184991949920499214992249923499244992549926499274992849929499304993149932499334993449935499364993749938499394994049941499424994349944499454994649947499484994949950499514995249953499544995549956499574995849959499604996149962499634996449965499664996749968499694997049971499724997349974499754997649977499784997949980499814998249983499844998549986499874998849989499904999149992499934999449995499964999749998499995000050001500025000350004500055000650007500085000950010500115001250013500145001550016500175001850019500205002150022500235002450025500265002750028500295003050031500325003350034500355003650037500385003950040500415004250043500445004550046500475004850049500505005150052500535005450055500565005750058500595006050061500625006350064500655006650067500685006950070500715007250073500745007550076500775007850079500805008150082500835008450085500865008750088500895009050091500925009350094500955009650097500985009950100501015010250103501045010550106501075010850109501105011150112501135011450115501165011750118501195012050121501225012350124501255012650127501285012950130501315013250133501345013550136501375013850139501405014150142501435014450145501465014750148501495015050151501525015350154501555015650157501585015950160501615016250163501645016550166501675016850169501705017150172501735017450175501765017750178501795018050181501825018350184501855018650187501885018950190501915019250193501945019550196501975019850199502005020150202502035020450205502065020750208502095021050211502125021350214502155021650217502185021950220502215022250223502245022550226502275022850229502305023150232502335023450235502365023750238502395024050241502425024350244502455024650247502485024950250502515025250253502545025550256502575025850259502605026150262502635026450265502665026750268502695027050271502725027350274502755027650277502785027950280502815028250283502845028550286502875028850289502905029150292502935029450295502965029750298502995030050301503025030350304503055030650307503085030950310503115031250313503145031550316503175031850319503205032150322503235032450325503265032750328503295033050331503325033350334503355033650337503385033950340503415034250343503445034550346503475034850349503505035150352503535035450355503565035750358503595036050361503625036350364503655036650367503685036950370503715037250373503745037550376503775037850379503805038150382503835038450385503865038750388503895039050391503925039350394503955039650397503985039950400504015040250403504045040550406504075040850409504105041150412504135041450415504165041750418504195042050421504225042350424504255042650427504285042950430504315043250433504345043550436504375043850439504405044150442504435044450445504465044750448504495045050451504525045350454504555045650457504585045950460504615046250463504645046550466504675046850469504705047150472504735047450475504765047750478504795048050481504825048350484504855048650487504885048950490504915049250493504945049550496504975049850499505005050150502505035050450505505065050750508505095051050511505125051350514505155051650517505185051950520505215052250523505245052550526505275052850529505305053150532505335053450535505365053750538505395054050541505425054350544505455054650547505485054950550505515055250553505545055550556505575055850559505605056150562505635056450565505665056750568505695057050571505725057350574505755057650577505785057950580505815058250583505845058550586505875058850589505905059150592505935059450595505965059750598505995060050601506025060350604506055060650607506085060950610506115061250613506145061550616506175061850619506205062150622506235062450625506265062750628506295063050631506325063350634506355063650637506385063950640506415064250643506445064550646506475064850649506505065150652506535065450655506565065750658506595066050661506625066350664506655066650667506685066950670506715067250673506745067550676506775067850679506805068150682506835068450685506865068750688506895069050691506925069350694506955069650697506985069950700507015070250703507045070550706507075070850709507105071150712507135071450715507165071750718507195072050721507225072350724507255072650727507285072950730507315073250733507345073550736507375073850739507405074150742507435074450745507465074750748507495075050751507525075350754507555075650757507585075950760507615076250763507645076550766507675076850769507705077150772507735077450775507765077750778507795078050781507825078350784507855078650787507885078950790507915079250793507945079550796507975079850799508005080150802508035080450805508065080750808508095081050811508125081350814508155081650817508185081950820508215082250823508245082550826508275082850829508305083150832508335083450835508365083750838508395084050841508425084350844508455084650847508485084950850508515085250853508545085550856508575085850859508605086150862508635086450865508665086750868508695087050871508725087350874508755087650877508785087950880508815088250883508845088550886508875088850889508905089150892508935089450895508965089750898508995090050901509025090350904509055090650907509085090950910509115091250913509145091550916509175091850919509205092150922509235092450925509265092750928509295093050931509325093350934509355093650937509385093950940509415094250943509445094550946509475094850949509505095150952509535095450955509565095750958509595096050961509625096350964509655096650967509685096950970509715097250973509745097550976509775097850979509805098150982509835098450985509865098750988509895099050991509925099350994509955099650997509985099951000510015100251003510045100551006510075100851009510105101151012510135101451015510165101751018510195102051021510225102351024510255102651027510285102951030510315103251033510345103551036510375103851039510405104151042510435104451045510465104751048510495105051051510525105351054510555105651057510585105951060510615106251063510645106551066510675106851069510705107151072510735107451075510765107751078510795108051081510825108351084510855108651087510885108951090510915109251093510945109551096510975109851099511005110151102511035110451105511065110751108511095111051111511125111351114511155111651117511185111951120511215112251123511245112551126511275112851129511305113151132511335113451135511365113751138511395114051141511425114351144511455114651147511485114951150511515115251153511545115551156511575115851159511605116151162511635116451165511665116751168511695117051171511725117351174511755117651177511785117951180511815118251183511845118551186511875118851189511905119151192511935119451195511965119751198511995120051201512025120351204512055120651207512085120951210512115121251213512145121551216512175121851219512205122151222512235122451225512265122751228512295123051231512325123351234512355123651237512385123951240512415124251243512445124551246512475124851249512505125151252512535125451255512565125751258512595126051261512625126351264512655126651267512685126951270512715127251273512745127551276512775127851279512805128151282512835128451285512865128751288512895129051291512925129351294512955129651297512985129951300513015130251303513045130551306513075130851309513105131151312513135131451315513165131751318513195132051321513225132351324513255132651327513285132951330513315133251333513345133551336513375133851339513405134151342513435134451345513465134751348513495135051351513525135351354513555135651357513585135951360513615136251363513645136551366513675136851369513705137151372513735137451375513765137751378513795138051381513825138351384513855138651387513885138951390513915139251393513945139551396513975139851399514005140151402514035140451405514065140751408514095141051411514125141351414514155141651417514185141951420514215142251423514245142551426514275142851429514305143151432514335143451435514365143751438514395144051441514425144351444514455144651447514485144951450514515145251453514545145551456514575145851459514605146151462514635146451465514665146751468514695147051471514725147351474514755147651477514785147951480514815148251483514845148551486514875148851489514905149151492514935149451495514965149751498514995150051501515025150351504515055150651507515085150951510515115151251513515145151551516515175151851519515205152151522515235152451525515265152751528515295153051531515325153351534515355153651537515385153951540515415154251543515445154551546515475154851549515505155151552515535155451555515565155751558515595156051561515625156351564515655156651567515685156951570515715157251573515745157551576515775157851579515805158151582515835158451585515865158751588515895159051591515925159351594515955159651597515985159951600516015160251603516045160551606516075160851609516105161151612516135161451615516165161751618516195162051621516225162351624516255162651627516285162951630516315163251633516345163551636516375163851639516405164151642516435164451645516465164751648516495165051651516525165351654516555165651657516585165951660516615166251663516645166551666516675166851669516705167151672516735167451675516765167751678516795168051681516825168351684516855168651687516885168951690516915169251693516945169551696516975169851699517005170151702517035170451705517065170751708517095171051711517125171351714517155171651717517185171951720517215172251723517245172551726517275172851729517305173151732517335173451735517365173751738517395174051741517425174351744517455174651747517485174951750517515175251753517545175551756517575175851759517605176151762517635176451765517665176751768517695177051771517725177351774517755177651777517785177951780517815178251783517845178551786517875178851789517905179151792517935179451795517965179751798517995180051801518025180351804518055180651807518085180951810518115181251813518145181551816518175181851819518205182151822518235182451825518265182751828518295183051831518325183351834518355183651837518385183951840518415184251843518445184551846518475184851849518505185151852518535185451855518565185751858518595186051861518625186351864518655186651867518685186951870518715187251873518745187551876518775187851879518805188151882518835188451885518865188751888518895189051891518925189351894518955189651897518985189951900519015190251903519045190551906519075190851909519105191151912519135191451915519165191751918519195192051921519225192351924519255192651927519285192951930519315193251933519345193551936519375193851939519405194151942519435194451945519465194751948519495195051951519525195351954519555195651957519585195951960519615196251963519645196551966519675196851969519705197151972519735197451975519765197751978519795198051981519825198351984519855198651987519885198951990519915199251993519945199551996519975199851999520005200152002520035200452005520065200752008520095201052011520125201352014520155201652017520185201952020520215202252023520245202552026520275202852029520305203152032520335203452035520365203752038520395204052041520425204352044520455204652047520485204952050520515205252053520545205552056520575205852059520605206152062520635206452065520665206752068520695207052071520725207352074520755207652077520785207952080520815208252083520845208552086520875208852089520905209152092520935209452095520965209752098520995210052101521025210352104521055210652107521085210952110521115211252113521145211552116521175211852119521205212152122521235212452125521265212752128521295213052131521325213352134521355213652137521385213952140521415214252143521445214552146521475214852149521505215152152521535215452155521565215752158521595216052161521625216352164521655216652167521685216952170521715217252173521745217552176521775217852179521805218152182521835218452185521865218752188521895219052191521925219352194521955219652197521985219952200522015220252203522045220552206522075220852209522105221152212522135221452215522165221752218522195222052221522225222352224522255222652227522285222952230522315223252233522345223552236522375223852239522405224152242522435224452245522465224752248522495225052251522525225352254522555225652257522585225952260522615226252263522645226552266522675226852269522705227152272522735227452275522765227752278522795228052281522825228352284522855228652287522885228952290522915229252293522945229552296522975229852299523005230152302523035230452305523065230752308523095231052311523125231352314523155231652317523185231952320523215232252323523245232552326523275232852329523305233152332523335233452335523365233752338523395234052341523425234352344523455234652347523485234952350523515235252353523545235552356523575235852359523605236152362523635236452365523665236752368523695237052371523725237352374523755237652377523785237952380523815238252383523845238552386523875238852389523905239152392523935239452395523965239752398523995240052401524025240352404524055240652407524085240952410524115241252413524145241552416524175241852419524205242152422524235242452425524265242752428524295243052431524325243352434524355243652437524385243952440524415244252443524445244552446524475244852449524505245152452524535245452455524565245752458524595246052461524625246352464524655246652467524685246952470524715247252473524745247552476524775247852479524805248152482524835248452485524865248752488524895249052491524925249352494524955249652497524985249952500525015250252503525045250552506525075250852509525105251152512525135251452515525165251752518525195252052521525225252352524525255252652527525285252952530525315253252533525345253552536525375253852539525405254152542525435254452545525465254752548525495255052551525525255352554525555255652557525585255952560525615256252563525645256552566525675256852569525705257152572525735257452575525765257752578525795258052581525825258352584525855258652587525885258952590525915259252593525945259552596525975259852599526005260152602526035260452605526065260752608526095261052611526125261352614526155261652617526185261952620526215262252623526245262552626526275262852629526305263152632526335263452635526365263752638526395264052641526425264352644526455264652647526485264952650526515265252653526545265552656526575265852659526605266152662526635266452665526665266752668526695267052671526725267352674526755267652677526785267952680526815268252683526845268552686526875268852689526905269152692526935269452695526965269752698526995270052701527025270352704527055270652707527085270952710527115271252713527145271552716527175271852719527205272152722527235272452725527265272752728527295273052731527325273352734527355273652737527385273952740527415274252743527445274552746527475274852749527505275152752527535275452755527565275752758527595276052761527625276352764527655276652767527685276952770527715277252773527745277552776527775277852779527805278152782527835278452785527865278752788527895279052791527925279352794527955279652797527985279952800528015280252803528045280552806528075280852809528105281152812528135281452815528165281752818528195282052821528225282352824528255282652827528285282952830528315283252833528345283552836528375283852839528405284152842528435284452845528465284752848528495285052851528525285352854528555285652857528585285952860528615286252863528645286552866528675286852869528705287152872528735287452875528765287752878528795288052881528825288352884528855288652887528885288952890528915289252893528945289552896528975289852899529005290152902529035290452905529065290752908529095291052911529125291352914529155291652917529185291952920529215292252923529245292552926529275292852929529305293152932529335293452935529365293752938529395294052941529425294352944529455294652947529485294952950529515295252953529545295552956529575295852959529605296152962529635296452965529665296752968529695297052971529725297352974529755297652977529785297952980529815298252983529845298552986529875298852989529905299152992529935299452995529965299752998529995300053001530025300353004530055300653007530085300953010530115301253013530145301553016530175301853019530205302153022530235302453025530265302753028530295303053031530325303353034530355303653037530385303953040530415304253043530445304553046530475304853049530505305153052530535305453055530565305753058530595306053061530625306353064530655306653067530685306953070530715307253073530745307553076530775307853079530805308153082530835308453085530865308753088530895309053091530925309353094530955309653097530985309953100531015310253103531045310553106531075310853109531105311153112531135311453115531165311753118531195312053121531225312353124531255312653127531285312953130531315313253133531345313553136531375313853139531405314153142531435314453145531465314753148531495315053151531525315353154531555315653157531585315953160531615316253163531645316553166531675316853169531705317153172531735317453175531765317753178531795318053181531825318353184531855318653187531885318953190531915319253193531945319553196531975319853199532005320153202532035320453205532065320753208532095321053211532125321353214532155321653217532185321953220532215322253223532245322553226532275322853229532305323153232532335323453235532365323753238532395324053241532425324353244532455324653247532485324953250532515325253253532545325553256532575325853259532605326153262532635326453265532665326753268532695327053271532725327353274532755327653277532785327953280532815328253283532845328553286532875328853289532905329153292532935329453295532965329753298532995330053301533025330353304533055330653307533085330953310533115331253313533145331553316533175331853319533205332153322533235332453325533265332753328533295333053331533325333353334533355333653337533385333953340533415334253343533445334553346533475334853349533505335153352533535335453355533565335753358533595336053361533625336353364533655336653367533685336953370533715337253373533745337553376533775337853379533805338153382533835338453385533865338753388533895339053391533925339353394533955339653397533985339953400534015340253403534045340553406534075340853409534105341153412534135341453415534165341753418534195342053421534225342353424534255342653427534285342953430534315343253433534345343553436534375343853439534405344153442534435344453445534465344753448534495345053451534525345353454534555345653457534585345953460534615346253463534645346553466534675346853469534705347153472534735347453475534765347753478534795348053481534825348353484534855348653487534885348953490534915349253493534945349553496534975349853499535005350153502535035350453505535065350753508535095351053511535125351353514535155351653517535185351953520535215352253523535245352553526535275352853529535305353153532535335353453535535365353753538535395354053541535425354353544535455354653547535485354953550535515355253553535545355553556535575355853559535605356153562535635356453565535665356753568535695357053571535725357353574535755357653577535785357953580535815358253583535845358553586535875358853589535905359153592535935359453595535965359753598535995360053601536025360353604536055360653607536085360953610536115361253613536145361553616536175361853619536205362153622536235362453625536265362753628536295363053631536325363353634536355363653637536385363953640536415364253643536445364553646536475364853649536505365153652536535365453655536565365753658536595366053661536625366353664536655366653667536685366953670536715367253673536745367553676536775367853679536805368153682536835368453685536865368753688536895369053691536925369353694536955369653697536985369953700537015370253703537045370553706537075370853709537105371153712537135371453715537165371753718537195372053721537225372353724537255372653727537285372953730537315373253733537345373553736537375373853739537405374153742537435374453745537465374753748537495375053751537525375353754537555375653757537585375953760537615376253763537645376553766537675376853769537705377153772537735377453775537765377753778537795378053781537825378353784537855378653787537885378953790537915379253793537945379553796537975379853799538005380153802538035380453805538065380753808538095381053811538125381353814538155381653817538185381953820538215382253823538245382553826538275382853829538305383153832538335383453835538365383753838538395384053841538425384353844538455384653847538485384953850538515385253853538545385553856538575385853859538605386153862538635386453865538665386753868538695387053871538725387353874538755387653877538785387953880538815388253883538845388553886538875388853889538905389153892538935389453895538965389753898538995390053901539025390353904539055390653907539085390953910539115391253913539145391553916539175391853919539205392153922539235392453925539265392753928539295393053931539325393353934539355393653937539385393953940539415394253943539445394553946539475394853949539505395153952539535395453955539565395753958539595396053961539625396353964539655396653967539685396953970539715397253973539745397553976539775397853979539805398153982539835398453985539865398753988539895399053991539925399353994539955399653997539985399954000540015400254003540045400554006540075400854009540105401154012540135401454015540165401754018540195402054021540225402354024540255402654027540285402954030540315403254033540345403554036540375403854039540405404154042540435404454045540465404754048540495405054051540525405354054540555405654057540585405954060540615406254063540645406554066540675406854069540705407154072540735407454075540765407754078540795408054081540825408354084540855408654087540885408954090540915409254093540945409554096540975409854099541005410154102541035410454105541065410754108541095411054111541125411354114541155411654117541185411954120541215412254123541245412554126541275412854129541305413154132541335413454135541365413754138541395414054141541425414354144541455414654147541485414954150541515415254153541545415554156541575415854159541605416154162541635416454165541665416754168541695417054171541725417354174541755417654177541785417954180541815418254183541845418554186541875418854189541905419154192541935419454195541965419754198541995420054201542025420354204542055420654207542085420954210542115421254213542145421554216542175421854219542205422154222542235422454225542265422754228542295423054231542325423354234542355423654237542385423954240542415424254243542445424554246542475424854249542505425154252542535425454255542565425754258542595426054261542625426354264542655426654267542685426954270542715427254273542745427554276542775427854279542805428154282542835428454285542865428754288542895429054291542925429354294542955429654297542985429954300543015430254303543045430554306543075430854309543105431154312543135431454315543165431754318543195432054321543225432354324543255432654327543285432954330543315433254333543345433554336543375433854339543405434154342543435434454345543465434754348543495435054351543525435354354543555435654357543585435954360543615436254363543645436554366543675436854369543705437154372543735437454375543765437754378543795438054381543825438354384543855438654387543885438954390543915439254393543945439554396543975439854399544005440154402544035440454405544065440754408544095441054411544125441354414544155441654417544185441954420544215442254423544245442554426544275442854429544305443154432544335443454435544365443754438544395444054441544425444354444544455444654447544485444954450544515445254453544545445554456544575445854459544605446154462544635446454465544665446754468544695447054471544725447354474544755447654477544785447954480544815448254483544845448554486544875448854489544905449154492544935449454495544965449754498544995450054501545025450354504545055450654507545085450954510545115451254513545145451554516545175451854519545205452154522545235452454525545265452754528545295453054531545325453354534545355453654537545385453954540545415454254543545445454554546545475454854549545505455154552545535455454555545565455754558545595456054561545625456354564545655456654567545685456954570545715457254573545745457554576545775457854579545805458154582545835458454585545865458754588545895459054591545925459354594545955459654597545985459954600546015460254603546045460554606546075460854609546105461154612546135461454615546165461754618546195462054621546225462354624546255462654627546285462954630546315463254633546345463554636546375463854639546405464154642546435464454645546465464754648546495465054651546525465354654546555465654657546585465954660546615466254663546645466554666546675466854669546705467154672546735467454675546765467754678546795468054681546825468354684546855468654687546885468954690546915469254693546945469554696546975469854699547005470154702547035470454705547065470754708547095471054711547125471354714547155471654717547185471954720547215472254723547245472554726547275472854729547305473154732547335473454735547365473754738547395474054741547425474354744547455474654747547485474954750547515475254753547545475554756547575475854759547605476154762547635476454765547665476754768547695477054771547725477354774547755477654777547785477954780547815478254783547845478554786547875478854789547905479154792547935479454795547965479754798547995480054801548025480354804548055480654807548085480954810548115481254813548145481554816548175481854819548205482154822548235482454825548265482754828548295483054831548325483354834548355483654837548385483954840548415484254843548445484554846548475484854849548505485154852548535485454855548565485754858548595486054861548625486354864548655486654867548685486954870548715487254873548745487554876548775487854879548805488154882548835488454885548865488754888548895489054891548925489354894548955489654897548985489954900549015490254903549045490554906549075490854909549105491154912549135491454915549165491754918549195492054921549225492354924549255492654927549285492954930549315493254933549345493554936549375493854939549405494154942549435494454945549465494754948549495495054951549525495354954549555495654957549585495954960549615496254963549645496554966549675496854969549705497154972549735497454975549765497754978549795498054981549825498354984549855498654987549885498954990549915499254993549945499554996549975499854999550005500155002550035500455005550065500755008550095501055011550125501355014550155501655017550185501955020550215502255023550245502555026550275502855029550305503155032550335503455035550365503755038550395504055041550425504355044550455504655047550485504955050550515505255053550545505555056550575505855059550605506155062550635506455065550665506755068550695507055071550725507355074550755507655077550785507955080550815508255083550845508555086550875508855089550905509155092550935509455095550965509755098550995510055101551025510355104551055510655107551085510955110551115511255113551145511555116551175511855119551205512155122551235512455125551265512755128551295513055131551325513355134551355513655137551385513955140551415514255143551445514555146551475514855149551505515155152551535515455155551565515755158551595516055161551625516355164551655516655167551685516955170551715517255173551745517555176551775517855179551805518155182551835518455185551865518755188551895519055191551925519355194551955519655197551985519955200552015520255203552045520555206552075520855209552105521155212552135521455215552165521755218552195522055221552225522355224552255522655227552285522955230552315523255233552345523555236552375523855239552405524155242552435524455245552465524755248552495525055251552525525355254552555525655257552585525955260552615526255263552645526555266552675526855269552705527155272552735527455275552765527755278552795528055281552825528355284552855528655287552885528955290552915529255293552945529555296552975529855299553005530155302553035530455305553065530755308553095531055311553125531355314553155531655317553185531955320553215532255323553245532555326553275532855329553305533155332553335533455335553365533755338553395534055341553425534355344553455534655347553485534955350553515535255353553545535555356553575535855359553605536155362553635536455365553665536755368553695537055371553725537355374553755537655377553785537955380553815538255383553845538555386553875538855389553905539155392553935539455395553965539755398553995540055401554025540355404554055540655407554085540955410554115541255413554145541555416554175541855419554205542155422554235542455425554265542755428554295543055431554325543355434554355543655437554385543955440554415544255443554445544555446554475544855449554505545155452554535545455455554565545755458554595546055461554625546355464554655546655467554685546955470554715547255473554745547555476554775547855479554805548155482554835548455485554865548755488554895549055491554925549355494554955549655497554985549955500555015550255503555045550555506555075550855509555105551155512555135551455515555165551755518555195552055521555225552355524555255552655527555285552955530555315553255533555345553555536555375553855539555405554155542555435554455545555465554755548555495555055551555525555355554555555555655557555585555955560555615556255563555645556555566555675556855569555705557155572555735557455575555765557755578555795558055581555825558355584555855558655587555885558955590555915559255593555945559555596555975559855599556005560155602556035560455605556065560755608556095561055611556125561355614556155561655617556185561955620556215562255623556245562555626556275562855629556305563155632556335563455635556365563755638556395564055641556425564355644556455564655647556485564955650556515565255653556545565555656556575565855659556605566155662556635566455665556665566755668556695567055671556725567355674556755567655677556785567955680556815568255683556845568555686556875568855689556905569155692556935569455695556965569755698556995570055701557025570355704557055570655707557085570955710557115571255713557145571555716557175571855719557205572155722557235572455725557265572755728557295573055731557325573355734557355573655737557385573955740557415574255743557445574555746557475574855749557505575155752557535575455755557565575755758557595576055761557625576355764557655576655767557685576955770557715577255773557745577555776557775577855779557805578155782557835578455785557865578755788557895579055791557925579355794557955579655797557985579955800558015580255803558045580555806558075580855809558105581155812558135581455815558165581755818558195582055821558225582355824558255582655827558285582955830558315583255833558345583555836558375583855839558405584155842558435584455845558465584755848558495585055851558525585355854558555585655857558585585955860558615586255863558645586555866558675586855869558705587155872558735587455875558765587755878558795588055881558825588355884558855588655887558885588955890558915589255893558945589555896558975589855899559005590155902559035590455905559065590755908559095591055911559125591355914559155591655917559185591955920559215592255923559245592555926559275592855929559305593155932559335593455935559365593755938559395594055941559425594355944559455594655947559485594955950559515595255953559545595555956559575595855959559605596155962559635596455965559665596755968559695597055971559725597355974559755597655977559785597955980559815598255983559845598555986559875598855989559905599155992559935599455995559965599755998559995600056001560025600356004560055600656007560085600956010560115601256013560145601556016560175601856019560205602156022560235602456025560265602756028560295603056031560325603356034560355603656037560385603956040560415604256043560445604556046560475604856049560505605156052560535605456055560565605756058560595606056061560625606356064560655606656067560685606956070560715607256073560745607556076560775607856079560805608156082560835608456085560865608756088560895609056091560925609356094560955609656097560985609956100561015610256103561045610556106561075610856109561105611156112561135611456115561165611756118561195612056121561225612356124561255612656127561285612956130561315613256133561345613556136561375613856139561405614156142561435614456145561465614756148561495615056151561525615356154561555615656157561585615956160561615616256163561645616556166561675616856169561705617156172561735617456175561765617756178561795618056181561825618356184561855618656187561885618956190561915619256193561945619556196561975619856199562005620156202562035620456205562065620756208562095621056211562125621356214562155621656217562185621956220562215622256223562245622556226562275622856229562305623156232562335623456235562365623756238562395624056241562425624356244562455624656247562485624956250562515625256253562545625556256562575625856259562605626156262562635626456265562665626756268562695627056271562725627356274562755627656277562785627956280562815628256283562845628556286562875628856289562905629156292562935629456295562965629756298562995630056301563025630356304563055630656307563085630956310563115631256313563145631556316563175631856319563205632156322563235632456325563265632756328563295633056331563325633356334563355633656337563385633956340563415634256343563445634556346563475634856349563505635156352563535635456355563565635756358563595636056361563625636356364563655636656367563685636956370563715637256373563745637556376563775637856379563805638156382563835638456385563865638756388563895639056391563925639356394563955639656397563985639956400564015640256403564045640556406564075640856409564105641156412564135641456415564165641756418564195642056421564225642356424564255642656427564285642956430564315643256433564345643556436564375643856439564405644156442564435644456445564465644756448564495645056451564525645356454564555645656457564585645956460564615646256463564645646556466564675646856469564705647156472564735647456475564765647756478564795648056481564825648356484564855648656487564885648956490564915649256493564945649556496564975649856499565005650156502565035650456505565065650756508565095651056511565125651356514565155651656517565185651956520565215652256523565245652556526565275652856529565305653156532565335653456535565365653756538565395654056541565425654356544565455654656547565485654956550565515655256553565545655556556565575655856559565605656156562565635656456565565665656756568565695657056571565725657356574565755657656577565785657956580565815658256583565845658556586565875658856589565905659156592565935659456595565965659756598565995660056601566025660356604566055660656607566085660956610566115661256613566145661556616566175661856619566205662156622566235662456625566265662756628566295663056631566325663356634566355663656637566385663956640566415664256643566445664556646566475664856649566505665156652566535665456655566565665756658566595666056661566625666356664566655666656667566685666956670566715667256673566745667556676566775667856679566805668156682566835668456685566865668756688566895669056691566925669356694566955669656697566985669956700567015670256703567045670556706567075670856709567105671156712567135671456715567165671756718567195672056721567225672356724567255672656727567285672956730567315673256733567345673556736567375673856739567405674156742567435674456745567465674756748567495675056751567525675356754567555675656757567585675956760567615676256763567645676556766567675676856769567705677156772567735677456775567765677756778567795678056781567825678356784567855678656787567885678956790567915679256793567945679556796567975679856799568005680156802568035680456805568065680756808568095681056811568125681356814568155681656817568185681956820568215682256823568245682556826568275682856829568305683156832568335683456835568365683756838568395684056841568425684356844568455684656847568485684956850568515685256853568545685556856568575685856859568605686156862568635686456865568665686756868568695687056871568725687356874568755687656877568785687956880568815688256883568845688556886568875688856889568905689156892568935689456895568965689756898568995690056901569025690356904569055690656907569085690956910569115691256913569145691556916569175691856919569205692156922569235692456925569265692756928569295693056931569325693356934569355693656937569385693956940569415694256943569445694556946569475694856949569505695156952569535695456955569565695756958569595696056961569625696356964569655696656967569685696956970569715697256973569745697556976569775697856979569805698156982569835698456985569865698756988569895699056991569925699356994569955699656997569985699957000570015700257003570045700557006570075700857009570105701157012570135701457015570165701757018570195702057021570225702357024570255702657027570285702957030570315703257033570345703557036570375703857039570405704157042570435704457045570465704757048570495705057051570525705357054570555705657057570585705957060570615706257063570645706557066570675706857069570705707157072570735707457075570765707757078570795708057081570825708357084570855708657087570885708957090570915709257093570945709557096570975709857099571005710157102571035710457105571065710757108571095711057111571125711357114571155711657117571185711957120571215712257123571245712557126571275712857129571305713157132571335713457135571365713757138571395714057141571425714357144571455714657147571485714957150571515715257153571545715557156571575715857159571605716157162571635716457165571665716757168571695717057171571725717357174571755717657177571785717957180571815718257183571845718557186571875718857189571905719157192571935719457195571965719757198571995720057201572025720357204572055720657207572085720957210572115721257213572145721557216572175721857219572205722157222572235722457225572265722757228572295723057231572325723357234572355723657237572385723957240572415724257243572445724557246572475724857249572505725157252572535725457255572565725757258572595726057261572625726357264572655726657267572685726957270572715727257273572745727557276572775727857279572805728157282572835728457285572865728757288572895729057291572925729357294572955729657297572985729957300573015730257303573045730557306573075730857309573105731157312573135731457315573165731757318573195732057321573225732357324573255732657327573285732957330573315733257333573345733557336573375733857339573405734157342573435734457345573465734757348573495735057351573525735357354573555735657357573585735957360573615736257363573645736557366573675736857369573705737157372573735737457375573765737757378573795738057381573825738357384573855738657387573885738957390573915739257393573945739557396573975739857399574005740157402574035740457405574065740757408574095741057411574125741357414574155741657417574185741957420574215742257423574245742557426574275742857429574305743157432574335743457435574365743757438574395744057441574425744357444574455744657447574485744957450574515745257453574545745557456574575745857459574605746157462574635746457465574665746757468574695747057471574725747357474574755747657477574785747957480574815748257483574845748557486574875748857489574905749157492574935749457495574965749757498574995750057501575025750357504575055750657507575085750957510575115751257513575145751557516575175751857519575205752157522575235752457525575265752757528575295753057531575325753357534575355753657537575385753957540575415754257543575445754557546575475754857549575505755157552575535755457555575565755757558575595756057561575625756357564575655756657567575685756957570575715757257573575745757557576575775757857579575805758157582575835758457585575865758757588575895759057591575925759357594575955759657597575985759957600576015760257603576045760557606576075760857609576105761157612576135761457615576165761757618576195762057621576225762357624576255762657627576285762957630576315763257633576345763557636576375763857639576405764157642576435764457645576465764757648576495765057651576525765357654576555765657657576585765957660576615766257663576645766557666576675766857669576705767157672576735767457675576765767757678576795768057681576825768357684576855768657687576885768957690576915769257693576945769557696576975769857699577005770157702577035770457705577065770757708577095771057711577125771357714577155771657717577185771957720577215772257723577245772557726577275772857729577305773157732577335773457735577365773757738577395774057741577425774357744577455774657747577485774957750577515775257753577545775557756577575775857759577605776157762577635776457765577665776757768577695777057771577725777357774577755777657777577785777957780577815778257783577845778557786577875778857789577905779157792577935779457795577965779757798577995780057801578025780357804578055780657807578085780957810578115781257813578145781557816578175781857819578205782157822578235782457825578265782757828578295783057831578325783357834578355783657837578385783957840578415784257843578445784557846578475784857849578505785157852578535785457855578565785757858578595786057861578625786357864578655786657867578685786957870578715787257873578745787557876578775787857879578805788157882578835788457885578865788757888578895789057891578925789357894578955789657897578985789957900579015790257903579045790557906579075790857909579105791157912579135791457915579165791757918579195792057921579225792357924579255792657927579285792957930579315793257933579345793557936579375793857939579405794157942579435794457945579465794757948579495795057951579525795357954579555795657957579585795957960579615796257963579645796557966579675796857969579705797157972579735797457975579765797757978579795798057981579825798357984579855798657987579885798957990579915799257993579945799557996579975799857999580005800158002580035800458005580065800758008580095801058011580125801358014580155801658017580185801958020580215802258023580245802558026580275802858029580305803158032580335803458035580365803758038580395804058041580425804358044580455804658047580485804958050580515805258053580545805558056580575805858059580605806158062580635806458065580665806758068580695807058071580725807358074580755807658077580785807958080580815808258083580845808558086580875808858089580905809158092580935809458095580965809758098580995810058101581025810358104581055810658107581085810958110581115811258113581145811558116581175811858119581205812158122581235812458125581265812758128581295813058131581325813358134581355813658137581385813958140581415814258143581445814558146581475814858149581505815158152581535815458155581565815758158581595816058161581625816358164581655816658167581685816958170581715817258173581745817558176581775817858179581805818158182581835818458185581865818758188581895819058191581925819358194581955819658197581985819958200582015820258203582045820558206582075820858209582105821158212582135821458215582165821758218582195822058221582225822358224582255822658227582285822958230582315823258233582345823558236582375823858239582405824158242582435824458245582465824758248582495825058251582525825358254582555825658257582585825958260582615826258263582645826558266582675826858269582705827158272582735827458275582765827758278582795828058281582825828358284582855828658287582885828958290582915829258293582945829558296582975829858299583005830158302583035830458305583065830758308583095831058311583125831358314583155831658317583185831958320583215832258323583245832558326583275832858329583305833158332583335833458335583365833758338583395834058341583425834358344583455834658347583485834958350583515835258353583545835558356583575835858359583605836158362583635836458365583665836758368583695837058371583725837358374583755837658377583785837958380583815838258383583845838558386583875838858389583905839158392583935839458395583965839758398583995840058401584025840358404584055840658407584085840958410584115841258413584145841558416584175841858419584205842158422584235842458425584265842758428584295843058431584325843358434584355843658437584385843958440584415844258443584445844558446584475844858449584505845158452584535845458455584565845758458584595846058461584625846358464584655846658467584685846958470584715847258473584745847558476584775847858479584805848158482584835848458485584865848758488584895849058491584925849358494584955849658497584985849958500585015850258503585045850558506585075850858509585105851158512585135851458515585165851758518585195852058521585225852358524585255852658527585285852958530585315853258533585345853558536585375853858539585405854158542585435854458545585465854758548585495855058551585525855358554585555855658557585585855958560585615856258563585645856558566585675856858569585705857158572585735857458575585765857758578585795858058581585825858358584585855858658587585885858958590585915859258593585945859558596585975859858599586005860158602586035860458605586065860758608586095861058611586125861358614586155861658617586185861958620586215862258623586245862558626586275862858629586305863158632586335863458635586365863758638586395864058641586425864358644586455864658647586485864958650586515865258653586545865558656586575865858659586605866158662586635866458665586665866758668586695867058671586725867358674586755867658677586785867958680586815868258683586845868558686586875868858689586905869158692586935869458695586965869758698586995870058701587025870358704587055870658707587085870958710587115871258713587145871558716587175871858719587205872158722587235872458725587265872758728587295873058731587325873358734587355873658737587385873958740587415874258743587445874558746587475874858749587505875158752587535875458755587565875758758587595876058761587625876358764587655876658767587685876958770587715877258773587745877558776587775877858779587805878158782587835878458785587865878758788587895879058791587925879358794587955879658797587985879958800588015880258803588045880558806588075880858809588105881158812588135881458815588165881758818588195882058821588225882358824588255882658827588285882958830588315883258833588345883558836588375883858839588405884158842588435884458845588465884758848588495885058851588525885358854588555885658857588585885958860588615886258863588645886558866588675886858869588705887158872588735887458875588765887758878588795888058881588825888358884588855888658887588885888958890588915889258893588945889558896588975889858899589005890158902589035890458905589065890758908589095891058911589125891358914589155891658917589185891958920589215892258923589245892558926589275892858929589305893158932589335893458935589365893758938589395894058941589425894358944589455894658947589485894958950589515895258953589545895558956589575895858959589605896158962589635896458965589665896758968589695897058971589725897358974589755897658977589785897958980589815898258983589845898558986589875898858989589905899158992589935899458995589965899758998589995900059001590025900359004590055900659007590085900959010590115901259013590145901559016590175901859019590205902159022590235902459025590265902759028590295903059031590325903359034590355903659037590385903959040590415904259043590445904559046590475904859049590505905159052590535905459055590565905759058590595906059061590625906359064590655906659067590685906959070590715907259073590745907559076590775907859079590805908159082590835908459085590865908759088590895909059091590925909359094590955909659097590985909959100591015910259103591045910559106591075910859109591105911159112591135911459115591165911759118591195912059121591225912359124591255912659127591285912959130591315913259133591345913559136591375913859139591405914159142591435914459145591465914759148591495915059151591525915359154591555915659157591585915959160591615916259163591645916559166591675916859169591705917159172591735917459175591765917759178591795918059181591825918359184591855918659187591885918959190591915919259193591945919559196591975919859199592005920159202592035920459205592065920759208592095921059211592125921359214592155921659217592185921959220592215922259223592245922559226592275922859229592305923159232592335923459235592365923759238592395924059241592425924359244592455924659247592485924959250592515925259253592545925559256592575925859259592605926159262592635926459265592665926759268592695927059271592725927359274592755927659277592785927959280592815928259283592845928559286592875928859289592905929159292592935929459295592965929759298592995930059301593025930359304593055930659307593085930959310593115931259313593145931559316593175931859319593205932159322593235932459325593265932759328593295933059331593325933359334593355933659337593385933959340593415934259343593445934559346593475934859349593505935159352593535935459355593565935759358593595936059361593625936359364593655936659367593685936959370593715937259373593745937559376593775937859379593805938159382593835938459385593865938759388593895939059391593925939359394593955939659397593985939959400594015940259403594045940559406594075940859409594105941159412594135941459415594165941759418594195942059421594225942359424594255942659427594285942959430594315943259433594345943559436594375943859439594405944159442594435944459445594465944759448594495945059451594525945359454594555945659457594585945959460594615946259463594645946559466594675946859469594705947159472594735947459475594765947759478594795948059481594825948359484594855948659487594885948959490594915949259493594945949559496594975949859499595005950159502595035950459505595065950759508595095951059511595125951359514595155951659517595185951959520595215952259523595245952559526595275952859529595305953159532595335953459535595365953759538595395954059541595425954359544595455954659547595485954959550595515955259553595545955559556595575955859559595605956159562595635956459565595665956759568595695957059571595725957359574595755957659577595785957959580595815958259583595845958559586595875958859589595905959159592595935959459595595965959759598595995960059601596025960359604596055960659607596085960959610596115961259613596145961559616596175961859619596205962159622596235962459625596265962759628596295963059631596325963359634596355963659637596385963959640596415964259643596445964559646596475964859649596505965159652596535965459655596565965759658596595966059661596625966359664596655966659667596685966959670596715967259673596745967559676596775967859679596805968159682596835968459685596865968759688596895969059691596925969359694596955969659697596985969959700597015970259703597045970559706597075970859709597105971159712597135971459715597165971759718597195972059721597225972359724597255972659727597285972959730597315973259733597345973559736597375973859739597405974159742597435974459745597465974759748597495975059751597525975359754597555975659757597585975959760597615976259763597645976559766597675976859769597705977159772597735977459775597765977759778597795978059781597825978359784597855978659787597885978959790597915979259793597945979559796597975979859799598005980159802598035980459805598065980759808598095981059811598125981359814598155981659817598185981959820598215982259823598245982559826598275982859829598305983159832598335983459835598365983759838598395984059841598425984359844598455984659847598485984959850598515985259853598545985559856598575985859859598605986159862598635986459865598665986759868598695987059871598725987359874598755987659877598785987959880598815988259883598845988559886598875988859889598905989159892598935989459895598965989759898598995990059901599025990359904599055990659907599085990959910599115991259913599145991559916599175991859919599205992159922599235992459925599265992759928599295993059931599325993359934599355993659937599385993959940599415994259943599445994559946599475994859949599505995159952599535995459955599565995759958599595996059961599625996359964599655996659967599685996959970599715997259973599745997559976599775997859979599805998159982599835998459985599865998759988599895999059991599925999359994599955999659997599985999960000600016000260003600046000560006600076000860009600106001160012600136001460015600166001760018600196002060021600226002360024600256002660027600286002960030600316003260033600346003560036600376003860039600406004160042600436004460045600466004760048600496005060051600526005360054600556005660057600586005960060600616006260063600646006560066600676006860069600706007160072600736007460075600766007760078600796008060081600826008360084600856008660087600886008960090600916009260093600946009560096600976009860099601006010160102601036010460105601066010760108601096011060111601126011360114601156011660117601186011960120601216012260123601246012560126601276012860129601306013160132601336013460135601366013760138601396014060141601426014360144601456014660147601486014960150601516015260153601546015560156601576015860159601606016160162601636016460165601666016760168601696017060171601726017360174601756017660177601786017960180601816018260183601846018560186601876018860189601906019160192601936019460195601966019760198601996020060201602026020360204602056020660207602086020960210602116021260213602146021560216602176021860219602206022160222602236022460225602266022760228602296023060231602326023360234602356023660237602386023960240602416024260243602446024560246602476024860249602506025160252602536025460255602566025760258602596026060261602626026360264602656026660267602686026960270602716027260273602746027560276602776027860279602806028160282602836028460285602866028760288602896029060291602926029360294602956029660297602986029960300603016030260303603046030560306603076030860309603106031160312603136031460315603166031760318603196032060321603226032360324603256032660327603286032960330603316033260333603346033560336603376033860339603406034160342603436034460345603466034760348603496035060351603526035360354603556035660357603586035960360603616036260363603646036560366603676036860369603706037160372603736037460375603766037760378603796038060381603826038360384603856038660387603886038960390603916039260393603946039560396603976039860399604006040160402604036040460405604066040760408604096041060411604126041360414604156041660417604186041960420604216042260423604246042560426604276042860429604306043160432604336043460435604366043760438604396044060441604426044360444604456044660447604486044960450604516045260453604546045560456604576045860459604606046160462604636046460465604666046760468604696047060471604726047360474604756047660477604786047960480604816048260483604846048560486604876048860489604906049160492604936049460495604966049760498604996050060501605026050360504605056050660507605086050960510605116051260513605146051560516605176051860519605206052160522605236052460525605266052760528605296053060531605326053360534605356053660537605386053960540605416054260543605446054560546605476054860549605506055160552605536055460555605566055760558605596056060561605626056360564605656056660567605686056960570605716057260573605746057560576605776057860579605806058160582605836058460585605866058760588605896059060591605926059360594605956059660597605986059960600606016060260603606046060560606606076060860609606106061160612606136061460615606166061760618606196062060621606226062360624606256062660627606286062960630606316063260633606346063560636606376063860639606406064160642606436064460645606466064760648606496065060651606526065360654606556065660657606586065960660606616066260663606646066560666606676066860669606706067160672606736067460675606766067760678606796068060681606826068360684606856068660687606886068960690606916069260693606946069560696606976069860699607006070160702607036070460705607066070760708607096071060711607126071360714607156071660717607186071960720607216072260723607246072560726607276072860729607306073160732607336073460735607366073760738607396074060741607426074360744607456074660747607486074960750607516075260753607546075560756607576075860759607606076160762607636076460765607666076760768607696077060771607726077360774607756077660777607786077960780607816078260783607846078560786607876078860789607906079160792607936079460795607966079760798607996080060801608026080360804608056080660807608086080960810608116081260813608146081560816608176081860819608206082160822608236082460825608266082760828608296083060831608326083360834608356083660837608386083960840608416084260843608446084560846608476084860849608506085160852608536085460855608566085760858608596086060861608626086360864608656086660867608686086960870608716087260873608746087560876608776087860879608806088160882608836088460885608866088760888608896089060891608926089360894608956089660897608986089960900609016090260903609046090560906609076090860909609106091160912609136091460915609166091760918609196092060921609226092360924609256092660927609286092960930609316093260933609346093560936609376093860939609406094160942609436094460945609466094760948609496095060951609526095360954609556095660957609586095960960609616096260963609646096560966609676096860969609706097160972609736097460975609766097760978609796098060981609826098360984609856098660987609886098960990609916099260993609946099560996609976099860999610006100161002610036100461005610066100761008610096101061011610126101361014610156101661017610186101961020610216102261023610246102561026610276102861029610306103161032610336103461035610366103761038610396104061041610426104361044610456104661047610486104961050610516105261053610546105561056610576105861059610606106161062610636106461065610666106761068610696107061071610726107361074610756107661077610786107961080610816108261083610846108561086610876108861089610906109161092610936109461095610966109761098610996110061101611026110361104611056110661107611086110961110611116111261113611146111561116611176111861119611206112161122611236112461125611266112761128611296113061131611326113361134611356113661137611386113961140611416114261143611446114561146611476114861149611506115161152611536115461155611566115761158611596116061161611626116361164611656116661167611686116961170611716117261173611746117561176611776117861179611806118161182611836118461185611866118761188611896119061191611926119361194611956119661197611986119961200612016120261203612046120561206612076120861209612106121161212612136121461215612166121761218612196122061221612226122361224612256122661227612286122961230612316123261233612346123561236612376123861239612406124161242612436124461245612466124761248612496125061251612526125361254612556125661257612586125961260612616126261263612646126561266612676126861269612706127161272612736127461275612766127761278612796128061281612826128361284612856128661287612886128961290612916129261293612946129561296612976129861299613006130161302613036130461305613066130761308613096131061311613126131361314613156131661317613186131961320613216132261323613246132561326613276132861329613306133161332613336133461335613366133761338613396134061341613426134361344613456134661347613486134961350613516135261353613546135561356613576135861359613606136161362613636136461365613666136761368613696137061371613726137361374613756137661377613786137961380613816138261383613846138561386613876138861389613906139161392613936139461395613966139761398613996140061401614026140361404614056140661407614086140961410614116141261413614146141561416614176141861419614206142161422614236142461425614266142761428614296143061431614326143361434614356143661437614386143961440614416144261443614446144561446614476144861449614506145161452614536145461455614566145761458614596146061461614626146361464614656146661467614686146961470614716147261473614746147561476614776147861479614806148161482614836148461485614866148761488614896149061491614926149361494614956149661497614986149961500615016150261503615046150561506615076150861509615106151161512615136151461515615166151761518615196152061521615226152361524615256152661527615286152961530615316153261533615346153561536615376153861539615406154161542615436154461545615466154761548615496155061551615526155361554615556155661557615586155961560615616156261563615646156561566615676156861569615706157161572615736157461575615766157761578615796158061581615826158361584615856158661587615886158961590615916159261593615946159561596615976159861599616006160161602616036160461605616066160761608616096161061611616126161361614616156161661617616186161961620616216162261623616246162561626616276162861629616306163161632616336163461635616366163761638616396164061641616426164361644616456164661647616486164961650616516165261653616546165561656616576165861659616606166161662616636166461665616666166761668616696167061671616726167361674616756167661677616786167961680616816168261683616846168561686616876168861689616906169161692616936169461695616966169761698616996170061701617026170361704617056170661707617086170961710617116171261713617146171561716617176171861719617206172161722617236172461725617266172761728617296173061731617326173361734617356173661737617386173961740617416174261743617446174561746617476174861749617506175161752617536175461755617566175761758617596176061761617626176361764617656176661767617686176961770617716177261773617746177561776617776177861779617806178161782617836178461785617866178761788617896179061791617926179361794617956179661797617986179961800618016180261803618046180561806618076180861809618106181161812618136181461815618166181761818618196182061821618226182361824618256182661827618286182961830618316183261833618346183561836618376183861839618406184161842618436184461845618466184761848618496185061851618526185361854618556185661857618586185961860618616186261863618646186561866618676186861869618706187161872618736187461875618766187761878618796188061881618826188361884618856188661887618886188961890618916189261893618946189561896618976189861899619006190161902619036190461905619066190761908619096191061911619126191361914619156191661917619186191961920619216192261923619246192561926619276192861929619306193161932619336193461935619366193761938619396194061941619426194361944619456194661947619486194961950619516195261953619546195561956619576195861959619606196161962619636196461965619666196761968619696197061971619726197361974619756197661977619786197961980619816198261983619846198561986619876198861989619906199161992619936199461995619966199761998619996200062001620026200362004620056200662007620086200962010620116201262013620146201562016620176201862019620206202162022620236202462025620266202762028620296203062031620326203362034620356203662037620386203962040620416204262043620446204562046620476204862049620506205162052620536205462055620566205762058620596206062061620626206362064620656206662067620686206962070620716207262073620746207562076620776207862079620806208162082620836208462085620866208762088620896209062091620926209362094620956209662097620986209962100621016210262103621046210562106621076210862109621106211162112621136211462115621166211762118621196212062121621226212362124621256212662127621286212962130621316213262133621346213562136621376213862139621406214162142621436214462145621466214762148621496215062151621526215362154621556215662157621586215962160621616216262163621646216562166621676216862169621706217162172621736217462175621766217762178621796218062181621826218362184621856218662187621886218962190621916219262193621946219562196621976219862199622006220162202622036220462205622066220762208622096221062211622126221362214622156221662217622186221962220622216222262223622246222562226622276222862229622306223162232622336223462235622366223762238622396224062241622426224362244622456224662247622486224962250622516225262253622546225562256622576225862259622606226162262622636226462265622666226762268622696227062271622726227362274622756227662277622786227962280622816228262283622846228562286622876228862289622906229162292622936229462295622966229762298622996230062301623026230362304623056230662307623086230962310623116231262313623146231562316623176231862319623206232162322623236232462325623266232762328623296233062331623326233362334623356233662337623386233962340623416234262343623446234562346623476234862349623506235162352623536235462355623566235762358623596236062361623626236362364623656236662367623686236962370623716237262373623746237562376623776237862379623806238162382623836238462385623866238762388623896239062391623926239362394623956239662397623986239962400624016240262403624046240562406624076240862409624106241162412624136241462415624166241762418624196242062421624226242362424624256242662427624286242962430624316243262433624346243562436624376243862439624406244162442624436244462445624466244762448624496245062451624526245362454624556245662457624586245962460624616246262463624646246562466624676246862469624706247162472624736247462475624766247762478624796248062481624826248362484624856248662487624886248962490624916249262493624946249562496624976249862499625006250162502625036250462505625066250762508625096251062511625126251362514625156251662517625186251962520625216252262523625246252562526625276252862529625306253162532625336253462535625366253762538625396254062541625426254362544625456254662547625486254962550625516255262553625546255562556625576255862559625606256162562625636256462565625666256762568625696257062571625726257362574625756257662577625786257962580625816258262583625846258562586625876258862589625906259162592625936259462595625966259762598625996260062601626026260362604626056260662607626086260962610626116261262613626146261562616626176261862619626206262162622626236262462625626266262762628626296263062631626326263362634626356263662637626386263962640626416264262643626446264562646626476264862649626506265162652626536265462655626566265762658626596266062661626626266362664626656266662667626686266962670626716267262673626746267562676626776267862679626806268162682626836268462685626866268762688626896269062691626926269362694626956269662697626986269962700627016270262703627046270562706627076270862709627106271162712627136271462715627166271762718627196272062721627226272362724627256272662727627286272962730627316273262733627346273562736627376273862739627406274162742627436274462745627466274762748627496275062751627526275362754627556275662757627586275962760627616276262763627646276562766627676276862769627706277162772627736277462775627766277762778627796278062781627826278362784627856278662787627886278962790627916279262793627946279562796627976279862799628006280162802628036280462805628066280762808628096281062811628126281362814628156281662817628186281962820628216282262823628246282562826628276282862829628306283162832628336283462835628366283762838628396284062841628426284362844628456284662847628486284962850628516285262853628546285562856628576285862859628606286162862628636286462865628666286762868628696287062871628726287362874628756287662877628786287962880628816288262883628846288562886628876288862889628906289162892628936289462895628966289762898628996290062901629026290362904629056290662907629086290962910629116291262913629146291562916629176291862919629206292162922629236292462925629266292762928629296293062931629326293362934629356293662937629386293962940629416294262943629446294562946629476294862949629506295162952629536295462955629566295762958629596296062961629626296362964629656296662967629686296962970629716297262973629746297562976629776297862979629806298162982629836298462985629866298762988629896299062991629926299362994629956299662997629986299963000630016300263003630046300563006630076300863009630106301163012630136301463015630166301763018630196302063021630226302363024630256302663027630286302963030630316303263033630346303563036630376303863039630406304163042630436304463045630466304763048630496305063051630526305363054630556305663057630586305963060630616306263063630646306563066630676306863069630706307163072630736307463075630766307763078630796308063081630826308363084630856308663087630886308963090630916309263093630946309563096630976309863099631006310163102631036310463105631066310763108631096311063111631126311363114631156311663117631186311963120631216312263123631246312563126631276312863129631306313163132631336313463135631366313763138631396314063141631426314363144631456314663147631486314963150631516315263153631546315563156631576315863159631606316163162631636316463165631666316763168631696317063171631726317363174631756317663177631786317963180631816318263183631846318563186631876318863189631906319163192631936319463195631966319763198631996320063201632026320363204632056320663207632086320963210632116321263213632146321563216632176321863219632206322163222632236322463225632266322763228632296323063231632326323363234632356323663237632386323963240632416324263243632446324563246632476324863249632506325163252632536325463255632566325763258632596326063261632626326363264632656326663267632686326963270632716327263273632746327563276632776327863279632806328163282632836328463285632866328763288632896329063291632926329363294632956329663297632986329963300633016330263303633046330563306633076330863309633106331163312633136331463315633166331763318633196332063321633226332363324633256332663327633286332963330633316333263333633346333563336633376333863339633406334163342633436334463345633466334763348633496335063351633526335363354633556335663357633586335963360633616336263363633646336563366633676336863369633706337163372633736337463375633766337763378633796338063381633826338363384633856338663387633886338963390633916339263393633946339563396633976339863399634006340163402634036340463405634066340763408634096341063411634126341363414634156341663417634186341963420634216342263423634246342563426634276342863429634306343163432634336343463435634366343763438634396344063441634426344363444634456344663447634486344963450634516345263453634546345563456634576345863459634606346163462634636346463465634666346763468634696347063471634726347363474634756347663477634786347963480634816348263483634846348563486634876348863489634906349163492634936349463495634966349763498634996350063501635026350363504635056350663507635086350963510635116351263513635146351563516635176351863519635206352163522635236352463525635266352763528635296353063531635326353363534635356353663537635386353963540635416354263543635446354563546635476354863549635506355163552635536355463555635566355763558635596356063561635626356363564635656356663567635686356963570635716357263573635746357563576635776357863579635806358163582635836358463585635866358763588635896359063591635926359363594635956359663597635986359963600636016360263603636046360563606636076360863609636106361163612636136361463615636166361763618636196362063621636226362363624636256362663627636286362963630636316363263633636346363563636636376363863639636406364163642636436364463645636466364763648636496365063651636526365363654636556365663657636586365963660636616366263663636646366563666636676366863669636706367163672636736367463675636766367763678636796368063681636826368363684636856368663687636886368963690636916369263693636946369563696636976369863699637006370163702637036370463705637066370763708637096371063711637126371363714637156371663717637186371963720637216372263723637246372563726637276372863729637306373163732637336373463735637366373763738637396374063741637426374363744637456374663747637486374963750637516375263753637546375563756637576375863759637606376163762637636376463765637666376763768637696377063771637726377363774637756377663777637786377963780637816378263783637846378563786637876378863789637906379163792637936379463795637966379763798637996380063801638026380363804638056380663807638086380963810638116381263813638146381563816638176381863819638206382163822638236382463825638266382763828638296383063831638326383363834638356383663837638386383963840638416384263843638446384563846638476384863849638506385163852638536385463855638566385763858638596386063861638626386363864638656386663867638686386963870638716387263873638746387563876638776387863879638806388163882638836388463885638866388763888638896389063891638926389363894638956389663897638986389963900639016390263903639046390563906639076390863909639106391163912639136391463915639166391763918639196392063921639226392363924639256392663927639286392963930639316393263933639346393563936639376393863939639406394163942639436394463945639466394763948639496395063951639526395363954639556395663957639586395963960639616396263963639646396563966639676396863969639706397163972639736397463975639766397763978639796398063981639826398363984639856398663987639886398963990639916399263993639946399563996639976399863999640006400164002640036400464005640066400764008640096401064011640126401364014640156401664017640186401964020640216402264023640246402564026640276402864029640306403164032640336403464035640366403764038640396404064041640426404364044640456404664047640486404964050640516405264053640546405564056640576405864059640606406164062640636406464065640666406764068640696407064071640726407364074640756407664077640786407964080640816408264083640846408564086640876408864089640906409164092640936409464095640966409764098640996410064101641026410364104641056410664107641086410964110641116411264113641146411564116641176411864119641206412164122641236412464125641266412764128641296413064131641326413364134641356413664137641386413964140641416414264143641446414564146641476414864149641506415164152641536415464155641566415764158641596416064161641626416364164641656416664167641686416964170641716417264173641746417564176641776417864179641806418164182641836418464185641866418764188641896419064191641926419364194641956419664197641986419964200642016420264203642046420564206642076420864209642106421164212642136421464215642166421764218642196422064221642226422364224642256422664227642286422964230642316423264233642346423564236642376423864239642406424164242642436424464245642466424764248642496425064251642526425364254642556425664257642586425964260642616426264263642646426564266642676426864269642706427164272642736427464275642766427764278642796428064281642826428364284642856428664287642886428964290642916429264293642946429564296642976429864299643006430164302643036430464305643066430764308643096431064311643126431364314643156431664317643186431964320643216432264323643246432564326643276432864329643306433164332643336433464335643366433764338643396434064341643426434364344643456434664347643486434964350643516435264353643546435564356643576435864359643606436164362643636436464365643666436764368643696437064371643726437364374643756437664377643786437964380643816438264383643846438564386643876438864389643906439164392643936439464395643966439764398643996440064401644026440364404644056440664407644086440964410644116441264413644146441564416644176441864419644206442164422644236442464425644266442764428644296443064431644326443364434644356443664437644386443964440644416444264443644446444564446644476444864449644506445164452644536445464455644566445764458644596446064461644626446364464644656446664467644686446964470644716447264473644746447564476644776447864479644806448164482644836448464485644866448764488644896449064491644926449364494644956449664497644986449964500645016450264503645046450564506645076450864509645106451164512645136451464515645166451764518645196452064521645226452364524645256452664527645286452964530645316453264533645346453564536645376453864539645406454164542645436454464545645466454764548645496455064551645526455364554645556455664557645586455964560645616456264563645646456564566645676456864569645706457164572645736457464575645766457764578645796458064581645826458364584645856458664587645886458964590645916459264593645946459564596645976459864599646006460164602646036460464605646066460764608646096461064611646126461364614646156461664617646186461964620646216462264623646246462564626646276462864629646306463164632646336463464635646366463764638646396464064641646426464364644646456464664647646486464964650646516465264653646546465564656646576465864659646606466164662646636466464665646666466764668646696467064671646726467364674646756467664677646786467964680646816468264683646846468564686646876468864689646906469164692646936469464695646966469764698646996470064701647026470364704647056470664707647086470964710647116471264713647146471564716647176471864719647206472164722647236472464725647266472764728647296473064731647326473364734647356473664737647386473964740647416474264743647446474564746647476474864749647506475164752647536475464755647566475764758647596476064761647626476364764647656476664767647686476964770647716477264773647746477564776647776477864779647806478164782647836478464785647866478764788647896479064791647926479364794647956479664797647986479964800648016480264803648046480564806648076480864809648106481164812648136481464815648166481764818648196482064821648226482364824648256482664827648286482964830648316483264833648346483564836648376483864839648406484164842648436484464845648466484764848648496485064851648526485364854648556485664857648586485964860648616486264863648646486564866648676486864869648706487164872648736487464875648766487764878648796488064881648826488364884648856488664887648886488964890648916489264893648946489564896648976489864899649006490164902649036490464905649066490764908649096491064911649126491364914649156491664917649186491964920649216492264923649246492564926649276492864929649306493164932649336493464935649366493764938649396494064941649426494364944649456494664947649486494964950649516495264953649546495564956649576495864959649606496164962649636496464965649666496764968649696497064971649726497364974649756497664977649786497964980649816498264983649846498564986649876498864989649906499164992649936499464995649966499764998649996500065001650026500365004650056500665007650086500965010650116501265013650146501565016650176501865019650206502165022650236502465025650266502765028650296503065031650326503365034650356503665037650386503965040650416504265043650446504565046650476504865049650506505165052650536505465055650566505765058650596506065061650626506365064650656506665067650686506965070650716507265073650746507565076650776507865079650806508165082650836508465085650866508765088650896509065091650926509365094650956509665097650986509965100651016510265103651046510565106651076510865109651106511165112651136511465115651166511765118651196512065121651226512365124651256512665127651286512965130651316513265133651346513565136651376513865139651406514165142651436514465145651466514765148651496515065151651526515365154651556515665157651586515965160651616516265163651646516565166651676516865169651706517165172651736517465175651766517765178651796518065181651826518365184651856518665187651886518965190651916519265193651946519565196651976519865199652006520165202652036520465205652066520765208652096521065211652126521365214652156521665217652186521965220652216522265223652246522565226652276522865229652306523165232652336523465235652366523765238652396524065241652426524365244652456524665247652486524965250652516525265253652546525565256652576525865259652606526165262652636526465265652666526765268652696527065271652726527365274652756527665277652786527965280652816528265283652846528565286652876528865289652906529165292652936529465295652966529765298652996530065301653026530365304653056530665307653086530965310653116531265313653146531565316653176531865319653206532165322653236532465325653266532765328653296533065331653326533365334653356533665337653386533965340653416534265343653446534565346653476534865349653506535165352653536535465355653566535765358653596536065361653626536365364653656536665367653686536965370653716537265373653746537565376653776537865379653806538165382653836538465385653866538765388653896539065391653926539365394653956539665397653986539965400654016540265403654046540565406654076540865409654106541165412654136541465415654166541765418654196542065421654226542365424654256542665427654286542965430654316543265433654346543565436654376543865439654406544165442654436544465445654466544765448654496545065451654526545365454654556545665457654586545965460654616546265463654646546565466654676546865469654706547165472654736547465475654766547765478654796548065481654826548365484654856548665487654886548965490654916549265493654946549565496654976549865499655006550165502655036550465505655066550765508655096551065511655126551365514655156551665517655186551965520655216552265523655246552565526655276552865529655306553165532655336553465535655366553765538655396554065541655426554365544655456554665547655486554965550655516555265553655546555565556655576555865559655606556165562655636556465565655666556765568655696557065571655726557365574655756557665577655786557965580655816558265583655846558565586655876558865589655906559165592655936559465595655966559765598655996560065601656026560365604656056560665607656086560965610656116561265613656146561565616656176561865619656206562165622656236562465625656266562765628656296563065631656326563365634656356563665637656386563965640656416564265643656446564565646656476564865649656506565165652656536565465655656566565765658656596566065661656626566365664656656566665667656686566965670656716567265673656746567565676656776567865679656806568165682656836568465685656866568765688656896569065691656926569365694656956569665697656986569965700657016570265703657046570565706657076570865709657106571165712657136571465715657166571765718657196572065721657226572365724657256572665727657286572965730657316573265733657346573565736657376573865739657406574165742657436574465745657466574765748657496575065751657526575365754657556575665757657586575965760657616576265763657646576565766657676576865769657706577165772657736577465775657766577765778657796578065781657826578365784657856578665787657886578965790657916579265793657946579565796657976579865799658006580165802658036580465805658066580765808658096581065811658126581365814658156581665817658186581965820658216582265823658246582565826658276582865829658306583165832658336583465835658366583765838658396584065841658426584365844658456584665847658486584965850658516585265853658546585565856658576585865859658606586165862658636586465865658666586765868658696587065871658726587365874658756587665877658786587965880658816588265883658846588565886658876588865889658906589165892658936589465895658966589765898658996590065901659026590365904659056590665907659086590965910659116591265913659146591565916659176591865919659206592165922659236592465925659266592765928659296593065931659326593365934659356593665937659386593965940659416594265943659446594565946659476594865949659506595165952659536595465955659566595765958659596596065961659626596365964659656596665967659686596965970659716597265973659746597565976659776597865979659806598165982659836598465985659866598765988659896599065991659926599365994659956599665997659986599966000660016600266003660046600566006660076600866009660106601166012660136601466015660166601766018660196602066021660226602366024660256602666027660286602966030660316603266033660346603566036660376603866039660406604166042660436604466045660466604766048660496605066051660526605366054660556605666057660586605966060660616606266063660646606566066660676606866069660706607166072660736607466075660766607766078660796608066081660826608366084660856608666087660886608966090660916609266093660946609566096660976609866099661006610166102661036610466105661066610766108661096611066111661126611366114661156611666117661186611966120661216612266123661246612566126661276612866129661306613166132661336613466135661366613766138661396614066141661426614366144661456614666147661486614966150661516615266153661546615566156661576615866159661606616166162661636616466165661666616766168661696617066171661726617366174661756617666177661786617966180661816618266183661846618566186661876618866189661906619166192661936619466195661966619766198661996620066201662026620366204662056620666207662086620966210662116621266213662146621566216662176621866219662206622166222662236622466225662266622766228662296623066231662326623366234662356623666237662386623966240662416624266243662446624566246662476624866249662506625166252662536625466255662566625766258662596626066261662626626366264
  1. /*
  2. ----- 2020, gamemode sold to Ice, all rights to him.
  3. /*
  4. Drakey:
  5. WARNING: IF PEOPLE ARE FALLING THROUGH FLOORS / NOT LOADING PROPERLY
  6. SEARCH SetTimerEx("UnFreezePlayer", 2000
  7. CHANGE TO SetTimerEx("UnFreezePlayer", 8000
  8. --------------------------------------------------------------------- */
  9. #include <a_samp>
  10. #pragma unused g_TrashPickups
  11. #pragma dynamic 50000
  12. #undef MAX_PLAYERS
  13. #define MAX_PLAYERS (100)
  14. #undef MAX_VEHICLES
  15. #define MAX_VEHICLES (1500)
  16. #undef INVALID_3DTEXT_ID
  17. #define INVALID_3DTEXT_ID (Text3D:0xFFFF)
  18. #undef INVALID_TEXT_DRAW
  19. #define INVALID_TEXT_DRAW (Text:0xFFFF)
  20. #define MaxFire 80
  21. //gsf = GetPlayerSkin(playerid);
  22. new fd_wall[52];
  23. new ReviewQuiz[MAX_PLAYERS] = -1;
  24. new retexture; // variable for admin jail mapping
  25. new msg[2056];
  26. new currentQuestion[MAX_PLAYERS];
  27. new quizIndexes[MAX_PLAYERS][50];
  28. new Float:vehicleStartingHealth[MAX_PLAYERS];
  29. new oldWeapon[MAX_PLAYERS], newWeapon[MAX_PLAYERS], oldAmmo[MAX_PLAYERS], newAmmo[MAX_PLAYERS];
  30. new questionResponse[MAX_PLAYERS][11][500];
  31. new Text3D:FireText[MaxFire];
  32. /*---------------------------------------------------------------------------
  33. Dependencies
  34. These are the includes which will be used for this gamemode.
  35. Make sure you add a link to the release topic!
  36. ---------------------------------------------------------------------------*/
  37. #include <a_mysql> // http://forum.sa-mp.com/showthread.php?t=56564
  38. #include <streamer> // http://forum.sa-mp.com/showthread.php?t=102865
  39. #include <sscanf2> // http://forum.sa-mp.com/showthread.php?t=120356
  40. #include <easyDialog> // http://forum.sa-mp.com/showthread.php?t=475838
  41. #include <foreach> // http://forum.sa-mp.com/showthread.php?t=92679
  42. #include <progress2> // http://forum.sa-mp.com/showthread.php?t=537468
  43. #include <MapAndreas> // http://forum.sa-mp.com/showthread.php?t=120013
  44. #include <zcmd> // http://forum.sa-mp.com/showthread.php?t=91354
  45. #include <OPA> // http://forum.sa-mp.com/showthread.php?t=474196
  46. #include <fader>
  47. #include <zone-data>
  48. #include <YSI\y_hooks>
  49. #include <VPP>
  50. #include <OnVehicleModEx>
  51. /*--------------------------------------------------------------
  52. SQL information
  53. This script utilizes the MySQL plugin for data storage.
  54. SQL_HOSTNAME - The hostname to connect to.
  55. SQL_DATABASE - The name of the database.
  56. SQL_USERNAME - The username to authenticate to.
  57. SQL_PASSWORD - The password for the user.
  58. ---------------------------------------------------------------------------*/
  59. /*#define SQL_HOSTNAME "localhost"
  60. #define SQL_DATABASE "zairxdaffy0"
  61. #define SQL_USERNAME "airxdaffy"
  62. #define SQL_PASSWORD "curry3011" *///4vDYb6Gg
  63. #define SQL_HOSTNAME "217.146.86.250"
  64. #define SQL_DATABASE "cadariusm_db54987"
  65. #define SQL_USERNAME "cadariusm_54987"
  66. #define SQL_PASSWORD "H3!OA6P6T4f6"
  67. /*---------------------------------------------------------------------------
  68. Definitions
  69. The colors, limits, settings, etc are all here!
  70. Please be cautious when changing any values.
  71. ---------------------------------------------------------------------------*/
  72. // MAJOR.MINOR.PATCH
  73. #define SERVER_REVISION "1.0.0"
  74. #define SERVER_WEBSITE ""
  75. #include "utils/def_color.pwn"
  76. #include "utils/def_max.pwn"
  77. #include "utils/def_time.pwn"
  78. #include "utils/def_fade.pwn"
  79. // Add to def_max.pwn when you get time. (lazy)
  80. #define MAX_FACTION_EQUIPMENT 20
  81. #define MAX_FACTION_ACCESSORIES 20
  82. #define BODY_PART_TORSO 3
  83. #define BODY_PART_GROIN 4
  84. #define BODY_PART_LEFT_ARM 5
  85. #define BODY_PART_RIGHT_ARM 6
  86. #define BODY_PART_LEFT_LEG 7
  87. #define BODY_PART_RIGHT_LEG 8
  88. #define BODY_PART_HEAD 9
  89. #define COMPANY_STORE 1
  90. #define COMPANY_CLOTHES 2
  91. #define COMPANY_RESTAURANT 3
  92. #define COMPANY_RENTALS 4
  93. #define COMPANY_PHONE 5
  94. #define COMPANY_DEALERSHIP 6
  95. #define COMPANY_GYM 7
  96. #define COMPANY_AMMO 8
  97. #define COMPANY_BAR 9
  98. #define COMPANY_DEALER 10
  99. #define FACTION_LEO 1
  100. #define FACTION_MEDICAL 2
  101. #define FACTION_GOVERNMENT 3
  102. #define FACTION_ILLEGAL 4
  103. #define FACTION_NEWS 5
  104. #define DONATOR_BASIC 1
  105. #define DONATOR_STANDARD 2
  106. #define DONATOR_INVESTOR 3
  107. #define DONATOR_PREMIUM 4
  108. #define ATTACHED_SLOT_MISC 5
  109. #define ATTACHED_SLOT_MELEE 6
  110. #define ATTACHED_SLOT_PRIMARY 7
  111. #define ATTACHED_SLOT_SECONDARY 8
  112. #define ATTACHED_SLOT_TERTIARY 9
  113. #define INVALID_ID -1
  114. #define SendInfoMessage(%0,%1) SendFormatMessage((%0), COLOR_WHITE, ""%1)
  115. #define SendSyntaxMessage(%0,%1) SendFormatMessage((%0), COLOR_LIGHTGREY, "Usage: "%1)
  116. #define SendErrorMessage(%0,%1) ShowErrorToPlayer((%0), "~r~"%1)
  117. #define percent(%0,%1) (((%0) / 100) * (%1))
  118. #define FADE_START_QUIZ 555
  119. forward SetIntVar(playerid, varname[], value);
  120. forward SetFloatVar(playerid, varname[], Float:value);
  121. forward GetIntVar(playerid, varname[]);
  122. forward Float:GetFloatVar(playerid, varname[]);
  123. //PVar Updating - useful as fuck
  124. #define UpdateIntVar(%0,%1,%2) SetIntVar(%0,%1,(GetIntVar(%0, %1) + %2))
  125. #define UpdateFloatVar(%0,%1,%2) SetFloatVar(%0, %1, (GetFloatVar(%0, %1) + %2))
  126. #define EMBED_RED "{FF0000}"
  127. #define EMBED_WHITE "{FFFFFF}"
  128. #define COLOR_LIGHTRED 0xFF6347AA
  129. #define SCM SendClientMessage
  130. #define SCMALL SendClientMessageToAll
  131. #define Holding(%0) \
  132. ((newkeys & (%0)) == (%0))
  133. // How many fires max.?
  134. forward OnFireKill(ID, killerid);
  135. forward f_OnPlayerUpdate(playerid);
  136. forward VehicleToPoint(Float:radi, vehicleid, Float:x, Float:y, Float:z);
  137. forward HealthDown();
  138. forward f_init();
  139. /*---------------------------------------------------------------------------
  140. Enums
  141. These enumerators are later used for array indexing.
  142. ---------------------------------------------------------------------------*/
  143. new TaxiObject[MAX_VEHICLES+1] = {INVALID_OBJECT_ID, ...};
  144. // start of enumerators for matical's setstation
  145. new
  146. FireObj[MaxFire],
  147. Float:FirePos[MaxFire][3],
  148. TotalFires = 0,
  149. FireHealth[MaxFire],
  150. FireHealthMax[MaxFire];
  151. #if defined Labels
  152. #endif
  153. enum BOOMBOX_INFO
  154. {
  155. boomboxUrlName[128],
  156. boomboxURL[128]
  157. }
  158. new DRPStations[][BOOMBOX_INFO] = { // OTHER DIALOG
  159. {"Los Santos Country", "http://country.lsfm.us:8342/stream"},
  160. {"RC Rock", "http://188.165.192.5:8007/stream"},
  161. {"Red County FM ( RCFM )", "http://91.134.169.6:8224"},
  162. {"Trace FM", "http://178.32.62.172:9284"},
  163. {"Drill House Entertainment", "http://myradiostream.com/4/8182.pls"}
  164. };
  165. new PunkStations[][BOOMBOX_INFO] = { // ROCK DIALOG
  166. {"Punk Rock - ROCKRADIO.com", "http://tunein.com/embed/player/s253015/"}
  167. };
  168. new ClassicStations[][BOOMBOX_INFO] = { // ROCK DIALOG
  169. {"Jamm FM", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=563458"},
  170. {"CLASSICAL 102", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=324044"},
  171. {"CLASSICAL Hits", "http://tunein.com/embed/player/s249942/"}
  172. };
  173. new MetalStations[][BOOMBOX_INFO] = { // ROCK DIALOG
  174. {"Metalcore Kingdom", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=901777"}
  175. };
  176. new RaggaeStations[][BOOMBOX_INFO] = { // URBAN DIALOG
  177. {"420 FM - Hippie Radio", "http://tunein.com/radio/Roots-Reggae-s249978/"}
  178. };
  179. new DanceStations[][BOOMBOX_INFO] = { // OTHER DIALOG
  180. {"Deep House Lounge", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=186925"},
  181. {"Trap Lounge", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=916108"},
  182. {"GotRadio - Mash Ups", "http://206.217.213.236:8530/"},
  183. {"Noise FM", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=379239"}
  184. };
  185. new RapStations[][BOOMBOX_INFO] = { // URBAN DIALOG
  186. {"Flow 103", "http://173.245.71.186:8000"},
  187. {"Powerhitz.com", "http://108.61.30.179:5000"},
  188. {"Urban Hitz Radio", "http://176.31.244.83:4418"},
  189. {"Capital Tune FM", "http://69.175.94.98:8328/"},
  190. {"Bates FM - 104.3 Jamz", "http://174.36.42.110:8630"},
  191. {"TrueHipHop.FM", "http://culturefm.dynds.org:9020"},
  192. {"AAZO Radio Rap", "http://77.67.46.74:8000/aazoradio-raphiphop.mp3/"},
  193. {"Street Style Radio", "http://174.37.16.73:5709/StreetStyleRadio"}
  194. };
  195. new HHStations[][BOOMBOX_INFO] = { // URBAN DIALOG
  196. {"Got Radio - Urban Jams", "http://206.217.213.235:8150"},
  197. {"181.FM - Old School Hip Hop & RNB", "http://108.61.73.118:8068"},
  198. {"HOT 108 JamZ", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=8318"},
  199. {"181.FM - The BOX - #1 For Hip-Hop", "http://108.61.73.119:8024"},
  200. {"Radio Los Santos", "https://sols-lsb.com/radiosa/radiols.mp3"},
  201. {"AceRadio.Net", "http://174.36.42.110:8370"}
  202. };
  203. new Top40Stations[][BOOMBOX_INFO] = { // POP DIALOG
  204. {"ChartHits.FM Top 40 Radio", "http://193.34.51.49:80"},
  205. {"#1 Mega Hits", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=424867"},
  206. {"Party Vibe Radio", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=99179841"}
  207. };
  208. new TalkStations[][BOOMBOX_INFO] = { // OTHER DIALOG
  209. {"ChartHits.FM - Your HITZ More MUSIC!", "http://79.141.174.206:22000"},
  210. {"Top Hits Music - SKY.FM", "http://stream-67.shoutcast.com:80/tophits_skyfm_mp3_96kbps"},
  211. {"181.fm - The Office", "http://108.61.73.117:8002"}
  212. };
  213. // end of matical's setstation enumerators
  214. /*new MaterialIDs[][matLIST] = {
  215. {0, "none", "none", "{6EF83C}Reset Material", "None"},
  216. {1649, "wglass", "carshowwin2", "Glass", "Glass Textures"},
  217. {5722, "sunrise01_lawn", "plainglass", "Glass 1", "Glass Textures"},
  218. {3857, "ottos_glass", "carshowroom1", "Glass 2", "Glass Textures"},
  219. {3979, "civic01_lan", "sl_laglasswall2", "Glass 3", "Glass Textures"},
  220. {10871, "blacksky_sfse", "ws_glass_balustrade", "Glass 4", "Glass Textures"},
  221. {16640, "a51", "a51_glass", "51 Glass", "Glass Textures"},
  222. {10789, "xenon_sfse", "newindow4", "Green Window", "Windows"},
  223. {3925, "weemap", "sw_shedwindow1", "Blue Window", "Windows"},
  224. {18200, "w_town2cs_t", "inwindow1128", "White Window", "Windows"},
  225. {5870, "sunst18_lawn", "inwindow4", "Gate Window", "Windows"},
  226. {18200, "w_town2cs_t", "Bow_door_graffiti_128", "Graffiti", "Misc."},
  227. {5716, "sunrise02_lawn", "manndoor_law", "Chinese paint", "Misc."},
  228. {1229, "signs", "phonesign_128", "Phone Sign", "Misc."},
  229. {1229, "signs", "NoParking2_128", "Parking Sign", "Misc."},
  230. {6351, "rodeo02_law2", "prolsign01_LA", "Pro Laps", "Misc."},
  231. {5771, "melrose11_lawn", "melrsign08_LA", "SPAVCEY", "Misc."},
  232. {9593, "hosbibalsfw", "dt_cops_US_flag", "US Flag", "Misc."},
  233. {9259, "presidio01_sfn", "stainwin_law", "Presidio", "Misc."}
  234. };*/
  235. enum matLIST
  236. {
  237. Name[128],
  238. ModelID,
  239. TxdName[64],
  240. TextureName[64],
  241. Resource[32]
  242. };
  243. new MaterialIDs[][matLIST] =
  244. {
  245. {"{6EF83C}Reset Material", 0, "none", "none", "None"},
  246. #define PCOLORS "Material Colors"
  247. {"Purple", 8839, "vgsecarshow", "lightpurple2_32", PCOLORS},
  248. {"Blue", 5774, "garag3_lawn", "bluestucco1", PCOLORS},
  249. {"Bright Blue", 8839, "vgsecarshow", "lightblue2_32", PCOLORS},
  250. {"Bright Green", 8839, "vgsecarshow", "lightgreen2_32", PCOLORS},
  251. {"Green", 19271, "MapMarkers", "green-2", PCOLORS},
  252. {"Lime Green", 18749, "MatTextures", "lime", PCOLORS},
  253. {"Yellow", 5168, "lashops6_las2", "yellow2_128", PCOLORS},
  254. {"Brighter Yellow", 18245, "cw_junkyardmachin", "Was_scrpyd_light_yellow", PCOLORS},
  255. {"Orange", 18250, "cw_junkbuildcs_t", "Was_scrpyd_baler_locker", PCOLORS},
  256. {"Orange 2", 18749, "MatTextures", "SAMPOrange", PCOLORS},
  257. {"Pink", 3267, "milbase", "lightred2_32", PCOLORS},
  258. {"Red", 18856, "MatTextures", "SAMPRed", PCOLORS},
  259. {"Darker Red", 19184, "MapMarkers", "red-2", PCOLORS},
  260. {"Deep Red", 5142, "lashops1b_las2", "snpdwhit2", PCOLORS},
  261. {"Pitch Black", 13816, "lahills_safe1", "black16", PCOLORS},
  262. {"Smoky Black", 11088, "crackfactdem_sfs", "ws_altz_wall7_top_burn", PCOLORS},
  263. {"Light Gray", 8839, "vgsecarshow", "lightblue_64", PCOLORS},
  264. {"Happy Gray", 16109, "des_se1", "parking2plain", PCOLORS},
  265. {"Eggshell", 8675, "wddngchpl02", "vgschapelwall01_64", PCOLORS},
  266. {"White", 4833, "airprtrunway_las", "white", PCOLORS},
  267. #define PFABRICS "Printed Fabrics"
  268. {"Varied Green Stripes", 17511, "stadium_lae2", "stadt_banner1", PFABRICS},
  269. {"Varied Purple and Green Stripes", 17511, "stadium_lae2", "stadt_banner2", PFABRICS},
  270. {"Varied White, Brown and Green Stripes", 17511, "stadium_lae2", "stadt_banner3", PFABRICS},
  271. {"Blue, White and Red Stripes", 9583, "bigshap_sfw", "boatfunnel1_128", PFABRICS},
  272. {"Blue and White Stripes", 12850, "cunte_block1", "ablusrip", PFABRICS},
  273. {"Blue, Green, White and Yellow Stripes", 5142, "lashops1b_las2", "sanpedshpito", PFABRICS},
  274. {"Red And White Stripes", 3039, "ct_salx", "ct_stall1", PFABRICS},
  275. {"Black, Gray, Yellow, Red", 3990, "lanroad", "lakerbcol", PFABRICS},
  276. {"Red and Green Tartan", 3060, "paracx", "parachute_e", PFABRICS},
  277. {"Multi-colored Squares", 3922, "bistro", "Tablecloth", PFABRICS},
  278. {"Spongy Red", 10412, "hotel1", "carpet_red_256", PFABRICS},
  279. {"Spongy Maroon", 14808, "lee_strip2", "WH_carpet1", PFABRICS},
  280. {"Spongy Blue", 5392, "eastshops1_lae", "blueshop2_LAe", PFABRICS},
  281. {"Yellow Tartan", 13003, "ce_racestart", "CJ_TARTAN", PFABRICS},
  282. {"Blue Camouflage", 10631, "queensammo_sfs", "ammu_camo1", PFABRICS},
  283. {"Blue Patterns", 10226, "sfeship1", "CJ_CUSHION2", PFABRICS},
  284. {"Blue Patterns 2", 19447, "all_walls", "vgsn_scrollsgn256", PFABRICS},
  285. {"Brown Flower Pattern", 15034, "genhotelsave", "cj_cushion1", PFABRICS},
  286. {"Brown Sheets", 16150, "ufo_bar", "Gen_Sacki", PFABRICS},
  287. {"Floral Print", 2680, "cj_chris", "CJ_Floral", PFABRICS},
  288. {"White and Blue Mattress", 12954, "sw_furniture", "CJ_MATRESS2", PFABRICS},
  289. {"Used Mattress", 1637, "od_beachstuff", "lounger_matress", PFABRICS},
  290. {"Plain Matress", 2575, "cj_hotel_poor", "CJ_mattress", PFABRICS},
  291. {"Rainbow Stripes", 3853, "gay_xref", "ws_gayflag1", PFABRICS},
  292. {"American Flag", 12853, "cunte_gas01", "starspangban1_256", PFABRICS},
  293. {"American Flag 2", 14782, "intring_gymint3", "star_spang", PFABRICS},
  294. {"Confederate Flag", 12853, "cunte_gas01", "cj_flag2", PFABRICS},
  295. {"Italian Flag", 5111, "ground2_las2", "sanpedpawn1a", PFABRICS},
  296. {"Black Carpet", 17946, "carter_mainmap", "mp_carter_carpet", PFABRICS},
  297. {"Gray Carpet", 14475, "ganghoos", "mp_burn_carpet", PFABRICS},
  298. {"Red Carpet", 14506, "imy_motel", "mp_motel_carpet1", PFABRICS},
  299. {"Red Carpet 2", 8463, "vgseland", "triadcarpet2", PFABRICS},
  300. {"Black Carpet 2", 14700, "vgshs2int2", "carpet-tile", PFABRICS},
  301. {"Dark Carpet", 14838, "lee_stripclub", "cl_floornew_256", PFABRICS},
  302. {"Worn Gray Carpet", 14701, "lahss2int2", "HS1_carpet1", PFABRICS},
  303. {"Blue Rug", 11704, "bdupsnew", "Bdup2_carpet", PFABRICS},
  304. {"Light Blue Fabric", 14707, "labig3int2", "HS2_3Wall10", PFABRICS},
  305. {"Light Purple Fabric", 14707, "labig3int2", "HS2_3Wall7", PFABRICS},
  306. {"Pink Fabric", 14707, "labig3int2", "HS2_3Wall9", PFABRICS},
  307. {"Old White Fabric", 14756, "smallsfhs", "wall6", PFABRICS},
  308. {"White Carpet", 14672, "genintintsex", "mp_cop_floor2", PFABRICS},
  309. {"Black Carpet 3", 14808, "lee_strip2", "strip_carpet2", PFABRICS},
  310. {"Yellow Carpet", 14590, "mafcastopfoor", "ab_carpet01", PFABRICS},
  311. {"Old Black Carpet", 18028, "cj_bar2", "GB_nastybar10", PFABRICS},
  312. {"Dark Carpet 2", 14431, "dr_gsnew", "mp_gs_carpet", PFABRICS},
  313. {"Light Carpet", 14581, "ab_mafiasuitea", "carp01S", PFABRICS},
  314. {"Zebra Stripes", 14838, "lee_stripclub", "zebra_skin", PFABRICS},
  315. {"Light Blue Carpet", 14708, "labig1int2", "GB_rug01", PFABRICS},
  316. {"Fancy Rug", 11704, "bdupsnew", "Bdup2_Rug", PFABRICS},
  317. {"Pink Curtain", 11707, "cuntcuts", "AH_pinkcurtain", PFABRICS},
  318. {"Brown Curtain", 14710, "vgshm3int2", "ah_curtains1", PFABRICS},
  319. {"Blue Curtain", 14701, "lahss2int2", "HS2_Curt1", PFABRICS},
  320. {"Light Blue Curtain", 14702, "masmall3int2", "HS2_Curt2", PFABRICS},
  321. {"Light Blue Curtain 2", 2559, "hospital", "CJ_H_CURTAIN1", PFABRICS},
  322. {"Orange Curtain", 14701, "lahss2int2", "HS2_Curt4", PFABRICS},
  323. {"Purple Curtain", 14701, "lahss2int2", "HS2_Curt5", PFABRICS},
  324. {"Red Curtain", 14808, "lee_strip2", "Strip_curtain", PFABRICS},
  325. #define WOODS "Wood"
  326. {"The Standard", 19400, "all_walls", "mp_diner_woodwall", WOODS},
  327. {"Classy Wood", 16150, "ufo_bar", "sa_wood08_128", WOODS},
  328. {"Brown Wood", 14581, "ab_mafiasuitea", "walp45S", WOODS},
  329. {"Red Wood", 13681, "lahillshilhs1e", "woodboards2", WOODS},
  330. {"Reclaimed Wood", 6094, "canalsg_law", "ws_sheetwood_clean", WOODS},
  331. {"Light Wood 1", 3881, "apsecurity_sfxrf", "CJ_WOOD1", WOODS},
  332. {"Light Wood 2", 13003, "ce_racestart", "sa_wood07_128", WOODS},
  333. {"Light Wood 3", 16377, "des_byofficeint", "CJ_LIGHTWOOD", WOODS},
  334. {"Dark Wood 1", 1515, "dsfs", "CJ_WOOD6", WOODS},
  335. {"Dark Wood 2", 11631, "mp_ranchcut", "mpCJ_WOOD_DARK", WOODS},
  336. {"Dark, Ugly Wood", 18250, "cw_junkbuildcs_t", "Was_scrpyd_shack_wall", WOODS},
  337. {"Dull, Dark Wood", 17925, "lae2fake_int", "ab_wood1", WOODS},
  338. {"Rotting Painted Wood 1", 17566, "contachou1_lae2", "comptwall26", WOODS},
  339. {"Rotting Painted Wood 2", 3193, "cxref_desert", "des_bywall1", WOODS},
  340. {"Rotting Painted Wood 3", 3355, "cxref_savhus", "des_bywall2", WOODS},
  341. {"Rotting Painted Wood 4", 14700, "vgshs2int2", "ah_CRAKPLNK", WOODS},
  342. {"Very Old Wood", 12976, "sw_diner1", "telepole128", WOODS},
  343. {"Tatty Wood", 5149, "lasground2_las2", "tatty_wood_1", WOODS},
  344. {"'Fence' Wood", 5122, "ground3_las2", "fence1", WOODS},
  345. {"Fancy Diner Flooring", 3919, "librest", "DinerFloor", WOODS},
  346. {"Sleek Wood Flooring", 14771, "int_brothelint3", "GB_nastybar12", WOODS},
  347. {"Cheap Wood Flooring", 14825, "genintint2_gym", "gym_floor5", WOODS},
  348. {"Cheap, Scratched Flooring", 14709, "lamidint2", "mp_apt1_floor", WOODS},
  349. {"Fine Parquet", 14581, "ab_mafiasuitea", "wood02S", WOODS},
  350. {"Wooden Mosaic", 4004, "civic07_lan", "cityhallroof", WOODS},
  351. {"Wood Square Panels", 13007, "sw_bankint", "woodfloor1", WOODS},
  352. {"Wood Planks", 16322, "a51_stores", "des_ghotwood1", WOODS},
  353. {"Aged Planks", 1219, "woodpanels", "planks01", WOODS},
  354. {"White Planks", 10152, "sfvictorian2", "pier69_ground1", WOODS},
  355. {"White Planks 2", 12960, "sw_church", "ws_vic_wood1", WOODS},
  356. {"White Planks 3", 12911, "sw_farm1", "sw_barnwood1", WOODS},
  357. {"Old White Planks", 12911, "sw_farm1", "sw_barnwood2", WOODS},
  358. {"Old White Planks 2", 4849, "ground3_las", "pierboards_la", WOODS},
  359. {"Gray Planks", 3310, "sw_poorhouse", "GB_nastybar08", WOODS},
  360. {"Old Gray Planks", 4820, "ground4_las", "adet", WOODS},
  361. {"Boardwalk", 13809, "lahillsground4", "boardwalk_la" , WOODS},
  362. {"Wood Boards", 5134, "wasteland_las2", "floorboard256128" , WOODS},
  363. {"Light Wood Pattern", 3306, "cunte_house1", "des_ntwnwall1", WOODS},
  364. {"Dark Brown Planks", 17298, "weefarmcuntw", "sjmbigold2", WOODS},
  365. {"Creepy Planks", 12937, "sw_oldshack", "sw_cabinwall01", WOODS},
  366. {"Blue Planks", 5766, "capitol_lawn", "lasjmscruffwall3", WOODS},
  367. {"Bright Blue Planks", 5135, "groundb_las2", "sanpedock8", WOODS},
  368. {"Bright Yellow Planks", 5113, "lasground_las2", "sanpedpawn1", WOODS},
  369. {"White and Red Wood", 4830, "airport2", "sw_shedwall02", WOODS},
  370. {"White and Blue Wood", 12925, "sw_sheds", "sw_shedwall03", WOODS},
  371. {"Dull Wood Logs", 17067, "cw2_logcabins", "cw2_logwall", WOODS},
  372. {"Light Wood Logs", 11490, "des_ranch", "des_logwall", WOODS},
  373. {"Flat Logs", 13711, "mullho03_lahills", "des_flatlogs", WOODS},
  374. {"Wood Slats", 11501, "des_farmstuff", "des_woodslats1", WOODS},
  375. {"Walnut 1", 14581, "ab_mafiasuitea", "ab_walnut", WOODS},
  376. {"Walnut 2", 14581, "ab_mafiasuitea", "ab_walnutLite", WOODS},
  377. {"Brown Wood Paneling", 9583, "bigshap_sfw", "bridge_walls2_sfw", WOODS},
  378. {"Tiki Reed", 8536, "tikisign", "tikireed01_128", WOODS},
  379. {"Bamboo", 3595, "dingbat01_la", "bambowal1_LA", WOODS},
  380. {"Old Barn", 16146, "des_ufoinn", "shackdoor01", WOODS},
  381. {"Bloody wood", 12937, "sw_oldshack", "sw_woodflloorsplat", WOODS},
  382. #define TILES "Tiles"
  383. {"Shiny White", 10023, "bigwhitesfe", "recessed_light_SF", TILES},
  384. {"White and Blue", 12841, "cos_pizzaplace", "swimpoolside1_128", TILES},
  385. {"Yellow and Blue", 5408, "tempstuff_lae", "examball1_LAe", TILES},
  386. {"Blue Pool Tiles", 13675, "lahillsgrounds", "bevpool", TILES},
  387. {"Better Times", 4004, "civic07_lan", "Bow_sub_wallshine", TILES},
  388. {"Small White Tiles", 12853, "cunte_gas01", "sw_floor1", TILES},
  389. {"Thin Wall Tiles", 17049, "cuntwf", "sw_walltile", TILES},
  390. {"Thick Wall Tiles", 4558, "lanlacmab_lan2", "sl_gallerywall1", TILES},
  391. {"Dirty Wall Tiles", 14700, "vgshs2int2", "ah_whitiles", TILES},
  392. {"The Classic", 3961, "lee_kitch", "dinerfloor01_128", TILES},
  393. {"The Classic 2", 14771, "int_brothelint3", "bwtilebroth", TILES},
  394. {"The Classic 3", 18082, "cj_barb", "CJ_TILES_5", TILES},
  395. {"Aged Classic", 13724, "docg01_lahills", "marbletile8b", TILES},
  396. {"Classy Blue", 10871, "blacksky_sfse", "ws_slatetiles", TILES},
  397. {"Dark Blue", 6351, "rodeo02_law2", "helmutwall1_LAw", TILES},
  398. {"Classic White", 3904, "libertyfar", "subplat", TILES},
  399. {"Aged Fancy Tiles", 5772, "stationtunnel", "mp_apt1_bathfloor1", TILES},
  400. {"Fancy Black Tiles", 14388, "dr_gsnew", "mp_gs_kitchfloor", TILES},
  401. {"Modern White Tiles", 10932, "station_sfse", "ws_stationfloor", TILES},
  402. {"Modern Yellow Tiles", 10973, "mall_sfse", "mallfloor3", TILES},
  403. {"Blue And Yellow Tiles", 1594, "chairsntable", "mallfloor6", TILES},
  404. {"Tile Stone", 1677, "wshxrefhse2", "tilestone256", TILES},
  405. {"Dirty Tiles", 11389, "hubint1_sfse", "ab_ceiling1", TILES},
  406. {"Stone Tiles", 16639, "a51_labs", "dam_terazzo" , TILES},
  407. {"Old Black Tiles", 5815, "lawngrnd", "man_cellarfloor128", TILES},
  408. {"Dark Tiles", 14700, "vgshs2int2", "AH_rykitiles", TILES},
  409. {"Terra Cotta Tile", 18020, "genintintfastb2", "ws_terratiles", TILES},
  410. {"Gray Tiles", 14706, "labig2int2", "ab_tile1", TILES},
  411. {"Brown/Olive Green Bricks", 14756, "smallsfhs", "mp_carter_tilewall", TILES},
  412. {"Brown Tiles", 14709, "lamidint2", "mp_apt1_kitchfloor", TILES},
  413. {"Brown Tiles 2", 18029, "genintintsmallrest", "GB_restaursmll06", TILES},
  414. {"Light Green Tiles", 18029, "genintintsmallrest", "GB_restaursmll07", TILES},
  415. {"Dull Red Tiles", 14388, "dr_gsnew", "AH_flroortile12", TILES},
  416. {"Red Stones", 13675, "lahillsgrounds", "sjmlahus29", TILES},
  417. {"Blue Mosaic", 17562, "coast_apts", "otb_floor1", TILES},
  418. {"Green Mosaic", 3595, "dingbat01_la", "mosaic1_LAwn", TILES},
  419. {"Hexagon Tile Pattern", 14506, "imy_motel", "ab_tilehex2", TILES},
  420. {"Green Formica", 11704, "cj_kitchen", "FORMICA2", TILES},
  421. #define MARB "Building"
  422. {"Black Marble", 3922, "bistro", "Marble", MARB},
  423. {"Black Marble 2", 10969, "scum_sfse", "Was_scrpyd_floor_hangar", MARB},
  424. {"Gray Marble", 4830, "airport2", "LASLACMA96", MARB},
  425. {"White Marble", 3922, "bistro", "Marble2", MARB},
  426. {"Yellow Marble", 3922, "bistro", "rest_wall4", MARB},
  427. {"White Marble Block", 16023, "des_trainstuff", "ws_stoneblock", MARB},
  428. {"Stone Wall 1", 18202, "w_towncs_t", "hatwall256hi", MARB},
  429. {"Stone Wall 2", 13724, "docg01_lahills", "des_ranchwall1", MARB},
  430. {"Stone Wall 3", 8839, "vgsecarshow", "sw_wallbrick_06", MARB},
  431. {"Stone Wall 4", 8565, "vgsebuild01", "ws_stonewall", MARB},
  432. {"Stone Wall 5", 6056, "venice_law", "stonewall_la", MARB},
  433. {"Stone Wall 6", 6057, "venicegb02_law", "stonewall3_la", MARB},
  434. {"Fancy Stones", 5113, "lasground_las2", "adeta", MARB},
  435. {"Dark Stones", 18029, "genintintsmallrest", "GB_restaursmll05", MARB},
  436. {"Yellow Stones", 16136, "des_telescopestuff", "stoneclad1", MARB},
  437. {"White Brick Wall", 8399, "vgs_shops", "vgsclubwall05_128", MARB},
  438. {"Gray Stone Wall", 8645, "vegashsetx", "badhousewall01_128", MARB},
  439. {"Concrete Pattern", 4849, "ground3_las", "ws_bigstones", MARB},
  440. {"Gray Brick Wall", 13823, "lahillsground4cye", "GB_nastybar03", MARB},
  441. {"Fancy White Bricks", 13675, "lahillsgrounds", "bevr03b_law", MARB},
  442. {"Red Brick Wall", 8531, "officeground", "ws_redbrickold", MARB},
  443. {"Old Red Brick Wall", 5180, "lashops93_las2", "ws_oldredbrick", MARB},
  444. {"Old Red Brick Wall 2", 10864, "bridgeland_sfse", "ws_altz_wall1", MARB},
  445. {"Brick Wall 1", 8839, "vgsecarshow", "sw_brewbrick01", MARB},
  446. {"Brick Wall 2", 8390, "vegasemulticar", "ws_mixedbrick", MARB},
  447. {"Brick Wall 3", 13015, "sw_genstore", "sw_wallbrick_03", MARB},
  448. {"Brick Wall 4", 12959, "sw_library", "sw_brick05", MARB},
  449. {"Brick Wall 5", 17049, "cuntwf", "sw_brick04", MARB},
  450. {"Brick Wall 6", 12853, "cunte_gas01", "sw_brick03", MARB},
  451. {"Brick Wall 7", 4552, "ammu_lan2", "sl_lavicdtwall1", MARB},
  452. {"Brick Wall 8", 10769, "docks2_sfse", "ws_sandstone1", MARB},
  453. {"Brick Wall 9", 9683, "goldengate_sfw", "stonesandkb2_128", MARB},
  454. {"Brick Wall 10", 5418, "idlewood3_lae", "ws_sandstone2", MARB},
  455. {"Brick Wall 11", 12988, "sw_fact02", "ws_sandstone2b", MARB},
  456. {"Brick Wall 12", 18018, "genintintbarb", "GB_midbar01", MARB},
  457. {"Black Concrete", 3975, "lanbloke", "p_floor3", MARB},
  458. {"Black Concrete 2", 14771, "int_brothelint3", "GB_midbar15", MARB},
  459. {"Dark Stone Wall", 17545, "burnsground", "newall1-1128", MARB},
  460. {"White Concrete", 11089, "cf_metals_sfse", "ws_altz_wall8_top", MARB},
  461. {"Gray Concrete", 6052, "law_doontoon", "carpark_256128", MARB},
  462. {"Gray Concrete 2", 14783, "intgarage2aint3", "Bow_Abattoir_Conc2", MARB},
  463. {"Concrete Block", 1214, "metal", "BLOCK2low", MARB},
  464. {"Cracked Yellow Concrete", 14700, "vgshs2int2", "ah_yelbadwall", MARB},
  465. {"Metal Pattern", 12984, "sw_block11", "sw_stairs1", MARB},
  466. {"Rusted Concrete", 10375, "subshops_sfs", "ws_rooftarmac1", MARB},
  467. #define METALS "Metals"
  468. {"Silver Metal", 1560, "7_11_door", "cj_sheetmetal2", METALS},
  469. {"Red Metal", 2130, "cj_kitchen", "CJ_RED", METALS},
  470. {"Scratched Metal", 16640, "a51", "scratchedmetal", METALS},
  471. {"Blue Paneling", 16067, "des_stownmots1", "corugwall1", METALS},
  472. {"Red Paneling", 16067, "des_stownmots1", "corugwallnew6_128", METALS},
  473. {"Yellow Paneling", 18265, "w_town3cs_t", "corugwall_sandy", METALS},
  474. {"Old Purple Metal", 5126, "imrancomp_las2", "ws_oldpaintedblue", METALS},
  475. {"Old Gray Metal", 12858, "wiresnshit", "ws_oldpainted", METALS},
  476. {"Old White Metal", 10820, "roadbridge_sfse", "ws_oldpainted2", METALS},
  477. {"Rusty White Metal", 10820, "roadbridge_sfse", "ws_oldpainted2rusty", METALS},
  478. {"Dull Green Metal", 1257, "bustopm", "CJ_GREENMETAL", METALS},
  479. {"Green Metal", 10770, "carrier_sfse", "ws_floor2", METALS},
  480. {"Gray Metal", 10770, "carrier_sfse", "ws_shipmetal1", METALS},
  481. {"Black Metal", 10770, "carrier_sfse", "ws_shipmetal3", METALS},
  482. {"White Metal", 10770, "carrier_sfse", "ws_shipmetal4", METALS},
  483. {"Light Blue Metal", 11145, "carrierint_sfs", "ws_shipmetal5", METALS},
  484. {"White Metal Tiles", 3262, "privatesign", "ws_metalpanel1", METALS},
  485. {"Black Metal Tiles", 9362, "sfn_byofficeint", "CJ_Black_metal", METALS},
  486. {"Dark Metal", 970, "fences", "blackmetal", METALS},
  487. {"Light Metal Banding", 12960, "sw_church", "banding3_64HV", METALS},
  488. {"Brown Metal Banding", 5408, "tempstuff_lae", "sl_metalbndrust1", METALS},
  489. {"Scratched Metal 2", 3961, "lee_kitch", "metal5", METALS},
  490. {"Scratched Metal 3", 3961, "lee_kitch", "metal6", METALS},
  491. {"Clean Metal Plate", 9361, "sfn_office", "des_facmetal", METALS},
  492. {"Silver Metal 2", 1214, "metal", "CJ_FRAME_Glass", METALS},
  493. {"Sleek Metal", 14581, "ab_mafiasuitea", "barbersmir1", METALS},
  494. {"Metal Door", 13022, "sw_block11a", "Bow_abbmetaldoor", METALS},
  495. {"Metal Door 2", 12980, "sw_block10", "Was_scrpyd_door_dbl_grey", METALS},
  496. {"Bolted White Metal Panel", 10820, "roadbridge_sfse", "banding9_64HV", METALS},
  497. {"Bolted Yellow Metal Panel", 5126, "imrancomp_las2", "banding5_64HV", METALS},
  498. {"Bolted Brown Metal Panel", 3080, "adjumpx", "rustyboltpanel", METALS},
  499. {"Bolted Black Metal", 16322, "a51_stores", "girder2_grey_64HV", METALS},
  500. {"Bolted Red Metal", 5126, "imrancomp_las2", "girder2_red_64HV", METALS},
  501. {"New Bolted White Metal Panel", 16322, "a51_stores", "dish_panel_a", METALS},
  502. {"Metal Plate", 915, "airconext", "CJ_plating", METALS},
  503. {"Gray Metal 2", 4833, "airprtrunway_las", "cj_sheetmetal", METALS},
  504. {"Old Red Metal", 5123, "chemgrnd_las2", "redmetal", METALS},
  505. {"Old Dark Red Metal", 946, "bskball_standext", "drkbrownmetal", METALS},
  506. {"Old Brown Metal", 11145, "carrierint_sfs", "Metalox64", METALS},
  507. {"Brown Rust", 12937, "sw_oldshack", "rustc256128", METALS},
  508. {"Orange Rust", 11395, "corvinsign_sfse", "rustb256128", METALS},
  509. {"Red Rust 1", 18247, "cw_junkyarddigcs_t", "Was_scrpyd_rustmetal", METALS},
  510. {"Red Rust 2", 10844, "genwhse_sfse", "Gen_Gantry_Rust", METALS},
  511. {"Rusty Sheet", 10140, "frieghter2sfe", "sw_olddrum1", METALS},
  512. {"Old Light Blue Metal", 4821, "union_las", "bluemetal03", METALS},
  513. {"Old Dark Blue Metal", 5126, "imrancomp_las2", "bluemetal02", METALS},
  514. {"Old Gray Metal 2", 9029, "vgetrainfnce", "Metal1_128", METALS},
  515. {"Rusty Gray Metal", 17001, "factorycuntw", "Gen_Metal", METALS},
  516. {"Corrugated Sheet", 3246, "cxref_oldwest", "corr_roof1", METALS},
  517. {"Corrugated Sheet 2", 3925, "weemap", "corrRoof_64HV", METALS},
  518. {"Old Corrugated Sheet", 5775, "sunset01_lawn", "ws_corr_metal2", METALS},
  519. {"Rusty Corrugated Sheet", 9680, "tramstatsfw", "ws_corr_metal1", METALS},
  520. {"Tin Roof Pattern", 16071, "des_quarrybelts", "des_oldtinroof", METALS},
  521. {"Strange Metal Pattern", 16322, "a51_stores", "a51_metal1", METALS},
  522. {"Rusty Metal Pattern", 16322, "a51_stores", "Gen_Freight", METALS},
  523. {"Rusty Metal Pattern 2", 10281, "michgar", "Metal2_256128", METALS},
  524. {"White and Blue Metal", 3961, "lee_kitch", "metal2", METALS},
  525. {"Metal Walkway Pattern", 16640, "a51", "sl_metalwalk", METALS},
  526. {"Perforated Metal Plate", 8954, "vgsespras", "sf_spray_floor2", METALS},
  527. {"Checker Plate", 9583, "bigshap_sfw", "shipfloor_sfw", METALS},
  528. {"Checker Plate 2", 5138, "ground_las2", "metpat64" , METALS},
  529. {"Checker Plate 3", 964, "cj_crate_will", "CJ_FLIGHT_CASE", METALS},
  530. #define POSTERS "Paintings"
  531. {"The Discharger", 13761, "lahills_whisky", "discharger", POSTERS},
  532. {"Slam It In", 4833, "airprtrunway_las", "bobo_2", POSTERS},
  533. {"MC Club", 5733, "melrose08_lawn", "base5_1", POSTERS},
  534. {"Mad Dog", 6357, "sunstrans_law2", "dogbill01", POSTERS},
  535. {"Love Fist Poster", 6354, "sunset03_law2", "billLA01", POSTERS},
  536. {"Dandell Poster", 6354, "sunset03_law2", "billLA02", POSTERS},
  537. {"Map of San Andreas", 16644, "a51_detailstuff", "a51_map", POSTERS},
  538. {"Candy Suxxx", 6357, "sunstrans_law2", "SunBillB05", POSTERS},
  539. {"Candy Suxxx 2", 2254, "picture_frame_clip", "CJ_PAINTING9", POSTERS},
  540. {"Inquisitive Man", 1583, "targets", "target1", POSTERS},
  541. {"Inquisitive Woman", 1583, "targets", "target2", POSTERS},
  542. {"Inquisitive Woman 2", 1583, "targets", "target3", POSTERS},
  543. {"Summer Sky", 3925, "weemap", "skyclouds", POSTERS},
  544. {"Jesus Saves", 17700, "gangblok1_lae2", "mural01_LA", POSTERS},
  545. {"Gant Bridge", 10434, "hashblock2b_sfs", "ws_mural2", POSTERS},
  546. {"San Fierro Skyline", 10439, "hashblock3_sfs", "ws_mural1", POSTERS},
  547. {"Black And White Mural", 5142, "lashops1b_las2", "mural03_LA", POSTERS},
  548. {"Colored Mural", 5134, "wasteland_las2", "mural05_LA", POSTERS},
  549. {"Gant Bridge 2", 2254, "picture_frame_clip", "CJ_PAINTING24", POSTERS},
  550. {"SF Pointy Building", 11631, "mp_ranchcut", "CJ_PAINTING20", POSTERS},
  551. {"Santa Maria Lifeguard", 2254, "picture_frame_clip", "CJ_PAINTING12", POSTERS},
  552. {"Seaside Painting", 11631, "mp_ranchcut", "CJ_PAINTING6", POSTERS},
  553. {"Bone County", 2254, "picture_frame_clip", "CJ_PAINTING26", POSTERS},
  554. {"Aircraft Photos", 16407, "des_airfieldhus", "plane_photos1", POSTERS},
  555. {"Yellow Car", 2254, "picture_frame_clip", "CJ_PAINTING2", POSTERS},
  556. {"Los Santos", 2254, "picture_frame_clip", "CJ_PAINTING3", POSTERS},
  557. {"Pier Lights", 2254, "picture_frame_clip", "CJ_PAINTING4", POSTERS},
  558. {"San Fierro", 2267, "picture_frame", "CJ_PAINTING14", POSTERS},
  559. {"Sunset Bridge", 2267, "picture_frame", "CJ_PAINTING30", POSTERS},
  560. {"San Fierro Bridge", 2267, "picture_frame", "CJ_PAINTING28", POSTERS},
  561. {"Landscape 1", 2267, "picture_frame", "CJ_PAINTING11", POSTERS},
  562. {"Landscape 2", 2267, "picture_frame", "CJ_PAINTING23", POSTERS},
  563. {"Landscape 3", 2267, "picture_frame", "CJ_PAINTING35", POSTERS},
  564. {"Landscape 4", 2267, "picture_frame", "CJ_PAINTING37", POSTERS},
  565. {"Palms", 2254, "picture_frame_clip", "CJ_PAINTING8", POSTERS},
  566. {"Bowling", 2254, "picture_frame_clip", "CJ_PAINTING27", POSTERS},
  567. {"Sailships", 2267, "picture_frame", "CJ_PAINTING34", POSTERS},
  568. {"Ship", 2267, "picture_frame", "CJ_PAINTING19", POSTERS},
  569. {"Ship 2", 2267, "picture_frame", "CJ_PAINTING36", POSTERS},
  570. {"Beach Sunset", 14803, "BDupsNew", "Bdup2_poster", POSTERS},
  571. {"Tropical 1", 11707, "cuntcuts", "GB_canvas17", POSTERS},
  572. {"Tropical 2", 11707, "cuntcuts", "GB_canvas18", POSTERS},
  573. {"Water Droplet", 14708, "labig1int2", "GB_restaursmll53", POSTERS},
  574. {"College Friends", 14708, "labig1int2", "GB_photo01", POSTERS},
  575. {"Casually Dressed Woman", 14708, "labig1int2", "GB_photo02", POSTERS},
  576. {"Cat 1", 2267, "picture_frame", "CJ_PAINTING1", POSTERS},
  577. {"Cat 2", 2267, "picture_frame", "CJ_PAINTING7", POSTERS},
  578. {"Flowers 1", 2267, "picture_frame", "CJ_PAINTING18", POSTERS},
  579. {"Flowers 2", 2267, "picture_frame", "CJ_PAINTING29", POSTERS},
  580. {"Leafs", 2267, "picture_frame", "CJ_PAINTING21", POSTERS},
  581. {"Strange Mosaic Art", 2267, "picture_frame", "CJ_PAINTING16", POSTERS},
  582. {"Modern Art", 2254, "picture_frame_clip", "CJ_PAINTING15", POSTERS},
  583. {"Modern Art 2", 14708, "labig1int2", "HS_art", POSTERS},
  584. {"Unknown Text", 11631, "mp_ranchcut", "CJ_PAINTING22", POSTERS},
  585. #define WALLPAPERS "Wallpapers"
  586. {"Purple Wallpaper", 17925, "lae2fake_int", "burglry_wall4", WALLPAPERS},
  587. {"Turquoise Wallpaper", 5706, "ci_studio5", "tw@t_wall1", WALLPAPERS},
  588. {"White Wall With Blue Border", 8391, "ballys01", "ballywall01_64", WALLPAPERS},
  589. {"Dirty White Wall", 5135, "groundb_las2", "snpedwar2", WALLPAPERS},
  590. {"Yellow and Orange Wall", 8639, "chinatownmall", "ctmall15_128", WALLPAPERS},
  591. {"Cheap Blue Paint", 5787, "melrose02_lawn", "LAbluewall", WALLPAPERS},
  592. {"Cheap Green Paint", 5787, "melrose02_lawn", "LAgreenwall", WALLPAPERS},
  593. {"Cheap Red Paint", 5787, "melrose02_lawn", "LAredwall", WALLPAPERS},
  594. {"White Concrete Wall", 8675, "wddngchpl02", "vgschapelwall01_64", WALLPAPERS},
  595. {"Pink Concrete wall", 8401, "vgshpground", "vegaspawnwall_128", WALLPAPERS},
  596. {"Brown Concrete wall", 16150, "ufo_bar", "brwall_128", WALLPAPERS},
  597. {"Grey Concrete wall", 6286, "santamonhus1", "studwalltop_law", WALLPAPERS},
  598. {"Light Gray Concrete Wall", 4981, "wiresetc2_las", "lasunion7", WALLPAPERS},
  599. {"Peeling Paint 1", 11389, "hubint1_sfse", "ws_peeling_ceiling1_BIG", WALLPAPERS},
  600. {"Peeling Paint 2", 17566, "contachou1_lae2", "comptwall27", WALLPAPERS},
  601. {"Peeling Paint 3", 17566, "contachou1_lae2", "ws_peeling2", WALLPAPERS},
  602. {"Peeling Paint 4", 11092, "burgalrystore_sfse", "ws_peeling_ceiling2", WALLPAPERS},
  603. {"Painted Concrete 1", 14783, "intgarage2aint3", "comptwall3", WALLPAPERS},
  604. {"Painted Concrete 2", 14700, "vgshs2int2", "ah_BADCEIL", WALLPAPERS},
  605. {"Painted Concrete 3", 14700, "vgshs2int2", "ah_RFPLSTR", WALLPAPERS},
  606. {"Painted Concrete 4", 14700, "vgshs2int2", "ah_grnplstr", WALLPAPERS},
  607. {"Painted Tiles", 14701, "lahss2int2", "HS1_Kwall2", WALLPAPERS},
  608. {"Low Wood Paneling", 14708, "labig1int2", "GB_restaursmll32", WALLPAPERS},
  609. {"Low Green Tile Paneling", 14709, "lamidint2", "mp_apt1_bathtiles", WALLPAPERS},
  610. {"Wood Paneling 1", 14709, "lamidint2", "mp_apt1_roomwall", WALLPAPERS},
  611. {"Wood Paneling 2", 14709, "lamidint2", "mp_apt1_woodpanel", WALLPAPERS},
  612. {"Wood Paneling 3", 14777, "int_casinoint3", "GB_midbar09", WALLPAPERS},
  613. {"Wood Paneling 4", 18029, "genintintsmallrest", "GB_restaursmll09", WALLPAPERS},
  614. {"Crosses w/ Wood Border", 18018, "genintintbarb", "GB_midbar07", WALLPAPERS},
  615. {"Fancy Paneling", 14431, "dr_gsnew", "mp_gs_wall", WALLPAPERS},
  616. {"Painted Concrete 5", 14388, "dr_gsnew", "mp_gs_wall1", WALLPAPERS},
  617. {"Dark Bordered Wallpaper", 14388, "dr_gsnew", "mp_gs_libwall", WALLPAPERS},
  618. {"Orange Wallaper", 14710, "vgshm3int2", "HSV_2carpet1", WALLPAPERS},
  619. {"Red Wallpaper", 14703, "vghsb3int2", "HS2_3Carpet1", WALLPAPERS},
  620. {"Bright Artex Pattern", 11704, "bdupsnew", "Bdup2_Artex", WALLPAPERS},
  621. {"Fancy Red Dragon Design", 3533, "triadprops_lvs", "walpaper_dragn", WALLPAPERS},
  622. {"Slight Purple Artex Pattern", 14710, "vgshm3int2", "HS2_Artex2", WALLPAPERS},
  623. {"Green Artex Pattern", 14701, "lahss2int2", "HS2_Artex6", WALLPAPERS},
  624. {"White Artex Pattern", 14701, "lahss2int2", "HS2_Artex3", WALLPAPERS},
  625. {"Green Stripes", 1675, "wshxrefhse", "washdecowall3256", WALLPAPERS},
  626. {"Wallpaper 1", 11704, "bdupsnew", "Bdup2_wallpaper", WALLPAPERS},
  627. {"Wallpaper 2", 11704, "bdupsnew", "Bdup2_wallpaperB", WALLPAPERS},
  628. {"Wallpaper 3", 11707, "cuntcuts", "GB_tile01", WALLPAPERS},
  629. {"Wallpaper 4", 14710, "vgshm3int2", "HSV_3wall3", WALLPAPERS},
  630. {"Wallpaper 5", 14701, "lahss2int2", "HS1_wall2", WALLPAPERS},
  631. {"Wallpaper 6", 14701, "lahss2int2", "HS1_wall3", WALLPAPERS},
  632. {"Wallpaper 7", 14701, "lahss2int2", "HS1_wall4", WALLPAPERS},
  633. {"Wallpaper 8", 14712, "lahss2bint2", "HS3_wall2", WALLPAPERS},
  634. {"Wallpaper 9", 14712, "lahss2bint2", "HS1_2Wall2", WALLPAPERS},
  635. {"Wallpaper 10", 14702, "masmall3int2", "HS3_wall3", WALLPAPERS},
  636. {"Wallpaper 11", 14702, "masmall3int2", "HS3_wall5", WALLPAPERS},
  637. {"Wallpaper 12", 14702, "masmall3int2", "HS3_wall6", WALLPAPERS},
  638. {"Wallpaper 13", 14703, "vghsb3int2", "HS2_2Wall2", WALLPAPERS},
  639. {"Wallpaper 14", 14703, "vghsb3int2", "HS2_3Wall1", WALLPAPERS},
  640. {"Wallpaper 15", 14703, "vghsb3int2", "HS4_Wall7", WALLPAPERS},
  641. {"Wallpaper 16", 14709, "lamidint2", "mp_apt1_kitchwallpaper", WALLPAPERS},
  642. {"Wallpaper 17", 14707, "labig3int2", "WH_walls", WALLPAPERS},
  643. {"Wallpaper 18", 14711, "vgshm2int2", "HS2_4wall1", WALLPAPERS},
  644. {"Wallpaper 19", 15034, "genhotelsave", "HS2_2Wall4", WALLPAPERS},
  645. {"Wallpaper 20", 14590, "mafcastopfoor", "donut_wall1", WALLPAPERS},
  646. {"Wallpaper 21", 5727, "sunrise04_lawn", "fredwall2_LAwN", WALLPAPERS},
  647. {"Wallpaper 22", 14702, "masmall3int2", "HS3_wall4", WALLPAPERS},
  648. #define MISC "Misc"
  649. {"Graffiti", 18200, "w_town2cs_t", "Bow_door_graffiti_128", MISC},
  650. {"Chinese paint", 5716, "sunrise02_lawn", "manndoor_law", MISC},
  651. {"Phone Sign", 1229, "signs", "phonesign_128", MISC},
  652. {"Parking Sign", 1229, "signs", "NoParking2_128", MISC},
  653. {"Pro Laps", 6351, "rodeo02_law2", "prolsign01_LA", MISC},
  654. {"SPAVCEY", 5771, "melrose11_lawn", "melrsign08_LA", MISC},
  655. {"US Flag", 9593, "hosbibalsfw", "dt_cops_US_flag", MISC},
  656. {"Presidio", 9259, "presidio01_sfn", "stainwin_law", MISC},
  657. {"Fading Yellow", 9494, "chinatownsfe", "chtown4_sf", MISC},
  658. {"Fading Blue", 9494, "chinatownsfe", "chtown6_sf", MISC},
  659. {"Fading Green", 9494, "chinatownsfe", "chtown8_sf", MISC},
  660. {"Hay", 12911, "sw_farm1", "forestfloorbranch256", MISC},
  661. {"Hay and Wood", 12911, "sw_farm1", "sw_barnfloor1", MISC},
  662. {"Garage Door", 5138, "ground_las2", "alleydoor8", MISC},
  663. {"Flamingos", 8488, "flamingo1", "flmngo01_256", MISC},
  664. {"Wood Framed Windows", 14771, "int_brothelint3", "GB_nastybar13", MISC},
  665. {"White Framed Windows", 14710, "vgshm3int2", "kit_windo_12", MISC},
  666. {"Creepy Old Window", 14700, "vgshs2int2", "ah_FLKWIN", MISC},
  667. {"Fancy Window", 14710, "vgshm3int2", "windo_blinds", MISC},
  668. {"Blue Material", 14770, "genintgenintint3", "GB_midbar04", MISC},
  669. {"Blue Material 2", 14771, "int_brothelint3", "GB_midbar10", MISC},
  670. {"Black Material", 15046, "svcunthoose", "csGarageTrolley01psd", MISC},
  671. {"Bordered Black Material", 15046, "svcunthoose", "csheistbox01", MISC},
  672. {"Red Cushions", 14838, "lee_stripclub", "Strip_bar_wall1", MISC},
  673. {"Funky 1", 14808, "lee_strip2", "strip_neon_Curtain", MISC},
  674. {"Funky 2", 14808, "lee_strip2", "strip_neon_flat", MISC},
  675. {"Glass Wall 1", 16639, "a51_labs", "ws_trainstationwin1", MISC},
  676. {"Glass Wall 2", 10973, "mall_sfse", "ws_trainstationwin2", MISC},
  677. {"Glass 1", 1649, "wglass", "carshowwin2", MISC},
  678. {"Glass 2", 5722, "sunrise01_lawn", "plainglass", MISC},
  679. {"Water", 3947, "rczero_track", "waterclear256", MISC},
  680. {"Snow", 3914, "snow", "mp_snow", MISC},
  681. {"Blank", 1337, "none", "none", MISC},
  682. {"Classic Window", 15048, "labigsave", "AH_windows", MISC},
  683. {"Wood Framed Simple Window", 14661, "int_tatoo", "mp_shop_window", MISC},
  684. {"Metal Framed Window", 14495, "sweetshall", "mcstraps_window", MISC},
  685. {"Metal Framed Black Windows", 14736, "whorerooms", "AH_cheapwindow", MISC},
  686. {"Door 'Males Only'", 18008, "intclothesa", "CJ_VICT_DOOR", MISC},
  687. {"Door 'Females Only'", 18008, "intclothesa", "CJ_VICT_DOOR2", MISC},
  688. {"Gold", 14707, "labig3int2", "gold128", MISC},
  689. {"Gold 2", 14607, "triad_main", "buddha_gold", MISC},
  690. {"Booger Green ", 19527, "Cauldron1", "AlienLiquid1", MISC},
  691. {"Fading Dark Blue", 14639, "traidman", "ab_aquarium", MISC},
  692. {"Glass 3", 14755, "sfhss2", "CJ_FRAME_Glass", MISC},
  693. {"Glass 4", 1978, "kbroul1", "shelf_glas", MISC},
  694. {"Dirty Glass", 914, "industrialext", "CJ_GEN_GLASS2", MISC},
  695. {"Dirty Glass 2", 10713, "gayclub_sfs", "CJ_GEN_GLASS2", MISC},
  696. {"Black Rubber", 18018, "genintintbarb", "CJ_BLACK_RUB2", MISC},
  697. {"White Formica", 1770, "cj_tables", "FORMICA1", MISC},
  698. {"Water 2", 18742, "MatTextures", "waterclear256", MISC},
  699. {"Water 3", 19841, "vegaswaterfall", "newaterfal1_256", MISC},
  700. {"Unnamed Mesh", 3280, "country_breakable", "ws_castironwalk", MISC},
  701. {"Camouflage Net", 2068, "cj_ammo_net", "CJ_cammonet", MISC},
  702. {"Fading Yellow Glass" , 19197,"EnExMarkers", "enex", MISC},
  703. {"Basket Pattern 1", 8534, "tikimotel", "sa_wood01_128", MISC},
  704. {"Basket Pattern 2", 8534, "tikimotel", "sa_wood03_128", MISC},
  705. {"Basket Pattern 3", 8534, "tikimotel", "sa_wood04_128", MISC},
  706. {"Transperancy", 18888, "ForceFields", "white", MISC},
  707. {"Unnamed Ceiling 1", 11312, "carshow_sfse", "ws_officy_ceiling", MISC},
  708. {"Unnamed Ceiling 2", 18007, "int_cutbar3", "ceilingtile1_128", MISC},
  709. {"Unnamed Ceiling 3", 18026, "scummy", "ceiling_256", MISC},
  710. {"Unnamed Ceiling 4", 18038, "vegas_munation", "gun_ceiling1", MISC},
  711. {"Unnamed Ceiling 5", 18038, "vegas_munation", "gun_ceiling2", MISC},
  712. {"Unnamed Ceiling 6", 18038, "vegas_munation", "gun_ceiling3", MISC},
  713. {"Unnamed Ceiling 7", 14534, "ab_wooziea", "dt_office_roof", MISC},
  714. {"Unnamed Ceiling 8", 14526, "sweetsmain", "ah_whitpanelceil", MISC},
  715. {"Unnamed Ceiling 9", 15042, "svsfsm", "AH_walltile2", MISC},
  716. {"Unnamed Ceiling 10", 18045, "gen_munation", "mp_diner_ceilingdirt", MISC},
  717. {"Dark Wood Border", 14431, "dr_gsnew", "mp_gs_border", MISC},
  718. {"Light Wood Border", 14431, "dr_gsnew", "mp_gs_border1", MISC},
  719. {"Old Wood Panel", 14700, "vgshs2int2", "AH_oldwdpan", MISC},
  720. {"Wood Panel", 14431, "dr_gsnew", "mp_gs_woodpanel", MISC},
  721. {"Wood Panel 2", 14750, "sfhsm2", "ah_pnwainscot3", MISC},
  722. {"Wood Panel 3", 15048, "labigsave", "AH_barpanelM", MISC},
  723. {"Wood Panel 4", 14748, "sfhsm1", "ah_pnwainscot", MISC},
  724. {"Wood Panel 5", 14735, "newcrak", "AH_wdpanscum", MISC},
  725. {"Wood Panel 6", 14853, "gen_pol_vegas", "mp_cop_panel", MISC},
  726. {"Wood Panel 7", 14789, "ab_sfgymmain", "ab_panelWall1", MISC},
  727. {"Wood Panel 8", 14789, "ab_sfgymmain", "ab_panelWall2", MISC},
  728. {"Perforated Wood", 18026, "scummy", "CJ_BACK_BOARD", MISC},
  729. {"Funky 3", 14832, "lee_stripclub", "mirror_ref1", MISC},
  730. {"Unnamed something 2", 1389, "cranes_dyn2", "ws_sheetsteel", MISC},
  731. {"Unnamed something 3", 1824, "gamingtble", "crapside_128", MISC},
  732. {"Unnamed Something 4", 2788, "pizza_furn", "CJ_CORD", MISC},
  733. {"Black Leather", 1753, "cj_sofa", "CJ-COUCHL2", MISC},
  734. {"Brown Leather", 1753, "cj_sofa", "CJ-COUCHL1", MISC},
  735. {"Red Leather", 1770, "cj_tables", "CJ_RED_LEATHER", MISC},
  736. {"Pink 'Leather'", 2487, "rc_shop_hanger", "CJ_kite2", MISC},
  737. {"Blue 'Leather'", 2487, "rc_shop_hanger", "CJ_kite3", MISC},
  738. {"Unnamed Concrete Wall 1", 17925, "lae2fake_int", "ab_wall3", MISC},
  739. {"Unnamed Concrete Wall 2", 18060, "mp_diner2", "mp_diner_wall", MISC},
  740. {"Unnamed Material", 13594, "kickstart", "ah_bluBADWL", MISC},
  741. {"Red Square", 1898, "kb_wheel1", "wheel_o_2", MISC},
  742. {"Green Square", 1898, "kb_wheel1", "wheel_o_2f", MISC},
  743. {"Light Green Square", 1898, "kb_wheel1", "wheel_o_2b", MISC},
  744. {"Blue Square", 1898, "kb_wheel1", "wheel_o_2c", MISC},
  745. {"Light Blue Square", 1898, "kb_wheel1", "wheel_o_2d", MISC},
  746. {"Yellow Square", 1898, "kb_wheel1", "wheel_o_2e", MISC},
  747. {"Unnamed Asian Wall", 14620, "triad_bar", "triad_decor1", MISC},
  748. {"Unnamed Red Something", 6989, "vgnfremnt1", "casinolights4_128", MISC},
  749. {"Unnamed Blue Something", 6989, "vgnfremnt1", "casinolightsblu_128", MISC},
  750. {"Unnamed Yellow Something", 6989, "vgnfremnt1", "casinolightsyel_128", MISC},
  751. {"Funky Red Tiles", 6989, "vgnfremnt1", "casinolights9_256", MISC},
  752. {"Unnamed PC Screen 1", 9822, "ship_brijsfw", "ship_screen1sfw", MISC},
  753. {"Unnamed PC Screen 2", 9822, "ship_brijsfw", "ship_greenscreen1", MISC},
  754. {"TV Screen", 1781, "cj_tv", "CJ_TV_SCREEN", MISC},
  755. {"TV Noise", 14640, "chinese_furn", "ab_tv_noise", MISC},
  756. {"Empty Golden Frame", 6989, "vgnfremnt1", "goldframe_256", MISC},
  757. {"Blood", 19836, "particle", "bloodpool_64", MISC},
  758. {"Blood 2", 18067, "intclothes_acc", "mp_cloth_vicrug", MISC},
  759. {"Unnamed Creepy Concrete", 14888, "gf6", "mp_gimp_basewall", MISC},
  760. {"Seeing Eye", 14839, "lee_strippriv", "Strip_Sign12", MISC},
  761. {"Unnamed Glass 1", 2176, "casino_props", "flameOptic", MISC},
  762. {"Unnamed Glass 2", 2176, "casino_props", "tubelite", MISC}
  763. };
  764. #define MaterialRes Dialog_Show(playerid, TextureResources, DIALOG_STYLE_LIST, "Texture Category:", "Material Colors\nPrinted Fabrics\nWooden\nTiles\nBuilding\nMetals\nPaintings\nWallpapers\nMisc", "Select", "Exit");
  765. enum MAT_COLORS
  766. {
  767. ColorHex,
  768. ColorName[32]
  769. };
  770. new MaterialColors[][MAT_COLORS] =
  771. {
  772. {0, "none"},
  773. {0xFFF0F8FF, "Alice Blue"},
  774. {0xFFFAEBD7, "Antique White"},
  775. {0xFF00FFFF, "Aqua"},
  776. {0xFF7FFFD4, "Aquamarine"},
  777. {0xFFF0FFFF, "Azure"},
  778. {0xFFF5F5DC, "Beige"},
  779. {0xFFFFE4C4, "Bisque"},
  780. {0xFF000000, "Black"},
  781. {0xFFFFEBCD, "Blanched Almond"},
  782. {0xFF0000FF, "Blue"},
  783. {0xFF8A2BE2, "Blue Violet"},
  784. {0xFFA52A2A, "Brown"},
  785. {0xFFDEB887, "Burly Wood"},
  786. {0xFF5F9EA0, "Cadet Blue"},
  787. {0xFF7FFF00, "Chartreuse"},
  788. {0xFFD2691E, "Chocolate"},
  789. {0xFFFF7F50, "Coral"},
  790. {0xFF6495ED, "Cornflower Blue"},
  791. {0xFFFFF8DC, "Cornsilk"},
  792. {0xFFDC143C, "Crimson"},
  793. {0xFF00FFFF, "Cyan"},
  794. {0xFF00008B, "Dark Blue"},
  795. {0xFF008B8B, "Dark Cyan"},
  796. {0xFFB8860B, "Dark Goldenrod"},
  797. {0xFFA9A9A9, "Dark Gray"},
  798. {0xFF006400, "Dark Green"},
  799. {0xFFBDB76B, "Dark Khaki"},
  800. {0xFF8B008B, "Dark Magenta"},
  801. {0xFF556B2F, "Dark Olive Green"},
  802. {0xFFFF8C00, "Dark Orange"},
  803. {0xFF9932CC, "Dark Orchid"},
  804. {0xFF8B0000, "Dark Red"},
  805. {0xFFE9967A, "Dark Salmon"},
  806. {0xFF8FBC8F, "Dark Sea Green"},
  807. {0xFF483D8B, "Dark Slate Blue"},
  808. {0xFF2F4F4F, "Dark Slate Gray"},
  809. {0xFF00CED1, "Dark Turquoise"},
  810. {0xFF9400D3, "Dark Violet"},
  811. {0xFFFF1493, "Deep Pink"},
  812. {0xFF00BFFF, "Deep Sky Blue"},
  813. {0xFF696969, "Dim Gray"},
  814. {0xFF1E90FF, "Dodger Blue"},
  815. {0xFFB22222, "Firebrick"},
  816. {0xFFFFFAF0, "Floral White"},
  817. {0xFF228B22, "Forest Green"},
  818. {0xFFFF00FF, "Fuchsia"},
  819. {0xFFDCDCDC, "Gainsboro"},
  820. {0xFFF8F8FF, "Ghost White"},
  821. {0xFFFFD700, "Gold"},
  822. {0xFFDAA520, "Goldenrod"},
  823. {0xFF808080, "Gray"},
  824. {0xFF008000, "Green"},
  825. {0xFFADFF2F, "Green Yellow"},
  826. {0xFFF0FFF0, "Honeydew"},
  827. {0xFFFF69B4, "Hot Pink"},
  828. {0xFFCD5C5C, "Indian Red"},
  829. {0xFF4B0082, "Indigo"},
  830. {0xFFFFFFF0, "Ivory"},
  831. {0xFFF0E68C, "Khaki"},
  832. {0xFFE6E6FA, "Lavender"},
  833. {0xFFFFF0F5, "Lavender Blush"},
  834. {0xFF7CFC00, "Lawn Green"},
  835. {0xFFFFFACD, "Lemon Chiffon"},
  836. {0xFFADD8E6, "Light Blue"},
  837. {0xFFF08080, "Light Coral"},
  838. {0xFFE0FFFF, "Light Cyan"},
  839. {0xFFFAFAD2, "Light Goldenrod Yellow"},
  840. {0xFFD3D3D3, "Light Gray"},
  841. {0xFF90EE90, "Light Green"},
  842. {0xFFFFB6C1, "Light Pink"},
  843. {0xFFFFA07A, "Light Salmon"},
  844. {0xFF20B2AA, "Light Sea Green"},
  845. {0xFF87CEFA, "Light Sky Blue"},
  846. {0xFF778899, "Light Slate Gray"},
  847. {0xFFB0C4DE, "Light Steel Blue"},
  848. {0xFFFFFFE0, "Light Yellow"},
  849. {0xFF00FF00, "Lime"},
  850. {0xFF32CD32, "Lime Green"},
  851. {0xFFFAF0E6, "Linen"},
  852. {0xFFFF00FF, "Magenta"},
  853. {0xFF800000, "Maroon"},
  854. {0xFF66CDAA, "Medium Aquamarine"},
  855. {0xFF0000CD, "Medium Blue"},
  856. {0xFFBA55D3, "Medium Orchid"},
  857. {0xFF9370DB, "Medium Purple"},
  858. {0xFF3CB371, "Medium Sea Green"},
  859. {0xFF7B68EE, "Medium Slate Blue"},
  860. {0xFF00FA9A, "Medium Spring Green"},
  861. {0xFF48D1CC, "Medium Turquoise"},
  862. {0xFFC71585, "Medium Violet Red"},
  863. {0xFF191970, "Midnight Blue"},
  864. {0xFFF5FFFA, "Mint Cream"},
  865. {0xFFFFE4E1, "Misty Rose"},
  866. {0xFFFFE4B5, "Moccasin"},
  867. {0xFFFFDEAD, "Navajo White"},
  868. {0xFF000080, "Navy"},
  869. {0xFFFDF5E6, "Old Lace"},
  870. {0xFF808000, "Olive"},
  871. {0xFF6B8E23, "Olive Drab"},
  872. {0xFFFFA500, "Orange"},
  873. {0xFFFF4500, "Orange Red"},
  874. {0xFFDA70D6, "Orchid"},
  875. {0xFFEEE8AA, "Pale Goldenrod"},
  876. {0xFF98FB98, "Pale Green"},
  877. {0xFFAFEEEE, "Pale Turquoise"},
  878. {0xFFDB7093, "Pale Violet Red"},
  879. {0xFFFFEFD5, "Papaya Whip"},
  880. {0xFFFFDAB9, "Peach Puff"},
  881. {0xFFCD853F, "Peru"},
  882. {0xFFFFC0CB, "Pink"},
  883. {0xFFDDA0DD, "Plum"},
  884. {0xFFB0E0E6, "Powder Blue"},
  885. {0xFF800080, "Purple"},
  886. {0xFFFF0000, "Red"},
  887. {0xFFBC8F8F, "Rosy Brown"},
  888. {0xFF4169E1, "Royal Blue"},
  889. {0xFF8B4513, "Saddle Brown"},
  890. {0xFFFA8072, "Salmon"},
  891. {0xFFF4A460, "Sandy Brown"},
  892. {0xFF2E8B57, "Sea Green"},
  893. {0xFFFFF5EE, "SeaShell"},
  894. {0xFFA0522D, "Sienna"},
  895. {0xFFC0C0C0, "Silver"},
  896. {0xFF87CEEB, "Sky Blue"},
  897. {0xFF6A5ACD, "Slate Blue"},
  898. {0xFF708090, "Slate Gray"},
  899. {0xFFFFFAFA, "Snow"},
  900. {0xFF00FF7F, "Spring Green"},
  901. {0xFF4682B4, "Steel Blue"},
  902. {0xFFD2B48C, "Tan"},
  903. {0xFF008080, "Teal"},
  904. {0xFFD8BFD8, "Thistle"},
  905. {0xFFFF6347, "Tomato"},
  906. {0xFF40E0D0, "Turquoise"},
  907. {0xFFEE82EE, "Violet"},
  908. {0xFFF5DEB3, "Wheat"},
  909. {0xFFFFFFFF, "White"},
  910. {0xFFF5F5F5, "White Smoke"},
  911. {0xFFFFFF00, "Yellow"},
  912. {0xFF9ACD32, "Yellow Green"}
  913. };
  914. new const componentSlotNames[][] = {
  915. {"Spoiler"},
  916. {"Hood"},
  917. {"Roof"},
  918. {"Sideskirt"},
  919. {"Lamps"},
  920. {"Nitro"},
  921. {"Exhaust"},
  922. {"Wheels"},
  923. {"Stereo"},
  924. {"Hydraulics"},
  925. {"Front Bumper"},
  926. {"Rear Bumper"},
  927. {"Vent Right"},
  928. {"Vent Left"}
  929. };
  930. enum e_Players
  931. {
  932. PlayerText:pText[103],
  933. PlayerBar:pBars[2],
  934. pIgnoreTD,
  935. pFooter,
  936. pID,
  937. pIP[16],
  938. pLoggedIn,
  939. pSetupInfo,
  940. pRegistered[32],
  941. pOrigin[24],
  942. pGender,
  943. pAge,
  944. pSkin,
  945. pUniform,
  946. pOutfit,
  947. pOutfitIndex,
  948. pOutfitTick,
  949. Float:pSpawn[4],
  950. Float:pHealth,
  951. Float:pArmor,
  952. pInterior,
  953. pWorld,
  954. Float:pTraveled,
  955. pPocketMoney,
  956. pSavingsMoney,
  957. pBankMoney,
  958. pAdmin,
  959. pMapper,
  960. pMapperDuty,
  961. pJailType,
  962. pJailTime,
  963. pMuted,
  964. pFitness,
  965. pMinutes,
  966. pSeconds,
  967. pHoursOnline,
  968. pJob,
  969. pJobPaycheck,
  970. pPaycheck,
  971. pWorkoutTime,
  972. pGymMembership,
  973. pPhoneLastKnown,
  974. pPhone,
  975. pPhoneOff,
  976. pPhoneSMS,
  977. pDeathState,
  978. pDeathTime,
  979. pHospital,
  980. pShowPM,
  981. pShowSpeed,
  982. pShowFuel,
  983. pSpawnedCar,
  984. pShowTime,
  985. pShowOOC,
  986. pShowReports,
  987. pShowAdmin,
  988. pShowSupporter,
  989. pBleeding,
  990. pBleedingTime,
  991. pPaymentType,
  992. pBankAccount,
  993. pSupporter,
  994. pVeteran,
  995. pFactionMod,
  996. pFaction,
  997. pFactionID,
  998. pFactionRank,
  999. pFactionLeader,
  1000. pFactionOffer,
  1001. pFriskOffer,
  1002. pTazer,
  1003. pTazed,
  1004. pHandcuffed,
  1005. pCuffedBy,
  1006. pWarrants,
  1007. pCharges,
  1008. pAdminName[24],
  1009. pAdminTitle[24],
  1010. pPackageOrder,
  1011. pPackageType,
  1012. pPackageGrams,
  1013. pPackageTime,
  1014. pCarLicense,
  1015. pGunLicense,
  1016. pPilotLicense,
  1017. pCDL, // Trucker License
  1018. pAdTime,
  1019. pRentHouse,
  1020. pMaskID,
  1021. pMaskTag,
  1022. pHideAdmin,
  1023. pBrokenLeg,
  1024. pChatStyle,
  1025. pWalkStyle,
  1026. pChannel,
  1027. pCamera,
  1028. pDonator,
  1029. pExpiryDate,
  1030. pNameChanges,
  1031. pNameChange[MAX_PLAYER_NAME],
  1032. pBlind,
  1033. pNicks,
  1034. pSession,
  1035. pSessionCaller,
  1036. pSpawnType,
  1037. pSpawnExtra,
  1038. pCrashed,
  1039. Float:pDistance[3],
  1040. Text3D:pPausedText,
  1041. Text3D:pInjuredText,
  1042. pFurnitureMenu,
  1043. pAccessoryMenu,
  1044. pEditJob,
  1045. pEditRank,
  1046. pSafeMenu,
  1047. pTrashbin,
  1048. pSelected,
  1049. pEditUniform,
  1050. pEditEquipment,
  1051. pEditAccessory,
  1052. pAccessoryName[32],
  1053. pAccessoryModel,
  1054. pSelectedItem,
  1055. pNotebookID,
  1056. pSendText,
  1057. pBank,
  1058. pCategory,
  1059. pPreviewIndex,
  1060. pHouse,
  1061. pCompany,
  1062. pProduct,
  1063. pProductName[24],
  1064. pFoodType,
  1065. pFoodPrice,
  1066. pTarget,
  1067. pSetStaff,
  1068. pHotwire,
  1069. pHotwireTime,
  1070. pStartEngine,
  1071. pSpectate,
  1072. pLastReport,
  1073. pSupportTime,
  1074. pBanPage,
  1075. pLights,
  1076. pHouseInfo,
  1077. pCompanyInfo,
  1078. pBuildingInfo,
  1079. pSetPosition,
  1080. pFlashOn,
  1081. pPaused,
  1082. pLastUpdate,
  1083. pFireTime,
  1084. pWorkout,
  1085. pWeight,
  1086. pReps,
  1087. pSpeedLevel,
  1088. pDistanceRan,
  1089. pGoods,
  1090. pMining,
  1091. pJobStage,
  1092. pObject,
  1093. pWorking,
  1094. pWorkVehicle,
  1095. pBuyOutfit,
  1096. pSitting,
  1097. pCarConfirm,
  1098. pAdjustSpawn,
  1099. pRental,
  1100. pViewStats,
  1101. pStatsPage,
  1102. pParkTime,
  1103. pChoose,
  1104. pEdit,
  1105. pEditID,
  1106. pHouseEdit,
  1107. pTransfer,
  1108. pCalling,
  1109. pCaller,
  1110. pPayphone,
  1111. pInsideTaxi,
  1112. pPassenger,
  1113. pTaxiMeter,
  1114. pTaxiTime,
  1115. bool:pTaxiDuty,
  1116. pTaxiFare,
  1117. pRefuel,
  1118. pGasPrice,
  1119. pMedicKit,
  1120. pPainkillers,
  1121. pPicking,
  1122. pPickID,
  1123. pPickTime,
  1124. pFainted,
  1125. pUnfairDeath,
  1126. pAdminDuty,
  1127. pSupporterDuty,
  1128. pHelpRequest,
  1129. pCheatFlags,
  1130. pCheckpoint,
  1131. pAnticheat,
  1132. pAnimation,
  1133. pDuty,
  1134. pBadge,
  1135. pSelectUniform,
  1136. pUniformIndex,
  1137. pUniformTick,
  1138. pChangeRank,
  1139. pDispatch,
  1140. pDealershipMenu,
  1141. pDealershipIndex,
  1142. pVehicleColor,
  1143. pColorID,
  1144. pEmergency,
  1145. pCallTaxi,
  1146. pPackage,
  1147. pStoned,
  1148. pStonedTime,
  1149. pSetBank,
  1150. pGiveDrugs,
  1151. pDrivingTest,
  1152. pDrivingCP,
  1153. pTestTime,
  1154. pRepairCar,
  1155. pHouseOffer,
  1156. pHousePrice,
  1157. pHouseSell,
  1158. pCompanyOffer,
  1159. pCompanyPrice,
  1160. pCompanySell,
  1161. pCarOffer,
  1162. pCarPrice,
  1163. pCarSell,
  1164. pShakeOffer,
  1165. pShakeType,
  1166. pSprayTag,
  1167. pTrashPickup,
  1168. pTrash,
  1169. pModShop,
  1170. pStereoPlayerID,
  1171. pVehicleStream,
  1172. pChatting,
  1173. pAddVehicle,
  1174. pVehiclePrice,
  1175. pVehicleCompany,
  1176. pVehicleRental,
  1177. pVehicleFaction,
  1178. pAutoShop,
  1179. pAutoTime,
  1180. Float:pAutoX,
  1181. Float:pAutoY,
  1182. Float:pAutoZ,
  1183. Float:pAutoA,
  1184. pEnterTime,
  1185. pCommandSpam,
  1186. pCommandMuted,
  1187. pConfirmBackdoor,
  1188. pBackdoorType,
  1189. pFurniturePerms,
  1190. pFactionCallsign,
  1191. pCallsign[128],
  1192. pAddCharges,
  1193. // bool:pFakelicense,
  1194. pDrugOrderType,
  1195. pBigEars,
  1196. pWarnTimer,
  1197. pWarnWeapon,
  1198. pWarnHealth,
  1199. pWarnArmor,
  1200. pWarnAirbreak,
  1201. pWarnSpeedhack,
  1202. pWarnMoneyHack,
  1203. pWarnAmmoHack,
  1204. pWarnFlyHack,
  1205. pWarnDialogHack,
  1206. pWarnGodMode,
  1207. pWarnRapidFire,
  1208. pWarnTeleport,
  1209. pActivated,
  1210. pGPCI[41],
  1211. pBeingReported,
  1212. pReportReason[64],
  1213. // Added by Grime, 10-03-2017.
  1214. pModPreview,
  1215. pOldComponent,
  1216. pVehicleParams[7],
  1217. pRepairShop,
  1218. pRepairTime
  1219. };
  1220. enum e_Weapons
  1221. {
  1222. wMelee,
  1223. wPrimary,
  1224. wPrimaryAmmo,
  1225. wPrimarySerial,
  1226. wSecondary,
  1227. wSecondaryAmmo,
  1228. wSecondarySerial,
  1229. wTertiary,
  1230. wTertiaryAmmo,
  1231. wTertiarySerial
  1232. };
  1233. enum e_WeaponOffsets
  1234. {
  1235. wBoneID,
  1236. wHidden,
  1237. Float:wOffsetX,
  1238. Float:wOffsetY,
  1239. Float:wOffsetZ,
  1240. Float:wOffsetRX,
  1241. Float:wOffsetRY,
  1242. Float:wOffsetRZ
  1243. };
  1244. enum e_Server
  1245. {
  1246. Accounts,
  1247. PlayerRecord,
  1248. RecordDate[24],
  1249. TaxRate,
  1250. TaxVault,
  1251. Motd[128]
  1252. };
  1253. enum e_Statistics
  1254. {
  1255. sHotwired, // Total vehicles hotwired
  1256. sRentals, // Total vehicles rented
  1257. sHospitalFees, // Total hospital fees
  1258. sItemsUsed, // Total items used
  1259. sItemsDropped, // Total items dropped
  1260. sItemsPicked, // Total items picked up
  1261. sDistanceRan, // Total distance ran on treadmill
  1262. sTotalReps, // Total weights lifted
  1263. sHouses, // Total houses purchased
  1264. sCompanies, // Total companies purchased
  1265. sVehicles, // Total vehicles purchased
  1266. sFurnitureFees, // Total money spent on furniture,
  1267. sTotalWarrants, // Total warrants issued
  1268. sReports, // Total accepted reports
  1269. sHelpRequests // Total accepted help requests
  1270. };
  1271. enum e_Timers
  1272. {
  1273. tFooter,
  1274. tWorkout,
  1275. tHospital,
  1276. tRefuel,
  1277. tRepair
  1278. };
  1279. enum e_VehicleInfo
  1280. {
  1281. vInit,
  1282. vFuel,
  1283. vWindows,
  1284. vWindowFL,
  1285. vWindowFR,
  1286. vWindowBL,
  1287. vWindowBR,
  1288. vAdmin,
  1289. vGoods,
  1290. vObject,
  1291. vColor[2],
  1292. vStream[128 char]
  1293. };
  1294. enum e_Inventory
  1295. {
  1296. invExists,
  1297. invID,
  1298. invName[MAX_ITEM_NAME],
  1299. invValue,
  1300. invSerial,
  1301. Float:invOffset[6]
  1302. };
  1303. enum e_DropItems
  1304. {
  1305. dExists,
  1306. dID,
  1307. dName[MAX_ITEM_NAME],
  1308. dValue,
  1309. dSerial,
  1310. Float:dSpawn[4],
  1311. dInterior,
  1312. dWorld,
  1313. dObject,
  1314. //Text3D:dText,
  1315. Float:dOffset[6]
  1316. };
  1317. enum e_ReportQueue
  1318. {
  1319. rExists,
  1320. rReportTime,
  1321. rReporter,
  1322. rText[128]
  1323. };
  1324. enum e_EmergencyCalls
  1325. {
  1326. ecExists,
  1327. ecTime,
  1328. ecName[128],
  1329. ecService[32],
  1330. ecNumber,
  1331. ecLocation[128],
  1332. ecSituation[128]
  1333. };
  1334. enum e_ApbList
  1335. {
  1336. apbExists,
  1337. apbReporter,
  1338. apbDesc1[128]
  1339. };
  1340. enum e_Houses
  1341. {
  1342. hID,
  1343. hExists,
  1344. hOwner,
  1345. hOwnerName[MAX_PLAYER_NAME],
  1346. hValue,
  1347. hAddress[32],
  1348. Float:hSpawn[4],
  1349. Float:hInt[4],
  1350. Float:hBackdoor[4],
  1351. Float:hBackdoorInt[4],
  1352. hExterior,
  1353. hExteriorWorld,
  1354. hInterior,
  1355. hWorld,
  1356. hLocked,
  1357. hAlarm,
  1358. hRentPrice,
  1359. hLights,
  1360. hEdit,
  1361. hCheckpoint,
  1362. //Text3D:hText,
  1363. Text3D:hBackdoorText[2],
  1364. hFaction
  1365. };
  1366. enum e_Companies
  1367. {
  1368. cID,
  1369. cExists,
  1370. cOwner,
  1371. cOwnerName[MAX_PLAYER_NAME],
  1372. cValue,
  1373. cType,
  1374. cName[32],
  1375. Float:cSpawn[4],
  1376. Float:cVehicle[4],
  1377. Float:cInt[4],
  1378. cExterior,
  1379. cExteriorWorld,
  1380. cInterior,
  1381. cWorld,
  1382. cLocked,
  1383. cSafe,
  1384. cStock,
  1385. cCheckpoint,
  1386. cIcon,
  1387. //Text3D:cText,
  1388. Text3D:cDeliverText,
  1389. cFee,
  1390. cStream[256],
  1391. cFaction
  1392. };
  1393. enum e_Products
  1394. {
  1395. prStock,
  1396. prPrice
  1397. };
  1398. enum e_RestaurantItems
  1399. {
  1400. rtID,
  1401. rtExists,
  1402. rtName[24],
  1403. rtStock,
  1404. rtPrice,
  1405. rtType,
  1406. rtHealth
  1407. };
  1408. enum e_Vehicles
  1409. {
  1410. vID,
  1411. vExists,
  1412. vCompany,
  1413. vOwner,
  1414. vModel,
  1415. vRegistered[32],
  1416. vPrice,
  1417. vRentable,
  1418. Float:vSpawn[4],
  1419. vColor1,
  1420. vColor2,
  1421. vPaintjob,
  1422. vLocked,
  1423. vTrunkMoney,
  1424. vFaction,
  1425. vSiren,
  1426. vAlarm,
  1427. vPlate[32],
  1428. vImpound,
  1429. vDespawned,
  1430. vMods[14],
  1431. vRenter,
  1432. vVehicle,
  1433. Text3D:vText
  1434. };
  1435. enum e_Buildings
  1436. {
  1437. bID,
  1438. bExists,
  1439. bName[32],
  1440. bIconType,
  1441. bLocked,
  1442. Float:bSpawn[4],
  1443. Float:bInt[4],
  1444. bExterior,
  1445. bExteriorWorld,
  1446. bInterior,
  1447. bWorld,
  1448. bPickup,
  1449. Text3D:bText,
  1450. bIcon
  1451. };
  1452. enum e_Furniture
  1453. {
  1454. fID,
  1455. fExists,
  1456. fHouseID,
  1457. fModel,
  1458. Float:fSpawn[6],
  1459. fInterior,
  1460. fWorld,
  1461. fCode, // Safe code
  1462. fMoney, // Safe money
  1463. fSafeOpen,
  1464. fDoorOpen,
  1465. fObject,
  1466. fEdit,
  1467. Text3D:fText,
  1468. fMaterial[3],
  1469. fMatColour[3],
  1470. };
  1471. enum e_StoredItems
  1472. {
  1473. stID,
  1474. stExists,
  1475. stVehicle,
  1476. stFurniture,
  1477. stTrashbin,
  1478. stName[MAX_ITEM_NAME char],
  1479. stValue,
  1480. stSerial,
  1481. Float:stOffset[6],
  1482. vehicleItem,
  1483. Float:vehicleOffset[6]
  1484. };
  1485. enum e_BankAccounts
  1486. {
  1487. bankID,
  1488. bankExists,
  1489. bankName[32],
  1490. bankBalance
  1491. };
  1492. enum e_Accessories
  1493. {
  1494. aID,
  1495. aExists,
  1496. aAttached,
  1497. aName[32],
  1498. aModel,
  1499. aBone,
  1500. Float:aOffset[9]
  1501. };
  1502. enum e_GasPumps
  1503. {
  1504. gpID,
  1505. gpExists,
  1506. gpCompany,
  1507. Float:gpSpawn[4],
  1508. Float:gpFuel,
  1509. gpObject,
  1510. Text3D:gpText
  1511. };
  1512. enum e_ATM
  1513. {
  1514. atmID,
  1515. atmExists,
  1516. Float:atmSpawn[4],
  1517. atmInterior,
  1518. atmWorld,
  1519. atmObject,
  1520. Text3D:atmText
  1521. };
  1522. enum e_Dealership
  1523. {
  1524. dcID,
  1525. dcExists,
  1526. dcCompany,
  1527. dcModel,
  1528. dcPrice
  1529. };
  1530. enum e_Casings
  1531. {
  1532. scID,
  1533. scExists,
  1534. scSerial,
  1535. scWeapon,
  1536. scTime,
  1537. Float:scSpawn[3],
  1538. scInterior,
  1539. scWorld,
  1540. scObject
  1541. };
  1542. enum e_Bloods
  1543. {
  1544. blID,
  1545. blExists,
  1546. blType,
  1547. blOwner[24],
  1548. Float:blSpawn[3],
  1549. blInterior,
  1550. blWorld,
  1551. blObject,
  1552. blTime
  1553. };
  1554. enum e_WeedPlants
  1555. {
  1556. wpID,
  1557. wpExists,
  1558. wpOwner[24],
  1559. Float:wpSpawn[3],
  1560. wpInterior,
  1561. wpWorld,
  1562. wpObject,
  1563. wpTime
  1564. };
  1565. enum e_Factions
  1566. {
  1567. fcID,
  1568. fcExists,
  1569. fcName[32],
  1570. fcType,
  1571. fcColor,
  1572. fcMaxRanks,
  1573. Float:fcLockerX,
  1574. Float:fcLockerY,
  1575. Float:fcLockerZ,
  1576. fcLockerInt,
  1577. fcLockerWorld,
  1578. fcUniforms[MAX_FACTION_UNIFORMS],
  1579. fcPaycheck[MAX_FACTION_RANKS],
  1580. fcWeaponRights[6],
  1581. fcDrugRights,
  1582. fcSprayRights,
  1583. Float:fcSpawnX, // Emmet 09/27/2017
  1584. Float:fcSpawnY,
  1585. Float:fcSpawnZ,
  1586. Float:fcSpawnA,
  1587. fcSpawnInt,
  1588. fcSpawnWorld, //
  1589. fcPickup,
  1590. Text3D:fcText
  1591. };
  1592. enum e_FactionItems
  1593. {
  1594. fcItemExists,
  1595. fcItemName[MAX_ITEM_NAME],
  1596. fcItemValue
  1597. };
  1598. enum e_FactionAccessories
  1599. {
  1600. fcAccessoryExists,
  1601. fcAccessoryName[32],
  1602. fcAccessoryModel,
  1603. fcAccessoryBone
  1604. };
  1605. enum e_FactionGuns
  1606. {
  1607. fcWeapon,
  1608. fcAmmo,
  1609. fcRank
  1610. };
  1611. enum e_ArrestPoints
  1612. {
  1613. apID,
  1614. apExists,
  1615. Float:apX,
  1616. Float:apY,
  1617. Float:apZ,
  1618. apInterior,
  1619. apWorld,
  1620. Text3D:apText,
  1621. apPickup
  1622. };
  1623. enum e_Teleports
  1624. {
  1625. tpID,
  1626. tpExists,
  1627. tpName[32],
  1628. Float:tpX,
  1629. Float:tpY,
  1630. Float:tpZ,
  1631. Float:tpA,
  1632. tpInterior,
  1633. tpWorld
  1634. };
  1635. enum e_Gates
  1636. {
  1637. gID,
  1638. gExists,
  1639. gModel,
  1640. gPassword[64],
  1641. Float:gSpeed,
  1642. Float:gRadius,
  1643. gFactionID,
  1644. gLinkID,
  1645. Float:gSpawn[6],
  1646. Float:gMove[6],
  1647. gInterior,
  1648. gWorld,
  1649. gOpened,
  1650. gObject
  1651. };
  1652. enum e_Labels
  1653. {
  1654. lID,
  1655. lExists,
  1656. lColor,
  1657. lText[144],
  1658. Float:lX,
  1659. Float:lY,
  1660. Float:lZ,
  1661. Float:lDistance,
  1662. lInterior,
  1663. lWorld,
  1664. Text3D:lText3D
  1665. };
  1666. enum e_AutoShops {
  1667. asID,
  1668. asExists,
  1669. Float:asX,
  1670. Float:asY,
  1671. Float:asZ,
  1672. asPickup,
  1673. asIcon,
  1674. Text3D:asText
  1675. };
  1676. enum e_Deploys {
  1677. dpExists,
  1678. dpType,
  1679. dpFaction,
  1680. Float:dpX,
  1681. Float:dpY,
  1682. Float:dpZ,
  1683. Float:dpA,
  1684. dpObject
  1685. };
  1686. enum e_Objects {
  1687. oID,
  1688. oExists,
  1689. oModel,
  1690. Float:oX,
  1691. Float:oY,
  1692. Float:oZ,
  1693. Float:oRX,
  1694. Float:oRY,
  1695. Float:oRZ,
  1696. Float:oDistance,
  1697. oInterior,
  1698. oWorld,
  1699. gDebug,
  1700. oObjectID,
  1701. Text3D:oText
  1702. };
  1703. enum e_Trashbins {
  1704. tID,
  1705. tExists,
  1706. Float:tX,
  1707. Float:tY,
  1708. Float:tZ,
  1709. Float:tA,
  1710. tInterior,
  1711. tWorld,
  1712. Text3D:tText,
  1713. tObject
  1714. };
  1715. enum e_SprayTags {
  1716. sID,
  1717. sExists,
  1718. sColor,
  1719. sText[64],
  1720. Float:sX,
  1721. Float:sY,
  1722. Float:sZ,
  1723. Float:sA,
  1724. sObject
  1725. };
  1726. enum e_Tags {
  1727. tagID,
  1728. tagExists,
  1729. tagColor,
  1730. tagText[64],
  1731. Float:tagX,
  1732. Float:tagY,
  1733. Float:tagZ,
  1734. Float:tagA,
  1735. tagObject,
  1736. tagFontSize,
  1737. tagBold
  1738. };
  1739. enum e_Payphones {
  1740. phID,
  1741. phExists,
  1742. phNumber,
  1743. phOccupied,
  1744. phCaller,
  1745. Float:phX,
  1746. Float:phY,
  1747. Float:phZ,
  1748. Float:phA,
  1749. phInterior,
  1750. phWorld,
  1751. phObject,
  1752. Text3D:phText
  1753. };
  1754. enum e_JobVehicles {
  1755. Transporter[11],
  1756. Forklifter[6],
  1757. TaxiDriver[6],
  1758. Pizzaboy[5],
  1759. Trashman[5]
  1760. };
  1761. enum e_Stereo {
  1762. pStereoID,
  1763. Float:pStereoX,
  1764. Float:pStereoY,
  1765. Float:pStereoZ,
  1766. pStereoInterior,
  1767. pStereoWorld,
  1768. pStereoURL[255 char],
  1769. pStereoObject,
  1770. Text3D:pStereoText
  1771. };
  1772. enum e_Checkpoints {
  1773. cpEmployment,
  1774. cpPolice
  1775. };
  1776. enum e_LastShots {
  1777. lWeaponID,
  1778. lWeaponShots
  1779. };
  1780. new
  1781. Players[MAX_PLAYERS][e_Players],
  1782. pSpecLimit[MAX_PLAYERS],
  1783. Weapons[MAX_PLAYERS][e_Weapons],
  1784. WeaponOffsets[MAX_PLAYERS][6][e_WeaponOffsets],
  1785. Stereos[MAX_PLAYERS][e_Stereo],
  1786. Statistics[MAX_PLAYERS][e_Statistics],
  1787. Timers[MAX_PLAYERS][e_Timers],
  1788. Inventory[MAX_PLAYERS][MAX_INVENTORY_ITEMS][e_Inventory],
  1789. LastShots[MAX_PLAYERS][10][e_LastShots],
  1790. DropItems[MAX_DROPPED_ITEMS][e_DropItems],
  1791. Houses[MAX_HOUSES][e_Houses],
  1792. Companies[MAX_COMPANIES][e_Companies],
  1793. Products[MAX_COMPANIES][MAX_PRODUCTS][e_Products],
  1794. RestaurantItems[MAX_COMPANIES][MAX_RESTAURANT_ITEMS][e_RestaurantItems],
  1795. VehicleInformation[MAX_VEHICLES][e_VehicleInfo],
  1796. Reports[MAX_REPORTS][e_ReportQueue],
  1797. Emergency[MAX_EMERGENCY][e_EmergencyCalls],
  1798. Apbs[MAX_APBS][e_ApbList],
  1799. Vehicles[MAX_CARS][e_Vehicles],
  1800. Buildings[MAX_BUILDINGS][e_Buildings],
  1801. Furniture[MAX_FURNITURE][e_Furniture],
  1802. StoredItems[MAX_STORED_ITEMS][e_StoredItems],
  1803. BankAccounts[MAX_PLAYERS][MAX_BANK_ACCOUNTS][e_BankAccounts],
  1804. Accessories[MAX_PLAYERS][MAX_ACCESSORIES][e_Accessories],
  1805. GasPumps[MAX_GAS_PUMPS][e_GasPumps],
  1806. ATM[MAX_ATMS][e_ATM],
  1807. DealershipCars[MAX_DEALERSHIP_CARS][e_Dealership],
  1808. ShellCasings[MAX_SHELL_CASINGS][e_Casings],
  1809. Bloods[MAX_BLOOD][e_Bloods],
  1810. WeedPlants[MAX_WEEDPLANTS][e_WeedPlants],
  1811. Factions[MAX_FACTIONS][e_Factions],
  1812. FactionEquipment[MAX_FACTIONS][MAX_FACTION_EQUIPMENT][e_FactionItems],
  1813. FactionAccessories[MAX_FACTIONS][MAX_FACTION_ACCESSORIES][e_FactionAccessories],
  1814. Ranks[MAX_FACTIONS][MAX_FACTION_RANKS][MAX_RANK_NAME],
  1815. ArrestPoints[MAX_ARREST_POINTS][e_ArrestPoints],
  1816. Teleports[MAX_ADMIN_TELEPORTS][e_Teleports],
  1817. Gates[MAX_GATES][e_Gates],
  1818. Labels[MAX_DYNAMIC_LABELS][e_Labels],
  1819. AutoShops[MAX_AUTO_SHOPS][e_AutoShops],
  1820. DeployedItems[MAX_DEPLOYED_ITEMS][e_Deploys],
  1821. Objects[MAX_SCRIPT_OBJECTS][e_Objects],
  1822. Trashbins[MAX_TRASH_BINS][e_Trashbins],
  1823. SprayTags[MAX_SPRAY_TAGS][e_SprayTags],
  1824. Tags[MAX_TAGS][e_Tags],
  1825. Payphones[MAX_PAYPHONES][e_Payphones],
  1826. PoliceObjects[MAX_PLAYERS][MAX_PLAYER_ATTACHED_OBJECTS],
  1827. bool:BlockedPM[MAX_PLAYERS][MAX_PLAYERS];
  1828. new
  1829. Server[e_Server],
  1830. Float:WeaponDamages[47],
  1831. JobVehicles[e_JobVehicles],
  1832. Checkpoints[e_Checkpoints],
  1833. gMinutes,
  1834. gCallsHour,
  1835. gArrestsHour,
  1836. gConnection,
  1837. gTestVehicles[4],
  1838. gVehicleBlacklist[212],
  1839. gListString[16384],
  1840. gWeatherID = 5,
  1841. gEnabledOOC = 0,
  1842. gObjectDebug,
  1843. gExecute[512],
  1844. Text3D:playerNametag[MAX_PLAYERS],
  1845. gListedItems[MAX_PLAYERS][100],
  1846. gWeights[MAX_PLAYERS][2],
  1847. gLastVehicleID[MAX_PLAYERS],
  1848. gPlayerKicked[MAX_PLAYERS],
  1849. gSeatData[MAX_PLAYERS] = {-1, ...},
  1850. gPreviewFurniture[MAX_PLAYERS] = {-1, ...},
  1851. gPreviewDeploy[MAX_PLAYERS] = {-1, ...},
  1852. gPreviewDeployID[MAX_PLAYERS],
  1853. gTargetName[MAX_PLAYERS][MAX_PLAYER_NAME],
  1854. gHelpRequest[MAX_PLAYERS][128 char],
  1855. gTemporaryText[MAX_PLAYERS][64 char],
  1856. gAdvertisement[MAX_PLAYERS][128 char],
  1857. gSirenObject[MAX_VEHICLES] = {INVALID_OBJECT_ID, ...},
  1858. Text3D:gCallsignText[MAX_VEHICLES] = {INVALID_3DTEXT_ID, ...},
  1859. Text:gGlobalTextdraws[3];
  1860. //gListitemSelected[MAX_PLAYERS] = {-1, ...},
  1861. //gPrisonDoors[6],
  1862. //gPrisonDoorStatus[3];
  1863. enum
  1864. {
  1865. SPAWN_TYPE_LAST = 0,
  1866. SPAWN_TYPE_AIRPORT,
  1867. SPAWN_TYPE_HOUSE,
  1868. SPAWN_TYPE_COMPANY,
  1869. SPAWN_TYPE_FACTION
  1870. };
  1871. enum
  1872. {
  1873. JOB_NONE,
  1874. JOB_TRANSPORTER,
  1875. JOB_FORKLIFTER,
  1876. JOB_MINER,
  1877. JOB_TAXI,
  1878. JOB_PIZZA,
  1879. JOB_TRASHMAN,
  1880. JOB_MECHANIC,
  1881. JOB_GUNDEALER
  1882. };
  1883. enum
  1884. {
  1885. WEAPON_MELEE,
  1886. WEAPON_PRIMARY,
  1887. WEAPON_SECONDARY,
  1888. WEAPON_TERTIARY
  1889. };
  1890. enum
  1891. {
  1892. WORKOUT_NONE,
  1893. WORKOUT_DUMBELLS,
  1894. WORKOUT_TREADMILL
  1895. };
  1896. enum
  1897. {
  1898. CHECKPOINT_NONE,
  1899. CHECKPOINT_GPS,
  1900. CHECKPOINT_PACKAGE,
  1901. CHECKPOINT_JOB
  1902. };
  1903. enum
  1904. {
  1905. ITEM_INFO_MODEL = 1,
  1906. ITEM_INFO_WEIGHT,
  1907. ITEM_INFO_VALUE,
  1908. ITEM_INFO_WEAPON_ID,
  1909. ITEM_INFO_ILLEGAL,
  1910. ITEM_INFO_STACKABLE,
  1911. ITEM_INFO_DRUG
  1912. };
  1913. enum
  1914. {
  1915. DEATH_STATE_NONE,
  1916. DEATH_STATE_INJURED,
  1917. DEATH_STATE_HOSPITAL//,
  1918. //DEATH_STATE_MELEE
  1919. };
  1920. enum {
  1921. GENDER_MALE = 1,
  1922. GENDER_FEMALE
  1923. };
  1924. enum {
  1925. HOSPITAL_NONE = -1,
  1926. HOSPITAL_COUNTY_GENERAL,
  1927. HOSPITAL_ALL_SAINTS,
  1928. HOSPITAL_MONTGOMERY,
  1929. HOSPITAL_LAS_VENTURAS,
  1930. HOSPITAL_SAN_FIERRO,
  1931. HOSPITAL_FORT_CARSON,
  1932. HOSPITAL_EL_QUEBRADOS,
  1933. HOSPITAL_ANGEL_PINE
  1934. };
  1935. enum {
  1936. EDIT_TYPE_NONE,
  1937. EDIT_TYPE_PREVIEW,
  1938. EDIT_TYPE_FURNITURE,
  1939. EDIT_TYPE_ACCESSORY,
  1940. EDIT_TYPE_PUMP,
  1941. EDIT_TYPE_ATM,
  1942. EDIT_TYPE_GATE,
  1943. EDIT_TYPE_GATE_MOVE,
  1944. EDIT_TYPE_OBJECT,
  1945. EDIT_TYPE_TRASHBIN,
  1946. EDIT_TYPE_TAG,
  1947. EDIT_TYPE_SPRAY,
  1948. EDIT_TYPE_PAYPHONE,
  1949. EDIT_TYPE_WEAPON,
  1950. EDIT_TYPE_DEPLOY,
  1951. EDIT_TYPE_TRUNK
  1952. };
  1953. enum {
  1954. FURNITURE_KITCHEN,
  1955. FURNITURE_TABLES,
  1956. FURNITURE_CHAIRS,
  1957. FURNITURE_SHELVES,
  1958. FURNITURE_BATHROOM,
  1959. FURNITURE_BEDROOM,
  1960. FURNITURE_CABINETS,
  1961. FURNITURE_ELECTRIC,
  1962. FURNITURE_PLANTS,
  1963. FURNITURE_TRASH,
  1964. FURNITURE_DOORS,
  1965. FURNITURE_CARPETS,
  1966. FURNITURE_FRAMES,
  1967. FURNITURE_MISC,
  1968. FURNITURE_WALL,
  1969. FURNITURE_SPECIAL,
  1970. FURNITURE_EFFECT
  1971. };
  1972. enum {
  1973. ACCESSORY_GLASSES,
  1974. ACCESSORY_BANDANAS,
  1975. ACCESSORY_HATS,
  1976. ACCESSORY_CHEST,
  1977. ACCESSORY_BAGS
  1978. };
  1979. enum {
  1980. CHOOSE_TYPE_NONE,
  1981. CHOOSE_TYPE_TRUNK,
  1982. CHOOSE_TYPE_SAFE,
  1983. CHOOSE_TYPE_TRASH
  1984. };
  1985. enum {
  1986. STORED_TYPE_TRUNK,
  1987. STORED_TYPE_SAFE,
  1988. STORED_TYPE_TRASH
  1989. };
  1990. enum {
  1991. PICK_LOCK_NONE,
  1992. PICK_LOCK_HOUSE,
  1993. PICK_LOCK_SAFE,
  1994. PICK_LOCK_COMPANY,
  1995. PICK_LOCK_VEHICLE
  1996. };
  1997. enum {
  1998. PAYMENT_TYPE_CASH,
  1999. PAYMENT_TYPE_BANK
  2000. };
  2001. enum {
  2002. BANK_ACCESS_MENU,
  2003. BANK_ATM_MENU,
  2004. BANK_PAYMENT_TYPE
  2005. };
  2006. enum {
  2007. TRANSFER_TO_SAFE,
  2008. TRANSFER_TO_TRUNK,
  2009. TRANSFER_TO_TRASH,
  2010. TRANSFER_TO_PLAYER,
  2011. TRANSFER_TO_GROUND
  2012. };
  2013. enum {
  2014. TRANSFER_FROM_SAFE,
  2015. TRANSFER_FROM_TRUNK,
  2016. TRANSFER_FROM_TRASH,
  2017. TRANSFER_FROM_GROUND
  2018. };
  2019. enum {
  2020. DEPLOY_TYPE_CONE,
  2021. DEPLOY_TYPE_SPIKES,
  2022. DEPLOY_TYPE_ROADBLOCK,
  2023. DEPLOY_TYPE_FLARE,
  2024. DEPLOY_TYPE_BARREL,
  2025. DEPLOY_TYPE_TAPE
  2026. };
  2027. /*
  2028. {"Steroids", 2891, 1, true, true, true},
  2029. {"Heroin", 2891, 1, true, true, true},
  2030. {"LSD", 2891, 1, true, true, true},
  2031. {"Ecstasy", 2891, 1, true, true, true},
  2032. {"Marijuana", 2891, 1, true, true, true},
  2033. {"Crack", 2891, 1, true, true, true},
  2034. {"Cocaine", 2891, 1, true, true, true},
  2035. {"Methamphetamine", 2891, 1, true, true, true},
  2036. {"PCP", 2891, 1, true, true, true},
  2037. */
  2038. enum {
  2039. PACKAGE_TYPE_NONE,
  2040. PACKAGE_TYPE_MELEE,
  2041. PACKAGE_TYPE_PISTOLS,
  2042. PACKAGE_TYPE_SHOTGUNS,
  2043. PACKAGE_TYPE_SMGS,
  2044. PACKAGE_TYPE_RIFLES,
  2045. PACKAGE_TYPE_EXPLOSIVES,
  2046. PACKAGE_TYPE_MARIJUANA,
  2047. PACKAGE_TYPE_COCAINE,
  2048. PACKAGE_TYPE_HEROIN,
  2049. PACKAGE_TYPE_STEROIDS,
  2050. PACKAGE_TYPE_LSD,
  2051. PACKAGE_TYPE_ECSTASY,
  2052. PACKAGE_TYPE_CRACK,
  2053. PACKAGE_TYPE_METH,
  2054. PACKAGE_TYPE_PCP,
  2055. PACKAGE_TYPE_AMMO_1,
  2056. PACKAGE_TYPE_AMMO_2,
  2057. PACKAGE_TYPE_AMMO_3,
  2058. PACKAGE_TYPE_AMMO_4,
  2059. PACKAGE_TYPE_AMMO_5,
  2060. PACKAGE_TYPE_AMMO_6
  2061. };
  2062. enum {
  2063. STONED_TYPE_NONE,
  2064. STONED_TYPE_MARIJUANA,
  2065. STONED_TYPE_COCAINE,
  2066. STONED_TYPE_HEROIN,
  2067. STONED_TYPE_STEROIDS,
  2068. STONED_TYPE_LSD,
  2069. STONED_TYPE_ECSTASY,
  2070. STONED_TYPE_CRACK,
  2071. STONED_TYPE_METH,
  2072. STONED_TYPE_PCP
  2073. };
  2074. enum {
  2075. WEAPON_TYPE_MELEE,
  2076. WEAPON_TYPE_PISTOL,
  2077. WEAPON_TYPE_SHOTGUN,
  2078. WEAPON_TYPE_SMG,
  2079. WEAPON_TYPE_ASSAULT,
  2080. WEAPON_TYPE_RIFLE
  2081. };
  2082. /*---------------------------------------------------------------------------
  2083. Array data
  2084. The arrays below contain data used by the server.
  2085. Arrays that use "const" cannot be modified.
  2086. ---------------------------------------------------------------------------*/
  2087. enum e_Callsigns
  2088. {
  2089. e_CallsignID,
  2090. e_CallsignTakenBy,
  2091. // 1-LSPD
  2092. e_CallsignFaction,
  2093. // Text of the callsign
  2094. e_CallsignTextShort[32],
  2095. // Text of the callsign
  2096. e_CallsignTextFull[64]
  2097. };
  2098. new g_Callsigns[][e_Callsigns] =
  2099. {
  2100. {1, -1, 1, "1-A-1", "1-Adam-1"},
  2101. {2, -1, 1, "1-A-2", "1-Adam-2"},
  2102. {3, -1, 1, "1-A-3", "1-Adam-3"},
  2103. {4, -1, 1, "1-A-4", "1-Adam-4"},
  2104. {5, -1, 1, "1-A-5", "1-Adam-5"},
  2105. {6, -1, 1, "2-A-1", "2-Adam-1"},
  2106. {7, -1, 1, "2-A-2", "2-Adam-2"},
  2107. {8, -1, 1, "2-A-3", "2-Adam-3"},
  2108. {9, -1, 1, "2-A-4", "2-Adam-4"},
  2109. {10, -1, 1, "2-A-5", "2-Adam-5"},
  2110. {11, -1, 1, "3-A-1", "3-Adam-1"},
  2111. {12, -1, 1, "3-A-2", "3-Adam-2"},
  2112. {13, -1, 1, "3-A-3", "3-Adam-3"},
  2113. {14, -1, 1, "3-A-4", "3-Adam-4"},
  2114. {15, -1, 1, "3-A-5", "3-Adam-5"},
  2115. {16, -1, 1, "1-L-1", "1-Lincoln-1"},
  2116. {17, -1, 1, "1-L-2", "1-Lincoln-2"},
  2117. {18, -1, 1, "1-L-3", "1-Lincoln-3"},
  2118. {19, -1, 1, "1-L-4", "1-Lincoln-4"},
  2119. {20, -1, 1, "1-L-5", "1-Lincoln-5"},
  2120. {21, -1, 1, "2-L-1", "2-Lincoln-1"},
  2121. {22, -1, 1, "2-L-2", "2-Lincoln-2"},
  2122. {23, -1, 1, "2-L-3", "2-Lincoln-3"},
  2123. {24, -1, 1, "2-L-4", "2-Lincoln-4"},
  2124. {25, -1, 1, "2-L-5", "2-Lincoln-5"},
  2125. {26, -1, 1, "3-L-1", "3-Lincoln-1"},
  2126. {27, -1, 1, "3-L-2", "3-Lincoln-2"},
  2127. {28, -1, 1, "3-L-3", "3-Lincoln-3"},
  2128. {29, -1, 1, "3-L-4", "3-Lincoln-4"},
  2129. {30, -1, 1, "3-L-5", "3-Lincoln-5"},
  2130. {31, -1, 1, "1-D-1", "1-David-1"},
  2131. {32, -1, 1, "1-D-2", "1-David-2"},
  2132. {33, -1, 1, "2-D-1", "2-David-1"},
  2133. {34, -1, 1, "2-D-2", "2-David-2"},
  2134. {35, -1, 1, "3-D-1", "3-David-1"},
  2135. {36, -1, 1, "3-D-2", "3-David-2"},
  2136. {37, -1, 1, "1-M-1", "1-Mary-1"},
  2137. {38, -1, 1, "1-M-2", "1-Mary-2"},
  2138. {39, -1, 1, "2-M-1", "2-Mary-1"},
  2139. {40, -1, 1, "2-M-2", "2-Mary-2"},
  2140. {41, -1, 1, "3-M-1", "3-Mary-1"},
  2141. {42, -1, 1, "3-M-2", "3-Mary-2"},
  2142. {43, -1, 1, "1-T-1", "1-Tom-1"},
  2143. {44, -1, 1, "1-T-2", "1-Tom-2"},
  2144. {45, -1, 1, "1-T-3", "1-Tom-3"},
  2145. {46, -1, 1, "1-T-4", "1-Tom-4"},
  2146. {47, -1, 1, "1-T-5", "1-Tom-5"},
  2147. {48, -1, 1, "2-T-1", "2-Tom-1"},
  2148. {49, -1, 1, "2-T-2", "2-Tom-2"},
  2149. {50, -1, 1, "2-T-3", "2-Tom-3"},
  2150. {51, -1, 1, "2-T-4", "2-Tom-4"},
  2151. {52, -1, 1, "2-T-5", "2-Tom-5"},
  2152. {53, -1, 1, "3-T-1", "3-Tom-1"},
  2153. {54, -1, 1, "3-T-2", "3-Tom-2"},
  2154. {55, -1, 1, "3-T-3", "3-Tom-3"},
  2155. {56, -1, 1, "3-T-4", "3-Tom-4"},
  2156. {57, -1, 1, "3-T-5", "3-Tom-5"},
  2157. {58, -1, 1, "1-TL-1", "1-TL-1"},
  2158. {59, -1, 1, "1-TL-2", "1-TL-2"},
  2159. {60, -1, 1, "1-TL-3", "1-TL-3"},
  2160. {61, -1, 1, "2-TL-1", "2-TL-1"},
  2161. {62, -1, 1, "2-TL-2", "2-TL-2"},
  2162. {63, -1, 1, "2-TL-3", "2-TL-3"},
  2163. {64, -1, 1, "3-TL-1", "3-TL-1"},
  2164. {65, -1, 1, "3-TL-2", "3-TL-2"},
  2165. {66, -1, 1, "3-TL-3", "3-TL-3"},
  2166. {67, -1, 1, "1-G-1", "1-George-1"},
  2167. {68, -1, 1, "1-G-2", "1-George-2"},
  2168. {69, -1, 1, "1-G-3", "1-George-3"},
  2169. {70, -1, 1, "1-G-4", "1-George-4"},
  2170. {71, -1, 1, "2-G-1", "2-George-1"},
  2171. {72, -1, 1, "2-G-2", "2-George-2"},
  2172. {73, -1, 1, "2-G-3", "2-George-3"},
  2173. {74, -1, 1, "2-G-4", "2-George-4"},
  2174. {75, -1, 1, "3-G-1", "3-George-1"},
  2175. {76, -1, 1, "3-G-2", "3-George-2"},
  2176. {77, -1, 1, "3-G-3", "3-George-3"},
  2177. {78, -1, 1, "3-G-4", "3-George-4"},
  2178. {79, -1, 1, "1-H-1", "1-Henry-1"},
  2179. {80, -1, 1, "1-H-2", "1-Henry-2"},
  2180. {81, -1, 1, "2-H-1", "2-Henry-1"},
  2181. {82, -1, 1, "2-H-2", "2-Henry-2"},
  2182. {83, -1, 1, "3-H-1", "3-Henry-1"},
  2183. {84, -1, 1, "3-H-2", "3-Henry-2"}
  2184. };
  2185. enum e_CompanyItems
  2186. {
  2187. // Type of company that offers this item.
  2188. e_CompanyType,
  2189. // Name of the product.
  2190. e_ItemName[32],
  2191. // Default price for this item.
  2192. e_DefaultPrice,
  2193. // Does this item have to be stocked before it can be bought?
  2194. bool:e_IsStockable
  2195. };
  2196. // List of all buyable items for each company.
  2197. new g_CompanyItems[][e_CompanyItems] =
  2198. {
  2199. {COMPANY_STORE, "Toolbox", 1500, true},
  2200. {COMPANY_STORE, "Stereo", 700, true},
  2201. {COMPANY_STORE, "Bandages", 500, true},
  2202. {COMPANY_STORE, "Medical Kit", 1000, true},
  2203. {COMPANY_STORE, "Notebook", 250, true},
  2204. {COMPANY_STORE, "Gasoline", 500, true},
  2205. {COMPANY_STORE, "Cigarettes", 200, true},
  2206. {COMPANY_STORE, "Screwdriver", 500, true},
  2207. {COMPANY_STORE, "Mask", 5000, true},
  2208. {COMPANY_STORE, "Beer", 50, true},
  2209. {COMPANY_STORE, "Wine", 70, true},
  2210. {COMPANY_STORE, "Baseball Bat", 300, true},
  2211. {COMPANY_STORE, "Spraycan", 200, true},
  2212. //{COMPANY_STORE, "Walkie Talkie", 50, true},
  2213. {COMPANY_STORE, "Portable Radio", 2500, true},
  2214. {COMPANY_STORE, "Camera", 1000, true},
  2215. {COMPANY_STORE, "SIM Card", 100, false},
  2216. {COMPANY_STORE, "Mobile Phone", 250, true},
  2217. {COMPANY_CLOTHES, "Glasses", 100, true},
  2218. {COMPANY_CLOTHES, "Bandanas", 100, true},
  2219. {COMPANY_CLOTHES, "Hats", 100, true},
  2220. {COMPANY_CLOTHES, "Bags", 150, true},
  2221. //{COMPANY_CLOTHES, "Chest", 500, true},
  2222. {COMPANY_GYM, "Membership", 2500, false},
  2223. {COMPANY_GYM, "Protein Shake", 500, true},
  2224. {COMPANY_PHONE, "SIM Card", 200, false},
  2225. {COMPANY_PHONE, "Mobile Phone", 350, true},
  2226. //{COMPANY_AMMO, "Kevlar Vest", 6000, true},
  2227. {COMPANY_AMMO, "Armor", 7500, true},
  2228. {COMPANY_AMMO, "Pepper Spray", 1250, true},
  2229. {COMPANY_AMMO, "Desert Eagle", 10000, true},
  2230. {COMPANY_AMMO, "Shotgun", 12000, true},
  2231. {COMPANY_AMMO, "Rifle", 15000, true},
  2232. {COMPANY_AMMO, "9x19mm Ammo", 1500, true},
  2233. {COMPANY_AMMO, ".50cal Ammo", 1500, true},
  2234. {COMPANY_AMMO, "12 Gauge Ammo", 1500, true},
  2235. {COMPANY_AMMO, "5.56x45mm Ammo", 1500, true},
  2236. {COMPANY_AMMO, "7.62x39mm Ammo", 1500, true},
  2237. {COMPANY_AMMO, "7.62x51mm Ammo", 1500, true},
  2238. {COMPANY_BAR, "Cigarette", 150, true},
  2239. {COMPANY_BAR, "Sprunk", 250, true},
  2240. {COMPANY_BAR, "Beer", 250, true},
  2241. {COMPANY_BAR, "Wine", 250, true}
  2242. };
  2243. new const g_CompanyTypes[][] = {
  2244. "Corner Store",
  2245. "Clothing Store",
  2246. "Restaurant",
  2247. "Car Rentals",
  2248. "Phone Company",
  2249. "Dealership",
  2250. "Gym",
  2251. "Ammunition",
  2252. "Bar"
  2253. };
  2254. new const g_FurnitureTypes[][] = {
  2255. "Kitchen",
  2256. "Tables",
  2257. "Chairs/Couches",
  2258. "Shelves",
  2259. "Bathroom",
  2260. "Bedroom",
  2261. "Cabinets",
  2262. "Electronics",
  2263. "Plants",
  2264. "Trashcans",
  2265. "Doors",
  2266. "Carpets",
  2267. "Frames",
  2268. "Miscellaneous",
  2269. "Wall",
  2270. "Special"
  2271. };
  2272. enum e_AccessoryList
  2273. {
  2274. e_AccessoryCategory,
  2275. e_AccessoryName[32],
  2276. e_AccessoryModel
  2277. };
  2278. new const g_AccessoryList[][e_AccessoryList] =
  2279. {
  2280. {ACCESSORY_GLASSES, "GlassesType1", 19006},
  2281. {ACCESSORY_GLASSES, "GlassesType2", 19007},
  2282. {ACCESSORY_GLASSES, "GlassesType3", 19008},
  2283. {ACCESSORY_GLASSES, "GlassesType4", 19009},
  2284. {ACCESSORY_GLASSES, "GlassesType5", 19010},
  2285. {ACCESSORY_GLASSES, "GlassesType6", 19011},
  2286. {ACCESSORY_GLASSES, "GlassesType7", 19012},
  2287. {ACCESSORY_GLASSES, "GlassesType8", 19013},
  2288. {ACCESSORY_GLASSES, "GlassesType9", 19014},
  2289. {ACCESSORY_GLASSES, "GlassesType10", 19015},
  2290. {ACCESSORY_GLASSES, "GlassesType11", 19016},
  2291. {ACCESSORY_GLASSES, "GlassesType12", 19017},
  2292. {ACCESSORY_GLASSES, "GlassesType13", 19018},
  2293. {ACCESSORY_GLASSES, "GlassesType14", 19019},
  2294. {ACCESSORY_GLASSES, "GlassesType15", 19020},
  2295. {ACCESSORY_GLASSES, "GlassesType16", 19021},
  2296. {ACCESSORY_GLASSES, "GlassesType17", 19022},
  2297. {ACCESSORY_GLASSES, "GlassesType18", 19023},
  2298. {ACCESSORY_GLASSES, "GlassesType19", 19024},
  2299. {ACCESSORY_GLASSES, "GlassesType20", 19025},
  2300. {ACCESSORY_GLASSES, "GlassesType21", 19026},
  2301. {ACCESSORY_GLASSES, "GlassesType22", 19027},
  2302. {ACCESSORY_GLASSES, "GlassesType23", 19028},
  2303. {ACCESSORY_GLASSES, "GlassesType24", 19029},
  2304. {ACCESSORY_GLASSES, "GlassesType25", 19030},
  2305. {ACCESSORY_GLASSES, "GlassesType26", 19031},
  2306. {ACCESSORY_GLASSES, "GlassesType27", 19032},
  2307. {ACCESSORY_GLASSES, "GlassesType28", 19033},
  2308. {ACCESSORY_GLASSES, "GlassesType29", 19034},
  2309. {ACCESSORY_GLASSES, "GlassesType30", 19035},
  2310. {ACCESSORY_BANDANAS, "Balaclava1", 19801},
  2311. {ACCESSORY_BANDANAS, "Mask1", 18911},
  2312. {ACCESSORY_BANDANAS, "Mask2", 18912},
  2313. {ACCESSORY_BANDANAS, "Mask3", 18913},
  2314. {ACCESSORY_BANDANAS, "Mask4", 18914},
  2315. {ACCESSORY_BANDANAS, "Mask5", 18915},
  2316. {ACCESSORY_BANDANAS, "Mask6", 18916},
  2317. {ACCESSORY_BANDANAS, "Mask7", 18917},
  2318. {ACCESSORY_BANDANAS, "Mask8", 18918},
  2319. {ACCESSORY_BANDANAS, "Mask9", 18919},
  2320. {ACCESSORY_BANDANAS, "Mask10", 18920},
  2321. {ACCESSORY_BANDANAS, "Bandana1", 18891},
  2322. {ACCESSORY_BANDANAS, "Bandana2", 18892},
  2323. {ACCESSORY_BANDANAS, "Bandana3", 18893},
  2324. {ACCESSORY_BANDANAS, "Bandana4", 18894},
  2325. {ACCESSORY_BANDANAS, "Bandana5", 18895},
  2326. {ACCESSORY_BANDANAS, "Bandana6", 18896},
  2327. {ACCESSORY_BANDANAS, "Bandana7", 18897},
  2328. {ACCESSORY_BANDANAS, "Bandana8", 18898},
  2329. {ACCESSORY_BANDANAS, "Bandana9", 18899},
  2330. {ACCESSORY_BANDANAS, "Bandana10", 18900},
  2331. {ACCESSORY_BANDANAS, "Bandana11", 18901},
  2332. {ACCESSORY_BANDANAS, "Bandana12", 18902},
  2333. {ACCESSORY_BANDANAS, "Bandana13", 18903},
  2334. {ACCESSORY_BANDANAS, "Bandana14", 18904},
  2335. {ACCESSORY_BANDANAS, "Bandana15", 18905},
  2336. {ACCESSORY_BANDANAS, "Bandana16", 18906},
  2337. {ACCESSORY_BANDANAS, "Bandana17", 18907},
  2338. {ACCESSORY_BANDANAS, "Bandana18", 18908},
  2339. {ACCESSORY_BANDANAS, "Bandana19", 18909},
  2340. {ACCESSORY_BANDANAS, "Bandana20", 18910},
  2341. {ACCESSORY_BANDANAS, "gasmask01", 19472},
  2342. {ACCESSORY_BANDANAS, "MaskZorro1", 18974},
  2343. {ACCESSORY_BANDANAS, "BDupsMask1", 11704},
  2344. {ACCESSORY_HATS, "HardHat1", 18638},
  2345. {ACCESSORY_HATS, "BlackHat1", 18639},
  2346. {ACCESSORY_HATS, "Hat1", 18926},
  2347. {ACCESSORY_HATS, "Hat2", 18927},
  2348. {ACCESSORY_HATS, "Hat3", 18928},
  2349. {ACCESSORY_HATS, "Hat4", 18929},
  2350. {ACCESSORY_HATS, "Hat5", 18930},
  2351. {ACCESSORY_HATS, "Hat6", 18931},
  2352. {ACCESSORY_HATS, "Hat7", 18932},
  2353. {ACCESSORY_HATS, "Hat8", 18933},
  2354. {ACCESSORY_HATS, "Hat9", 18934},
  2355. {ACCESSORY_HATS, "Hat10", 18935},
  2356. {ACCESSORY_HATS, "HatBoater1", 18944},
  2357. {ACCESSORY_HATS, "HatBoater2", 18945},
  2358. {ACCESSORY_HATS, "HatBoater3", 18946},
  2359. {ACCESSORY_HATS, "HatBowler1", 18947},
  2360. {ACCESSORY_HATS, "HatBowler2", 18948},
  2361. {ACCESSORY_HATS, "HatBowler3", 18949},
  2362. {ACCESSORY_HATS, "HatBowler4", 18950},
  2363. {ACCESSORY_HATS, "HatBowler5", 18951},
  2364. {ACCESSORY_HATS, "CowboyHat2", 18962},
  2365. {ACCESSORY_HATS, "HatMan1", 18967},
  2366. {ACCESSORY_HATS, "HatMan2", 18968},
  2367. {ACCESSORY_HATS, "HatMan3", 18969},
  2368. {ACCESSORY_HATS, "HatTiger1", 18970},
  2369. {ACCESSORY_HATS, "HatCool1", 18971},
  2370. {ACCESSORY_HATS, "HatCool2", 18972},
  2371. {ACCESSORY_HATS, "HatCool3", 18973},
  2372. {ACCESSORY_HATS, "SantaHat1", 19064},
  2373. {ACCESSORY_HATS, "SantaHat2", 19065},
  2374. {ACCESSORY_HATS, "SantaHat3", 19066},
  2375. {ACCESSORY_HATS, "HoodyHat1", 19067},
  2376. {ACCESSORY_HATS, "HoodyHat2", 19068},
  2377. {ACCESSORY_HATS, "HoodyHat3", 19069},
  2378. {ACCESSORY_HATS, "HardHat2", 19093},
  2379. {ACCESSORY_HATS, "BurgerShotHat1", 19094},
  2380. {ACCESSORY_HATS, "CowboyHat1", 19095},
  2381. {ACCESSORY_HATS, "CowboyHat3", 19096},
  2382. {ACCESSORY_HATS, "CowboyHat4", 19097},
  2383. {ACCESSORY_HATS, "CowboyHat5", 19098},
  2384. {ACCESSORY_HATS, "CluckinBellHat1", 19137},
  2385. {ACCESSORY_HATS, "HardHat3", 19160},
  2386. {ACCESSORY_BAGS, "Nike Bag", -2000},
  2387. {ACCESSORY_BAGS, "McDonalds Bag", -2001}
  2388. // {ACCESSORY_LEO, "GunHolster1", 19773},
  2389. // {ACCESSORY_LEO, "ConstructionVest1", 19160},
  2390. // {ACCESSORY_LEO, "SWATHelmet1", 19141},
  2391. // {ACCESSORY_LEO, "policeHat01", 19521},
  2392. // {ACCESSORY_LEO, "PoliceHat2", 19162},
  2393. // {ACCESSORY_LEO, "PoliceCap2", 19099},
  2394. // {ACCESSORY_LEO, "PoliceCap3", 19100} //maticalfinishwhenback
  2395. };
  2396. /*enum {
  2397. FURNITURE_FRIDGE,
  2398. FURNITURE_STOVE,
  2399. FURNITURE_TRASHCAN,
  2400. FURNITURE_BED,
  2401. FURNITURE_CHAIR,
  2402. FURNITURE_ARMCHAIR,
  2403. FURNITURE_COUCH,
  2404. FURNITURE_STOOL,
  2405. FURNITURE_CURTAIN,
  2406. FURNITURE_FLAG,
  2407. FURNITURE_RUG,
  2408. FURNITURE_STATUE,
  2409. FURNITURE_TOWEL,
  2410. FURNITURE_PAINTING,
  2411. FURNITURE_POSTER,
  2412. FURNITURE_PLANT,
  2413. FURNITURE_SPORT,
  2414. FURNITURE_TV,
  2415. FURNITURE_GAMING,
  2416. FURNITURE_MEDIA,
  2417. FURNITURE_LAMP,
  2418. FURNITURE_BATHROOM,
  2419. FURNITURE_STORAGE,
  2420. FURNITURE_DINETABLE,
  2421. FURNITURE_COFFEETABLE,
  2422. FURNITURE_COUNTER,
  2423. FURNITURE_CABINET,
  2424. FURNITURE_SHELF,
  2425. FURNITURE_MESS,
  2426. FURNITURE_MISC,
  2427. FURNITURE_OFFICE,
  2428. FURNITURE_PILLAR,
  2429. FURNITURE_DOOR,
  2430. FURNITURE_TOY,
  2431. FURNITURE_GAMBLE,
  2432. FURNITURE_TAG,
  2433. FURNITURE_PARTY,
  2434. FURNITURE_EFFECT,
  2435. FURNITURE_WALLDOORWAY,
  2436. FURNITURE_WALLWINDOW,
  2437. FURNITURE_WALLSHORT,
  2438. FURNITURE_WALLLONG,
  2439. FURNITURE_GLASS
  2440. };*/
  2441. /*new const g_FurnitureTypes[][] = {
  2442. "Refridgerators",
  2443. "Stoves",
  2444. "Trashcans",
  2445. "Beds",
  2446. "Chairs",
  2447. "Arm chairs",
  2448. "Couches",
  2449. "Stools",
  2450. "Curtains",
  2451. "Flags",
  2452. "Rugs",
  2453. "Statues",
  2454. "Towels",
  2455. "Paintings",
  2456. "Posters",
  2457. "Plants",
  2458. "Sport equipment",
  2459. "Televisions",
  2460. "Gaming equipment",
  2461. "Media",
  2462. "Lamp",
  2463. "Bathroom",
  2464. "Storage",
  2465. "Dining tables",
  2466. "Coffee tables",
  2467. "Counters",
  2468. "Cabinets",
  2469. "Shelves",
  2470. "Mess",
  2471. "Misc",
  2472. "Office",
  2473. "Pillars",
  2474. "Doors",
  2475. "Toys",
  2476. "Gambling",
  2477. "Gang tags",
  2478. "Party",
  2479. "Effects",
  2480. "Wall (Doorway)",
  2481. "Wall (Window)",
  2482. "Wall (Short)",
  2483. "Wall (Long)",
  2484. "Glass"
  2485. };*/
  2486. enum e_FurnitureList
  2487. {
  2488. e_ModelCategory,
  2489. e_ModelName[32],
  2490. e_ModelID,
  2491. e_ModelPrice
  2492. };
  2493. new const g_FurnitureList[][e_FurnitureList] =
  2494. {
  2495. {FURNITURE_KITCHEN, "CJ_KITCH1_FRIDGE", 2147, 2000},
  2496. {FURNITURE_KITCHEN, "CJ_KITCH1_COOKER", 2170, 1000},
  2497. {FURNITURE_KITCHEN, "CJ_KITCH1_SINK", 2336, 550},
  2498. {FURNITURE_KITCHEN, "CJ_KITCH1_WASHER", 2337, 400},
  2499. {FURNITURE_KITCHEN, "CJ_KITCH1_L", 2158, 550},
  2500. {FURNITURE_KITCHEN, "CJ_KITCH1_M", 2334, 550},
  2501. {FURNITURE_KITCHEN, "CJ_KITCH1_R", 2335, 550},
  2502. {FURNITURE_KITCHEN, "CJ_KITCH1_CORNER", 2338, 550},
  2503. {FURNITURE_KITCHEN, "CJ_KITCH2_FRIDGE", 2131, 450},
  2504. {FURNITURE_KITCHEN, "CJ_KITCH2_SINK", 2132, 550},
  2505. {FURNITURE_KITCHEN, "CJ_KITCH2_COOKER", 2339, 1000},
  2506. {FURNITURE_KITCHEN, "CJ_KITCH2_WASHER", 2340, 400},
  2507. {FURNITURE_KITCHEN, "CJ_KITCH2_L", 2141, 1000},
  2508. {FURNITURE_KITCHEN, "CJ_KITCH2_M", 2134, 1000},
  2509. {FURNITURE_KITCHEN, "CJ_KITCH2_R", 2133, 1000},
  2510. {FURNITURE_KITCHEN, "CJ_KITCH2_CORNER", 2341, 550},
  2511. {FURNITURE_KITCHEN, "CJ_K3_COOKER", 2135, 2000},
  2512. {FURNITURE_KITCHEN, "CJ_K3_SINK", 2136, 450},
  2513. {FURNITURE_KITCHEN, "CJ_K3_LOW_UNIT1", 2138, 1000},
  2514. {FURNITURE_KITCHEN, "CJ_K3_LOW_UNIT2", 2139, 1000},
  2515. {FURNITURE_KITCHEN, "CJ_K3_LOW_UNIT3", 2137, 1000},
  2516. {FURNITURE_KITCHEN, "CJ_K3_TALL_UNIT1", 2140, 400},
  2517. {FURNITURE_KITCHEN, "CJ_K3_C_UNIT", 2305, 400},
  2518. {FURNITURE_KITCHEN, "CJ_K3_WASH_MAC", 2303, 550},
  2519. {FURNITURE_KITCHEN, "CJ_K3_UNIT06", 2145, 450},
  2520. {FURNITURE_KITCHEN, "CJ_K1_FRIDGE_UNIT", 2127, 400},
  2521. {FURNITURE_KITCHEN, "CJ_K1_SINK", 2130, 1000},
  2522. {FURNITURE_KITCHEN, "CJ_K1_TALL_UNIT", 2128, 1000},
  2523. {FURNITURE_KITCHEN, "CJ_K1_LOW_UNIT", 2129, 550},
  2524. {FURNITURE_KITCHEN, "CJ_K1_LOW_CORNER", 2304, 550},
  2525. {FURNITURE_KITCHEN, "CJ_THIN_FRIGE", 1780, 550},
  2526. {FURNITURE_KITCHEN, "CJ_FF_CONTER_5", 2446, 600},
  2527. {FURNITURE_KITCHEN, "CJ_FF_CONTER_5c", 2447, 600},
  2528. {FURNITURE_KITCHEN, "CJ_FF_CONTER_5d", 2448, 600},
  2529. {FURNITURE_KITCHEN, "CJ_FF_CONTER_5e", 2449, 2000},
  2530. {FURNITURE_KITCHEN, "CJ_FF_CONTER_5b", 2450, 450},
  2531. {FURNITURE_KITCHEN, "CJ_FF_CONTER_8b", 2454, 400},
  2532. {FURNITURE_KITCHEN, "CJ_FF_CONTER_8c", 2457, 400},
  2533. {FURNITURE_KITCHEN, "CJ_FF_COFFEE", 2500, 250},
  2534. {FURNITURE_KITCHEN, "CJ_FF_FRYER", 2415, 550},
  2535. {FURNITURE_KITCHEN, "CJ_FF_COOKER", 2417, 550},
  2536. {FURNITURE_KITCHEN, "CJ_FF_MICROW", 2421, 250},
  2537. {FURNITURE_KITCHEN, "CJ_MICROWAVE1", 2149, 800},
  2538. {FURNITURE_KITCHEN, "CJ_FF_PIZZA_OVEN", 2426, 1500},
  2539. {FURNITURE_KITCHEN, "CJ_FF_FRIDGE2", 2452, 400},
  2540. {FURNITURE_KITCHEN, "CJ_FF_DISP", 2416, 9000},
  2541. {FURNITURE_KITCHEN, "CJ_FF_JUICE_L", 2427, 550},
  2542. {FURNITURE_KITCHEN, "CJ_FF_CUP_DISP", 2429, 2000},
  2543. {FURNITURE_KITCHEN, "CJ_OFF2_LIC_2_R", 2530, 550},
  2544. {FURNITURE_KITCHEN, "CJ_OFF2_LIC_1_R", 2532, 550},
  2545. {FURNITURE_KITCHEN, "MarcosFryingPan1", 19581, 500},
  2546. {FURNITURE_KITCHEN, "MarcosSteak1", 19582, 500},
  2547. {FURNITURE_KITCHEN, "MarcosKnife1", 19583, 500},
  2548. {FURNITURE_KITCHEN, "MarcosSaucepan1", 19584, 500},
  2549. {FURNITURE_KITCHEN, "MarcosPan1", 19585, 500},
  2550. {FURNITURE_KITCHEN, "MarcosSpatula1", 19586, 500},
  2551. {FURNITURE_TABLES, "parktable1", 1281, 600},
  2552. {FURNITURE_TABLES, "DYN_TABLE_1", 1433, 600},
  2553. {FURNITURE_TABLES, "DYN_TABLE_2", 1432, 7500},
  2554. {FURNITURE_TABLES, "craps_table", 1824, 9000},
  2555. {FURNITURE_TABLES, "wheel_table", 1896, 6500},
  2556. {FURNITURE_TABLES, "k_pooltablesm", 2964, 2000},
  2557. {FURNITURE_TABLES, "pokertable01", 19474, 400},
  2558. {FURNITURE_TABLES, "officedesk1l", 1998, 2000},
  2559. {FURNITURE_TABLES, "officedesk2", 1999, 400},
  2560. {FURNITURE_TABLES, "officedesk1", 2008, 4500},
  2561. {FURNITURE_TABLES, "officedesk2l", 2009, 2000},
  2562. {FURNITURE_TABLES, "MED_OFFICE_DESK_1", 2165, 400},
  2563. {FURNITURE_TABLES, "MED_OFFICE_DESK_2", 2166, 4500},
  2564. {FURNITURE_TABLES, "MED_OFFICE_DESK_3", 2173, 400},
  2565. {FURNITURE_TABLES, "MED_OFFICE2_DESK_1", 2172, 400},
  2566. {FURNITURE_TABLES, "MED_OFFICE3_DESK_1", 2169, 1000},
  2567. {FURNITURE_TABLES, "MED_OFFICE4_DESK_1", 2171, 4500},
  2568. {FURNITURE_TABLES, "MED_OFFICE4_DESK_2", 2174, 400},
  2569. {FURNITURE_TABLES, "MED_OFFICE4_DESK_3", 2175, 400},
  2570. {FURNITURE_TABLES, "MED_OFFICE5_DESK_3", 2180, 2500},
  2571. {FURNITURE_TABLES, "MED_OFFICE5_DESK_2", 2181, 550},
  2572. {FURNITURE_TABLES, "MED_OFFICE5_DESK_1", 2182, 400},
  2573. {FURNITURE_TABLES, "MED_OFFICE3_DESK_09", 2183, 6000},
  2574. {FURNITURE_TABLES, "MED_OFFICE6_DESK_2", 2184, 6500},
  2575. {FURNITURE_TABLES, "MED_OFFICE6_DESK_1", 2185, 2000},
  2576. {FURNITURE_TABLES, "MED_OFFICE2_DESK_2", 2193, 7000},
  2577. {FURNITURE_TABLES, "MED_OFFICE2_DESK_3", 2198, 2000},
  2578. {FURNITURE_TABLES, "MED_OFFICE8_DESK_1", 2205, 550},
  2579. {FURNITURE_TABLES, "MED_OFFICE8_DESK_02", 2206, 2500},
  2580. {FURNITURE_TABLES, "MED_OFFICE7_DESK_1", 2207, 550},
  2581. {FURNITURE_TABLES, "MED_OFFICE9_DESK_1", 2209, 5500},
  2582. {FURNITURE_TABLES, "MED_OFFICE4_DESK_4", 2308, 6000},
  2583. {FURNITURE_TABLES, "CJ_FF_WORKTOP", 2418, 400},
  2584. {FURNITURE_TABLES, "CJ_FF_WORKTOP_2", 2419, 400},
  2585. {FURNITURE_TABLES, "CJ_FF_WORKTOP_3", 2451, 2000},
  2586. {FURNITURE_TABLES, "CJ_DF_WORKTOP_2", 936, 1000},
  2587. {FURNITURE_TABLES, "CJ_DF_WORKTOP", 937, 400},
  2588. {FURNITURE_TABLES, "CJ_DF_WORKTOP_3", 941, 1000},
  2589. {FURNITURE_TABLES, "CJ_TV_TABLE2", 2311, 2000},
  2590. {FURNITURE_TABLES, "CJ_TV_TABLE1", 2313, 2500},
  2591. {FURNITURE_TABLES, "CJ_TV_TABLE3", 2314, 550},
  2592. {FURNITURE_TABLES, "CJ_TV_TABLE4", 2315, 550},
  2593. {FURNITURE_TABLES, "CJ_TV_TABLE5", 2319, 2500},
  2594. {FURNITURE_TABLES, "CJ_TV_TABLE6", 2321, 2000},
  2595. {FURNITURE_TABLES, "CJ_HIFI_TABLE", 2346, 2500},
  2596. {FURNITURE_TABLES, "Shop_set_1_Table", 2370, 1000},
  2597. {FURNITURE_TABLES, "POLCE_DESK1", 2605, 1500},
  2598. {FURNITURE_TABLES, "POLCE_DESK2", 2607, 2000},
  2599. {FURNITURE_TABLES, "CJ_PIZZA_TABLE", 2635, 2500},
  2600. {FURNITURE_TABLES, "CJ_PIZZA_TABLE2", 2637, 2500},
  2601. {FURNITURE_TABLES, "CJ_BURG_TABLE", 2644, 2500},
  2602. {FURNITURE_TABLES, "CJ_donut_TABLE", 2747, 2000},
  2603. {FURNITURE_TABLES, "CJ_CHICK_TABLE", 2762, 2000},
  2604. {FURNITURE_TABLES, "CJ_CHICK_TABLE_2", 2763, 2000},
  2605. {FURNITURE_TABLES, "CJ_PIZZA_TABLE03", 2764, 2500},
  2606. {FURNITURE_TABLES, "MED_DINNING_6", 2119, 2500},
  2607. {FURNITURE_TABLES, "SWANK_DINNING_6", 2118, 2000},
  2608. {FURNITURE_TABLES, "SWANK_DINNING_5", 2117, 2500},
  2609. {FURNITURE_TABLES, "LOW_DINNING_6", 2116, 1500},
  2610. {FURNITURE_TABLES, "LOW_DINNING_1", 2115, 1500},
  2611. {FURNITURE_TABLES, "castable1", 2802, 400},
  2612. {FURNITURE_TABLES, "a51_labtable1_", 3383, 2000},
  2613. {FURNITURE_CHAIRS, "Stonebench1", 1256, 2000},
  2614. {FURNITURE_CHAIRS, "parkbench1", 1280, 2500},
  2615. {FURNITURE_CHAIRS, "CJ_BLOCKER_BENCH", 1368, 2500},
  2616. {FURNITURE_CHAIRS, "swivelchair_B", 1663, 1500},
  2617. {FURNITURE_CHAIRS, "swivelchair_A", 1671, 1500},
  2618. {FURNITURE_CHAIRS, "kb_swivelchair1", 1714, 1500},
  2619. {FURNITURE_CHAIRS, "kb_swivelchair2", 1715, 1500},
  2620. {FURNITURE_CHAIRS, "kb_slot_stool", 1716, 1000},
  2621. {FURNITURE_CHAIRS, "est_chair1", 1721, 1000},
  2622. {FURNITURE_CHAIRS, "kb_chair03", 1704, 2000},
  2623. {FURNITURE_CHAIRS, "kb_chair04", 1705, 2000},
  2624. {FURNITURE_CHAIRS, "kb_chair02", 1708, 2000},
  2625. {FURNITURE_CHAIRS, "kb_chair01", 1711, 2000},
  2626. {FURNITURE_CHAIRS, "mrk_seating1", 1723, 550},
  2627. {FURNITURE_CHAIRS, "mrk_seating1b", 1724, 200},
  2628. {FURNITURE_CHAIRS, "mrk_seating2", 1726, 550},
  2629. {FURNITURE_CHAIRS, "mrk_seating2b", 1727, 2000},
  2630. {FURNITURE_CHAIRS, "mrk_seating3", 1728, 1000},
  2631. {FURNITURE_CHAIRS, "mrk_seating3b", 1729, 2500},
  2632. {FURNITURE_CHAIRS, "CJ_EASYCHAIR1", 1735, 2000},
  2633. {FURNITURE_CHAIRS, "SWANK_DIN_CHAIR_5", 1739, 1000},
  2634. {FURNITURE_CHAIRS, "SWANK_1_FootStool", 1746, 500},
  2635. {FURNITURE_CHAIRS, "CJ_BARSTOOL", 1805, 1000},
  2636. {FURNITURE_CHAIRS, "MED_OFFICE_CHAIR", 1806, 2500},
  2637. {FURNITURE_CHAIRS, "CJ_FOLDCHAIR", 1810, 500},
  2638. {FURNITURE_CHAIRS, "MED_DIN_CHAIR_5", 1811, 1500},
  2639. {FURNITURE_CHAIRS, "SWANK_DIN_CHAIR_2", 2079, 1000},
  2640. {FURNITURE_CHAIRS, "MED_DIN_CHAIR_4", 2120, 1500},
  2641. {FURNITURE_CHAIRS, "LOW_DIN_CHAIR_2", 2121, 500},
  2642. {FURNITURE_CHAIRS, "SWANK_DIN_CHAIR_4", 2123, 1000},
  2643. {FURNITURE_CHAIRS, "SWANK_DIN_CHAIR_1", 2124, 1500},
  2644. {FURNITURE_CHAIRS, "MED_DIN_CHAIR_1", 2125, 500},
  2645. {FURNITURE_CHAIRS, "MED_OFFICE_CHAIR2", 2309, 1000},
  2646. {FURNITURE_CHAIRS, "CJ_PIZZA_CHAIR2", 2638, 400},
  2647. {FURNITURE_CHAIRS, "CJ_PIZZA_CHAIR3", 2639, 550},
  2648. {FURNITURE_CHAIRS, "LEE_stripCHAIR2", 2776, 1000},
  2649. {FURNITURE_CHAIRS, "CJ_BURG_CHAIR", 2788, 1000},
  2650. {FURNITURE_CHAIRS, "SWK_COUCH_1", 2290, 400},
  2651. {FURNITURE_CHAIRS, "LOW_COUCH_3", 1768, 400},
  2652. {FURNITURE_CHAIRS, "MED_COUCH_1", 1766, 400},
  2653. {FURNITURE_CHAIRS, "LOW_COUCH_2", 1764, 400},
  2654. {FURNITURE_CHAIRS, "LOW_COUCH_1", 1763, 400},
  2655. {FURNITURE_CHAIRS, "SWANK_COUCH_2", 1761, 400},
  2656. {FURNITURE_CHAIRS, "MED_COUCH_2", 1760, 400},
  2657. {FURNITURE_CHAIRS, "LOW_COUCH_5", 1757, 400},
  2658. {FURNITURE_CHAIRS, "LOW_COUCH_4", 1756, 400},
  2659. {FURNITURE_CHAIRS, "SWANK_COUCH_1", 1753, 2000},
  2660. {FURNITURE_CHAIRS, "kb_couch04", 1713, 400},
  2661. {FURNITURE_CHAIRS, "kb_couch05", 1712, 400},
  2662. {FURNITURE_CHAIRS, "kb_couch07", 1710, 6000},
  2663. {FURNITURE_CHAIRS, "kb_couch08", 1709, 8000},
  2664. {FURNITURE_CHAIRS, "kb_couch01", 1707, 400},
  2665. {FURNITURE_CHAIRS, "kb_couch03", 1706, 400},
  2666. {FURNITURE_CHAIRS, "kb_couch02", 1703, 400},
  2667. {FURNITURE_CHAIRS, "kb_couch06", 1702, 400},
  2668. {FURNITURE_SHELVES, "CJ_BEDROOM1", 2323, 2000},
  2669. {FURNITURE_SHELVES, "CJ_BEDROOM1_W", 2330, 6000},
  2670. {FURNITURE_SHELVES, "mrk_wrobe_tmp", 2025, 5500},
  2671. {FURNITURE_SHELVES, "MED_SHELF", 1744, 1500},
  2672. {FURNITURE_SHELVES, "DYN_CUPBOARD", 1417, 1000},
  2673. {FURNITURE_SHELVES, "MED_OFFICE_UNIT_4", 2161, 400},
  2674. {FURNITURE_SHELVES, "MED_OFFICE_UNIT_1", 2162, 400},
  2675. {FURNITURE_SHELVES, "MED_OFFICE_UNIT_2", 2163, 4500},
  2676. {FURNITURE_SHELVES, "MED_OFFICE_UNIT_5", 2164, 400},
  2677. {FURNITURE_SHELVES, "MED_OFFICE_UNIT_7", 2167, 400},
  2678. {FURNITURE_SHELVES, "MED_OFFICE6_MC_1", 2199, 2500},
  2679. {FURNITURE_SHELVES, "CJ_HOBBY_SHELF", 2462, 550},
  2680. {FURNITURE_SHELVES, "CJ_HOBBY_SHELF_2", 2463, 550},
  2681. {FURNITURE_SHELVES, "CJ_HOBBY_SHELF_3", 2475, 1000},
  2682. {FURNITURE_SHELVES, "CJ_HOBBY_SHELF_4", 2482, 400},
  2683. {FURNITURE_SHELVES, "CJ_HOBBY_SHELF_5", 2502, 550},
  2684. {FURNITURE_SHELVES, "CJ_HOBBY_SHELF_6", 2509, 550},
  2685. {FURNITURE_SHELVES, "Med_BOOKSHELF", 1742, 2500},
  2686. {FURNITURE_SHELVES, "CJ_M_FILEING1", 2065, 1000},
  2687. {FURNITURE_SHELVES, "CJ_M_FILEING2", 2066, 1000},
  2688. {FURNITURE_SHELVES, "CJ_M_FILEING3", 2067, 1000},
  2689. {FURNITURE_BATHROOM, "CJ_TOILET_BS", 2738, 2000},
  2690. {FURNITURE_BATHROOM, "CJ_TOILET1", 2514, 2000},
  2691. {FURNITURE_BATHROOM, "CJ_TOILET2", 2521, 2500},
  2692. {FURNITURE_BATHROOM, "CJ_TOILET3", 2528, 2000},
  2693. {FURNITURE_BATHROOM, "CJ_TOILET4", 2525, 550},
  2694. {FURNITURE_BATHROOM, "CJ_SHOWER1", 2517, 1000},
  2695. {FURNITURE_BATHROOM, "CJ_SHOWER2", 2520, 550},
  2696. {FURNITURE_BATHROOM, "CJ_SHOWER4", 2527, 550},
  2697. {FURNITURE_BATHROOM, "CJ_BATH1", 2516, 550},
  2698. {FURNITURE_BATHROOM, "CJ_BATH2", 2519, 2500},
  2699. {FURNITURE_BATHROOM, "CJ_BATH3", 2522, 400},
  2700. {FURNITURE_BATHROOM, "CJ_BATH4", 2526, 550},
  2701. {FURNITURE_BATHROOM, "CJ_BATH5", 2097, 2000},
  2702. {FURNITURE_BATHROOM, "CJ_B_SINK1", 2739, 2000},
  2703. {FURNITURE_BATHROOM, "CJ_B_SINK2", 2518, 2000},
  2704. {FURNITURE_BATHROOM, "CJ_B_SINK3", 2523, 550},
  2705. {FURNITURE_BATHROOM, "CJ_B_SINK4", 2524, 2500},
  2706. {FURNITURE_BEDROOM, "kb_bed_test1", 1700, 550},
  2707. {FURNITURE_BEDROOM, "kb_bed_test2", 1701, 550},
  2708. {FURNITURE_BEDROOM, "MED_BED_3", 1745, 550},
  2709. {FURNITURE_BEDROOM, "LOW_BED_2", 1793, 550},
  2710. {FURNITURE_BEDROOM, "LOW_BED_3", 1794, 550},
  2711. {FURNITURE_BEDROOM, "SWANK_BED_2", 1795, 550},
  2712. {FURNITURE_BEDROOM, "LOW_BED_4", 1796, 550},
  2713. {FURNITURE_BEDROOM, "SWANK_BED_3", 1797, 550},
  2714. {FURNITURE_BEDROOM, "SWANK_BED_1", 1798, 550},
  2715. {FURNITURE_BEDROOM, "MED_BED_4", 1799, 550},
  2716. {FURNITURE_BEDROOM, "LOW_BED_1", 1800, 550},
  2717. {FURNITURE_BEDROOM, "SWANK_BED_4", 1801, 550},
  2718. {FURNITURE_BEDROOM, "MED_BED_2", 1802, 550},
  2719. {FURNITURE_BEDROOM, "LOW_BED_5", 1812, 550},
  2720. {FURNITURE_BEDROOM, "SWANK_BED_5", 2090, 550},
  2721. {FURNITURE_BEDROOM, "SWANK_BED_7", 2298, 550},
  2722. {FURNITURE_BEDROOM, "SWANK_BED_6", 2299, 550},
  2723. {FURNITURE_BEDROOM, "MED_BED_8", 2300, 550},
  2724. {FURNITURE_BEDROOM, "MED_BED_9", 2301, 550},
  2725. {FURNITURE_BEDROOM, "LOW_BED_06", 2302, 550},
  2726. {FURNITURE_CABINETS, "SWANK_CABINET_3", 1730, 550},
  2727. {FURNITURE_CABINETS, "LOW_CABINET_3", 1740, 1000},
  2728. {FURNITURE_CABINETS, "LOW_CABINET_1", 1741, 1000},
  2729. {FURNITURE_CABINETS, "MED_CABINET_3", 1743, 550},
  2730. {FURNITURE_CABINETS, "SWANK_CABINET_1", 2078, 550},
  2731. {FURNITURE_CABINETS, "MED_CABINET_1", 2084, 2000},
  2732. {FURNITURE_CABINETS, "MED_CABINET_2", 2087, 2500},
  2733. {FURNITURE_CABINETS, "LOW_CABINET_4", 2088, 550},
  2734. {FURNITURE_CABINETS, "SWANK_CABINET_2", 2089, 400},
  2735. {FURNITURE_CABINETS, "SWANK_CABINET_4", 2094, 1000},
  2736. {FURNITURE_CABINETS, "LOW_CABINET_2", 2095, 550},
  2737. {FURNITURE_CABINETS, "MED_OFFICE8_CABINET", 2204, 1000},
  2738. {FURNITURE_CABINETS, "SWANK_CABINET_4D", 2306, 550},
  2739. {FURNITURE_CABINETS, "SWANK_CABINET_4b", 2307, 550},
  2740. {FURNITURE_CABINETS, "LOW_CABINET_1_S", 2328, 550},
  2741. {FURNITURE_CABINETS, "LOW_CABINET_1_L", 2329, 400},
  2742. {FURNITURE_CABINETS, "ZEROWARDROBE", 14556, 2000},
  2743. {FURNITURE_ELECTRIC, "LCDTVBig1", 19786, 10000},
  2744. {FURNITURE_ELECTRIC, "LCDTV1", 19787, 8000},
  2745. {FURNITURE_ELECTRIC, "Telephone1", 19807, 500},
  2746. {FURNITURE_ELECTRIC, "Keyboard1", 19808, 500},
  2747. {FURNITURE_ELECTRIC, "TV_WARD_Low", 2093, 6000},
  2748. {FURNITURE_ELECTRIC, "TV_UNIT_1", 2296, 5500},
  2749. {FURNITURE_ELECTRIC, "TV_UNIT_1", 2297, 2000},
  2750. {FURNITURE_ELECTRIC, "tv_stand_driv", 14532, 550},
  2751. {FURNITURE_ELECTRIC, "DYN_TV", 1429, 550},
  2752. {FURNITURE_ELECTRIC, "LOW_TV_2", 1747, 550},
  2753. {FURNITURE_ELECTRIC, "LOW_TV_3", 1748, 550},
  2754. {FURNITURE_ELECTRIC, "MED_TV_3", 1749, 550},
  2755. {FURNITURE_ELECTRIC, "MED_TV_2", 1750, 550},
  2756. {FURNITURE_ELECTRIC, "MED_TV_4", 1751, 550},
  2757. {FURNITURE_ELECTRIC, "SWANK_TV_3", 1752, 550},
  2758. {FURNITURE_ELECTRIC, "SWANK_TV_4", 1786, 550},
  2759. {FURNITURE_ELECTRIC, "CJ_Sphere_TV", 2224, 550},
  2760. {FURNITURE_ELECTRIC, "PHOTOCOPIER_1", 2186, 2000},
  2761. {FURNITURE_ELECTRIC, "PHOTOCOPIER_2", 2202, 4500},
  2762. {FURNITURE_ELECTRIC, "DYN_FF_TILL", 1514, 400},
  2763. {FURNITURE_ELECTRIC, "CJ_FF_TILL", 2422, 4500},
  2764. {FURNITURE_ELECTRIC, "PC_1", 2190, 550},
  2765. {FURNITURE_ELECTRIC, "CJ_WATERCOOLER2", 1808, 400},
  2766. {FURNITURE_ELECTRIC, "water_coolnu", 2002, 1000},
  2767. {FURNITURE_ELECTRIC, "washer", 1208, 550},
  2768. {FURNITURE_ELECTRIC, "DYN_BAR_B_Q", 1481, 400},
  2769. {FURNITURE_ELECTRIC, "gym_treadmill", 2627, 12000},
  2770. {FURNITURE_ELECTRIC, "gym_bench2", 2628, 400},
  2771. {FURNITURE_ELECTRIC, "gym_bench1", 2629, 400},
  2772. {FURNITURE_ELECTRIC, "gym_bike", 2630, 400},
  2773. {FURNITURE_ELECTRIC, "snesish", 1718, 2000},
  2774. {FURNITURE_ELECTRIC, "LOW_CONSOLE", 1719, 2000},
  2775. {FURNITURE_ELECTRIC, "SWANK_CONSOLE", 2028, 550},
  2776. {FURNITURE_ELECTRIC, "MED_VIDEO_2", 1782, 1000},
  2777. {FURNITURE_ELECTRIC, "SWANK_VIDEO_2", 1783, 1000},
  2778. {FURNITURE_ELECTRIC, "LOW_VIDEO_1", 1785, 1000},
  2779. {FURNITURE_ELECTRIC, "SWANK_VIDEO_1", 1788, 1000},
  2780. {FURNITURE_ELECTRIC, "SWANK_VIDEO_3", 1790, 1000},
  2781. {FURNITURE_ELECTRIC, "LOW_HI_FI_2", 2102, 550},
  2782. {FURNITURE_ELECTRIC, "LOW_HI_FI_1", 2103, 550},
  2783. {FURNITURE_ELECTRIC, "LOW_HI_FI_3", 2226, 2500},
  2784. {FURNITURE_ELECTRIC, "MED_HI_FI_1", 2099, 400},
  2785. {FURNITURE_ELECTRIC, "MED_HI_FI_2", 2100, 400},
  2786. {FURNITURE_ELECTRIC, "MED_HI_FI_3", 2101, 400},
  2787. {FURNITURE_ELECTRIC, "SWANK_SPEAKER", 2229, 4500},
  2788. {FURNITURE_ELECTRIC, "SWANK_SPEAKER_2", 2230, 400},
  2789. {FURNITURE_ELECTRIC, "SWANK_SPEAKER_3", 2231, 400},
  2790. {FURNITURE_ELECTRIC, "MED_SPEAKER_4", 2232, 400},
  2791. {FURNITURE_PLANTS, "veg_palmkb1", 625, 2000},
  2792. {FURNITURE_PLANTS, "veg_palmkb2", 626, 2000},
  2793. {FURNITURE_PLANTS, "veg_palmkb3", 627, 2000},
  2794. {FURNITURE_PLANTS, "veg_palmkb4", 628, 2000},
  2795. {FURNITURE_PLANTS, "veg_palmkb8", 630, 2000},
  2796. {FURNITURE_PLANTS, "veg_palmkb9", 631, 2000},
  2797. {FURNITURE_PLANTS, "veg_palmkb7", 632, 2000},
  2798. {FURNITURE_PLANTS, "veg_palmkb10", 633, 2000},
  2799. {FURNITURE_PLANTS, "kb_planter+bush", 638, 2000},
  2800. {FURNITURE_PLANTS, "pot_02", 644, 2000},
  2801. {FURNITURE_PLANTS, "veg_palmkb14", 646, 2000},
  2802. {FURNITURE_PLANTS, "Plant_Pot_10", 948, 2000},
  2803. {FURNITURE_PLANTS, "Plant_Pot_4", 949, 2000},
  2804. {FURNITURE_PLANTS, "Plant_Pot_12", 950, 2000},
  2805. {FURNITURE_PLANTS, "CJ_BUSH_PROP3", 1360, 2000},
  2806. {FURNITURE_PLANTS, "CJ_BUSH_PROP2", 1361, 2000},
  2807. {FURNITURE_PLANTS, "CJ_BUSH_PROP", 1364, 2000},
  2808. {FURNITURE_PLANTS, "nu_plant_ofc", 2001, 200},
  2809. {FURNITURE_PLANTS, "nu_plant3_ofc", 2010, 200},
  2810. {FURNITURE_PLANTS, "nu_plant2_ofc", 2011, 200},
  2811. {FURNITURE_PLANTS, "Plant_Pot_2", 2194, 200},
  2812. {FURNITURE_PLANTS, "Plant_Pot_3", 2195, 200},
  2813. {FURNITURE_PLANTS, "Plant_Pot_1", 2203, 100},
  2814. {FURNITURE_PLANTS, "Plant_Pot_8", 2240, 500},
  2815. {FURNITURE_PLANTS, "Plant_Pot_5", 2241, 200},
  2816. {FURNITURE_PLANTS, "Plant_Pot_7", 2242, 200},
  2817. {FURNITURE_PLANTS, "Plant_Pot_9", 2244, 200},
  2818. {FURNITURE_PLANTS, "Plant_Pot_11", 2245, 200},
  2819. {FURNITURE_PLANTS, "Plant_Pot_14", 2246, 200},
  2820. {FURNITURE_PLANTS, "Plant_Pot_16", 2248, 200},
  2821. {FURNITURE_PLANTS, "Plant_Pot_21", 2252, 200},
  2822. {FURNITURE_PLANTS, "Plant_Pot_22", 2253, 2000},
  2823. {FURNITURE_PLANTS, "GB_romanpot01", 2811, 2000},
  2824. {FURNITURE_PLANTS, "sfx_plant03", 3802, 2000},
  2825. {FURNITURE_PLANTS, "sfx_winplant07", 3806, 2000},
  2826. {FURNITURE_PLANTS, "sfx_plant04", 3810, 2000},
  2827. {FURNITURE_TRASH, "CJ_Dump1_LOW01", 1430, 1500},
  2828. {FURNITURE_TRASH, "DYN_DUMPSTER", 1415, 1000},
  2829. {FURNITURE_TRASH, "CJ_HIPPO_BIN", 1371, 2000},
  2830. {FURNITURE_TRASH, "CJ_BIN1", 1359, 1500},
  2831. {FURNITURE_TRASH, "CJ_WASTEBIN", 1347, 500},
  2832. {FURNITURE_TRASH, "BinNt09_LA", 1339, 1500},
  2833. {FURNITURE_TRASH, "BinNt07_LA", 1337, 1500},
  2834. {FURNITURE_TRASH, "bin1", 1300, 1500},
  2835. {FURNITURE_TRASH, "wastebin", 1235, 1000},
  2836. {FURNITURE_TRASH, "BinNt14_LA", 1330, 1000},
  2837. {FURNITURE_TRASH, "BinNt13_LA", 1329, 1000},
  2838. {FURNITURE_TRASH, "BinNt10_LA", 1328, 1500},
  2839. {FURNITURE_TRASH, "dump1", 1227, 400},
  2840. {FURNITURE_TRASH, "BinNt06_LA", 1336, 2000},
  2841. {FURNITURE_TRASH, "BinNt04_LA", 1334, 2000},
  2842. {FURNITURE_TRASH, "BinNt03_LA", 1333, 2000},
  2843. {FURNITURE_TRASH, "TrashcanChicken", 2770, 2000},
  2844. {FURNITURE_TRASH, "CJ_FF_BUCKET", 2420, 2000},
  2845. {FURNITURE_TRASH, "gunbox", 1271, 400},
  2846. {FURNITURE_TRASH, "k_smashboxes", 2971, 550},
  2847. {FURNITURE_TRASH, "temp_cardbox", 2900, 500},
  2848. {FURNITURE_TRASH, "cardboardbox4", 1221, 500},
  2849. {FURNITURE_TRASH, "cardboardbox2", 1220, 500},
  2850. {FURNITURE_DOORS, "GenDoorINT04Static", 19802, 1000},
  2851. {FURNITURE_DOORS, "Gen_doorEXT03", 1498, 1600},
  2852. {FURNITURE_DOORS, "chinaTgate", 2930, 1400},
  2853. {FURNITURE_DOORS, "kmb_petroldoor", 2911, 1600},
  2854. {FURNITURE_DOORS, "ad_flatdoor", 3061, 500},
  2855. {FURNITURE_DOORS, "Gen_wardrobe", 1567, 600},
  2856. {FURNITURE_DOORS, "Gen_doorINT01", 1491, 400},
  2857. {FURNITURE_DOORS, "Gen_doorINT02", 1492, 400},
  2858. {FURNITURE_DOORS, "Gen_doorSHOP01", 1493, 400},
  2859. {FURNITURE_DOORS, "Gen_doorINT03", 1494, 400},
  2860. {FURNITURE_DOORS, "Gen_doorEXT01", 1495, 400},
  2861. {FURNITURE_DOORS, "Gen_doorSHOP02", 1496, 400},
  2862. {FURNITURE_DOORS, "Gen_doorEXT02", 1497, 400},
  2863. {FURNITURE_DOORS, "Gen_doorEXT03", 1498, 400},
  2864. {FURNITURE_DOORS, "Gen_doorINT05", 1499, 400},
  2865. {FURNITURE_DOORS, "Gen_doorEXT05", 1500, 400},
  2866. {FURNITURE_DOORS, "Gen_doorEXT04", 1501, 400},
  2867. {FURNITURE_DOORS, "Gen_doorINT04", 1502, 400},
  2868. {FURNITURE_DOORS, "Gen_doorEXT06", 1504, 400},
  2869. {FURNITURE_DOORS, "Gen_doorEXT07", 1505, 400},
  2870. {FURNITURE_DOORS, "Gen_doorEXT08", 1506, 400},
  2871. {FURNITURE_DOORS, "Gen_doorEXT09", 1507, 400},
  2872. {FURNITURE_DOORS, "Gen_doorEXT10", 1523, 400},
  2873. {FURNITURE_DOORS, "vgsEspdr01", 8957, 2500},
  2874. {FURNITURE_DOORS, "vgwspry1", 7891, 2000},
  2875. {FURNITURE_DOORS, "imy_la_door", 3109, 400},
  2876. {FURNITURE_DOORS, "ab_casdorLok", 3089, 3000},
  2877. {FURNITURE_DOORS, "ad_flatdoor", 3061, 550},
  2878. {FURNITURE_DOORS, "warehouse_door2b", 3037, 2000},
  2879. {FURNITURE_DOORS, "cr1_door", 3029, 550},
  2880. {FURNITURE_DOORS, "dts_bbdoor", 2970, 550},
  2881. {FURNITURE_DOORS, "kmb_lockeddoor", 2949, 400},
  2882. {FURNITURE_DOORS, "cr_door_02", 2948, 400},
  2883. {FURNITURE_DOORS, "cr_door_01", 2947, 400},
  2884. {FURNITURE_DOORS, "cr_door_03", 2946, 400},
  2885. {FURNITURE_DOORS, "freight_SFW_door", 2944, 550},
  2886. {FURNITURE_DOORS, "newtowerdoor1", 977, 550},
  2887. {FURNITURE_CARPETS, "man_sdr_rug", 1828, 1000},
  2888. {FURNITURE_CARPETS, "gb_livingrug01", 2815, 1000},
  2889. {FURNITURE_CARPETS, "gb_bedrug01", 2817, 1000},
  2890. {FURNITURE_CARPETS, "gb_bedrug02", 2818, 1000},
  2891. {FURNITURE_CARPETS, "gb_livingrug02", 2833, 1000},
  2892. {FURNITURE_CARPETS, "gb_livingrug03", 2834, 1000},
  2893. {FURNITURE_CARPETS, "gb_livingrug04", 2835, 1000},
  2894. {FURNITURE_CARPETS, "gb_livingrug05", 2836, 1000},
  2895. {FURNITURE_CARPETS, "gb_bedrug03", 2841, 1000},
  2896. {FURNITURE_CARPETS, "gb_bedrug04", 2842, 1000},
  2897. {FURNITURE_CARPETS, "gb_bedrug05", 2847, 1000},
  2898. {FURNITURE_CARPETS, "gym_mat1", 2631, 1000},
  2899. {FURNITURE_CARPETS, "gym_mat02", 2632, 1000},
  2900. {FURNITURE_FRAMES, "SAMPPicture1", 19172, 500},
  2901. {FURNITURE_FRAMES, "Frame_2", 2289, 1000},
  2902. {FURNITURE_FRAMES, "Frame_3", 2288, 1000},
  2903. {FURNITURE_FRAMES, "Frame_4", 2287, 1000},
  2904. {FURNITURE_FRAMES, "Frame_5", 2286, 1000},
  2905. {FURNITURE_FRAMES, "Frame_1", 2285, 1000},
  2906. {FURNITURE_FRAMES, "Frame_6", 2284, 1000},
  2907. {FURNITURE_FRAMES, "Frame_Thick_3", 2283, 100},
  2908. {FURNITURE_FRAMES, "Frame_Thick_4", 2282, 100},
  2909. {FURNITURE_FRAMES, "Frame_Thick_5", 2281, 100},
  2910. {FURNITURE_FRAMES, "Frame_Thick_1", 2280, 100},
  2911. {FURNITURE_FRAMES, "Frame_Thick_6", 2279, 100},
  2912. {FURNITURE_FRAMES, "Frame_Thick_2", 2278, 100},
  2913. {FURNITURE_FRAMES, "Frame_Fab_2", 2277, 100},
  2914. {FURNITURE_FRAMES, "Frame_Fab_3", 2276, 100},
  2915. {FURNITURE_FRAMES, "Frame_Fab_4", 2275, 100},
  2916. {FURNITURE_FRAMES, "Frame_Fab_6", 2274, 100},
  2917. {FURNITURE_FRAMES, "Frame_Fab_1", 2273, 100},
  2918. {FURNITURE_FRAMES, "Frame_Fab_5", 2272, 100},
  2919. {FURNITURE_FRAMES, "Frame_WOOD_1", 2271, 100},
  2920. {FURNITURE_FRAMES, "Frame_WOOD_6", 2270, 100},
  2921. {FURNITURE_FRAMES, "Frame_WOOD_4", 2269, 100},
  2922. {FURNITURE_FRAMES, "Frame_WOOD_2", 2268, 100},
  2923. {FURNITURE_FRAMES, "Frame_WOOD_3", 2267, 100},
  2924. {FURNITURE_FRAMES, "Frame_WOOD_5", 2266, 100},
  2925. {FURNITURE_FRAMES, "Frame_SLIM_6", 2265, 100},
  2926. {FURNITURE_FRAMES, "Frame_SLIM_5", 2264, 100},
  2927. {FURNITURE_FRAMES, "Frame_SLIM_4", 2263, 100},
  2928. {FURNITURE_FRAMES, "Frame_SLIM_3", 2262, 100},
  2929. {FURNITURE_FRAMES, "Frame_SLIM_2", 2261, 100},
  2930. {FURNITURE_FRAMES, "Frame_SLIM_1", 2260, 100},
  2931. {FURNITURE_FRAMES, "Frame_Clip_6", 2259, 100},
  2932. {FURNITURE_FRAMES, "Frame_Clip_5", 2258, 100},
  2933. {FURNITURE_FRAMES, "Frame_Clip_4", 2257, 100},
  2934. {FURNITURE_FRAMES, "Frame_Clip_3", 2256, 100},
  2935. {FURNITURE_FRAMES, "Frame_Clip_2", 2255, 100},
  2936. {FURNITURE_FRAMES, "Frame_Clip_1", 2254, 100},
  2937. //Spraytag
  2938. {FURNITURE_MISC, "Tag [GSF]", 18659, 100},
  2939. {FURNITURE_MISC, "Tag [SBF]", 18660, 100},
  2940. {FURNITURE_MISC, "Tag [VLA]", 18661, 100},
  2941. {FURNITURE_MISC, "Tag [KTB]", 18662, 100},
  2942. {FURNITURE_MISC, "Tag [SFR]", 18663, 100},
  2943. {FURNITURE_MISC, "Tag [TBD]", 18664, 100},
  2944. {FURNITURE_MISC, "Tag [LSV]", 18665, 100},
  2945. {FURNITURE_MISC, "Tag [FYB]", 18666, 100},
  2946. {FURNITURE_MISC, "Tag [RHB]", 18667, 100},
  2947. //
  2948. {FURNITURE_MISC, "Wine Glass", 19818, 300},
  2949. {FURNITURE_MISC, "Cocktail Glass", 19819, 300},
  2950. {FURNITURE_MISC, "Propbeer Glass", 1666, 300},
  2951. {FURNITURE_MISC, "Big Cock", 19823, 300},
  2952. {FURNITURE_MISC, "Red rum", 19820, 300},
  2953. {FURNITURE_MISC, "Vodka", 19821, 300},
  2954. {FURNITURE_MISC, "X.O", 19824, 300},
  2955. {FURNITURE_MISC, "Damaged crate", 924, 300},
  2956. {FURNITURE_MISC, "Top crate", 1355, 300},
  2957. {FURNITURE_MISC, "Empty crate", 19639, 300},
  2958. {FURNITURE_MISC, "Paper Messes", 2674, 300},
  2959. {FURNITURE_MISC, "Fisinh Rod", 18632, 600},
  2960. {FURNITURE_MISC, "Rope1", 19087, 100},
  2961. {FURNITURE_MISC, "CJ_FLAG1", 2047, 100},
  2962. {FURNITURE_MISC, "kmb_packet", 2891, 500},
  2963. {FURNITURE_MISC, "craigpackage", 1279, 1000},
  2964. {FURNITURE_MISC, "drug_white", 1575, 500},
  2965. {FURNITURE_MISC, "drug_orange", 1576, 500},
  2966. {FURNITURE_MISC, "drug_yellow", 1577, 500},
  2967. {FURNITURE_MISC, "drug_green", 1578, 500},
  2968. {FURNITURE_MISC, "drug_blue", 1579, 500},
  2969. {FURNITURE_MISC, "drug_red", 1580, 500},
  2970. {FURNITURE_MISC, "kmb_marijuana", 2901, 2000},
  2971. {FURNITURE_MISC, "grassplant", 3409, 1000},
  2972. {FURNITURE_MISC, "DYN_ASHTRY", 1510, 500},
  2973. {FURNITURE_MISC, "propashtray1", 1665, 500},
  2974. {FURNITURE_MISC, "WoodenStage1", 19608, 2000},
  2975. {FURNITURE_MISC, "DrumKit1", 19609, 1000},
  2976. {FURNITURE_MISC, "Microphone1", 19610, 1000},
  2977. {FURNITURE_MISC, "MicrophoneStand1", 19611, 2000},
  2978. {FURNITURE_MISC, "GuitarAmp1", 19612, 1000},
  2979. {FURNITURE_MISC, "GuitarAmp2", 19613, 2000},
  2980. {FURNITURE_MISC, "GuitarAmp3", 19614, 2000},
  2981. {FURNITURE_MISC, "GuitarAmp4", 19615, 1000},
  2982. {FURNITURE_MISC, "GuitarAmp5", 19616, 1000},
  2983. {FURNITURE_MISC, "GoldRecord1", 19617, 550},
  2984. {FURNITURE_MISC, "CJ_Stags_head", 1736, 2000},
  2985. {FURNITURE_MISC, "CJ_Radiator_old", 1738, 1000},
  2986. {FURNITURE_MISC, "CJ_MOP_PAIL", 1778, 1000},
  2987. {FURNITURE_MISC, "CJ_chambermaid", 1789, 2000},
  2988. {FURNITURE_MISC, "cj_bucket", 2713, 1000},
  2989. {FURNITURE_MISC, "des_blackbags", 16444, 2000},
  2990. {FURNITURE_MISC, "nf_blackboard", 3077, 2000},
  2991. {FURNITURE_MISC, "kmb_dumbbell_L", 3072, 1000},
  2992. {FURNITURE_MISC, "kmb_dumbbell_R", 3071, 1000},
  2993. {FURNITURE_MISC, "portaloo", 2984, 550},
  2994. {FURNITURE_MISC, "CJ_TARGET6", 2056, 500},
  2995. {FURNITURE_MISC, "CJ_TARGET5", 2055, 500},
  2996. {FURNITURE_MISC, "CJ_TARGET4", 2051, 500},
  2997. {FURNITURE_MISC, "CJ_TARGET2", 2050, 500},
  2998. {FURNITURE_MISC, "CJ_TARGET1", 2049, 500},
  2999. {FURNITURE_MISC, "hos_trolley", 1997, 1000},
  3000. {FURNITURE_MISC, "shop_sec_cam", 1886, 1000},
  3001. {FURNITURE_MISC, "nt_firehose_01", 1613, 1000},
  3002. {FURNITURE_MISC, "lsmall_window01", 19325, 2000},
  3003. {FURNITURE_MISC, "window001", 19466, 550},
  3004. {FURNITURE_MISC, "wglasssmash", 1649, 1000},
  3005. {FURNITURE_MISC, "Orange1", 19574, 500},
  3006. {FURNITURE_MISC, "Apple1", 19575, 500},
  3007. {FURNITURE_MISC, "Apple2", 19576, 500},
  3008. {FURNITURE_MISC, "Tomato1", 19577, 500},
  3009. {FURNITURE_MISC, "Banana1", 19578, 500},
  3010. {FURNITURE_MISC, "gb_bedclothes01", 2819, 100},
  3011. {FURNITURE_MISC, "gb_bedclothes02", 2843, 100},
  3012. {FURNITURE_MISC, "gb_bedclothes03", 2844, 100},
  3013. {FURNITURE_MISC, "gb_bedclothes04", 2845, 100},
  3014. {FURNITURE_MISC, "gb_bedclothes05", 2846, 100},
  3015. {FURNITURE_MISC, "GB_platedirty01", 2812, 100},
  3016. {FURNITURE_MISC, "GB_kitchplatecln01", 2822, 100},
  3017. {FURNITURE_MISC, "GB_platedirty02", 2829, 100},
  3018. {FURNITURE_MISC, "GB_platedirty04", 2830, 100},
  3019. {FURNITURE_MISC, "GB_platedirty03", 2831, 100},
  3020. {FURNITURE_MISC, "GB_platedirty05", 2832, 100},
  3021. {FURNITURE_MISC, "GB_kitchplatecln02", 2862, 100},
  3022. {FURNITURE_MISC, "GB_kitchplatecln03", 2863, 100},
  3023. {FURNITURE_MISC, "GB_kitchplatecln04", 2864, 100},
  3024. {FURNITURE_MISC, "GB_kitchplatecln05", 2865, 100},
  3025. {FURNITURE_MISC, "Angel", 3935, 5000},
  3026. {FURNITURE_MISC, "Carter Statue", 14467, 5000},
  3027. {FURNITURE_MISC, "Broken Statue", 2743, 5000},
  3028. {FURNITURE_MISC, "Rocking Horse", 11733, 5000},
  3029. {FURNITURE_MISC, "Clothes Hanger", 2373, 500},
  3030. {FURNITURE_WALL, "wall016", 19368, 450},
  3031. {FURNITURE_WALL, "wall087", 19447, 550},
  3032. {FURNITURE_WALL, "wall015", 19367, 450},
  3033. {FURNITURE_WALL, "wall014", 19366, 550},
  3034. {FURNITURE_WALL, "wall018", 19370, 450},
  3035. {FURNITURE_WALL, "wall010", 19362, 550},
  3036. {FURNITURE_WALL, "wall035", 19387, 450},
  3037. {FURNITURE_WALL, "wall059", 19411, 550},
  3038. {FURNITURE_WALL, "wall017", 19369, 450},
  3039. {FURNITURE_WALL, "wall073", 19433, 550},
  3040. {FURNITURE_WALL, "wall077", 19437, 450},
  3041. {FURNITURE_WALL, "wall040", 19392, 550},
  3042. {FURNITURE_WALL, "wall096", 19456, 450},
  3043. {FURNITURE_WALL, "wall043", 19395, 550},
  3044. {FURNITURE_WALL, "wall037", 19389, 450},
  3045. {FURNITURE_WALL, "wall038", 19390, 550},
  3046. {FURNITURE_WALL, "wall039", 19391, 450},
  3047. {FURNITURE_WALL, "wall041", 19393, 550},
  3048. {FURNITURE_WALL, "wall042", 19394, 450},
  3049. {FURNITURE_WALL, "wall042", 19397, 550},
  3050. {FURNITURE_WALL, "wall044", 19396, 450},
  3051. {FURNITURE_WALL, "wall102", 19462, 550},
  3052. {FURNITURE_WALL, "wall046", 19398, 450},
  3053. {FURNITURE_WALL, "wall024", 19376, 550},
  3054. {FURNITURE_WALL, "wall105", 19465, 450},
  3055. {FURNITURE_WALL, "wall020", 19372, 550},
  3056. {FURNITURE_WALL, "wall104", 19464, 450},
  3057. {FURNITURE_SPECIAL, "Chemistry Dryer", 3287, 1200},
  3058. {FURNITURE_SPECIAL, "Centrifuge", 19830, 3500},
  3059. {FURNITURE_SPECIAL, "Mixer", 19585, 2500},
  3060. {FURNITURE_SPECIAL, "Reactor", 2360, 2000},
  3061. {FURNITURE_SPECIAL, "Dehydrater", 2002, 900},
  3062. {FURNITURE_SPECIAL, "Pickup Pump", 1244, 6000},
  3063. {FURNITURE_SPECIAL, "Pickup Pump (Small)", 1008, 1000},
  3064. {FURNITURE_SPECIAL, "Bike Pedal", 2798, 500},
  3065. {FURNITURE_SPECIAL, "Long Exhaust", 1114, 700},
  3066. {FURNITURE_EFFECT, "Smoke Flare", 18728, 3000},
  3067. {FURNITURE_EFFECT, "Puke", 18722, 3000},
  3068. {FURNITURE_EFFECT, "Molotov Fire", 18701, 3000},
  3069. {FURNITURE_EFFECT, "Coke Trail", 18676, 3000},
  3070. {FURNITURE_EFFECT, "Cam Flash (Once)", 18670, 3000},
  3071. {FURNITURE_EFFECT, "Flasher", 345, 3000}
  3072. };
  3073. enum e_WeaponInfo
  3074. {
  3075. e_WeaponSlot,
  3076. e_WeaponClip,
  3077. e_WeaponModel
  3078. };
  3079. new const g_WeaponInfo[47][e_WeaponInfo] =
  3080. {
  3081. {0, 0, 0},
  3082. {0, 0, 331},
  3083. {1, 0, 333},
  3084. {1, 0, 334},
  3085. {1, 0, 335},
  3086. {1, 0, 336},
  3087. {1, 0, 337},
  3088. {1, 0, 338},
  3089. {1, 0, 339},
  3090. {1, 0, 341},
  3091. {10, 0, 321},
  3092. {10, 0, 322},
  3093. {10, 0, 323},
  3094. {10, 0, 324},
  3095. {10, 0, 325},
  3096. {10, 0, 326},
  3097. {8, 0, 342},
  3098. {8, 0, 343},
  3099. {8, 0, 344},
  3100. {0, 0, 0},
  3101. {0, 0, 0},
  3102. {0, 0, 0},
  3103. {2, 17, 346},
  3104. {2, 17, 347},
  3105. {2, 7, 348},
  3106. {3, 0, 349},
  3107. {3, 2, 350},
  3108. {3, 7, 351},
  3109. {4, 50, 352},
  3110. {4, 30, 353},
  3111. {5, 30, 355},
  3112. {5, 50, 356},
  3113. {4, 50, 372},
  3114. {6, 0, 357},
  3115. {6, 0, 358},
  3116. {7, 0, 359},
  3117. {7, 0, 360},
  3118. {7, 500, 361},
  3119. {7, 500, 362},
  3120. {8, 0, 363},
  3121. {9, 0, 364},
  3122. {9, 0, 365},
  3123. {9, 0, 366},
  3124. {11, 0, 367},
  3125. {11, 0, 368},
  3126. {11, 0, 368},
  3127. {11, 0, 371}
  3128. };
  3129. new const g_AnimationLibraries[][] =
  3130. {
  3131. !"AIRPORT", !"ATTRACTORS", !"BAR", !"BASEBALL",
  3132. !"BD_FIRE", !"BEACH", !"BENCHPRESS", !"BF_INJECTION",
  3133. !"BIKED", !"BIKEH", !"BIKELEAP", !"BIKES",
  3134. !"BIKEV", !"BIKE_DBZ", !"BMX", !"BOMBER",
  3135. !"BOX", !"BSKTBALL", !"BUDDY", !"BUS",
  3136. !"CAMERA", !"CAR", !"CARRY", !"CAR_CHAT",
  3137. !"CASINO", !"CHAINSAW", !"CHOPPA", !"CLOTHES",
  3138. !"COACH", !"COLT45", !"COP_AMBIENT", !"COP_DVBYZ",
  3139. !"CRACK", !"CRIB", !"DAM_JUMP", !"DANCING",
  3140. !"DEALER", !"DILDO", !"DODGE", !"DOZER",
  3141. !"DRIVEBYS", !"FAT", !"FIGHT_B", !"FIGHT_C",
  3142. !"FIGHT_D", !"FIGHT_E", !"FINALE", !"FINALE2",
  3143. !"FLAME", !"FLOWERS", !"FOOD", !"FREEWEIGHTS",
  3144. !"GANGS", !"GHANDS", !"GHETTO_DB", !"GOGGLES",
  3145. !"GRAFFITI", !"GRAVEYARD", !"GRENADE", !"GYMNASIUM",
  3146. !"HAIRCUTS", !"HEIST9", !"INT_HOUSE", !"INT_OFFICE",
  3147. !"INT_SHOP", !"JST_BUISNESS", !"KART", !"KISSING",
  3148. !"KNIFE", !"LAPDAN1", !"LAPDAN2", !"LAPDAN3",
  3149. !"LOWRIDER", !"MD_CHASE", !"MD_END", !"MEDIC",
  3150. !"MISC", !"MTB", !"MUSCULAR", !"NEVADA",
  3151. !"ON_LOOKERS", !"OTB", !"PARACHUTE", !"PARK",
  3152. !"PAULNMAC", !"PED", !"PLAYER_DVBYS", !"PLAYIDLES",
  3153. !"POLICE", !"POOL", !"POOR", !"PYTHON",
  3154. !"QUAD", !"QUAD_DBZ", !"RAPPING", !"RIFLE",
  3155. !"RIOT", !"ROB_BANK", !"ROCKET", !"RUSTLER",
  3156. !"RYDER", !"SCRATCHING", !"SHAMAL", !"SHOP",
  3157. !"SHOTGUN", !"SILENCED", !"SKATE", !"SMOKING",
  3158. !"SNIPER", !"SPRAYCAN", !"STRIP", !"SUNBATHE",
  3159. !"SWAT", !"SWEET", !"SWIM", !"SWORD",
  3160. !"TANK", !"TATTOOS", !"TEC", !"TRAIN",
  3161. !"TRUCK", !"UZI", !"VAN", !"VENDING",
  3162. !"VORTEX", !"WAYFARER", !"WEAPONS", !"WUZI",
  3163. !"WOP", !"GFUNK", !"RUNNINGMAN", !"BLOWJOBZ"
  3164. };
  3165. new const g_VehicleNames[212][] =
  3166. {
  3167. "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster",
  3168. "Stretch", "Manana", "Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam",
  3169. "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BF Injection", "Hunter", "Premier", "Enforcer",
  3170. "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach",
  3171. "Cabbie", "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral", "Squalo", "Seasparrow",
  3172. "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair",
  3173. "Berkley's RC Van", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale", "Oceanic",
  3174. "Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR-350", "Walton",
  3175. "Regina", "Comet", "BMX", "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper", "Rancher",
  3176. "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking", "Blista Compact", "Police Maverick",
  3177. "Boxville", "Benson", "Mesa", "RC Goblin", "Hotring Racer A", "Hotring Racer B", "Bloodring Banger", "Rancher",
  3178. "Super GT", "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster", "Stunt", "Tanker", "Roadtrain",
  3179. "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra", "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck",
  3180. "Fortune", "Cadrona", "SWAT Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan",
  3181. "Blade", "Streak", "Freight", "Vortex", "Vincent", "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder",
  3182. "Primo", "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite", "Windsor", "Monster", "Monster",
  3183. "Uranus", "Jester", "Sultan", "Stratum", "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito",
  3184. "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper", "Broadway", "Tornado", "AT-400", "DFT-30",
  3185. "Huntley", "Stafford", "BF-400", "News Van", "Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club",
  3186. "Freight Box", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "LSPD Car", "SFPD Car", "LVPD Car",
  3187. "Police Rancher", "Picador", "S.W.A.T", "Alpha", "Phoenix", "Glendale", "Sadler", "Luggage", "Luggage", "Stairs",
  3188. "Boxville", "Tiller", "Utility Trailer"
  3189. };
  3190. new const Float:g_LightSwitches[][] =
  3191. {
  3192. {1364.983886, -2146.622314, 1051.249267, 180.0000},
  3193. {1750.794799, -1823.229003, 1001.000976, 180.0000},
  3194. {1283.106079, -1141.087524, 980.765502, 180.0000},
  3195. {2009.972900, -1699.866210, 1166.380493, 270.0000},
  3196. {1179.235839, -418.864257, 1235.295532, 270.0000},
  3197. {2183.259277, -1131.408813, 1129.336059, 90.0000},
  3198. {1433.186401, -1833.914184, 1314.197875, 90.0000},
  3199. {925.934936, -497.943176, 844.603149, 270.0000},
  3200. {827.491210, -1014.966735, 800.616577, 90.0000},
  3201. {1321.020996, -166.627578, 1088.712036, 270.0000},
  3202. {1832.481689, -1277.765502, 832.790344, 0.0000},
  3203. {2655.479736, -1022.791198, 930.556945, 0.0000}
  3204. };
  3205. new const Float:g_HospitalLocations[][] =
  3206. {
  3207. {2034.1500, -1402.7036, 17.2946, 180.0000},
  3208. {1172.4954, -1321.4164, 15.3988, 270.0000},
  3209. {1240.7651, 326.6705, 19.7555, 335.0000},
  3210. {1607.3220, 1815.8779, 10.8203, 0.0000},
  3211. {-2655.1208, 639.3203, 14.4531, 180.0000},
  3212. {-318.6898, 1048.6490, 20.3403, 0.0000},
  3213. {-1514.7906, 2519.4641, 56.0703, 0.0000},
  3214. {-2203.7671, -2309.6816, 31.3750, 225.0000}
  3215. };
  3216. new const Float:g_TestCheckpoints[][] =
  3217. {
  3218. /*{1964.1777, -1985.2305, 13.2617},
  3219. {1964.0260, -1929.5844, 13.2583},
  3220. {1963.9639, -1859.5959, 13.2579},
  3221. {1964.3365, -1794.9149, 13.2578},
  3222. {1976.9269, -1754.8848, 13.2578},
  3223. {2003.8291, -1732.9901, 13.2578},
  3224. {2012.5283, -1675.0514, 13.2578},
  3225. {2071.8647, -1674.4196, 13.2655},
  3226. {2078.9463, -1708.5052, 13.2656},
  3227. {2086.4880, -1764.8125, 13.2704},
  3228. {2079.3931, -1822.3281, 13.2578},
  3229. {2079.0554, -1893.4973, 13.2179},
  3230. {2034.7793, -1929.5000, 13.2169},
  3231. {1976.3959, -1929.3317, 13.2578},
  3232. {1958.6281, -1961.4639, 13.5750},
  3233. {1974.5994, -1990.2570, 13.4266}*/
  3234. {1202.1882, -1849.4520, 13.2621},
  3235. {1143.1660, -1849.5922, 13.2566},
  3236. {1071.2588, -1849.8652, 13.2682},
  3237. {1036.1475, -1795.2440, 13.5767},
  3238. {1040.1671, -1726.2327, 13.2578},
  3239. {1040.2419, -1668.0111, 13.2578},
  3240. {1039.9519, -1614.0441, 13.2578},
  3241. {1026.0361, -1570.0818, 13.2653},
  3242. {983.8574, -1569.9839, 13.2578},
  3243. {915.2708, -1584.9355, 13.2578},
  3244. {914.9992, -1626.3933, 13.2578},
  3245. {914.7863, -1688.9620, 13.2556},
  3246. {914.9989, -1762.4529, 13.2578},
  3247. {953.0164, -1781.2417, 13.9314},
  3248. {1006.2765, -1795.0682, 13.9239},
  3249. {1050.8878, -1824.5197, 13.4472},
  3250. {1075.3669, -1855.0442, 13.2660},
  3251. {1125.2623, -1854.6885, 13.2578},
  3252. {1187.8931, -1855.5801, 13.2734},
  3253. {1214.0253, -1839.7546, 13.2569}
  3254. };
  3255. new const Float:g_TrashPickups[][] =
  3256. {
  3257. {2233.970458, -1963.004638, 13.004289, 280.663208},
  3258. {2326.081054, -1935.369628, 13.035931, 90.000000},
  3259. {2183.682128, -1884.950927, 13.006871, 180.000000},
  3260. {2070.470947, -1796.343872, 13.006866, 86.331871},
  3261. {2005.668457, -1761.876342, 13.009079, 90.000000},
  3262. {1796.317626, -1720.861938, 12.956867, 6.284942},
  3263. {1613.645874, -1897.403076, 13.028025, 182.839935},
  3264. {1403.755126, -1882.066162, 12.992812, 181.006591},
  3265. {1321.991943, -1666.734008, 13.016869, 267.994384},
  3266. {1249.822998, -1581.848632, 13.006018, -178.084884}
  3267. };
  3268. new gTrashObjects[MAX_PLAYERS][sizeof(g_TrashPickups)];
  3269. enum e_StaticBuildings
  3270. {
  3271. e_BuildingName[32],
  3272. e_IconModel,
  3273. e_Interior,
  3274. e_VirtualWorld,
  3275. Float:e_SpawnX,
  3276. Float:e_SpawnY,
  3277. Float:e_SpawnZ,
  3278. Float:e_InsideX,
  3279. Float:e_InsideY,
  3280. Float:e_InsideZ,
  3281. Float:e_InsideA,
  3282. bool:e_Freeze // Freeze the player after entering to stream objects
  3283. };
  3284. enum {
  3285. BUILDING_POLICE,
  3286. BUILDING_PRISON,
  3287. BUILDING_DMV,
  3288. BUILDING_CITYHALL
  3289. };
  3290. new const g_StaticBuildings[][e_StaticBuildings] =
  3291. {
  3292. {"Police Station", 1247, 10, 1, 1555.1296, -1675.5555, 16.1954, 126.0735, 1138.7159, 527.4651, 0.0000, true},
  3293. {"County Jail", 1247, 7, 2, 1059.3806, -321.3055, 73.9956, 2574.9722, -1475.3905, -48.8995, 0.0000, true},
  3294. {"Los Santos DMV", 1239, 3, 3, 1219.2091, -1812.2405, 16.5938, 1494.4213, 1304.1852, 1093.2891, 0.0000, true},
  3295. {"City Hall", 1314, 3, 4, 1479.3539, -1771.4526, 18.7958, 389.6911, 173.8717, 1008.3828, 90.0000, true}
  3296. };
  3297. enum e_ItemArray
  3298. {
  3299. e_ItemName[MAX_ITEM_NAME],
  3300. e_ItemModel,
  3301. e_ItemWeight,
  3302. bool:e_ItemValue, // Does this item have a quantity (e.g. ammunition, drug grams, quantity)
  3303. bool:e_ItemIllegal, // Is this an illegal item?
  3304. bool:e_ItemStackable // Does this item stack inside your inventory?
  3305. };
  3306. new const g_ItemList[][e_ItemArray] =
  3307. {
  3308. {"Mobile Phone", 330, 2, true, false},
  3309. {"Stereo", 2102, 6, false, false},
  3310. {"Screwdriver", 18644, 1, false, false},
  3311. {"Toolbox", 2969, 4, false, false},
  3312. {"Bandages", 11748, 2, true, false},
  3313. {"Medical Kit", 11738, 3, false, false},
  3314. {"Notebook", 2894, 2, false, false},
  3315. {"Cigarettes", 19896, 1, true, false},
  3316. {"Painkillers", 2709, 2, true, false},
  3317. {"Gasoline", 19621, 3, true, false},
  3318. {"Kevlar Vest", 19515, 3, true, false},
  3319. {"Armor", 19515, 3, true, true},
  3320. {"Mask", 19801, 1, true, false},
  3321. {"Beer", 1543, 2, false, false},
  3322. {"Wine", 1487, 2, false, false},
  3323. {"Spraycan", 2749, 2, true, false},
  3324. {"Walkie Talkie", 19942, 2, true, false},
  3325. {"Portable Radio", 19942, 2, true, false},
  3326. {"Camera", 367, 2, false, false},
  3327. {"Car Key", 11746, 1, true, false},
  3328. //name, model, weight, value, illegal, stack
  3329. {"Cuffs", 19418, 1, false, true},
  3330. {"Cuff Keys", 11746, 1, false, true},
  3331. // Faction items
  3332. {"Fire Extinguisher", 366, 2, true, true},
  3333. // Weapon packages
  3334. {"Melee Package", 3014, 2, false, true},
  3335. {"Pistol Package", 3014, 3, false, true},
  3336. {"Shotgun Package", 3014, 3, false, true},
  3337. {"SMG Package", 3014, 3, false, true},
  3338. {"Rifle Package", 3014, 3, false, true},
  3339. {"Materials", 3014, 3, true, true, true},
  3340. // Drugs
  3341. //{"Marijuana", 2891, 1, true, true, true},
  3342. //{"Cocaine", 2891, 1, true, true, true},
  3343. //{"Heroin", 2891, 1, true, true, true},
  3344. {"Steroids", 2891, 1, true, true, true},
  3345. {"Heroin", 2891, 1, true, true, true},
  3346. {"LSD", 2891, 1, true, true, true},
  3347. {"Ecstasy", 2891, 1, true, true, true},
  3348. {"Marijuana", 2891, 1, true, true, true},
  3349. {"Crack", 2891, 1, true, true, true},
  3350. {"Cocaine", 2891, 1, true, true, true},
  3351. {"Methamphetamine", 2891, 1, true, true, true},
  3352. {"PCP", 2891, 1, true, true, true},
  3353. {"Baking Soda", 2891, 1, true, true, true},
  3354. {"Morning Glory Seeds", 2891, 1, true, true, true},
  3355. {"Opium Poppies", 2891, 1, true, true, true},
  3356. {"Marijuana Seeds", 2891, 1, true, true, true},
  3357. {"Muriatic Acid", 2891, 1, true, true, true},
  3358. {"Lye", 2891, 1, true, true, true},
  3359. {"Ether", 2891, 1, true, true, true},
  3360. {"Ephedrine", 2891, 1, true, true, true},
  3361. {"Diethyl", 2891, 1, true, true, true},
  3362. {"Hydrogen Peroxide", 2891, 1, true, true, true},
  3363. {"Formic Acid", 2891, 1, true, true, true},
  3364. {"Isosafrole", 2891, 1, true, true, true},
  3365. // Weapons
  3366. {"Golf Club", 333, 3, false, true},
  3367. {"Nightstick", 334, 2, false, true},
  3368. {"Knife", 335, 1, false, true},
  3369. {"Baseball Bat", 336, 3, false, true},
  3370. {"Shovel", 337, 3, false, true},
  3371. {"Pool Cue", 338, 2, false, true},
  3372. {"Katana", 339, 4, false, true},
  3373. {"Colt 45", 346, 3, true, true},
  3374. {"Silenced 45", 347, 4, true, true},
  3375. {"Desert Eagle", 348, 3, true, true},
  3376. {"Shotgun", 349, 6, true, true},
  3377. {"SPAS-12", 351, 6, true, true},
  3378. {"UZI", 352, 4, true, true},
  3379. {"Tec-9", 372, 4, true, true},
  3380. {"MP5", 353, 5, true, true},
  3381. {"AK-47", 355, 7, true, true},
  3382. {"M16", 356, 7, true, true},
  3383. {"Rifle", 357, 6, true, true},
  3384. {"Sniper Rifle", 358, 7, true, true},
  3385. {"Pepper Spray", 365, 2, true, true},
  3386. //{"Taser", 347, 1, false, true},
  3387. // Ammunition
  3388. {".50cal", 2061, 2, true, true},
  3389. {"9x19mm", 2061, 2, true, true},
  3390. {"5.56x45mm", 2061, 2, true, true},
  3391. {"7.62x39mm", 2061, 2, true, true},
  3392. {"7.62x51mm", 2061, 2, true, true},
  3393. {"12 Gauge", 2061, 2, true, true}
  3394. };
  3395. enum e_DropOffsets
  3396. {
  3397. e_Item[MAX_ITEM_NAME],
  3398. Float:e_OffsetZ,
  3399. Float:e_OffsetRX,
  3400. Float:e_OffsetRY
  3401. };
  3402. /*
  3403. {"Steroids", 2891, 1, true, true, true},
  3404. {"Heroin", 2891, 1, true, true, true},
  3405. {"LSD", 2891, 1, true, true, true},
  3406. {"Ecstasy", 2891, 1, true, true, true},
  3407. {"Marijuana", 2891, 1, true, true, true},
  3408. {"Crack", 2891, 1, true, true, true},
  3409. {"Cocaine", 2891, 1, true, true, true},
  3410. {"Methamphetamine", 2891, 1, true, true, true},
  3411. {"PCP", 2891, 1, true, true, true},
  3412. */
  3413. new const g_GroundOffsets[][e_DropOffsets] =
  3414. {
  3415. {"Mobile Phone", 1.0, 90.0, 0.0},
  3416. {"Stereo", 1.0, 0.0, 0.0},
  3417. {"Screwdriver", 0.95, 0.0, 90.0},
  3418. {"Toolbox", 0.9, 0.0, 0.0},
  3419. {"Bandages", 0.95, 0.0, 0.0},
  3420. {"Medical Kit", 0.9, 0.0, 0.0},
  3421. {"Notebook", 1.0, 0.0, 0.0},
  3422. {"Cigarettes", 0.95, 0.0, 0.0},
  3423. {"Painkillers", 0.85, 0.0, 0.0},
  3424. {"Gasoline", 0.9, 0.0, 0.0},
  3425. {"Kevlar Vest", 0.7, 0.0, -90.0},
  3426. {"Armor", 0.7, 0.0, -90.0},
  3427. {"Mask", 0.9, 0.0, 0.0},
  3428. {"Beer", 1.0, 0.0, 0.0},
  3429. {"Wine", 0.8, 0.0, 0.0},
  3430. {"Spraycan", 1.0, 0.0, 0.0},
  3431. {"Walkie Talkie", 0.95, -90.0, 0.0},
  3432. {"Portable Radio", 0.95, -90.0, 0.0},
  3433. {"Car Key", 0.95, 90.0, 0.0},
  3434. {"Cuffs", 0.95, 90.0, 0.0},
  3435. {"Cuff Keys", 0.95, 90.0, 0.0},
  3436. {"Melee Package", 0.7, 0.0, 0.0},
  3437. {"Pistol Package", 0.7, 0.0, 0.0},
  3438. {"Shotgun Package", 0.7, 0.0, 0.0},
  3439. {"SMG Package", 0.7, 0.0, 0.0},
  3440. {"Rifle Package", 0.7, 0.0, 0.0},
  3441. {"Steroids", 1.0, 0.0, 0.0},
  3442. {"Heroin", 1.0, 0.0, 0.0},
  3443. {"LSD", 1.0, 0.0, 0.0},
  3444. {"Ecstasy", 1.0, 0.0, 0.0},
  3445. {"Marijuana", 1.0, 0.0, 0.0},
  3446. {"Crack", 1.0, 0.0, 0.0},
  3447. {"Cocaine", 1.0, 0.0, 0.0},
  3448. {"Methamphetamine", 1.0, 0.0, 0.0},
  3449. {"PCP", 1.0, 0.0, 0.0},
  3450. {".50cal", 0.7, 0.0, 0.0},
  3451. {"9x19mm", 0.7, 0.0, 0.0},
  3452. {"5.56x45mm", 0.7, 0.0, 0.0},
  3453. {"7.62x39mm", 0.7, 0.0, 0.0},
  3454. {"7.62x51mm", 0.7, 0.0, 0.0},
  3455. {"12 Gauge", 0.7, 0.0, 0.0}
  3456. };
  3457. enum e_InteriorList {
  3458. e_Interior,
  3459. Float: e_InteriorX,
  3460. Float: e_InteriorY,
  3461. Float: e_InteriorZ,
  3462. Float: e_InteriorA
  3463. };
  3464. new const Float:g_HouseInteriors[][e_InteriorList] =
  3465. {
  3466. {0, 0000.0000, 0000.0000, 0000.0000, 000.0000},
  3467. {3, 1363.7614, -2145.6965, 1050.5886, 356.4167},
  3468. {6, 1749.6356, -1822.4457, 1000.3405, 355.5393},
  3469. {4, 1282.0646, -1140.2067, 980.0524, 1.5357},
  3470. {8, 2008.8319, -1698.8461, 1165.7001, 88.6156},
  3471. {9, 1178.3398, -419.0833, 1234.7045, 177.8144},
  3472. {11, 2184.1011, -1130.3905, 1128.7655, 265.1024},
  3473. {2, 1434.0806, -1832.7854, 1313.5573, 267.1467},
  3474. {7, 925.0102, -496.8101, 843.8953, 88.8976},
  3475. {3, 828.6323, -1014.0038, 799.9664, 266.5594},
  3476. {5, 1320.1091, -167.6174, 1088.0741, 89.3401},
  3477. {1, 1834.2408, -1278.7684, 832.1602, 177.6579},
  3478. {5, 2654.4524, -1023.7827, 929.9266, 180.4350},
  3479. {1, 244.0626, 304.9826, 999.1484, 270.4359},
  3480. {1, 1417.2693,-18.4743,1000.9266,89.4260},
  3481. {10, 2259.7542,-1136.0293,1050.6328,271.4703},
  3482. {3, 2495.9561,-1692.3522,1014.7422,179.3060},
  3483. {3, 235.2513,1187.0618,1080.2578,1.5732},
  3484. {2, 225.3744,1239.9326,1082.1406,91.4331},
  3485. {5, 226.9044,1114.2283,1080.9961,270.5323},
  3486. {4, 310.8174,313.8372,1003.3047,90.7227},
  3487. {5, 1298.8762,-796.5984,1084.0078,359.3316}
  3488. };
  3489. new const Float:g_CompanyInteriors[][e_InteriorList] =
  3490. {
  3491. {0, 0000.0000, 0000.0000, 0000.0000, 000.0000},
  3492. {17, -25.8827, -187.3007, 1003.5469, 0.0000}, // COMPANY_STORE
  3493. {18, 161.3682, -96.3227, 1001.8047, 0.0000}, // COMPANY_CLOTHES
  3494. {17, 377.1490, -192.6511, 1000.6401, 0.0000}, // COMPANY_RESTAURANT
  3495. {3, -2026.8729, -104.1907, 1035.1719, 180.0000}, // COMPANY_RENTALS
  3496. {3, 833.9849, 7.4472, 1004.1797, 90.0000}, // COMPANY_PHONE
  3497. {3, 1494.4321, 1304.0353, 1093.2891, 0.0000}, // COMPANY_DEALERSHIP
  3498. {5, 772.4077, -4.7408, 1000.7291, 0.0000}, // COMPANY_GYM
  3499. {7, 315.7720, -142.9962, 999.6016, 0.0000}, // COMPANY_AMMO
  3500. {11, 501.9501, -68.5032, 998.7578, 180.0000} // COMPANY_BAR
  3501. };
  3502. new const Float:g_HospitalDeliverPoints[6][3] =
  3503. {
  3504. {-2692.6580, 635.4608, 14.4531},
  3505. {-334.9757, 1063.0171, 19.7392},
  3506. {1579.9666, 1767.1462, 10.8203},
  3507. {1177.8599, -1308.3982, 13.8301},
  3508. {2024.4246, -1404.1580, 17.2020},
  3509. {1243.9304, 331.4186, 19.5547}
  3510. };
  3511. new const Float:g_HospitalSpawns[16][3] =
  3512. {
  3513. {2507.6208, -1698.1387, 2105.4109},
  3514. {2507.5833, -1695.3528, 2105.4109},
  3515. {2507.6140, -1692.8528, 2105.4109},
  3516. {2507.6499, -1690.3484, 2105.4109},
  3517. {2513.5959, -1698.1089, 2105.4109},
  3518. {2513.5156, -1695.3512, 2105.4109},
  3519. {2513.5745, -1692.7902, 2105.4109},
  3520. {2513.6406, -1690.2950, 2105.4109},
  3521. {2513.5474, -1714.5375, 2105.4109},
  3522. {2513.5000, -1717.0905, 2105.4109},
  3523. {2513.5068, -1719.7252, 2105.4109},
  3524. {2513.4722, -1722.4310, 2105.4109},
  3525. {2507.4583, -1714.5662, 2105.4109},
  3526. {2513.4426, -1717.0591, 2105.4109},
  3527. {2513.4963, -1719.7118, 2105.4109},
  3528. {2507.4795, -1722.3256, 2105.4109}
  3529. };
  3530. new const Float:g_RepairShops[][] =
  3531. {
  3532. {2074.7122, -1831.3906, 13.5469, 2065.4092, -1831.4474, 13.3643, 90.0000, 2076.0828, -1831.3698, 13.2777, 270.0000},
  3533. {1025.1017, -1032.9968, 31.8545, 1024.9688, -1023.1215, 31.9303, 0.0000, 1024.9032, -1033.9376, 31.6534, 180.0000},
  3534. {488.5583, -1731.2819, 11.2464, 487.3807, -1741.6285, 11.0107, 170.0000, 489.1483, -1730.7385, 11.0434, 350.0000},
  3535. {720.2086, -465.7499, 16.3437, 720.0692, -456.0589, 17.0412, 0.0000, 720.1885, -469.6240, 17.0489, 180.0000},
  3536. {-99.8833, 1109.2959, 19.7422, -100.0493, 1116.5676, 20.3480, 0.0000, -99.8743, 1105.2859, 20.4476, 180.0000},
  3537. {-1420.7378, 2594.0757, 55.7505, -1420.5433, 2585.7573, 56.5724, 180.0000, -1420.6559, 2595.4070, 56.4271, 0.0000}
  3538. };
  3539. new g_ValidSkinModels[] = {
  3540. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
  3541. 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
  3542. 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
  3543. 63, 64, 65, 66, 68, 69, 72, 73, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 88,
  3544. 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
  3545. 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
  3546. 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 140, 141, 142,
  3547. 143, 144, 145, 146, 147, 148, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
  3548. 161, 162, 167, 168, 169, 170, 171, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
  3549. 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
  3550. 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
  3551. 217, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235,
  3552. 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 253,
  3553. 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 268, 272, 273, 289, 290, 291, 292,
  3554. 293, 294, 295, 296, 297, 298, 299
  3555. };
  3556. new g_MaleSkins[185] = {
  3557. 1, 2, 3, 4, 5, 6, 7, 8, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
  3558. 30, 32, 33, 34, 35, 36, 37, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 57, 58, 59, 60,
  3559. 61, 62, 66, 68, 72, 73, 78, 79, 80, 81, 82, 83, 84, 94, 95, 96, 97, 98, 99, 100, 101, 102,
  3560. 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
  3561. 121, 122, 123, 124, 125, 126, 127, 128, 132, 133, 134, 135, 136, 137, 142, 143, 144, 146,
  3562. 147, 153, 154, 155, 156, 158, 159, 160, 161, 162, 167, 168, 170, 171, 173, 174, 175, 176,
  3563. 177, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 200, 202, 203, 204, 206,
  3564. 208, 209, 210, 212, 213, 217, 220, 221, 222, 223, 228, 229, 230, 234, 235, 236, 239, 240,
  3565. 241, 242, 247, 248, 249, 250, 253, 254, 255, 258, 259, 260, 261, 262, 268, 272, 273, 289,
  3566. 290, 291, 292, 293, 294, 295, 296, 297, 299
  3567. };
  3568. new g_FemaleSkins[77] = {
  3569. 9, 10, 11, 12, 13, 31, 38, 39, 40, 41, 53, 54, 55, 56, 63, 64, 65, 69, 75, 76, 77, 85, 88,
  3570. 89, 90, 91, 92, 93, 129, 130, 131, 138, 140, 141, 145, 148, 150, 151, 152, 157, 169, 178,
  3571. 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 205, 207, 211, 214, 215, 216, 219,
  3572. 224, 225, 226, 231, 232, 233, 237, 238, 243, 244, 245, 246, 251, 256, 257, 263, 298
  3573. };
  3574. /*new g_VehicleColors[256] = {
  3575. 0x000000FF, 0xF5F5F5FF, 0x2A77A1FF, 0x840410FF, 0x263739FF, 0x86446EFF, 0xD78E10FF, 0x4C75B7FF, 0xBDBEC6FF, 0x5E7072FF,
  3576. 0x46597AFF, 0x656A79FF, 0x5D7E8DFF, 0x58595AFF, 0xD6DAD6FF, 0x9CA1A3FF, 0x335F3FFF, 0x730E1AFF, 0x7B0A2AFF, 0x9F9D94FF,
  3577. 0x3B4E78FF, 0x732E3EFF, 0x691E3BFF, 0x96918CFF, 0x515459FF, 0x3F3E45FF, 0xA5A9A7FF, 0x635C5AFF, 0x3D4A68FF, 0x979592FF,
  3578. 0x421F21FF, 0x5F272BFF, 0x8494ABFF, 0x767B7CFF, 0x646464FF, 0x5A5752FF, 0x252527FF, 0x2D3A35FF, 0x93A396FF, 0x6D7A88FF,
  3579. 0x221918FF, 0x6F675FFF, 0x7C1C2AFF, 0x5F0A15FF, 0x193826FF, 0x5D1B20FF, 0x9D9872FF, 0x7A7560FF, 0x989586FF, 0xADB0B0FF,
  3580. 0x848988FF, 0x304F45FF, 0x4D6268FF, 0x162248FF, 0x272F4BFF, 0x7D6256FF, 0x9EA4ABFF, 0x9C8D71FF, 0x6D1822FF, 0x4E6881FF,
  3581. 0x9C9C98FF, 0x917347FF, 0x661C26FF, 0x949D9FFF, 0xA4A7A5FF, 0x8E8C46FF, 0x341A1EFF, 0x6A7A8CFF, 0xAAAD8EFF, 0xAB988FFF,
  3582. 0x851F2EFF, 0x6F8297FF, 0x585853FF, 0x9AA790FF, 0x601A23FF, 0x20202CFF, 0xA4A096FF, 0xAA9D84FF, 0x78222BFF, 0x0E316DFF,
  3583. 0x722A3FFF, 0x7B715EFF, 0x741D28FF, 0x1E2E32FF, 0x4D322FFF, 0x7C1B44FF, 0x2E5B20FF, 0x395A83FF, 0x6D2837FF, 0xA7A28FFF,
  3584. 0xAFB1B1FF, 0x364155FF, 0x6D6C6EFF, 0x0F6A89FF, 0x204B6BFF, 0x2B3E57FF, 0x9B9F9DFF, 0x6C8495FF, 0x4D8495FF, 0xAE9B7FFF,
  3585. 0x406C8FFF, 0x1F253BFF, 0xAB9276FF, 0x134573FF, 0x96816CFF, 0x64686AFF, 0x105082FF, 0xA19983FF, 0x385694FF, 0x525661FF,
  3586. 0x7F6956FF, 0x8C929AFF, 0x596E87FF, 0x473532FF, 0x44624FFF, 0x730A27FF, 0x223457FF, 0x640D1BFF, 0xA3ADC6FF, 0x695853FF,
  3587. 0x9B8B80FF, 0x620B1CFF, 0x5B5D5EFF, 0x624428FF, 0x731827FF, 0x1B376DFF, 0xEC6AAEFF, 0x000000FF, 0x177517FF, 0x210606FF,
  3588. 0x125478FF, 0x452A0DFF, 0x571E1EFF, 0x010701FF, 0x25225AFF, 0x2C89AAFF, 0x8A4DBDFF, 0x35963AFF, 0xB7B7B7FF, 0x464C8DFF,
  3589. 0x84888CFF, 0x817867FF, 0x817A26FF, 0x6A506FFF, 0x583E6FFF, 0x8CB972FF, 0x824F78FF, 0x6D276AFF, 0x1E1D13FF, 0x1E1306FF,
  3590. 0x1F2518FF, 0x2C4531FF, 0x1E4C99FF, 0x2E5F43FF, 0x1E9948FF, 0x1E9999FF, 0x999976FF, 0x7C8499FF, 0x992E1EFF, 0x2C1E08FF,
  3591. 0x142407FF, 0x993E4DFF, 0x1E4C99FF, 0x198181FF, 0x1A292AFF, 0x16616FFF, 0x1B6687FF, 0x6C3F99FF, 0x481A0EFF, 0x7A7399FF,
  3592. 0x746D99FF, 0x53387EFF, 0x222407FF, 0x3E190CFF, 0x46210EFF, 0x991E1EFF, 0x8D4C8DFF, 0x805B80FF, 0x7B3E7EFF, 0x3C1737FF,
  3593. 0x733517FF, 0x781818FF, 0x83341AFF, 0x8E2F1CFF, 0x7E3E53FF, 0x7C6D7CFF, 0x020C02FF, 0x072407FF, 0x163012FF, 0x16301BFF,
  3594. 0x642B4FFF, 0x368452FF, 0x999590FF, 0x818D96FF, 0x99991EFF, 0x7F994CFF, 0x839292FF, 0x788222FF, 0x2B3C99FF, 0x3A3A0BFF,
  3595. 0x8A794EFF, 0x0E1F49FF, 0x15371CFF, 0x15273AFF, 0x375775FF, 0x060820FF, 0x071326FF, 0x20394BFF, 0x2C5089FF, 0x15426CFF,
  3596. 0x103250FF, 0x241663FF, 0x692015FF, 0x8C8D94FF, 0x516013FF, 0x090F02FF, 0x8C573AFF, 0x52888EFF, 0x995C52FF, 0x99581EFF,
  3597. 0x993A63FF, 0x998F4EFF, 0x99311EFF, 0x0D1842FF, 0x521E1EFF, 0x42420DFF, 0x4C991EFF, 0x082A1DFF, 0x96821DFF, 0x197F19FF,
  3598. 0x3B141FFF, 0x745217FF, 0x893F8DFF, 0x7E1A6CFF, 0x0B370BFF, 0x27450DFF, 0x071F24FF, 0x784573FF, 0x8A653AFF, 0x732617FF,
  3599. 0x319490FF, 0x56941DFF, 0x59163DFF, 0x1B8A2FFF, 0x38160BFF, 0x041804FF, 0x355D8EFF, 0x2E3F5BFF, 0x561A28FF, 0x4E0E27FF,
  3600. 0x706C67FF, 0x3B3E42FF, 0x2E2D33FF, 0x7B7E7DFF, 0x4A4442FF, 0x28344EFF
  3601. };*/
  3602. enum e_SittingPositions
  3603. {
  3604. e_SittingIn[24],
  3605. e_SittingOut[24],
  3606. Float:e_SittingX,
  3607. Float:e_SittingY,
  3608. Float:e_SittingZ,
  3609. Float:e_SittingA
  3610. };
  3611. new const g_SittingPositions[][e_SittingPositions] =
  3612. {
  3613. {"FF_SIT_IN_L", "FF_SIT_OUT_L_180", 374.0676, -181.0147, 1000.6328, 180.0000},
  3614. {"FF_SIT_IN_L", "FF_SIT_OUT_L_180", 374.0782, -184.1134, 1000.6328, 180.0000},
  3615. {"FF_SIT_IN_L", "FF_SIT_OUT_L_180", 373.8982, -187.0960, 1000.6401, 180.0000},
  3616. {"FF_SIT_IN_L", "FF_SIT_OUT_L_180", 373.9221, -190.0732, 1000.6401, 180.0000},
  3617. {"FF_SIT_IN_L", "FF_SIT_OUT_L_180", 375.1001, -189.6535, 1000.6401, 0.0000},
  3618. {"FF_SIT_IN_L", "FF_SIT_OUT_L_180", 375.0905, -187.1382, 1000.6401, 0.0000},
  3619. {"FF_SIT_IN_L", "FF_SIT_OUT_L_180", 375.0905, -184.6665, 1000.6328, 0.0000},
  3620. {"FF_SIT_IN_L", "FF_SIT_OUT_L_180", 375.0905, -182.2018, 1000.6328, 0.0000},
  3621. {"FF_SIT_IN_R", "FF_SIT_OUT_R_180", 373.9148, -182.6303, 1000.6328, 0.0000},
  3622. {"FF_SIT_IN_R", "FF_SIT_OUT_R_180", 373.8991, -185.7240, 1000.6401, 0.0000},
  3623. {"FF_SIT_IN_R", "FF_SIT_OUT_R_180", 373.9482, -188.6557, 1000.6401, 0.0000},
  3624. {"FF_SIT_IN_R", "FF_SIT_OUT_R_180", 374.0638, -191.7607, 1000.6328, 0.0000},
  3625. {"FF_SIT_IN_R", "FF_SIT_OUT_R_180", 375.1168, -188.4465, 1000.6401, 180.0000},
  3626. {"FF_SIT_IN_R", "FF_SIT_OUT_R_180", 375.0603, -185.9716, 1000.6401, 180.0000},
  3627. {"FF_SIT_IN_R", "FF_SIT_OUT_R_180", 375.1057, -183.4811, 1000.6328, 180.0000},
  3628. {"FF_SIT_IN_R", "FF_SIT_OUT_R_180", 375.0972, -180.9725, 1000.6328, 180.0000}
  3629. };
  3630. new const g_ValidObjectModels[] =
  3631. {
  3632. 320, 321, 322, 323, 324, 325, 326, 327, 328, 330, 331, 333, 334, 335, 336, 337, 338, 339, 341,
  3633. 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
  3634. 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 615, 616, 617, 618, 619, 620,
  3635. 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639,
  3636. 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658,
  3637. 659, 660, 661, 664, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683,
  3638. 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 700, 701, 702, 703,
  3639. 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722,
  3640. 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741,
  3641. 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760,
  3642. 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779,
  3643. 780, 781, 782, 789, 790, 791, 792, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811,
  3644. 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830,
  3645. 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849,
  3646. 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868,
  3647. 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887,
  3648. 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906,
  3649. 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928,
  3650. 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947,
  3651. 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 966, 967,
  3652. 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986,
  3653. 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 1000, 1001, 1002, 1003, 1004, 1005,
  3654. 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021,
  3655. 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037,
  3656. 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053,
  3657. 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,
  3658. 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085,
  3659. 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101,
  3660. 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117,
  3661. 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133,
  3662. 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149,
  3663. 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165,
  3664. 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181,
  3665. 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1207, 1208, 1209, 1210,
  3666. 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226,
  3667. 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242,
  3668. 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258,
  3669. 1259, 1260, 1262, 1263, 1264, 1265, 1267, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277,
  3670. 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293,
  3671. 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309,
  3672. 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1327,
  3673. 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343,
  3674. 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359,
  3675. 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375,
  3676. 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391,
  3677. 1392, 1393, 1394, 1395, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418,
  3678. 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434,
  3679. 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450,
  3680. 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466,
  3681. 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482,
  3682. 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498,
  3683. 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514,
  3684. 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530,
  3685. 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546,
  3686. 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562,
  3687. 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1574, 1575, 1576, 1577, 1578, 1579,
  3688. 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595,
  3689. 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611,
  3690. 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627,
  3691. 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643,
  3692. 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659,
  3693. 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1675, 1676,
  3694. 1677, 1679, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694,
  3695. 1695, 1696, 1697, 1698, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711,
  3696. 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727,
  3697. 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743,
  3698. 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759,
  3699. 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775,
  3700. 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791,
  3701. 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807,
  3702. 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823,
  3703. 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839,
  3704. 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855,
  3705. 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871,
  3706. 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887,
  3707. 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903,
  3708. 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919,
  3709. 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935,
  3710. 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951,
  3711. 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967,
  3712. 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983,
  3713. 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
  3714. 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015,
  3715. 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031,
  3716. 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047,
  3717. 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063,
  3718. 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079,
  3719. 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095,
  3720. 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111,
  3721. 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127,
  3722. 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143,
  3723. 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159,
  3724. 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175,
  3725. 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191,
  3726. 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207,
  3727. 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223,
  3728. 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239,
  3729. 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255,
  3730. 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271,
  3731. 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287,
  3732. 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303,
  3733. 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319,
  3734. 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335,
  3735. 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351,
  3736. 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367,
  3737. 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383,
  3738. 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399,
  3739. 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415,
  3740. 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431,
  3741. 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447,
  3742. 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463,
  3743. 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479,
  3744. 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495,
  3745. 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511,
  3746. 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527,
  3747. 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543,
  3748. 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559,
  3749. 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575,
  3750. 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591,
  3751. 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607,
  3752. 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623,
  3753. 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639,
  3754. 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655,
  3755. 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671,
  3756. 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687,
  3757. 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703,
  3758. 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719,
  3759. 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735,
  3760. 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751,
  3761. 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767,
  3762. 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783,
  3763. 2784, 2785, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801,
  3764. 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817,
  3765. 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833,
  3766. 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849,
  3767. 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865,
  3768. 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881,
  3769. 2882, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899,
  3770. 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915,
  3771. 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931,
  3772. 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947,
  3773. 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963,
  3774. 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979,
  3775. 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995,
  3776. 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011,
  3777. 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027,
  3778. 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043,
  3779. 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059,
  3780. 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075,
  3781. 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091,
  3782. 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107,
  3783. 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3119, 3120, 3121, 3122, 3123, 3124,
  3784. 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3167, 3168, 3169, 3170, 3171,
  3785. 3172, 3173, 3174, 3175, 3178, 3187, 3193, 3214, 3221, 3241, 3242, 3243, 3244, 3246, 3249, 3250,
  3786. 3252, 3253, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3267, 3268, 3269,
  3787. 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285,
  3788. 3286, 3287, 3292, 3293, 3294, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312,
  3789. 3313, 3314, 3315, 3316, 3317, 3330, 3331, 3334, 3335, 3336, 3337, 3350, 3351, 3352, 3353, 3354,
  3790. 3355, 3356, 3359, 3361, 3362, 3363, 3364, 3374, 3375, 3378, 3379, 3380, 3381, 3383, 3384, 3385,
  3791. 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401,
  3792. 3402, 3403, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3414, 3415, 3417, 3418, 3419, 3425, 3426,
  3793. 3427, 3428, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443,
  3794. 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459,
  3795. 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475,
  3796. 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3491, 3493, 3494, 3496, 3497, 3498, 3499, 3501, 3502,
  3797. 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518,
  3798. 3519, 3520, 3521, 3522, 3524, 3525, 3526, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3550, 3554,
  3799. 3555, 3556, 3557, 3558, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575,
  3800. 3576, 3577, 3578, 3580, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3593, 3594, 3595,
  3801. 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3612, 3613,
  3802. 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629,
  3803. 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3646,
  3804. 3648, 3649, 3651, 3653, 3655, 3657, 3658, 3659, 3660, 3661, 3663, 3664, 3665, 3666, 3671, 3673,
  3805. 3674, 3675, 3676, 3677, 3678, 3684, 3689, 3694, 3697, 3698, 3700, 3702, 3704, 3707, 3711, 3713,
  3806. 3715, 3717, 3722, 3724, 3741, 3743, 3749, 3752, 3753, 3754, 3755, 3757, 3759, 3761, 3762, 3763,
  3807. 3764, 3765, 3771, 3776, 3781, 3783, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794,
  3808. 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810,
  3809. 3811, 3812, 3813, 3814, 3816, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828,
  3810. 3829, 3830, 3842, 3843, 3844, 3845, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859,
  3811. 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3872, 3873, 3875, 3876, 3877, 3878, 3879, 3881,
  3812. 3882, 3884, 3885, 3886, 3887, 3890, 3891, 3892, 3893, 3894, 3895, 3897, 3898, 3899, 3900, 3902,
  3813. 3903, 3905, 3906, 3907, 3910, 3911, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923,
  3814. 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939,
  3815. 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955,
  3816. 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971,
  3817. 3972, 3973, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988,
  3818. 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 4000, 4001, 4002, 4003, 4004, 4005,
  3819. 4006, 4007, 4008, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022,
  3820. 4023, 4027, 4028, 4029, 4030, 4032, 4033, 4034, 4048, 4058, 4059, 4060, 4079, 4084, 4085, 4086,
  3821. 4087, 4088, 4089, 4090, 4091, 4099, 4100, 4101, 4102, 4103, 4106, 4107, 4108, 4109, 4110, 4112,
  3822. 4113, 4114, 4117, 4120, 4121, 4122, 4123, 4125, 4127, 4128, 4129, 4131, 4133, 4139, 4141, 4142,
  3823. 4144, 4146, 4148, 4150, 4152, 4154, 4156, 4158, 4160, 4163, 4165, 4168, 4170, 4171, 4172, 4173,
  3824. 4174, 4175, 4176, 4178, 4180, 4182, 4183, 4184, 4185, 4186, 4188, 4189, 4190, 4192, 4193, 4195,
  3825. 4196, 4197, 4198, 4199, 4201, 4202, 4203, 4205, 4206, 4207, 4209, 4212, 4213, 4214, 4215, 4216,
  3826. 4217, 4218, 4219, 4220, 4221, 4222, 4227, 4230, 4231, 4232, 4233, 4235, 4238, 4239, 4240, 4241,
  3827. 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257,
  3828. 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273,
  3829. 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289,
  3830. 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305,
  3831. 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321,
  3832. 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337,
  3833. 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353,
  3834. 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369,
  3835. 4370, 4371, 4372, 4373, 4374, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514,
  3836. 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4533, 4535, 4538,
  3837. 4540, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4562, 4563, 4564, 4565,
  3838. 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4584, 4585, 4586, 4587, 4588, 4589,
  3839. 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605,
  3840. 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651,
  3841. 4652, 4653, 4654, 4656, 4658, 4660, 4662, 4664, 4666, 4679, 4681, 4682, 4683, 4684, 4685, 4690,
  3842. 4691, 4692, 4694, 4695, 4697, 4700, 4701, 4702, 4703, 4708, 4710, 4711, 4712, 4714, 4715, 4716,
  3843. 4717, 4718, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4729, 4730, 4731, 4732, 4733, 4734,
  3844. 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750,
  3845. 4751, 4752, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819,
  3846. 4820, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835,
  3847. 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851,
  3848. 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867,
  3849. 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 4882, 4883,
  3850. 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4894, 4895, 4896, 4897, 4898, 4981, 4982,
  3851. 4983, 4984, 4985, 4986, 4988, 4990, 4991, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000,
  3852. 5001, 5002, 5003, 5004, 5005, 5006, 5007, 5009, 5013, 5016, 5017, 5020, 5021, 5023, 5024, 5025,
  3853. 5026, 5028, 5030, 5031, 5032, 5033, 5034, 5036, 5038, 5040, 5042, 5043, 5044, 5046, 5051, 5052,
  3854. 5056, 5057, 5058, 5059, 5060, 5061, 5062, 5064, 5066, 5068, 5069, 5070, 5071, 5072, 5073, 5074,
  3855. 5075, 5076, 5077, 5078, 5079, 5080, 5081, 5082, 5083, 5084, 5086, 5087, 5088, 5089, 5105, 5106,
  3856. 5107, 5108, 5109, 5110, 5111, 5112, 5113, 5114, 5115, 5116, 5117, 5118, 5119, 5120, 5121, 5122,
  3857. 5123, 5124, 5125, 5126, 5127, 5128, 5129, 5130, 5131, 5132, 5133, 5134, 5135, 5136, 5137, 5138,
  3858. 5139, 5140, 5141, 5142, 5143, 5144, 5145, 5146, 5147, 5148, 5149, 5150, 5151, 5152, 5153, 5154,
  3859. 5155, 5156, 5157, 5158, 5160, 5166, 5167, 5168, 5169, 5170, 5171, 5172, 5173, 5174, 5175, 5176,
  3860. 5177, 5178, 5179, 5180, 5181, 5182, 5183, 5184, 5185, 5186, 5187, 5188, 5189, 5190, 5191, 5192,
  3861. 5231, 5232, 5233, 5234, 5243, 5244, 5250, 5259, 5260, 5261, 5262, 5265, 5266, 5267, 5268, 5269,
  3862. 5270, 5271, 5272, 5273, 5274, 5275, 5276, 5277, 5278, 5279, 5290, 5291, 5292, 5293, 5294, 5295,
  3863. 5296, 5297, 5298, 5299, 5301, 5302, 5306, 5308, 5309, 5310, 5311, 5312, 5313, 5314, 5322, 5323,
  3864. 5324, 5325, 5326, 5327, 5328, 5329, 5330, 5333, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5347,
  3865. 5349, 5351, 5353, 5355, 5358, 5363, 5364, 5366, 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374,
  3866. 5375, 5390, 5391, 5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399, 5400, 5401, 5402, 5403, 5404,
  3867. 5405, 5406, 5407, 5408, 5409, 5410, 5411, 5412, 5413, 5414, 5415, 5416, 5417, 5418, 5419, 5420,
  3868. 5421, 5422, 5423, 5424, 5425, 5426, 5427, 5428, 5429, 5430, 5431, 5432, 5433, 5434, 5435, 5436,
  3869. 5437, 5438, 5439, 5440, 5441, 5442, 5443, 5444, 5445, 5446, 5447, 5448, 5449, 5450, 5451, 5452,
  3870. 5453, 5456, 5457, 5458, 5459, 5461, 5462, 5463, 5464, 5465, 5467, 5469, 5470, 5471, 5472, 5473,
  3871. 5474, 5475, 5476, 5477, 5478, 5479, 5480, 5481, 5482, 5483, 5484, 5485, 5486, 5487, 5488, 5489,
  3872. 5490, 5491, 5492, 5493, 5494, 5495, 5496, 5497, 5498, 5499, 5500, 5501, 5502, 5503, 5504, 5505,
  3873. 5506, 5507, 5508, 5509, 5510, 5511, 5512, 5513, 5518, 5519, 5520, 5521, 5522, 5528, 5532, 5565,
  3874. 5624, 5626, 5627, 5628, 5629, 5630, 5631, 5632, 5633, 5634, 5635, 5636, 5637, 5638, 5639, 5640,
  3875. 5641, 5642, 5643, 5644, 5650, 5652, 5654, 5655, 5656, 5660, 5661, 5662, 5663, 5665, 5668, 5674,
  3876. 5676, 5677, 5678, 5679, 5681, 5682, 5703, 5704, 5705, 5706, 5707, 5708, 5709, 5710, 5711, 5712,
  3877. 5713, 5714, 5715, 5716, 5717, 5718, 5719, 5720, 5721, 5722, 5723, 5724, 5725, 5726, 5727, 5728,
  3878. 5729, 5730, 5731, 5732, 5733, 5734, 5735, 5736, 5737, 5738, 5739, 5740, 5741, 5742, 5743, 5744,
  3879. 5745, 5746, 5747, 5748, 5749, 5750, 5751, 5752, 5753, 5754, 5755, 5756, 5757, 5758, 5759, 5760,
  3880. 5761, 5762, 5763, 5764, 5765, 5766, 5767, 5768, 5769, 5770, 5771, 5772, 5773, 5774, 5775, 5776,
  3881. 5777, 5778, 5779, 5780, 5781, 5782, 5783, 5784, 5785, 5786, 5787, 5788, 5789, 5790, 5791, 5792,
  3882. 5793, 5794, 5795, 5796, 5797, 5798, 5799, 5800, 5801, 5802, 5803, 5804, 5805, 5806, 5807, 5808,
  3883. 5809, 5810, 5811, 5812, 5813, 5814, 5815, 5816, 5817, 5818, 5819, 5820, 5821, 5822, 5823, 5835,
  3884. 5836, 5837, 5838, 5844, 5845, 5846, 5847, 5848, 5853, 5854, 5855, 5856, 5857, 5859, 5860, 5861,
  3885. 5862, 5863, 5864, 5865, 5866, 5868, 5870, 5871, 5872, 5873, 5874, 5875, 5876, 5877, 5878, 5881,
  3886. 5882, 5885, 5886, 5887, 5888, 5891, 5892, 5893, 5896, 5986, 5987, 5990, 5991, 5992, 5993, 5994,
  3887. 5995, 5998, 5999, 6001, 6006, 6007, 6010, 6035, 6036, 6037, 6038, 6039, 6040, 6041, 6042, 6043,
  3888. 6044, 6045, 6046, 6047, 6048, 6049, 6050, 6051, 6052, 6053, 6054, 6055, 6056, 6057, 6058, 6059,
  3889. 6060, 6061, 6062, 6063, 6064, 6065, 6066, 6087, 6088, 6094, 6095, 6096, 6098, 6099, 6100, 6101,
  3890. 6102, 6103, 6104, 6110, 6111, 6112, 6113, 6114, 6115, 6116, 6117, 6118, 6119, 6120, 6121, 6122,
  3891. 6123, 6124, 6125, 6126, 6127, 6128, 6129, 6130, 6132, 6133, 6134, 6135, 6136, 6137, 6138, 6145,
  3892. 6148, 6150, 6151, 6152, 6157, 6158, 6159, 6160, 6165, 6186, 6187, 6188, 6189, 6192, 6193, 6194,
  3893. 6195, 6196, 6199, 6203, 6204, 6205, 6209, 6210, 6211, 6212, 6213, 6214, 6217, 6223, 6225, 6227,
  3894. 6228, 6229, 6230, 6231, 6232, 6233, 6234, 6235, 6236, 6237, 6248, 6249, 6250, 6251, 6252, 6257,
  3895. 6280, 6281, 6282, 6283, 6284, 6285, 6286, 6287, 6288, 6289, 6290, 6291, 6292, 6293, 6294, 6295,
  3896. 6296, 6297, 6298, 6299, 6300, 6301, 6302, 6303, 6304, 6305, 6306, 6307, 6308, 6309, 6310, 6311,
  3897. 6312, 6313, 6314, 6315, 6316, 6317, 6318, 6319, 6320, 6321, 6322, 6323, 6324, 6325, 6326, 6327,
  3898. 6328, 6329, 6330, 6331, 6332, 6333, 6334, 6336, 6337, 6338, 6340, 6341, 6342, 6343, 6344, 6345,
  3899. 6347, 6349, 6350, 6351, 6352, 6353, 6354, 6355, 6356, 6357, 6362, 6363, 6364, 6366, 6368, 6369,
  3900. 6370, 6371, 6372, 6373, 6385, 6386, 6387, 6388, 6389, 6390, 6391, 6393, 6397, 6398, 6399, 6400,
  3901. 6403, 6404, 6405, 6406, 6407, 6411, 6412, 6413, 6416, 6417, 6421, 6422, 6427, 6428, 6430, 6431,
  3902. 6436, 6443, 6444, 6448, 6449, 6450, 6451, 6457, 6458, 6461, 6462, 6466, 6487, 6488, 6489, 6490,
  3903. 6497, 6499, 6501, 6502, 6507, 6508, 6509, 6513, 6514, 6516, 6517, 6518, 6519, 6520, 6521, 6522,
  3904. 6524, 6863, 6864, 6865, 6866, 6867, 6868, 6869, 6871, 6872, 6873, 6874, 6875, 6876, 6877, 6878,
  3905. 6879, 6880, 6881, 6882, 6883, 6884, 6885, 6886, 6887, 6888, 6897, 6898, 6899, 6900, 6907, 6908,
  3906. 6909, 6910, 6912, 6913, 6914, 6915, 6916, 6917, 6919, 6920, 6921, 6922, 6923, 6924, 6925, 6926,
  3907. 6928, 6929, 6930, 6931, 6932, 6933, 6934, 6944, 6945, 6946, 6947, 6948, 6949, 6950, 6951, 6952,
  3908. 6953, 6954, 6955, 6956, 6957, 6958, 6959, 6960, 6961, 6962, 6963, 6964, 6965, 6966, 6967, 6968,
  3909. 6969, 6970, 6971, 6972, 6973, 6974, 6975, 6976, 6977, 6978, 6979, 6980, 6981, 6982, 6983, 6984,
  3910. 6985, 6986, 6987, 6988, 6989, 6990, 6991, 6993, 6994, 6997, 6999, 7009, 7010, 7011, 7012, 7013,
  3911. 7014, 7015, 7016, 7017, 7018, 7019, 7020, 7021, 7022, 7023, 7024, 7025, 7026, 7027, 7028, 7029,
  3912. 7030, 7031, 7032, 7033, 7034, 7035, 7036, 7037, 7038, 7039, 7040, 7041, 7042, 7043, 7044, 7045,
  3913. 7046, 7047, 7048, 7049, 7050, 7051, 7052, 7053, 7054, 7055, 7056, 7057, 7064, 7069, 7071, 7072,
  3914. 7073, 7075, 7076, 7077, 7078, 7079, 7080, 7081, 7082, 7083, 7084, 7085, 7086, 7087, 7088, 7089,
  3915. 7090, 7091, 7092, 7093, 7094, 7095, 7096, 7097, 7098, 7099, 7100, 7101, 7102, 7103, 7104, 7105,
  3916. 7153, 7172, 7184, 7186, 7187, 7188, 7189, 7190, 7191, 7192, 7196, 7197, 7198, 7200, 7201, 7202,
  3917. 7203, 7204, 7205, 7206, 7207, 7208, 7209, 7210, 7212, 7213, 7217, 7218, 7220, 7221, 7222, 7223,
  3918. 7224, 7226, 7227, 7228, 7229, 7230, 7231, 7232, 7233, 7234, 7236, 7238, 7240, 7242, 7243, 7244,
  3919. 7245, 7246, 7247, 7248, 7249, 7250, 7251, 7252, 7253, 7254, 7263, 7264, 7265, 7266, 7268, 7269,
  3920. 7271, 7272, 7273, 7276, 7277, 7280, 7287, 7288, 7289, 7290, 7291, 7292, 7294, 7295, 7296, 7297,
  3921. 7298, 7299, 7300, 7301, 7302, 7303, 7304, 7305, 7306, 7307, 7308, 7309, 7310, 7311, 7312, 7313,
  3922. 7314, 7315, 7317, 7319, 7320, 7321, 7324, 7326, 7327, 7331, 7332, 7333, 7334, 7335, 7336, 7337,
  3923. 7344, 7347, 7353, 7355, 7357, 7359, 7361, 7362, 7364, 7366, 7367, 7368, 7369, 7370, 7371, 7377,
  3924. 7378, 7379, 7380, 7381, 7383, 7387, 7388, 7389, 7390, 7391, 7392, 7415, 7416, 7417, 7418, 7419,
  3925. 7420, 7421, 7422, 7423, 7424, 7425, 7426, 7427, 7428, 7429, 7430, 7431, 7432, 7433, 7434, 7435,
  3926. 7436, 7437, 7438, 7439, 7440, 7441, 7442, 7443, 7444, 7445, 7446, 7447, 7448, 7449, 7450, 7451,
  3927. 7452, 7453, 7454, 7455, 7456, 7457, 7458, 7459, 7460, 7461, 7462, 7463, 7464, 7465, 7466, 7467,
  3928. 7468, 7469, 7470, 7471, 7472, 7473, 7474, 7475, 7476, 7477, 7478, 7479, 7480, 7481, 7482, 7483,
  3929. 7484, 7485, 7486, 7488, 7489, 7490, 7491, 7492, 7493, 7494, 7495, 7496, 7497, 7498, 7499, 7500,
  3930. 7501, 7502, 7503, 7504, 7505, 7506, 7507, 7508, 7509, 7510, 7511, 7512, 7513, 7514, 7515, 7516,
  3931. 7517, 7518, 7519, 7520, 7521, 7522, 7523, 7524, 7525, 7526, 7527, 7528, 7529, 7530, 7531, 7532,
  3932. 7533, 7534, 7535, 7536, 7537, 7538, 7539, 7540, 7541, 7542, 7543, 7544, 7545, 7546, 7547, 7548,
  3933. 7549, 7550, 7551, 7552, 7553, 7554, 7555, 7556, 7557, 7558, 7559, 7560, 7561, 7562, 7563, 7564,
  3934. 7565, 7566, 7567, 7568, 7569, 7570, 7571, 7572, 7573, 7574, 7575, 7576, 7577, 7578, 7579, 7580,
  3935. 7581, 7582, 7583, 7584, 7585, 7586, 7587, 7588, 7589, 7590, 7591, 7592, 7593, 7595, 7596, 7597,
  3936. 7598, 7599, 7600, 7601, 7602, 7603, 7604, 7605, 7606, 7607, 7608, 7609, 7610, 7611, 7612, 7613,
  3937. 7614, 7615, 7616, 7617, 7618, 7619, 7620, 7621, 7622, 7623, 7624, 7625, 7626, 7627, 7628, 7629,
  3938. 7630, 7631, 7632, 7633, 7634, 7635, 7636, 7637, 7638, 7639, 7640, 7641, 7642, 7643, 7644, 7645,
  3939. 7646, 7647, 7648, 7649, 7650, 7651, 7652, 7653, 7654, 7655, 7656, 7657, 7658, 7659, 7660, 7661,
  3940. 7662, 7663, 7664, 7665, 7666, 7681, 7692, 7696, 7707, 7708, 7709, 7729, 7730, 7731, 7755, 7832,
  3941. 7834, 7836, 7837, 7838, 7839, 7840, 7841, 7842, 7849, 7852, 7854, 7861, 7862, 7863, 7864, 7865,
  3942. 7866, 7867, 7868, 7878, 7880, 7881, 7882, 7884, 7885, 7889, 7891, 7892, 7893, 7894, 7900, 7901,
  3943. 7902, 7903, 7904, 7905, 7906, 7907, 7908, 7909, 7910, 7911, 7912, 7913, 7914, 7915, 7916, 7917,
  3944. 7918, 7919, 7920, 7921, 7922, 7923, 7924, 7925, 7926, 7927, 7929, 7930, 7931, 7932, 7933, 7934,
  3945. 7938, 7939, 7940, 7942, 7943, 7944, 7945, 7947, 7950, 7952, 7953, 7954, 7955, 7956, 7963, 7965,
  3946. 7967, 7969, 7971, 7972, 7973, 7978, 7979, 7980, 7981, 7982, 7983, 7984, 7985, 7986, 7987, 7988,
  3947. 7989, 7990, 7991, 7992, 7993, 7994, 7995, 7996, 7997, 7998, 7999, 8000, 8001, 8002, 8003, 8004,
  3948. 8005, 8006, 8007, 8008, 8009, 8010, 8033, 8034, 8035, 8036, 8037, 8038, 8039, 8040, 8041, 8042,
  3949. 8043, 8044, 8045, 8046, 8047, 8048, 8049, 8050, 8051, 8052, 8053, 8054, 8055, 8056, 8057, 8058,
  3950. 8059, 8060, 8061, 8062, 8063, 8064, 8065, 8066, 8067, 8068, 8069, 8070, 8071, 8072, 8073, 8074,
  3951. 8075, 8076, 8077, 8078, 8079, 8080, 8081, 8082, 8083, 8084, 8085, 8086, 8087, 8091, 8128, 8130,
  3952. 8131, 8132, 8133, 8134, 8135, 8136, 8137, 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154, 8155,
  3953. 8165, 8167, 8168, 8169, 8171, 8172, 8173, 8174, 8175, 8176, 8177, 8178, 8185, 8186, 8187, 8188,
  3954. 8189, 8194, 8198, 8199, 8200, 8201, 8202, 8206, 8207, 8208, 8209, 8210, 8212, 8213, 8214, 8215,
  3955. 8216, 8217, 8218, 8219, 8228, 8229, 8230, 8231, 8232, 8236, 8237, 8240, 8242, 8244, 8245, 8246,
  3956. 8247, 8249, 8251, 8253, 8254, 8255, 8256, 8260, 8262, 8263, 8264, 8281, 8283, 8285, 8286, 8287,
  3957. 8288, 8290, 8292, 8293, 8294, 8300, 8302, 8305, 8306, 8308, 8310, 8311, 8313, 8314, 8315, 8319,
  3958. 8320, 8321, 8322, 8323, 8324, 8325, 8326, 8327, 8328, 8329, 8330, 8331, 8332, 8333, 8335, 8337,
  3959. 8339, 8341, 8342, 8343, 8344, 8345, 8350, 8351, 8352, 8353, 8354, 8355, 8356, 8357, 8368, 8369,
  3960. 8370, 8371, 8372, 8373, 8375, 8377, 8378, 8380, 8382, 8383, 8386, 8388, 8390, 8391, 8392, 8393,
  3961. 8394, 8395, 8396, 8397, 8398, 8399, 8400, 8401, 8402, 8403, 8404, 8405, 8406, 8407, 8408, 8409,
  3962. 8410, 8411, 8412, 8416, 8417, 8418, 8419, 8420, 8421, 8422, 8423, 8424, 8425, 8426, 8427, 8428,
  3963. 8429, 8430, 8431, 8432, 8433, 8434, 8435, 8436, 8437, 8438, 8439, 8440, 8441, 8442, 8443, 8444,
  3964. 8445, 8446, 8447, 8448, 8449, 8450, 8451, 8452, 8453, 8454, 8455, 8456, 8457, 8458, 8459, 8460,
  3965. 8461, 8462, 8463, 8464, 8465, 8466, 8467, 8468, 8469, 8470, 8471, 8472, 8473, 8474, 8475, 8476,
  3966. 8477, 8480, 8481, 8482, 8483, 8484, 8485, 8486, 8487, 8488, 8489, 8490, 8491, 8492, 8493, 8494,
  3967. 8495, 8496, 8497, 8498, 8499, 8500, 8501, 8502, 8503, 8504, 8505, 8506, 8507, 8508, 8509, 8510,
  3968. 8511, 8512, 8513, 8514, 8515, 8516, 8517, 8518, 8519, 8520, 8521, 8522, 8523, 8524, 8525, 8526,
  3969. 8527, 8528, 8529, 8530, 8531, 8532, 8533, 8534, 8535, 8536, 8537, 8538, 8539, 8540, 8541, 8542,
  3970. 8543, 8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, 8554, 8555, 8556, 8557, 8558,
  3971. 8559, 8560, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, 8570, 8571, 8572, 8573, 8574,
  3972. 8575, 8576, 8577, 8578, 8579, 8580, 8581, 8582, 8583, 8584, 8585, 8586, 8587, 8588, 8589, 8590,
  3973. 8591, 8592, 8593, 8594, 8595, 8596, 8597, 8607, 8608, 8609, 8610, 8611, 8612, 8613, 8614, 8615,
  3974. 8616, 8617, 8618, 8619, 8620, 8621, 8622, 8623, 8624, 8625, 8626, 8627, 8628, 8629, 8630, 8631,
  3975. 8632, 8633, 8634, 8635, 8636, 8637, 8638, 8639, 8640, 8641, 8642, 8643, 8644, 8645, 8646, 8647,
  3976. 8648, 8649, 8650, 8651, 8652, 8653, 8654, 8655, 8656, 8657, 8658, 8659, 8660, 8661, 8662, 8663,
  3977. 8664, 8665, 8666, 8667, 8668, 8669, 8670, 8671, 8672, 8673, 8674, 8675, 8676, 8677, 8678, 8679,
  3978. 8680, 8681, 8682, 8683, 8684, 8685, 8686, 8687, 8688, 8689, 8710, 8824, 8825, 8826, 8827, 8828,
  3979. 8832, 8833, 8834, 8835, 8836, 8837, 8838, 8839, 8840, 8841, 8842, 8843, 8844, 8845, 8846, 8849,
  3980. 8850, 8851, 8852, 8853, 8854, 8855, 8856, 8857, 8858, 8859, 8860, 8865, 8866, 8867, 8868, 8869,
  3981. 8870, 8871, 8872, 8873, 8874, 8875, 8876, 8877, 8878, 8879, 8880, 8881, 8882, 8883, 8884, 8885,
  3982. 8886, 8887, 8888, 8889, 8932, 8947, 8948, 8954, 8955, 8957, 8969, 8979, 8980, 8981, 8982, 8983,
  3983. 8989, 8990, 8991, 9000, 9001, 9002, 9003, 9004, 9005, 9006, 9007, 9008, 9019, 9020, 9021, 9022,
  3984. 9023, 9024, 9025, 9026, 9027, 9028, 9029, 9030, 9031, 9032, 9033, 9034, 9035, 9036, 9037, 9039,
  3985. 9041, 9042, 9043, 9044, 9045, 9046, 9047, 9052, 9054, 9055, 9056, 9057, 9062, 9064, 9065, 9066,
  3986. 9070, 9071, 9072, 9076, 9078, 9080, 9082, 9083, 9086, 9087, 9088, 9089, 9090, 9093, 9094, 9095,
  3987. 9098, 9099, 9100, 9101, 9104, 9106, 9108, 9109, 9110, 9111, 9112, 9113, 9114, 9115, 9116, 9117,
  3988. 9118, 9119, 9120, 9121, 9122, 9123, 9124, 9125, 9126, 9127, 9128, 9129, 9131, 9132, 9135, 9136,
  3989. 9137, 9138, 9139, 9140, 9150, 9152, 9153, 9154, 9159, 9162, 9163, 9164, 9165, 9166, 9167, 9168,
  3990. 9169, 9171, 9173, 9174, 9175, 9184, 9185, 9186, 9187, 9188, 9189, 9190, 9191, 9192, 9193, 9205,
  3991. 9206, 9207, 9208, 9209, 9210, 9211, 9212, 9213, 9214, 9215, 9216, 9217, 9218, 9219, 9220, 9221,
  3992. 9222, 9223, 9224, 9225, 9226, 9227, 9228, 9229, 9230, 9231, 9232, 9233, 9234, 9235, 9236, 9237,
  3993. 9238, 9239, 9240, 9241, 9242, 9243, 9244, 9245, 9246, 9247, 9248, 9249, 9250, 9251, 9252, 9253,
  3994. 9254, 9255, 9256, 9257, 9258, 9259, 9260, 9261, 9262, 9264, 9265, 9266, 9267, 9269, 9270, 9271,
  3995. 9272, 9273, 9274, 9275, 9276, 9277, 9278, 9279, 9280, 9281, 9282, 9283, 9284, 9285, 9286, 9287,
  3996. 9288, 9289, 9290, 9291, 9292, 9293, 9294, 9295, 9296, 9297, 9298, 9299, 9300, 9301, 9302, 9303,
  3997. 9304, 9305, 9306, 9307, 9308, 9309, 9310, 9311, 9312, 9313, 9314, 9315, 9316, 9317, 9318, 9319,
  3998. 9320, 9321, 9322, 9323, 9324, 9325, 9326, 9327, 9328, 9329, 9330, 9331, 9332, 9333, 9334, 9335,
  3999. 9336, 9337, 9338, 9339, 9340, 9341, 9342, 9343, 9344, 9345, 9346, 9347, 9348, 9349, 9350, 9351,
  4000. 9352, 9353, 9361, 9362, 9437, 9438, 9439, 9440, 9476, 9482, 9483, 9484, 9485, 9486, 9487, 9488,
  4001. 9489, 9490, 9491, 9492, 9493, 9494, 9495, 9496, 9497, 9498, 9499, 9500, 9501, 9502, 9503, 9504,
  4002. 9505, 9506, 9507, 9508, 9509, 9510, 9511, 9512, 9513, 9514, 9515, 9516, 9517, 9518, 9519, 9520,
  4003. 9521, 9522, 9523, 9524, 9525, 9526, 9527, 9528, 9529, 9530, 9547, 9549, 9550, 9551, 9552, 9553,
  4004. 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569,
  4005. 9570, 9571, 9572, 9573, 9575, 9576, 9577, 9578, 9579, 9580, 9581, 9582, 9583, 9584, 9585, 9586,
  4006. 9587, 9588, 9589, 9590, 9591, 9592, 9593, 9594, 9595, 9596, 9597, 9598, 9599, 9600, 9601, 9602,
  4007. 9603, 9604, 9605, 9606, 9607, 9608, 9609, 9610, 9611, 9612, 9613, 9614, 9615, 9616, 9617, 9618,
  4008. 9623, 9624, 9625, 9652, 9653, 9680, 9682, 9683, 9685, 9689, 9690, 9693, 9694, 9696, 9697, 9698,
  4009. 9699, 9700, 9701, 9702, 9703, 9704, 9705, 9706, 9707, 9708, 9709, 9710, 9711, 9712, 9713, 9714,
  4010. 9715, 9716, 9717, 9718, 9719, 9720, 9721, 9722, 9723, 9724, 9725, 9726, 9727, 9728, 9729, 9730,
  4011. 9731, 9732, 9733, 9734, 9735, 9736, 9737, 9738, 9739, 9740, 9741, 9742, 9743, 9744, 9745, 9746,
  4012. 9747, 9748, 9749, 9750, 9751, 9752, 9753, 9754, 9761, 9762, 9763, 9764, 9765, 9766, 9767, 9812,
  4013. 9814, 9815, 9816, 9817, 9818, 9819, 9820, 9821, 9822, 9823, 9824, 9825, 9827, 9829, 9830, 9831,
  4014. 9832, 9833, 9834, 9835, 9836, 9837, 9838, 9858, 9859, 9860, 9863, 9864, 9885, 9886, 9889, 9891,
  4015. 9893, 9894, 9895, 9896, 9897, 9898, 9899, 9900, 9901, 9902, 9903, 9904, 9905, 9906, 9907, 9908,
  4016. 9909, 9910, 9911, 9912, 9913, 9914, 9915, 9916, 9917, 9918, 9919, 9920, 9921, 9922, 9923, 9924,
  4017. 9925, 9926, 9927, 9928, 9929, 9930, 9931, 9932, 9933, 9934, 9946, 9947, 9948, 9949, 9950, 9951,
  4018. 9952, 9953, 9954, 9955, 9956, 9957, 9958, 10008, 10009, 10010, 10011, 10012, 10013, 10014, 10015,
  4019. 10016, 10017, 10018, 10019, 10020, 10021, 10022, 10023, 10024, 10025, 10026, 10027, 10028, 10029,
  4020. 10030, 10031, 10032, 10033, 10034, 10035, 10036, 10037, 10038, 10039, 10040, 10041, 10042, 10043,
  4021. 10044, 10045, 10046, 10047, 10048, 10049, 10050, 10051, 10052, 10053, 10054, 10055, 10056, 10057,
  4022. 10058, 10060, 10061, 10062, 10063, 10064, 10065, 10066, 10067, 10068, 10069, 10070, 10071, 10072,
  4023. 10073, 10074, 10075, 10076, 10077, 10078, 10079, 10080, 10083, 10084, 10086, 10087, 10101, 10110,
  4024. 10111, 10112, 10113, 10114, 10115, 10116, 10117, 10118, 10119, 10120, 10121, 10122, 10123, 10124,
  4025. 10125, 10126, 10127, 10128, 10129, 10130, 10131, 10132, 10133, 10134, 10135, 10136, 10137, 10138,
  4026. 10139, 10140, 10142, 10143, 10145, 10146, 10147, 10148, 10149, 10150, 10151, 10152, 10153, 10154,
  4027. 10165, 10166, 10173, 10174, 10175, 10176, 10177, 10178, 10179, 10180, 10181, 10182, 10183, 10184,
  4028. 10185, 10186, 10187, 10188, 10189, 10193, 10194, 10195, 10196, 10197, 10226, 10227, 10228, 10229,
  4029. 10230, 10231, 10233, 10234, 10235, 10236, 10242, 10244, 10245, 10246, 10247, 10248, 10249, 10250,
  4030. 10252, 10255, 10260, 10261, 10262, 10263, 10264, 10265, 10266, 10267, 10270, 10271, 10273, 10274,
  4031. 10275, 10276, 10278, 10280, 10281, 10282, 10287, 10288, 10289, 10290, 10294, 10295, 10296, 10300,
  4032. 10301, 10305, 10306, 10308, 10309, 10310, 10350, 10351, 10352, 10353, 10354, 10355, 10356, 10357,
  4033. 10358, 10359, 10360, 10361, 10362, 10363, 10364, 10365, 10366, 10367, 10368, 10369, 10370, 10371,
  4034. 10372, 10373, 10374, 10375, 10376, 10377, 10378, 10379, 10380, 10381, 10382, 10383, 10384, 10385,
  4035. 10386, 10387, 10388, 10389, 10390, 10391, 10392, 10393, 10394, 10395, 10396, 10397, 10398, 10399,
  4036. 10400, 10401, 10402, 10403, 10404, 10405, 10406, 10407, 10408, 10409, 10410, 10411, 10412, 10413,
  4037. 10414, 10415, 10416, 10417, 10418, 10419, 10420, 10421, 10422, 10423, 10424, 10425, 10426, 10427,
  4038. 10428, 10429, 10430, 10431, 10432, 10433, 10434, 10435, 10436, 10437, 10438, 10439, 10440, 10441,
  4039. 10442, 10443, 10444, 10445, 10446, 10447, 10448, 10449, 10450, 10451, 10452, 10453, 10454, 10455,
  4040. 10456, 10457, 10458, 10459, 10460, 10461, 10462, 10463, 10464, 10465, 10466, 10467, 10468, 10469,
  4041. 10470, 10471, 10472, 10473, 10474, 10475, 10476, 10477, 10478, 10479, 10480, 10481, 10482, 10483,
  4042. 10484, 10485, 10486, 10487, 10488, 10489, 10490, 10491, 10492, 10493, 10558, 10559, 10560, 10561,
  4043. 10562, 10563, 10564, 10565, 10566, 10567, 10568, 10569, 10570, 10571, 10572, 10573, 10574, 10575,
  4044. 10576, 10601, 10606, 10608, 10609, 10610, 10611, 10612, 10613, 10614, 10615, 10616, 10617, 10618,
  4045. 10619, 10621, 10622, 10623, 10624, 10625, 10626, 10627, 10628, 10629, 10630, 10631, 10632, 10633,
  4046. 10634, 10635, 10636, 10637, 10638, 10639, 10649, 10651, 10671, 10672, 10675, 10676, 10682, 10683,
  4047. 10694, 10695, 10696, 10697, 10698, 10699, 10700, 10701, 10702, 10703, 10704, 10705, 10706, 10707,
  4048. 10708, 10709, 10710, 10711, 10712, 10713, 10716, 10718, 10722, 10734, 10735, 10736, 10737, 10738,
  4049. 10739, 10740, 10741, 10742, 10743, 10744, 10750, 10751, 10752, 10753, 10754, 10755, 10756, 10757,
  4050. 10758, 10759, 10760, 10761, 10762, 10763, 10764, 10765, 10766, 10767, 10768, 10769, 10770, 10771,
  4051. 10772, 10773, 10774, 10775, 10776, 10777, 10778, 10779, 10780, 10781, 10782, 10783, 10784, 10785,
  4052. 10786, 10787, 10788, 10789, 10790, 10791, 10792, 10793, 10794, 10795, 10806, 10807, 10808, 10809,
  4053. 10810, 10811, 10814, 10815, 10816, 10817, 10818, 10819, 10820, 10821, 10822, 10823, 10824, 10825,
  4054. 10826, 10827, 10828, 10829, 10830, 10831, 10832, 10833, 10834, 10835, 10836, 10837, 10838, 10839,
  4055. 10840, 10841, 10842, 10843, 10844, 10845, 10846, 10847, 10848, 10849, 10850, 10851, 10852, 10854,
  4056. 10855, 10856, 10857, 10858, 10859, 10860, 10861, 10862, 10863, 10864, 10865, 10866, 10867, 10868,
  4057. 10869, 10870, 10871, 10872, 10873, 10874, 10875, 10885, 10889, 10890, 10891, 10903, 10904, 10905,
  4058. 10917, 10925, 10926, 10927, 10928, 10929, 10930, 10931, 10932, 10933, 10934, 10935, 10936, 10937,
  4059. 10938, 10939, 10940, 10941, 10942, 10943, 10944, 10945, 10946, 10947, 10948, 10949, 10950, 10951,
  4060. 10952, 10953, 10954, 10955, 10956, 10957, 10958, 10959, 10960, 10961, 10962, 10965, 10966, 10967,
  4061. 10968, 10969, 10970, 10971, 10972, 10973, 10974, 10975, 10976, 10977, 10978, 10979, 10980, 10981,
  4062. 10982, 10983, 10984, 10985, 10986, 10987, 10988, 10989, 10990, 10991, 10992, 10993, 10994, 10995,
  4063. 10996, 10997, 10998, 10999, 11000, 11001, 11002, 11003, 11004, 11005, 11006, 11007, 11008, 11009,
  4064. 11010, 11011, 11012, 11013, 11014, 11015, 11071, 11072, 11073, 11074, 11075, 11076, 11077, 11078,
  4065. 11079, 11080, 11081, 11082, 11083, 11084, 11085, 11086, 11087, 11088, 11089, 11090, 11091, 11092,
  4066. 11093, 11094, 11095, 11096, 11097, 11098, 11099, 11100, 11101, 11102, 11103, 11104, 11105, 11106,
  4067. 11107, 11110, 11111, 11112, 11113, 11114, 11115, 11116, 11117, 11118, 11119, 11120, 11121, 11122,
  4068. 11123, 11124, 11125, 11126, 11127, 11128, 11129, 11130, 11131, 11132, 11133, 11134, 11135, 11136,
  4069. 11137, 11138, 11139, 11145, 11146, 11147, 11148, 11149, 11150, 11223, 11224, 11225, 11226, 11228,
  4070. 11229, 11230, 11231, 11232, 11233, 11234, 11235, 11236, 11237, 11238, 11239, 11240, 11241, 11242,
  4071. 11243, 11244, 11245, 11246, 11247, 11252, 11253, 11254, 11255, 11256, 11257, 11258, 11259, 11260,
  4072. 11261, 11280, 11283, 11285, 11287, 11288, 11289, 11290, 11292, 11293, 11295, 11297, 11299, 11301,
  4073. 11302, 11303, 11305, 11306, 11308, 11312, 11313, 11314, 11315, 11316, 11317, 11318, 11319, 11324,
  4074. 11326, 11327, 11332, 11334, 11335, 11337, 11340, 11342, 11343, 11345, 11351, 11352, 11353, 11359,
  4075. 11360, 11362, 11363, 11364, 11365, 11367, 11374, 11379, 11380, 11381, 11382, 11383, 11384, 11385,
  4076. 11386, 11387, 11388, 11389, 11390, 11391, 11392, 11393, 11394, 11395, 11396, 11400, 11401, 11406,
  4077. 11408, 11409, 11410, 11411, 11412, 11413, 11414, 11416, 11417, 11420, 11421, 11422, 11423, 11424,
  4078. 11425, 11426, 11427, 11428, 11429, 11430, 11431, 11432, 11433, 11434, 11435, 11436, 11437, 11438,
  4079. 11439, 11440, 11441, 11442, 11443, 11444, 11445, 11446, 11447, 11448, 11449, 11450, 11451, 11452,
  4080. 11453, 11454, 11455, 11456, 11457, 11458, 11459, 11460, 11461, 11462, 11463, 11464, 11465, 11466,
  4081. 11467, 11468, 11469, 11470, 11471, 11472, 11473, 11474, 11475, 11476, 11477, 11478, 11479, 11480,
  4082. 11481, 11482, 11483, 11484, 11485, 11486, 11487, 11488, 11489, 11490, 11491, 11492, 11493, 11494,
  4083. 11495, 11496, 11497, 11498, 11499, 11500, 11501, 11502, 11503, 11504, 11505, 11506, 11507, 11508,
  4084. 11509, 11510, 11511, 11512, 11513, 11514, 11515, 11516, 11517, 11518, 11519, 11520, 11521, 11522,
  4085. 11523, 11524, 11525, 11526, 11527, 11528, 11529, 11530, 11531, 11532, 11533, 11534, 11535, 11536,
  4086. 11537, 11538, 11539, 11540, 11541, 11542, 11543, 11544, 11545, 11546, 11547, 11548, 11549, 11550,
  4087. 11551, 11552, 11553, 11554, 11555, 11556, 11557, 11558, 11559, 11560, 11561, 11562, 11563, 11564,
  4088. 11565, 11566, 11567, 11568, 11571, 11572, 11579, 11580, 11581, 11607, 11608, 11609, 11610, 11611,
  4089. 11615, 11623, 11625, 11626, 11627, 11628, 11629, 11631, 11647, 11663, 11664, 11665, 11666, 11674,
  4090. 11677, 11678, 11679, 11680, 11681, 11682, 11683, 11684, 11685, 11686, 11687, 11688, 11689, 11690,
  4091. 11691, 11692, 11693, 11694, 11695, 11696, 11697, 11698, 11699, 11700, 11701, 11702, 11704, 11705,
  4092. 11706, 11707, 11708, 11709, 11710, 11711, 11712, 11713, 11714, 11715, 11716, 11717, 11718, 11719,
  4093. 11720, 11721, 11722, 11723, 11724, 11725, 11726, 11727, 11728, 11729, 11730, 11731, 11732, 11733,
  4094. 11734, 11735, 11736, 11737, 11738, 11739, 11740, 11741, 11742, 11743, 11744, 11745, 11746, 11747,
  4095. 11748, 11749, 11750, 11751, 11752, 11753, 12800, 12801, 12802, 12803, 12804, 12805, 12806, 12807,
  4096. 12808, 12809, 12810, 12811, 12812, 12813, 12814, 12815, 12816, 12817, 12818, 12819, 12820, 12821,
  4097. 12822, 12823, 12824, 12825, 12826, 12827, 12828, 12829, 12830, 12831, 12832, 12833, 12835, 12836,
  4098. 12837, 12838, 12839, 12840, 12841, 12842, 12843, 12844, 12845, 12846, 12847, 12848, 12849, 12850,
  4099. 12851, 12852, 12853, 12854, 12855, 12856, 12857, 12858, 12859, 12860, 12861, 12862, 12863, 12864,
  4100. 12865, 12866, 12867, 12868, 12869, 12870, 12871, 12872, 12873, 12874, 12875, 12876, 12877, 12878,
  4101. 12879, 12880, 12881, 12882, 12883, 12884, 12885, 12886, 12887, 12888, 12889, 12890, 12891, 12892,
  4102. 12893, 12894, 12895, 12896, 12897, 12898, 12899, 12900, 12901, 12902, 12903, 12904, 12905, 12906,
  4103. 12907, 12908, 12909, 12910, 12911, 12912, 12913, 12914, 12915, 12916, 12917, 12918, 12919, 12920,
  4104. 12921, 12922, 12923, 12924, 12925, 12926, 12927, 12928, 12929, 12930, 12931, 12932, 12933, 12934,
  4105. 12935, 12936, 12937, 12938, 12939, 12940, 12941, 12942, 12943, 12944, 12945, 12946, 12947, 12948,
  4106. 12949, 12950, 12951, 12952, 12953, 12954, 12955, 12956, 12957, 12958, 12959, 12960, 12961, 12962,
  4107. 12963, 12964, 12965, 12966, 12967, 12968, 12969, 12970, 12971, 12972, 12973, 12974, 12975, 12976,
  4108. 12977, 12978, 12979, 12980, 12981, 12982, 12983, 12984, 12985, 12986, 12987, 12988, 12989, 12990,
  4109. 12991, 12992, 12993, 12994, 12995, 12996, 12997, 12998, 12999, 13000, 13001, 13002, 13003, 13004,
  4110. 13005, 13006, 13007, 13008, 13009, 13010, 13011, 13012, 13013, 13014, 13015, 13016, 13017, 13018,
  4111. 13019, 13020, 13021, 13022, 13023, 13024, 13025, 13027, 13028, 13030, 13033, 13034, 13035, 13036,
  4112. 13038, 13039, 13040, 13041, 13042, 13043, 13044, 13045, 13049, 13050, 13051, 13058, 13059, 13060,
  4113. 13061, 13065, 13066, 13070, 13071, 13072, 13077, 13078, 13081, 13082, 13083, 13084, 13088, 13092,
  4114. 13095, 13096, 13097, 13098, 13099, 13100, 13101, 13102, 13103, 13104, 13105, 13106, 13107, 13109,
  4115. 13118, 13119, 13120, 13121, 13122, 13123, 13124, 13125, 13126, 13127, 13128, 13129, 13131, 13132,
  4116. 13134, 13135, 13136, 13137, 13138, 13139, 13140, 13141, 13142, 13143, 13144, 13145, 13146, 13147,
  4117. 13148, 13149, 13150, 13153, 13156, 13157, 13158, 13163, 13165, 13167, 13168, 13169, 13170, 13171,
  4118. 13172, 13173, 13174, 13175, 13176, 13177, 13178, 13179, 13180, 13181, 13187, 13188, 13190, 13198,
  4119. 13205, 13206, 13207, 13208, 13209, 13210, 13211, 13212, 13213, 13214, 13235, 13236, 13237, 13295,
  4120. 13296, 13297, 13312, 13321, 13323, 13324, 13325, 13332, 13336, 13342, 13345, 13347, 13348, 13349,
  4121. 13360, 13361, 13363, 13364, 13367, 13368, 13369, 13370, 13371, 13374, 13375, 13422, 13435, 13436,
  4122. 13437, 13438, 13439, 13440, 13441, 13442, 13443, 13444, 13445, 13447, 13448, 13449, 13450, 13451,
  4123. 13452, 13461, 13470, 13484, 13485, 13486, 13489, 13490, 13491, 13493, 13494, 13495, 13496, 13497,
  4124. 13498, 13499, 13500, 13501, 13502, 13503, 13504, 13505, 13506, 13507, 13508, 13509, 13510, 13511,
  4125. 13512, 13513, 13514, 13515, 13516, 13517, 13518, 13519, 13520, 13521, 13522, 13523, 13524, 13525,
  4126. 13526, 13527, 13528, 13529, 13530, 13531, 13532, 13533, 13534, 13535, 13536, 13537, 13538, 13539,
  4127. 13540, 13541, 13542, 13543, 13544, 13545, 13546, 13547, 13548, 13549, 13550, 13551, 13552, 13553,
  4128. 13554, 13555, 13556, 13557, 13558, 13559, 13560, 13561, 13562, 13563, 13590, 13591, 13592, 13593,
  4129. 13594, 13595, 13596, 13597, 13598, 13599, 13600, 13601, 13602, 13603, 13604, 13605, 13606, 13607,
  4130. 13608, 13609, 13610, 13611, 13612, 13613, 13614, 13615, 13616, 13617, 13618, 13619, 13620, 13621,
  4131. 13622, 13623, 13624, 13625, 13626, 13627, 13628, 13629, 13630, 13631, 13632, 13633, 13634, 13635,
  4132. 13636, 13637, 13638, 13639, 13640, 13641, 13642, 13643, 13644, 13645, 13646, 13647, 13648, 13649,
  4133. 13650, 13651, 13652, 13653, 13654, 13655, 13656, 13657, 13658, 13659, 13660, 13661, 13662, 13663,
  4134. 13664, 13665, 13666, 13667, 13672, 13673, 13674, 13675, 13676, 13677, 13678, 13679, 13680, 13681,
  4135. 13682, 13683, 13684, 13685, 13686, 13687, 13688, 13689, 13690, 13691, 13692, 13693, 13694, 13695,
  4136. 13696, 13697, 13698, 13699, 13700, 13701, 13702, 13703, 13704, 13705, 13706, 13707, 13708, 13709,
  4137. 13710, 13711, 13712, 13713, 13714, 13715, 13716, 13717, 13718, 13719, 13720, 13721, 13722, 13723,
  4138. 13724, 13725, 13726, 13727, 13728, 13729, 13730, 13731, 13732, 13733, 13734, 13735, 13736, 13737,
  4139. 13738, 13739, 13740, 13741, 13742, 13743, 13744, 13746, 13747, 13748, 13749, 13751, 13752, 13753,
  4140. 13754, 13755, 13756, 13757, 13758, 13761, 13784, 13789, 13795, 13801, 13802, 13804, 13805, 13806,
  4141. 13809, 13810, 13813, 13814, 13816, 13817, 13818, 13820, 13821, 13823, 13824, 13825, 13826, 13831,
  4142. 13845, 13861, 13862, 13863, 13864, 13865, 13871, 13872, 13882, 13887, 13890, 14383, 14384, 14385,
  4143. 14386, 14387, 14388, 14389, 14390, 14391, 14392, 14393, 14394, 14395, 14396, 14397, 14398, 14399,
  4144. 14400, 14401, 14402, 14403, 14404, 14405, 14406, 14407, 14408, 14409, 14410, 14411, 14412, 14413,
  4145. 14414, 14415, 14416, 14417, 14418, 14419, 14420, 14421, 14422, 14423, 14424, 14425, 14426, 14427,
  4146. 14428, 14429, 14430, 14431, 14432, 14433, 14434, 14435, 14436, 14437, 14438, 14439, 14440, 14441,
  4147. 14442, 14443, 14444, 14445, 14446, 14447, 14448, 14449, 14450, 14451, 14452, 14453, 14454, 14455,
  4148. 14456, 14457, 14458, 14459, 14460, 14461, 14462, 14463, 14464, 14465, 14466, 14467, 14468, 14469,
  4149. 14470, 14471, 14472, 14473, 14474, 14475, 14476, 14477, 14478, 14479, 14480, 14481, 14482, 14483,
  4150. 14484, 14485, 14486, 14487, 14488, 14489, 14490, 14491, 14492, 14493, 14494, 14495, 14496, 14497,
  4151. 14498, 14499, 14500, 14501, 14502, 14503, 14504, 14505, 14506, 14507, 14508, 14509, 14510, 14511,
  4152. 14512, 14513, 14514, 14515, 14516, 14517, 14518, 14519, 14520, 14521, 14522, 14523, 14524, 14525,
  4153. 14526, 14527, 14528, 14530, 14531, 14532, 14533, 14534, 14535, 14536, 14537, 14538, 14539, 14540,
  4154. 14541, 14542, 14543, 14544, 14545, 14546, 14547, 14548, 14549, 14550, 14551, 14552, 14553, 14554,
  4155. 14556, 14558, 14559, 14560, 14561, 14562, 14563, 14564, 14565, 14566, 14567, 14568, 14569, 14570,
  4156. 14571, 14572, 14573, 14574, 14575, 14576, 14577, 14578, 14579, 14580, 14581, 14582, 14583, 14584,
  4157. 14585, 14586, 14587, 14588, 14589, 14590, 14591, 14592, 14593, 14594, 14595, 14596, 14597, 14598,
  4158. 14599, 14600, 14601, 14602, 14603, 14604, 14605, 14606, 14607, 14608, 14609, 14610, 14611, 14612,
  4159. 14613, 14614, 14615, 14616, 14617, 14618, 14619, 14620, 14621, 14622, 14623, 14624, 14625, 14626,
  4160. 14627, 14628, 14629, 14630, 14631, 14632, 14633, 14634, 14635, 14636, 14637, 14638, 14639, 14640,
  4161. 14641, 14642, 14643, 14650, 14651, 14652, 14653, 14654, 14655, 14656, 14657, 14660, 14661, 14662,
  4162. 14663, 14664, 14665, 14666, 14667, 14668, 14669, 14670, 14671, 14672, 14673, 14674, 14675, 14676,
  4163. 14677, 14678, 14679, 14680, 14681, 14682, 14683, 14684, 14685, 14686, 14687, 14688, 14689, 14690,
  4164. 14691, 14692, 14693, 14694, 14695, 14699, 14700, 14701, 14702, 14703, 14704, 14705, 14706, 14707,
  4165. 14708, 14709, 14710, 14711, 14712, 14713, 14714, 14715, 14716, 14717, 14718, 14719, 14720, 14721,
  4166. 14722, 14723, 14724, 14725, 14726, 14727, 14728, 14735, 14736, 14737, 14738, 14739, 14740, 14741,
  4167. 14742, 14743, 14744, 14745, 14746, 14747, 14748, 14749, 14750, 14751, 14752, 14753, 14754, 14755,
  4168. 14756, 14757, 14758, 14759, 14760, 14761, 14762, 14763, 14764, 14765, 14770, 14771, 14772, 14773,
  4169. 14774, 14775, 14776, 14777, 14778, 14779, 14780, 14781, 14782, 14783, 14784, 14785, 14786, 14787,
  4170. 14788, 14789, 14790, 14791, 14792, 14793, 14794, 14795, 14796, 14797, 14798, 14799, 14800, 14801,
  4171. 14802, 14803, 14804, 14805, 14806, 14807, 14808, 14809, 14810, 14811, 14812, 14813, 14814, 14815,
  4172. 14816, 14817, 14818, 14819, 14820, 14821, 14822, 14823, 14824, 14825, 14826, 14827, 14828, 14829,
  4173. 14830, 14831, 14832, 14833, 14834, 14835, 14836, 14837, 14838, 14839, 14840, 14841, 14842, 14843,
  4174. 14844, 14845, 14846, 14847, 14848, 14849, 14850, 14851, 14852, 14853, 14854, 14855, 14856, 14858,
  4175. 14859, 14860, 14861, 14862, 14863, 14864, 14865, 14866, 14867, 14868, 14869, 14870, 14871, 14872,
  4176. 14873, 14874, 14875, 14876, 14877, 14878, 14879, 14880, 14881, 14882, 14883, 14885, 14886, 14887,
  4177. 14888, 14889, 14890, 14891, 14892, 14893, 14894, 14895, 14896, 14897, 14898, 14900, 14901, 14902,
  4178. 14903, 15025, 15026, 15027, 15028, 15029, 15030, 15031, 15032, 15033, 15034, 15035, 15036, 15037,
  4179. 15038, 15039, 15040, 15041, 15042, 15043, 15044, 15045, 15046, 15047, 15048, 15049, 15050, 15051,
  4180. 15052, 15053, 15054, 15055, 15056, 15057, 15058, 15059, 15060, 15061, 15062, 15063, 15064, 16000,
  4181. 16001, 16002, 16003, 16004, 16005, 16006, 16007, 16008, 16009, 16010, 16011, 16012, 16013, 16014,
  4182. 16015, 16016, 16017, 16018, 16019, 16020, 16021, 16022, 16023, 16024, 16025, 16026, 16027, 16028,
  4183. 16029, 16030, 16031, 16032, 16033, 16034, 16035, 16036, 16037, 16038, 16039, 16040, 16041, 16042,
  4184. 16043, 16044, 16045, 16046, 16047, 16048, 16049, 16050, 16051, 16052, 16053, 16054, 16055, 16056,
  4185. 16057, 16058, 16059, 16060, 16061, 16062, 16063, 16064, 16065, 16066, 16067, 16068, 16069, 16070,
  4186. 16071, 16072, 16073, 16074, 16075, 16076, 16077, 16078, 16079, 16080, 16081, 16082, 16083, 16084,
  4187. 16085, 16086, 16087, 16088, 16089, 16090, 16091, 16092, 16093, 16094, 16095, 16096, 16097, 16098,
  4188. 16099, 16100, 16101, 16102, 16103, 16104, 16105, 16106, 16107, 16108, 16109, 16110, 16111, 16112,
  4189. 16113, 16114, 16115, 16116, 16117, 16118, 16119, 16120, 16121, 16122, 16123, 16124, 16125, 16126,
  4190. 16127, 16128, 16129, 16130, 16131, 16132, 16133, 16134, 16135, 16136, 16137, 16138, 16139, 16140,
  4191. 16141, 16142, 16143, 16144, 16145, 16146, 16147, 16148, 16149, 16150, 16151, 16152, 16153, 16154,
  4192. 16155, 16156, 16157, 16158, 16159, 16160, 16161, 16162, 16163, 16164, 16165, 16166, 16167, 16168,
  4193. 16169, 16170, 16171, 16172, 16173, 16174, 16175, 16176, 16177, 16178, 16179, 16180, 16181, 16182,
  4194. 16183, 16184, 16185, 16186, 16187, 16188, 16189, 16190, 16191, 16192, 16193, 16194, 16195, 16196,
  4195. 16197, 16198, 16199, 16200, 16201, 16202, 16203, 16204, 16205, 16206, 16207, 16208, 16209, 16210,
  4196. 16211, 16212, 16213, 16214, 16215, 16216, 16217, 16218, 16219, 16220, 16221, 16222, 16223, 16224,
  4197. 16225, 16226, 16227, 16228, 16229, 16230, 16231, 16232, 16233, 16234, 16235, 16236, 16237, 16238,
  4198. 16239, 16240, 16241, 16242, 16243, 16244, 16245, 16246, 16247, 16248, 16249, 16250, 16251, 16252,
  4199. 16253, 16254, 16255, 16256, 16257, 16258, 16259, 16260, 16261, 16262, 16263, 16264, 16265, 16266,
  4200. 16267, 16268, 16269, 16270, 16271, 16272, 16273, 16274, 16275, 16276, 16277, 16278, 16279, 16280,
  4201. 16281, 16282, 16283, 16284, 16285, 16286, 16287, 16288, 16289, 16290, 16291, 16292, 16293, 16294,
  4202. 16295, 16296, 16297, 16298, 16299, 16300, 16301, 16302, 16303, 16304, 16305, 16306, 16307, 16308,
  4203. 16309, 16310, 16311, 16312, 16313, 16314, 16315, 16316, 16317, 16318, 16319, 16320, 16321, 16322,
  4204. 16323, 16324, 16325, 16326, 16327, 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335, 16337,
  4205. 16338, 16339, 16340, 16341, 16342, 16343, 16344, 16345, 16346, 16347, 16348, 16349, 16350, 16351,
  4206. 16352, 16353, 16354, 16355, 16356, 16357, 16358, 16359, 16360, 16361, 16362, 16363, 16364, 16365,
  4207. 16366, 16367, 16368, 16369, 16370, 16371, 16372, 16373, 16374, 16375, 16376, 16377, 16378, 16384,
  4208. 16385, 16386, 16387, 16388, 16389, 16390, 16391, 16392, 16393, 16394, 16395, 16396, 16397, 16398,
  4209. 16399, 16400, 16401, 16402, 16403, 16404, 16405, 16406, 16407, 16408, 16409, 16410, 16411, 16420,
  4210. 16421, 16422, 16423, 16424, 16430, 16434, 16436, 16437, 16438, 16439, 16442, 16444, 16445, 16446,
  4211. 16448, 16475, 16477, 16479, 16480, 16481, 16498, 16500, 16501, 16502, 16503, 16530, 16531, 16532,
  4212. 16533, 16534, 16535, 16562, 16563, 16564, 16568, 16571, 16593, 16599, 16601, 16605, 16610, 16613,
  4213. 16622, 16623, 16627, 16628, 16629, 16630, 16631, 16632, 16633, 16634, 16635, 16636, 16637, 16638,
  4214. 16639, 16640, 16641, 16642, 16643, 16644, 16645, 16646, 16647, 16648, 16649, 16650, 16651, 16652,
  4215. 16653, 16654, 16655, 16656, 16657, 16658, 16659, 16660, 16661, 16662, 16663, 16664, 16665, 16666,
  4216. 16667, 16668, 16669, 16670, 16671, 16673, 16675, 16676, 16677, 16678, 16681, 16682, 16683, 16684,
  4217. 16685, 16689, 16690, 16692, 16693, 16694, 16700, 16701, 16702, 16705, 16706, 16707, 16708, 16731,
  4218. 16732, 16733, 16734, 16735, 16736, 16737, 16738, 16739, 16740, 16741, 16742, 16743, 16744, 16745,
  4219. 16746, 16747, 16753, 16754, 16756, 16757, 16758, 16759, 16760, 16766, 16767, 16769, 16770, 16771,
  4220. 16773, 16774, 16775, 16776, 16777, 16778, 16779, 16780, 16781, 16782, 16783, 16784, 16785, 16786,
  4221. 16787, 16788, 16789, 16790, 17000, 17001, 17002, 17003, 17004, 17005, 17006, 17007, 17008, 17009,
  4222. 17010, 17011, 17012, 17013, 17014, 17015, 17016, 17017, 17018, 17019, 17020, 17021, 17022, 17023,
  4223. 17024, 17025, 17026, 17027, 17028, 17029, 17030, 17031, 17032, 17033, 17034, 17035, 17036, 17037,
  4224. 17038, 17039, 17040, 17041, 17042, 17043, 17044, 17045, 17046, 17047, 17048, 17049, 17050, 17051,
  4225. 17052, 17053, 17054, 17055, 17056, 17057, 17058, 17059, 17060, 17061, 17062, 17063, 17064, 17065,
  4226. 17066, 17067, 17068, 17069, 17070, 17071, 17072, 17073, 17074, 17075, 17076, 17077, 17078, 17079,
  4227. 17080, 17081, 17082, 17083, 17084, 17085, 17086, 17087, 17088, 17089, 17090, 17091, 17092, 17093,
  4228. 17094, 17095, 17096, 17097, 17098, 17099, 17100, 17101, 17102, 17103, 17104, 17105, 17106, 17107,
  4229. 17108, 17109, 17110, 17111, 17112, 17113, 17114, 17115, 17116, 17117, 17118, 17119, 17120, 17121,
  4230. 17122, 17123, 17124, 17125, 17126, 17127, 17128, 17129, 17130, 17131, 17132, 17133, 17134, 17135,
  4231. 17136, 17137, 17138, 17139, 17140, 17141, 17142, 17143, 17144, 17145, 17146, 17148, 17150, 17152,
  4232. 17154, 17156, 17158, 17160, 17162, 17164, 17166, 17168, 17170, 17172, 17174, 17176, 17178, 17180,
  4233. 17182, 17184, 17186, 17188, 17190, 17192, 17194, 17196, 17198, 17200, 17202, 17204, 17208, 17210,
  4234. 17212, 17214, 17216, 17218, 17220, 17222, 17224, 17226, 17228, 17230, 17232, 17234, 17236, 17238,
  4235. 17240, 17242, 17244, 17246, 17248, 17250, 17252, 17254, 17256, 17258, 17260, 17262, 17267, 17269,
  4236. 17271, 17273, 17275, 17277, 17279, 17281, 17283, 17284, 17285, 17286, 17287, 17288, 17289, 17290,
  4237. 17291, 17292, 17293, 17294, 17295, 17296, 17297, 17298, 17299, 17300, 17301, 17302, 17303, 17305,
  4238. 17307, 17308, 17309, 17310, 17323, 17324, 17326, 17327, 17329, 17331, 17333, 17334, 17335, 17426,
  4239. 17427, 17428, 17429, 17430, 17431, 17432, 17433, 17434, 17436, 17437, 17438, 17439, 17440, 17441,
  4240. 17442, 17443, 17444, 17448, 17450, 17451, 17452, 17453, 17454, 17455, 17456, 17457, 17458, 17459,
  4241. 17460, 17461, 17462, 17463, 17464, 17465, 17466, 17467, 17468, 17469, 17470, 17471, 17472, 17474,
  4242. 17500, 17501, 17502, 17503, 17504, 17505, 17506, 17507, 17508, 17509, 17510, 17511, 17513, 17514,
  4243. 17515, 17516, 17517, 17518, 17519, 17520, 17521, 17522, 17523, 17524, 17525, 17526, 17527, 17528,
  4244. 17529, 17530, 17531, 17532, 17533, 17534, 17535, 17536, 17537, 17538, 17539, 17540, 17541, 17542,
  4245. 17543, 17544, 17545, 17546, 17547, 17548, 17549, 17550, 17551, 17552, 17553, 17554, 17555, 17556,
  4246. 17557, 17558, 17559, 17560, 17561, 17562, 17563, 17564, 17565, 17566, 17567, 17568, 17573, 17574,
  4247. 17575, 17576, 17577, 17578, 17579, 17582, 17583, 17585, 17586, 17588, 17589, 17591, 17592, 17594,
  4248. 17595, 17596, 17597, 17598, 17599, 17600, 17601, 17602, 17603, 17604, 17605, 17606, 17607, 17608,
  4249. 17609, 17610, 17611, 17612, 17613, 17614, 17615, 17616, 17617, 17618, 17619, 17620, 17621, 17622,
  4250. 17623, 17624, 17625, 17626, 17627, 17628, 17629, 17630, 17631, 17632, 17633, 17634, 17635, 17636,
  4251. 17637, 17638, 17639, 17640, 17641, 17642, 17643, 17644, 17645, 17646, 17647, 17648, 17649, 17650,
  4252. 17651, 17652, 17653, 17654, 17655, 17656, 17657, 17658, 17659, 17660, 17661, 17662, 17663, 17664,
  4253. 17665, 17666, 17667, 17668, 17669, 17670, 17671, 17672, 17673, 17674, 17675, 17676, 17677, 17678,
  4254. 17679, 17680, 17681, 17682, 17683, 17684, 17685, 17686, 17687, 17688, 17689, 17690, 17691, 17692,
  4255. 17693, 17694, 17695, 17696, 17697, 17698, 17699, 17700, 17804, 17805, 17807, 17809, 17829, 17841,
  4256. 17848, 17849, 17851, 17852, 17853, 17854, 17859, 17860, 17862, 17863, 17864, 17865, 17866, 17867,
  4257. 17872, 17874, 17875, 17876, 17877, 17878, 17879, 17880, 17881, 17886, 17887, 17888, 17891, 17892,
  4258. 17893, 17894, 17897, 17898, 17899, 17901, 17902, 17904, 17905, 17906, 17907, 17911, 17912, 17913,
  4259. 17915, 17916, 17917, 17918, 17919, 17920, 17921, 17922, 17925, 17926, 17927, 17928, 17933, 17934,
  4260. 17936, 17937, 17938, 17939, 17940, 17941, 17942, 17943, 17944, 17946, 17947, 17950, 17951, 17953,
  4261. 17954, 17955, 17956, 17957, 17958, 17968, 17969, 17971, 17972, 17973, 17974, 17976, 17978, 18000,
  4262. 18001, 18002, 18003, 18004, 18005, 18006, 18007, 18008, 18009, 18010, 18011, 18012, 18013, 18014,
  4263. 18015, 18016, 18017, 18018, 18019, 18020, 18021, 18022, 18023, 18024, 18025, 18026, 18027, 18028,
  4264. 18029, 18030, 18031, 18032, 18033, 18034, 18035, 18036, 18038, 18039, 18040, 18041, 18042, 18043,
  4265. 18044, 18045, 18046, 18047, 18048, 18049, 18050, 18051, 18052, 18053, 18054, 18055, 18056, 18057,
  4266. 18058, 18059, 18060, 18061, 18062, 18063, 18064, 18065, 18066, 18067, 18068, 18069, 18070, 18071,
  4267. 18072, 18073, 18074, 18075, 18076, 18077, 18078, 18079, 18080, 18081, 18082, 18083, 18084, 18085,
  4268. 18086, 18087, 18088, 18089, 18090, 18091, 18092, 18093, 18094, 18095, 18096, 18097, 18098, 18099,
  4269. 18100, 18101, 18102, 18104, 18105, 18109, 18112, 18200, 18201, 18202, 18203, 18204, 18205, 18206,
  4270. 18207, 18208, 18209, 18210, 18211, 18212, 18213, 18214, 18215, 18216, 18217, 18218, 18219, 18220,
  4271. 18221, 18222, 18223, 18224, 18225, 18226, 18227, 18228, 18229, 18230, 18231, 18232, 18233, 18234,
  4272. 18235, 18236, 18237, 18238, 18239, 18240, 18241, 18242, 18243, 18244, 18245, 18246, 18247, 18248,
  4273. 18249, 18250, 18251, 18252, 18253, 18254, 18255, 18256, 18257, 18258, 18259, 18260, 18261, 18262,
  4274. 18263, 18264, 18265, 18266, 18267, 18268, 18269, 18270, 18271, 18272, 18273, 18274, 18275, 18276,
  4275. 18277, 18278, 18279, 18280, 18281, 18282, 18283, 18284, 18285, 18286, 18287, 18288, 18289, 18290,
  4276. 18291, 18292, 18293, 18294, 18295, 18296, 18297, 18298, 18299, 18300, 18301, 18302, 18303, 18304,
  4277. 18305, 18306, 18307, 18308, 18309, 18310, 18311, 18312, 18313, 18314, 18315, 18316, 18317, 18318,
  4278. 18319, 18320, 18321, 18322, 18323, 18324, 18325, 18326, 18327, 18328, 18329, 18330, 18331, 18332,
  4279. 18333, 18334, 18335, 18336, 18337, 18338, 18339, 18340, 18341, 18342, 18343, 18344, 18345, 18346,
  4280. 18347, 18348, 18349, 18350, 18351, 18352, 18353, 18354, 18355, 18356, 18357, 18358, 18359, 18360,
  4281. 18361, 18362, 18363, 18364, 18365, 18366, 18367, 18368, 18369, 18370, 18371, 18372, 18373, 18374,
  4282. 18375, 18376, 18377, 18378, 18379, 18380, 18381, 18382, 18383, 18384, 18385, 18386, 18387, 18388,
  4283. 18389, 18390, 18391, 18392, 18393, 18394, 18432, 18433, 18434, 18435, 18436, 18437, 18438, 18439,
  4284. 18440, 18441, 18442, 18443, 18444, 18445, 18446, 18447, 18448, 18449, 18450, 18451, 18452, 18453,
  4285. 18454, 18455, 18456, 18457, 18458, 18459, 18460, 18461, 18462, 18463, 18464, 18465, 18466, 18467,
  4286. 18468, 18469, 18470, 18471, 18472, 18473, 18474, 18475, 18476, 18477, 18478, 18479, 18480, 18481,
  4287. 18482, 18483, 18484, 18485, 18496, 18518, 18551, 18552, 18553, 18561, 18563, 18565, 18566, 18567,
  4288. 18568, 18569, 18608, 18609, 18610, 18611, 18612, 18613, 18614, 18615, 18616, 18617, 18618, 18619,
  4289. 18620, 18621, 18622, 18623, 18624, 18625, 18626, 18627, 18628, 18629, 18630, 10047, 10048, 10049,
  4290. 10050, 10051, 10052, 10053, 10054, 10055, 10056, 10057, 10058, 10059, 10060, 10061, 10062, 10063,
  4291. 10064, 10065, 10066, 10067, 10068, 10069, 10070, 10071, 10072, 10073, 10074, 10075, 10076, 10077,
  4292. 10078, 10079, 10080, 10081, 10082, 10083, 10084, 10085, 10086, 10087, 10088, 10089, 10090, 10091,
  4293. 10092, 10093, 10094, 10095, 10096, 10097, 10098, 10099, 10100, 10101, 10102, 10103, 10104, 10105,
  4294. 10106, 10107, 10108, 10109, 10110, 10111, 10112, 10113, 10114, 10115, 10116, 10117, 10118, 10119,
  4295. 10120, 10121, 10122, 10123, 10124, 10125, 10126, 10127, 10128, 10129, 10130, 10131, 10132, 10133,
  4296. 10134, 10135, 10136, 10137, 10138, 10139, 10140, 10141, 10142, 10143, 10144, 10145, 10146, 10147,
  4297. 10148, 10149, 10150, 10151, 10152, 10153, 10154, 10155, 10156, 10157, 10158, 10159, 10160, 10161,
  4298. 10162, 10163, 10164, 10165, 10166, 10167, 10168, 10169, 10170, 10171, 10172, 10173, 10174, 10175,
  4299. 10176, 10177, 10178, 10179, 10180, 10181, 10182, 10183, 10184, 10185, 10186, 10187, 10188, 10189,
  4300. 10190, 10191, 10192, 10193, 10194, 10195, 10196, 10197, 10198, 10199, 10200, 10201, 10202, 10203,
  4301. 10204, 10205, 10206, 10207, 10208, 10209, 10210, 10211, 10212, 10213, 10214, 10215, 10216, 10217,
  4302. 10218, 10219, 10220, 10221, 10222, 10223, 10224, 10225, 10226, 10227, 10228, 10229, 10230, 10231,
  4303. 10232, 10233, 10234, 10235, 10236, 10237, 10238, 10239, 10240, 10241, 10242, 10243, 10244, 10245,
  4304. 10246, 10247, 10248, 10249, 10250, 10251, 10252, 10253, 10254, 10255, 10256, 10257, 10258, 10259,
  4305. 10260, 10261, 10262, 10263, 10264, 10265, 10266, 10267, 10268, 10269, 10270, 10271, 10272, 10273,
  4306. 10274, 10275, 10276, 10277, 10278, 10279, 10280, 10281, 10282, 10283, 10284, 10285, 10286, 10287,
  4307. 10288, 10289, 10290, 10291, 10292, 10293, 10294, 10295, 10296, 10297, 10298, 10299, 10300, 10301,
  4308. 10302, 10303, 10304, 10305, 10306, 10307, 10308, 10309, 10310, 10311, 10312, 10313, 10314, 10315,
  4309. 10316, 10317, 10318, 10319, 10320, 10321, 10322, 10323, 10324, 10325, 10326, 10327, 10328, 10329,
  4310. 10330, 10331, 10332, 10333, 10334, 10335, 10336, 10337, 10338, 10339, 10340, 10341, 10342, 10343,
  4311. 10344, 10345, 10346, 10347, 10348, 10349, 10350, 10351, 10352, 10353, 10354, 10355, 10356, 10357,
  4312. 10358, 10359, 10360, 10361, 10362, 10363, 10364, 10365, 10366, 10367, 10368, 10369, 10370, 10371,
  4313. 10372, 10373, 10374, 10375, 10376, 10377, 10378, 10379, 10380, 10381, 10382, 10383, 10384, 10385,
  4314. 10386, 10387, 10388, 10389, 10390, 10391, 10392, 10393, 10394, 10395, 10396, 10397, 10398, 10399,
  4315. 10400, 10401, 10402, 10403, 10404, 10405, 10406, 10407, 10408, 10409, 10410, 10411, 10412, 10413,
  4316. 10414, 10415, 10416, 10417, 10418, 10419, 10420, 10421, 10422, 10423, 10424, 10425, 10426, 10427,
  4317. 10428, 10429, 10430, 10431, 10432, 10433, 10434, 10435, 10436, 10437, 10438, 10439, 10440, 10441,
  4318. 10442, 10443, 10444, 10445, 10446, 10447, 10448, 10449, 10450, 10451, 10452, 10453, 10454, 10455,
  4319. 10456, 10457, 10458, 10459, 10460, 10461, 10462, 10463, 10464, 10465, 10466, 10467, 10468, 10469,
  4320. 10470, 10471, 10472, 10473, 10474, 10475, 10476, 10477, 10478, 10479, 10480, 10481, 10482, 10483,
  4321. 10484, 10485, 10486, 10487, 10488, 10489, 10490, 10491, 10492, 10493, 10494, 10495, 10496, 10497,
  4322. 10498, 10499, 10500, 10501, 10502, 10503, 10504, 10505, 10506, 10507, 10508, 10509, 10510, 10511,
  4323. 10512, 10513, 10514, 10515, 10516, 10517, 10518, 10519, 10520, 10521, 10522, 10523, 10524, 10525,
  4324. 10526, 10527, 10528, 10529, 10530, 10531, 10532, 10533, 10534, 10535, 10536, 10537, 10538, 10539,
  4325. 10540, 10541, 10542, 10543, 10544, 10545, 10546, 10547, 10548, 10549, 10550, 10551, 10552, 10553,
  4326. 10554, 10555, 10556, 10557, 10558, 10559, 10560, 10561, 10562, 10563, 10564, 10565, 10566, 10567,
  4327. 10568, 10569, 10570, 10571, 10572, 10573, 10574, 10575, 10576, 10577, 10578, 10579, 10580, 10581,
  4328. 10582, 10583, 10584, 10585, 10586, 10587, 10588, 10589, 10590, 10591, 10592, 10593, 10594, 10595,
  4329. 10596, 10597, 10598, 10599, 10600, 10601, 10602, 10603, 10604, 10605, 10606, 10607, 10608, 10609,
  4330. 10610, 10611, 10612, 10613, 10614, 10615, 10616, 10617, 10618, 10619, 10620, 10621, 10622, 10623,
  4331. 10624, 10625, 10626, 10627, 10628, 10629, 10630, 10631, 10632, 10633, 10634, 10635, 10636, 10637,
  4332. 10638, 10639, 10640, 10641, 10642, 10643, 10644, 10645, 10646, 10647, 10648, 10649, 10650, 10651,
  4333. 10652, 10653, 10654, 10655, 10656, 10657, 10658, 10659, 10660, 10661, 10662, 10663, 10664, 10665,
  4334. 10666, 10667, 10668, 10669, 10670, 10671, 10672, 10673, 10674, 10675, 10676, 10677, 10678, 10679,
  4335. 10680, 10681, 10682, 10683, 10684, 10685, 10686, 10687, 10688, 10689, 10690, 10691, 10692, 10693,
  4336. 10694, 10695, 10696, 10697, 10698, 10699, 10700, 10701, 10702, 10703, 10704, 10705, 10706, 10707,
  4337. 10708, 10709, 10710, 10711, 10712, 10713, 10714, 10715, 10716, 10717, 10718, 10719, 10720, 10721,
  4338. 10722, 10723, 10724, 10725, 10726, 10727, 10728, 10729, 10730, 10731, 10732, 10733, 10734, 10735,
  4339. 10736, 10737, 10738, 10739, 10740, 10741, 10742, 10743, 10744, 10745, 10746, 10747, 10748, 10749,
  4340. 10750, 10751, 10752, 10753, 10754, 10755, 10756, 10757, 10758, 10759, 10760, 10761, 10762, 10763,
  4341. 10764, 10765, 10766, 10767, 10768, 10769, 10770, 10771, 10772, 10773, 10774, 10775, 10776, 10777,
  4342. 10778, 10779, 10780, 10781, 10782, 10783, 10784, 10785, 10786, 10787, 10788, 10789, 10790, 10791,
  4343. 10792, 10793, 10794, 10795, 10796, 10797, 10798, 10799, 10800, 10801, 10802, 10803, 10804, 10805,
  4344. 10806, 10807, 10808, 10809, 10810, 10811, 10812, 10813, 10814, 10815, 10816, 10817, 10818, 10819,
  4345. 10820, 10821, 10822, 10823, 10824, 10825, 10826, 10827, 10828, 10829, 10830, 10831, 10832, 10833,
  4346. 10834, 10835, 10836, 10837, 10838, 10839, 10840, 10841, 10842, 10843, 10844, 10845, 10846, 10847,
  4347. 10848, 10849, 10850, 10851, 10852, 10853, 10854, 10855, 10856, 10857, 10858, 10859, 10860, 10861,
  4348. 10862, 10863, 10864, 10865, 10866, 10867, 10868, 10869, 10870, 10871, 10872, 10873, 10874, 10875,
  4349. 10876, 10877, 10878, 10879, 10880, 10881, 10882, 10883, 10884, 10885, 10886, 10887, 10888, 10889,
  4350. 10890, 10891, 10892, 10893, 10894, 10895, 10896, 10897, 10898, 10899, 10900, 10901, 10902, 10903,
  4351. 10904, 10905, 10906, 10907, 10908, 10909, 10910, 10911, 10912, 10913, 10914, 10915, 10916, 10917,
  4352. 10918, 10919, 10920, 10921, 10922, 10923, 10924, 10925, 10926, 10927, 10928, 10929, 10930, 10931,
  4353. 10932, 10933, 10934, 10935, 10936, 10937, 10938, 10939, 10940, 10941, 10942, 10943, 10944, 10945,
  4354. 10946, 10947, 10948, 10949, 10950, 10951, 10952, 10953, 10954, 10955, 10956, 10957, 10958, 10959,
  4355. 10960, 10961, 10962, 10963, 10964, 10965, 10966, 10967, 10968, 10969, 10970, 10971, 10972, 10973,
  4356. 10974, 10975, 10976, 10977, 10978, 10979, 10980, 10981, 10982, 10983, 10984, 10985, 10986, 10987,
  4357. 10988, 10989, 10990, 10991, 10992, 10993, 10994, 10995, 10996, 10997, 10998, 10999, 11000, 11001,
  4358. 11002, 11003, 11004, 11005, 11006, 11007, 11008, 11009, 11010, 11011, 11012, 11013, 11014, 11015,
  4359. 11016, 11017, 11018, 11019, 11020, 11021, 11022, 11023, 11024, 11025, 11026, 11027, 11028, 11029,
  4360. 11030, 11031, 11032, 11033, 11034, 11035, 11036, 11037, 11038, 11039, 11040, 11041, 11042, 11043,
  4361. 11044, 11045, 11046, 11047, 11048, 11049, 11050, 11051, 11052, 11053, 11054, 11055, 11056, 11057,
  4362. 11058, 11059, 11060, 11061, 11062, 11063, 11064, 11065, 11066, 11067, 11068, 11069, 11070, 11071,
  4363. 11072, 11073, 11074, 11075, 11076, 11077, 11078, 11079, 11080, 11081, 11082, 11083, 11084, 11085,
  4364. 11086, 11087, 11088, 11089, 11090, 11091, 11092, 11093, 11094, 11095, 11096, 11097, 11098, 11099,
  4365. 11100, 11101, 11102, 11103, 11104, 11105, 11106, 11107, 11108, 11109, 11110, 11111, 11112, 11113,
  4366. 11114, 11115, 11116, 11117, 11118, 11119, 11120, 11121, 11122, 11123, 11124, 11125, 11126, 11127,
  4367. 11128, 11129, 11130, 11131, 11132, 11133, 11134, 11135, 11136, 11137, 11138, 11139, 11140, 11141,
  4368. 11142, 11143, 11144, 11145, 11146, 11147, 11148, 11149, 11150, 11151, 11152, 11153, 11154, 11155,
  4369. 11156, 11157, 11158, 11159, 11160, 11161, 11162, 11163, 11164, 11165, 11166, 11167, 11168, 11169,
  4370. 11170, 11171, 11172, 11173, 11174, 11175, 11176, 11177, 11178, 11179, 11180, 11181, 11182, 11183,
  4371. 11184, 11185, 11186, 11187, 11188, 11189, 11190, 11191, 11192, 11193, 11194, 11195, 11196, 11197,
  4372. 11198, 11199, 11200, 11201, 11202, 11203, 11204, 11205, 11206, 11207, 11208, 11209, 11210, 11211,
  4373. 11212, 11213, 11214, 11215, 11216, 11217, 11218, 11219, 11220, 11221, 11222, 11223, 11224, 11225,
  4374. 11226, 11227, 11228, 11229, 11230, 11231, 11232, 11233, 11234, 11235, 11236, 11237, 11238, 11239,
  4375. 11240, 11241, 11242, 11243, 11244, 11245, 11246, 11247, 11248, 11249, 11250, 11251, 11252, 11253,
  4376. 11254, 11255, 11256, 11257, 11258, 11259, 11260, 11261, 11262, 11263, 11264, 11265, 11266, 11267,
  4377. 11268, 11269, 11270, 11271, 11272, 11273, 11274, 11275, 11276, 11277, 11278, 11279, 11280, 11281,
  4378. 11282, 11283, 11284, 11285, 11286, 11287, 11288, 11289, 11290, 11291, 11292, 11293, 11294, 11295,
  4379. 11296, 11297, 11298, 11299, 11300, 11301, 11302, 11303, 11304, 11305, 11306, 11307, 11308, 11309,
  4380. 11310, 11311, 11312, 11313, 11314, 11315, 11316, 11317, 11318, 11319, 11320, 11321, 11322, 11323,
  4381. 11324, 11325, 11326, 11327, 11328, 11329, 11330, 11331, 11332, 11333, 11334, 11335, 11336, 11337,
  4382. 11338, 11339, 11340, 11341, 11342, 11343, 11344, 11345, 11346, 11347, 11348, 11349, 11350, 11351,
  4383. 11352, 11353, 11354, 11355, 11356, 11357, 11358, 11359, 11360, 11361, 11362, 11363, 11364, 11365,
  4384. 11366, 11367, 11368, 11369, 11370, 11371, 11372, 11373, 11374, 11375, 11376, 11377, 11378, 11379,
  4385. 11380, 11381, 11382, 11383, 11384, 11385, 11386, 11387, 11388, 11389, 11390, 11391, 11392, 11393,
  4386. 11394, 11395, 11396, 11397, 11398, 11399, 11400, 11401, 11402, 11403, 11404, 11405, 11406, 11407,
  4387. 11408, 11409, 11410, 11411, 11412, 11413, 11414, 11415, 11416, 11417, 11418, 11419, 11420, 11421,
  4388. 11422, 11423, 11424, 11425, 11426, 11427, 11428, 11429, 11430, 11431, 11432, 11433, 11434, 11435,
  4389. 11436, 11437, 11438, 11439, 11440, 11441, 11442, 11443, 11444, 11445, 11446, 11447, 11448, 11449,
  4390. 11450, 11451, 11452, 11453, 11454, 11455, 11456, 11457, 11458, 11459, 11460, 11461, 11462, 11463,
  4391. 11464, 11465, 11466, 11467, 11468, 11469, 11470, 11471, 11472, 11473, 11474, 11475, 11476, 11477,
  4392. 11478, 11479, 11480, 11481, 11482, 11483, 11484, 11485, 11486, 11487, 11488, 11489, 11490, 11491,
  4393. 11492, 11493, 11494, 11495, 11496, 11497, 11498, 11499, 11500, 11501, 11502, 11503, 11504, 11505,
  4394. 11506, 11507, 11508, 11509, 11510, 11511, 11512, 11513, 11514, 11515, 11516, 11517, 11518, 11519,
  4395. 11520, 11521, 11522, 11523, 11524, 11525, 11526, 11527, 11528, 11529, 11530, 11531, 11532, 11533,
  4396. 11534, 11535, 11536, 11537, 11538, 11539, 11540, 11541, 11542, 11543, 11544, 11545, 11546, 11547,
  4397. 11548, 11549, 11550, 11551, 11552, 11553, 11554, 11555, 11556, 11557, 11558, 11559, 11560, 11561,
  4398. 11562, 11563, 11564, 11565, 11566, 11567, 11568, 11569, 11570, 11571, 11572, 11573, 11574, 11575,
  4399. 11576, 11577, 11578, 11579, 11580, 11581, 11582, 11583, 11584, 11585, 11586, 11587, 11588, 11589,
  4400. 11590, 11591, 11592, 11593, 11594, 11595, 11596, 11597, 11598, 11599, 11600, 11601, 11602, 11603,
  4401. 11604, 11605, 11606, 11607, 11608, 11609, 11610, 11611, 11612, 11613, 11614, 11615, 11616, 11617,
  4402. 11618, 11619, 11620, 11621, 11622, 11623, 11624, 11625, 11626, 11627, 11628, 11629, 11630, 11631,
  4403. 11632, 11633, 11634, 11635, 11636, 11637, 11638, 11639, 11640, 11641, 11642, 11643, 11644, 11645,
  4404. 11646, 11647, 11648, 11649, 11650, 11651, 11652, 11653, 11654, 11655, 11656, 11657, 11658, 11659,
  4405. 11660, 11661, 11662, 11663, 11664, 11665, 11666, 11667, 11668, 11669, 11670, 11671, 11672, 11673,
  4406. 11674, 11675, 11676, 11677, 11678, 11679, 11680, 11681, 11682, 11683, 11684, 11685, 11686, 11687,
  4407. 11688, 11689, 11690, 11691, 11692, 11693, 11694, 11695, 11696, 11697, 11698, 11699, 11700, 11701,
  4408. 11702, 11703, 11704, 11705, 11706, 11707, 11708, 11709, 11710, 11711, 11712, 11713, 11714, 11715,
  4409. 11716, 11717, 11718, 11719, 11720, 11721, 11722, 11723, 11724, 11725, 11726, 11727, 11728, 11729,
  4410. 11730, 11731, 11732, 11733, 11734, 11735, 11736, 11737, 11738, 11739, 11740, 11741, 11742, 11743,
  4411. 11744, 11745, 11746, 11747, 11748, 11749, 11750, 11751, 11752, 11753, 11754, 11755, 11756, 11757,
  4412. 11758, 11759, 11760, 11761, 11762, 11763, 11764, 11765, 11766, 11767, 11768, 11769, 11770, 11771,
  4413. 11772, 11773, 11774, 11775, 11776, 11777, 11778, 11779, 11780, 11781, 11782, 11783, 11784, 11785,
  4414. 11786, 11787, 11788, 11789, 11790, 11791, 11792, 11793, 11794, 11795, 11796, 11797, 11798, 11799,
  4415. 11800, 11801, 11802, 11803, 11804, 11805, 11806, 11807, 11808, 11809, 11810, 11811, 11812, 11813,
  4416. 11814, 11815, 11816, 11817, 11818, 11819, 11820, 11821, 11822, 11823, 11824, 11825, 11826, 11827,
  4417. 11828, 11829, 11830, 11831, 11832, 11833, 11834, 11835, 11836, 11837, 11838, 11839, 11840, 11841,
  4418. 11842, 11843, 11844, 11845, 11846, 11847, 11848, 11849, 11850, 11851, 11852, 11853, 11854, 11855,
  4419. 11856, 11857, 11858, 11859, 11860, 11861, 11862, 11863, 11864, 11865, 11866, 11867, 11868, 11869,
  4420. 11870, 11871, 11872, 11873, 11874, 11875, 11876, 11877, 11878, 11879, 11880, 11881, 11882, 11883,
  4421. 11884, 11885, 11886, 11887, 11888, 11889, 11890, 11891, 11892, 11893, 11894, 11895, 11896, 11897,
  4422. 11898, 11899, 11900, 11901, 11902, 11903, 11904, 11905, 11906, 11907, 11908, 11909, 11910, 11911,
  4423. 11912, 11913, 11914, 11915, 11916, 11917, 11918, 11919, 11920, 11921, 11922, 11923, 11924, 11925,
  4424. 11926, 11927, 11928, 11929, 11930, 11931, 11932, 11933, 11934, 11935, 11936, 11937, 11938, 11939,
  4425. 11940, 11941, 11942, 11943, 11944, 11945, 11946, 11947, 11948, 11949, 11950, 11951, 11952, 11953,
  4426. 11954, 11955, 11956, 11957, 11958, 11959, 11960, 11961, 11962, 11963, 11964, 11965, 11966, 11967,
  4427. 11968, 11969, 11970, 11971, 11972, 11973, 11974, 11975, 11976, 11977, 11978, 11979, 11980, 11981,
  4428. 11982, 11983, 11984, 11985, 11986, 11987, 11988, 11989, 11990, 11991, 11992, 11993, 11994, 11995,
  4429. 11996, 11997, 11998, 11999, 12000, 12001, 12002, 12003, 12004, 12005, 12006, 12007, 12008, 12009,
  4430. 12010, 12011, 12012, 12013, 12014, 12015, 12016, 12017, 12018, 12019, 12020, 12021, 12022, 12023,
  4431. 12024, 12025, 12026, 12027, 12028, 12029, 12030, 12031, 12032, 12033, 12034, 12035, 12036, 12037,
  4432. 12038, 12039, 12040, 12041, 12042, 12043, 12044, 12045, 12046, 12047, 12048, 12049, 12050, 12051,
  4433. 12052, 12053, 12054, 12055, 12056, 12057, 12058, 12059, 12060, 12061, 12062, 12063, 12064, 12065,
  4434. 12066, 12067, 12068, 12069, 12070, 12071, 12072, 12073, 12074, 12075, 12076, 12077, 12078, 12079,
  4435. 12080, 12081, 12082, 12083, 12084, 12085, 12086, 12087, 12088, 12089, 12090, 12091, 12092, 12093,
  4436. 12094, 12095, 12096, 12097, 12098, 12099, 12100, 12101, 12102, 12103, 12104, 12105, 12106, 12107,
  4437. 12108, 12109, 12110, 12111, 12112, 12113, 12114, 12115, 12116, 12117, 12118, 12119, 12120, 12121,
  4438. 12122, 12123, 12124, 12125, 12126, 12127, 12128, 12129, 12130, 12131, 12132, 12133, 12134, 12135,
  4439. 12136, 12137, 12138, 12139, 12140, 12141, 12142, 12143, 12144, 12145, 12146, 12147, 12148, 12149,
  4440. 12150, 12151, 12152, 12153, 12154, 12155, 12156, 12157, 12158, 12159, 12160, 12161, 12162, 12163,
  4441. 12164, 12165, 12166, 12167, 12168, 12169, 12170, 12171, 12172, 12173, 12174, 12175, 12176, 12177,
  4442. 12178, 12179, 12180, 12181, 12182, 12183, 12184, 12185, 12186, 12187, 12188, 12189, 12190, 12191,
  4443. 12192, 12193, 12194, 12195, 12196, 12197, 12198, 12199, 12200, 12201, 12202, 12203, 12204, 12205,
  4444. 12206, 12207, 12208, 12209, 12210, 12211, 12212, 12213, 12214, 12215, 12216, 12217, 12218, 12219,
  4445. 12220, 12221, 12222, 12223, 12224, 12225, 12226, 12227, 12228, 12229, 12230, 12231, 12232, 12233,
  4446. 12234, 12235, 12236, 12237, 12238, 12239, 12240, 12241, 12242, 12243, 12244, 12245, 12246, 12247,
  4447. 12248, 12249, 12250, 12251, 12252, 12253, 12254, 12255, 12256, 12257, 12258, 12259, 12260, 12261,
  4448. 12262, 12263, 12264, 12265, 12266, 12267, 12268, 12269, 12270, 12271, 12272, 12273, 12274, 12275,
  4449. 12276, 12277, 12278, 12279, 12280, 12281, 12282, 12283, 12284, 12285, 12286, 12287, 12288, 12289,
  4450. 12290, 12291, 12292, 12293, 12294, 12295, 12296, 12297, 12298, 12299, 12300, 12301, 12302, 12303,
  4451. 12304, 12305, 12306, 12307, 12308, 12309, 12310, 12311, 12312, 12313, 12314, 12315, 12316, 12317,
  4452. 12318, 12319, 12320, 12321, 12322, 12323, 12324, 12325, 12326, 12327, 12328, 12329, 12330, 12331,
  4453. 12332, 12333, 12334, 12335, 12336, 12337, 12338, 12339, 12340, 12341, 12342, 12343, 12344, 12345,
  4454. 12346, 12347, 12348, 12349, 12350, 12351, 12352, 12353, 12354, 12355, 12356, 12357, 12358, 12359,
  4455. 12360, 12361, 12362, 12363, 12364, 12365, 12366, 12367, 12368, 12369, 12370, 12371, 12372, 12373,
  4456. 12374, 12375, 12376, 12377, 12378, 12379, 12380, 12381, 12382, 12383, 12384, 12385, 12386, 12387,
  4457. 12388, 12389, 12390, 12391, 12392, 12393, 12394, 12395, 12396, 12397, 12398, 12399, 12400, 12401,
  4458. 12402, 12403, 12404, 12405, 12406, 12407, 12408, 12409, 12410, 12411, 12412, 12413, 12414, 12415,
  4459. 12416, 12417, 12418, 12419, 12420, 12421, 12422, 12423, 12424, 12425, 12426, 12427, 12428, 12429,
  4460. 12430, 12431, 12432, 12433, 12434, 12435, 12436, 12437, 12438, 12439, 12440, 12441, 12442, 12443,
  4461. 12444, 12445, 12446, 12447, 12448, 12449, 12450, 12451, 12452, 12453, 12454, 12455, 12456, 12457,
  4462. 12458, 12459, 12460, 12461, 12462, 12463, 12464, 12465, 12466, 12467, 12468, 12469, 12470, 12471,
  4463. 12472, 12473, 12474, 12475, 12476, 12477, 12478, 12479, 12480, 12481, 12482, 12483, 12484, 12485,
  4464. 12486, 12487, 12488, 12489, 12490, 12491, 12492, 12493, 12494, 12495, 12496, 12497, 12498, 12499,
  4465. 12500, 12501, 12502, 12503, 12504, 12505, 12506, 12507, 12508, 12509, 12510, 12511, 12512, 12513,
  4466. 12514, 12515, 12516, 12517, 12518, 12519, 12520, 12521, 12522, 12523, 12524, 12525, 12526, 12527,
  4467. 12528, 12529, 12530, 12531, 12532, 12533, 12534, 12535, 12536, 12537, 12538, 12539, 12540, 12541,
  4468. 12542, 12543, 12544, 12545, 12546, 12547, 12548, 12549, 12550, 12551, 12552, 12553, 12554, 12555,
  4469. 12556, 12557, 12558, 12559, 12560, 12561, 12562, 12563, 12564, 12565, 12566, 12567, 12568, 12569,
  4470. 12570, 12571, 12572, 12573, 12574, 12575, 12576, 12577, 12578, 12579, 12580, 12581, 12582, 12583,
  4471. 12584, 12585, 12586, 12587, 12588, 12589, 12590, 12591, 12592, 12593, 12594, 12595, 12596, 12597,
  4472. 12598, 12599, 12600, 12601, 12602, 12603, 12604, 12605, 12606, 12607, 12608, 12609, 12610, 12611,
  4473. 12612, 12613, 12614, 12615, 12616, 12617, 12618, 12619, 12620, 12621, 12622, 12623, 12624, 12625,
  4474. 12626, 12627, 12628, 12629, 12630, 12631, 12632, 12633, 12634, 12635, 12636, 12637, 12638, 12639,
  4475. 12640, 12641, 12642, 12643, 12644, 12645, 12646, 12647, 12648, 12649, 12650, 12651, 12652, 12653,
  4476. 12654, 12655, 12656, 12657, 12658, 12659, 12660, 12661, 12662, 12663, 12664, 12665, 12666, 12667,
  4477. 12668, 12669, 12670, 12671, 12672, 12673, 12674, 12675, 12676, 12677, 12678, 12679, 12680, 12681,
  4478. 12682, 12683, 12684, 12685, 12686, 12687, 12688, 12689, 12690, 12691, 12692, 12693, 12694, 12695,
  4479. 12696, 12697, 12698, 12699, 12700, 12701, 12702, 12703, 12704, 12705, 12706, 12707, 12708, 12709,
  4480. 12710, 12711, 12712, 12713, 12714, 12715, 12716, 12717, 12718, 12719, 12720, 12721, 12722, 12723,
  4481. 12724, 12725, 12726, 12727, 12728, 12729, 12730, 12731, 12732, 12733, 12734, 12735, 12736, 12737,
  4482. 12738, 12739, 12740, 12741, 12742, 12743, 12744, 12745, 12746, 12747, 12748, 12749, 12750, 12751,
  4483. 12752, 12753, 12754, 12755, 12756, 12757, 12758, 12759, 12760, 12761, 12762, 12763, 12764, 12765,
  4484. 12766, 12767, 12768, 12769, 12770, 12771, 12772, 12773, 12774, 12775, 12776, 12777, 12778, 12779,
  4485. 12780, 12781, 12782, 12783, 12784, 12785, 12786, 12787, 12788, 12789, 12790, 12791, 12792, 12793,
  4486. 12794, 12795, 12796, 12797, 12798, 12799, 12800, 12801, 12802, 12803, 12804, 12805, 12806, 12807,
  4487. 12808, 12809, 12810, 12811, 12812, 12813, 12814, 12815, 12816, 12817, 12818, 12819, 12820, 12821,
  4488. 12822, 12823, 12824, 12825, 12826, 12827, 12828, 12829, 12830, 12831, 12832, 12833, 12834, 12835,
  4489. 12836, 12837, 12838, 12839, 12840, 12841, 12842, 12843, 12844, 12845, 12846, 12847, 12848, 12849,
  4490. 12850, 12851, 12852, 12853, 12854, 12855, 12856, 12857, 12858, 12859, 12860, 12861, 12862, 12863,
  4491. 12864, 12865, 12866, 12867, 12868, 12869, 12870, 12871, 12872, 12873, 12874, 12875, 12876, 12877,
  4492. 12878, 12879, 12880, 12881, 12882, 12883, 12884, 12885, 12886, 12887, 12888, 12889, 12890, 12891,
  4493. 12892, 12893, 12894, 12895, 12896, 12897, 12898, 12899, 12900, 12901, 12902, 12903, 12904, 12905,
  4494. 12906, 12907, 12908, 12909, 12910, 12911, 12912, 12913, 12914, 12915, 12916, 12917, 12918, 12919,
  4495. 12920, 12921, 12922, 12923, 12924, 12925, 12926, 12927, 12928, 12929, 12930, 12931, 12932, 12933,
  4496. 12934, 12935, 12936, 12937, 12938, 12939, 12940, 12941, 12942, 12943, 12944, 12945, 12946, 12947,
  4497. 12948, 12949, 12950, 12951, 12952, 12953, 12954, 12955, 12956, 12957, 12958, 12959, 12960, 12961,
  4498. 12962, 12963, 12964, 12965, 12966, 12967, 12968, 12969, 12970, 12971, 12972, 12973, 12974, 12975,
  4499. 12976, 12977, 12978, 12979, 12980, 12981, 12982, 12983, 12984, 12985, 12986, 12987, 12988, 12989,
  4500. 12990, 12991, 12992, 12993, 12994, 12995, 12996, 12997, 12998, 12999, 13000, 13001, 13002, 13003,
  4501. 13004, 13005, 13006, 13007, 13008, 13009, 13010, 13011, 13012, 13013, 13014, 13015, 13016, 13017,
  4502. 13018, 13019, 13020, 13021, 13022, 13023, 13024, 13025, 13026, 13027, 13028, 13029, 13030, 13031,
  4503. 13032, 13033, 13034, 13035, 13036, 13037, 13038, 13039, 13040, 13041, 13042, 13043, 13044, 13045,
  4504. 13046, 13047, 13048, 13049, 13050, 13051, 13052, 13053, 13054, 13055, 13056, 13057, 13058, 13059,
  4505. 13060, 13061, 13062, 13063, 13064, 13065, 13066, 13067, 13068, 13069, 13070, 13071, 13072, 13073,
  4506. 13074, 13075, 13076, 13077, 13078, 13079, 13080, 13081, 13082, 13083, 13084, 13085, 13086, 13087,
  4507. 13088, 13089, 13090, 13091, 13092, 13093, 13094, 13095, 13096, 13097, 13098, 13099, 13100, 13101,
  4508. 13102, 13103, 13104, 13105, 13106, 13107, 13108, 13109, 13110, 13111, 13112, 13113, 13114, 13115,
  4509. 13116, 13117, 13118, 13119, 13120, 13121, 13122, 13123, 13124, 13125, 13126, 13127, 13128, 13129,
  4510. 13130, 13131, 13132, 13133, 13134, 13135, 13136, 13137, 13138, 13139, 13140, 13141, 13142, 13143,
  4511. 13144, 13145, 13146, 13147, 13148, 13149, 13150, 13151, 13152, 13153, 13154, 13155, 13156, 13157,
  4512. 13158, 13159, 13160, 13161, 13162, 13163, 13164, 13165, 13166, 13167, 13168, 13169, 13170, 13171,
  4513. 13172, 13173, 13174, 13175, 13176, 13177, 13178, 13179, 13180, 13181, 13182, 13183, 13184, 13185,
  4514. 13186, 13187, 13188, 13189, 13190, 13191, 13192, 13193, 13194, 13195, 13196, 13197, 13198, 13199,
  4515. 13200, 13201, 13202, 13203, 13204, 13205, 13206, 13207, 13208, 13209, 13210, 13211, 13212, 13213,
  4516. 13214, 13215, 13216, 13217, 13218, 13219, 13220, 13221, 13222, 13223, 13224, 13225, 13226, 13227,
  4517. 13228, 13229, 13230, 13231, 13232, 13233, 13234, 13235, 13236, 13237, 13238, 13239, 13240, 13241,
  4518. 13242, 13243, 13244, 13245, 13246, 13247, 13248, 13249, 13250, 13251, 13252, 13253, 13254, 13255,
  4519. 13256, 13257, 13258, 13259, 13260, 13261, 13262, 13263, 13264, 13265, 13266, 13267, 13268, 13269,
  4520. 13270, 13271, 13272, 13273, 13274, 13275, 13276, 13277, 13278, 13279, 13280, 13281, 13282, 13283,
  4521. 13284, 13285, 13286, 13287, 13288, 13289, 13290, 13291, 13292, 13293, 13294, 13295, 13296, 13297,
  4522. 13298, 13299, 13300, 13301, 13302, 13303, 13304, 13305, 13306, 13307, 13308, 13309, 13310, 13311,
  4523. 13312, 13313, 13314, 13315, 13316, 13317, 13318, 13319, 13320, 13321, 13322, 13323, 13324, 13325,
  4524. 13326, 13327, 13328, 13329, 13330, 13331, 13332, 13333, 13334, 13335, 13336, 13337, 13338, 13339,
  4525. 13340, 13341, 13342, 13343, 13344, 13345, 13346, 13347, 13348, 13349, 13350, 13351, 13352, 13353,
  4526. 13354, 13355, 13356, 13357, 13358, 13359, 13360, 13361, 13362, 13363, 13364, 13365, 13366, 13367,
  4527. 13368, 13369, 13370, 13371, 13372, 13373, 13374, 13375, 13376, 13377, 13378, 13379, 13380, 13381,
  4528. 13382, 13383, 13384, 13385, 13386, 13387, 13388, 13389, 13390, 13391, 13392, 13393, 13394, 13395,
  4529. 13396, 13397, 13398, 13399, 13400, 13401, 13402, 13403, 13404, 13405, 13406, 13407, 13408, 13409,
  4530. 13410, 13411, 13412, 13413, 13414, 13415, 13416, 13417, 13418, 13419, 13420, 13421, 13422, 13423,
  4531. 13424, 13425, 13426, 13427, 13428, 13429, 13430, 13431, 13432, 13433, 13434, 13435, 13436, 13437,
  4532. 13438, 13439, 13440, 13441, 13442, 13443, 13444, 13445, 13446, 13447, 13448, 13449, 13450, 13451,
  4533. 13452, 13453, 13454, 13455, 13456, 13457, 13458, 13459, 13460, 13461, 13462, 13463, 13464, 13465,
  4534. 13466, 13467, 13468, 13469, 13470, 13471, 13472, 13473, 13474, 13475, 13476, 13477, 13478, 13479,
  4535. 13480, 13481, 13482, 13483, 13484, 13485, 13486, 13487, 13488, 13489, 13490, 13491, 13492, 13493,
  4536. 13494, 13495, 13496, 13497, 13498, 13499, 13500, 13501, 13502, 13503, 13504, 13505, 13506, 13507,
  4537. 13508, 13509, 13510, 13511, 13512, 13513, 13514, 13515, 13516, 13517, 13518, 13519, 13520, 13521,
  4538. 13522, 13523, 13524, 13525, 13526, 13527, 13528, 13529, 13530, 13531, 13532, 13533, 13534, 13535,
  4539. 13536, 13537, 13538, 13539, 13540, 13541, 13542, 13543, 13544, 13545, 13546, 13547, 13548, 13549,
  4540. 13550, 13551, 13552, 13553, 13554, 13555, 13556, 13557, 13558, 13559, 13560, 13561, 13562, 13563,
  4541. 13564, 13565, 13566, 13567, 13568, 13569, 13570, 13571, 13572, 13573, 13574, 13575, 13576, 13577,
  4542. 13578, 13579, 13580, 13581, 13582, 13583, 13584, 13585, 13586, 13587, 13588, 13589, 13590, 13591,
  4543. 13592, 13593, 13594, 13595, 13596, 13597, 13598, 13599, 13600, 13601, 13602, 13603, 13604, 13605,
  4544. 13606, 13607, 13608, 13609, 13610, 13611, 13612, 13613, 13614, 13615, 13616, 13617, 13618, 13619,
  4545. 13620, 13621, 13622, 13623, 13624, 13625, 13626, 13627, 13628, 13629, 13630, 13631, 13632, 13633,
  4546. 13634, 13635, 13636, 13637, 13638, 13639, 13640, 13641, 13642, 13643, 13644, 13645, 13646, 13647,
  4547. 13648, 13649, 13650, 13651, 13652, 13653, 13654, 13655, 13656, 13657, 13658, 13659, 13660, 13661,
  4548. 13662, 13663, 13664, 13665, 13666, 13667, 13668, 13669, 13670, 13671, 13672, 13673, 13674, 13675,
  4549. 13676, 13677, 13678, 13679, 13680, 13681, 13682, 13683, 13684, 13685, 13686, 13687, 13688, 13689,
  4550. 13690, 13691, 13692, 13693, 13694, 13695, 13696, 13697, 13698, 13699, 13700, 13701, 13702, 13703,
  4551. 13704, 13705, 13706, 13707, 13708, 13709, 13710, 13711, 13712, 13713, 13714, 13715, 13716, 13717,
  4552. 13718, 13719, 13720, 13721, 13722, 13723, 13724, 13725, 13726, 13727, 13728, 13729, 13730, 13731,
  4553. 13732, 13733, 13734, 13735, 13736, 13737, 13738, 13739, 13740, 13741, 13742, 13743, 13744, 13745,
  4554. 13746, 13747, 13748, 13749, 13750, 13751, 13752, 13753, 13754, 13755, 13756, 13757, 13758, 13759,
  4555. 13760, 13761, 13762, 13763, 13764, 13765, 13766, 13767, 13768, 13769, 13770, 13771, 13772, 13773,
  4556. 13774, 13775, 13776, 13777, 13778, 13779, 13780, 13781, 13782, 13783, 13784, 13785, 13786, 13787,
  4557. 13788, 13789, 13790, 13791, 13792, 13793, 13794, 13795, 13796, 13797, 13798, 13799, 13800, 13801,
  4558. 13802, 13803, 13804, 13805, 13806, 13807, 13808, 13809, 13810, 13811, 13812, 13813, 13814, 13815,
  4559. 13816, 13817, 13818, 13819, 13820, 13821, 13822, 13823, 13824, 13825, 13826, 13827, 13828, 13829,
  4560. 13830, 13831, 13832, 13833, 13834, 13835, 13836, 13837, 13838, 13839, 13840, 13841, 13842, 13843,
  4561. 13844, 13845, 13846, 13847, 13848, 13849, 13850, 13851, 13852, 13853, 13854, 13855, 13856, 13857,
  4562. 13858, 13859, 13860, 13861, 13862, 13863, 13864, 13865, 13866, 13867, 13868, 13869, 13870, 13871,
  4563. 13872, 13873, 13874, 13875, 13876, 13877, 13878, 13879, 13880, 13881, 13882, 13883, 13884, 13885,
  4564. 13886, 13887, 13888, 13889, 13890, 13891, 13892, 13893, 13894, 13895, 13896, 13897, 13898, 13899,
  4565. 13900, 13901, 13902, 13903, 13904, 13905, 13906, 13907, 13908, 13909, 13910, 13911, 13912, 13913,
  4566. 13914, 13915, 13916, 13917, 13918, 13919, 13920, 13921, 13922, 13923, 13924, 13925, 13926, 13927,
  4567. 13928, 13929, 13930, 13931, 13932, 13933, 13934, 13935, 13936, 13937, 13938, 13939, 13940, 13941,
  4568. 13942, 13943, 13944, 13945, 13946, 13947, 13948, 13949, 13950, 13951, 13952, 13953, 13954, 13955,
  4569. 13956, 13957, 13958, 13959, 13960, 13961, 13962, 13963, 13964, 13965, 13966, 13967, 13968, 13969,
  4570. 13970, 13971, 13972, 13973, 13974, 13975, 13976, 13977, 13978, 13979, 13980, 13981, 13982, 13983,
  4571. 13984, 13985, 13986, 13987, 13988, 13989, 13990, 13991, 13992, 13993, 13994, 13995, 13996, 13997,
  4572. 13998, 13999, 14000, 14001, 14002, 14003, 14004, 14005, 14006, 14007, 14008, 14009, 14010, 14011,
  4573. 14012, 14013, 14014, 14015, 14016, 14017, 14018, 14019, 14020, 14021, 14022, 14023, 14024, 14025,
  4574. 14026, 14027, 14028, 14029, 14030, 14031, 14032, 14033, 14034, 14035, 14036, 14037, 14038, 14039,
  4575. 14040, 14041, 14042, 14043, 14044, 14045, 14046, 14047, 14048, 14049, 14050, 14051, 14052, 14053,
  4576. 14054, 14055, 14056, 14057, 14058, 14059, 14060, 14061, 14062, 14063, 14064, 14065, 14066, 14067,
  4577. 14068, 14069, 14070, 14071, 14072, 14073, 14074, 14075, 14076, 14077, 14078, 14079, 14080, 14081,
  4578. 14082, 14083, 14084, 14085, 14086, 14087, 14088, 14089, 14090, 14091, 14092, 14093, 14094, 14095,
  4579. 14096, 14097, 14098, 14099, 14100, 14101, 14102, 14103, 14104, 14105, 14106, 14107, 14108, 14109,
  4580. 14110, 14111, 14112, 14113, 14114, 14115, 14116, 14117, 14118, 14119, 14120, 14121, 14122, 14123,
  4581. 14124, 14125, 14126, 14127, 14128, 14129, 14130, 14131, 14132, 14133, 14134, 14135, 14136, 14137,
  4582. 14138, 14139, 14140, 14141, 14142, 14143, 14144, 14145, 14146, 14147, 14148, 14149, 14150, 14151,
  4583. 14152, 14153, 14154, 14155, 14156, 14157, 14158, 14159, 14160, 14161, 14162, 14163, 14164, 14165,
  4584. 14166, 14167, 14168, 14169, 14170, 14171, 14172, 14173, 14174, 14175, 14176, 14177, 14178, 14179,
  4585. 14180, 14181, 14182, 14183, 14184, 14185, 14186, 14187, 14188, 14189, 14190, 14191, 14192, 14193,
  4586. 14194, 14195, 14196, 14197, 14198, 14199, 14200, 14201, 14202, 14203, 14204, 14205, 14206, 14207,
  4587. 14208, 14209, 14210, 14211, 14212, 14213, 14214, 14215, 14216, 14217, 14218, 14219, 14220, 14221,
  4588. 14222, 14223, 14224, 14225, 14226, 14227, 14228, 14229, 14230, 14231, 14232, 14233, 14234, 14235,
  4589. 14236, 14237, 14238, 14239, 14240, 14241, 14242, 14243, 14244, 14245, 14246, 14247, 14248, 14249,
  4590. 14250, 14251, 14252, 14253, 14254, 14255, 14256, 14257, 14258, 14259, 14260, 14261, 14262, 14263,
  4591. 14264, 14265, 14266, 14267, 14268, 14269, 14270, 14271, 14272, 14273, 14274, 14275, 14276, 14277,
  4592. 14278, 14279, 14280, 14281, 14282, 14283, 14284, 14285, 14286, 14287, 14288, 14289, 14290, 14291,
  4593. 14292, 14293, 14294, 14295, 14296, 14297, 14298, 14299, 14300, 14301, 14302, 14303, 14304, 14305,
  4594. 14306, 14307, 14308, 14309, 14310, 14311, 14312, 14313, 14314, 14315, 14316, 14317, 14318, 14319,
  4595. 14320, 14321, 14322, 14323, 14324, 14325, 14326, 14327, 14328, 14329, 14330, 14331, 14332, 14333,
  4596. 14334, 14335, 14336, 14337, 14338, 14339, 14340, 14341, 14342, 14343, 14344, 14345, 14346, 14347,
  4597. 14348, 14349, 14350, 14351, 14352, 14353, 14354, 14355, 14356, 14357, 14358, 14359, 14360, 14361,
  4598. 14362, 14363, 14364, 14365, 14366, 14367, 14368, 14369, 14370, 14371, 14372, 14373, 14374, 14375,
  4599. 14376, 14377, 14378, 14379, 14380, 14381, 14382, 14383, 14384, 14385, 14386, 14387, 14388, 14389,
  4600. 14390, 14391, 14392, 14393, 14394, 14395, 14396, 14397, 14398, 14399, 14400, 14401, 14402, 14403,
  4601. 14404, 14405, 14406, 14407, 14408, 14409, 14410, 14411, 14412, 14413, 14414, 14415, 14416, 14417,
  4602. 14418, 14419, 14420, 14421, 14422, 14423, 14424, 14425, 14426, 14427, 14428, 14429, 14430, 14431,
  4603. 14432, 14433, 14434, 14435, 14436, 14437, 14438, 14439, 14440, 14441, 14442, 14443, 14444, 14445,
  4604. 14446, 14447, 14448, 14449, 14450, 14451, 14452, 14453, 14454, 14455, 14456, 14457, 14458, 14459,
  4605. 14460, 14461, 14462, 14463, 14464, 14465, 14466, 14467, 14468, 14469, 14470, 14471, 14472, 14473,
  4606. 14474, 14475, 14476, 14477, 14478, 14479, 14480, 14481, 14482, 14483, 14484, 14485, 14486, 14487,
  4607. 14488, 14489, 14490, 14491, 14492, 14493, 14494, 14495, 14496, 14497, 14498, 14499, 14500, 14501,
  4608. 14502, 14503, 14504, 14505, 14506, 14507, 14508, 14509, 14510, 14511, 14512, 14513, 14514, 14515,
  4609. 14516, 14517, 14518, 14519, 14520, 14521, 14522, 14523, 14524, 14525, 14526, 14527, 14528, 14529,
  4610. 14530, 14531, 14532, 14533, 14534, 14535, 14536, 14537, 14538, 14539, 14540, 14541, 14542, 14543,
  4611. 14544, 14545, 14546, 14547, 14548, 14549, 14550, 14551, 14552, 14553, 14554, 14555, 14556, 14557,
  4612. 14558, 14559, 14560, 14561, 14562, 14563, 14564, 14565, 14566, 14567, 14568, 14569, 14570, 14571,
  4613. 14572, 14573, 14574, 14575, 14576, 14577, 14578, 14579, 14580, 14581, 14582, 14583, 14584, 14585,
  4614. 14586, 14587, 14588, 14589, 14590, 14591, 14592, 14593, 14594, 14595, 14596, 14597, 14598, 14599,
  4615. 14600, 14601, 14602, 14603, 14604, 14605, 14606, 14607, 14608, 14609, 14610, 14611, 14612, 14613,
  4616. 14614, 14615, 14616, 14617, 14618, 14619, 14620, 14621, 14622, 14623, 14624, 14625, 14626, 14627,
  4617. 14628, 14629, 14630, 14631, 14632, 14633, 14634, 14635, 14636, 14637, 14638, 14639, 14640, 14641,
  4618. 14642, 14643, 14644, 14645, 14646, 14647, 14648, 14649, 14650, 14651, 14652, 14653, 14654, 14655,
  4619. 14656, 14657, 14658, 14659, 14660, 14661, 14662, 14663, 14664, 14665, 14666, 14667, 14668, 14669,
  4620. 14670, 14671, 14672, 14673, 14674, 14675, 14676, 14677, 14678, 14679, 14680, 14681, 14682, 14683,
  4621. 14684, 14685, 14686, 14687, 14688, 14689, 14690, 14691, 14692, 14693, 14694, 14695, 14696, 14697,
  4622. 14698, 14699, 14700, 14701, 14702, 14703, 14704, 14705, 14706, 14707, 14708, 14709, 14710, 14711,
  4623. 14712, 14713, 14714, 14715, 14716, 14717, 14718, 14719, 14720, 14721, 14722, 14723, 14724, 14725,
  4624. 14726, 14727, 14728, 14729, 14730, 14731, 14732, 14733, 14734, 14735, 14736, 14737, 14738, 14739,
  4625. 14740, 14741, 14742, 14743, 14744, 14745, 14746, 14747, 14748, 14749, 14750, 14751, 14752, 14753,
  4626. 14754, 14755, 14756, 14757, 14758, 14759, 14760, 14761, 14762, 14763, 14764, 14765, 14766, 14767,
  4627. 14768, 14769, 14770, 14771, 14772, 14773, 14774, 14775, 14776, 14777, 14778, 14779, 14780, 14781,
  4628. 14782, 14783, 14784, 14785, 14786, 14787, 14788, 14789, 14790, 14791, 14792, 14793, 14794, 14795,
  4629. 14796, 14797, 14798, 14799, 14800, 14801, 14802, 14803, 14804, 14805, 14806, 14807, 14808, 14809,
  4630. 14810, 14811, 14812, 14813, 14814, 14815, 14816, 14817, 14818, 14819, 14820, 14821, 14822, 14823,
  4631. 14824, 14825, 14826, 14827, 14828, 14829, 14830, 14831, 14832, 14833, 14834, 14835, 14836, 14837,
  4632. 14838, 14839, 14840, 14841, 14842, 14843, 14844, 14845, 14846, 14847, 14848, 14849, 14850, 14851,
  4633. 14852, 14853, 14854, 14855, 14856, 14857, 14858, 14859, 14860, 14861, 14862, 14863, 14864, 14865,
  4634. 14866, 14867, 14868, 14869, 14870, 14871, 14872, 14873, 14874, 14875, 14876, 14877, 14878, 14879,
  4635. 14880, 14881, 14882, 14883, 14884, 14885, 14886, 14887, 14888, 14889, 14890, 14891, 14892, 14893,
  4636. 14894, 14895, 14896, 14897, 14898, 14899, 14900, 14901, 14902, 14903, 14904, 14905, 14906, 14907,
  4637. 14908, 14909, 14910, 14911, 14912, 14913, 14914, 14915, 14916, 14917, 14918, 14919, 14920, 14921,
  4638. 14922, 14923, 14924, 14925, 14926, 14927, 14928, 14929, 14930, 14931, 14932, 14933, 14934, 14935,
  4639. 14936, 14937, 14938, 14939, 14940, 14941, 14942, 14943, 14944, 14945, 14946, 14947, 14948, 14949,
  4640. 14950, 14951, 14952, 14953, 14954, 14955, 14956, 14957, 14958, 14959, 14960, 14961, 14962, 14963,
  4641. 14964, 14965, 14966, 14967, 14968, 14969, 14970, 14971, 14972, 14973, 14974, 14975, 14976, 14977,
  4642. 14978, 14979, 14980, 14981, 14982, 14983, 14984, 14985, 14986, 14987, 14988, 14989, 14990, 14991,
  4643. 14992, 14993, 14994, 14995, 14996, 14997, 14998, 14999, 15000, 15001, 15002, 15003, 15004, 15005,
  4644. 15006, 15007, 15008, 15009, 15010, 15011, 15012, 15013, 15014, 15015, 15016, 15017, 15018, 15019,
  4645. 15020, 15021, 15022, 15023, 15024, 15025, 15026, 15027, 15028, 15029, 15030, 15031, 15032, 15033,
  4646. 15034, 15035, 15036, 15037, 15038, 15039, 15040, 15041, 15042, 15043, 15044, 15045, 15046, 15047,
  4647. 15048, 15049, 15050, 15051, 15052, 15053, 15054, 15055, 15056, 15057, 15058, 15059, 15060, 15061,
  4648. 15062, 15063, 15064, 15065, 15066, 15067, 15068, 15069, 15070, 15071, 15072, 15073, 15074, 15075,
  4649. 15076, 15077, 15078, 15079, 15080, 15081, 15082, 15083, 15084, 15085, 15086, 15087, 15088, 15089,
  4650. 15090, 15091, 15092, 15093, 15094, 15095, 15096, 15097, 15098, 15099, 15100, 15101, 15102, 15103,
  4651. 15104, 15105, 15106, 15107, 15108, 15109, 15110, 15111, 15112, 15113, 15114, 15115, 15116, 15117,
  4652. 15118, 15119, 15120, 15121, 15122, 15123, 15124, 15125, 15126, 15127, 15128, 15129, 15130, 15131,
  4653. 15132, 15133, 15134, 15135, 15136, 15137, 15138, 15139, 15140, 15141, 15142, 15143, 15144, 15145,
  4654. 15146, 15147, 15148, 15149, 15150, 15151, 15152, 15153, 15154, 15155, 15156, 15157, 15158, 15159,
  4655. 15160, 15161, 15162, 15163, 15164, 15165, 15166, 15167, 15168, 15169, 15170, 15171, 15172, 15173,
  4656. 15174, 15175, 15176, 15177, 15178, 15179, 15180, 15181, 15182, 15183, 15184, 15185, 15186, 15187,
  4657. 15188, 15189, 15190, 15191, 15192, 15193, 15194, 15195, 15196, 15197, 15198, 15199, 15200, 15201,
  4658. 15202, 15203, 15204, 15205, 15206, 15207, 15208, 15209, 15210, 15211, 15212, 15213, 15214, 15215,
  4659. 15216, 15217, 15218, 15219, 15220, 15221, 15222, 15223, 15224, 15225, 15226, 15227, 15228, 15229,
  4660. 15230, 15231, 15232, 15233, 15234, 15235, 15236, 15237, 15238, 15239, 15240, 15241, 15242, 15243,
  4661. 15244, 15245, 15246, 15247, 15248, 15249, 15250, 15251, 15252, 15253, 15254, 15255, 15256, 15257,
  4662. 15258, 15259, 15260, 15261, 15262, 15263, 15264, 15265, 15266, 15267, 15268, 15269, 15270, 15271,
  4663. 15272, 15273, 15274, 15275, 15276, 15277, 15278, 15279, 15280, 15281, 15282, 15283, 15284, 15285,
  4664. 15286, 15287, 15288, 15289, 15290, 15291, 15292, 15293, 15294, 15295, 15296, 15297, 15298, 15299,
  4665. 15300, 15301, 15302, 15303, 15304, 15305, 15306, 15307, 15308, 15309, 15310, 15311, 15312, 15313,
  4666. 15314, 15315, 15316, 15317, 15318, 15319, 15320, 15321, 15322, 15323, 15324, 15325, 15326, 15327,
  4667. 15328, 15329, 15330, 15331, 15332, 15333, 15334, 15335, 15336, 15337, 15338, 15339, 15340, 15341,
  4668. 15342, 15343, 15344, 15345, 15346, 15347, 15348, 15349, 15350, 15351, 15352, 15353, 15354, 15355,
  4669. 15356, 15357, 15358, 15359, 15360, 15361, 15362, 15363, 15364, 15365, 15366, 15367, 15368, 15369,
  4670. 15370, 15371, 15372, 15373, 15374, 15375, 15376, 15377, 15378, 15379, 15380, 15381, 15382, 15383,
  4671. 15384, 15385, 15386, 15387, 15388, 15389, 15390, 15391, 15392, 15393, 15394, 15395, 15396, 15397,
  4672. 15398, 15399, 15400, 15401, 15402, 15403, 15404, 15405, 15406, 15407, 15408, 15409, 15410, 15411,
  4673. 15412, 15413, 15414, 15415, 15416, 15417, 15418, 15419, 15420, 15421, 15422, 15423, 15424, 15425,
  4674. 15426, 15427, 15428, 15429, 15430, 15431, 15432, 15433, 15434, 15435, 15436, 15437, 15438, 15439,
  4675. 15440, 15441, 15442, 15443, 15444, 15445, 15446, 15447, 15448, 15449, 15450, 15451, 15452, 15453,
  4676. 15454, 15455, 15456, 15457, 15458, 15459, 15460, 15461, 15462, 15463, 15464, 15465, 15466, 15467,
  4677. 15468, 15469, 15470, 15471, 15472, 15473, 15474, 15475, 15476, 15477, 15478, 15479, 15480, 15481,
  4678. 15482, 15483, 15484, 15485, 15486, 15487, 15488, 15489, 15490, 15491, 15492, 15493, 15494, 15495,
  4679. 15496, 15497, 15498, 15499, 15500, 15501, 15502, 15503, 15504, 15505, 15506, 15507, 15508, 15509,
  4680. 15510, 15511, 15512, 15513, 15514, 15515, 15516, 15517, 15518, 15519, 15520, 15521, 15522, 15523,
  4681. 15524, 15525, 15526, 15527, 15528, 15529, 15530, 15531, 15532, 15533, 15534, 15535, 15536, 15537,
  4682. 15538, 15539, 15540, 15541, 15542, 15543, 15544, 15545, 15546, 15547, 15548, 15549, 15550, 15551,
  4683. 15552, 15553, 15554, 15555, 15556, 15557, 15558, 15559, 15560, 15561, 15562, 15563, 15564, 15565,
  4684. 15566, 15567, 15568, 15569, 15570, 15571, 15572, 15573, 15574, 15575, 15576, 15577, 15578, 15579,
  4685. 15580, 15581, 15582, 15583, 15584, 15585, 15586, 15587, 15588, 15589, 15590, 15591, 15592, 15593,
  4686. 15594, 15595, 15596, 15597, 15598, 15599, 15600, 15601, 15602, 15603, 15604, 15605, 15606, 15607,
  4687. 15608, 15609, 15610, 15611, 15612, 15613, 15614, 15615, 15616, 15617, 15618, 15619, 15620, 15621,
  4688. 15622, 15623, 15624, 15625, 15626, 15627, 15628, 15629, 15630, 15631, 15632, 15633, 15634, 15635,
  4689. 15636, 15637, 15638, 15639, 15640, 15641, 15642, 15643, 15644, 15645, 15646, 15647, 15648, 15649,
  4690. 15650, 15651, 15652, 15653, 15654, 15655, 15656, 15657, 15658, 15659, 15660, 15661, 15662, 15663,
  4691. 15664, 15665, 15666, 15667, 15668, 15669, 15670, 15671, 15672, 15673, 15674, 15675, 15676, 15677,
  4692. 15678, 15679, 15680, 15681, 15682, 15683, 15684, 15685, 15686, 15687, 15688, 15689, 15690, 15691,
  4693. 15692, 15693, 15694, 15695, 15696, 15697, 15698, 15699, 15700, 15701, 15702, 15703, 15704, 15705,
  4694. 15706, 15707, 15708, 15709, 15710, 15711, 15712, 15713, 15714, 15715, 15716, 15717, 15718, 15719,
  4695. 15720, 15721, 15722, 15723, 15724, 15725, 15726, 15727, 15728, 15729, 15730, 15731, 15732, 15733,
  4696. 15734, 15735, 15736, 15737, 15738, 15739, 15740, 15741, 15742, 15743, 15744, 15745, 15746, 15747,
  4697. 15748, 15749, 15750, 15751, 15752, 15753, 15754, 15755, 15756, 15757, 15758, 15759, 15760, 15761,
  4698. 15762, 15763, 15764, 15765, 15766, 15767, 15768, 15769, 15770, 15771, 15772, 15773, 15774, 15775,
  4699. 15776, 15777, 15778, 15779, 15780, 15781, 15782, 15783, 15784, 15785, 15786, 15787, 15788, 15789,
  4700. 15790, 15791, 15792, 15793, 15794, 15795, 15796, 15797, 15798, 15799, 15800, 15801, 15802, 15803,
  4701. 15804, 15805, 15806, 15807, 15808, 15809, 15810, 15811, 15812, 15813, 15814, 15815, 15816, 15817,
  4702. 15818, 15819, 15820, 15821, 15822, 15823, 15824, 15825, 15826, 15827, 15828, 15829, 15830, 15831,
  4703. 15832, 15833, 15834, 15835, 15836, 15837, 15838, 15839, 15840, 15841, 15842, 15843, 15844, 15845,
  4704. 15846, 15847, 15848, 15849, 15850, 15851, 15852, 15853, 15854, 15855, 15856, 15857, 15858, 15859,
  4705. 15860, 15861, 15862, 15863, 15864, 15865, 15866, 15867, 15868, 15869, 15870, 15871, 15872, 15873,
  4706. 15874, 15875, 15876, 15877, 15878, 15879, 15880, 15881, 15882, 15883, 15884, 15885, 15886, 15887,
  4707. 15888, 15889, 15890, 15891, 15892, 15893, 15894, 15895, 15896, 15897, 15898, 15899, 15900, 15901,
  4708. 15902, 15903, 15904, 15905, 15906, 15907, 15908, 15909, 15910, 15911, 15912, 15913, 15914, 15915,
  4709. 15916, 15917, 15918, 15919, 15920, 15921, 15922, 15923, 15924, 15925, 15926, 15927, 15928, 15929,
  4710. 15930, 15931, 15932, 15933, 15934, 15935, 15936, 15937, 15938, 15939, 15940, 15941, 15942, 15943,
  4711. 15944, 15945, 15946, 15947, 15948, 15949, 15950, 15951, 15952, 15953, 15954, 15955, 15956, 15957,
  4712. 15958, 15959, 15960, 15961, 15962, 15963, 15964, 15965, 15966, 15967, 15968, 15969, 15970, 15971,
  4713. 15972, 15973, 15974, 15975, 15976, 15977, 15978, 15979, 15980, 15981, 15982, 15983, 15984, 15985,
  4714. 15986, 15987, 15988, 15989, 15990, 15991, 15992, 15993, 15994, 15995, 15996, 15997, 15998, 15999,
  4715. 16000, 16001, 16002, 16003, 16004, 16005, 16006, 16007, 16008, 16009, 16010, 16011, 16012, 16013,
  4716. 16014, 16015, 16016, 16017, 16018, 16019, 16020, 16021, 16022, 16023, 16024, 16025, 16026, 16027,
  4717. 16028, 16029, 16030, 16031, 16032, 16033, 16034, 16035, 16036, 16037, 16038, 16039, 16040, 16041,
  4718. 16042, 16043, 16044, 16045, 16046, 16047, 16048, 16049, 16050, 16051, 16052, 16053, 16054, 16055,
  4719. 16056, 16057, 16058, 16059, 16060, 16061, 16062, 16063, 16064, 16065, 16066, 16067, 16068, 16069,
  4720. 16070, 16071, 16072, 16073, 16074, 16075, 16076, 16077, 16078, 16079, 16080, 16081, 16082, 16083,
  4721. 16084, 16085, 16086, 16087, 16088, 16089, 16090, 16091, 16092, 16093, 16094, 16095, 16096, 16097,
  4722. 16098, 16099, 16100, 16101, 16102, 16103, 16104, 16105, 16106, 16107, 16108, 16109, 16110, 16111,
  4723. 16112, 16113, 16114, 16115, 16116, 16117, 16118, 16119, 16120, 16121, 16122, 16123, 16124, 16125,
  4724. 16126, 16127, 16128, 16129, 16130, 16131, 16132, 16133, 16134, 16135, 16136, 16137, 16138, 16139,
  4725. 16140, 16141, 16142, 16143, 16144, 16145, 16146, 16147, 16148, 16149, 16150, 16151, 16152, 16153,
  4726. 16154, 16155, 16156, 16157, 16158, 16159, 16160, 16161, 16162, 16163, 16164, 16165, 16166, 16167,
  4727. 16168, 16169, 16170, 16171, 16172, 16173, 16174, 16175, 16176, 16177, 16178, 16179, 16180, 16181,
  4728. 16182, 16183, 16184, 16185, 16186, 16187, 16188, 16189, 16190, 16191, 16192, 16193, 16194, 16195,
  4729. 16196, 16197, 16198, 16199, 16200, 16201, 16202, 16203, 16204, 16205, 16206, 16207, 16208, 16209,
  4730. 16210, 16211, 16212, 16213, 16214, 16215, 16216, 16217, 16218, 16219, 16220, 16221, 16222, 16223,
  4731. 16224, 16225, 16226, 16227, 16228, 16229, 16230, 16231, 16232, 16233, 16234, 16235, 16236, 16237,
  4732. 16238, 16239, 16240, 16241, 16242, 16243, 16244, 16245, 16246, 16247, 16248, 16249, 16250, 16251,
  4733. 16252, 16253, 16254, 16255, 16256, 16257, 16258, 16259, 16260, 16261, 16262, 16263, 16264, 16265,
  4734. 16266, 16267, 16268, 16269, 16270, 16271, 16272, 16273, 16274, 16275, 16276, 16277, 16278, 16279,
  4735. 16280, 16281, 16282, 16283, 16284, 16285, 16286, 16287, 16288, 16289, 16290, 16291, 16292, 16293,
  4736. 16294, 16295, 16296, 16297, 16298, 16299, 16300, 16301, 16302, 16303, 16304, 16305, 16306, 16307,
  4737. 16308, 16309, 16310, 16311, 16312, 16313, 16314, 16315, 16316, 16317, 16318, 16319, 16320, 16321,
  4738. 16322, 16323, 16324, 16325, 16326, 16327, 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335,
  4739. 16336, 16337, 16338, 16339, 16340, 16341, 16342, 16343, 16344, 16345, 16346, 16347, 16348, 16349,
  4740. 16350, 16351, 16352, 16353, 16354, 16355, 16356, 16357, 16358, 16359, 16360, 16361, 16362, 16363,
  4741. 16364, 16365, 16366, 16367, 16368, 16369, 16370, 16371, 16372, 16373, 16374, 16375, 16376, 16377,
  4742. 16378, 16379, 16380, 16381, 16382, 16383, 16384, 16385, 16386, 16387, 16388, 16389, 16390, 16391,
  4743. 16392, 16393, 16394, 16395, 16396, 16397, 16398, 16399, 16400, 16401, 16402, 16403, 16404, 16405,
  4744. 16406, 16407, 16408, 16409, 16410, 16411, 16412, 16413, 16414, 16415, 16416, 16417, 16418, 16419,
  4745. 16420, 16421, 16422, 16423, 16424, 16425, 16426, 16427, 16428, 16429, 16430, 16431, 16432, 16433,
  4746. 16434, 16435, 16436, 16437, 16438, 16439, 16440, 16441, 16442, 16443, 16444, 16445, 16446, 16447,
  4747. 16448, 16449, 16450, 16451, 16452, 16453, 16454, 16455, 16456, 16457, 16458, 16459, 16460, 16461,
  4748. 16462, 16463, 16464, 16465, 16466, 16467, 16468, 16469, 16470, 16471, 16472, 16473, 16474, 16475,
  4749. 16476, 16477, 16478, 16479, 16480, 16481, 16482, 16483, 16484, 16485, 16486, 16487, 16488, 16489,
  4750. 16490, 16491, 16492, 16493, 16494, 16495, 16496, 16497, 16498, 16499, 16500, 16501, 16502, 16503,
  4751. 16504, 16505, 16506, 16507, 16508, 16509, 16510, 16511, 16512, 16513, 16514, 16515, 16516, 16517,
  4752. 16518, 16519, 16520, 16521, 16522, 16523, 16524, 16525, 16526, 16527, 16528, 16529, 16530, 16531,
  4753. 16532, 16533, 16534, 16535, 16536, 16537, 16538, 16539, 16540, 16541, 16542, 16543, 16544, 16545,
  4754. 16546, 16547, 16548, 16549, 16550, 16551, 16552, 16553, 16554, 16555, 16556, 16557, 16558, 16559,
  4755. 16560, 16561, 16562, 16563, 16564, 16565, 16566, 16567, 16568, 16569, 16570, 16571, 16572, 16573,
  4756. 16574, 16575, 16576, 16577, 16578, 16579, 16580, 16581, 16582, 16583, 16584, 16585, 16586, 16587,
  4757. 16588, 16589, 16590, 16591, 16592, 16593, 16594, 16595, 16596, 16597, 16598, 16599, 16600, 16601,
  4758. 16602, 16603, 16604, 16605, 16606, 16607, 16608, 16609, 16610, 16611, 16612, 16613, 16614, 16615,
  4759. 16616, 16617, 16618, 16619, 16620, 16621, 16622, 16623, 16624, 16625, 16626, 16627, 16628, 16629,
  4760. 16630, 16631, 16632, 16633, 16634, 16635, 16636, 16637, 16638, 16639, 16640, 16641, 16642, 16643,
  4761. 16644, 16645, 16646, 16647, 16648, 16649, 16650, 16651, 16652, 16653, 16654, 16655, 16656, 16657,
  4762. 16658, 16659, 16660, 16661, 16662, 16663, 16664, 16665, 16666, 16667, 16668, 16669, 16670, 16671,
  4763. 16672, 16673, 16674, 16675, 16676, 16677, 16678, 16679, 16680, 16681, 16682, 16683, 16684, 16685,
  4764. 16686, 16687, 16688, 16689, 16690, 16691, 16692, 16693, 16694, 16695, 16696, 16697, 16698, 16699,
  4765. 16700, 16701, 16702, 16703, 16704, 16705, 16706, 16707, 16708, 16709, 16710, 16711, 16712, 16713,
  4766. 16714, 16715, 16716, 16717, 16718, 16719, 16720, 16721, 16722, 16723, 16724, 16725, 16726, 16727,
  4767. 16728, 16729, 16730, 16731, 16732, 16733, 16734, 16735, 16736, 16737, 16738, 16739, 16740, 16741,
  4768. 16742, 16743, 16744, 16745, 16746, 16747, 16748, 16749, 16750, 16751, 16752, 16753, 16754, 16755,
  4769. 16756, 16757, 16758, 16759, 16760, 16761, 16762, 16763, 16764, 16765, 16766, 16767, 16768, 16769,
  4770. 16770, 16771, 16772, 16773, 16774, 16775, 16776, 16777, 16778, 16779, 16780, 16781, 16782, 16783,
  4771. 16784, 16785, 16786, 16787, 16788, 16789, 16790, 16791, 16792, 16793, 16794, 16795, 16796, 16797,
  4772. 16798, 16799, 16800, 16801, 16802, 16803, 16804, 16805, 16806, 16807, 16808, 16809, 16810, 16811,
  4773. 16812, 16813, 16814, 16815, 16816, 16817, 16818, 16819, 16820, 16821, 16822, 16823, 16824, 16825,
  4774. 16826, 16827, 16828, 16829, 16830, 16831, 16832, 16833, 16834, 16835, 16836, 16837, 16838, 16839,
  4775. 16840, 16841, 16842, 16843, 16844, 16845, 16846, 16847, 16848, 16849, 16850, 16851, 16852, 16853,
  4776. 16854, 16855, 16856, 16857, 16858, 16859, 16860, 16861, 16862, 16863, 16864, 16865, 16866, 16867,
  4777. 16868, 16869, 16870, 16871, 16872, 16873, 16874, 16875, 16876, 16877, 16878, 16879, 16880, 16881,
  4778. 16882, 16883, 16884, 16885, 16886, 16887, 16888, 16889, 16890, 16891, 16892, 16893, 16894, 16895,
  4779. 16896, 16897, 16898, 16899, 16900, 16901, 16902, 16903, 16904, 16905, 16906, 16907, 16908, 16909,
  4780. 16910, 16911, 16912, 16913, 16914, 16915, 16916, 16917, 16918, 16919, 16920, 16921, 16922, 16923,
  4781. 16924, 16925, 16926, 16927, 16928, 16929, 16930, 16931, 16932, 16933, 16934, 16935, 16936, 16937,
  4782. 16938, 16939, 16940, 16941, 16942, 16943, 16944, 16945, 16946, 16947, 16948, 16949, 16950, 16951,
  4783. 16952, 16953, 16954, 16955, 16956, 16957, 16958, 16959, 16960, 16961, 16962, 16963, 16964, 16965,
  4784. 16966, 16967, 16968, 16969, 16970, 16971, 16972, 16973, 16974, 16975, 16976, 16977, 16978, 16979,
  4785. 16980, 16981, 16982, 16983, 16984, 16985, 16986, 16987, 16988, 16989, 16990, 16991, 16992, 16993,
  4786. 16994, 16995, 16996, 16997, 16998, 16999, 17000, 17001, 17002, 17003, 17004, 17005, 17006, 17007,
  4787. 17008, 17009, 17010, 17011, 17012, 17013, 17014, 17015, 17016, 17017, 17018, 17019, 17020, 17021,
  4788. 17022, 17023, 17024, 17025, 17026, 17027, 17028, 17029, 17030, 17031, 17032, 17033, 17034, 17035,
  4789. 17036, 17037, 17038, 17039, 17040, 17041, 17042, 17043, 17044, 17045, 17046, 17047, 17048, 17049,
  4790. 17050, 17051, 17052, 17053, 17054, 17055, 17056, 17057, 17058, 17059, 17060, 17061, 17062, 17063,
  4791. 17064, 17065, 17066, 17067, 17068, 17069, 17070, 17071, 17072, 17073, 17074, 17075, 17076, 17077,
  4792. 17078, 17079, 17080, 17081, 17082, 17083, 17084, 17085, 17086, 17087, 17088, 17089, 17090, 17091,
  4793. 17092, 17093, 17094, 17095, 17096, 17097, 17098, 17099, 17100, 17101, 17102, 17103, 17104, 17105,
  4794. 17106, 17107, 17108, 17109, 17110, 17111, 17112, 17113, 17114, 17115, 17116, 17117, 17118, 17119,
  4795. 17120, 17121, 17122, 17123, 17124, 17125, 17126, 17127, 17128, 17129, 17130, 17131, 17132, 17133,
  4796. 17134, 17135, 17136, 17137, 17138, 17139, 17140, 17141, 17142, 17143, 17144, 17145, 17146, 17147,
  4797. 17148, 17149, 17150, 17151, 17152, 17153, 17154, 17155, 17156, 17157, 17158, 17159, 17160, 17161,
  4798. 17162, 17163, 17164, 17165, 17166, 17167, 17168, 17169, 17170, 17171, 17172, 17173, 17174, 17175,
  4799. 17176, 17177, 17178, 17179, 17180, 17181, 17182, 17183, 17184, 17185, 17186, 17187, 17188, 17189,
  4800. 17190, 17191, 17192, 17193, 17194, 17195, 17196, 17197, 17198, 17199, 17200, 17201, 17202, 17203,
  4801. 17204, 17205, 17206, 17207, 17208, 17209, 17210, 17211, 17212, 17213, 17214, 17215, 17216, 17217,
  4802. 17218, 17219, 17220, 17221, 17222, 17223, 17224, 17225, 17226, 17227, 17228, 17229, 17230, 17231,
  4803. 17232, 17233, 17234, 17235, 17236, 17237, 17238, 17239, 17240, 17241, 17242, 17243, 17244, 17245,
  4804. 17246, 17247, 17248, 17249, 17250, 17251, 17252, 17253, 17254, 17255, 17256, 17257, 17258, 17259,
  4805. 17260, 17261, 17262, 17263, 17264, 17265, 17266, 17267, 17268, 17269, 17270, 17271, 17272, 17273,
  4806. 17274, 17275, 17276, 17277, 17278, 17279, 17280, 17281, 17282, 17283, 17284, 17285, 17286, 17287,
  4807. 17288, 17289, 17290, 17291, 17292, 17293, 17294, 17295, 17296, 17297, 17298, 17299, 17300, 17301,
  4808. 17302, 17303, 17304, 17305, 17306, 17307, 17308, 17309, 17310, 17311, 17312, 17313, 17314, 17315,
  4809. 17316, 17317, 17318, 17319, 17320, 17321, 17322, 17323, 17324, 17325, 17326, 17327, 17328, 17329,
  4810. 17330, 17331, 17332, 17333, 17334, 17335, 17336, 17337, 17338, 17339, 17340, 17341, 17342, 17343,
  4811. 17344, 17345, 17346, 17347, 17348, 17349, 17350, 17351, 17352, 17353, 17354, 17355, 17356, 17357,
  4812. 17358, 17359, 17360, 17361, 17362, 17363, 17364, 17365, 17366, 17367, 17368, 17369, 17370, 17371,
  4813. 17372, 17373, 17374, 17375, 17376, 17377, 17378, 17379, 17380, 17381, 17382, 17383, 17384, 17385,
  4814. 17386, 17387, 17388, 17389, 17390, 17391, 17392, 17393, 17394, 17395, 17396, 17397, 17398, 17399,
  4815. 17400, 17401, 17402, 17403, 17404, 17405, 17406, 17407, 17408, 17409, 17410, 17411, 17412, 17413,
  4816. 17414, 17415, 17416, 17417, 17418, 17419, 17420, 17421, 17422, 17423, 17424, 17425, 17426, 17427,
  4817. 17428, 17429, 17430, 17431, 17432, 17433, 17434, 17435, 17436, 17437, 17438, 17439, 17440, 17441,
  4818. 17442, 17443, 17444, 17445, 17446, 17447, 17448, 17449, 17450, 17451, 17452, 17453, 17454, 17455,
  4819. 17456, 17457, 17458, 17459, 17460, 17461, 17462, 17463, 17464, 17465, 17466, 17467, 17468, 17469,
  4820. 17470, 17471, 17472, 17473, 17474, 17475, 17476, 17477, 17478, 17479, 17480, 17481, 17482, 17483,
  4821. 17484, 17485, 17486, 17487, 17488, 17489, 17490, 17491, 17492, 17493, 17494, 17495, 17496, 17497,
  4822. 17498, 17499, 17500, 17501, 17502, 17503, 17504, 17505, 17506, 17507, 17508, 17509, 17510, 17511,
  4823. 17512, 17513, 17514, 17515, 17516, 17517, 17518, 17519, 17520, 17521, 17522, 17523, 17524, 17525,
  4824. 17526, 17527, 17528, 17529, 17530, 17531, 17532, 17533, 17534, 17535, 17536, 17537, 17538, 17539,
  4825. 17540, 17541, 17542, 17543, 17544, 17545, 17546, 17547, 17548, 17549, 17550, 17551, 17552, 17553,
  4826. 17554, 17555, 17556, 17557, 17558, 17559, 17560, 17561, 17562, 17563, 17564, 17565, 17566, 17567,
  4827. 17568, 17569, 17570, 17571, 17572, 17573, 17574, 17575, 17576, 17577, 17578, 17579, 17580, 17581,
  4828. 17582, 17583, 17584, 17585, 17586, 17587, 17588, 17589, 17590, 17591, 17592, 17593, 17594, 17595,
  4829. 17596, 17597, 17598, 17599, 17600, 17601, 17602, 17603, 17604, 17605, 17606, 17607, 17608, 17609,
  4830. 17610, 17611, 17612, 17613, 17614, 17615, 17616, 17617, 17618, 17619, 17620, 17621, 17622, 17623,
  4831. 17624, 17625, 17626, 17627, 17628, 17629, 17630, 17631, 17632, 17633, 17634, 17635, 17636, 17637,
  4832. 17638, 17639, 17640, 17641, 17642, 17643, 17644, 17645, 17646, 17647, 17648, 17649, 17650, 17651,
  4833. 17652, 17653, 17654, 17655, 17656, 17657, 17658, 17659, 17660, 17661, 17662, 17663, 17664, 17665,
  4834. 17666, 17667, 17668, 17669, 17670, 17671, 17672, 17673, 17674, 17675, 17676, 17677, 17678, 17679,
  4835. 17680, 17681, 17682, 17683, 17684, 17685, 17686, 17687, 17688, 17689, 17690, 17691, 17692, 17693,
  4836. 17694, 17695, 17696, 17697, 17698, 17699, 17700, 17701, 17702, 17703, 17704, 17705, 17706, 17707,
  4837. 17708, 17709, 17710, 17711, 17712, 17713, 17714, 17715, 17716, 17717, 17718, 17719, 17720, 17721,
  4838. 17722, 17723, 17724, 17725, 17726, 17727, 17728, 17729, 17730, 17731, 17732, 17733, 17734, 17735,
  4839. 17736, 17737, 17738, 17739, 17740, 17741, 17742, 17743, 17744, 17745, 17746, 17747, 17748, 17749,
  4840. 17750, 17751, 17752, 17753, 17754, 17755, 17756, 17757, 17758, 17759, 17760, 17761, 17762, 17763,
  4841. 17764, 17765, 17766, 17767, 17768, 17769, 17770, 17771, 17772, 17773, 17774, 17775, 17776, 17777,
  4842. 17778, 17779, 17780, 17781, 17782, 17783, 17784, 17785, 17786, 17787, 17788, 17789, 17790, 17791,
  4843. 17792, 17793, 17794, 17795, 17796, 17797, 17798, 17799, 17800, 17801, 17802, 17803, 17804, 17805,
  4844. 17806, 17807, 17808, 17809, 17810, 17811, 17812, 17813, 17814, 17815, 17816, 17817, 17818, 17819,
  4845. 17820, 17821, 17822, 17823, 17824, 17825, 17826, 17827, 17828, 17829, 17830, 17831, 17832, 17833,
  4846. 17834, 17835, 17836, 17837, 17838, 17839, 17840, 17841, 17842, 17843, 17844, 17845, 17846, 17847,
  4847. 17848, 17849, 17850, 17851, 17852, 17853, 17854, 17855, 17856, 17857, 17858, 17859, 17860, 17861,
  4848. 17862, 17863, 17864, 17865, 17866, 17867, 17868, 17869, 17870, 17871, 17872, 17873, 17874, 17875,
  4849. 17876, 17877, 17878, 17879, 17880, 17881, 17882, 17883, 17884, 17885, 17886, 17887, 17888, 17889,
  4850. 17890, 17891, 17892, 17893, 17894, 17895, 17896, 17897, 17898, 17899, 17900, 17901, 17902, 17903,
  4851. 17904, 17905, 17906, 17907, 17908, 17909, 17910, 17911, 17912, 17913, 17914, 17915, 17916, 17917,
  4852. 17918, 17919, 17920, 17921, 17922, 17923, 17924, 17925, 17926, 17927, 17928, 17929, 17930, 17931,
  4853. 17932, 17933, 17934, 17935, 17936, 17937, 17938, 17939, 17940, 17941, 17942, 17943, 17944, 17945,
  4854. 17946, 17947, 17948, 17949, 17950, 17951, 17952, 17953, 17954, 17955, 17956, 17957, 17958, 17959,
  4855. 17960, 17961, 17962, 17963, 17964, 17965, 17966, 17967, 17968, 17969, 17970, 17971, 17972, 17973,
  4856. 17974, 17975, 17976, 17977, 17978, 17979, 17980, 17981, 17982, 17983, 17984, 17985, 17986, 17987,
  4857. 17988, 17989, 17990, 17991, 17992, 17993, 17994, 17995, 17996, 17997, 17998, 17999, 18000, 18001,
  4858. 18002, 18003, 18004, 18005, 18006, 18007, 18008, 18009, 18010, 18011, 18012, 18013, 18014, 18015,
  4859. 18016, 18017, 18018, 18019, 18020, 18021, 18022, 18023, 18024, 18025, 18026, 18027, 18028, 18029,
  4860. 18030, 18031, 18032, 18033, 18034, 18035, 18036, 18037, 18038, 18039, 18040, 18041, 18042, 18043,
  4861. 18044, 18045, 18046, 18047, 18048, 18049, 18050, 18051, 18052, 18053, 18054, 18055, 18056, 18057,
  4862. 18058, 18059, 18060, 18061, 18062, 18063, 18064, 18065, 18066, 18067, 18068, 18069, 18070, 18071,
  4863. 18072, 18073, 18074, 18075, 18076, 18077, 18078, 18079, 18080, 18081, 18082, 18083, 18084, 18085,
  4864. 18086, 18087, 18088, 18089, 18090, 18091, 18092, 18093, 18094, 18095, 18096, 18097, 18098, 18099,
  4865. 18100, 18101, 18102, 18103, 18104, 18105, 18106, 18107, 18108, 18109, 18110, 18111, 18112, 18113,
  4866. 18114, 18115, 18116, 18117, 18118, 18119, 18120, 18121, 18122, 18123, 18124, 18125, 18126, 18127,
  4867. 18128, 18129, 18130, 18131, 18132, 18133, 18134, 18135, 18136, 18137, 18138, 18139, 18140, 18141,
  4868. 18142, 18143, 18144, 18145, 18146, 18147, 18148, 18149, 18150, 18151, 18152, 18153, 18154, 18155,
  4869. 18156, 18157, 18158, 18159, 18160, 18161, 18162, 18163, 18164, 18165, 18166, 18167, 18168, 18169,
  4870. 18170, 18171, 18172, 18173, 18174, 18175, 18176, 18177, 18178, 18179, 18180, 18181, 18182, 18183,
  4871. 18184, 18185, 18186, 18187, 18188, 18189, 18190, 18191, 18192, 18193, 18194, 18195, 18196, 18197,
  4872. 18198, 18199, 18200, 18201, 18202, 18203, 18204, 18205, 18206, 18207, 18208, 18209, 18210, 18211,
  4873. 18212, 18213, 18214, 18215, 18216, 18217, 18218, 18219, 18220, 18221, 18222, 18223, 18224, 18225,
  4874. 18226, 18227, 18228, 18229, 18230, 18231, 18232, 18233, 18234, 18235, 18236, 18237, 18238, 18239,
  4875. 18240, 18241, 18242, 18243, 18244, 18245, 18246, 18247, 18248, 18249, 18250, 18251, 18252, 18253,
  4876. 18254, 18255, 18256, 18257, 18258, 18259, 18260, 18261, 18262, 18263, 18264, 18265, 18266, 18267,
  4877. 18268, 18269, 18270, 18271, 18272, 18273, 18274, 18275, 18276, 18277, 18278, 18279, 18280, 18281,
  4878. 18282, 18283, 18284, 18285, 18286, 18287, 18288, 18289, 18290, 18291, 18292, 18293, 18294, 18295,
  4879. 18296, 18297, 18298, 18299, 18300, 18301, 18302, 18303, 18304, 18305, 18306, 18307, 18308, 18309,
  4880. 18310, 18311, 18312, 18313, 18314, 18315, 18316, 18317, 18318, 18319, 18320, 18321, 18322, 18323,
  4881. 18324, 18325, 18326, 18327, 18328, 18329, 18330, 18331, 18332, 18333, 18334, 18335, 18336, 18337,
  4882. 18338, 18339, 18340, 18341, 18342, 18343, 18344, 18345, 18346, 18347, 18348, 18349, 18350, 18351,
  4883. 18352, 18353, 18354, 18355, 18356, 18357, 18358, 18359, 18360, 18361, 18362, 18363, 18364, 18365,
  4884. 18366, 18367, 18368, 18369, 18370, 18371, 18372, 18373, 18374, 18375, 18376, 18377, 18378, 18379,
  4885. 18380, 18381, 18382, 18383, 18384, 18385, 18386, 18387, 18388, 18389, 18390, 18391, 18392, 18393,
  4886. 18394, 18395, 18396, 18397, 18398, 18399, 18400, 18401, 18402, 18403, 18404, 18405, 18406, 18407,
  4887. 18408, 18409, 18410, 18411, 18412, 18413, 18414, 18415, 18416, 18417, 18418, 18419, 18420, 18421,
  4888. 18422, 18423, 18424, 18425, 18426, 18427, 18428, 18429, 18430, 18431, 18432, 18433, 18434, 18435,
  4889. 18436, 18437, 18438, 18439, 18440, 18441, 18442, 18443, 18444, 18445, 18446, 18447, 18448, 18449,
  4890. 18450, 18451, 18452, 18453, 18454, 18455, 18456, 18457, 18458, 18459, 18460, 18461, 18462, 18463,
  4891. 18464, 18465, 18466, 18467, 18468, 18469, 18470, 18471, 18472, 18473, 18474, 18475, 18476, 18477,
  4892. 18478, 18479, 18480, 18481, 18482, 18483, 18484, 18485, 18486, 18487, 18488, 18489, 18490, 18491,
  4893. 18492, 18493, 18494, 18495, 18496, 18497, 18498, 18499, 18500, 18501, 18502, 18503, 18504, 18505,
  4894. 18506, 18507, 18508, 18509, 18510, 18511, 18512, 18513, 18514, 18515, 18516, 18517, 18518, 18519,
  4895. 18520, 18521, 18522, 18523, 18524, 18525, 18526, 18527, 18528, 18529, 18530, 18531, 18532, 18533,
  4896. 18534, 18535, 18536, 18537, 18538, 18539, 18540, 18541, 18542, 18543, 18544, 18545, 18546, 18547,
  4897. 18548, 18549, 18550, 18551, 18552, 18553, 18554, 18555, 18556, 18557, 18558, 18559, 18560, 18561,
  4898. 18562, 18563, 18564, 18565, 18566, 18567, 18568, 18569, 18570, 18571, 18572, 18573, 18574, 18575,
  4899. 18576, 18577, 18578, 18579, 18580, 18581, 18582, 18583, 18584, 18585, 18586, 18587, 18588, 18589,
  4900. 18590, 18591, 18592, 18593, 18594, 18595, 18596, 18597, 18598, 18599, 18600, 18601, 18602, 18603,
  4901. 18604, 18605, 18606, 18607, 18608, 18609, 18610, 18611, 18612, 18613, 18614, 18615, 18616, 18617,
  4902. 18618, 18619, 18620, 18621, 18622, 18623, 18624, 18625, 18626, 18627, 18628, 18629, 18630, 18631,
  4903. 18632, 18633, 18634, 18635, 18636, 18637, 18638, 18639, 18640, 18641, 18642, 18643, 18644, 18645,
  4904. 18646, 18647, 18648, 18649, 18650, 18651, 18652, 18653, 18654, 18655, 18656, 18657, 18658, 18659,
  4905. 18660, 18661, 18662, 18663, 18664, 18665, 18666, 18667, 18668, 18669, 18670, 18671, 18672, 18673,
  4906. 18674, 18675, 18676, 18677, 18678, 18679, 18680, 18681, 18682, 18683, 18684, 18685, 18686, 18687,
  4907. 18688, 18689, 18690, 18691, 18692, 18693, 18694, 18695, 18696, 18697, 18698, 18699, 18700, 18701,
  4908. 18702, 18703, 18704, 18705, 18706, 18707, 18708, 18709, 18710, 18711, 18712, 18713, 18714, 18715,
  4909. 18716, 18717, 18718, 18719, 18720, 18721, 18722, 18723, 18724, 18725, 18726, 18727, 18728, 18729,
  4910. 18730, 18731, 18732, 18733, 18734, 18735, 18736, 18737, 18738, 18739, 18740, 18741, 18742, 18743,
  4911. 18744, 18745, 18746, 18747, 18748, 18749, 18750, 18751, 18752, 18753, 18754, 18755, 18756, 18757,
  4912. 18758, 18759, 18760, 18761, 18762, 18763, 18764, 18765, 18766, 18767, 18768, 18769, 18770, 18771,
  4913. 18772, 18773, 18774, 18775, 18776, 18777, 18778, 18779, 18780, 18781, 18782, 18783, 18784, 18785,
  4914. 18786, 18787, 18788, 18789, 18790, 18791, 18792, 18793, 18794, 18795, 18796, 18797, 18798, 18799,
  4915. 18800, 18801, 18802, 18803, 18804, 18805, 18806, 18807, 18808, 18809, 18810, 18811, 18812, 18813,
  4916. 18814, 18815, 18816, 18817, 18818, 18819, 18820, 18821, 18822, 18823, 18824, 18825, 18826, 18827,
  4917. 18828, 18829, 18830, 18831, 18832, 18833, 18834, 18835, 18836, 18837, 18838, 18839, 18840, 18841,
  4918. 18842, 18843, 18844, 18845, 18846, 18847, 18848, 18849, 18850, 18851, 18852, 18853, 18854, 18855,
  4919. 18856, 18857, 18858, 18859, 18860, 18861, 18862, 18863, 18864, 18865, 18866, 18867, 18868, 18869,
  4920. 18870, 18871, 18872, 18873, 18874, 18875, 18876, 18877, 18878, 18879, 18880, 18881, 18882, 18883,
  4921. 18884, 18885, 18886, 18887, 18888, 18889, 18890, 18891, 18892, 18893, 18894, 18895, 18896, 18897,
  4922. 18898, 18899, 18900, 18901, 18902, 18903, 18904, 18905, 18906, 18907, 18908, 18909, 18910, 18911,
  4923. 18912, 18913, 18914, 18915, 18916, 18917, 18918, 18919, 18920, 18921, 18922, 18923, 18924, 18925,
  4924. 18926, 18927, 18928, 18929, 18930, 18931, 18932, 18933, 18934, 18935, 18936, 18937, 18938, 18939,
  4925. 18940, 18941, 18942, 18943, 18944, 18945, 18946, 18947, 18948, 18949, 18950, 18951, 18952, 18953,
  4926. 18954, 18955, 18956, 18957, 18958, 18959, 18960, 18961, 18962, 18963, 18964, 18965, 18966, 18967,
  4927. 18968, 18969, 18970, 18971, 18972, 18973, 18974, 18975, 18976, 18977, 18978, 18979, 18980, 18981,
  4928. 18982, 18983, 18984, 18985, 18986, 18987, 18988, 18989, 18990, 18991, 18992, 18993, 18994, 18995,
  4929. 18996, 18997, 18998, 18999, 19000, 19001, 19002, 19003, 19004, 19005, 19006, 19007, 19008, 19009,
  4930. 19010, 19011, 19012, 19013, 19014, 19015, 19016, 19017, 19018, 19019, 19020, 19021, 19022, 19023,
  4931. 19024, 19025, 19026, 19027, 19028, 19029, 19030, 19031, 19032, 19033, 19034, 19035, 19036, 19037,
  4932. 19038, 19039, 19040, 19041, 19042, 19043, 19044, 19045, 19046, 19047, 19048, 19049, 19050, 19051,
  4933. 19052, 19053, 19054, 19055, 19056, 19057, 19058, 19059, 19060, 19061, 19062, 19063, 19064, 19065,
  4934. 19066, 19067, 19068, 19069, 19070, 19071, 19072, 19073, 19074, 19075, 19076, 19077, 19078, 19079,
  4935. 19080, 19081, 19082, 19083, 19084, 19085, 19086, 19087, 19088, 19089, 19090, 19091, 19092, 19093,
  4936. 19094, 19095, 19096, 19097, 19098, 19099, 19100, 19101, 19102, 19103, 19104, 19105, 19106, 19107,
  4937. 19108, 19109, 19110, 19111, 19112, 19113, 19114, 19115, 19116, 19117, 19118, 19119, 19120, 19121,
  4938. 19122, 19123, 19124, 19125, 19126, 19127, 19128, 19129, 19130, 19131, 19132, 19133, 19134, 19135,
  4939. 19136, 19137, 19138, 19139, 19140, 19141, 19142, 19143, 19144, 19145, 19146, 19147, 19148, 19149,
  4940. 19150, 19151, 19152, 19153, 19154, 19155, 19156, 19157, 19158, 19159, 19160, 19161, 19162, 19163,
  4941. 19164, 19165, 19166, 19167, 19168, 19169, 19170, 19171, 19172, 19173, 19174, 19175, 19176, 19177,
  4942. 19178, 19179, 19180, 19181, 19182, 19183, 19184, 19185, 19186, 19187, 19188, 19189, 19190, 19191,
  4943. 19192, 19193, 19194, 19195, 19196, 19197, 19198, 19199, 19200, 19201, 19202, 19203, 19204, 19205,
  4944. 19206, 19207, 19208, 19209, 19210, 19211, 19212, 19213, 19214, 19215, 19216, 19217, 19218, 19219,
  4945. 19220, 19221, 19222, 19223, 19224, 19225, 19226, 19227, 19228, 19229, 19230, 19231, 19232, 19233,
  4946. 19234, 19235, 19236, 19237, 19238, 19239, 19240, 19241, 19242, 19243, 19244, 19245, 19246, 19247,
  4947. 19248, 19249, 19250, 19251, 19252, 19253, 19254, 19255, 19256, 19257, 19258, 19259, 19260, 19261,
  4948. 19262, 19263, 19264, 19265, 19266, 19267, 19268, 19269, 19270, 19271, 19272, 19273, 19274, 19275,
  4949. 19276, 19277, 19278, 19279, 19280, 19281, 19282, 19283, 19284, 19285, 19286, 19287, 19288, 19289,
  4950. 19290, 19291, 19292, 19293, 19294, 19295, 19296, 19297, 19298, 19299, 19300, 19301, 19302, 19303,
  4951. 19304, 19305, 19306, 19307, 19308, 19309, 19310, 19311, 19312, 19313, 19314, 19315, 19316, 19317,
  4952. 19318, 19319, 19320, 19321, 19322, 19323, 19324, 19325, 19326, 19327, 19328, 19329, 19330, 19331,
  4953. 19332, 19333, 19334, 19335, 19336, 19337, 19338, 19339, 19340, 19341, 19342, 19343, 19344, 19345,
  4954. 19346, 19347, 19348, 19349, 19350, 19351, 19352, 19353, 19354, 19355, 19356, 19357, 19358, 19359,
  4955. 19360, 19361, 19362, 19363, 19364, 19365, 19366, 19367, 19368, 19369, 19370, 19371, 19372, 19373,
  4956. 19374, 19375, 19376, 19377, 19378, 19379, 19380, 19381, 19382, 19383, 19384, 19385, 19386, 19387,
  4957. 19388, 19389, 19390, 19391, 19392, 19393, 19394, 19395, 19396, 19397, 19398, 19399, 19400, 19401,
  4958. 19402, 19403, 19404, 19405, 19406, 19407, 19408, 19409, 19410, 19411, 19412, 19413, 19414, 19415,
  4959. 19416, 19417, 19418, 19419, 19420, 19421, 19422, 19423, 19424, 19425, 19426, 19427, 19428, 19429,
  4960. 19430, 19431, 19432, 19433, 19434, 19435, 19436, 19437, 19438, 19439, 19440, 19441, 19442, 19443,
  4961. 19444, 19445, 19446, 19447, 19448, 19449, 19450, 19451, 19452, 19453, 19454, 19455, 19456, 19457,
  4962. 19458, 19459, 19460, 19461, 19462, 19463, 19464, 19465, 19466, 19467, 19468, 19469, 19470, 19471,
  4963. 19472, 19473, 19474, 19475, 19476, 19477, 19478, 19479, 19480, 19481, 19482, 19483, 19484, 19485,
  4964. 19486, 19487, 19488, 19489, 19490, 19491, 19492, 19493, 19494, 19495, 19496, 19497, 19498, 19499,
  4965. 19500, 19501, 19502, 19503, 19504, 19505, 19506, 19507, 19508, 19509, 19510, 19511, 19512, 19513,
  4966. 19514, 19515, 19516, 19517, 19518, 19519, 19520, 19521, 19522, 19523, 19524, 19525, 19526, 19527,
  4967. 19528, 19529, 19530, 19531, 19532, 19533, 19534, 19535, 19536, 19537, 19538, 19539, 19540, 19541,
  4968. 19542, 19543, 19544, 19545, 19546, 19547, 19548, 19549, 19550, 19551, 19552, 19553, 19554, 19555,
  4969. 19556, 19557, 19558, 19559, 19560, 19561, 19562, 19563, 19564, 19565, 19566, 19567, 19568, 19569,
  4970. 19570, 19571, 19572, 19573, 19574, 19575, 19576, 19577, 19578, 19579, 19580, 19581, 19582, 19583,
  4971. 19584, 19585, 19586, 19587, 19588, 19589, 19590, 19591, 19592, 19593, 19594, 19595, 19596, 19597,
  4972. 19598, 19599, 19600, 19601, 19602, 19603, 19604, 19605, 19606, 19607, 19608, 19609, 19610, 19611,
  4973. 19612, 19613, 19614, 19615, 19616, 19617, 19618, 19619, 19620, 19621, 19622, 19623, 19624, 19625,
  4974. 19626, 19627, 19628, 19629, 19630, 19631, 19632, 19633, 19634, 19635, 19636, 19637, 19638, 19639,
  4975. 19640, 19641, 19642, 19643, 19644, 19645, 19646, 19647, 19648, 19649, 19650, 19651, 19652, 19653,
  4976. 19654, 19655, 19656, 19657, 19658, 19659, 19660, 19661, 19662, 19663, 19664, 19665, 19666, 19667,
  4977. 19668, 19669, 19670, 19671, 19672, 19673, 19674, 19675, 19676, 19677, 19678, 19679, 19680, 19681,
  4978. 19682, 19683, 19684, 19685, 19686, 19687, 19688, 19689, 19690, 19691, 19692, 19693, 19694, 19695,
  4979. 19696, 19697, 19698, 19699, 19700, 19701, 19702, 19703, 19704, 19705, 19706, 19707, 19708, 19709,
  4980. 19710, 19711, 19712, 19713, 19714, 19715, 19716, 19717, 19718, 19719, 19720, 19721, 19722, 19723,
  4981. 19724, 19725, 19726, 19727, 19728, 19729, 19730, 19731, 19732, 19733, 19734, 19735, 19736, 19737,
  4982. 19738, 19739, 19740, 19741, 19742, 19743, 19744, 19745, 19746, 19747, 19748, 19749, 19750, 19751,
  4983. 19752, 19753, 19754, 19755, 19756, 19757, 19758, 19759, 19760, 19761, 19762, 19763, 19764, 19765,
  4984. 19766, 19767, 19768, 19769, 19770, 19771, 19772, 19773, 19774, 19775, 19776, 19777, 19778, 19779,
  4985. 19780, 19781, 19782, 19783, 19784, 19785, 19786, 19787, 19788, 19789, 19790, 19791, 19792, 19793,
  4986. 19794, 19795, 19796, 19797, 19798, 19799, 19800, 19801, 19802, 19803, 19804, 19805, 19806, 19807,
  4987. 19808, 19809, 19810, 19811, 19812, 19813, 19814, 19815, 19816, 19817, 19818, 19819, 19820, 19821,
  4988. 19822, 19823, 19824, 19825, 19826, 19827, 19828, 19829, 19830, 19831, 19832, 19833, 19834, 19835,
  4989. 19836, 19837, 19838, 19839, 19840, 19841, 19842, 19843, 19844, 19845, 19846, 19847, 19848, 19849,
  4990. 19850, 19851, 19852, 19853, 19854, 19855, 19856, 19857, 19858, 19859, 19860, 19861, 19862, 19863,
  4991. 19864, 19865, 19866, 19867, 19868, 19869, 19870, 19871, 19872, 19873, 19874, 19875, 19876, 19877,
  4992. 19878, 19879, 19880, 19881, 19882, 19883, 19884, 19885, 19886, 19887, 19888, 19889, 19890, 19891,
  4993. 19892, 19893, 19894, 19895, 19896, 19897, 19898, 19899, 19900, 19901, 19902, 19903, 19904, 19905,
  4994. 19906, 19907, 19908, 19909, 19910, 19911, 19912, 19913, 19914, 19915, 19916, 19917, 19918, 19919,
  4995. 19920, 19921, 19922, 19923, 19924, 19925, 19926, 19927, 19928, 19929, 19930, 19931, 19932, 19933,
  4996. 19934, 19935, 19936, 19937, 19938, 19939, 19940, 19941, 19942, 19943, 19944, 19945, 19946, 19947,
  4997. 19948, 19949, 19950, 19951, 19952, 19953, 19954, 19955, 19956, 19957, 19958, 19959, 19960, 19961,
  4998. 19962, 19963, 19964, 19965, 19966, 19967, 19968, 19969, 19970, 19971, 19972, 19973, 19974, 19975,
  4999. 19976, 19977, 19978, 19979, 19980, 19981, 19982, 19983, 19984, 19985, 19986, 19987, 19988, 19989,
  5000. 19990, 19991, 19992, 19993, 19994, 19995, 19996, 19997, 19998, 19999
  5001. };
  5002. enum e_Interiors
  5003. {
  5004. e_InteriorName[32],
  5005. e_Interior,
  5006. Float: e_InteriorX,
  5007. Float: e_InteriorY,
  5008. Float: e_InteriorZ,
  5009. Float: e_InteriorA
  5010. };
  5011. new EnteringVehicle[MAX_PLAYERS];
  5012. new EnteringVeh_Timer[MAX_PLAYERS];
  5013. // interiors.txt
  5014. new const g_Interiors[][e_Interiors] =
  5015. {
  5016. {"Ganton Gym", 5, 770.8033, -0.7033, 1000.7267, 22.8599},
  5017. {"Brothel 1", 3, 974.0177, -9.5937, 1001.1484, 22.6045},
  5018. {"Brothel 2", 3, 961.9308, -51.9071, 1001.1172, 95.5381},
  5019. {"Inside Track Betting", 3, 830.6016, 5.9404, 1004.1797, 125.8149},
  5020. {"Blastin' Fools Records", 3, 1037.8276, 0.397, 1001.2845, 353.9335},
  5021. {"The Big Spread Ranch", 3, 1212.1489, -28.5388, 1000.9531, 170.5692},
  5022. {"Warehouse 1", 18, 1290.4106, 1.9512, 1001.0201, 179.9419},
  5023. {"Warehouse 2", 1, 1412.1472, -2.2836, 1000.9241, 114.661},
  5024. {"B Dup's Apartment", 3, 1527.0468, -12.0236, 1002.0971, 350.0013},
  5025. {"B Dup's Crack Palace", 2, 1523.5098, -47.8211, 1002.2699, 262.7038},
  5026. {"Wheel Arch Angels", 3, 612.2191, -123.9028, 997.9922, 266.5704},
  5027. {"OG Loc's House", 3, 512.9291, -11.6929, 1001.5653, 198.7669},
  5028. {"Barber Shop", 3, 418.4666, -80.4595, 1001.8047, 343.2358},
  5029. {"Planning Department", 3, 386.5259, 173.6381, 1008.3828, 63.7399},
  5030. {"Las Venturas Police Department", 3, 288.4723, 170.0647, 1007.1794, 22.0477},
  5031. {"Pro-Laps", 3, 206.4627, -137.7076, 1003.0938, 10.9347},
  5032. {"Sex Shop", 3, -100.2674, -22.9376, 1000.7188, 17.285},
  5033. {"Las Venturas Tattoo parlor", 3, -201.2236, -43.2465, 1002.2734, 45.8613},
  5034. {"Lost San Fierro Tattoo parlor", 17, -202.9381, -6.7006, 1002.2734, 204.2693},
  5035. {"24/7 (version 1)", 17, -25.7220, -187.8216, 1003.5469, 5.0760},
  5036. {"Diner 1", 5, 454.9853, -107.2548, 999.4376, 309.0195},
  5037. {"Pizza Stack", 5, 372.5565, -131.3607, 1001.4922, 354.2285},
  5038. {"Rusty Brown's Donuts", 17, 378.026, -190.5155, 1000.6328, 141.0245},
  5039. {"Ammu-nation", 7, 315.244, -140.8858, 999.6016, 7.4226},
  5040. {"Victim", 5, 225.0306, -9.1838, 1002.218, 85.5322},
  5041. {"Loco Low Co", 2, 611.3536, -77.5574, 997.9995, 320.9263},
  5042. {"San Fierro Police Department", 10, 246.0688, 108.9703, 1003.2188, 0.2922},
  5043. {"24/7 (version 2 - large)", 10, 6.0856, -28.8966, 1003.5494, 5.0365},
  5044. {"Las Venturas Gym", 7, 773.7318, -74.6957, 1000.6542, 5.2304},
  5045. {"Transfenders", 1, 621.4528, -23.7289, 1000.9219, 15.6789},
  5046. {"World of Coq", 1, 445.6003, -6.9823, 1000.7344, 172.2105},
  5047. {"Ammu-nation (version 2)", 1, 285.8361, -39.0166, 1001.5156, 0.7529},
  5048. {"SubUrban", 1, 204.1174, -46.8047, 1001.8047, 357.5777},
  5049. {"Denise's Bedroom", 1, 245.2307, 304.7632, 999.1484, 273.4364},
  5050. {"Helena's Barn", 3, 290.623, 309.0622, 999.1484, 89.9164},
  5051. {"Barbara's Love nest", 5, 322.5014, 303.6906, 999.1484, 8.1747},
  5052. {"San Fierro Garage", 1, -2041.2334, 178.3969, 28.8465, 156.2153},
  5053. {"Oval Stadium", 1, -1402.6613, 106.3897, 1032.2734, 105.1356},
  5054. {"8-Track Stadium", 7, -1403.0116, -250.4526, 1043.5341, 355.8576},
  5055. {"The Pig Pen (strip club 2)", 2, 1204.6689, -13.5429, 1000.9219, 350.0204},
  5056. {"Four Dragons", 10, 2016.1156, 1017.1541, 996.875, 88.0055},
  5057. {"Liberty City", 1, -741.8495, 493.0036, 1371.9766, 71.7782},
  5058. {"Ryder's house", 2, 2447.8704, -1704.4509, 1013.5078, 314.5253},
  5059. {"Sweet's House", 1, 2527.0176, -1679.2076, 1015.4986, 260.9709},
  5060. {"RC Battlefield", 10, -1129.8909, 1057.5424, 1346.4141, 274.5268},
  5061. {"The Johnson House", 3, 2496.0549, -1695.1749, 1014.7422, 179.2174},
  5062. {"Burger shot", 10, 366.0248, -73.3478, 1001.5078, 292.0084},
  5063. {"Caligula's Casino", 1, 2233.9363, 1711.8038, 1011.6312, 184.3891},
  5064. {"Katie's Lovenest", 2, 269.6405, 305.9512, 999.1484, 215.6625},
  5065. {"Barber Shop 2 (Reece's)", 2, 414.2987, -18.8044, 1001.8047, 41.4265},
  5066. {"Angel Pine Trailer", 2, 1.1853, -3.2387, 999.4284, 87.5718},
  5067. {"24/7 (version 3)", 18, -30.9875, -89.6806, 1003.5469, 359.8401},
  5068. {"Zip", 18, 161.4048, -94.2416, 1001.8047, 0.7938},
  5069. {"The Pleasure Domes", 3, -2638.8232, 1407.3395, 906.4609, 94.6794},
  5070. {"Madd Dogg's Mansion", 5, 1267.8407, -776.9587, 1091.9063, 231.3418},
  5071. {"Big Smoke's Crack Palace", 2, 2536.5322, -1294.8425, 1044.125, 254.9548},
  5072. {"Burning Desire Building", 5, 2350.1597, -1181.0658, 1027.9766, 99.1864},
  5073. {"Wu-Zi Mu's", 1, -2158.6731, 642.09, 1052.375, 86.5402},
  5074. {"Abandoned AC tower", 10, 419.8936, 2537.1155, 10.0000, 67.6537},
  5075. {"Wardrobe/Changing room", 14, 256.9047, -41.6537, 1002.0234, 85.8774},
  5076. {"Didier Sachs", 14, 204.1658, -165.7678, 1000.5234, 181.7583},
  5077. {"Casino (Redsands West)", 12, 1133.35, -7.8462, 1000.6797, 165.8482},
  5078. {"Kickstart Stadium", 14, -1420.4277, 1616.9221, 1052.5313, 159.1255},
  5079. {"Club", 17, 493.1443, -24.2607, 1000.6797, 356.9864},
  5080. {"Atrium", 18, 1727.2853, -1642.9451, 20.2254, 172.4193},
  5081. {"Los Santos Tattoo Parlor", 16, -202.842, -24.0325, 1002.2734, 252.8154},
  5082. {"Safe House group 1", 5, 2233.6919, -1112.8107, 1050.8828, 8.6483},
  5083. {"Safe House group 2", 6, 1211.2484, 1049.0234, 359.941, 170.9341},
  5084. {"Safe House group 3", 9, 2319.1272, -1023.9562, 1050.2109, 167.3959},
  5085. {"Safe House group 4", 10, 2261.0977, -1137.8833, 1050.6328, 266.88},
  5086. {"Sherman Dam", 17, -944.2402, 1886.1536, 5.0051, 179.8548},
  5087. {"24/7 (version 4)", 16, -26.1856, -140.9164, 1003.5469, 2.9087},
  5088. {"Jefferson Motel", 15, 2217.281, -1150.5349, 1025.7969, 273.7328},
  5089. {"Jet Interior", 1, 1.5491, 23.3183, 1199.5938, 359.9054},
  5090. {"The Welcome Pump", 1, 681.6216, -451.8933, -25.6172, 166.166},
  5091. {"Burglary House X1", 3, 234.6087, 1187.8195, 1080.2578, 349.4844},
  5092. {"Burglary House X2", 2, 225.5707, 1240.0643, 1082.1406, 96.2852},
  5093. {"Burglary House X3", 1, 224.288, 1289.1907, 1082.1406, 359.868},
  5094. {"Burglary House X4", 5, 239.2819, 1114.1991, 1080.9922, 270.2654},
  5095. {"Binco", 15, 207.5219, -109.7448, 1005.1328, 358.62},
  5096. {"4 Burglary houses", 15, 295.1391, 1473.3719, 1080.2578, 352.9526},
  5097. {"Blood Bowl Stadium", 15, -1417.8927, 932.4482, 1041.5313, 0.7013},
  5098. {"Budget Inn Motel Room", 12, 446.3247, 509.9662, 1001.4195, 330.5671},
  5099. {"Palamino Bank", 0, 2306.3826, -15.2365, 26.7496, 274.49},
  5100. {"Palamino Diner", 0, 2331.8984, 6.7816, 26.5032, 100.2357},
  5101. {"Dillimore Gas Station", 0, 663.0588, -573.6274, 16.3359, 264.9829},
  5102. {"Lil' Probe Inn", 18, -227.5703, 1401.5544, 27.7656, 269.2978},
  5103. {"Torreno's Ranch", 0, -688.1496, 942.0826, 13.6328, 177.6574},
  5104. {"Zombotech - lobby area", 0, -1916.1268, 714.8617, 46.5625, 152.2839},
  5105. {"Crypt in LS cemetery (temple)", 0, 818.7714, -1102.8689, 25.794, 91.1439},
  5106. {"Blueberry Liquor Store", 0, 255.2083, -59.6753, 1.5703, 1.4645},
  5107. {"Pair of Burglary Houses", 2, 446.626, 1397.738, 1084.3047, 343.9647},
  5108. {"Crack Den", 5, 227.3922, 1114.6572, 1080.9985, 267.459},
  5109. {"Burglary House X11", 5, 227.7559, 1114.3844, 1080.9922, 266.2624},
  5110. {"Burglary House X12", 4, 261.1165, 1287.2197, 1080.2578, 178.9149},
  5111. {"Ammu-nation (version 3)", 4, 291.7626, -80.1306, 1001.5156, 290.2195},
  5112. {"Jay's Diner", 4, 449.0172, -88.9894, 999.5547, 89.6608},
  5113. {"24/7 (version 5)", 4, -27.844, -26.6737, 1003.5573, 184.3118},
  5114. {"Warehouse 3", 0, 2135.2004, -2276.2815, 20.6719, 318.59},
  5115. {"Michelle's Love Nest*", 4, 306.1966, 307.819, 1003.3047, 203.1354},
  5116. {"Burglary House X14", 10, 24.3769, 1341.1829, 1084.375, 8.3305},
  5117. {"Sindacco Abatoir", 1, 963.0586, 2159.7563, 1011.0303, 175.313},
  5118. {"K.A.C.C. Military Fuels Depot", 0, 2548.4807, 2823.7429, 10.8203, 270.6003},
  5119. {"Area 69", 0, 215.1515, 1874.0579, 13.1406, 177.5538},
  5120. {"Burglary House X13", 4, 221.6766, 1142.4962, 1082.6094, 184.9618},
  5121. {"Unused Safe House", 12, 2323.7063, -1147.6509, 1050.7101, 206.5352},
  5122. {"Millie's Bedroom", 6, 344.9984, 307.1824, 999.1557, 193.643},
  5123. {"Barber Shop", 12, 411.9707, -51.9217, 1001.8984, 173.3449},
  5124. {"Dirtbike Stadium", 4, -1421.5618, -663.8262, 1059.5569, 170.9341},
  5125. {"Cobra Gym", 6, 773.8887, -47.7698, 1000.5859, 10.7161},
  5126. {"Los Santos Police Department", 6, 246.6695, 65.8039, 1003.6406, 7.9562},
  5127. {"Los Santos Airport", 14, -1864.9434, 55.7325, 1055.5276, 85.8541},
  5128. {"Burglary House X15", 4, -262.1759, 1456.6158, 1084.3672, 82.459},
  5129. {"Burglary House X16", 5, 22.861, 1404.9165, 1084.4297, 349.6158},
  5130. {"Burglary House X17", 5, 140.3679, 1367.8837, 1083.8621, 349.2372},
  5131. {"Bike School", 3, 1494.8589, 1306.48, 1093.2953, 196.065},
  5132. {"Francis International Airport", 14, -1813.213, -58.012, 1058.9641, 335.3199},
  5133. {"Vice Stadium", 16, -1401.067, 1265.3706, 1039.8672, 178.6483},
  5134. {"Burglary House X18", 6, 234.2826, 1065.229, 1084.2101, 4.3864},
  5135. {"Burglary House X19", 6, -68.5145, 1353.8485, 1080.2109, 3.5742},
  5136. {"Zero's RC Shop", 6, -2240.1028, 136.973, 1035.4141, 269.0954},
  5137. {"Ammu-nation (version 4)", 6, 297.144, -109.8702, 1001.5156, 20.2254},
  5138. {"Ammu-nation (version 5)", 6, 316.5025, -167.6272, 999.5938, 10.3031},
  5139. {"Burglary House X20", 15, -285.2511, 1471.197, 1084.375, 85.6547},
  5140. {"24/7 (version 6)", 6, -26.8339, -55.5846, 1003.5469, 3.9528},
  5141. {"Secret Valley Diner", 6, 442.1295, -52.4782, 999.7167, 177.9394},
  5142. {"Rosenberg's Office in Caligulas", 2, 2182.2017, 1628.5848, 1043.8723, 224.8601},
  5143. {"Fanny Batter's Whore House", 6, 748.4623, 1438.2378, 1102.9531, 0.6069},
  5144. {"Colonel Furhberger's", 8, 2807.3604, -1171.7048, 1025.5703, 193.7117},
  5145. {"Cluckin' Bell", 9, 366.0002, -9.4338, 1001.8516, 160.528},
  5146. {"The Camel's Toe Safehouse", 1, 2216.1282, -1076.3052, 1050.4844, 86.428},
  5147. {"Caligula's Roof", 1, 2268.5156, 1647.7682, 1084.2344, 99.7331},
  5148. {"Old Venturas Strip Casino", 2, 2236.6997, -1078.9478, 1049.0234, 2.5706},
  5149. {"Driving School", 3, -2031.1196, -115.8287, 1035.1719, 190.1877},
  5150. {"Verdant Bluffs Safehouse", 8, 2365.1089, -1133.0795, 1050.875, 177.3947},
  5151. {"Bike School", 0, 1168.512, 1360.1145, 10.9293, 196.5933},
  5152. {"Andromada", 9, 315.4544, 976.5972, 1960.8511, 359.6368},
  5153. {"Four Dragons' Janitor's Office", 10, 1893.0731, 1017.8958, 31.8828, 86.1044},
  5154. {"Bar", 11, 501.9578, -70.5648, 998.7578, 171.5706},
  5155. {"Burglary House X21", 8, -42.5267, 1408.23, 1084.4297, 172.068},
  5156. {"Willowfield Safehouse", 11, 2283.3118, 1139.307, 1050.8984, 19.7032},
  5157. {"Burglary House X22", 9, 84.9244, 1324.2983, 1083.8594, 159.5582},
  5158. {"Burglary House X23", 9, 260.7421, 1238.2261, 1084.2578, 84.3084},
  5159. {"Otto's Autos", 0, -1658.1656, 1215.0002, 7.25, 103.9074},
  5160. {"Wang Cars", 0, -1961.6281, 295.2378, 35.4688, 264.4891}
  5161. };
  5162. main(){}
  5163. // Whirlpool by Y_Less.
  5164. native WP_Hash(buffer[], len, const str[]);
  5165. // IsValidVehicle function. Undefined by default.
  5166. native IsValidVehicle(vehicleid);
  5167. native gpci(playerid, serial[], len);
  5168. /*
  5169. CreateDynamic3DTextLabel(
  5170. const text[],
  5171. color,
  5172. Float:x,
  5173. Float:y,
  5174. Float:z,
  5175. Float:drawdistance,
  5176. attachedplayer = INVALID_PLAYER_ID,
  5177. attachedvehicle = INVALID_VEHICLE_ID,
  5178. testlos = 0,
  5179. worldid = -1,
  5180. interiorid = -1,
  5181. playerid = -1
  5182. );
  5183. */
  5184. /*---------------------------------------------------------------------------
  5185. Functions
  5186. The functions below are used for this gamemode.
  5187. Any functions not created by me will contain credits.
  5188. ---------------------------------------------------------------------------*/
  5189. mysql_isnull(const string[])
  5190. {
  5191. return (!strcmp(string, "NULL"));
  5192. }
  5193. mysql_escaped(const string[])
  5194. {
  5195. new
  5196. retString[300];
  5197. mysql_real_escape_string(string, retString, gConnection);
  5198. return retString;
  5199. }
  5200. /*Random(min, max)
  5201. {
  5202. return random(max - min) + min;
  5203. }*/
  5204. RGBAToARGB(rgba)
  5205. {
  5206. return (rgba >>> 8 | rgba << 24);
  5207. }
  5208. KickPlayer(playerid)
  5209. {
  5210. gPlayerKicked[playerid] = 1;
  5211. return SetTimerEx("DelayKick", 400, false, "i", playerid);
  5212. }
  5213. ReturnElapsed(total)
  5214. {
  5215. new
  5216. string[16],
  5217. hours,
  5218. minutes,
  5219. seconds
  5220. ;
  5221. seconds = total;
  5222. hours = seconds / 3600;
  5223. seconds -= hours * 3600;
  5224. minutes = seconds / 60;
  5225. seconds -= minutes * 60;
  5226. if (total >= 3600) {
  5227. format(string, sizeof(string), "%02d:%02d:%02d", hours, minutes, seconds);
  5228. } else {
  5229. format(string, sizeof(string), "%02d:%02d", minutes, seconds);
  5230. }
  5231. return string;
  5232. }
  5233. GetHelpRequest(playerid)
  5234. {
  5235. new
  5236. string[128];
  5237. strunpack(string, gHelpRequest[playerid]);
  5238. return string;
  5239. }
  5240. GetPrisonInterior()
  5241. {
  5242. return g_StaticBuildings[BUILDING_PRISON][e_Interior];
  5243. }
  5244. GetPrisonVirtualWorld()
  5245. {
  5246. return g_StaticBuildings[BUILDING_PRISON][e_VirtualWorld];
  5247. }
  5248. Float:GetPlayerHealthEx(playerid)
  5249. {
  5250. new
  5251. Float:health;
  5252. GetPlayerHealth(playerid, health);
  5253. return health;
  5254. }
  5255. Float:GetPlayerArmourEx(playerid)
  5256. {
  5257. new
  5258. Float:health;
  5259. GetPlayerArmour(playerid, health);
  5260. return health;
  5261. }
  5262. Float:GetVehicleHealthEx(vehicleid)
  5263. {
  5264. new
  5265. Float:health;
  5266. GetVehicleHealth(vehicleid, health);
  5267. return health;
  5268. }
  5269. DestroyVehicleEx(vehicleid)
  5270. {
  5271. if (IsValidVehicle(vehicleid))
  5272. {
  5273. ClearVehicleObjects(vehicleid);
  5274. ResetVehicleStream(vehicleid);
  5275. }
  5276. return DestroyVehicle(vehicleid);
  5277. }
  5278. GetRepairCost(vehicleid)
  5279. {
  5280. return (1000 - floatround(GetVehicleHealthEx(vehicleid))) / 2;
  5281. }
  5282. /*GetCurrentWeaponSerial(playerid)
  5283. {
  5284. new weaponid = GetPlayerWeapon(playerid);
  5285. if (weaponid == Weapons[playerid][wPrimary]) {
  5286. return Weapons[playerid][wPrimarySerial];
  5287. } else if (weaponid == Weapons[playerid][wSecondary]) {
  5288. return Weapons[playerid][wSecondarySerial];
  5289. } else if (weaponid == Weapons[playerid][wTertiary]) {
  5290. return Weapons[playerid][wTertiarySerial];
  5291. }
  5292. return 0;
  5293. }*/
  5294. ApplyChatAnimation(playerid, name[])
  5295. {
  5296. if (IsPlayerInAnyVehicle(playerid))
  5297. ApplyAnimation(playerid, "GANGS", name, 4.1, 1, 0, 0, 0, 0, 1);
  5298. else
  5299. ApplyAnimation(playerid, "GANGS", name, 4.1, 1, 1, 1, 1, 1, 1);
  5300. }
  5301. PlayChatStyle(playerid, const text[])
  5302. {
  5303. switch (Players[playerid][pChatStyle])
  5304. {
  5305. case 1: ApplyChatAnimation(playerid, "prtial_gngtlkA");
  5306. case 2: ApplyChatAnimation(playerid, "prtial_gngtlkB");
  5307. case 3: ApplyChatAnimation(playerid, "prtial_gngtlkC");
  5308. case 4: ApplyChatAnimation(playerid, "prtial_gngtlkD");
  5309. case 5: ApplyChatAnimation(playerid, "prtial_gngtlkE");
  5310. case 6: ApplyChatAnimation(playerid, "prtial_gngtlkF");
  5311. case 7: ApplyChatAnimation(playerid, "prtial_gngtlkG");
  5312. case 8: ApplyChatAnimation(playerid, "prtial_gngtlkH");
  5313. default: ApplyChatAnimation(playerid, "prtial_gngtlkC");
  5314. }
  5315. if (!Players[playerid][pChatting])
  5316. {
  5317. SetTimerEx("StopChatting", strlen(text) * 100, false, "i", playerid);
  5318. Players[playerid][pChatting] = 1;
  5319. }
  5320. }
  5321. PlayAnimation(playerid, library[], name[], Float:speed, loop, lockx, locky, freeze, time, forcesync)
  5322. {
  5323. ApplyAnimation(playerid, library, "null", 0.0, 0, 0, 0, 0, 0, 1);
  5324. ApplyAnimation(playerid, library, name, speed, loop, lockx, locky, freeze, time, forcesync);
  5325. if (loop > 0 || freeze > 0)
  5326. {
  5327. Players[playerid][pAnimation] = 1;
  5328. ShowFooterText(playerid, "Press ~r~~k~~PED_SPRINT~~w~ to stop the animation.");
  5329. }
  5330. }
  5331. IsValidSkin(skin)
  5332. {
  5333. return (0 <= skin <= 30000) && skin != 74;
  5334. }
  5335. IsVehicleOccupied(vehicleid)
  5336. {
  5337. return GetVehicleDriver(vehicleid) != INVALID_PLAYER_ID;
  5338. }
  5339. IsAnimationPermitted(playerid)
  5340. {
  5341. return (GetPlayerState(playerid) == PLAYER_STATE_ONFOOT && !Players[playerid][pTazed] && !Players[playerid][pDeathState] && !Players[playerid][pMining]);
  5342. }
  5343. IsPlayerHoldingTazer(playerid)
  5344. {
  5345. return (GetPlayerWeapon(playerid) == WEAPON_SILENCED && Players[playerid][pTazer]);
  5346. }
  5347. IsPlayerInRangeOfLocker(playerid)
  5348. {
  5349. return (Players[playerid][pFaction] != INVALID_ID && IsPlayerNearPoint(playerid, 2.0, Factions[Players[playerid][pFaction]][fcLockerX], Factions[Players[playerid][pFaction]][fcLockerY], Factions[Players[playerid][pFaction]][fcLockerZ], Factions[Players[playerid][pFaction]][fcLockerInt], Factions[Players[playerid][pFaction]][fcLockerWorld]));
  5350. }
  5351. IsPlayerInFaction(playerid, type)
  5352. {
  5353. return (Players[playerid][pFaction] != INVALID_ID && Factions[Players[playerid][pFaction]][fcType] == type);
  5354. }
  5355. IsPlayerInAir(playerid)
  5356. {
  5357. switch (GetPlayerAnimationIndex(playerid))
  5358. {
  5359. case 958..979, 1130, 1195, 1197, 1198:
  5360. return 1;
  5361. }
  5362. return 0;
  5363. }
  5364. IsPlayerSprinting(playerid)
  5365. {
  5366. new
  5367. keys,
  5368. ud,
  5369. lr;
  5370. GetPlayerKeys(playerid, keys, ud, lr);
  5371. if ((keys & KEY_SPRINT) && (1222 <= GetPlayerAnimationIndex(playerid) <= 1236))
  5372. return 1;
  5373. return 0;
  5374. }
  5375. IsPlayerInside(playerid)
  5376. {
  5377. return GetPlayerInterior(playerid) > 0 && GetPlayerVirtualWorld(playerid) > 0;
  5378. }
  5379. IsPlayerInBank(playerid)
  5380. {
  5381. return GetPlayerInterior(playerid) > 0 && IsPlayerInRangeOfPoint(playerid, 5.0, 196.8612, 1723.2732, 1231.4624);
  5382. }
  5383. IsPlayerSelectingOutfit(playerid)
  5384. {
  5385. return Players[playerid][pBuyOutfit] != INVALID_ID || Players[playerid][pOutfitIndex] != INVALID_ID;
  5386. }
  5387. IsPlayerInjured(playerid)
  5388. {
  5389. return Players[playerid][pDeathState] != DEATH_STATE_NONE;
  5390. }
  5391. IsPlayerBugged(playerid)
  5392. {
  5393. return (IsPlayerAtInvalidCoords(playerid) && GetPlayerHealthEx(playerid) == 0.0);
  5394. }
  5395. IsPlayerSpectating(playerid)
  5396. {
  5397. return (GetPlayerState(playerid) == PLAYER_STATE_SPECTATING);
  5398. }
  5399. IsPlayerLoggedIn(playerid)
  5400. {
  5401. return (Players[playerid][pLoggedIn]);
  5402. }
  5403. IsPlayerPaused(playerid)
  5404. {
  5405. return (Players[playerid][pPaused]);
  5406. }
  5407. IsPlayerJailed(playerid)
  5408. {
  5409. return (Players[playerid][pJailType] > 0);
  5410. }
  5411. IsWeaponHideable(weaponid)
  5412. {
  5413. return (22 <= weaponid <= 24) || (weaponid == 28 || weaponid == 32) || (weaponid == 4) || (weaponid == 3);
  5414. }
  5415. IsHolsterWeapon(weaponid)
  5416. {
  5417. return (weaponid == 2) || (2 <= weaponid <= 9) || (22 <= weaponid <= 34);
  5418. }
  5419. IsDrivebyWeapon(weaponid)
  5420. {
  5421. return (28 <= weaponid <= 32) || weaponid == 22 || weaponid == 25;
  5422. }
  5423. GetPausedTime(playerid)
  5424. {
  5425. if (IsPlayerPaused(playerid))
  5426. {
  5427. return (gettime() - Players[playerid][pLastUpdate]);
  5428. }
  5429. return 0;
  5430. }
  5431. IsValidPayphoneID(id)
  5432. {
  5433. return (id >= 0 && id < MAX_PAYPHONES) && Payphones[id][phExists];
  5434. }
  5435. IsValidSprayTagID(id)
  5436. {
  5437. return (id >= 0 && id < MAX_SPRAY_TAGS) && SprayTags[id][sExists];
  5438. }
  5439. IsValidTagID(id)
  5440. {
  5441. return (id >= 0 && id < MAX_TAGS) && Tags[id][tagExists];
  5442. }
  5443. IsValidAutoShopID(id)
  5444. {
  5445. return (id >= 0 && id < MAX_AUTO_SHOPS) && AutoShops[id][asExists];
  5446. }
  5447. IsValidObjectID(id)
  5448. {
  5449. return (id >= 0 && id < MAX_SCRIPT_OBJECTS) && Objects[id][oExists];
  5450. }
  5451. IsValidGateID(id)
  5452. {
  5453. return (id >= 0 && id < MAX_GATES) && Gates[id][gExists];
  5454. }
  5455. IsValidLabelID(id)
  5456. {
  5457. return (id >= 0 && id < MAX_DYNAMIC_LABELS) && Labels[id][lExists];
  5458. }
  5459. IsValidArrestPointID(id)
  5460. {
  5461. return (id >= 0 && id < MAX_ARREST_POINTS) && ArrestPoints[id][apExists];
  5462. }
  5463. IsValidFactionID(id)
  5464. {
  5465. return (id >= 0 && id < MAX_FACTIONS) && Factions[id][fcExists];
  5466. }
  5467. IsValidFurnitureID(id)
  5468. {
  5469. return (id >= 0 && id < MAX_FURNITURE) && Furniture[id][fExists];
  5470. }
  5471. IsValidVehicleID(id)
  5472. {
  5473. return (id >= 0 && id < MAX_CARS) && Vehicles[id][vExists];
  5474. }
  5475. IsValidHouseID(id)
  5476. {
  5477. return (id >= 0 && id < MAX_HOUSES) && Houses[id][hExists];
  5478. }
  5479. IsValidCompanyID(id)
  5480. {
  5481. return (id >= 0 && id < MAX_COMPANIES) && Companies[id][cExists];
  5482. }
  5483. IsValidBuildingID(id)
  5484. {
  5485. return (id >= 0 && id < MAX_BUILDINGS) && Buildings[id][bExists];
  5486. }
  5487. IsValidPumpID(id)
  5488. {
  5489. return (id >= 0 && id < MAX_GAS_PUMPS) && GasPumps[id][gpExists];
  5490. }
  5491. IsValidATMID(id)
  5492. {
  5493. return (id >= 0 && id < MAX_ATMS) && ATM[id][atmExists];
  5494. }
  5495. IsValidTrashbinID(id)
  5496. {
  5497. return (id >= 0 && id < MAX_TRASH_BINS) && Trashbins[id][tExists];
  5498. }
  5499. IsTestVehicle(vehicleid)
  5500. {
  5501. //return (gTestVehicles[0] <= vehicleid <= gTestVehicles[3]);
  5502. return (vehicleid == gTestVehicles[0] || vehicleid == gTestVehicles[1] || vehicleid == gTestVehicles[2] || vehicleid == gTestVehicles[3]);
  5503. }
  5504. GetDonatorLevel(level)
  5505. {
  5506. new str[12];
  5507. if (level == 0)
  5508. str = "None";
  5509. else if (level == DONATOR_BASIC)
  5510. str = "Basic";
  5511. else if (level == DONATOR_STANDARD)
  5512. str = "Standard";
  5513. else if (level == DONATOR_INVESTOR)
  5514. str = "Investor";
  5515. else if (level == DONATOR_PREMIUM)
  5516. str = "Premium";
  5517. return str;
  5518. }
  5519. GetSupporterLevel(level)
  5520. {
  5521. new str[24];
  5522. if (level == 0)
  5523. str = "None";
  5524. else if (level == 1)
  5525. str = "Supporter";
  5526. else if (level == 2)
  5527. str = "Head Supporter";
  5528. return str;
  5529. }
  5530. GetMapperLevel(level)
  5531. {
  5532. new str[12];
  5533. if (level == 0)
  5534. str = "None";
  5535. else if (level == 1)
  5536. str = "Mapper";
  5537. else if (level == 2)
  5538. str = "Head Mapper";
  5539. return str;
  5540. }
  5541. GetFactionModLevel(level)
  5542. {
  5543. new str[20];
  5544. if (level == 0)
  5545. str = "None";
  5546. else if (level == 1)
  5547. str = "Faction Mod";
  5548. else if (level == 2)
  5549. str = "Head of Factions";
  5550. return str;
  5551. }
  5552. GetBoneName(boneid)
  5553. {
  5554. new str[16];
  5555. switch (boneid)
  5556. {
  5557. case 1:
  5558. str = "Spine";
  5559. case 2:
  5560. str = "Head";
  5561. case 3:
  5562. str = "Left upper arm";
  5563. case 4:
  5564. str = "Right upper arm";
  5565. case 5:
  5566. str = "Left hand";
  5567. case 6:
  5568. str = "Right hand";
  5569. case 7:
  5570. str = "Left thigh";
  5571. case 8:
  5572. str = "Right thigh";
  5573. case 9:
  5574. str = "Left foot";
  5575. case 10:
  5576. str = "Right foot";
  5577. case 11:
  5578. str = "Right calf";
  5579. case 12:
  5580. str = "Left calf";
  5581. case 13:
  5582. str = "Left forearm";
  5583. case 14:
  5584. str = "Right forearm";
  5585. case 15:
  5586. str = "Left shoulder";
  5587. case 16:
  5588. str = "Right shoulder";
  5589. case 17:
  5590. str = "Neck";
  5591. case 18:
  5592. str = "Jaw";
  5593. }
  5594. return str;
  5595. }
  5596. /*GetRadioStation(stationid)
  5597. {
  5598. new str[128];
  5599. switch (stationid)
  5600. {
  5601. case 0:
  5602. str = "none";
  5603. case 1:
  5604. str = "http://listen.181fm.com/181-office_128k.mp3";
  5605. }
  5606. return str;
  5607. }
  5608. */
  5609. GetBodypartName(bodypartid)
  5610. {
  5611. new str[12];
  5612. if (bodypartid == BODY_PART_TORSO)
  5613. str = "torso";
  5614. else if (bodypartid == BODY_PART_GROIN)
  5615. str = "groin";
  5616. else if (bodypartid == BODY_PART_LEFT_ARM)
  5617. str = "left arm";
  5618. else if (bodypartid == BODY_PART_RIGHT_ARM)
  5619. str = "right arm";
  5620. else if (bodypartid == BODY_PART_LEFT_LEG)
  5621. str = "left leg";
  5622. else if (bodypartid == BODY_PART_RIGHT_LEG)
  5623. str = "right leg";
  5624. else if (bodypartid == BODY_PART_HEAD)
  5625. str = "head";
  5626. return str;
  5627. }
  5628. GetJobName(type)
  5629. {
  5630. new str[16];
  5631. if (type == JOB_NONE)
  5632. str = "Unemployed";
  5633. else if (type == JOB_TRANSPORTER)
  5634. str = "Transporter";
  5635. else if (type == JOB_FORKLIFTER)
  5636. str = "Forklifter";
  5637. else if (type == JOB_MINER)
  5638. str = "Miner";
  5639. else if (type == JOB_TAXI)
  5640. str = "Taxi Driver";
  5641. else if (type == JOB_PIZZA)
  5642. str = "Pizzaboy";
  5643. else if (type == JOB_TRASHMAN)
  5644. str = "Trashman";
  5645. else if (type == JOB_MECHANIC)
  5646. str = "Mechanic";
  5647. return str;
  5648. }
  5649. GetMonth(month)
  5650. {
  5651. new
  5652. string[12];
  5653. if (month == 1)
  5654. string = "January";
  5655. else if (month == 2)
  5656. string = "February";
  5657. else if (month == 3)
  5658. string = "March";
  5659. else if (month == 4)
  5660. string = "April";
  5661. else if (month == 5)
  5662. string = "May";
  5663. else if (month == 6)
  5664. string = "June";
  5665. else if (month == 7)
  5666. string = "July";
  5667. else if (month == 8)
  5668. string = "August";
  5669. else if (month == 9)
  5670. string = "September";
  5671. else if (month == 10)
  5672. string = "October";
  5673. else if (month == 11)
  5674. string = "November";
  5675. else if (month == 12)
  5676. string = "December";
  5677. return string;
  5678. }
  5679. GetWeapon(weaponid)
  5680. {
  5681. new
  5682. name[24];
  5683. if (weaponid == 0)
  5684. name = "No Weapon";
  5685. else if (weaponid == 18)
  5686. name = "Molotov Cocktail";
  5687. else if (weaponid == 44)
  5688. name = "Nightvision Goggles";
  5689. else if (weaponid == 45)
  5690. name = "Infrared Goggles";
  5691. else
  5692. GetWeaponName(weaponid, name, sizeof(name));
  5693. return name;
  5694. }
  5695. GetCompanyType(type)
  5696. {
  5697. new string[16];
  5698. if (1 <= type <= sizeof(g_CompanyTypes))
  5699. strcat(string, g_CompanyTypes[--type]);
  5700. else
  5701. string = "None";
  5702. return string;
  5703. }
  5704. GetFactionType(type)
  5705. {
  5706. new string[16];
  5707. switch (type)
  5708. {
  5709. case FACTION_LEO:
  5710. string = "Law Enforcement";
  5711. case FACTION_MEDICAL:
  5712. string = "Medical";
  5713. case FACTION_GOVERNMENT:
  5714. string = "Government";
  5715. case FACTION_ILLEGAL:
  5716. string = "Illegal";
  5717. case FACTION_NEWS:
  5718. string = "News";
  5719. }
  5720. return string;
  5721. }
  5722. GetFitnessLevel(playerid)
  5723. {
  5724. new string[16];
  5725. if (0 <= Players[playerid][pFitness] <= 29)
  5726. string = "Weak";
  5727. else if (30 <= Players[playerid][pFitness] <= 59)
  5728. string = "Moderate";
  5729. else if (60 <= Players[playerid][pFitness] <= 79)
  5730. string = "Strong";
  5731. else if (80 <= Players[playerid][pFitness] <= 100)
  5732. string = "Very Strong";
  5733. return string;
  5734. }
  5735. GetGenderForPlayer(playerid)
  5736. {
  5737. new str[8];
  5738. if (Players[playerid][pGender] == 1)
  5739. str = "Male";
  5740. else if (Players[playerid][pGender] == 2)
  5741. str = "Female";
  5742. return str;
  5743. }
  5744. GetClipCapacity(weaponid)
  5745. {
  5746. switch (weaponid)
  5747. {
  5748. case 22, 23:
  5749. return 17;
  5750. case 24:
  5751. return 7;
  5752. case 28, 31, 32:
  5753. return 50;
  5754. case 29, 30:
  5755. return 30;
  5756. }
  5757. return 0;
  5758. }
  5759. GetNextPayphoneID()
  5760. {
  5761. for (new i = 0; i < MAX_PAYPHONES; i ++)
  5762. {
  5763. if (!Payphones[i][phExists])
  5764. {
  5765. return i;
  5766. }
  5767. }
  5768. return INVALID_ID;
  5769. }
  5770. GetNextTagID()
  5771. {
  5772. for (new i = 0; i < MAX_TAGS; i ++)
  5773. {
  5774. if (!Tags[i][tagExists])
  5775. {
  5776. return i;
  5777. }
  5778. }
  5779. return INVALID_ID;
  5780. }
  5781. GetNextSprayTagID()
  5782. {
  5783. for (new i = 0; i < MAX_SPRAY_TAGS; i ++)
  5784. {
  5785. if (!SprayTags[i][sExists])
  5786. {
  5787. return i;
  5788. }
  5789. }
  5790. return INVALID_ID;
  5791. }
  5792. GetNextTrashbinID()
  5793. {
  5794. for (new i = 0; i < MAX_TRASH_BINS; i ++)
  5795. {
  5796. if (!Trashbins[i][tExists])
  5797. {
  5798. return i;
  5799. }
  5800. }
  5801. return INVALID_ID;
  5802. }
  5803. GetNextObjectID()
  5804. {
  5805. for (new i = 0; i < MAX_SCRIPT_OBJECTS; i ++)
  5806. {
  5807. if (!Objects[i][oExists])
  5808. {
  5809. return i;
  5810. }
  5811. }
  5812. return INVALID_ID;
  5813. }
  5814. GetNextDeployID()
  5815. {
  5816. for (new i = 0; i < MAX_DEPLOYED_ITEMS; i ++)
  5817. {
  5818. if (!DeployedItems[i][dpExists])
  5819. {
  5820. return i;
  5821. }
  5822. }
  5823. return INVALID_ID;
  5824. }
  5825. /*GetNextAutoShopID()
  5826. {
  5827. for (new i = 0; i < MAX_AUTO_SHOPS; i ++)
  5828. {
  5829. if (!AutoShops[i][asExists])
  5830. {
  5831. return i;
  5832. }
  5833. }
  5834. return INVALID_ID;
  5835. }*/
  5836. GetNextGateID()
  5837. {
  5838. for (new i = 0; i < MAX_GATES; i ++)
  5839. {
  5840. if (!Gates[i][gExists])
  5841. {
  5842. return i;
  5843. }
  5844. }
  5845. return INVALID_ID;
  5846. }
  5847. GetNextLabelID()
  5848. {
  5849. for (new i = 0; i < MAX_DYNAMIC_LABELS; i ++)
  5850. {
  5851. if (!Labels[i][lExists])
  5852. {
  5853. return i;
  5854. }
  5855. }
  5856. return INVALID_ID;
  5857. }
  5858. GetNextTeleportID()
  5859. {
  5860. for (new i = 0; i < MAX_ADMIN_TELEPORTS; i ++)
  5861. {
  5862. if (!Teleports[i][tpExists])
  5863. {
  5864. return i;
  5865. }
  5866. }
  5867. return INVALID_ID;
  5868. }
  5869. GetNextArrestPointID()
  5870. {
  5871. for (new i = 0; i < MAX_ARREST_POINTS; i ++)
  5872. {
  5873. if (!ArrestPoints[i][apExists])
  5874. {
  5875. return i;
  5876. }
  5877. }
  5878. return INVALID_ID;
  5879. }
  5880. GetNextFactionID()
  5881. {
  5882. for (new i = 0; i < MAX_FACTIONS; i ++)
  5883. {
  5884. if (!Factions[i][fcExists])
  5885. {
  5886. return i;
  5887. }
  5888. }
  5889. return INVALID_ID;
  5890. }
  5891. /*GetNextShellCasingID()
  5892. {
  5893. for (new i = 0; i < MAX_SHELL_CASINGS; i ++)
  5894. {
  5895. if (!ShellCasings[i][scExists])
  5896. {
  5897. return i;
  5898. }
  5899. }
  5900. return INVALID_ID;
  5901. }*/
  5902. /*GetNextBloodID()
  5903. {
  5904. for (new i = 0; i < MAX_BLOOD; i ++)
  5905. {
  5906. if (!Bloods[i][blExists])
  5907. {
  5908. return i;
  5909. }
  5910. }
  5911. return INVALID_ID;
  5912. }
  5913. */
  5914. GetNextWeedPlantID()
  5915. {
  5916. for (new i = 0; i < MAX_WEEDPLANTS; i ++)
  5917. {
  5918. if (!WeedPlants[i][wpExists])
  5919. {
  5920. return i;
  5921. }
  5922. }
  5923. return INVALID_ID;
  5924. }
  5925. GetNextDealershipCarID()
  5926. {
  5927. for (new i = 0; i < MAX_DEALERSHIP_CARS; i ++)
  5928. {
  5929. if (!DealershipCars[i][dcExists])
  5930. {
  5931. return i;
  5932. }
  5933. }
  5934. return INVALID_ID;
  5935. }
  5936. GetNextATMID()
  5937. {
  5938. for (new i = 0; i < MAX_ATMS; i ++)
  5939. {
  5940. if (!ATM[i][atmExists])
  5941. {
  5942. return i;
  5943. }
  5944. }
  5945. return INVALID_ID;
  5946. }
  5947. GetNextGasPumpID()
  5948. {
  5949. for (new i = 0; i < MAX_GAS_PUMPS; i ++)
  5950. {
  5951. if (!GasPumps[i][gpExists])
  5952. {
  5953. return i;
  5954. }
  5955. }
  5956. return INVALID_ID;
  5957. }
  5958. GetNextFurnitureID()
  5959. {
  5960. for (new i = 0; i < MAX_FURNITURE; i ++)
  5961. {
  5962. if (!Furniture[i][fExists])
  5963. {
  5964. return i;
  5965. }
  5966. }
  5967. return INVALID_ID;
  5968. }
  5969. GetNextStoredItemID()
  5970. {
  5971. for (new i = 0; i < MAX_STORED_ITEMS; i ++)
  5972. {
  5973. if (!StoredItems[i][stExists])
  5974. {
  5975. return i;
  5976. }
  5977. }
  5978. return INVALID_ID;
  5979. }
  5980. GetNextVehicleID()
  5981. {
  5982. for (new i = 0; i < MAX_CARS; i ++)
  5983. {
  5984. if (!Vehicles[i][vExists])
  5985. {
  5986. return i;
  5987. }
  5988. }
  5989. return INVALID_ID;
  5990. }
  5991. GetNextHouseID()
  5992. {
  5993. for (new i = 0; i < MAX_HOUSES; i ++)
  5994. {
  5995. if (!Houses[i][hExists])
  5996. {
  5997. return i;
  5998. }
  5999. }
  6000. return INVALID_ID;
  6001. }
  6002. GetNextRestaurantItemID(company)
  6003. {
  6004. for (new i = 0; i < MAX_RESTAURANT_ITEMS; i ++)
  6005. {
  6006. if (!RestaurantItems[company][i][rtExists])
  6007. {
  6008. return i;
  6009. }
  6010. }
  6011. return INVALID_ID;
  6012. }
  6013. GetNextCompanyID()
  6014. {
  6015. for (new i = 0; i < MAX_COMPANIES; i ++)
  6016. {
  6017. if (!Companies[i][cExists])
  6018. {
  6019. return i;
  6020. }
  6021. }
  6022. return INVALID_ID;
  6023. }
  6024. GetNextBuildingID()
  6025. {
  6026. for (new i = 0; i < MAX_BUILDINGS; i ++)
  6027. {
  6028. if (!Buildings[i][bExists])
  6029. {
  6030. return i;
  6031. }
  6032. }
  6033. return INVALID_ID;
  6034. }
  6035. GetNextAccessoryID(playerid)
  6036. {
  6037. for (new i = 0; i < MAX_ACCESSORIES; i ++)
  6038. {
  6039. if (!Accessories[playerid][i][aExists])
  6040. {
  6041. return i;
  6042. }
  6043. }
  6044. return INVALID_ID;
  6045. }
  6046. GetNextBankAccountID(playerid)
  6047. {
  6048. for (new i = 0; i < MAX_BANK_ACCOUNTS; i ++)
  6049. {
  6050. if (!BankAccounts[playerid][i][bankExists])
  6051. {
  6052. return i;
  6053. }
  6054. }
  6055. return INVALID_ID;
  6056. }
  6057. GetNextItemID(playerid)
  6058. {
  6059. for (new i = 0; i < MAX_INVENTORY_ITEMS; i ++)
  6060. {
  6061. if (!Inventory[playerid][i][invExists])
  6062. {
  6063. return i;
  6064. }
  6065. }
  6066. return INVALID_ID;
  6067. }
  6068. GetNextDropID()
  6069. {
  6070. for (new i = 0; i < MAX_DROPPED_ITEMS; i ++)
  6071. {
  6072. if (!DropItems[i][dExists])
  6073. {
  6074. return i;
  6075. }
  6076. }
  6077. return INVALID_ID;
  6078. }
  6079. ShowPlayerTextDraws(playerid, start, end)
  6080. {
  6081. for (new i = start; i < end + 1; i ++)
  6082. {
  6083. PlayerTextDrawShow(playerid, Players[playerid][pText][i]);
  6084. }
  6085. }
  6086. HidePlayerTextDraws(playerid, start, end)
  6087. {
  6088. for (new i = start; i < end + 1; i ++)
  6089. {
  6090. PlayerTextDrawHide(playerid, Players[playerid][pText][i]);
  6091. }
  6092. }
  6093. ShowWeaponRights(playerid, faction)
  6094. {
  6095. new string[160];
  6096. if (IsValidFactionID(faction))
  6097. {
  6098. format(string, sizeof(string), "Melee Weapons\t%s", (Factions[faction][fcWeaponRights][0]) ? ("Yes") : ("No"));
  6099. format(string, sizeof(string), "%s\nPistols\t%s", string, (Factions[faction][fcWeaponRights][1]) ? ("Yes") : ("No"));
  6100. format(string, sizeof(string), "%s\nShotguns\t%s", string, (Factions[faction][fcWeaponRights][2]) ? ("Yes") : ("No"));
  6101. format(string, sizeof(string), "%s\nSMGs\t\t%s", string, (Factions[faction][fcWeaponRights][3]) ? ("Yes") : ("No"));
  6102. format(string, sizeof(string), "%s\nRifles\t\t%s", string, (Factions[faction][fcWeaponRights][4]) ? ("Yes") : ("No"));
  6103. format(string, sizeof(string), "%s\nExplosives\t\t%s", string, (Factions[faction][fcWeaponRights][5]) ? ("Yes") : ("No"));
  6104. Dialog_Show(playerid, WeaponRights, DIALOG_STYLE_LIST, "{FFFFFF}Weapon Rights", string, "Toggle", "Back");
  6105. }
  6106. }
  6107. ShowFactionRights(playerid, faction)
  6108. {
  6109. if (IsValidFactionID(faction))
  6110. {
  6111. Dialog_Show(playerid, FactionRights, DIALOG_STYLE_LIST, "{FFFFFF}Faction Rights", "Weapon Rights\nDrug Rights\t\t%s\nSpray Rights\t\t%s", "Toggle", "Back", (Factions[faction][fcDrugRights]) ? ("Yes") : ("No"), (Factions[faction][fcSprayRights]) ? ("Yes") : ("No"));
  6112. }
  6113. }
  6114. ShowFactionRoster(playerid)
  6115. {
  6116. format(gExecute, sizeof(gExecute), "SELECT Username, LoginDate, FactionRank FROM rp_accounts WHERE FactionID = %i ORDER BY FactionRank", Players[playerid][pFactionID]);
  6117. mysql_tquery(gConnection, gExecute, "OnPlayerViewRoster", "i", playerid);
  6118. }
  6119. ShowAdminRoster(playerid)
  6120. {
  6121. format(gExecute, sizeof(gExecute), "SELECT Username, LoginDate, Admin FROM rp_accounts WHERE Admin > 0");
  6122. mysql_tquery(gConnection, gExecute, "OnPlayerViewAdminRoster", "i", playerid);
  6123. }
  6124. ShowPlayerNotebook(playerid, itemid)
  6125. {
  6126. new
  6127. id = Inventory[playerid][itemid][invID];
  6128. Players[playerid][pNotebookID] = itemid;
  6129. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_notes WHERE itemID = %i", id);
  6130. mysql_tquery(gConnection, gExecute, "OnPlayerViewNotes", "i", playerid);
  6131. }
  6132. ShowTicketList(playerid)
  6133. {
  6134. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_tickets WHERE Player = %i ORDER BY ID DESC", Players[playerid][pID]);
  6135. mysql_tquery(gConnection, gExecute, "OnPlayerShowTickets", "i", playerid);
  6136. }
  6137. ShowFineList(playerid)
  6138. {
  6139. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_tickets WHERE Player = %i ORDER BY ID DESC", Players[playerid][pID]);
  6140. mysql_tquery(gConnection, gExecute, "OnPlayerShowFines", "i", playerid);
  6141. }
  6142. ShowANoteList(playerid, targetid)
  6143. {
  6144. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_anotes WHERE Player = %i ORDER BY ID DESC", Players[playerid][pID]);
  6145. mysql_tquery(gConnection, gExecute, "OnPlayerShowANotes", "ii", playerid, targetid);
  6146. }
  6147. ShowDeathLogs(playerid)
  6148. {
  6149. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_deathlogs ORDER BY ID DESC LIMIT 20");
  6150. mysql_tquery(gConnection, gExecute, "OnPlayerShowDeathLogs", "i", playerid);
  6151. }
  6152. ShowBanLogs(playerid)
  6153. {
  6154. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_banlogs ORDER BY ID DESC");
  6155. mysql_tquery(gConnection, gExecute, "OnPlayerShowBanLogs", "i", playerid);
  6156. }
  6157. GetOwnedCompanies(playerid)
  6158. {
  6159. new count = 0;
  6160. for (new i = 0; i < MAX_COMPANIES; i ++)
  6161. {
  6162. if (IsValidCompanyID(i) && IsCompanyOwner(playerid, i))
  6163. {
  6164. count++;
  6165. }
  6166. }
  6167. return count;
  6168. }
  6169. GetCompanyLimit(playerid)
  6170. {
  6171. switch (Players[playerid][pDonator])
  6172. {
  6173. case DONATOR_BASIC:
  6174. return 2;
  6175. case DONATOR_STANDARD:
  6176. return 3;
  6177. case DONATOR_INVESTOR:
  6178. return 4;
  6179. case DONATOR_PREMIUM:
  6180. return 0;
  6181. }
  6182. return 1;
  6183. }
  6184. GetOwnedHouses(playerid)
  6185. {
  6186. new count = 0;
  6187. for (new i = 0; i < MAX_HOUSES; i ++)
  6188. {
  6189. if (IsValidHouseID(i) && IsHouseOwner(playerid, i))
  6190. {
  6191. count++;
  6192. }
  6193. }
  6194. return count;
  6195. }
  6196. GetHouseLimit(playerid)
  6197. {
  6198. switch (Players[playerid][pDonator])
  6199. {
  6200. case DONATOR_BASIC:
  6201. return 3;
  6202. case DONATOR_STANDARD:
  6203. return 4;
  6204. case DONATOR_INVESTOR:
  6205. return 5;
  6206. case DONATOR_PREMIUM:
  6207. return 0;
  6208. }
  6209. return 2;
  6210. }
  6211. GetOwnedVehicles(playerid)
  6212. {
  6213. new count = 0;
  6214. for (new i = 0; i < MAX_CARS; i ++)
  6215. {
  6216. if (IsValidVehicleID(i) && IsVehicleOwner(playerid, i))
  6217. {
  6218. count ++;
  6219. }
  6220. }
  6221. return count;
  6222. }
  6223. /*GetVehicleLimit(playerid)
  6224. {
  6225. switch (Players[playerid][pDonator])
  6226. {
  6227. case DONATOR_BASIC:
  6228. return 3;
  6229. case DONATOR_STANDARD:
  6230. return 4;
  6231. case DONATOR_INVESTOR:
  6232. return 5;
  6233. case DONATOR_PREMIUM:
  6234. return 0;
  6235. }
  6236. return 2;
  6237. }*/
  6238. GetVehicleLimit(playerid)
  6239. {
  6240. switch (Players[playerid][pDonator])
  6241. {
  6242. case DONATOR_BASIC:
  6243. return 6;
  6244. case DONATOR_STANDARD:
  6245. return 8;
  6246. case DONATOR_INVESTOR:
  6247. return 10;
  6248. case DONATOR_PREMIUM:
  6249. return 12;
  6250. }
  6251. return 4;
  6252. }
  6253. GetVehicleSpawnLimit(playerid)
  6254. {
  6255. switch (Players[playerid][pDonator])
  6256. {
  6257. case DONATOR_BASIC:
  6258. return 3;
  6259. case DONATOR_STANDARD:
  6260. return 4;
  6261. case DONATOR_INVESTOR:
  6262. return 5;
  6263. case DONATOR_PREMIUM:
  6264. return 6;
  6265. }
  6266. return 2;
  6267. }
  6268. ShowSpawnedVehicleList(playerid)
  6269. {
  6270. new
  6271. index = 0
  6272. ;
  6273. gListString = "Model\tPlate";
  6274. for (new i = 0; i < MAX_CARS; i ++)
  6275. {
  6276. if (IsValidVehicleID(i) && IsVehicleOwner(playerid, i) && !Vehicles[i][vDespawned])
  6277. {
  6278. format(gListString, sizeof(gListString), "%s\n%s\t%s", gListString, GetVehicleModelName(Vehicles[i][vModel]), Vehicles[i][vPlate]);
  6279. gListedItems[playerid][index++] = i;
  6280. }
  6281. }
  6282. if (index)
  6283. {
  6284. return Dialog_Show(playerid, DespawnVehicle, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Despawn Vehicle", gListString, "Despawn", "Close");
  6285. }
  6286. return 0;
  6287. }
  6288. ShowDespawnedVehicleList(playerid)
  6289. {
  6290. new
  6291. index = 0
  6292. ;
  6293. gListString = "Model\tPlate";
  6294. for (new i = 0; i < MAX_CARS; i ++)
  6295. {
  6296. if (IsValidVehicleID(i) && IsVehicleOwner(playerid, i) && Vehicles[i][vDespawned])
  6297. {
  6298. format(gListString, sizeof(gListString), "%s\n%s\t%s", gListString, GetVehicleModelName(Vehicles[i][vModel]), Vehicles[i][vPlate]);
  6299. gListedItems[playerid][index++] = i;
  6300. }
  6301. }
  6302. if (index)
  6303. {
  6304. return Dialog_Show(playerid, SpawnVehicle, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Spawn Vehicle", gListString, "Spawn", "Close");
  6305. }
  6306. return 0;
  6307. }
  6308. ShowVehicleTrackList(playerid)
  6309. {
  6310. new
  6311. index = 0
  6312. ;
  6313. gListString = "Model\tPlate";
  6314. for (new i = 0; i < MAX_CARS; i ++)
  6315. {
  6316. if (IsValidVehicleID(i) && IsVehicleOwner(playerid, i))
  6317. {
  6318. format(gListString, sizeof(gListString), "%s\n%s\t%s", gListString, GetVehicleModelName(Vehicles[i][vModel]), Vehicles[i][vPlate]);
  6319. gListedItems[playerid][index++] = i;
  6320. }
  6321. }
  6322. if (index)
  6323. {
  6324. return Dialog_Show(playerid, FindVehicle, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Find Car", gListString, "Find", "Close");
  6325. }
  6326. return 0;
  6327. }
  6328. ShowImpoundList(playerid)
  6329. {
  6330. new
  6331. index = 0
  6332. ;
  6333. gListString = "Model\tPlate\tPrice";
  6334. for (new i = 0; i < MAX_CARS; i ++)
  6335. {
  6336. if (IsValidVehicleID(i) && IsVehicleOwner(playerid, i) && Vehicles[i][vImpound] > 0)
  6337. {
  6338. format(gListString, sizeof(gListString), "%s\n%s\t%s\t%s", gListString, GetVehicleModelName(Vehicles[i][vModel]), Vehicles[i][vPlate], FormatNumber(Vehicles[i][vImpound]));
  6339. gListedItems[playerid][index++] = i;
  6340. }
  6341. }
  6342. if (index)
  6343. {
  6344. return Dialog_Show(playerid, ReleaseCar, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Release Vehicle", gListString, "Pay", "Cancel");
  6345. }
  6346. return 0;
  6347. }
  6348. SavePayphone(id)
  6349. {
  6350. static
  6351. queryString[512];
  6352. if (!Payphones[id][phExists]) return 0;
  6353. format(queryString, sizeof(queryString), "UPDATE rp_payphones SET phNumber = %i, phX = %.4f, phY = %.4f, phZ = %.4f, phA = %.4f, phInterior = %i, phWorld = %i WHERE phID = %i",
  6354. Payphones[id][phNumber],
  6355. Payphones[id][phX],
  6356. Payphones[id][phY],
  6357. Payphones[id][phZ],
  6358. Payphones[id][phA],
  6359. Payphones[id][phInterior],
  6360. Payphones[id][phWorld],
  6361. Payphones[id][phID]
  6362. );
  6363. return mysql_tquery(gConnection, queryString);
  6364. }
  6365. CallPayphone(playerid, payphone)
  6366. {
  6367. foreach (new i : Player)
  6368. {
  6369. if (IsPlayerNearPoint(i, 20.0, Payphones[payphone][phX], Payphones[payphone][phY], Payphones[payphone][phZ], Payphones[payphone][phInterior], Payphones[payphone][phWorld]))
  6370. {
  6371. SendClientMessage(i, COLOR_PURPLE, "* The payphone is ringing. (( /answer ))");
  6372. }
  6373. }
  6374. Payphones[payphone][phCaller] = playerid;
  6375. UpdatePayphoneText(payphone);
  6376. }
  6377. AssignPayphone(playerid, payphone)
  6378. {
  6379. if (IsValidPayphoneID(payphone))
  6380. {
  6381. Players[playerid][pPayphone] = payphone;
  6382. Payphones[payphone][phOccupied] = true;
  6383. Payphones[payphone][phCaller] = INVALID_PLAYER_ID;
  6384. UpdatePayphoneText(payphone);
  6385. }
  6386. }
  6387. UpdatePayphoneText(id)
  6388. {
  6389. new
  6390. string[64];
  6391. if (!Payphones[id][phExists]) return 0;
  6392. if (IsPlayerConnected(Payphones[id][phCaller])) {
  6393. format(string, sizeof(string), "ID: %i\nNumber: %i\n{FFD000}Ringing (/answer)", id, Payphones[id][phNumber]);
  6394. }
  6395. else if (Payphones[id][phOccupied]) {
  6396. format(string, sizeof(string), "ID: %i\nNumber: %i\n{FF5030}Occupied", id, Payphones[id][phNumber]);
  6397. }
  6398. else {
  6399. format(string, sizeof(string), "ID: %i\nNumber: %i\n{33CC33}Available (/call)", id, Payphones[id][phNumber]);
  6400. }
  6401. UpdateDynamic3DTextLabelText(Payphones[id][phText], COLOR_GREY, string);
  6402. return 1;
  6403. }
  6404. UpdatePayphone(id)
  6405. {
  6406. if (!Payphones[id][phExists]) return 0;
  6407. DestroyDynamicObject(Payphones[id][phObject]);
  6408. DestroyDynamic3DTextLabel(Payphones[id][phText]);
  6409. Payphones[id][phObject] = CreateDynamicObject(1216, Payphones[id][phX], Payphones[id][phY], Payphones[id][phZ], 0.0, 0.0, Payphones[id][phA], Payphones[id][phWorld], Payphones[id][phInterior]);
  6410. Payphones[id][phText] = CreateDynamic3DTextLabel("Payphone", COLOR_GREY, Payphones[id][phX], Payphones[id][phY], Payphones[id][phZ] + 0.5, 5.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Payphones[id][phWorld], Payphones[id][phInterior]);
  6411. UpdatePayphoneText(id);
  6412. return 1;
  6413. }
  6414. IsPhoneBusy(number)
  6415. {
  6416. new targetid = GetPhonePlayerID(number);
  6417. return (targetid != INVALID_PLAYER_ID && Players[targetid][pCalling] > 0);
  6418. }
  6419. GetPhonePayphoneID(number)
  6420. {
  6421. for (new i = 0; i < MAX_PAYPHONES; i ++)
  6422. {
  6423. if (IsValidPayphoneID(i) && Payphones[i][phNumber] == number)
  6424. {
  6425. return i;
  6426. }
  6427. }
  6428. return INVALID_ID;
  6429. }
  6430. GetPhonePlayerID(number)
  6431. {
  6432. foreach (new i : Player)
  6433. {
  6434. if (Players[i][pPhone] == number)
  6435. {
  6436. return i;
  6437. }
  6438. }
  6439. return INVALID_PLAYER_ID;
  6440. }
  6441. IsVehicleBlacklisted(modelid)
  6442. {
  6443. if (400 <= modelid <= 611) {
  6444. modelid -= 400;
  6445. return gVehicleBlacklist[modelid];
  6446. }
  6447. return 0;
  6448. }
  6449. BlacklistVehicle(modelid)
  6450. {
  6451. if ((400 <= modelid <= 611) && !IsVehicleBlacklisted(modelid)) {
  6452. format(gExecute, sizeof(gExecute), "INSERT INTO rp_carblacklist (Model) VALUES(%i)", modelid);
  6453. mysql_tquery(gConnection, gExecute);
  6454. modelid -= 400;
  6455. gVehicleBlacklist[modelid] = true;
  6456. }
  6457. }
  6458. UnBlacklistVehicle(modelid)
  6459. {
  6460. if ((400 <= modelid <= 611) && IsVehicleBlacklisted(modelid)) {
  6461. format(gExecute, sizeof(gExecute), "DELETE FROM rp_carblacklist WHERE Model = %i", modelid);
  6462. mysql_tquery(gConnection, gExecute);
  6463. modelid -= 400;
  6464. gVehicleBlacklist[modelid] = false;
  6465. }
  6466. }
  6467. IsValidDamageWeapon(weaponid)
  6468. {
  6469. if(!(0 <= weaponid <= 46))
  6470. return false;
  6471. switch(weaponid)
  6472. {
  6473. case 0, 19..21, WEAPON_DILDO..WEAPON_FLOWER, WEAPON_GRENADE..WEAPON_MOLTOV, WEAPON_ROCKETLAUNCHER..WEAPON_MINIGUN, WEAPON_SATCHEL..WEAPON_PARACHUTE:
  6474. return false;
  6475. }
  6476. return true;
  6477. }
  6478. ShowWeaponDamageEditMenu(playerid)
  6479. {
  6480. static
  6481. string[512];
  6482. string = "Weapon\tDamage";
  6483. for(new i = 0; i < sizeof(WeaponDamages); i ++)
  6484. {
  6485. if(IsValidDamageWeapon(i))
  6486. {
  6487. if (WeaponDamages[i] != 0.0)
  6488. format(string, sizeof(string), "%s\n%s\t%.1f%c", string, GetWeapon(i), WeaponDamages[i], '%');
  6489. else
  6490. format(string, sizeof(string), "%s\n%s\tDefault", string, GetWeapon(i));
  6491. }
  6492. }
  6493. Dialog_Show(playerid, WeaponDamages, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Select Weapon", string, "Change", "Cancel");
  6494. }
  6495. ProcessDamage(playerid, weaponid)
  6496. {
  6497. new
  6498. Float:damage = WeaponDamages[weaponid],
  6499. Float:health,
  6500. Float:armor;
  6501. if (damage != 0.0)
  6502. {
  6503. GetPlayerHealth(playerid, health);
  6504. GetPlayerArmour(playerid, armor);
  6505. if (armor >= damage) {
  6506. armor -= damage;
  6507. } else if (armor < damage) {
  6508. health -= (damage - armor), armor = 0;
  6509. } else if (health >= damage) {
  6510. health -= damage;
  6511. } else {
  6512. health = 0;
  6513. }
  6514. SetPlayerHealth(playerid, health);
  6515. SetPlayerArmour(playerid, armor);
  6516. }
  6517. }
  6518. SetPlayerToFacePlayer(playerid, targetid)
  6519. {
  6520. new
  6521. Float:x,
  6522. Float:y,
  6523. Float:z,
  6524. Float:tx,
  6525. Float:ty,
  6526. Float:tz
  6527. ;
  6528. GetPlayerPos(playerid, x, y, z);
  6529. GetPlayerPos(targetid, tx, ty, tz);
  6530. SetPlayerFacingAngle(playerid, (180.0 - atan2(x - tx, y - ty)));
  6531. }
  6532. SetWeaponDamage(weaponid, Float:damage) // Edited by Grime (09-27-2017)
  6533. {
  6534. if(IsValidDamageWeapon(weaponid))
  6535. {
  6536. format(gExecute, sizeof(gExecute), "INSERT INTO rp_gundamages (Weapon, Damage) VALUES(%i, %.4f) ON DUPLICATE KEY UPDATE Damage = %.4f", weaponid, damage, damage);
  6537. mysql_tquery(gConnection, gExecute);
  6538. WeaponDamages[weaponid] = damage;
  6539. }
  6540. }
  6541. GetTotalPaycheckAmount(playerid)
  6542. {
  6543. new total = 0;
  6544. if (Players[playerid][pJobPaycheck] > 0) {
  6545. total += Players[playerid][pJobPaycheck];
  6546. }
  6547. if (Players[playerid][pFaction] != INVALID_ID && GetFactionRankPay(Players[playerid][pFaction], Players[playerid][pFactionRank]) > 0) {
  6548. total += GetFactionRankPay(Players[playerid][pFaction], Players[playerid][pFactionRank]);
  6549. }
  6550. if (Players[playerid][pPaycheck] > 0) {
  6551. total += Players[playerid][pPaycheck];
  6552. }
  6553. return total;
  6554. }
  6555. UpdateTag(tag)
  6556. {
  6557. if (!Tags[tag][tagExists]) return 0;
  6558. DestroyDynamicObject(Tags[tag][tagObject]);
  6559. Tags[tag][tagObject] = CreateDynamicObject(19482, Tags[tag][tagX], Tags[tag][tagY], Tags[tag][tagZ], 0.0, 0.0, Tags[tag][tagA]);
  6560. SetDynamicObjectMaterial(Tags[tag][tagObject], 0, 0, "none", "none", 0);
  6561. SetDynamicObjectMaterialText(Tags[tag][tagObject], 0, Tags[tag][tagText], OBJECT_MATERIAL_SIZE_512x256, "Arial", Tags[tag][tagFontSize], Tags[tag][tagBold], Tags[tag][tagColor], 0, 0);
  6562. //OBJECT_MATERIAL_SIZE_256x128
  6563. return 1;
  6564. }
  6565. SaveTag(tag)
  6566. {
  6567. static
  6568. queryString[512];
  6569. if (!Tags[tag][tagExists]) return 0;
  6570. format(queryString, sizeof(queryString), "UPDATE rp_tags SET stText = '%s', stColor = %i, stX = %.4f, stY = %.4f, stZ = %.4f, stA = %.4f, stFontSize = %i, stBold = %i WHERE stID = %i",
  6571. mysql_escaped(Tags[tag][tagText]),
  6572. Tags[tag][tagColor],
  6573. Tags[tag][tagX],
  6574. Tags[tag][tagY],
  6575. Tags[tag][tagZ],
  6576. Tags[tag][tagA],
  6577. Tags[tag][tagFontSize],
  6578. Tags[tag][tagBold],
  6579. Tags[tag][tagID]
  6580. );
  6581. return mysql_tquery(gConnection, queryString);
  6582. }
  6583. UpdateSprayTag(spray)
  6584. {
  6585. if (!SprayTags[spray][sExists]) return 0;
  6586. DestroyDynamicObject(SprayTags[spray][sObject]);
  6587. SprayTags[spray][sObject] = CreateDynamicObject(19482, SprayTags[spray][sX], SprayTags[spray][sY], SprayTags[spray][sZ], 0.0, 0.0, SprayTags[spray][sA]);
  6588. SetDynamicObjectMaterial(SprayTags[spray][sObject], 0, 0, "none", "none", 0);
  6589. SetDynamicObjectMaterialText(SprayTags[spray][sObject], 0, SprayTags[spray][sText], OBJECT_MATERIAL_SIZE_256x128, "Arial", 24, 1, SprayTags[spray][sColor], 0, 0);
  6590. return 1;
  6591. }
  6592. SaveSprayTag(spray)
  6593. {
  6594. static
  6595. queryString[512];
  6596. if (!SprayTags[spray][sExists]) return 0;
  6597. format(queryString, sizeof(queryString), "UPDATE rp_spraytags SET stText = '%s', stColor = %i, stX = %.4f, stY = %.4f, stZ = %.4f, stA = %.4f WHERE stID = %i",
  6598. mysql_escaped(SprayTags[spray][sText]),
  6599. SprayTags[spray][sColor],
  6600. SprayTags[spray][sX],
  6601. SprayTags[spray][sY],
  6602. SprayTags[spray][sZ],
  6603. SprayTags[spray][sA],
  6604. SprayTags[spray][sID]
  6605. );
  6606. return mysql_tquery(gConnection, queryString);
  6607. }
  6608. GetClosestSprayTag(playerid)
  6609. {
  6610. for (new i = 0; i < MAX_SPRAY_TAGS; i ++)
  6611. {
  6612. if (SprayTags[i][sExists] && IsPlayerInRangeOfPoint(playerid, 3.0, SprayTags[i][sX], SprayTags[i][sY], SprayTags[i][sZ]))
  6613. {
  6614. return i;
  6615. }
  6616. }
  6617. return INVALID_ID;
  6618. }
  6619. GetClosestTag(playerid)
  6620. {
  6621. for (new i = 0; i < MAX_TAGS; i ++)
  6622. {
  6623. if (Tags[i][tagExists] && IsPlayerInRangeOfPoint(playerid, 3.0, Tags[i][tagX], Tags[i][tagY], Tags[i][tagZ]))
  6624. {
  6625. return i;
  6626. }
  6627. }
  6628. return INVALID_ID;
  6629. }
  6630. AddTag(Float:x, Float:y, Float:z, Float:angle, const tag[])
  6631. {
  6632. new id = GetNextTagID();
  6633. if (id != INVALID_ID)
  6634. {
  6635. strcpy(Tags[id][tagText], tag, 64);
  6636. Tags[id][tagExists] = 1;
  6637. Tags[id][tagColor] = 0xFFFFFFFF;
  6638. Tags[id][tagX] = x;
  6639. Tags[id][tagY] = y;
  6640. Tags[id][tagZ] = z;
  6641. Tags[id][tagA] = angle - 90.0;
  6642. Tags[id][tagObject] = INVALID_OBJECT_ID;
  6643. Tags[id][tagFontSize] = 24;
  6644. Tags[id][tagBold] = 1;
  6645. format(gExecute, sizeof(gExecute), "INSERT INTO rp_tags (stColor) VALUES(%i)", SprayTags[id][sColor]);
  6646. mysql_tquery(gConnection, gExecute, "OnTagAdded", "i", id);
  6647. UpdateTag(id);
  6648. }
  6649. return id;
  6650. }
  6651. AddSprayTag(Float:x, Float:y, Float:z, Float:angle)
  6652. {
  6653. new id = GetNextSprayTagID();
  6654. if (id != INVALID_ID)
  6655. {
  6656. strcpy(SprayTags[id][sText], "/spray to spray\nthis point", 64);
  6657. SprayTags[id][sExists] = 1;
  6658. SprayTags[id][sColor] = 0xFFFFFFFF;
  6659. SprayTags[id][sX] = x;
  6660. SprayTags[id][sY] = y;
  6661. SprayTags[id][sZ] = z;
  6662. SprayTags[id][sA] = angle - 90.0;
  6663. SprayTags[id][sObject] = INVALID_OBJECT_ID;
  6664. format(gExecute, sizeof(gExecute), "INSERT INTO rp_spraytags (stColor) VALUES(%i)", SprayTags[id][sColor]);
  6665. mysql_tquery(gConnection, gExecute, "OnSprayTagAdded", "i", id);
  6666. UpdateSprayTag(id);
  6667. }
  6668. return id;
  6669. }
  6670. IsCallIncoming(playerid)
  6671. {
  6672. return (Players[playerid][pCalling] == 1 && Players[playerid][pCaller] != INVALID_PLAYER_ID);
  6673. }
  6674. IsPlayerNearRingingPayphone(playerid)
  6675. {
  6676. new payphone = GetClosestPayphone(playerid);
  6677. return (IsValidPayphoneID(payphone) && Payphones[payphone][phCaller] != INVALID_PLAYER_ID);
  6678. }
  6679. GetClosestPayphone(playerid)
  6680. {
  6681. for (new i = 0; i < MAX_PAYPHONES; i ++)
  6682. {
  6683. if (Payphones[i][phExists] && IsPlayerNearPoint(playerid, 2.0, Payphones[i][phX], Payphones[i][phY], Payphones[i][phZ], Payphones[i][phInterior], Payphones[i][phWorld]))
  6684. {
  6685. return i;
  6686. }
  6687. }
  6688. return INVALID_ID;
  6689. }
  6690. AddPayphone(Float:x, Float:y, Float:z, Float:angle, interior, world)
  6691. {
  6692. new
  6693. id = GetNextPayphoneID();
  6694. if (id != INVALID_ID)
  6695. {
  6696. Payphones[id][phExists] = 1;
  6697. Payphones[id][phNumber] = Random(1000000, 9999999);
  6698. Payphones[id][phOccupied] = 0;
  6699. Payphones[id][phCaller] = INVALID_PLAYER_ID;
  6700. Payphones[id][phX] = x;
  6701. Payphones[id][phY] = y;
  6702. Payphones[id][phZ] = z;
  6703. Payphones[id][phA] = angle;
  6704. Payphones[id][phInterior] = interior;
  6705. Payphones[id][phWorld] = world;
  6706. Payphones[id][phObject] = INVALID_OBJECT_ID;
  6707. Payphones[id][phText] = INVALID_3DTEXT_ID;
  6708. UpdatePayphone(id);
  6709. format(gExecute, sizeof(gExecute), "INSERT INTO rp_payphones (phInterior) VALUES(%i)", interior);
  6710. mysql_tquery(gConnection, gExecute, "OnPayphoneAdded", "i", id);
  6711. }
  6712. return id;
  6713. }
  6714. UseAmmunition(playerid, itemid)
  6715. {
  6716. new string[128];
  6717. if (Weapons[playerid][wPrimary] > 0 && Weapons[playerid][wPrimaryAmmo] > 0) {
  6718. format(string, sizeof(string), "%s\n%s (%i)", string, GetWeapon(Weapons[playerid][wPrimary]), Weapons[playerid][wPrimaryAmmo]);
  6719. } else {
  6720. format(string, sizeof(string), "%s\n%s", string, GetWeapon(Weapons[playerid][wPrimary]));
  6721. }
  6722. if (Weapons[playerid][wSecondary] > 0 && Weapons[playerid][wSecondaryAmmo] > 0) {
  6723. format(string, sizeof(string), "%s\n%s (%i)", string, GetWeapon(Weapons[playerid][wSecondary]), Weapons[playerid][wSecondaryAmmo]);
  6724. } else {
  6725. format(string, sizeof(string), "%s\n%s", string, GetWeapon(Weapons[playerid][wSecondary]));
  6726. }
  6727. if (Players[playerid][pDonator] >= DONATOR_STANDARD) {
  6728. if (Weapons[playerid][wTertiary] > 0 && Weapons[playerid][wTertiaryAmmo] > 0) {
  6729. format(string, sizeof(string), "%s\n%s (%i)", string, GetWeapon(Weapons[playerid][wTertiary]), Weapons[playerid][wTertiaryAmmo]);
  6730. } else {
  6731. format(string, sizeof(string), "%s\n%s", string, GetWeapon(Weapons[playerid][wTertiary]));
  6732. }
  6733. }
  6734. Players[playerid][pSelected] = itemid;
  6735. Dialog_Show(playerid, UseAmmunition, DIALOG_STYLE_LIST, "{FFFFFF}Use ammunition", string, "Load", "Cancel");
  6736. }
  6737. AddTrashbin(Float:x, Float:y, Float:z, Float:angle, interior, world)
  6738. {
  6739. new
  6740. id = GetNextTrashbinID();
  6741. if (id != INVALID_ID)
  6742. {
  6743. Trashbins[id][tExists] = 1;
  6744. Trashbins[id][tX] = x;
  6745. Trashbins[id][tY] = y;
  6746. Trashbins[id][tZ] = z;
  6747. Trashbins[id][tA] = angle;
  6748. Trashbins[id][tInterior] = interior;
  6749. Trashbins[id][tWorld] = world;
  6750. Trashbins[id][tText] = INVALID_3DTEXT_ID;
  6751. Trashbins[id][tObject] = INVALID_OBJECT_ID;
  6752. UpdateTrashbin(id);
  6753. format(gExecute, sizeof(gExecute), "INSERT INTO rp_trashbins (tInterior) VALUES(%i)", interior);
  6754. mysql_tquery(gConnection, gExecute, "OnTrashbinAdded", "i", id);
  6755. }
  6756. return id;
  6757. }
  6758. SaveTrashbin(trashbin)
  6759. {
  6760. static
  6761. queryString[192];
  6762. if (!Trashbins[trashbin][tExists]) return 0;
  6763. format(queryString, sizeof(queryString), "UPDATE rp_trashbins SET tX = %.4f, tY = %.4f, tZ = %.4f, tA = %.4f, tInterior = %i, tWorld = %i WHERE tID = %i", Trashbins[trashbin][tX], Trashbins[trashbin][tY], Trashbins[trashbin][tZ], Trashbins[trashbin][tA], Trashbins[trashbin][tInterior], Trashbins[trashbin][tWorld], Trashbins[trashbin][tID]);
  6764. return mysql_tquery(gConnection, queryString);
  6765. }
  6766. UpdateTrashbin(trashbin)
  6767. {
  6768. new string[64];
  6769. if (!Trashbins[trashbin][tExists]) return 0;
  6770. DestroyDynamic3DTextLabel(Trashbins[trashbin][tText]);
  6771. DestroyDynamicObject(Trashbins[trashbin][tObject]);
  6772. format(string, sizeof(string), "ID: %i\nPress Y to look inside", trashbin);
  6773. Trashbins[trashbin][tText] = CreateDynamic3DTextLabel(string, COLOR_GREY, Trashbins[trashbin][tX], Trashbins[trashbin][tY], Trashbins[trashbin][tZ], 2.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Trashbins[trashbin][tWorld], Trashbins[trashbin][tInterior]);
  6774. Trashbins[trashbin][tObject] = CreateDynamicObject(1337, Trashbins[trashbin][tX], Trashbins[trashbin][tY], Trashbins[trashbin][tZ], 0.0, 0.0, Trashbins[trashbin][tA], Trashbins[trashbin][tWorld], Trashbins[trashbin][tInterior]);
  6775. return 1;
  6776. }
  6777. ShowTrashbinItems(playerid, trashbin)
  6778. {
  6779. if (!IsValidTrashbinID(trashbin))
  6780. {
  6781. return 0;
  6782. }
  6783. else
  6784. {
  6785. new
  6786. title[64],
  6787. index = 0;
  6788. gListString = "Item\tWeight\nStore Item";
  6789. for (new i = 0; i < MAX_STORED_ITEMS; i ++)
  6790. {
  6791. if (StoredItems[i][stExists] && StoredItems[i][stTrashbin] == Trashbins[trashbin][tID])
  6792. {
  6793. format(gListString, sizeof(gListString), "%s\n%s\t%i lbs", gListString, GetStoredItemName(i), GetItemInformation(StoredItems[i][stName], ITEM_INFO_WEIGHT));
  6794. gListedItems[playerid][index++] = i;
  6795. }
  6796. }
  6797. Players[playerid][pTrashbin] = trashbin;
  6798. format(title, sizeof(title), "{FFFFFF}Trashbin - Capacity: %i/%i", GetTrashbinTotalWeight(trashbin), MAX_TRASHBIN_WEIGHT);
  6799. Dialog_Show(playerid, TrashbinMenu, DIALOG_STYLE_TABLIST_HEADERS, title, gListString, "Select", "Back");
  6800. }
  6801. return 1;
  6802. }
  6803. SaveObject(object)
  6804. {
  6805. static
  6806. queryString[512];
  6807. if (!Objects[object][oExists]) return 0;
  6808. format(queryString, sizeof(queryString), "UPDATE rp_objects SET oModel = %i, oX = %.4f, oY = %.4f, oZ = %.4f, oRX = %.4f, oRY = %.4f, oRZ = %.4f, oDistance = %.4f, oInterior = %i, oWorld = %i WHERE oID = %i",
  6809. Objects[object][oModel],
  6810. Objects[object][oX],
  6811. Objects[object][oY],
  6812. Objects[object][oZ],
  6813. Objects[object][oRX],
  6814. Objects[object][oRY],
  6815. Objects[object][oRZ],
  6816. Objects[object][oDistance],
  6817. Objects[object][oInterior],
  6818. Objects[object][oWorld],
  6819. Objects[object][oID]
  6820. );
  6821. return mysql_tquery(gConnection, queryString);
  6822. }
  6823. AddObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, Float:distance, interior, worldid)
  6824. {
  6825. new
  6826. id = GetNextObjectID();
  6827. if (id != INVALID_ID)
  6828. {
  6829. Objects[id][oExists] = 1;
  6830. Objects[id][oModel] = modelid;
  6831. Objects[id][oX] = x;
  6832. Objects[id][oY] = y;
  6833. Objects[id][oZ] = z;
  6834. Objects[id][oRX] = rx;
  6835. Objects[id][oRY] = ry;
  6836. Objects[id][oRZ] = rz;
  6837. Objects[id][oDistance] = distance;
  6838. Objects[id][oInterior] = interior;
  6839. Objects[id][oWorld] = worldid;
  6840. Objects[id][oObjectID] = INVALID_OBJECT_ID;
  6841. Objects[id][oText] = INVALID_3DTEXT_ID;
  6842. UpdateObject(id);
  6843. format(gExecute, sizeof(gExecute), "INSERT INTO rp_objects (oModel) VALUES(%i)", modelid);
  6844. mysql_tquery(gConnection, gExecute, "OnObjectAdded", "i", id);
  6845. }
  6846. return id;
  6847. }
  6848. UpdateObjectLabel(object)
  6849. {
  6850. new string[32];
  6851. if (!Objects[object][oExists]) return 0;
  6852. DestroyDynamic3DTextLabel(Objects[object][oText]);
  6853. if (gObjectDebug)
  6854. {
  6855. format(string, sizeof(string), "ID: %i\nModel ID: %i", object, Objects[object][oModel]);
  6856. Objects[object][oText] = CreateDynamic3DTextLabel(string, COLOR_GREY, Objects[object][oX], Objects[object][oY], Objects[object][oZ] + 0.5, 15.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Objects[object][oWorld], Objects[object][oInterior]);
  6857. }
  6858. else
  6859. {
  6860. Objects[object][oText] = INVALID_3DTEXT_ID;
  6861. }
  6862. return 1;
  6863. }
  6864. UpdateObject(object)
  6865. {
  6866. if (!Objects[object][oExists]) return 0;
  6867. DestroyDynamicObject(Objects[object][oObjectID]);
  6868. Objects[object][oObjectID] = CreateDynamicObject(Objects[object][oModel], Objects[object][oX], Objects[object][oY], Objects[object][oZ], Objects[object][oRX], Objects[object][oRY], Objects[object][oRZ], Objects[object][oWorld], Objects[object][oInterior], -1, Objects[object][oDistance], Objects[object][oDistance]);
  6869. if (gObjectDebug)
  6870. {
  6871. UpdateObjectLabel(object);
  6872. }
  6873. return 1;
  6874. }
  6875. UpdateLabel(label)
  6876. {
  6877. if (!Labels[label][lExists]) return 0;
  6878. DestroyDynamic3DTextLabel(Labels[label][lText3D]);
  6879. Labels[label][lText3D] = CreateDynamic3DTextLabel(Labels[label][lText], Labels[label][lColor], Labels[label][lX], Labels[label][lY], Labels[label][lZ], Labels[label][lDistance], INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Labels[label][lWorld], Labels[label][lInterior]);
  6880. return 1;
  6881. }
  6882. SaveLabel(label)
  6883. {
  6884. static
  6885. queryString[512];
  6886. if (!Labels[label][lExists]) return 0;
  6887. format(queryString, sizeof(queryString), "UPDATE rp_dynamiclabels SET lColor = %i, lText = '%s', lX = %.4f, lY = %.4f, lZ = %.4f, lDistance = %.4f, lInterior = %i, lWorld = %i WHERE lID = %i",
  6888. Labels[label][lColor],
  6889. mysql_escaped(Labels[label][lText]),
  6890. Labels[label][lX],
  6891. Labels[label][lY],
  6892. Labels[label][lZ],
  6893. Labels[label][lDistance],
  6894. Labels[label][lInterior],
  6895. Labels[label][lWorld],
  6896. Labels[label][lID]
  6897. );
  6898. return mysql_tquery(gConnection, queryString);
  6899. }
  6900. IsPlayerInRangeOfHospital(playerid)
  6901. {
  6902. for (new i = 0; i < sizeof(g_HospitalDeliverPoints); i ++)
  6903. {
  6904. if (IsPlayerInRangeOfPoint(playerid, 5.0, g_HospitalDeliverPoints[i][0], g_HospitalDeliverPoints[i][1], g_HospitalDeliverPoints[i][2]))
  6905. {
  6906. return 1;
  6907. }
  6908. }
  6909. return 0;
  6910. }
  6911. GetPlayerZoneNameEx(playerid)
  6912. {
  6913. new
  6914. Float:x,
  6915. Float:y,
  6916. Float:z,
  6917. zone[MAX_ZONE_NAME];
  6918. if (GetPlayerPosEx(playerid, x, y, z))
  6919. {
  6920. strcpy(zone, GetZoneName(x, y, z));
  6921. }
  6922. else
  6923. {
  6924. zone = "Interior";
  6925. }
  6926. return zone;
  6927. }
  6928. GetPlayerPosEx(playerid, &Float:x, &Float:y, &Float:z)
  6929. {
  6930. new
  6931. insideid = INVALID_ID
  6932. ;
  6933. if ((insideid = GetCurrentCompany(playerid)) != INVALID_ID)
  6934. {
  6935. x = Companies[insideid][cSpawn][0];
  6936. y = Companies[insideid][cSpawn][1];
  6937. z = Companies[insideid][cSpawn][2];
  6938. return 1;
  6939. }
  6940. else if ((insideid = GetCurrentHouse(playerid)) != INVALID_ID)
  6941. {
  6942. x = Houses[insideid][hSpawn][0];
  6943. y = Houses[insideid][hSpawn][1];
  6944. z = Houses[insideid][hSpawn][2];
  6945. return 1;
  6946. }
  6947. else if ((insideid = GetCurrentBuilding(playerid)) != INVALID_ID)
  6948. {
  6949. x = Buildings[insideid][bSpawn][0];
  6950. y = Buildings[insideid][bSpawn][1];
  6951. z = Buildings[insideid][bSpawn][2];
  6952. return 1;
  6953. }
  6954. else if (IsPlayerInside(playerid))
  6955. {
  6956. return 0;
  6957. }
  6958. return GetPlayerPos(playerid, x, y, z);
  6959. }
  6960. Float:GetDeployedItemRange(id)
  6961. {
  6962. switch (DeployedItems[id][dpType])
  6963. {
  6964. case DEPLOY_TYPE_CONE, DEPLOY_TYPE_FLARE, DEPLOY_TYPE_BARREL, DEPLOY_TYPE_TAPE:
  6965. return 2.0;
  6966. case DEPLOY_TYPE_SPIKES:
  6967. return 3.0;
  6968. case DEPLOY_TYPE_ROADBLOCK:
  6969. return 7.0;
  6970. }
  6971. return 0.0;
  6972. }
  6973. GetClosestTrashbin(playerid)
  6974. {
  6975. for (new i = 0; i < MAX_TRASH_BINS; i ++)
  6976. {
  6977. if (Trashbins[i][tExists] && IsPlayerNearPoint(playerid, 2.0, Trashbins[i][tX], Trashbins[i][tY], Trashbins[i][tZ], Trashbins[i][tInterior], Trashbins[i][tWorld]))
  6978. {
  6979. return i;
  6980. }
  6981. }
  6982. return INVALID_ID;
  6983. }
  6984. GetClosestDeployedItem(playerid)
  6985. {
  6986. for (new i = 0; i < MAX_DEPLOYED_ITEMS; i ++)
  6987. {
  6988. if (DeployedItems[i][dpExists] && IsPlayerInRangeOfPoint(playerid, GetDeployedItemRange(i), DeployedItems[i][dpX], DeployedItems[i][dpY], DeployedItems[i][dpZ]))
  6989. {
  6990. return i;
  6991. }
  6992. }
  6993. return INVALID_ID;
  6994. }
  6995. GetClosestLabel(playerid)
  6996. {
  6997. for (new i = 0; i < MAX_DYNAMIC_LABELS; i ++)
  6998. {
  6999. if (Labels[i][lExists] && IsPlayerNearPoint(playerid, 2.0, Labels[i][lX], Labels[i][lY], Labels[i][lZ], Labels[i][lInterior], Labels[i][lWorld]))
  7000. {
  7001. return i;
  7002. }
  7003. }
  7004. return INVALID_ID;
  7005. }
  7006. IsAutoShopInUse(id)
  7007. {
  7008. foreach (new i : Player)
  7009. {
  7010. if (Players[i][pAutoShop] == id)
  7011. {
  7012. return 1;
  7013. }
  7014. }
  7015. return 0;
  7016. }
  7017. GetClosestAutoShop(playerid)
  7018. {
  7019. for (new i = 0; i < MAX_AUTO_SHOPS; i ++)
  7020. {
  7021. if (IsValidAutoShopID(i) && IsPlayerInRangeOfPoint(playerid, 5.0, AutoShops[i][asX], AutoShops[i][asY], AutoShops[i][asZ]))
  7022. {
  7023. return i;
  7024. }
  7025. }
  7026. return INVALID_ID;
  7027. }
  7028. UpdateAutoShop(id)
  7029. {
  7030. new string[64];
  7031. if (!AutoShops[id][asExists]) return 0;
  7032. DestroyDynamicPickup(AutoShops[id][asPickup]);
  7033. DestroyDynamicMapIcon(AutoShops[id][asIcon]);
  7034. DestroyDynamic3DTextLabel(AutoShops[id][asText]);
  7035. format(string, sizeof(string), "ID: %i\nUse /repair to repair vehicle", id);
  7036. AutoShops[id][asPickup] = CreateDynamicPickup(1239, 23, AutoShops[id][asX], AutoShops[id][asY], AutoShops[id][asZ]);
  7037. AutoShops[id][asIcon] = CreateDynamicMapIcon(AutoShops[id][asX], AutoShops[id][asY], AutoShops[id][asZ], 27, 0);
  7038. AutoShops[id][asText] = CreateDynamic3DTextLabel(string, COLOR_GREY, AutoShops[id][asX], AutoShops[id][asY], AutoShops[id][asZ], 15.0);
  7039. return 1;
  7040. }
  7041. GetFactionOnlineMembers(faction)
  7042. {
  7043. new count = 0;
  7044. foreach (new i : Player)
  7045. {
  7046. if (IsPlayerLoggedIn(i) && Players[i][pFaction] == faction)
  7047. {
  7048. count++;
  7049. }
  7050. }
  7051. return count;
  7052. }
  7053. GetFactionIDName(id)
  7054. {
  7055. new
  7056. string[32] = "Not Specified",
  7057. faction
  7058. ;
  7059. faction = GetFactionID(id);
  7060. if (IsValidFactionID(faction))
  7061. {
  7062. strcpy(string, Factions[faction][fcName]);
  7063. }
  7064. return string;
  7065. }
  7066. enum SAZONE_MAIN {
  7067. SAZONE_NAME[28],
  7068. Float:SAZONE_AREA[6]
  7069. };
  7070. static const gSAZones[][SAZONE_MAIN] = {
  7071. // NAME AREA (Xmin,Ymin,Zmin,Xmax,Ymax,Zmax)
  7072. {"The Big Ear", {-410.00,1403.30,-3.00,-137.90,1681.20,200.00}},
  7073. {"Aldea Malvada", {-1372.10,2498.50,0.00,-1277.50,2615.30,200.00}},
  7074. {"Angel Pine", {-2324.90,-2584.20,-6.10,-1964.20,-2212.10,200.00}},
  7075. {"Arco del Oeste", {-901.10,2221.80,0.00,-592.00,2571.90,200.00}},
  7076. {"Avispa Country Club", {-2646.40,-355.40,0.00,-2270.00,-222.50,200.00}},
  7077. {"Avispa Country Club", {-2831.80,-430.20,-6.10,-2646.40,-222.50,200.00}},
  7078. {"Avispa Country Club", {-2361.50,-417.10,0.00,-2270.00,-355.40,200.00}},
  7079. {"Avispa Country Club", {-2667.80,-302.10,-28.80,-2646.40,-262.30,71.10}},
  7080. {"Avispa Country Club", {-2470.00,-355.40,0.00,-2270.00,-318.40,46.10}},
  7081. {"Avispa Country Club", {-2550.00,-355.40,0.00,-2470.00,-318.40,39.70}},
  7082. {"Back o Beyond", {-1166.90,-2641.10,0.00,-321.70,-1856.00,200.00}},
  7083. {"Battery Point", {-2741.00,1268.40,-4.50,-2533.00,1490.40,200.00}},
  7084. {"Bayside", {-2741.00,2175.10,0.00,-2353.10,2722.70,200.00}},
  7085. {"Bayside Marina", {-2353.10,2275.70,0.00,-2153.10,2475.70,200.00}},
  7086. {"Beacon Hill", {-399.60,-1075.50,-1.40,-319.00,-977.50,198.50}},
  7087. {"Blackfield", {964.30,1203.20,-89.00,1197.30,1403.20,110.90}},
  7088. {"Blackfield", {964.30,1403.20,-89.00,1197.30,1726.20,110.90}},
  7089. {"Blackfield Chapel", {1375.60,596.30,-89.00,1558.00,823.20,110.90}},
  7090. {"Blackfield Chapel", {1325.60,596.30,-89.00,1375.60,795.00,110.90}},
  7091. {"Blackfield Intersection", {1197.30,1044.60,-89.00,1277.00,1163.30,110.90}},
  7092. {"Blackfield Intersection", {1166.50,795.00,-89.00,1375.60,1044.60,110.90}},
  7093. {"Blackfield Intersection", {1277.00,1044.60,-89.00,1315.30,1087.60,110.90}},
  7094. {"Blackfield Intersection", {1375.60,823.20,-89.00,1457.30,919.40,110.90}},
  7095. {"Blueberry", {104.50,-220.10,2.30,349.60,152.20,200.00}},
  7096. {"Blueberry", {19.60,-404.10,3.80,349.60,-220.10,200.00}},
  7097. {"Blueberry Acres", {-319.60,-220.10,0.00,104.50,293.30,200.00}},
  7098. {"Pershing Apartments", {2087.30,1543.20,-89.00,2437.30,1703.20,110.90}},
  7099. {"Pershing Apartments", {2137.40,1703.20,-89.00,2437.30,1783.20,110.90}},
  7100. {"Calton Heights", {-2274.10,744.10,-6.10,-1982.30,1358.90,200.00}},
  7101. {"Chinatown", {-2274.10,578.30,-7.60,-2078.60,744.10,200.00}},
  7102. {"City Hall", {-2867.80,277.40,-9.10,-2593.40,458.40,200.00}},
  7103. {"Come-A-Lot", {2087.30,943.20,-89.00,2623.10,1203.20,110.90}},
  7104. {"Commerce", {1323.90,-1842.20,-89.00,1701.90,-1722.20,110.90}},
  7105. {"Commerce", {1323.90,-1722.20,-89.00,1440.90,-1577.50,110.90}},
  7106. {"Commerce", {1370.80,-1577.50,-89.00,1463.90,-1384.90,110.90}},
  7107. {"Commerce", {1463.90,-1577.50,-89.00,1667.90,-1430.80,110.90}},
  7108. {"Commerce", {1583.50,-1722.20,-89.00,1758.90,-1577.50,110.90}},
  7109. {"Commerce", {1667.90,-1577.50,-89.00,1812.60,-1430.80,110.90}},
  7110. {"Conference Center", {1046.10,-1804.20,-89.00,1323.90,-1722.20,110.90}},
  7111. {"Conference Center", {1073.20,-1842.20,-89.00,1323.90,-1804.20,110.90}},
  7112. {"Cranberry Station", {-2007.80,56.30,0.00,-1922.00,224.70,100.00}},
  7113. {"Creek", {2749.90,1937.20,-89.00,2921.60,2669.70,110.90}},
  7114. {"Dillimore", {580.70,-674.80,-9.50,861.00,-404.70,200.00}},
  7115. {"Doherty", {-2270.00,-324.10,-0.00,-1794.90,-222.50,200.00}},
  7116. {"Doherty", {-2173.00,-222.50,-0.00,-1794.90,265.20,200.00}},
  7117. {"Downtown", {-1982.30,744.10,-6.10,-1871.70,1274.20,200.00}},
  7118. {"Downtown", {-1871.70,1176.40,-4.50,-1620.30,1274.20,200.00}},
  7119. {"Downtown", {-1700.00,744.20,-6.10,-1580.00,1176.50,200.00}},
  7120. {"Downtown", {-1580.00,744.20,-6.10,-1499.80,1025.90,200.00}},
  7121. {"Downtown", {-2078.60,578.30,-7.60,-1499.80,744.20,200.00}},
  7122. {"Downtown", {-1993.20,265.20,-9.10,-1794.90,578.30,200.00}},
  7123. {"Downtown Los Santos", {1463.90,-1430.80,-89.00,1724.70,-1290.80,110.90}},
  7124. {"Downtown Los Santos", {1724.70,-1430.80,-89.00,1812.60,-1250.90,110.90}},
  7125. {"Downtown Los Santos", {1463.90,-1290.80,-89.00,1724.70,-1150.80,110.90}},
  7126. {"Downtown Los Santos", {1370.80,-1384.90,-89.00,1463.90,-1170.80,110.90}},
  7127. {"Downtown Los Santos", {1724.70,-1250.90,-89.00,1812.60,-1150.80,110.90}},
  7128. {"Downtown Los Santos", {1370.80,-1170.80,-89.00,1463.90,-1130.80,110.90}},
  7129. {"Downtown Los Santos", {1378.30,-1130.80,-89.00,1463.90,-1026.30,110.90}},
  7130. {"Downtown Los Santos", {1391.00,-1026.30,-89.00,1463.90,-926.90,110.90}},
  7131. {"Downtown Los Santos", {1507.50,-1385.20,110.90,1582.50,-1325.30,335.90}},
  7132. {"East Beach", {2632.80,-1852.80,-89.00,2959.30,-1668.10,110.90}},
  7133. {"East Beach", {2632.80,-1668.10,-89.00,2747.70,-1393.40,110.90}},
  7134. {"East Beach", {2747.70,-1668.10,-89.00,2959.30,-1498.60,110.90}},
  7135. {"East Beach", {2747.70,-1498.60,-89.00,2959.30,-1120.00,110.90}},
  7136. {"East Los Santos", {2421.00,-1628.50,-89.00,2632.80,-1454.30,110.90}},
  7137. {"East Los Santos", {2222.50,-1628.50,-89.00,2421.00,-1494.00,110.90}},
  7138. {"East Los Santos", {2266.20,-1494.00,-89.00,2381.60,-1372.00,110.90}},
  7139. {"East Los Santos", {2381.60,-1494.00,-89.00,2421.00,-1454.30,110.90}},
  7140. {"East Los Santos", {2281.40,-1372.00,-89.00,2381.60,-1135.00,110.90}},
  7141. {"East Los Santos", {2381.60,-1454.30,-89.00,2462.10,-1135.00,110.90}},
  7142. {"East Los Santos", {2462.10,-1454.30,-89.00,2581.70,-1135.00,110.90}},
  7143. {"Easter Basin", {-1794.90,249.90,-9.10,-1242.90,578.30,200.00}},
  7144. {"Easter Basin", {-1794.90,-50.00,-0.00,-1499.80,249.90,200.00}},
  7145. {"Easter Bay Airport", {-1499.80,-50.00,-0.00,-1242.90,249.90,200.00}},
  7146. {"Easter Bay Airport", {-1794.90,-730.10,-3.00,-1213.90,-50.00,200.00}},
  7147. {"Easter Bay Airport", {-1213.90,-730.10,0.00,-1132.80,-50.00,200.00}},
  7148. {"Easter Bay Airport", {-1242.90,-50.00,0.00,-1213.90,578.30,200.00}},
  7149. {"Easter Bay Airport", {-1213.90,-50.00,-4.50,-947.90,578.30,200.00}},
  7150. {"Easter Bay Airport", {-1315.40,-405.30,15.40,-1264.40,-209.50,25.40}},
  7151. {"Easter Bay Airport", {-1354.30,-287.30,15.40,-1315.40,-209.50,25.40}},
  7152. {"Easter Bay Airport", {-1490.30,-209.50,15.40,-1264.40,-148.30,25.40}},
  7153. {"Easter Bay Chemicals", {-1132.80,-768.00,0.00,-956.40,-578.10,200.00}},
  7154. {"Easter Bay Chemicals", {-1132.80,-787.30,0.00,-956.40,-768.00,200.00}},
  7155. {"El Castillo del Diablo", {-464.50,2217.60,0.00,-208.50,2580.30,200.00}},
  7156. {"El Castillo del Diablo", {-208.50,2123.00,-7.60,114.00,2337.10,200.00}},
  7157. {"El Castillo del Diablo", {-208.50,2337.10,0.00,8.40,2487.10,200.00}},
  7158. {"El Corona", {1812.60,-2179.20,-89.00,1970.60,-1852.80,110.90}},
  7159. {"El Corona", {1692.60,-2179.20,-89.00,1812.60,-1842.20,110.90}},
  7160. {"El Quebrados", {-1645.20,2498.50,0.00,-1372.10,2777.80,200.00}},
  7161. {"Esplanade East", {-1620.30,1176.50,-4.50,-1580.00,1274.20,200.00}},
  7162. {"Esplanade East", {-1580.00,1025.90,-6.10,-1499.80,1274.20,200.00}},
  7163. {"Esplanade East", {-1499.80,578.30,-79.60,-1339.80,1274.20,20.30}},
  7164. {"Esplanade North", {-2533.00,1358.90,-4.50,-1996.60,1501.20,200.00}},
  7165. {"Esplanade North", {-1996.60,1358.90,-4.50,-1524.20,1592.50,200.00}},
  7166. {"Esplanade North", {-1982.30,1274.20,-4.50,-1524.20,1358.90,200.00}},
  7167. {"Fallen Tree", {-792.20,-698.50,-5.30,-452.40,-380.00,200.00}},
  7168. {"Fallow Bridge", {434.30,366.50,0.00,603.00,555.60,200.00}},
  7169. {"Fern Ridge", {508.10,-139.20,0.00,1306.60,119.50,200.00}},
  7170. {"Financial", {-1871.70,744.10,-6.10,-1701.30,1176.40,300.00}},
  7171. {"Fisher's Lagoon", {1916.90,-233.30,-100.00,2131.70,13.80,200.00}},
  7172. {"Flint Intersection", {-187.70,-1596.70,-89.00,17.00,-1276.60,110.90}},
  7173. {"Flint Range", {-594.10,-1648.50,0.00,-187.70,-1276.60,200.00}},
  7174. {"Fort Carson", {-376.20,826.30,-3.00,123.70,1220.40,200.00}},
  7175. {"Foster Valley", {-2270.00,-430.20,-0.00,-2178.60,-324.10,200.00}},
  7176. {"Foster Valley", {-2178.60,-599.80,-0.00,-1794.90,-324.10,200.00}},
  7177. {"Foster Valley", {-2178.60,-1115.50,0.00,-1794.90,-599.80,200.00}},
  7178. {"Foster Valley", {-2178.60,-1250.90,0.00,-1794.90,-1115.50,200.00}},
  7179. {"Frederick Bridge", {2759.20,296.50,0.00,2774.20,594.70,200.00}},
  7180. {"Gant Bridge", {-2741.40,1659.60,-6.10,-2616.40,2175.10,200.00}},
  7181. {"Gant Bridge", {-2741.00,1490.40,-6.10,-2616.40,1659.60,200.00}},
  7182. {"Ganton", {2222.50,-1852.80,-89.00,2632.80,-1722.30,110.90}},
  7183. {"Ganton", {2222.50,-1722.30,-89.00,2632.80,-1628.50,110.90}},
  7184. {"Garcia", {-2411.20,-222.50,-0.00,-2173.00,265.20,200.00}},
  7185. {"Garcia", {-2395.10,-222.50,-5.30,-2354.00,-204.70,200.00}},
  7186. {"Garver Bridge", {-1339.80,828.10,-89.00,-1213.90,1057.00,110.90}},
  7187. {"Garver Bridge", {-1213.90,950.00,-89.00,-1087.90,1178.90,110.90}},
  7188. {"Garver Bridge", {-1499.80,696.40,-179.60,-1339.80,925.30,20.30}},
  7189. {"Glen Park", {1812.60,-1449.60,-89.00,1996.90,-1350.70,110.90}},
  7190. {"Glen Park", {1812.60,-1100.80,-89.00,1994.30,-973.30,110.90}},
  7191. {"Glen Park", {1812.60,-1350.70,-89.00,2056.80,-1100.80,110.90}},
  7192. {"Green Palms", {176.50,1305.40,-3.00,338.60,1520.70,200.00}},
  7193. {"Greenglass College", {964.30,1044.60,-89.00,1197.30,1203.20,110.90}},
  7194. {"Greenglass College", {964.30,930.80,-89.00,1166.50,1044.60,110.90}},
  7195. {"Hampton Barns", {603.00,264.30,0.00,761.90,366.50,200.00}},
  7196. {"Hankypanky Point", {2576.90,62.10,0.00,2759.20,385.50,200.00}},
  7197. {"Harry Gold Parkway", {1777.30,863.20,-89.00,1817.30,2342.80,110.90}},
  7198. {"Hashbury", {-2593.40,-222.50,-0.00,-2411.20,54.70,200.00}},
  7199. {"Hilltop Farm", {967.30,-450.30,-3.00,1176.70,-217.90,200.00}},
  7200. {"Hunter Quarry", {337.20,710.80,-115.20,860.50,1031.70,203.70}},
  7201. {"Idlewood", {1812.60,-1852.80,-89.00,1971.60,-1742.30,110.90}},
  7202. {"Idlewood", {1812.60,-1742.30,-89.00,1951.60,-1602.30,110.90}},
  7203. {"Idlewood", {1951.60,-1742.30,-89.00,2124.60,-1602.30,110.90}},
  7204. {"Idlewood", {1812.60,-1602.30,-89.00,2124.60,-1449.60,110.90}},
  7205. {"Idlewood", {2124.60,-1742.30,-89.00,2222.50,-1494.00,110.90}},
  7206. {"Idlewood", {1971.60,-1852.80,-89.00,2222.50,-1742.30,110.90}},
  7207. {"Jefferson", {1996.90,-1449.60,-89.00,2056.80,-1350.70,110.90}},
  7208. {"Jefferson", {2124.60,-1494.00,-89.00,2266.20,-1449.60,110.90}},
  7209. {"Jefferson", {2056.80,-1372.00,-89.00,2281.40,-1210.70,110.90}},
  7210. {"Jefferson", {2056.80,-1210.70,-89.00,2185.30,-1126.30,110.90}},
  7211. {"Jefferson", {2185.30,-1210.70,-89.00,2281.40,-1154.50,110.90}},
  7212. {"Jefferson", {2056.80,-1449.60,-89.00,2266.20,-1372.00,110.90}},
  7213. {"Julius Thruway East", {2623.10,943.20,-89.00,2749.90,1055.90,110.90}},
  7214. {"Julius Thruway East", {2685.10,1055.90,-89.00,2749.90,2626.50,110.90}},
  7215. {"Julius Thruway East", {2536.40,2442.50,-89.00,2685.10,2542.50,110.90}},
  7216. {"Julius Thruway East", {2625.10,2202.70,-89.00,2685.10,2442.50,110.90}},
  7217. {"Julius Thruway North", {2498.20,2542.50,-89.00,2685.10,2626.50,110.90}},
  7218. {"Julius Thruway North", {2237.40,2542.50,-89.00,2498.20,2663.10,110.90}},
  7219. {"Julius Thruway North", {2121.40,2508.20,-89.00,2237.40,2663.10,110.90}},
  7220. {"Julius Thruway North", {1938.80,2508.20,-89.00,2121.40,2624.20,110.90}},
  7221. {"Julius Thruway North", {1534.50,2433.20,-89.00,1848.40,2583.20,110.90}},
  7222. {"Julius Thruway North", {1848.40,2478.40,-89.00,1938.80,2553.40,110.90}},
  7223. {"Julius Thruway North", {1704.50,2342.80,-89.00,1848.40,2433.20,110.90}},
  7224. {"Julius Thruway North", {1377.30,2433.20,-89.00,1534.50,2507.20,110.90}},
  7225. {"Julius Thruway South", {1457.30,823.20,-89.00,2377.30,863.20,110.90}},
  7226. {"Julius Thruway South", {2377.30,788.80,-89.00,2537.30,897.90,110.90}},
  7227. {"Julius Thruway West", {1197.30,1163.30,-89.00,1236.60,2243.20,110.90}},
  7228. {"Julius Thruway West", {1236.60,2142.80,-89.00,1297.40,2243.20,110.90}},
  7229. {"Juniper Hill", {-2533.00,578.30,-7.60,-2274.10,968.30,200.00}},
  7230. {"Juniper Hollow", {-2533.00,968.30,-6.10,-2274.10,1358.90,200.00}},
  7231. {"K.A.C.C. Military Fuels", {2498.20,2626.50,-89.00,2749.90,2861.50,110.90}},
  7232. {"Kincaid Bridge", {-1339.80,599.20,-89.00,-1213.90,828.10,110.90}},
  7233. {"Kincaid Bridge", {-1213.90,721.10,-89.00,-1087.90,950.00,110.90}},
  7234. {"Kincaid Bridge", {-1087.90,855.30,-89.00,-961.90,986.20,110.90}},
  7235. {"King's", {-2329.30,458.40,-7.60,-1993.20,578.30,200.00}},
  7236. {"King's", {-2411.20,265.20,-9.10,-1993.20,373.50,200.00}},
  7237. {"King's", {-2253.50,373.50,-9.10,-1993.20,458.40,200.00}},
  7238. {"LVA Freight Depot", {1457.30,863.20,-89.00,1777.40,1143.20,110.90}},
  7239. {"LVA Freight Depot", {1375.60,919.40,-89.00,1457.30,1203.20,110.90}},
  7240. {"LVA Freight Depot", {1277.00,1087.60,-89.00,1375.60,1203.20,110.90}},
  7241. {"LVA Freight Depot", {1315.30,1044.60,-89.00,1375.60,1087.60,110.90}},
  7242. {"LVA Freight Depot", {1236.60,1163.40,-89.00,1277.00,1203.20,110.90}},
  7243. {"Las Barrancas", {-926.10,1398.70,-3.00,-719.20,1634.60,200.00}},
  7244. {"Las Brujas", {-365.10,2123.00,-3.00,-208.50,2217.60,200.00}},
  7245. {"Las Colinas", {1994.30,-1100.80,-89.00,2056.80,-920.80,110.90}},
  7246. {"Las Colinas", {2056.80,-1126.30,-89.00,2126.80,-920.80,110.90}},
  7247. {"Las Colinas", {2185.30,-1154.50,-89.00,2281.40,-934.40,110.90}},
  7248. {"Las Colinas", {2126.80,-1126.30,-89.00,2185.30,-934.40,110.90}},
  7249. {"Las Colinas", {2747.70,-1120.00,-89.00,2959.30,-945.00,110.90}},
  7250. {"Las Colinas", {2632.70,-1135.00,-89.00,2747.70,-945.00,110.90}},
  7251. {"Las Colinas", {2281.40,-1135.00,-89.00,2632.70,-945.00,110.90}},
  7252. {"Las Payasadas", {-354.30,2580.30,2.00,-133.60,2816.80,200.00}},
  7253. {"Las Venturas Airport", {1236.60,1203.20,-89.00,1457.30,1883.10,110.90}},
  7254. {"Las Venturas Airport", {1457.30,1203.20,-89.00,1777.30,1883.10,110.90}},
  7255. {"Las Venturas Airport", {1457.30,1143.20,-89.00,1777.40,1203.20,110.90}},
  7256. {"Las Venturas Airport", {1515.80,1586.40,-12.50,1729.90,1714.50,87.50}},
  7257. {"Last Dime Motel", {1823.00,596.30,-89.00,1997.20,823.20,110.90}},
  7258. {"Leafy Hollow", {-1166.90,-1856.00,0.00,-815.60,-1602.00,200.00}},
  7259. {"Liberty City", {-1000.00,400.00,1300.00,-700.00,600.00,1400.00}},
  7260. {"Lil' Probe Inn", {-90.20,1286.80,-3.00,153.80,1554.10,200.00}},
  7261. {"Linden Side", {2749.90,943.20,-89.00,2923.30,1198.90,110.90}},
  7262. {"Linden Station", {2749.90,1198.90,-89.00,2923.30,1548.90,110.90}},
  7263. {"Linden Station", {2811.20,1229.50,-39.50,2861.20,1407.50,60.40}},
  7264. {"Little Mexico", {1701.90,-1842.20,-89.00,1812.60,-1722.20,110.90}},
  7265. {"Little Mexico", {1758.90,-1722.20,-89.00,1812.60,-1577.50,110.90}},
  7266. {"Los Flores", {2581.70,-1454.30,-89.00,2632.80,-1393.40,110.90}},
  7267. {"Los Flores", {2581.70,-1393.40,-89.00,2747.70,-1135.00,110.90}},
  7268. {"Los Santos International", {1249.60,-2394.30,-89.00,1852.00,-2179.20,110.90}},
  7269. {"Los Santos International", {1852.00,-2394.30,-89.00,2089.00,-2179.20,110.90}},
  7270. {"Los Santos International", {1382.70,-2730.80,-89.00,2201.80,-2394.30,110.90}},
  7271. {"Los Santos International", {1974.60,-2394.30,-39.00,2089.00,-2256.50,60.90}},
  7272. {"Los Santos International", {1400.90,-2669.20,-39.00,2189.80,-2597.20,60.90}},
  7273. {"Los Santos International", {2051.60,-2597.20,-39.00,2152.40,-2394.30,60.90}},
  7274. {"Marina", {647.70,-1804.20,-89.00,851.40,-1577.50,110.90}},
  7275. {"Marina", {647.70,-1577.50,-89.00,807.90,-1416.20,110.90}},
  7276. {"Marina", {807.90,-1577.50,-89.00,926.90,-1416.20,110.90}},
  7277. {"Market", {787.40,-1416.20,-89.00,1072.60,-1310.20,110.90}},
  7278. {"Market", {952.60,-1310.20,-89.00,1072.60,-1130.80,110.90}},
  7279. {"Market", {1072.60,-1416.20,-89.00,1370.80,-1130.80,110.90}},
  7280. {"Market", {926.90,-1577.50,-89.00,1370.80,-1416.20,110.90}},
  7281. {"Market Station", {787.40,-1410.90,-34.10,866.00,-1310.20,65.80}},
  7282. {"Martin Bridge", {-222.10,293.30,0.00,-122.10,476.40,200.00}},
  7283. {"Missionary Hill", {-2994.40,-811.20,0.00,-2178.60,-430.20,200.00}},
  7284. {"Montgomery", {1119.50,119.50,-3.00,1451.40,493.30,200.00}},
  7285. {"Montgomery", {1451.40,347.40,-6.10,1582.40,420.80,200.00}},
  7286. {"Montgomery Intersection", {1546.60,208.10,0.00,1745.80,347.40,200.00}},
  7287. {"Montgomery Intersection", {1582.40,347.40,0.00,1664.60,401.70,200.00}},
  7288. {"Mulholland", {1414.00,-768.00,-89.00,1667.60,-452.40,110.90}},
  7289. {"Mulholland", {1281.10,-452.40,-89.00,1641.10,-290.90,110.90}},
  7290. {"Mulholland", {1269.10,-768.00,-89.00,1414.00,-452.40,110.90}},
  7291. {"Mulholland", {1357.00,-926.90,-89.00,1463.90,-768.00,110.90}},
  7292. {"Mulholland", {1318.10,-910.10,-89.00,1357.00,-768.00,110.90}},
  7293. {"Mulholland", {1169.10,-910.10,-89.00,1318.10,-768.00,110.90}},
  7294. {"Mulholland", {768.60,-954.60,-89.00,952.60,-860.60,110.90}},
  7295. {"Mulholland", {687.80,-860.60,-89.00,911.80,-768.00,110.90}},
  7296. {"Mulholland", {737.50,-768.00,-89.00,1142.20,-674.80,110.90}},
  7297. {"Mulholland", {1096.40,-910.10,-89.00,1169.10,-768.00,110.90}},
  7298. {"Mulholland", {952.60,-937.10,-89.00,1096.40,-860.60,110.90}},
  7299. {"Mulholland", {911.80,-860.60,-89.00,1096.40,-768.00,110.90}},
  7300. {"Mulholland", {861.00,-674.80,-89.00,1156.50,-600.80,110.90}},
  7301. {"Mulholland Intersection", {1463.90,-1150.80,-89.00,1812.60,-768.00,110.90}},
  7302. {"North Rock", {2285.30,-768.00,0.00,2770.50,-269.70,200.00}},
  7303. {"Ocean Docks", {2373.70,-2697.00,-89.00,2809.20,-2330.40,110.90}},
  7304. {"Ocean Docks", {2201.80,-2418.30,-89.00,2324.00,-2095.00,110.90}},
  7305. {"Ocean Docks", {2324.00,-2302.30,-89.00,2703.50,-2145.10,110.90}},
  7306. {"Ocean Docks", {2089.00,-2394.30,-89.00,2201.80,-2235.80,110.90}},
  7307. {"Ocean Docks", {2201.80,-2730.80,-89.00,2324.00,-2418.30,110.90}},
  7308. {"Ocean Docks", {2703.50,-2302.30,-89.00,2959.30,-2126.90,110.90}},
  7309. {"Ocean Docks", {2324.00,-2145.10,-89.00,2703.50,-2059.20,110.90}},
  7310. {"Ocean Flats", {-2994.40,277.40,-9.10,-2867.80,458.40,200.00}},
  7311. {"Ocean Flats", {-2994.40,-222.50,-0.00,-2593.40,277.40,200.00}},
  7312. {"Ocean Flats", {-2994.40,-430.20,-0.00,-2831.80,-222.50,200.00}},
  7313. {"Octane Springs", {338.60,1228.50,0.00,664.30,1655.00,200.00}},
  7314. {"Old Venturas Strip", {2162.30,2012.10,-89.00,2685.10,2202.70,110.90}},
  7315. {"Palisades", {-2994.40,458.40,-6.10,-2741.00,1339.60,200.00}},
  7316. {"Palomino Creek", {2160.20,-149.00,0.00,2576.90,228.30,200.00}},
  7317. {"Paradiso", {-2741.00,793.40,-6.10,-2533.00,1268.40,200.00}},
  7318. {"Pershing Square", {1440.90,-1722.20,-89.00,1583.50,-1577.50,110.90}},
  7319. {"Pilgrim", {2437.30,1383.20,-89.00,2624.40,1783.20,110.90}},
  7320. {"Pilgrim", {2624.40,1383.20,-89.00,2685.10,1783.20,110.90}},
  7321. {"Pilson Intersection", {1098.30,2243.20,-89.00,1377.30,2507.20,110.90}},
  7322. {"Pirates in Men's Pants", {1817.30,1469.20,-89.00,2027.40,1703.20,110.90}},
  7323. {"Playa Del Seville", {2703.50,-2126.90,-89.00,2959.30,-1852.80,110.90}},
  7324. {"Prickle Pine", {1534.50,2583.20,-89.00,1848.40,2863.20,110.90}},
  7325. {"Prickle Pine", {1117.40,2507.20,-89.00,1534.50,2723.20,110.90}},
  7326. {"Prickle Pine", {1848.40,2553.40,-89.00,1938.80,2863.20,110.90}},
  7327. {"Prickle Pine", {1938.80,2624.20,-89.00,2121.40,2861.50,110.90}},
  7328. {"Queens", {-2533.00,458.40,0.00,-2329.30,578.30,200.00}},
  7329. {"Queens", {-2593.40,54.70,0.00,-2411.20,458.40,200.00}},
  7330. {"Queens", {-2411.20,373.50,0.00,-2253.50,458.40,200.00}},
  7331. {"Randolph Industrial Estate", {1558.00,596.30,-89.00,1823.00,823.20,110.90}},
  7332. {"Redsands East", {1817.30,2011.80,-89.00,2106.70,2202.70,110.90}},
  7333. {"Redsands East", {1817.30,2202.70,-89.00,2011.90,2342.80,110.90}},
  7334. {"Redsands East", {1848.40,2342.80,-89.00,2011.90,2478.40,110.90}},
  7335. {"Redsands West", {1236.60,1883.10,-89.00,1777.30,2142.80,110.90}},
  7336. {"Redsands West", {1297.40,2142.80,-89.00,1777.30,2243.20,110.90}},
  7337. {"Redsands West", {1377.30,2243.20,-89.00,1704.50,2433.20,110.90}},
  7338. {"Redsands West", {1704.50,2243.20,-89.00,1777.30,2342.80,110.90}},
  7339. {"Regular Tom", {-405.70,1712.80,-3.00,-276.70,1892.70,200.00}},
  7340. {"Richman", {647.50,-1118.20,-89.00,787.40,-954.60,110.90}},
  7341. {"Richman", {647.50,-954.60,-89.00,768.60,-860.60,110.90}},
  7342. {"Richman", {225.10,-1369.60,-89.00,334.50,-1292.00,110.90}},
  7343. {"Richman", {225.10,-1292.00,-89.00,466.20,-1235.00,110.90}},
  7344. {"Richman", {72.60,-1404.90,-89.00,225.10,-1235.00,110.90}},
  7345. {"Richman", {72.60,-1235.00,-89.00,321.30,-1008.10,110.90}},
  7346. {"Richman", {321.30,-1235.00,-89.00,647.50,-1044.00,110.90}},
  7347. {"Richman", {321.30,-1044.00,-89.00,647.50,-860.60,110.90}},
  7348. {"Richman", {321.30,-860.60,-89.00,687.80,-768.00,110.90}},
  7349. {"Richman", {321.30,-768.00,-89.00,700.70,-674.80,110.90}},
  7350. {"Robada Intersection", {-1119.00,1178.90,-89.00,-862.00,1351.40,110.90}},
  7351. {"Roca Escalante", {2237.40,2202.70,-89.00,2536.40,2542.50,110.90}},
  7352. {"Roca Escalante", {2536.40,2202.70,-89.00,2625.10,2442.50,110.90}},
  7353. {"Rockshore East", {2537.30,676.50,-89.00,2902.30,943.20,110.90}},
  7354. {"Rockshore West", {1997.20,596.30,-89.00,2377.30,823.20,110.90}},
  7355. {"Rockshore West", {2377.30,596.30,-89.00,2537.30,788.80,110.90}},
  7356. {"Rodeo", {72.60,-1684.60,-89.00,225.10,-1544.10,110.90}},
  7357. {"Rodeo", {72.60,-1544.10,-89.00,225.10,-1404.90,110.90}},
  7358. {"Rodeo", {225.10,-1684.60,-89.00,312.80,-1501.90,110.90}},
  7359. {"Rodeo", {225.10,-1501.90,-89.00,334.50,-1369.60,110.90}},
  7360. {"Rodeo", {334.50,-1501.90,-89.00,422.60,-1406.00,110.90}},
  7361. {"Rodeo", {312.80,-1684.60,-89.00,422.60,-1501.90,110.90}},
  7362. {"Rodeo", {422.60,-1684.60,-89.00,558.00,-1570.20,110.90}},
  7363. {"Rodeo", {558.00,-1684.60,-89.00,647.50,-1384.90,110.90}},
  7364. {"Rodeo", {466.20,-1570.20,-89.00,558.00,-1385.00,110.90}},
  7365. {"Rodeo", {422.60,-1570.20,-89.00,466.20,-1406.00,110.90}},
  7366. {"Rodeo", {466.20,-1385.00,-89.00,647.50,-1235.00,110.90}},
  7367. {"Rodeo", {334.50,-1406.00,-89.00,466.20,-1292.00,110.90}},
  7368. {"Royal Casino", {2087.30,1383.20,-89.00,2437.30,1543.20,110.90}},
  7369. {"San Andreas Sound", {2450.30,385.50,-100.00,2759.20,562.30,200.00}},
  7370. {"Santa Flora", {-2741.00,458.40,-7.60,-2533.00,793.40,200.00}},
  7371. {"Santa Maria Beach", {342.60,-2173.20,-89.00,647.70,-1684.60,110.90}},
  7372. {"Santa Maria Beach", {72.60,-2173.20,-89.00,342.60,-1684.60,110.90}},
  7373. {"Shady Cabin", {-1632.80,-2263.40,-3.00,-1601.30,-2231.70,200.00}},
  7374. {"Shady Creeks", {-1820.60,-2643.60,-8.00,-1226.70,-1771.60,200.00}},
  7375. {"Shady Creeks", {-2030.10,-2174.80,-6.10,-1820.60,-1771.60,200.00}},
  7376. {"Sobell Rail Yards", {2749.90,1548.90,-89.00,2923.30,1937.20,110.90}},
  7377. {"Spinybed", {2121.40,2663.10,-89.00,2498.20,2861.50,110.90}},
  7378. {"Starfish Casino", {2437.30,1783.20,-89.00,2685.10,2012.10,110.90}},
  7379. {"Starfish Casino", {2437.30,1858.10,-39.00,2495.00,1970.80,60.90}},
  7380. {"Starfish Casino", {2162.30,1883.20,-89.00,2437.30,2012.10,110.90}},
  7381. {"Temple", {1252.30,-1130.80,-89.00,1378.30,-1026.30,110.90}},
  7382. {"Temple", {1252.30,-1026.30,-89.00,1391.00,-926.90,110.90}},
  7383. {"Temple", {1252.30,-926.90,-89.00,1357.00,-910.10,110.90}},
  7384. {"Temple", {952.60,-1130.80,-89.00,1096.40,-937.10,110.90}},
  7385. {"Temple", {1096.40,-1130.80,-89.00,1252.30,-1026.30,110.90}},
  7386. {"Temple", {1096.40,-1026.30,-89.00,1252.30,-910.10,110.90}},
  7387. {"The Camel's Toe", {2087.30,1203.20,-89.00,2640.40,1383.20,110.90}},
  7388. {"The Clown's Pocket", {2162.30,1783.20,-89.00,2437.30,1883.20,110.90}},
  7389. {"The Emerald Isle", {2011.90,2202.70,-89.00,2237.40,2508.20,110.90}},
  7390. {"The Farm", {-1209.60,-1317.10,114.90,-908.10,-787.30,251.90}},
  7391. {"The Four Dragons Casino", {1817.30,863.20,-89.00,2027.30,1083.20,110.90}},
  7392. {"The High Roller", {1817.30,1283.20,-89.00,2027.30,1469.20,110.90}},
  7393. {"The Mako Span", {1664.60,401.70,0.00,1785.10,567.20,200.00}},
  7394. {"The Panopticon", {-947.90,-304.30,-1.10,-319.60,327.00,200.00}},
  7395. {"The Pink Swan", {1817.30,1083.20,-89.00,2027.30,1283.20,110.90}},
  7396. {"The Sherman Dam", {-968.70,1929.40,-3.00,-481.10,2155.20,200.00}},
  7397. {"The Strip", {2027.40,863.20,-89.00,2087.30,1703.20,110.90}},
  7398. {"The Strip", {2106.70,1863.20,-89.00,2162.30,2202.70,110.90}},
  7399. {"The Strip", {2027.40,1783.20,-89.00,2162.30,1863.20,110.90}},
  7400. {"The Strip", {2027.40,1703.20,-89.00,2137.40,1783.20,110.90}},
  7401. {"The Visage", {1817.30,1863.20,-89.00,2106.70,2011.80,110.90}},
  7402. {"The Visage", {1817.30,1703.20,-89.00,2027.40,1863.20,110.90}},
  7403. {"Unity Station", {1692.60,-1971.80,-20.40,1812.60,-1932.80,79.50}},
  7404. {"Valle Ocultado", {-936.60,2611.40,2.00,-715.90,2847.90,200.00}},
  7405. {"Verdant Bluffs", {930.20,-2488.40,-89.00,1249.60,-2006.70,110.90}},
  7406. {"Verdant Bluffs", {1073.20,-2006.70,-89.00,1249.60,-1842.20,110.90}},
  7407. {"Verdant Bluffs", {1249.60,-2179.20,-89.00,1692.60,-1842.20,110.90}},
  7408. {"Verdant Meadows", {37.00,2337.10,-3.00,435.90,2677.90,200.00}},
  7409. {"Verona Beach", {647.70,-2173.20,-89.00,930.20,-1804.20,110.90}},
  7410. {"Verona Beach", {930.20,-2006.70,-89.00,1073.20,-1804.20,110.90}},
  7411. {"Verona Beach", {851.40,-1804.20,-89.00,1046.10,-1577.50,110.90}},
  7412. {"Verona Beach", {1161.50,-1722.20,-89.00,1323.90,-1577.50,110.90}},
  7413. {"Verona Beach", {1046.10,-1722.20,-89.00,1161.50,-1577.50,110.90}},
  7414. {"Vinewood", {787.40,-1310.20,-89.00,952.60,-1130.80,110.90}},
  7415. {"Vinewood", {787.40,-1130.80,-89.00,952.60,-954.60,110.90}},
  7416. {"Vinewood", {647.50,-1227.20,-89.00,787.40,-1118.20,110.90}},
  7417. {"Vinewood", {647.70,-1416.20,-89.00,787.40,-1227.20,110.90}},
  7418. {"Whitewood Estates", {883.30,1726.20,-89.00,1098.30,2507.20,110.90}},
  7419. {"Whitewood Estates", {1098.30,1726.20,-89.00,1197.30,2243.20,110.90}},
  7420. {"Willowfield", {1970.60,-2179.20,-89.00,2089.00,-1852.80,110.90}},
  7421. {"Willowfield", {2089.00,-2235.80,-89.00,2201.80,-1989.90,110.90}},
  7422. {"Willowfield", {2089.00,-1989.90,-89.00,2324.00,-1852.80,110.90}},
  7423. {"Willowfield", {2201.80,-2095.00,-89.00,2324.00,-1989.90,110.90}},
  7424. {"Willowfield", {2541.70,-1941.40,-89.00,2703.50,-1852.80,110.90}},
  7425. {"Willowfield", {2324.00,-2059.20,-89.00,2541.70,-1852.80,110.90}},
  7426. {"Willowfield", {2541.70,-2059.20,-89.00,2703.50,-1941.40,110.90}},
  7427. {"Yellow Bell Station", {1377.40,2600.40,-21.90,1492.40,2687.30,78.00}},
  7428. // Main Zones
  7429. {"Los Santos", {44.60,-2892.90,-242.90,2997.00,-768.00,900.00}},
  7430. {"Las Venturas", {869.40,596.30,-242.90,2997.00,2993.80,900.00}},
  7431. {"Bone County", {-480.50,596.30,-242.90,869.40,2993.80,900.00}},
  7432. {"Tierra Robada", {-2997.40,1659.60,-242.90,-480.50,2993.80,900.00}},
  7433. {"Tierra Robada", {-1213.90,596.30,-242.90,-480.50,1659.60,900.00}},
  7434. {"San Fierro", {-2997.40,-1115.50,-242.90,-1213.90,1659.60,900.00}},
  7435. {"Red County", {-1213.90,-768.00,-242.90,2997.00,596.30,900.00}},
  7436. {"Flint County", {-1213.90,-2892.90,-242.90,44.60,-768.00,900.00}},
  7437. {"Whetstone", {-2997.40,-2892.90,-242.90,-1213.90,-1115.50,900.00}}
  7438. };
  7439. ShowGateEditMenu(playerid, gate)
  7440. {
  7441. new
  7442. string[32];
  7443. if (IsValidGateID(gate))
  7444. {
  7445. Players[playerid][pSelected] = gate;
  7446. format(string, sizeof(string), "{FFFFFF}Edit gate: %i", gate);
  7447. if (Gates[gate][gLinkID])
  7448. {
  7449. Dialog_Show(playerid, EditGate, DIALOG_STYLE_LIST, string, "Gate Location\nGate Position\nGate Destination\nGate Password\t\t%s\nGate Faction\t\t%s\nGate Speed\t\t%.1f\nGate Radius\t\t%.1f\nGate Linker\t\tID: %i", "Select", "Cancel", Gates[gate][gPassword], GetFactionIDName(Gates[gate][gFactionID]), Gates[gate][gSpeed], Gates[gate][gRadius], GetGateID(Gates[gate][gLinkID]));
  7450. }
  7451. else
  7452. {
  7453. Dialog_Show(playerid, EditGate, DIALOG_STYLE_LIST, string, "Gate Location\nGate Position\nGate Destination\nGate Password\t\t%s\nGate Faction\t\t%s\nGate Speed\t\t%.1f\nGate Radius\t\t%.1f\nGate Linker\t\tNot Specified", "Select", "Cancel", Gates[gate][gPassword], GetFactionIDName(Gates[gate][gFactionID]), Gates[gate][gSpeed], Gates[gate][gRadius]);
  7454. }
  7455. }
  7456. return 1;
  7457. }
  7458. GateCheck(playerid)
  7459. {
  7460. new gate = GetClosestGate(playerid);
  7461. /*if ((IsPlayerInFaction(playerid, FACTION_LEO)) && (IsPlayerInRangeOfPoint(playerid, 1.5, 1812.0830, -1545.2319, 1700.4287) || IsPlayerInRangeOfPoint(playerid, 1.5, 1810.3752, -1548.3003, 1700.4287)))
  7462. {
  7463. if (!gPrisonDoorStatus[0])
  7464. {
  7465. gPrisonDoorStatus[0] = 1;
  7466. SendInfoMessage(playerid, "You have opened the doors.");
  7467. MoveDynamicObject(gPrisonDoors[0], 1807.76147461, -1547.63208008, 1699.42480469, 0.50);
  7468. MoveDynamicObject(gPrisonDoors[1], 1812.76184082, -1547.60510254, 1699.42480469, 0.50);
  7469. }
  7470. else
  7471. {
  7472. gPrisonDoorStatus[0] = 0;
  7473. SendInfoMessage(playerid, "You have closed the doors.");
  7474. MoveDynamicObject(gPrisonDoors[0], 1808.76147461, -1547.63208008, 1699.42480469, 0.50);
  7475. MoveDynamicObject(gPrisonDoors[1], 1811.76184082, -1547.60510254, 1699.42480469, 0.50);
  7476. }
  7477. ShowActionBubble(playerid, "* %s uses their key to control the doors.", ReturnNameEx(playerid));
  7478. return 1;
  7479. }
  7480. else if ((IsPlayerInFaction(playerid, FACTION_LEO)) && (IsPlayerInRangeOfPoint(playerid, 2.0, 1812.0830,-1545.2319,1700.4287)))
  7481. {
  7482. if (!gPrisonDoorStatus[1])
  7483. {
  7484. gPrisonDoorStatus[1] = 1;
  7485. SendInfoMessage(playerid, "You have opened the doors.");
  7486. MoveDynamicObject(gPrisonDoors[2], 1812.73828125, -1545.82873535, 1699.42480469, 0.50);
  7487. MoveDynamicObject(gPrisonDoors[3], 1807.73071289, -1545.87463379, 1699.42480469, 0.50);
  7488. }
  7489. else
  7490. {
  7491. gPrisonDoorStatus[1] = 0;
  7492. SendInfoMessage(playerid, "You have closed the doors.");
  7493. MoveDynamicObject(gPrisonDoors[2], 1811.73828125, -1545.82873535, 1699.42480469, 0.50);
  7494. MoveDynamicObject(gPrisonDoors[3], 1808.73071289, -1545.87463379, 1699.42480469, 0.50);
  7495. }
  7496. ShowActionBubble(playerid, "* %s uses their key to control the doors.", ReturnNameEx(playerid));
  7497. return 1;
  7498. }
  7499. else if ((IsPlayerInFaction(playerid, FACTION_LEO)) && (IsPlayerInRangeOfPoint(playerid, 3.0, 1797.00830078, -1525.15258789, 1699.42480469) || IsPlayerInRangeOfPoint(playerid, 3.0, 1793.6631, -1523.9191, 1700.4287)))
  7500. {
  7501. if (!gPrisonDoorStatus[2])
  7502. {
  7503. gPrisonDoorStatus[2] = 1;
  7504. SendInfoMessage(playerid, "You have opened the doors.");
  7505. MoveDynamicObject(gPrisonDoors[4], 1798.00830078, -1525.15258789, 1699.42480469, 0.50);
  7506. MoveDynamicObject(gPrisonDoors[5], 1793.00976562, -1525.18676758, 1699.42480469, 0.50);
  7507. }
  7508. else
  7509. {
  7510. gPrisonDoorStatus[2] = 0;
  7511. SendInfoMessage(playerid, "You have closed the doors.");
  7512. MoveDynamicObject(gPrisonDoors[4], 1797.00830078, -1525.15258789, 1699.42480469, 0.50);
  7513. MoveDynamicObject(gPrisonDoors[5], 1794.00976562, -1525.18676758, 1699.42480469, 0.50);
  7514. }
  7515. ShowActionBubble(playerid, "* %s uses their key to control the doors.", ReturnNameEx(playerid));
  7516. return 1;
  7517. }
  7518. else */
  7519. if (IsValidGateID(gate))
  7520. {
  7521. if (!isnull(Gates[gate][gPassword]) && !Gates[gate][gOpened])
  7522. {
  7523. Dialog_Show(playerid, OpenGate, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Password", "Please input the password of this gate:", "Submit", "Cancel");
  7524. }
  7525. else if (Gates[gate][gFactionID] > 0 && GetFactionID(Gates[gate][gFactionID]) != Players[playerid][pFaction])
  7526. {
  7527. SendErrorMessage(playerid, "You don't have the remote to this gate.");
  7528. }
  7529. else
  7530. {
  7531. OpenGate(playerid, gate);
  7532. }
  7533. return 1;
  7534. }
  7535. return 0;
  7536. }
  7537. OpenGate(playerid, gate)
  7538. {
  7539. if (IsValidGateID(gate))
  7540. {
  7541. GateHandler(gate);
  7542. if (Gates[gate][gLinkID] > 0) GateHandler(GetGateID(Gates[gate][gLinkID]));
  7543. if (Gates[gate][gOpened])
  7544. {
  7545. SendInfoMessage(playerid, "You have opened the gate.");
  7546. }
  7547. else
  7548. {
  7549. SendInfoMessage(playerid, "You have closed the gate.");
  7550. }
  7551. //ShowActionBubble(playerid, "* %s presses a button to control the gate.", ReturnNameEx(playerid));
  7552. }
  7553. }
  7554. GateHandler(gate)
  7555. {
  7556. if (IsValidGateID(gate))
  7557. {
  7558. Gates[gate][gOpened] = !Gates[gate][gOpened];
  7559. if (Gates[gate][gOpened])
  7560. {
  7561. MoveDynamicObject(Gates[gate][gObject], Gates[gate][gMove][0], Gates[gate][gMove][1], Gates[gate][gMove][2], Gates[gate][gSpeed], Gates[gate][gMove][3], Gates[gate][gMove][4], Gates[gate][gMove][5]);
  7562. }
  7563. else
  7564. {
  7565. MoveDynamicObject(Gates[gate][gObject], Gates[gate][gSpawn][0], Gates[gate][gSpawn][1], Gates[gate][gSpawn][2], Gates[gate][gSpeed], Gates[gate][gSpawn][3], Gates[gate][gSpawn][4], Gates[gate][gSpawn][5]);
  7566. }
  7567. }
  7568. }
  7569. UpdateGate(gate)
  7570. {
  7571. if (!Gates[gate][gExists]) return 0;
  7572. DestroyDynamicObject(Gates[gate][gObject]);
  7573. Gates[gate][gObject] = CreateDynamicObject(Gates[gate][gModel], Gates[gate][gSpawn][0], Gates[gate][gSpawn][1], Gates[gate][gSpawn][2], Gates[gate][gSpawn][3], Gates[gate][gSpawn][4], Gates[gate][gSpawn][5], Gates[gate][gWorld], Gates[gate][gInterior]);
  7574. Gates[gate][gOpened] = 0;
  7575. if (Gates[gate][gLinkID] > 0)
  7576. {
  7577. UpdateGate(GetGateID(Gates[gate][gLinkID]));
  7578. }
  7579. return 1;
  7580. }
  7581. GetGateID(id) // id = SQL id
  7582. {
  7583. for (new i = 0; i < MAX_GATES; i ++)
  7584. {
  7585. if (IsValidGateID(i) && Gates[i][gID] == id)
  7586. {
  7587. return i;
  7588. }
  7589. }
  7590. return INVALID_ID;
  7591. }
  7592. SaveGate(gate)
  7593. {
  7594. static
  7595. queryString[1024];
  7596. if (!Gates[gate][gExists]) return 0;
  7597. format(queryString, sizeof(queryString), "UPDATE rp_gates SET gModel = %i, gPassword = '%s', gSpeed = %.4f, gRadius = %.4f, gFactionID = %i, gLinkID = %i, gX = %.4f, gY = %.4f, gZ = %.4f, gRX = %.4f, gRY = %.4f, gRZ = %.4f",
  7598. Gates[gate][gModel],
  7599. mysql_escaped(Gates[gate][gPassword]),
  7600. Gates[gate][gSpeed],
  7601. Gates[gate][gRadius],
  7602. Gates[gate][gFactionID],
  7603. Gates[gate][gLinkID],
  7604. Gates[gate][gSpawn][0],
  7605. Gates[gate][gSpawn][1],
  7606. Gates[gate][gSpawn][2],
  7607. Gates[gate][gSpawn][3],
  7608. Gates[gate][gSpawn][4],
  7609. Gates[gate][gSpawn][5]
  7610. );
  7611. format(queryString, sizeof(queryString), "%s, gMoveX = %.4f, gMoveY = %.4f, gMoveZ = %.4f, gMoveRX = %.4f, gMoveRY = %.4f, gMoveRZ = %.4f, gInterior = %i, gWorld = %i WHERE gID = %i",
  7612. queryString,
  7613. Gates[gate][gMove][0],
  7614. Gates[gate][gMove][1],
  7615. Gates[gate][gMove][2],
  7616. Gates[gate][gMove][3],
  7617. Gates[gate][gMove][4],
  7618. Gates[gate][gMove][5],
  7619. Gates[gate][gInterior],
  7620. Gates[gate][gWorld],
  7621. Gates[gate][gID]
  7622. );
  7623. return mysql_tquery(gConnection, queryString);
  7624. }
  7625. GetClosestGate(playerid)
  7626. {
  7627. for (new i = 0; i < MAX_GATES; i ++)
  7628. {
  7629. if (Gates[i][gExists] && IsPlayerNearPoint(playerid, Gates[i][gRadius], Gates[i][gSpawn][0], Gates[i][gSpawn][1], Gates[i][gSpawn][2], Gates[i][gInterior], Gates[i][gWorld]))
  7630. {
  7631. return i;
  7632. }
  7633. }
  7634. return INVALID_ID;
  7635. }
  7636. strreplace(string[], const search[], const replace[], max_len = sizeof(string))
  7637. {
  7638. new
  7639. pos = -1;
  7640. while ((pos = strfind(string, search)) != -1)
  7641. {
  7642. strdel(string, pos, pos + strlen(search));
  7643. strins(string, replace, pos, max_len);
  7644. }
  7645. }
  7646. ShowTeleportList(playerid, delete=0)
  7647. {
  7648. new
  7649. index;
  7650. gListString[0] = 0;
  7651. for (new i = 0; i < MAX_ADMIN_TELEPORTS; i ++)
  7652. {
  7653. if (Teleports[i][tpExists])
  7654. {
  7655. format(gListString, sizeof(gListString), "%s\n%s", gListString, Teleports[i][tpName]);
  7656. gListedItems[playerid][index++] = i;
  7657. }
  7658. }
  7659. if (index)
  7660. {
  7661. if (delete)
  7662. {
  7663. return Dialog_Show(playerid, DeleteTeleports, DIALOG_STYLE_LIST, "{FFFFFF}Delete Teleports", gListString, "Delete", "Cancel");
  7664. }
  7665. else
  7666. {
  7667. return Dialog_Show(playerid, Teleports, DIALOG_STYLE_LIST, "{FFFFFF}List of Teleports", gListString, "Teleport", "Cancel");
  7668. }
  7669. }
  7670. return 0;
  7671. }
  7672. ShowInteriorList(playerid)
  7673. {
  7674. static
  7675. s_InteriorList[4096]
  7676. ;
  7677. if (!strlen(s_InteriorList))
  7678. {
  7679. for (new i = 0; i < sizeof(g_Interiors); i ++)
  7680. {
  7681. strcat(s_InteriorList, g_Interiors[i][e_InteriorName]);
  7682. strcat(s_InteriorList, "\n");
  7683. }
  7684. }
  7685. Dialog_Show(playerid, TeleportInt, DIALOG_STYLE_LIST, "{FFFFFF}Teleport to interior", s_InteriorList, "Teleport", "Cancel");
  7686. }
  7687. ShowFAQMenu(playerid)
  7688. {
  7689. Dialog_Show(playerid, FAQ, DIALOG_STYLE_LIST, "{FFFFFF}FAQ and Guide", "Fitness system\nWeapon management\nItem management\nBank accounts\nBuying a vehicle\nFinding a job\nAuto shops\nInteractive keys\nDrug system", "Select", "Back");
  7690. }
  7691. ShowAnimationList(playerid)
  7692. {
  7693. SendClientMessage(playerid, COLOR_GREY, "-------------------------------------------------------------------------------------------------------------------------------");
  7694. SendClientMessage(playerid, COLOR_GREY, "Animations:{FFFFFF} /bar, /kiss, /wash, /lay, /blowjob, /bomb, /basketball, /camera.");
  7695. SendClientMessage(playerid, COLOR_GREY, "Animations:{FFFFFF} /carry, /crack, /chat, /think, /dance, /deal, /eat, /lean, /facepalm.");
  7696. SendClientMessage(playerid, COLOR_GREY, "Animations:{FFFFFF} /gsign, /spraycan, /throw, /boxing, /cpr, /swipe, /sit, /point.");
  7697. SendClientMessage(playerid, COLOR_GREY, "Animations:{FFFFFF} /taichi, /wank, /cover, /fucku, /getup, /tired, /wave, /doorkick.");
  7698. SendClientMessage(playerid, COLOR_GREY, "Animations:{FFFFFF} /laugh, /cry, /what, /rap, /riot, /injured, /fall, /crossarms.");
  7699. SendClientMessage(playerid, COLOR_GREY, "Animations:{FFFFFF} /reload, /aim, /salute, /scratch, /dodge, /showoff, /hitch, /puke.");
  7700. SendClientMessage(playerid, COLOR_GREY, "Animations:{FFFFFF} /come, /walk, /drunk, /handsup, /checktime, /piss, /stopanim.");
  7701. SendClientMessage(playerid, COLOR_GREY, "Animations:{FFFFFF} /smoke,");
  7702. SendClientMessage(playerid, COLOR_GREY, "-------------------------------------------------------------------------------------------------------------------------------");
  7703. }
  7704. /*
  7705. enum e_Callsigns
  7706. {
  7707. e_CallsignID,
  7708. // 1-LSPD
  7709. e_CallsignFaction,
  7710. // Text of the callsign
  7711. e_CallsignTextShort[32],
  7712. // Text of the callsign
  7713. e_CallsignTextFull[64]
  7714. };
  7715. new g_Callsigns[][e_Callsigns] =
  7716. {
  7717. {0, 1, "1-A-1", "1-Adam-1"},
  7718. g_CompanyItems[i][e_ItemName]
  7719. for (new i = 0; i < sizeof(g_CompanyItems); i ++)
  7720. {
  7721. if (Companies[company][cType] == g_CompanyItems[i][e_CompanyType])
  7722. {
  7723. if (g_CompanyItems[i][e_IsStockable])
  7724. {
  7725. if (Products[company][index][prStock] > 0)
  7726. {
  7727. format(string, sizeof(string), "%s\nIn Stock\tItem: %s (%s)", string, g_CompanyItems[i][e_ItemName], FormatNumber(Products[company][index][prPrice]));
  7728. */
  7729. /*ShowCallsignMenu(playerid)
  7730. {
  7731. new string[2048];
  7732. format(string, sizeof(string), "In use by\tShort\tLong");
  7733. for (new i = 0; i < sizeof(g_Callsigns); i ++)
  7734. {
  7735. if(g_Callsigns[i][e_CallsignFaction] == 1)
  7736. {
  7737. if (g_Callsigns[i][e_CallsignTakenBy] == INVALID_ID)
  7738. {
  7739. format(string, sizeof(string), "%s\nNobody\t%s\t%s", string, g_Callsigns[i][e_CallsignTextShort], g_Callsigns[i][e_CallsignTextFull]);
  7740. }
  7741. else
  7742. {
  7743. format(string, sizeof(string), "%s\n%s\t%s\t%s", string, ReturnNameEx(g_Callsigns[i][e_CallsignTakenBy], 0), g_Callsigns[i][e_CallsignTextShort], g_Callsigns[i][e_CallsignTextFull]);
  7744. }
  7745. }
  7746. }
  7747. Dialog_Show(playerid, MDC_CallsignMenu, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}MDC - Callsigns", string, "Select", "Cancel");
  7748. }*/
  7749. ShowNewMDCMenu(playerid)
  7750. {
  7751. Dialog_Show(playerid, MDC_MainMenu, DIALOG_STYLE_LIST, "{FFFFFF}Mobile Data Computer - Main Menu", "MAIN SCREEN\nNAME SEARCH\nPLATE SEARCH\nSERIAL SEARCH\nADDRESS SEARCH\nLAST 911\nCALLSIGNS", "Login", "Exit");
  7752. }
  7753. ShowNewMDC(playerid)
  7754. {
  7755. new string[256];
  7756. format(string, sizeof(string), "%s %s\n\nOFFICERS ON DUTY: %i\nCALLS LAST HOUR: %i\nARRESTS LAST HOUR: %i", GetPlayerFactionRank(playerid), ReturnNameEx(playerid), GetFactionOnlineMembers(Players[playerid][pFaction]), gCallsHour, gArrestsHour);
  7757. Dialog_Show(playerid, MDC_Login, DIALOG_STYLE_MSGBOX, "{FFFFFF}Mobile Data Computer", string, "Login", "Exit");
  7758. }
  7759. ShowMDCMainMenu(playerid)
  7760. {
  7761. Dialog_Show(playerid, MDC, DIALOG_STYLE_LIST, "{FFFFFF}Mobile Data Computer", "Search Player\nList APBs\nTrace Plate\nTrace Serial\nFind Address", "Select", "Cancel");
  7762. }
  7763. ShowMDCLookupPlayer(playerid)
  7764. {
  7765. if (!isnull(gTargetName[playerid]))
  7766. {
  7767. format(gExecute, sizeof(gExecute), "SELECT ID, Age, Origin, Warrants, Charges, PhoneLastKnown, CarLicense, GunLicense, TotalWarrants FROM rp_accounts WHERE Username = '%s'", gTargetName[playerid]);
  7768. mysql_tquery(gConnection, gExecute, "OnMDCViewInformationNew", "i", playerid);
  7769. }
  7770. }
  7771. ShowMDCPlayerMenu(playerid)
  7772. {
  7773. if (!isnull(gTargetName[playerid]))
  7774. {
  7775. new
  7776. string[MAX_PLAYER_NAME + 8];
  7777. format(string, sizeof(string), "{FFFFFF}%s", gTargetName[playerid]);
  7778. Dialog_Show(playerid, MDCPlayer, DIALOG_STYLE_LIST, string, "Add Warrant\nList Warrants\nClear Warrants\nInformation", "Select", "Cancel");
  7779. }
  7780. }
  7781. ShowMDCPlayerMenuNew(playerid)
  7782. {
  7783. if (!isnull(gTargetName[playerid]))
  7784. {
  7785. new
  7786. string[MAX_PLAYER_NAME + 8];
  7787. format(string, sizeof(string), "{FFFFFF}%s", gTargetName[playerid]);
  7788. Dialog_Show(playerid, MDCPlayerNew, DIALOG_STYLE_LIST, string, "View Information\nPrint Information\nManage Warrants\nManage Licenses\nManage Charges\nArrest Record", "Select", "Cancel");
  7789. }
  7790. }
  7791. GetHouseOwnerID(house)
  7792. {
  7793. foreach (new i : Player)
  7794. {
  7795. if (IsPlayerLoggedIn(i) && Players[i][pID] == Houses[house][hOwner])
  7796. {
  7797. return i;
  7798. }
  7799. }
  7800. return INVALID_PLAYER_ID;
  7801. }
  7802. ResetHotwiring(playerid)
  7803. {
  7804. if (Players[playerid][pHotwire] != INVALID_VEHICLE_ID)
  7805. {
  7806. SetAlarmStatus(Players[playerid][pHotwire], false);
  7807. HideFooterText(playerid);
  7808. Players[playerid][pHotwire] = INVALID_VEHICLE_ID;
  7809. Players[playerid][pHotwireTime] = 0;
  7810. }
  7811. }
  7812. ResetLastShots(playerid)
  7813. {
  7814. for (new i = BODY_PART_TORSO; i <= BODY_PART_HEAD; i ++) {
  7815. LastShots[playerid][i][lWeaponID] = 0;
  7816. LastShots[playerid][i][lWeaponShots] = 0;
  7817. }
  7818. }
  7819. GetNextUniform(faction, index)
  7820. {
  7821. index++;
  7822. if (index >= MAX_FACTION_UNIFORMS) {
  7823. index = 0;
  7824. }
  7825. for (new i = index; i < MAX_FACTION_UNIFORMS; i ++)
  7826. {
  7827. if (Factions[faction][fcUniforms][i] > 0) {
  7828. return i;
  7829. }
  7830. }
  7831. return 0;
  7832. }
  7833. GetPreviousUniform(faction, index)
  7834. {
  7835. if (index - 1 < 0) {
  7836. index = MAX_FACTION_UNIFORMS;
  7837. }
  7838. for (new i = index; --i >= 0; )
  7839. {
  7840. if (Factions[faction][fcUniforms][i] > 0) {
  7841. return i;
  7842. }
  7843. }
  7844. return 0;
  7845. }
  7846. HandleOutfitNavigation(playerid, lr)
  7847. {
  7848. if (lr == KEY_LEFT)
  7849. {
  7850. if (--Players[playerid][pOutfitIndex] < 0)
  7851. {
  7852. Players[playerid][pOutfitIndex] = sizeof(g_ValidSkinModels) - 1;
  7853. }
  7854. PlayerPlaySound(playerid, 1053, 0.0, 0.0, 0.0);
  7855. UpdateOutfitSelection(playerid);
  7856. }
  7857. else if (lr == KEY_RIGHT)
  7858. {
  7859. if (++Players[playerid][pOutfitIndex] == sizeof(g_ValidSkinModels))
  7860. {
  7861. Players[playerid][pOutfitIndex] = 0;
  7862. }
  7863. PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
  7864. UpdateOutfitSelection(playerid);
  7865. }
  7866. }
  7867. HandleUniformNavigation(playerid, lr)
  7868. {
  7869. if (lr == KEY_LEFT)
  7870. {
  7871. Players[playerid][pUniformIndex] = GetPreviousUniform(Players[playerid][pFaction], Players[playerid][pUniformIndex]);
  7872. SetPlayerSkin(playerid, Factions[Players[playerid][pFaction]][fcUniforms][Players[playerid][pUniformIndex]]);
  7873. PlayerPlaySound(playerid, 1053, 0.0, 0.0, 0.0);
  7874. }
  7875. else if (lr == KEY_RIGHT)
  7876. {
  7877. Players[playerid][pUniformIndex] = GetNextUniform(Players[playerid][pFaction], Players[playerid][pUniformIndex]);
  7878. SetPlayerSkin(playerid, Factions[Players[playerid][pFaction]][fcUniforms][Players[playerid][pUniformIndex]]);
  7879. PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
  7880. }
  7881. }
  7882. IsLockerSetup(faction)
  7883. {
  7884. return !(Factions[faction][fcLockerX] == 0.0 && Factions[faction][fcLockerY] == 0.0 && Factions[faction][fcLockerZ] == 0.0);
  7885. }
  7886. SetupUniformSelection(playerid)
  7887. {
  7888. if (Players[playerid][pFaction] != INVALID_ID)
  7889. {
  7890. new index = GetFirstUniform(Players[playerid][pFaction]);
  7891. if (index == INVALID_ID) return 0;
  7892. Players[playerid][pSelectUniform] = 1;
  7893. Players[playerid][pUniformIndex] = index;
  7894. Players[playerid][pUniformTick] = 0;
  7895. SetPlayerSkin(playerid, Factions[Players[playerid][pFaction]][fcUniforms][index]);
  7896. TogglePlayerControllable(playerid, false);
  7897. }
  7898. return 1;
  7899. }
  7900. GetFirstUniform(faction)
  7901. {
  7902. for (new i = 0; i < MAX_FACTION_UNIFORMS; i ++)
  7903. {
  7904. if (Factions[faction][fcUniforms][i] > 0)
  7905. {
  7906. return i;
  7907. }
  7908. }
  7909. return INVALID_ID;
  7910. }
  7911. GetFactionWeaponRights(faction, type)
  7912. {
  7913. new package, string[32];
  7914. if (type == 0) {
  7915. package = PACKAGE_TYPE_MELEE;
  7916. } else if (type == 1) {
  7917. package = PACKAGE_TYPE_PISTOLS;
  7918. } else if (type == 2) {
  7919. package = PACKAGE_TYPE_SHOTGUNS;
  7920. } else if (type == 3) {
  7921. package = PACKAGE_TYPE_SMGS;
  7922. } else if (type == 4) {
  7923. package = PACKAGE_TYPE_RIFLES;
  7924. } else if (type == 5) {
  7925. package = PACKAGE_TYPE_EXPLOSIVES;
  7926. }
  7927. if (Factions[faction][fcWeaponRights][type])
  7928. format(string, sizeof(string), "{33CC33}%s{FFFFFF}", FormatNumber(GetPackagePrice(package)));
  7929. else
  7930. string = "{FF5030}Not Available{FFFFFF}";
  7931. return string;
  7932. }
  7933. GetFactionEmbedColor(faction)
  7934. {
  7935. new
  7936. string[32],
  7937. color;
  7938. color = Factions[faction][fcColor] >>> 8;
  7939. if (color) {
  7940. format(string, sizeof(string), "{%06x}#%06x", color, color);
  7941. } else {
  7942. string = "N/A";
  7943. }
  7944. return string;
  7945. }
  7946. UpdateFaction(faction)
  7947. {
  7948. if (!IsValidFactionID(faction)) return 0;
  7949. new string[32];
  7950. DestroyDynamicPickup(Factions[faction][fcPickup]);
  7951. DestroyDynamic3DTextLabel(Factions[faction][fcText]);
  7952. if (IsLockerSetup(faction))
  7953. {
  7954. format(string, sizeof(string), "(ID) %i\nPress Y to access locker", faction);
  7955. Factions[faction][fcPickup] = CreateDynamicPickup(1239, 23, Factions[faction][fcLockerX], Factions[faction][fcLockerY], Factions[faction][fcLockerZ], Factions[faction][fcLockerWorld], Factions[faction][fcLockerInt]);
  7956. Factions[faction][fcText] = CreateDynamic3DTextLabel(string, -1, Factions[faction][fcLockerX], Factions[faction][fcLockerY], Factions[faction][fcLockerZ], 10.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Factions[faction][fcLockerWorld], Factions[faction][fcLockerInt]);
  7957. }
  7958. return 1;
  7959. }
  7960. SaveFactionEquipment(faction, index)
  7961. {
  7962. static
  7963. queryString[192];
  7964. if(!IsValidFactionID(faction)) return 0;
  7965. mysql_format(gConnection, queryString, sizeof(queryString), "INSERT INTO rp_factionequipment (itemFactionID, itemSlot, itemName, itemValue) VALUES(%i, %i, '%e', %i) ON DUPLICATE KEY UPDATE itemName = '%e', itemValue = %i", Factions[faction][fcID], index, FactionEquipment[faction][index][fcItemName], FactionEquipment[faction][index][fcItemValue], FactionEquipment[faction][index][fcItemName], FactionEquipment[faction][index][fcItemValue]);
  7966. mysql_tquery(gConnection, queryString);
  7967. return 1;
  7968. }
  7969. SaveFactionAccessory(faction, index)
  7970. {
  7971. static
  7972. queryString[256];
  7973. if(!IsValidFactionID(faction)) return 0;
  7974. mysql_format(gConnection, queryString, sizeof(queryString), "INSERT INTO rp_factionaccessories (accessoryFactionID, accessorySlot, accessoryName, accessoryModel, accessoryBone) VALUES(%i, %i, '%e', %i, %i) ON DUPLICATE KEY UPDATE accessoryName = '%e', accessoryModel = %i, accessoryBone = %i",
  7975. Factions[faction][fcID], index, FactionAccessories[faction][index][fcAccessoryName], FactionAccessories[faction][index][fcAccessoryModel], FactionAccessories[faction][index][fcAccessoryBone], FactionAccessories[faction][index][fcAccessoryName], FactionAccessories[faction][index][fcAccessoryModel], FactionAccessories[faction][index][fcAccessoryBone]);
  7976. mysql_tquery(gConnection, queryString);
  7977. return 1;
  7978. }
  7979. SaveFactionUniform(faction, index)
  7980. {
  7981. static
  7982. queryString[192];
  7983. if (!IsValidFactionID(faction)) return 0;
  7984. format(queryString, sizeof(queryString), "INSERT INTO rp_factionskins (uniformFactionID, uniformNumber, uniformSkin) VALUES(%i, %i, %i) ON DUPLICATE KEY UPDATE uniformSkin = %i", Factions[faction][fcID], index, Factions[faction][fcUniforms][index], Factions[faction][fcUniforms][index]);
  7985. mysql_tquery(gConnection, queryString);
  7986. return 1;
  7987. }
  7988. SaveFactionRank(faction, index)
  7989. {
  7990. static
  7991. queryString[512];
  7992. if (!IsValidFactionID(faction)) return 0;
  7993. format(queryString, sizeof(queryString), "INSERT INTO rp_factionranks (rankFactionID, rankNumber, rankName, rankPaycheck) VALUES(%i, %i, '%s', %i) ON DUPLICATE KEY UPDATE rankName = '%s', rankPaycheck = %i", Factions[faction][fcID], index, Ranks[faction][index], Factions[faction][fcPaycheck][index], Ranks[faction][index], Factions[faction][fcPaycheck][index]);
  7994. mysql_tquery(gConnection, queryString);
  7995. return 1;
  7996. }
  7997. SaveFaction(faction)
  7998. {
  7999. static
  8000. queryString[1024];
  8001. if (!IsValidFactionID(faction)) return 0;
  8002. format(queryString, sizeof(queryString), "UPDATE rp_factions SET fcName = '%s', fcType = %i, fcColor = %i, fcMaxRanks = %i, fcLockerX = %.f, fcLockerY = %.4f, fcLockerZ = %.4f, fcLockerInt = %i, fcLockerWorld = %i, fcMeleeRights = %i, fcPistolRights = %i, fcShotgunRights = %i, fcSMGRights = %i, fcRifleRights = %i, fcDrugRights = %i, fcSprayRights = %i, fcSpawnX = '%f', fcSpawnY = '%f', fcSpawnZ = '%f', fcSpawnA = '%f', fcSpawnInt = %i, fcSpawnWorld = %i WHERE fcID = %i",
  8003. mysql_escaped(Factions[faction][fcName]),
  8004. Factions[faction][fcType],
  8005. Factions[faction][fcColor],
  8006. Factions[faction][fcMaxRanks],
  8007. Factions[faction][fcLockerX],
  8008. Factions[faction][fcLockerY],
  8009. Factions[faction][fcLockerZ],
  8010. Factions[faction][fcLockerInt],
  8011. Factions[faction][fcLockerWorld],
  8012. Factions[faction][fcWeaponRights][0],
  8013. Factions[faction][fcWeaponRights][1],
  8014. Factions[faction][fcWeaponRights][2],
  8015. Factions[faction][fcWeaponRights][3],
  8016. Factions[faction][fcWeaponRights][4],
  8017. Factions[faction][fcDrugRights],
  8018. Factions[faction][fcSprayRights],
  8019. Factions[faction][fcSpawnX],
  8020. Factions[faction][fcSpawnY],
  8021. Factions[faction][fcSpawnZ],
  8022. Factions[faction][fcSpawnA],
  8023. Factions[faction][fcSpawnInt],
  8024. Factions[faction][fcSpawnWorld],
  8025. Factions[faction][fcID]
  8026. );
  8027. return mysql_tquery(gConnection, queryString);
  8028. }
  8029. GetFactionRankPay(faction, rank)
  8030. {
  8031. if (IsValidFactionID(faction) && (1 <= rank <= Factions[faction][fcMaxRanks]))
  8032. {
  8033. return Factions[faction][fcPaycheck][--rank];
  8034. }
  8035. return 0;
  8036. }
  8037. GetFactionRank(faction, rank)
  8038. {
  8039. new
  8040. name[MAX_RANK_NAME];
  8041. name = "Unspecified";
  8042. if (IsValidFactionID(faction) && (1 <= rank <= Factions[faction][fcMaxRanks]))
  8043. {
  8044. rank--;
  8045. if (!isnull(Ranks[faction][rank]))
  8046. {
  8047. strcpy(name, Ranks[faction][rank]);
  8048. }
  8049. }
  8050. return name;
  8051. }
  8052. GetPlayerFactionName(playerid)
  8053. {
  8054. new
  8055. name[32];
  8056. if (Players[playerid][pFaction] != INVALID_ID)
  8057. {
  8058. strcpy(name, Factions[Players[playerid][pFaction]][fcName]);
  8059. }
  8060. else
  8061. {
  8062. name = "No Faction";
  8063. }
  8064. return name;
  8065. }
  8066. GetPlayerFactionType(playerid)
  8067. {
  8068. if (Players[playerid][pFaction] != INVALID_ID)
  8069. {
  8070. return Factions[Players[playerid][pFaction]][fcType];
  8071. }
  8072. return 0;
  8073. }
  8074. GetPlayerFactionRank(playerid)
  8075. {
  8076. new name[MAX_RANK_NAME] = "Unspecified";
  8077. if (Players[playerid][pFaction] != INVALID_ID)
  8078. {
  8079. strcpy(name, Ranks[Players[playerid][pFaction]][Players[playerid][pFactionRank] - 1]);
  8080. if (isnull(name))
  8081. {
  8082. name = "Unspecified";
  8083. }
  8084. }
  8085. return name;
  8086. }
  8087. GetPlayerFactionID(playerid)
  8088. {
  8089. for (new i = 0; i < MAX_FACTIONS; i ++)
  8090. {
  8091. if (IsValidFactionID(i) && Factions[i][fcID] == Players[playerid][pFactionID])
  8092. {
  8093. return i;
  8094. }
  8095. }
  8096. return INVALID_ID;
  8097. }
  8098. GetFactionID(id) // id = SQL id
  8099. {
  8100. for (new i = 0; i < MAX_FACTIONS; i ++)
  8101. {
  8102. if (IsValidFactionID(i) && Factions[i][fcID] == id)
  8103. {
  8104. return i;
  8105. }
  8106. }
  8107. return INVALID_ID;
  8108. }
  8109. ClearTrunkItems(vehicle)
  8110. {
  8111. for (new i = 0; i < MAX_STORED_ITEMS; i ++)
  8112. {
  8113. if (StoredItems[i][stExists] && StoredItems[i][stVehicle] == Vehicles[vehicle][vID])
  8114. {
  8115. StoredItems[i][stExists] = 0;
  8116. StoredItems[i][stVehicle] = 0;
  8117. }
  8118. }
  8119. format(gExecute, sizeof(gExecute), "DELETE FROM rp_items WHERE itemVehicleID = %i", Vehicles[vehicle][vID]);
  8120. mysql_tquery(gConnection, gExecute);
  8121. }
  8122. ClearTrashbinItems(trashbin)
  8123. {
  8124. for (new i = 0; i < MAX_STORED_ITEMS; i ++)
  8125. {
  8126. if (StoredItems[i][stExists] && StoredItems[i][stTrashbin] == Trashbins[trashbin][tID])
  8127. {
  8128. StoredItems[i][stExists] = 0;
  8129. StoredItems[i][stTrashbin] = 0;
  8130. }
  8131. }
  8132. format(gExecute, sizeof(gExecute), "DELETE FROM rp_items WHERE itemTrashbinID = %i", Trashbins[trashbin][tID]);
  8133. mysql_tquery(gConnection, gExecute);
  8134. }
  8135. ClearSafeItems(safe)
  8136. {
  8137. for (new i = 0; i < MAX_STORED_ITEMS; i ++)
  8138. {
  8139. if (StoredItems[i][stExists] && StoredItems[i][stFurniture] == Furniture[safe][fID])
  8140. {
  8141. StoredItems[i][stExists] = 0;
  8142. StoredItems[i][stFurniture] = 0;
  8143. }
  8144. }
  8145. format(gExecute, sizeof(gExecute), "DELETE FROM rp_items WHERE itemFurnitureID = %i", Furniture[safe][fID]);
  8146. mysql_tquery(gConnection, gExecute);
  8147. }
  8148. ClearFactionVehicles(faction)
  8149. {
  8150. for (new i = 0; i < MAX_CARS; i ++)
  8151. {
  8152. if (IsValidVehicleID(i) && Vehicles[i][vFaction] == Factions[faction][fcID])
  8153. {
  8154. DestroyVehicleEx(Vehicles[i][vVehicle]);
  8155. Vehicles[i][vExists] = 0;
  8156. Vehicles[i][vVehicle] = INVALID_VEHICLE_ID;
  8157. }
  8158. }
  8159. format(gExecute, sizeof(gExecute), "DELETE FROM rp_vehicles WHERE vFaction = %i", Factions[faction][fcID]);
  8160. mysql_tquery(gConnection, gExecute);
  8161. }
  8162. RespawnFactionVehicles(faction)
  8163. {
  8164. for (new i = 0; i < MAX_CARS; i ++)
  8165. {
  8166. if (IsValidVehicleID(i) && Vehicles[i][vFaction] == Factions[faction][fcID])
  8167. {
  8168. SetVehicleToRespawn(Vehicles[i][vVehicle]);
  8169. }
  8170. }
  8171. }
  8172. ClearFactionGates(faction)
  8173. {
  8174. for (new i = 0; i < MAX_GATES; i ++)
  8175. {
  8176. if (IsValidGateID(i) && Gates[i][gFactionID] == Factions[faction][fcID])
  8177. {
  8178. DestroyDynamicObject(Gates[i][gObject]);
  8179. Gates[i][gExists] = 0;
  8180. Gates[i][gObject] = INVALID_OBJECT_ID;
  8181. }
  8182. }
  8183. format(gExecute, sizeof(gExecute), "DELETE FROM rp_gates WHERE gFactionID = %i", Factions[faction][fcID]);
  8184. mysql_tquery(gConnection, gExecute);
  8185. }
  8186. ResetFaction(faction)
  8187. {
  8188. for (new i = 0; i < 5; i ++) {
  8189. Factions[faction][fcWeaponRights][i] = 0;
  8190. }
  8191. for (new i = 0; i < MAX_FACTION_RANKS; i ++) {
  8192. Factions[faction][fcPaycheck][i] = 0;
  8193. }
  8194. for (new i = 0; i < MAX_FACTION_UNIFORMS; i ++) {
  8195. Factions[faction][fcUniforms][i] = 0;
  8196. }
  8197. DestroyDynamicPickup(Factions[faction][fcPickup]);
  8198. DestroyDynamic3DTextLabel(Factions[faction][fcText]);
  8199. Factions[faction][fcID] = 0;
  8200. Factions[faction][fcExists] = 0;
  8201. Factions[faction][fcType] = 0;
  8202. Factions[faction][fcColor] = -1;
  8203. Factions[faction][fcMaxRanks] = 5;
  8204. Factions[faction][fcLockerX] = 0.0;
  8205. Factions[faction][fcLockerY] = 0.0;
  8206. Factions[faction][fcLockerZ] = 0.0;
  8207. Factions[faction][fcLockerInt] = 0;
  8208. Factions[faction][fcLockerWorld] = 0;
  8209. Factions[faction][fcDrugRights] = 0;
  8210. Factions[faction][fcSprayRights] = 0;
  8211. Factions[faction][fcSpawnX] = 0.0;
  8212. Factions[faction][fcSpawnY] = 0.0;
  8213. Factions[faction][fcSpawnZ] = 0.0;
  8214. Factions[faction][fcSpawnA] = 0.0;
  8215. Factions[faction][fcSpawnInt] = 0;
  8216. Factions[faction][fcSpawnWorld] = 0;
  8217. Factions[faction][fcPickup] = INVALID_ID;
  8218. Factions[faction][fcText] = INVALID_3DTEXT_ID;
  8219. }
  8220. FormatSerial(serial)
  8221. {
  8222. new
  8223. string[8];
  8224. if (serial)
  8225. {
  8226. format(string, sizeof(string), "%i", serial);
  8227. }
  8228. else
  8229. {
  8230. string = "XXXXX";
  8231. }
  8232. return string;
  8233. }
  8234. SetPlayerValidArmor(playerid, Float:amount)
  8235. {
  8236. if (IsPlayerConnected(playerid))
  8237. {
  8238. Players[playerid][pArmor] = amount;
  8239. Players[playerid][pAnticheat] = 2;
  8240. if (amount >= 100.0) {
  8241. amount = 99.0;
  8242. }
  8243. else if (amount < 0.0) {
  8244. amount = 0.0;
  8245. }
  8246. return SetPlayerArmour(playerid, amount);
  8247. }
  8248. return 0;
  8249. }
  8250. UpdateMaskForPlayer(playerid)
  8251. {
  8252. foreach (new i : Player)
  8253. {
  8254. //if (Players[playerid][pMaskID] > 0)
  8255. UpdateNameTag(playerid, 2);
  8256. //ShowPlayerNameTagForPlayer(i, playerid, 0);
  8257. //else
  8258. // UpdateNameTag(playerid, 1);
  8259. //ShowPlayerNameTagForPlayer(i, playerid, 1);
  8260. }
  8261. }
  8262. UpdateColorForPlayer(playerid)
  8263. {
  8264. if(CheckAdmin(playerid, 1) && Players[playerid][pAdminDuty])
  8265. {
  8266. switch (Players[playerid][pAdmin])
  8267. {
  8268. case 1..2:
  8269. SetPlayerColor(playerid, 0xE8AF0EFF);
  8270. case 3..4:
  8271. SetPlayerColor(playerid, 0xE8AF0EFF);
  8272. default:
  8273. SetPlayerColor(playerid, 0xE8AF0EFF);
  8274. }
  8275. }
  8276. else if (Players[playerid][pSupporter] > 0 && Players[playerid][pSupporterDuty])
  8277. {
  8278. SetPlayerColor(playerid, COLOR_TESTER);
  8279. }
  8280. else if (Players[playerid][pFaction] != INVALID_ID && Players[playerid][pDuty])
  8281. {
  8282. SetPlayerColor(playerid, Factions[Players[playerid][pFaction]][fcColor]);
  8283. }
  8284. else
  8285. {
  8286. SetPlayerColor(playerid, COLOR_PLAYER);
  8287. }
  8288. }
  8289. IsVehicleInDealership(company, model)
  8290. {
  8291. if (!IsValidCompanyID(company) || Companies[company][cType] != COMPANY_DEALERSHIP)
  8292. {
  8293. return 0;
  8294. }
  8295. for (new i = 0; i < MAX_DEALERSHIP_CARS; i ++)
  8296. {
  8297. if (DealershipCars[i][dcExists] && DealershipCars[i][dcCompany] == Companies[company][cID] && DealershipCars[i][dcModel] == model)
  8298. {
  8299. return 1;
  8300. }
  8301. }
  8302. return 0;
  8303. }
  8304. AddVehicleToDealership(company, model, price)
  8305. {
  8306. if (!IsValidCompanyID(company) || Companies[company][cType] != COMPANY_DEALERSHIP)
  8307. {
  8308. return INVALID_ID;
  8309. }
  8310. new
  8311. id = GetNextDealershipCarID();
  8312. if (id != INVALID_ID)
  8313. {
  8314. DealershipCars[id][dcExists] = 1;
  8315. DealershipCars[id][dcCompany] = Companies[company][cID];
  8316. DealershipCars[id][dcModel] = model;
  8317. DealershipCars[id][dcPrice] = price;
  8318. format(gExecute, sizeof(gExecute), "INSERT INTO rp_dealercars (Company) VALUES(%i)", DealershipCars[id][dcCompany]);
  8319. mysql_tquery(gConnection, gExecute, "OnDealershipCarAdded", "i", id);
  8320. }
  8321. return id;
  8322. }
  8323. GetPackedString(const string[])
  8324. {
  8325. new
  8326. retString[200];
  8327. if (ispacked(string))
  8328. strunpack(retString, string);
  8329. else
  8330. strcat(retString, string);
  8331. return retString;
  8332. }
  8333. GetDeathReason(reason)
  8334. {
  8335. new string[24];
  8336. switch (reason)
  8337. {
  8338. case 0:
  8339. string = "Fist";
  8340. case 1..46:
  8341. GetWeaponName(reason, string, sizeof(string));
  8342. case 47:
  8343. string = "Fake Pistol";
  8344. case 49:
  8345. string = "Vehicle";
  8346. case 50:
  8347. string = "Helicopter Blades";
  8348. case 51:
  8349. string = "Explosion";
  8350. case 53:
  8351. string = "Drowned";
  8352. case 54:
  8353. string = "Splat";
  8354. }
  8355. return string;
  8356. }
  8357. GetVehicleFromPlate(const plate[])
  8358. {
  8359. for (new i = 0; i < MAX_CARS; i ++)
  8360. {
  8361. if (IsValidVehicleID(i) && !strcmp(Vehicles[i][vPlate], plate, true))
  8362. {
  8363. return i;
  8364. }
  8365. }
  8366. return INVALID_ID;
  8367. }
  8368. GetPlayerID(const name[])
  8369. {
  8370. foreach (new i : Player)
  8371. {
  8372. if (IsPlayerLoggedIn(i) && !strcmp(ReturnName(i), name))
  8373. {
  8374. return i;
  8375. }
  8376. }
  8377. return INVALID_PLAYER_ID;
  8378. }
  8379. IsWeaponCheater(playerid)
  8380. {
  8381. new
  8382. weaponid = GetPlayerWeapon(playerid);
  8383. if (GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) {
  8384. return 0;
  8385. } else if (PlayerHasWeapon(playerid, weaponid)) {
  8386. return 0;
  8387. }
  8388. return 1;
  8389. }
  8390. GetRandomHouse()
  8391. {
  8392. new
  8393. houses[MAX_HOUSES],
  8394. index = 0;
  8395. for (new i = 0; i < MAX_HOUSES; i ++)
  8396. {
  8397. if (IsValidHouseID(i) && !Houses[i][hExterior] && !Houses[i][hExteriorWorld] && !strcmp(GetRegionName(Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2]), "Los Santos"))
  8398. {
  8399. houses[index++] = i;
  8400. }
  8401. }
  8402. if (index)
  8403. return houses[random(index)];
  8404. else
  8405. return INVALID_ID;
  8406. }
  8407. GetRandomTrash()
  8408. {
  8409. new
  8410. trash[MAX_TRASH_BINS],
  8411. index = 0;
  8412. for (new i = 0; i < MAX_TRASH_BINS; i ++)
  8413. {
  8414. if (IsValidTrashbinID(i) && !strcmp(GetRegionName(Trashbins[i][tX], Trashbins[i][tY], Trashbins[i][tZ]), "Los Santos"))
  8415. {
  8416. trash[index++] = i;
  8417. }
  8418. }
  8419. if (index)
  8420. return trash[random(index)];
  8421. else
  8422. return INVALID_ID;
  8423. }
  8424. /*
  8425. enum e_Trashbins {
  8426. tID,
  8427. tExists,
  8428. Float:tX,
  8429. Float:tY,
  8430. Float:tZ,
  8431. Float:tA,
  8432. tInterior,
  8433. tWorld,
  8434. Text3D:tText,
  8435. tObject
  8436. };
  8437. */
  8438. GetVehicleComponentTypeCount(vehicleid, type)
  8439. {
  8440. new count;
  8441. for(new i = MIN_COMPONENT_ID; i <= MAX_COMPONENT_ID; i ++)
  8442. {
  8443. if(IsValidComponentForVehicle(vehicleid, i) && GetVehicleComponentType(i) == type)
  8444. {
  8445. count++;
  8446. }
  8447. }
  8448. return count;
  8449. }
  8450. IsVehicleModifiable(vehicleid)
  8451. {
  8452. for(new i = CARMODTYPE_SPOILER; i <= CARMODTYPE_VENT_LEFT; i ++)
  8453. {
  8454. if(GetVehicleComponentTypeCount(vehicleid, i) > 0)
  8455. {
  8456. return 1;
  8457. }
  8458. }
  8459. return 0;
  8460. }
  8461. GetVehicleComponentPriceEx(componentid)
  8462. {
  8463. new price = GetVehicleComponentPrice(componentid);
  8464. return price > 0 ? price : 500;
  8465. }
  8466. GetVehicleComponentName(componentid)
  8467. {
  8468. new
  8469. name[32];
  8470. GetComponentName(componentid, name, sizeof(name));
  8471. return name;
  8472. }
  8473. CancelComponentPreview(playerid)
  8474. {
  8475. if(Players[playerid][pModPreview] >= 1000)
  8476. {
  8477. RemoveVehicleComponent(GetPlayerVehicleID(playerid), Players[playerid][pModPreview]);
  8478. AddVehicleComponent(GetPlayerVehicleID(playerid), Players[playerid][pOldComponent]);
  8479. }
  8480. Players[playerid][pModPreview] = 0;
  8481. }
  8482. IsPlayerInModdingShop(playerid)
  8483. {
  8484. return IsPlayerInRangeOfPoint(playerid, 30.0, 1041.2220, -1028.3320, 32.1016);
  8485. }
  8486. ExitModdingShop(playerid)
  8487. {
  8488. if(IsPlayerInModdingShop(playerid))
  8489. {
  8490. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  8491. {
  8492. CancelComponentPreview(playerid);
  8493. SetVehiclePos(GetPlayerVehicleID(playerid), 1041.4913, -1031.0121, 32.0686);
  8494. SetVehicleZAngle(GetPlayerVehicleID(playerid), 180.0000);
  8495. SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), 0);
  8496. LinkVehicleToInterior(GetPlayerVehicleID(playerid), 0);
  8497. SetVehicleParamsEx(GetPlayerVehicleID(playerid), Players[playerid][pVehicleParams][0], Players[playerid][pVehicleParams][1], Players[playerid][pVehicleParams][2], Players[playerid][pVehicleParams][3], Players[playerid][pVehicleParams][4], Players[playerid][pVehicleParams][5], Players[playerid][pVehicleParams][6]);
  8498. }
  8499. else
  8500. {
  8501. SetPlayerPos(playerid, 1041.4913, -1031.0121, 32.0686);
  8502. SetPlayerFacingAngle(playerid, 180.0000);
  8503. }
  8504. SetPlayerInterior(playerid, 0);
  8505. SetPlayerVirtualWorld(playerid, 0);
  8506. }
  8507. return 1;
  8508. }
  8509. ShowModMainMenu(playerid)
  8510. {
  8511. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  8512. {
  8513. new vehicleid = GetPlayerVehicleID(playerid), string[256];
  8514. for(new i = CARMODTYPE_SPOILER; i <= CARMODTYPE_VENT_LEFT; i ++)
  8515. {
  8516. if(GetVehicleComponentTypeCount(vehicleid, i) > 0)
  8517. {
  8518. format(string, sizeof(string), "%s\n%s", string, componentSlotNames[i]);
  8519. }
  8520. }
  8521. if(isnull(string))
  8522. {
  8523. SendErrorMessage(playerid, "This vehicle cannot be modified.");
  8524. }
  8525. else
  8526. {
  8527. Dialog_Show(playerid, ModdingMenu, DIALOG_STYLE_LIST, "{33AA33}Modding - Main Menu", string, "Select", "Exit");
  8528. }
  8529. }
  8530. return 1;
  8531. }
  8532. ShowModBrowseMenu(playerid)
  8533. {
  8534. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  8535. {
  8536. new vehicleid = GetPlayerVehicleID(playerid), string[512], count;
  8537. string = "Component\tPrice";
  8538. for(new i = MIN_COMPONENT_ID; i <= MAX_COMPONENT_ID; i ++)
  8539. {
  8540. if(GetVehicleComponentType(i) == Players[playerid][pSelected] && IsValidComponentForVehicle(vehicleid, i))
  8541. {
  8542. format(string, sizeof(string), "%s\n%s\t($%i)", string, GetVehicleComponentName(i), GetVehicleComponentPriceEx(i));
  8543. count++;
  8544. }
  8545. }
  8546. if(isnull(string))
  8547. {
  8548. SendErrorMessage(playerid, "There are no mods in this category available for your vehicle.");
  8549. ShowModMainMenu(playerid);
  8550. }
  8551. else
  8552. {
  8553. strcat(string, "\n{FFFF00}<< Go Back");
  8554. Dialog_Show(playerid, ModdingBrowse, DIALOG_STYLE_TABLIST_HEADERS, "{33AA33}Modding - Select Mod", string, "Select", "Exit");
  8555. }
  8556. }
  8557. return 1;
  8558. }
  8559. IsRepairShopInUse(id)
  8560. {
  8561. foreach(new i : Player)
  8562. {
  8563. if(Players[i][pRepairShop] == id && IsPlayerInRangeOfPoint(i, 10.0, g_RepairShops[id][3], g_RepairShops[id][4], g_RepairShops[id][5]))
  8564. {
  8565. return 1;
  8566. }
  8567. }
  8568. return 0;
  8569. }
  8570. GetAmmunitionType(weaponid)
  8571. {
  8572. new
  8573. type[16];
  8574. switch (weaponid)
  8575. {
  8576. case 22, 23, 28, 29, 32:
  8577. type = "9x19mm";
  8578. case 24:
  8579. type = ".50cal";
  8580. case 25, 26, 27:
  8581. type = "12 Gauge";
  8582. case 30:
  8583. type = "7.62x39mm";
  8584. case 31:
  8585. type = "5.56x45mm";
  8586. case 33, 34:
  8587. type = "7.62x51mm";
  8588. default:
  8589. type = "Unknown";
  8590. }
  8591. return type;
  8592. }
  8593. stock randomEx(min, max)
  8594. {
  8595. new rand = random(max-min)+min;
  8596. return rand;
  8597. }
  8598. stock GSF(playerid, skinid)
  8599. {
  8600. new pName[MAX_PLAYER_NAME];
  8601. GetPlayerName(playerid, pName, sizeof(pName));
  8602. //If the player has the [TM] tag in his name...
  8603. if(strfind(pName, "[GSF]", true) != 1)
  8604. {
  8605. switch(skinid)
  8606. {
  8607. //Add your own private skin ids here...
  8608. case 105, 106, 107: return 1;
  8609. }
  8610. }
  8611. return 0;
  8612. }
  8613. stock NotAuthMSG(playerid)
  8614. {
  8615. return SCM(playerid, COLOR_LIGHTRED, " You Are Not An Admin");
  8616. }
  8617. stock PlayPlayerBoomBoxURL(playerid, urlname[], url[])
  8618. {
  8619. new vehicle = GetPlayerVehicleID(playerid);
  8620. if(IsPlayerInVehicle(playerid, vehicle))
  8621. {
  8622. format(msg, sizeof(msg), "> %s has tuned the radio station to %s.", ReturnNameEx(playerid), urlname);
  8623. SetPlayerChatBubble(playerid, msg, COLOR_GREEN, 15.0, 10000);
  8624. SCM(playerid, COLOR_GREEN, msg);
  8625. Players[playerid][pVehicleStream] = vehicle;
  8626. strpack(VehicleInformation[vehicle][vStream], urlname, 128 char);
  8627. StartMusicInVehicle(vehicle, url);
  8628. }
  8629. return 1;
  8630. }
  8631. stock StartMusicInVehicle(vehicle, url[])
  8632. {
  8633. foreach(new i : Player)
  8634. {
  8635. if(GetPlayerVehicleID(i) == vehicle)
  8636. {
  8637. StopAudioStreamForPlayer(i);
  8638. PlayAudioStreamForPlayer(i, url);
  8639. }
  8640. }
  8641. return 1;
  8642. }
  8643. Float:DistanceCameraTargetToLocation(Float:CamX, Float:CamY, Float:CamZ, Float:ObjX, Float:ObjY, Float:ObjZ, Float:FrX, Float:FrY, Float:FrZ)
  8644. {
  8645. new Float:TGTDistance;
  8646. TGTDistance = floatsqroot((CamX - ObjX) * (CamX - ObjX) + (CamY - ObjY) * (CamY - ObjY) + (CamZ - ObjZ) * (CamZ - ObjZ));
  8647. new Float:tmpX, Float:tmpY, Float:tmpZ;
  8648. tmpX = FrX * TGTDistance + CamX;
  8649. tmpY = FrY * TGTDistance + CamY;
  8650. tmpZ = FrZ * TGTDistance + CamZ;
  8651. return floatsqroot((tmpX - ObjX) * (tmpX - ObjX) + (tmpY - ObjY) * (tmpY - ObjY) + (tmpZ - ObjZ) * (tmpZ - ObjZ));
  8652. }
  8653. PlayerFaces(playerid, Float:x, Float:y, Float:z, Float:radius)
  8654. {
  8655. new Float:cx,Float:cy,Float:cz,Float:fx,Float:fy,Float:fz;
  8656. GetPlayerCameraPos(playerid, cx, cy, cz);
  8657. GetPlayerCameraFrontVector(playerid, fx, fy, fz);
  8658. return (radius >= DistanceCameraTargetToLocation(cx, cy, cz, x, y, z, fx, fy, fz));
  8659. }
  8660. DeleteFire(ID)
  8661. {
  8662. DestroyDynamicObject(FireObj[ID]);
  8663. TotalFires--;
  8664. FirePos[ID][0] = 0, FirePos[ID][1] = 0, FirePos[ID][2] = 0;
  8665. }
  8666. DeleteAllFire()
  8667. {
  8668. new ID;
  8669. for(ID = 0; ID<MaxFire; ID++)
  8670. {
  8671. DestroyDynamicObject(FireObj[ID]);
  8672. TotalFires= 0;
  8673. FirePos[ID][0] = 0, FirePos[ID][1] = 0, FirePos[ID][2] = 0;
  8674. #if defined Labels
  8675. Delete3DTextLabel(FireText[ID]);
  8676. #endif
  8677. }
  8678. }
  8679. IsValidFire(ID)
  8680. {
  8681. if( (FirePos[ID][0] != 0) && (FirePos[ID][1] != 0) && (FirePos[ID][2] != 0) ) return true;
  8682. else return false;
  8683. }
  8684. /*
  8685. GetClosestFire(playerid)
  8686. {
  8687. new i;
  8688. for(i = 0; i<MaxFire; i++)
  8689. {
  8690. if(IsValidFire(i) && IsPlayerInRangeOfPoint(playerid, 1, FirePos[i][0], FirePos[i][1], FirePos[i][2]))
  8691. {
  8692. return i;
  8693. }
  8694. }
  8695. return 0;
  8696. }*/
  8697. f_OnPlayerUpdate(playerid)
  8698. {
  8699. new newkeys,l,u;
  8700. GetPlayerKeys(playerid, newkeys, l, u);
  8701. new i;
  8702. if(Holding(KEY_FIRE))
  8703. {
  8704. if(GetPlayerWeapon(playerid) == 42)
  8705. {
  8706. for(i = 0; i < MaxFire; i++)
  8707. {
  8708. if(IsValidFire(i))
  8709. {
  8710. if(PlayerFaces(playerid, FirePos[i][0], FirePos[i][1], FirePos[i][2], 1) && IsPlayerInRangeOfPoint(playerid, 4, FirePos[i][0], FirePos[i][1], FirePos[i][2]))
  8711. {
  8712. FireHealth[i]-=2;
  8713. if(FireHealth[i] <= 0)
  8714. {
  8715. DeleteFire(i);
  8716. CallRemoteFunction("OnFireDeath", "dd", i, playerid);
  8717. }
  8718. }
  8719. }
  8720. }
  8721. }
  8722. }
  8723. return 1;
  8724. }
  8725. GetArrestTime(categid, chargeid)
  8726. {
  8727. switch (categid)
  8728. {
  8729. case 1:
  8730. {
  8731. switch (chargeid)
  8732. {
  8733. case 1:
  8734. return 5;
  8735. case 2:
  8736. return 10;
  8737. case 3:
  8738. return 10;
  8739. case 4:
  8740. return 15;
  8741. case 5:
  8742. return 15;
  8743. case 6:
  8744. return 20;
  8745. case 7:
  8746. return 25;
  8747. case 8:
  8748. return 25;
  8749. case 9:
  8750. return 30;
  8751. case 10:
  8752. return 20;
  8753. case 11:
  8754. return 10;
  8755. case 12:
  8756. return 15;
  8757. case 13:
  8758. return 30;
  8759. default:
  8760. return 999;
  8761. }
  8762. }
  8763. case 2:
  8764. {
  8765. switch (chargeid)
  8766. {
  8767. case 1:
  8768. return 5;
  8769. case 2:
  8770. return 10;
  8771. case 3:
  8772. return 10;
  8773. case 4:
  8774. return 15;
  8775. case 5:
  8776. return 15;
  8777. case 6:
  8778. return 20;
  8779. case 7:
  8780. return 25;
  8781. case 8:
  8782. return 25;
  8783. case 9:
  8784. return 30;
  8785. case 10:
  8786. return 20;
  8787. case 11:
  8788. return 10;
  8789. case 12:
  8790. return 15;
  8791. case 13:
  8792. return 30;
  8793. default:
  8794. return 999;
  8795. }
  8796. }
  8797. case 3:
  8798. {
  8799. switch (chargeid)
  8800. {
  8801. case 1:
  8802. return 5;
  8803. case 2:
  8804. return 10;
  8805. case 3:
  8806. return 10;
  8807. case 4:
  8808. return 15;
  8809. case 5:
  8810. return 15;
  8811. case 6:
  8812. return 20;
  8813. case 7:
  8814. return 25;
  8815. case 8:
  8816. return 25;
  8817. case 9:
  8818. return 30;
  8819. case 10:
  8820. return 20;
  8821. case 11:
  8822. return 10;
  8823. case 12:
  8824. return 15;
  8825. case 13:
  8826. return 30;
  8827. default:
  8828. return 999;
  8829. }
  8830. }
  8831. case 4:
  8832. {
  8833. switch (chargeid)
  8834. {
  8835. case 1:
  8836. return 5;
  8837. case 2:
  8838. return 10;
  8839. case 3:
  8840. return 10;
  8841. case 4:
  8842. return 15;
  8843. case 5:
  8844. return 15;
  8845. case 6:
  8846. return 20;
  8847. case 7:
  8848. return 25;
  8849. case 8:
  8850. return 25;
  8851. case 9:
  8852. return 30;
  8853. case 10:
  8854. return 20;
  8855. case 11:
  8856. return 10;
  8857. case 12:
  8858. return 15;
  8859. case 13:
  8860. return 30;
  8861. default:
  8862. return 999;
  8863. }
  8864. }
  8865. case 5:
  8866. {
  8867. switch (chargeid)
  8868. {
  8869. case 1:
  8870. return 5;
  8871. case 2:
  8872. return 10;
  8873. case 3:
  8874. return 10;
  8875. case 4:
  8876. return 15;
  8877. case 5:
  8878. return 15;
  8879. case 6:
  8880. return 20;
  8881. case 7:
  8882. return 25;
  8883. case 8:
  8884. return 25;
  8885. case 9:
  8886. return 30;
  8887. case 10:
  8888. return 20;
  8889. case 11:
  8890. return 10;
  8891. case 12:
  8892. return 15;
  8893. case 13:
  8894. return 30;
  8895. default:
  8896. return 999;
  8897. }
  8898. }
  8899. case 6:
  8900. {
  8901. switch (chargeid)
  8902. {
  8903. case 1:
  8904. return 5;
  8905. case 2:
  8906. return 10;
  8907. case 3:
  8908. return 10;
  8909. case 4:
  8910. return 15;
  8911. case 5:
  8912. return 15;
  8913. case 6:
  8914. return 20;
  8915. case 7:
  8916. return 25;
  8917. case 8:
  8918. return 25;
  8919. case 9:
  8920. return 30;
  8921. case 10:
  8922. return 20;
  8923. case 11:
  8924. return 10;
  8925. case 12:
  8926. return 15;
  8927. case 13:
  8928. return 30;
  8929. default:
  8930. return 999;
  8931. }
  8932. }
  8933. case 7:
  8934. {
  8935. switch (chargeid)
  8936. {
  8937. case 1:
  8938. return 5;
  8939. case 2:
  8940. return 10;
  8941. case 3:
  8942. return 10;
  8943. case 4:
  8944. return 15;
  8945. case 5:
  8946. return 15;
  8947. case 6:
  8948. return 20;
  8949. case 7:
  8950. return 25;
  8951. case 8:
  8952. return 25;
  8953. case 9:
  8954. return 30;
  8955. case 10:
  8956. return 20;
  8957. case 11:
  8958. return 10;
  8959. case 12:
  8960. return 15;
  8961. case 13:
  8962. return 30;
  8963. default:
  8964. return 999;
  8965. }
  8966. }
  8967. case 8:
  8968. {
  8969. switch (chargeid)
  8970. {
  8971. case 1:
  8972. return 5;
  8973. case 2:
  8974. return 10;
  8975. case 3:
  8976. return 10;
  8977. case 4:
  8978. return 15;
  8979. case 5:
  8980. return 15;
  8981. case 6:
  8982. return 20;
  8983. case 7:
  8984. return 25;
  8985. case 8:
  8986. return 25;
  8987. case 9:
  8988. return 30;
  8989. case 10:
  8990. return 20;
  8991. case 11:
  8992. return 10;
  8993. case 12:
  8994. return 15;
  8995. case 13:
  8996. return 30;
  8997. default:
  8998. return 999;
  8999. }
  9000. }
  9001. case 9:
  9002. {
  9003. switch (chargeid)
  9004. {
  9005. case 1:
  9006. return 5;
  9007. case 2:
  9008. return 10;
  9009. case 3:
  9010. return 10;
  9011. case 4:
  9012. return 15;
  9013. case 5:
  9014. return 15;
  9015. case 6:
  9016. return 20;
  9017. case 7:
  9018. return 25;
  9019. case 8:
  9020. return 25;
  9021. case 9:
  9022. return 30;
  9023. case 10:
  9024. return 20;
  9025. case 11:
  9026. return 10;
  9027. case 12:
  9028. return 15;
  9029. case 13:
  9030. return 30;
  9031. default:
  9032. return 999;
  9033. }
  9034. }
  9035. }
  9036. return 0;
  9037. }
  9038. /* foreach (new i : Player)
  9039. {
  9040. if (IsPlayerInVehicle(i, vehicleid))
  9041. {
  9042. Players[i][pVehicleStream] = vehicleid;
  9043. PlayAudioStreamForPlayer(i, station);
  9044. }
  9045. }
  9046. strpack(VehicleInformation[vehicleid][vStream], station, 128 char);*/
  9047. stock ShowBoomBoxStations(playerid)
  9048. {
  9049. Dialog_Show(playerid, ChangeGenre, DIALOG_STYLE_LIST, "Genres:", "URBAN\nROCK\nOTHER\nPOP\n{F2E146}Custom Stream\n{F2E146}OFF - To turn off.", "Select", "<<<");
  9050. return 1;
  9051. }
  9052. stock StopCarBoomBox(vehicle)
  9053. {
  9054. foreach(new i : Player)
  9055. {
  9056. if(GetPlayerVehicleID(i) == vehicle)
  9057. {
  9058. StopAudioStreamForPlayer(i);
  9059. }
  9060. }
  9061. return 1;
  9062. }
  9063. stock RemoveBuildings(playerid)
  9064. {
  9065. // Player IP
  9066. GetPlayerIp(playerid, Players[playerid][pIP], 16);
  9067. //RHB Projects
  9068. RemoveBuildingForPlayer(playerid, 3562, 2232.3984, -1464.7969, 25.6484, 0.25);
  9069. RemoveBuildingForPlayer(playerid, 3562, 2247.5313, -1464.7969, 25.5469, 0.25);
  9070. RemoveBuildingForPlayer(playerid, 3562, 2263.7188, -1464.7969, 25.4375, 0.25);
  9071. RemoveBuildingForPlayer(playerid, 3562, 2243.7109, -1401.7813, 25.6406, 0.25);
  9072. RemoveBuildingForPlayer(playerid, 3562, 2230.6094, -1401.7813, 25.6406, 0.25);
  9073. RemoveBuildingForPlayer(playerid, 3562, 2256.6641, -1401.7813, 25.6406, 0.25);
  9074. RemoveBuildingForPlayer(playerid, 673, 2229.0234, -1411.6406, 22.9609, 0.25);
  9075. RemoveBuildingForPlayer(playerid, 1264, 2224.9844, -1408.9063, 23.3984, 0.25);
  9076. RemoveBuildingForPlayer(playerid, 1221, 2253.2188, -1409.8906, 23.6328, 0.25);
  9077. RemoveBuildingForPlayer(playerid, 1264, 2224.1250, -1408.8359, 23.3984, 0.25);
  9078. RemoveBuildingForPlayer(playerid, 1221, 2226.8516, -1404.7422, 23.6328, 0.25);
  9079. RemoveBuildingForPlayer(playerid, 1230, 2225.8516, -1394.6328, 23.3047, 0.25);
  9080. RemoveBuildingForPlayer(playerid, 1220, 2224.8594, -1393.9609, 23.3047, 0.25);
  9081. RemoveBuildingForPlayer(playerid, 1230, 2223.8750, -1396.7969, 23.3047, 0.25);
  9082. RemoveBuildingForPlayer(playerid, 1221, 2223.4688, -1396.0938, 23.3750, 0.25);
  9083. RemoveBuildingForPlayer(playerid, 3582, 2230.6094, -1401.7813, 25.6406, 0.25);
  9084. RemoveBuildingForPlayer(playerid, 1224, 2225.9844, -1396.6797, 23.5313, 0.25);
  9085. RemoveBuildingForPlayer(playerid, 1221, 2227.9531, -1396.8516, 23.3750, 0.25);
  9086. RemoveBuildingForPlayer(playerid, 3582, 2243.7109, -1401.7813, 25.6406, 0.25);
  9087. RemoveBuildingForPlayer(playerid, 645, 2237.5313, -1395.4844, 23.0391, 0.25);
  9088. RemoveBuildingForPlayer(playerid, 3582, 2256.6641, -1401.7813, 25.6406, 0.25);
  9089. RemoveBuildingForPlayer(playerid, 1308, 2252.5859, -1394.4141, 23.0547, 0.25);
  9090. RemoveBuildingForPlayer(playerid, 620, 2274.5781, -1398.4922, 22.5078, 0.25);
  9091. RemoveBuildingForPlayer(playerid, 1308, 2280.4688, -1395.7578, 23.0547, 0.25);
  9092. RemoveBuildingForPlayer(playerid, 1220, 2222.9609, -1469.7422, 23.1953, 0.25);
  9093. RemoveBuildingForPlayer(playerid, 1230, 2223.6328, -1468.7500, 23.1953, 0.25);
  9094. RemoveBuildingForPlayer(playerid, 1307, 2225.4219, -1456.3906, 23.1172, 0.25);
  9095. RemoveBuildingForPlayer(playerid, 1220, 2225.1328, -1471.7266, 23.1953, 0.25);
  9096. RemoveBuildingForPlayer(playerid, 1221, 2225.0938, -1471.1328, 23.2734, 0.25);
  9097. RemoveBuildingForPlayer(playerid, 1224, 2225.6797, -1468.6172, 23.4297, 0.25);
  9098. RemoveBuildingForPlayer(playerid, 1230, 2225.7969, -1470.7266, 23.1953, 0.25);
  9099. RemoveBuildingForPlayer(playerid, 1221, 2225.8516, -1466.6484, 23.2734, 0.25);
  9100. RemoveBuildingForPlayer(playerid, 645, 2239.5703, -1468.8047, 22.6875, 0.25);
  9101. RemoveBuildingForPlayer(playerid, 3582, 2232.3984, -1464.7969, 25.6484, 0.25);
  9102. RemoveBuildingForPlayer(playerid, 673, 2241.8906, -1458.9297, 22.9609, 0.25);
  9103. RemoveBuildingForPlayer(playerid, 3582, 2247.5313, -1464.7969, 25.5469, 0.25);
  9104. RemoveBuildingForPlayer(playerid, 620, 2267.4688, -1470.1953, 21.7188, 0.25);
  9105. RemoveBuildingForPlayer(playerid, 3582, 2263.7188, -1464.7969, 25.4375, 0.25);
  9106. RemoveBuildingForPlayer(playerid, 1307, 2272.6797, -1459.1875, 22.0547, 0.25);
  9107. RemoveBuildingForPlayer(playerid, 1221, 2251.2891, -1461.8281, 23.6328, 0.25);
  9108. RemoveBuildingForPlayer(playerid, 1297, 2253.7813, -1454.4219, 26.3906, 0.25);
  9109. RemoveBuildingForPlayer(playerid, 1220, 2256.6563, -1456.8984, 22.8594, 0.25);
  9110. RemoveBuildingForPlayer(playerid, 1230, 2255.9844, -1457.9063, 22.8594, 0.25);
  9111. RemoveBuildingForPlayer(playerid, 5682, 2241.4297, -1433.6719, 31.2813, 0.25);
  9112. RemoveBuildingForPlayer(playerid, 17535, 2364.0547, -1391.5313, 41.3516, 0.25);
  9113. RemoveBuildingForPlayer(playerid, 17965, 2322.2813, -1355.1953, 25.4063, 0.25);
  9114. RemoveBuildingForPlayer(playerid, 1266, 2317.5859, -1355.8281, 37.2188, 0.25);
  9115. RemoveBuildingForPlayer(playerid, 17970, 2364.0547, -1391.5313, 41.3516, 0.25);
  9116. RemoveBuildingForPlayer(playerid, 17543, 2322.2813, -1355.1953, 25.4063, 0.25);
  9117. RemoveBuildingForPlayer(playerid, 1260, 2317.5938, -1355.8203, 37.2266, 0.25);
  9118. //Willow
  9119. RemoveBuildingForPlayer(playerid, 5110, 2443.63281, -1901.32031, 18.00781, 0.25); //removeWorldObject (mexcrnershp2_las2) (1)
  9120. RemoveBuildingForPlayer(playerid, 5226, 2443.63281, -1901.32031, 18.00781, 0.25); //LOD Remove Object 5110
  9121. RemoveBuildingForPlayer(playerid, 1635, 2441.4375, -1901.69531, 14.72656, 0.25); //removeWorldObject (nt_aircon1dbl) (1)
  9122. RemoveBuildingForPlayer(playerid, 1687, 2430.51563, -1917.72656, 18.96094, 0.25); //removeWorldObject (gen_roofbit1) (1)
  9123. RemoveBuildingForPlayer(playerid, 5179, 2439.72656, -1952.09375, 16.02344, 0.25); //removeWorldObject (mexcrnershp_las2) (1)
  9124. RemoveBuildingForPlayer(playerid, 5248, 2439.72656, -1952.09375, 16.02344, 0.25); //LOD Remove Object 5179
  9125. RemoveBuildingForPlayer(playerid, 5187, 2439.28125, -1979.96094, 15.75, 0.25); //removeWorldObject (mexcrnrxc_las2) (1)
  9126. RemoveBuildingForPlayer(playerid, 5249, 2439.28125, -1979.96094, 15.75, 0.25); //LOD Remove Object 5187
  9127. RemoveBuildingForPlayer(playerid, 1635, 2440.35938, -1974.92969, 16.03906, 0.25); //removeWorldObject (nt_aircon1dbl) (2)
  9128. RemoveBuildingForPlayer(playerid, 1687, 2446.28125, -1992.58594, 18.35938, 0.25); //removeWorldObject (gen_roofbit1) (2)
  9129. RemoveBuildingForPlayer(playerid, 1687, 2430.47656, -1967.78906, 18.35938, 0.25); //removeWorldObject (gen_roofbit1) (3)
  9130. RemoveBuildingForPlayer(playerid, 1635, 2456.39844, -1959.5625, 16.03906, 0.25); //removeWorldObject (nt_aircon1dbl) (3)
  9131. RemoveBuildingForPlayer(playerid, 1687, 2437.21094, -1946.64844, 18.35938, 0.25); //removeWorldObject (gen_roofbit1) (4)
  9132. //Idlwood
  9133. RemoveBuildingForPlayer(playerid, 5543, 1941.656, -1682.570, 12.476, 0.250);
  9134. RemoveBuildingForPlayer(playerid, 5544, 1873.742, -1682.476, 34.796, 0.250);
  9135. RemoveBuildingForPlayer(playerid, 5545, 1971.656, -1682.312, 13.742, 0.250);
  9136. RemoveBuildingForPlayer(playerid, 5633, 2089.359, -1643.929, 18.218, 0.250);
  9137. RemoveBuildingForPlayer(playerid, 1524, 1837.664, -1640.382, 13.757, 0.250);
  9138. RemoveBuildingForPlayer(playerid, 3772, 1975.507, -1719.039, 19.328, 0.250);
  9139. RemoveBuildingForPlayer(playerid, 3773, 1971.273, -1701.773, 17.882, 0.250);
  9140. RemoveBuildingForPlayer(playerid, 3774, 1974.945, -1667.484, 17.656, 0.250);
  9141. RemoveBuildingForPlayer(playerid, 3772, 1976.125, -1682.960, 19.351, 0.250);
  9142. RemoveBuildingForPlayer(playerid, 3773, 1971.351, -1651.296, 17.906, 0.250);
  9143. RemoveBuildingForPlayer(playerid, 3774, 1972.390, -1630.000, 17.679, 0.250);
  9144. RemoveBuildingForPlayer(playerid, 620, 1855.718, -1741.539, 10.804, 0.250);
  9145. RemoveBuildingForPlayer(playerid, 620, 1879.507, -1741.484, 10.804, 0.250);
  9146. RemoveBuildingForPlayer(playerid, 620, 1908.218, -1741.484, 10.804, 0.250);
  9147. RemoveBuildingForPlayer(playerid, 712, 1929.578, -1736.906, 21.390, 0.250);
  9148. RemoveBuildingForPlayer(playerid, 620, 1931.039, -1726.328, 10.804, 0.250);
  9149. RemoveBuildingForPlayer(playerid, 1226, 1945.765, -1716.359, 16.390, 0.250);
  9150. RemoveBuildingForPlayer(playerid, 620, 1958.367, -1736.554, 14.484, 0.250);
  9151. RemoveBuildingForPlayer(playerid, 620, 1832.382, -1694.312, 9.718, 0.250);
  9152. RemoveBuildingForPlayer(playerid, 1537, 1837.437, -1683.968, 12.304, 0.250);
  9153. RemoveBuildingForPlayer(playerid, 1533, 1837.437, -1683.953, 12.304, 0.250);
  9154. RemoveBuildingForPlayer(playerid, 1537, 1837.437, -1686.984, 12.312, 0.250);
  9155. RemoveBuildingForPlayer(playerid, 620, 1832.898, -1670.765, 9.718, 0.250);
  9156. RemoveBuildingForPlayer(playerid, 1533, 1837.437, -1677.921, 12.296, 0.250);
  9157. RemoveBuildingForPlayer(playerid, 1537, 1837.437, -1680.953, 12.296, 0.250);
  9158. RemoveBuildingForPlayer(playerid, 1533, 1837.437, -1680.937, 12.296, 0.250);
  9159. RemoveBuildingForPlayer(playerid, 5408, 1873.742, -1682.476, 34.796, 0.250);
  9160. RemoveBuildingForPlayer(playerid, 620, 1931.039, -1702.289, 10.804, 0.250);
  9161. RemoveBuildingForPlayer(playerid, 712, 1929.578, -1694.460, 21.390, 0.250);
  9162. RemoveBuildingForPlayer(playerid, 620, 1931.039, -1667.031, 10.804, 0.250);
  9163. RemoveBuildingForPlayer(playerid, 1226, 1937.554, -1669.890, 16.390, 0.250);
  9164. RemoveBuildingForPlayer(playerid, 5441, 1941.656, -1682.570, 12.476, 0.250);
  9165. RemoveBuildingForPlayer(playerid, 3580, 1975.507, -1719.039, 19.328, 0.250);
  9166. RemoveBuildingForPlayer(playerid, 1308, 1991.968, -1714.125, 12.781, 0.250);
  9167. RemoveBuildingForPlayer(playerid, 673, 1988.765, -1702.046, 15.015, 0.250);
  9168. RemoveBuildingForPlayer(playerid, 3616, 1971.273, -1701.773, 17.882, 0.250);
  9169. RemoveBuildingForPlayer(playerid, 3580, 1976.125, -1682.960, 19.351, 0.250);
  9170. RemoveBuildingForPlayer(playerid, 5412, 1971.656, -1682.312, 13.742, 0.250);
  9171. RemoveBuildingForPlayer(playerid, 1308, 1991.984, -1668.367, 12.781, 0.250);
  9172. RemoveBuildingForPlayer(playerid, 3617, 1974.945, -1667.484, 17.656, 0.250);
  9173. RemoveBuildingForPlayer(playerid, 620, 1931.039, -1637.898, 10.804, 0.250);
  9174. RemoveBuildingForPlayer(playerid, 1226, 1945.765, -1635.773, 16.390, 0.250);
  9175. RemoveBuildingForPlayer(playerid, 620, 1855.718, -1623.281, 10.804, 0.250);
  9176. RemoveBuildingForPlayer(playerid, 620, 1879.507, -1623.101, 10.804, 0.250);
  9177. RemoveBuildingForPlayer(playerid, 620, 1908.218, -1622.984, 10.804, 0.250);
  9178. RemoveBuildingForPlayer(playerid, 712, 1929.578, -1627.625, 21.390, 0.250);
  9179. RemoveBuildingForPlayer(playerid, 673, 1955.304, -1649.882, 15.062, 0.250);
  9180. RemoveBuildingForPlayer(playerid, 673, 1986.593, -1650.921, 14.664, 0.250);
  9181. RemoveBuildingForPlayer(playerid, 3616, 1971.351, -1651.296, 17.906, 0.250);
  9182. RemoveBuildingForPlayer(playerid, 673, 1955.015, -1632.921, 14.968, 0.250);
  9183. RemoveBuildingForPlayer(playerid, 3617, 1972.390, -1630.000, 17.679, 0.250);
  9184. // Power bar
  9185. Players[playerid][pBars][0] = CreatePlayerProgressBar(playerid, 556.000000, 130.000000, 57.000000, 4.699999, COLOR_SAMP, 100.0000, 0);
  9186. // Gram
  9187. RemoveBuildingForPlayer(playerid, 5635, 2182.2891, -1324.7500, 28.6016, 0.25);
  9188. // Stupid bush at Unity
  9189. RemoveBuildingForPlayer(playerid, 5024, 1748.8438, -1883.0313, 14.1875, 0.25);
  9190. // Sprunk machines
  9191. RemoveBuildingForPlayer(playerid, 1302, 0.0, 0.0, 0.0, 6000.0);
  9192. RemoveBuildingForPlayer(playerid, 1209, 0.0, 0.0, 0.0, 6000.0);
  9193. RemoveBuildingForPlayer(playerid, 955, 0.0, 0.0, 0.0, 6000.0);
  9194. RemoveBuildingForPlayer(playerid, 956, 0.0, 0.0, 0.0, 6000.0);
  9195. RemoveBuildingForPlayer(playerid, 1775, 0.0, 0.0, 0.0, 6000.0);
  9196. RemoveBuildingForPlayer(playerid, 1776, 0.0, 0.0, 0.0, 6000.0);
  9197. RemoveBuildingForPlayer(playerid, 1977, 0.0, 0.0, 0.0, 6000.0);
  9198. // Fuel pumps
  9199. RemoveBuildingForPlayer(playerid, 3465, 0.0, 0.0, 0.0, 6000.0);
  9200. RemoveBuildingForPlayer(playerid, 1686, 0.0, 0.0, 0.0, 6000.0);
  9201. RemoveBuildingForPlayer(playerid, 1244, 0.0, 0.0, 0.0, 6000.0);
  9202. RemoveBuildingForPlayer(playerid, 1676, 0.0, 0.0, 0.0, 6000.0);
  9203. // Pay N' Spray, Mod Shop and Bomb Shop doors
  9204. RemoveBuildingForPlayer(playerid, 5043, 1843.3672, -1856.3203, 13.8750, 0.25);
  9205. //RemoveBuildingForPlayer(playerid, 5340, 2644.8594, -2039.2344, 14.0391, 0.25);
  9206. RemoveBuildingForPlayer(playerid, 5422, 2071.4766, -1831.4219, 14.5625, 0.25);
  9207. RemoveBuildingForPlayer(playerid, 5856, 1024.9844, -1029.3516, 33.1953, 0.25);
  9208. //RemoveBuildingForPlayer(playerid, 5779, 1041.3516, -1025.9297, 32.6719, 0.25);
  9209. RemoveBuildingForPlayer(playerid, 6400, 488.2813, -1734.6953, 12.3906, 0.25);
  9210. //RemoveBuildingForPlayer(playerid, 10575, -2716.3516, 217.4766, 5.3828, 0.25);
  9211. //RemoveBuildingForPlayer(playerid, 11313, -1935.8594, 239.5313, 35.3516, 0.25);
  9212. RemoveBuildingForPlayer(playerid, 11319, -1904.5313, 277.8984, 42.9531, 0.25);
  9213. RemoveBuildingForPlayer(playerid, 9625, -2425.7266, 1027.9922, 52.2813, 0.25);
  9214. RemoveBuildingForPlayer(playerid, 9093, 2386.6563, 1043.6016, 11.5938, 0.25);
  9215. RemoveBuildingForPlayer(playerid, 7707, 2006.0000, 2317.6016, 11.3125, 0.25);
  9216. RemoveBuildingForPlayer(playerid, 7709, 2006.0000, 2303.7266, 11.3125, 0.25);
  9217. RemoveBuildingForPlayer(playerid, 7891, 1968.7422, 2162.4922, 12.0938, 0.25);
  9218. RemoveBuildingForPlayer(playerid, 3294, -1420.5469, 2591.1563, 57.7422, 0.25);
  9219. RemoveBuildingForPlayer(playerid, 3294, -100.0000, 1111.4141, 21.6406, 0.25);
  9220. RemoveBuildingForPlayer(playerid, 13028, 720.0156, -462.5234, 16.8594, 0.25);
  9221. //Prison EXT remove
  9222. RemoveBuildingForPlayer(playerid, 3295, 1099.1172, -358.4766, 77.6172, 0.25);
  9223. RemoveBuildingForPlayer(playerid, 3347, 1114.2969, -353.8203, 72.7969, 0.25);
  9224. RemoveBuildingForPlayer(playerid, 3347, 1107.5938, -358.5156, 72.7969, 0.25);
  9225. RemoveBuildingForPlayer(playerid, 3376, 1070.4766, -355.1641, 77.3359, 0.25);
  9226. RemoveBuildingForPlayer(playerid, 3404, 1019.3828, -300.2422, 72.9844, 0.25);
  9227. RemoveBuildingForPlayer(playerid, 3404, 1045.5625, -300.6016, 72.9844, 0.25);
  9228. RemoveBuildingForPlayer(playerid, 785, 1150.3516, -343.1094, 58.4141, 0.25);
  9229. RemoveBuildingForPlayer(playerid, 785, 1091.6094, -250.0078, 71.0391, 0.25);
  9230. RemoveBuildingForPlayer(playerid, 3276, 1012.2891, -282.5391, 73.8438, 0.25);
  9231. RemoveBuildingForPlayer(playerid, 3276, 1023.4219, -279.9063, 73.8438, 0.25);
  9232. RemoveBuildingForPlayer(playerid, 1503, 1019.3203, -282.7891, 73.2031, 0.25);
  9233. RemoveBuildingForPlayer(playerid, 694, 1045.8438, -270.9453, 75.4219, 0.25);
  9234. RemoveBuildingForPlayer(playerid, 3276, 1047.3125, -280.3359, 73.8438, 0.25);
  9235. RemoveBuildingForPlayer(playerid, 3276, 1059.2266, -281.2656, 73.8438, 0.25);
  9236. RemoveBuildingForPlayer(playerid, 3276, 1082.9922, -283.6797, 73.8438, 0.25);
  9237. RemoveBuildingForPlayer(playerid, 791, 1091.6094, -250.0078, 71.0391, 0.25);
  9238. RemoveBuildingForPlayer(playerid, 694, 1130.1719, -278.6172, 70.7031, 0.25);
  9239. RemoveBuildingForPlayer(playerid, 694, 1137.7031, -313.9141, 68.9531, 0.25);
  9240. RemoveBuildingForPlayer(playerid, 13451, 1146.1406, -369.1328, 49.3281, 0.25);
  9241. RemoveBuildingForPlayer(playerid, 791, 1150.3516, -343.1094, 58.4141, 0.25);
  9242. RemoveBuildingForPlayer(playerid, 3276, 1009.4766, -440.1797, 54.3281, 0.25);
  9243. RemoveBuildingForPlayer(playerid, 3276, 1007.6953, -416.6406, 63.4453, 0.25);
  9244. RemoveBuildingForPlayer(playerid, 3276, 1008.4375, -428.4063, 58.8516, 0.25);
  9245. RemoveBuildingForPlayer(playerid, 3276, 1042.8203, -410.4141, 62.6563, 0.25);
  9246. RemoveBuildingForPlayer(playerid, 3276, 1041.9297, -422.1328, 58.1563, 0.25);
  9247. RemoveBuildingForPlayer(playerid, 3276, 1040.8281, -434.0625, 53.7422, 0.25);
  9248. RemoveBuildingForPlayer(playerid, 3276, 1007.7969, -385.0078, 71.8438, 0.25);
  9249. RemoveBuildingForPlayer(playerid, 3276, 1042.9219, -386.4531, 70.3516, 0.25);
  9250. RemoveBuildingForPlayer(playerid, 3276, 1042.9688, -374.4766, 72.8906, 0.25);
  9251. RemoveBuildingForPlayer(playerid, 3425, 1015.0938, -361.1016, 84.0391, 0.25);
  9252. RemoveBuildingForPlayer(playerid, 3276, 1007.6719, -361.6250, 73.8438, 0.25);
  9253. RemoveBuildingForPlayer(playerid, 1308, 1042.8125, -368.1953, 73.1016, 0.25);
  9254. RemoveBuildingForPlayer(playerid, 3276, 1007.6250, -349.8984, 73.8438, 0.25);
  9255. RemoveBuildingForPlayer(playerid, 3276, 1007.5234, -326.4453, 73.8438, 0.25);
  9256. RemoveBuildingForPlayer(playerid, 3276, 1007.4766, -314.7188, 73.8438, 0.25);
  9257. RemoveBuildingForPlayer(playerid, 3276, 1007.4297, -302.9922, 73.8438, 0.25);
  9258. RemoveBuildingForPlayer(playerid, 3276, 1007.3828, -291.2578, 73.8438, 0.25);
  9259. RemoveBuildingForPlayer(playerid, 3402, 1019.3828, -300.2422, 72.9844, 0.25);
  9260. RemoveBuildingForPlayer(playerid, 698, 1053.2891, -378.6719, 74.4297, 0.25);
  9261. RemoveBuildingForPlayer(playerid, 698, 1092.4688, -383.6172, 74.8906, 0.25);
  9262. RemoveBuildingForPlayer(playerid, 3276, 1083.6641, -368.5313, 73.8438, 0.25);
  9263. RemoveBuildingForPlayer(playerid, 3276, 1071.9375, -368.5156, 73.8438, 0.25);
  9264. RemoveBuildingForPlayer(playerid, 3276, 1060.2109, -368.4922, 73.8438, 0.25);
  9265. RemoveBuildingForPlayer(playerid, 3375, 1070.4766, -355.1641, 77.3359, 0.25);
  9266. RemoveBuildingForPlayer(playerid, 1308, 1094.4141, -367.9688, 72.8984, 0.25);
  9267. RemoveBuildingForPlayer(playerid, 1408, 1092.7109, -327.0625, 73.5703, 0.25);
  9268. RemoveBuildingForPlayer(playerid, 1408, 1095.3984, -329.8203, 73.5078, 0.25);
  9269. RemoveBuildingForPlayer(playerid, 700, 1095.3828, -327.4766, 73.1797, 0.25);
  9270. RemoveBuildingForPlayer(playerid, 1408, 1092.7969, -321.4844, 73.5703, 0.25);
  9271. RemoveBuildingForPlayer(playerid, 1408, 1092.9063, -315.9688, 73.5703, 0.25);
  9272. RemoveBuildingForPlayer(playerid, 1408, 1093.1953, -299.2969, 73.5703, 0.25);
  9273. RemoveBuildingForPlayer(playerid, 3402, 1045.5625, -300.6016, 72.9844, 0.25);
  9274. RemoveBuildingForPlayer(playerid, 13206, 1072.9531, -289.1797, 72.7344, 0.25);
  9275. RemoveBuildingForPlayer(playerid, 1408, 1093.3047, -293.7813, 73.5703, 0.25);
  9276. RemoveBuildingForPlayer(playerid, 1408, 1096.1563, -291.2656, 73.5703, 0.25);
  9277. RemoveBuildingForPlayer(playerid, 656, 1096.6250, -294.4141, 72.9375, 0.25);
  9278. RemoveBuildingForPlayer(playerid, 3286, 1099.1172, -358.4766, 77.6172, 0.25);
  9279. RemoveBuildingForPlayer(playerid, 3175, 1107.5938, -358.5156, 72.7969, 0.25);
  9280. RemoveBuildingForPlayer(playerid, 3276, 1107.1172, -368.5703, 73.8438, 0.25);
  9281. RemoveBuildingForPlayer(playerid, 3253, 1106.6406, -319.8750, 73.7422, 0.25);
  9282. RemoveBuildingForPlayer(playerid, 1408, 1106.4922, -330.0234, 73.5078, 0.25);
  9283. RemoveBuildingForPlayer(playerid, 1408, 1100.9141, -329.9297, 73.5078, 0.25);
  9284. RemoveBuildingForPlayer(playerid, 700, 1106.5469, -328.1641, 73.1797, 0.25);
  9285. RemoveBuildingForPlayer(playerid, 1308, 1101.2891, -329.5313, 72.8984, 0.25);
  9286. RemoveBuildingForPlayer(playerid, 3250, 1110.2422, -298.9453, 73.0391, 0.25);
  9287. RemoveBuildingForPlayer(playerid, 1408, 1101.6719, -291.3750, 73.5703, 0.25);
  9288. RemoveBuildingForPlayer(playerid, 1408, 1107.2656, -291.4609, 73.5703, 0.25);
  9289. RemoveBuildingForPlayer(playerid, 672, 1097.4688, -314.2109, 73.6641, 0.25);
  9290. RemoveBuildingForPlayer(playerid, 3175, 1114.2969, -353.8203, 72.7969, 0.25);
  9291. RemoveBuildingForPlayer(playerid, 1408, 1117.5781, -330.2109, 73.5078, 0.25);
  9292. RemoveBuildingForPlayer(playerid, 1408, 1112.0000, -330.1250, 73.5078, 0.25);
  9293. RemoveBuildingForPlayer(playerid, 656, 1116.4453, -326.7578, 72.9375, 0.25);
  9294. RemoveBuildingForPlayer(playerid, 1408, 1112.7813, -291.5703, 73.5703, 0.25);
  9295. RemoveBuildingForPlayer(playerid, 1408, 1118.3750, -291.6641, 73.5703, 0.25);
  9296. RemoveBuildingForPlayer(playerid, 1408, 1120.4297, -327.7656, 73.5703, 0.25);
  9297. RemoveBuildingForPlayer(playerid, 1408, 1121.0234, -294.5234, 73.5703, 0.25);
  9298. RemoveBuildingForPlayer(playerid, 1408, 1120.6250, -316.7344, 73.5703, 0.25);
  9299. RemoveBuildingForPlayer(playerid, 1408, 1120.9297, -300.1172, 73.5703, 0.25);
  9300. RemoveBuildingForPlayer(playerid, 1408, 1120.8203, -305.6328, 73.5703, 0.25);
  9301. RemoveBuildingForPlayer(playerid, 1408, 1120.7344, -311.2188, 73.5703, 0.25);
  9302. RemoveBuildingForPlayer(playerid, 1408, 1120.5391, -322.2500, 73.5703, 0.25);
  9303. // Removes the donut posters in the restaurant interior.
  9304. RemoveBuildingForPlayer(playerid, 2716, 372.1016, -182.5313, 1002.2813, 0.25);
  9305. RemoveBuildingForPlayer(playerid, 2717, 372.1016, -184.2109, 1002.2813, 0.25);
  9306. RemoveBuildingForPlayer(playerid, 2715, 372.1094, -188.6953, 1002.2813, 0.25);
  9307. RemoveBuildingForPlayer(playerid, 2717, 372.1094, -190.3438, 1002.2813, 0.25);
  9308. RemoveBuildingForPlayer(playerid, 2715, 377.1250, -188.7188, 1003.1094, 0.25);
  9309. RemoveBuildingForPlayer(playerid, 2717, 377.1172, -185.6172, 1003.1094, 0.25);
  9310. RemoveBuildingForPlayer(playerid, 2716, 377.1172, -182.5469, 1003.1094, 0.25);
  9311. RemoveBuildingForPlayer(playerid, 2432, 383.2188, -185.1328, 1002.0313, 0.25);
  9312. RemoveBuildingForPlayer(playerid, 2715, 379.4609, -179.1953, 1002.8125, 0.25);
  9313. /*
  9314. RemoveBuildingForPlayer(playerid, 717, 1703.9922, -1150.1484, 23.0938, 0.25);
  9315. RemoveBuildingForPlayer(playerid, 717, 1721.2344, -1150.1484, 23.0938, 0.25);
  9316. RemoveBuildingForPlayer(playerid, 1300, 1715.4922, -1037.9766, 23.2656, 0.25);
  9317. RemoveBuildingForPlayer(playerid, 1294, 1734.9531, -1156.9922, 27.3516, 0.25);
  9318. RemoveBuildingForPlayer(playerid, 717, 1738.7813, -1150.1484, 23.0938, 0.25);
  9319. RemoveBuildingForPlayer(playerid, 1227, 1789.7734, -1116.0625, 23.8906, 0.25);
  9320. RemoveBuildingForPlayer(playerid, 1227, 1789.9063, -1112.6406, 23.8906, 0.25);
  9321. RemoveBuildingForPlayer(playerid, 717, 1726.0000, -1064.8828, 23.1563, 0.25);
  9322. RemoveBuildingForPlayer(playerid, 4640, 1728.7891, -1065.0938, 24.5000, 0.25);
  9323. RemoveBuildingForPlayer(playerid, 1300, 1730.6328, -1033.6719, 23.2656, 0.25);
  9324. RemoveBuildingForPlayer(playerid, 4598, 1737.2031, -1052.8203, 23.3359, 0.25);
  9325. RemoveBuildingForPlayer(playerid, 4599, 1738.1875, -1044.9922, 22.9844, 0.25);
  9326. RemoveBuildingForPlayer(playerid, 1300, 1747.8594, -1063.2969, 23.2656, 0.25);
  9327. RemoveBuildingForPlayer(playerid, 717, 1758.3828, -1066.3594, 23.1797, 0.25);
  9328. RemoveBuildingForPlayer(playerid, 1300, 1758.0781, -1064.5547, 23.2656, 0.25);
  9329. RemoveBuildingForPlayer(playerid, 717, 1765.1563, -1042.5234, 23.1797, 0.25);
  9330. RemoveBuildingForPlayer(playerid, 1300, 1764.8594, -1040.7188, 23.2656, 0.25);
  9331. RemoveBuildingForPlayer(playerid, 4641, 1788.5391, -1026.3516, 24.5000, 0.25);*/
  9332. return 1;
  9333. }
  9334. stock FindVehicleByPlate(plate[])
  9335. {
  9336. for(new i = 0; i < MAX_CARS; i++)
  9337. {
  9338. if(CompareStrings(plate, Vehicles[i][vPlate]) && Vehicles[vehicle][vOwner] && !Vehicles[i][vDespawned])
  9339. {
  9340. return true;
  9341. }
  9342. }
  9343. return false;
  9344. }
  9345. stock RemoveVar(playerid, varname[])
  9346. {
  9347. return DeletePVar(playerid, varname);
  9348. }
  9349. stock SetIntVar(playerid, varname[], value)
  9350. {
  9351. return SetPVarInt(playerid, varname, value);
  9352. }
  9353. stock GetIntVar(playerid, varname[])
  9354. {
  9355. return GetPVarInt(playerid, varname);
  9356. }
  9357. stock SetFloatVar(playerid, varname[], Float:value)
  9358. {
  9359. return SetPVarFloat(playerid, varname, Float:value);
  9360. }
  9361. stock Float:GetFloatVar(playerid, varname[])
  9362. {
  9363. return GetPVarFloat(playerid, varname);
  9364. }
  9365. stock SetStringVar(playerid, varname[], value[])
  9366. {
  9367. return SetPVarString(playerid, varname, value);
  9368. }
  9369. stock GetStringVar(playerid, varname[])
  9370. {
  9371. new str[256];
  9372. GetPVarString(playerid, varname, str, sizeof(str));
  9373. return str;
  9374. }
  9375. stock HasAttachedObject(playerid, objectid)
  9376. {
  9377. for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++)
  9378. {
  9379. if(PoliceObjects[playerid][i] == objectid)
  9380. return true;
  9381. }
  9382. return false;
  9383. }
  9384. stock SetCallsign(vehicleid, callsign[])
  9385. {
  9386. new
  9387. Float:fSizeX,
  9388. Float:fSizeY,
  9389. Float:fSizeZ;
  9390. if (gCallsignText[vehicleid] != INVALID_3DTEXT_ID)
  9391. Delete3DTextLabel(gCallsignText[vehicleid]);
  9392. GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_SIZE, fSizeX, fSizeY, fSizeZ);
  9393. if(strlen(callsign) > 32)
  9394. {
  9395. new pos = 32;
  9396. if(pos < 32-1) pos = 32;
  9397. format(msg, sizeof(msg), "%.*s\n%s", pos, callsign, callsign[pos]);
  9398. gCallsignText[vehicleid] = Create3DTextLabel(msg, COLOR_WHITE, 0.0, 0.0, 0.0, 15.0, 0);
  9399. Attach3DTextLabelToVehicle(gCallsignText[vehicleid], vehicleid, -0.7, -2.4, -0.3);
  9400. }
  9401. else
  9402. {
  9403. gCallsignText[vehicleid] = Create3DTextLabel(callsign, COLOR_WHITE, 0.0, 0.0, 0.0, 15.0, 0);
  9404. Attach3DTextLabelToVehicle(gCallsignText[vehicleid], vehicleid, -0.7, -2.4, -0.3);
  9405. }
  9406. return 1;
  9407. }
  9408. stock RemoveCallsign(vehicleid)
  9409. {
  9410. Delete3DTextLabel(gCallsignText[vehicleid]);
  9411. gCallsignText[vehicleid] = INVALID_3DTEXT_ID;
  9412. return 1;
  9413. }
  9414. stock CheckAdmin(playerid, level)
  9415. {
  9416. if (Players[playerid][pAdmin] >= level)
  9417. return true;
  9418. else
  9419. return false;
  9420. }
  9421. stock GetPlayer2DZone(playerid, zone[], len)
  9422. {
  9423. new Float:x, Float:y, Float:z;
  9424. GetPlayerPos(playerid, x,y,z);
  9425. for(new i = 0; i != sizeof(gSAZones); i++)
  9426. {
  9427. if(x >= gSAZones[i][SAZONE_AREA][0] && x <= gSAZones[i][SAZONE_AREA][3] && y >= gSAZones[i][SAZONE_AREA][1] && y <= gSAZones[i][SAZONE_AREA][4])
  9428. {
  9429. return format(zone, len, gSAZones[i][SAZONE_NAME], 0);
  9430. }
  9431. }
  9432. return 0;
  9433. }
  9434. stock RemoveEquipment(playerid)
  9435. {
  9436. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  9437. return 0;
  9438. ResetWeapons(playerid);
  9439. SetPlayerValidArmor(playerid, 0.0);
  9440. new itemid;
  9441. while((itemid = GetInventoryItemID(playerid, "Desert Eagle")) >= 0)
  9442. {
  9443. RemoveItemFromInventory(playerid, itemid);
  9444. }
  9445. while((itemid = GetInventoryItemID(playerid, "Shotgun")) >= 0)
  9446. {
  9447. RemoveItemFromInventory(playerid, itemid);
  9448. }
  9449. while((itemid = GetInventoryItemID(playerid, "Cuffs")) >= 0)
  9450. {
  9451. RemoveItemFromInventory(playerid, itemid);
  9452. }
  9453. while((itemid = GetInventoryItemID(playerid, "Cuff Keys")) >= 0)
  9454. {
  9455. RemoveItemFromInventory(playerid, itemid);
  9456. }
  9457. while((itemid = GetInventoryItemID(playerid, "Medical Kit")) >= 0)
  9458. {
  9459. RemoveItemFromInventory(playerid, itemid);
  9460. }
  9461. while((itemid = GetInventoryItemID(playerid, "Nightstick")) >= 0)
  9462. {
  9463. RemoveItemFromInventory(playerid, itemid);
  9464. }
  9465. while((itemid = GetInventoryItemID(playerid, "Pepper Spray")) >= 0)
  9466. {
  9467. RemoveItemFromInventory(playerid, itemid);
  9468. }
  9469. while((itemid = GetInventoryItemID(playerid, "MP5")) >= 0)
  9470. {
  9471. RemoveItemFromInventory(playerid, itemid);
  9472. }
  9473. while((itemid = GetInventoryItemID(playerid, "M16")) >= 0)
  9474. {
  9475. RemoveItemFromInventory(playerid, itemid);
  9476. }
  9477. while((itemid = GetInventoryItemID(playerid, "Sniper Rifle")) >= 0)
  9478. {
  9479. RemoveItemFromInventory(playerid, itemid);
  9480. }
  9481. while((itemid = GetInventoryItemID(playerid, "Armor")) >= 0)
  9482. {
  9483. RemoveItemFromInventory(playerid, itemid);
  9484. }
  9485. return 1;
  9486. }
  9487. stock GetInitials(const string[])
  9488. {
  9489. new
  9490. ret[32],
  9491. index = 0;
  9492. for (new i = 0, l = strlen(string); i != l; i ++)
  9493. {
  9494. if (('A' <= string[i] <= 'Z') && (i == 0 || string[i - 1] == ' '))
  9495. ret[index++] = string[i];
  9496. }
  9497. return ret;
  9498. }
  9499. stock FaintPlayer(playerid)
  9500. {
  9501. new
  9502. Float:x,
  9503. Float:y,
  9504. Float:z;
  9505. GetPlayerPos(playerid, x, y, z);
  9506. if (!Players[playerid][pFainted])
  9507. {
  9508. if (GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  9509. {
  9510. SetPlayerPos(playerid, x, y, z + 1.5);
  9511. }
  9512. Players[playerid][pFainted] = 1;
  9513. TogglePlayerControllable(playerid, 0);
  9514. SetTimerEx("ResetFaint", 5000, false, "i", playerid);
  9515. if (!IsPlayerInAnyVehicle(playerid))
  9516. {
  9517. ApplyAnimation(playerid, "PED", "KO_skid_back", 4.1, 0, 0, 0, 1, 0, 1);
  9518. }
  9519. }
  9520. return 1;
  9521. }
  9522. IsVehicleSeatOccupied(vehicleid, seatid)
  9523. {
  9524. if (!GetVehicleModel(vehicleid))
  9525. {
  9526. return 0;
  9527. }
  9528. else
  9529. {
  9530. for (new i = 0; i < MAX_PLAYERS; i ++)
  9531. {
  9532. if (IsPlayerInVehicle(i, vehicleid) && GetPlayerVehicleSeat(i) == seatid)
  9533. {
  9534. return 1;
  9535. }
  9536. }
  9537. }
  9538. return 0;
  9539. }
  9540. GetVehicleNextSeat(vehicleid, seat = 1)
  9541. {
  9542. new
  9543. seats = GetVehicleSeats(vehicleid);
  9544. if (seats > 1)
  9545. {
  9546. for (new i = seat; i < seats; i ++)
  9547. {
  9548. if (!IsVehicleSeatOccupied(vehicleid, i))
  9549. {
  9550. return i;
  9551. }
  9552. }
  9553. }
  9554. return INVALID_ID;
  9555. }
  9556. GetVehicleSeats(vehicleid)
  9557. {
  9558. new
  9559. modelid = GetVehicleModel(vehicleid);
  9560. static const s_VehicleSeats[] =
  9561. {
  9562. 4, 2, 2, 2, 4, 4, 1, 2, 2, 4, 2, 2, 2, 4, 2, 2, 4, 2, 4, 2, 4, 4, 2, 2, 2, 1, 4, 4, 4, 2,
  9563. 1, 7, 1, 2, 2, 0, 2, 7, 4, 2, 4, 1, 2, 2, 2, 4, 1, 2, 1, 0, 0, 2, 1, 1, 1, 2, 2, 2, 4,
  9564. 4, 2, 2, 2, 2, 1, 1, 4, 4, 2, 2, 4, 2, 1, 1, 2, 2, 1, 2, 2, 4, 2, 1, 4, 3, 1, 1, 1, 4, 2,
  9565. 2, 4, 2, 4, 1, 2, 2, 2, 4, 4, 2, 2, 1, 2, 2, 2, 2, 2, 4, 2, 1, 1, 2, 1, 1, 2, 2, 4, 2, 2,
  9566. 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 1, 1, 1, 2, 2, 2, 2, 7, 7, 1, 4, 2, 2, 2, 2, 2, 4, 4,
  9567. 2, 2, 4, 4, 2, 1, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 1, 2, 4, 4, 1, 0, 0, 1, 1, 2, 1, 2, 2, 1, 2,
  9568. 4, 4, 2, 4, 1, 0, 4, 2, 2, 2, 2, 0, 0, 7, 2, 2, 1, 4, 4, 4, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0,
  9569. 4, 0, 0
  9570. };
  9571. return (modelid < 400 || modelid > 611) ? (0) : (s_VehicleSeats[(modelid - 400)]);
  9572. }
  9573. UpdateArrestPoint(point)
  9574. {
  9575. new string[64];
  9576. if (!ArrestPoints[point][apExists]) return 0;
  9577. format(string, sizeof(string), "ID: %i\nUse /arrest to turn in a suspect.", point);
  9578. DestroyDynamicPickup(ArrestPoints[point][apPickup]);
  9579. DestroyDynamic3DTextLabel(ArrestPoints[point][apText]);
  9580. ArrestPoints[point][apPickup] = CreateDynamicPickup(1247, 23, ArrestPoints[point][apX], ArrestPoints[point][apY], ArrestPoints[point][apZ], ArrestPoints[point][apWorld], ArrestPoints[point][apInterior]);
  9581. ArrestPoints[point][apText] = CreateDynamic3DTextLabel(string, COLOR_GREY, ArrestPoints[point][apX], ArrestPoints[point][apY], ArrestPoints[point][apZ], 10.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, ArrestPoints[point][apWorld], ArrestPoints[point][apInterior]);
  9582. return 1;
  9583. }
  9584. GetClosestArrestPoint(playerid)
  9585. {
  9586. for (new i = 0; i < MAX_ARREST_POINTS; i ++)
  9587. {
  9588. if (ArrestPoints[i][apExists] && IsPlayerNearPoint(playerid, 5.0, ArrestPoints[i][apX], ArrestPoints[i][apY], ArrestPoints[i][apZ], ArrestPoints[i][apInterior], ArrestPoints[i][apWorld]))
  9589. {
  9590. return i;
  9591. }
  9592. }
  9593. return INVALID_ID;
  9594. }
  9595. GetClosestShell(playerid)
  9596. {
  9597. for (new i = 0; i < MAX_SHELL_CASINGS; i ++)
  9598. {
  9599. if (ShellCasings[i][scExists] && IsPlayerNearPoint(playerid, 1.5, ShellCasings[i][scSpawn][0], ShellCasings[i][scSpawn][1], ShellCasings[i][scSpawn][2], ShellCasings[i][scInterior], ShellCasings[i][scWorld]))
  9600. {
  9601. return i;
  9602. }
  9603. }
  9604. return INVALID_ID;
  9605. }
  9606. /*GetClosestBlood(playerid)
  9607. {
  9608. for (new i = 0; i < MAX_BLOOD; i ++)
  9609. {
  9610. if (Bloods[i][blExists] && IsPlayerNearPoint(playerid, 1.5, Bloods[i][blSpawn][0], Bloods[i][blSpawn][1], Bloods[i][blSpawn][2], Bloods[i][blInterior], Bloods[i][blWorld]))
  9611. {
  9612. return i;
  9613. }
  9614. }
  9615. return INVALID_ID;
  9616. }*/
  9617. GetClosestWeedPlant(playerid)
  9618. {
  9619. for (new i = 0; i < MAX_WEEDPLANTS; i ++)
  9620. {
  9621. if (WeedPlants[i][wpExists] && IsPlayerNearPoint(playerid, 1.5, WeedPlants[i][wpSpawn][0], WeedPlants[i][wpSpawn][1], WeedPlants[i][wpSpawn][2], WeedPlants[i][wpInterior], WeedPlants[i][wpWorld]))
  9622. {
  9623. return i;
  9624. }
  9625. }
  9626. return INVALID_ID;
  9627. }
  9628. DeleteShellCasing(id)
  9629. {
  9630. if (id != INVALID_ID)
  9631. {
  9632. DestroyDynamicObject(ShellCasings[id][scObject]);
  9633. format(gExecute, sizeof(gExecute), "DELETE FROM rp_casings WHERE scID = %i", ShellCasings[id][scID]);
  9634. mysql_tquery(gConnection, gExecute);
  9635. ShellCasings[id][scExists] = 0;
  9636. ShellCasings[id][scID] = 0;
  9637. ShellCasings[id][scObject] = INVALID_OBJECT_ID;
  9638. }
  9639. return 1;
  9640. }
  9641. DeleteWeedPlant(id)
  9642. {
  9643. if (id != INVALID_ID)
  9644. {
  9645. DestroyDynamicObject(WeedPlants[id][wpObject]);
  9646. format(gExecute, sizeof(gExecute), "DELETE FROM rp_weedplants WHERE wpID = %i", WeedPlants[id][wpID]);
  9647. mysql_tquery(gConnection, gExecute);
  9648. WeedPlants[id][wpExists] = 0;
  9649. WeedPlants[id][wpID] = 0;
  9650. WeedPlants[id][wpObject] = INVALID_OBJECT_ID;
  9651. }
  9652. return 1;
  9653. }
  9654. /*
  9655. enum e_Bloods
  9656. {
  9657. blID,
  9658. blExists,
  9659. blType,
  9660. blOwner[24],
  9661. Float:blSpawn[3],
  9662. blInterior,
  9663. blWorld,
  9664. blObject,
  9665. blTime
  9666. }
  9667. */
  9668. /*
  9669. if (!IsPlayerInAnyVehicle(playerid) && GetPlayerPos(playerid, x, y, z))
  9670. {
  9671. if (!IsPlayerInAir(playerid))
  9672. {
  9673. SetTimerEx("DeleteObject", 300000, false, "i", CreateDynamicObject(19836, x, y, z - 0.95, 0.0, 0.0, 0.0, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid)));
  9674. }
  9675. //SetTimerEx("DeleteObject", 1000, false, "i", CreateDynamicObject(18668, x, y, z - 1.7, 0.0, 0.0, 0.0));
  9676. }
  9677. */
  9678. /*AddBlood(playerid, Float:x, Float:y, Float:z, interior, world)
  9679. {
  9680. new
  9681. id = GetNextBloodID();
  9682. if(IsPlayerInAnyVehicle(playerid))
  9683. return 0;
  9684. if(IsPlayerInAir(playerid))
  9685. return 0;
  9686. if (id != INVALID_ID)
  9687. {
  9688. Bloods[id][blExists] = 1;
  9689. Bloods[id][blType] = 1;
  9690. Bloods[id][blTime] = gettime();
  9691. Bloods[id][blSpawn][0] = x;
  9692. Bloods[id][blSpawn][1] = y;
  9693. Bloods[id][blSpawn][2] = z;
  9694. Bloods[id][blInterior] = interior;
  9695. Bloods[id][blWorld] = world;
  9696. strcpy(Bloods[id][blOwner], ReturnName(playerid), 24);
  9697. UpdateBlood(id);
  9698. //format(gExecute, sizeof(gExecute), "INSERT INTO rp_blood (blType, blTime, blX, blY, blZ, blInterior, blWorld, blOwner) VALUES(%i, %i, %.4f, %.4f, %.4f, %i, %i, '%s')", Bloods[id][blType], Bloods[id][blTime], x, y, z, interior, world, Bloods[id][blOwner]);
  9699. //mysql_tquery(gConnection, gExecute, "OnBloodAdded", "i", id);
  9700. }
  9701. return id;
  9702. }*/
  9703. AddWeedPlant(playerid, Float:x, Float:y, Float:z, interior, world)
  9704. {
  9705. new
  9706. id = GetNextWeedPlantID();
  9707. if (IsPlayerInAnyVehicle(playerid))
  9708. return 0;
  9709. if (IsPlayerInAir(playerid))
  9710. return 0;
  9711. if (id != INVALID_ID)
  9712. {
  9713. WeedPlants[id][wpExists] = 1;
  9714. WeedPlants[id][wpTime] = 0;
  9715. WeedPlants[id][wpSpawn][0] = x;
  9716. WeedPlants[id][wpSpawn][1] = y;
  9717. WeedPlants[id][wpSpawn][2] = z;
  9718. WeedPlants[id][wpInterior] = interior;
  9719. WeedPlants[id][wpWorld] = world;
  9720. strcpy(WeedPlants[id][wpOwner], ReturnName(playerid), 24);
  9721. UpdateWeedPlant(id);
  9722. format(gExecute, sizeof(gExecute), "INSERT INTO rp_weedplants (wpTime, wpX, wpY, wpZ, wpInterior, wpWorld, wpOwner) VALUES(%i, %.4f, %.4f, %.4f, %i, %i, '%s')", WeedPlants[id][wpTime], x, y, z, interior, world, WeedPlants[id][wpOwner]);
  9723. mysql_tquery(gConnection, gExecute, "OnWeedPlantAdded", "i", id);
  9724. }
  9725. return id;
  9726. }
  9727. /*AddShellCasing(serial, weaponid, Float:x, Float:y, Float:z, interior, world)
  9728. {
  9729. new
  9730. id = GetNextShellCasingID();
  9731. if (id != INVALID_ID)
  9732. {
  9733. ShellCasings[id][scExists] = 1;
  9734. ShellCasings[id][scSerial] = serial;
  9735. ShellCasings[id][scWeapon] = weaponid;
  9736. ShellCasings[id][scTime] = gettime();
  9737. ShellCasings[id][scSpawn][0] = x;
  9738. ShellCasings[id][scSpawn][1] = y;
  9739. ShellCasings[id][scSpawn][2] = z;
  9740. ShellCasings[id][scInterior] = interior;
  9741. ShellCasings[id][scWorld] = world;
  9742. ShellCasings[id][scObject] = INVALID_OBJECT_ID;
  9743. UpdateShellCasing(id);
  9744. format(gExecute, sizeof(gExecute), "INSERT INTO rp_casings (scSerial, scWeapon, scTime, scX, scY, scZ, scInterior, scWorld) VALUES(%i, %i, %i, %.4f, %.4f, %.4f, %i, %i)", serial, weaponid, ShellCasings[id][scTime], x, y, z, interior, world);
  9745. mysql_tquery(gConnection, gExecute, "OnShellCasingAdded", "i", id);
  9746. }
  9747. return id;
  9748. }*/
  9749. UpdateShellCasing(id)
  9750. {
  9751. if (!ShellCasings[id][scExists]) return 0;
  9752. DestroyDynamicObject(ShellCasings[id][scObject]);
  9753. ShellCasings[id][scObject] = CreateDynamicObject(3027, ShellCasings[id][scSpawn][0], ShellCasings[id][scSpawn][1], ShellCasings[id][scSpawn][2] - 0.95, 0.0, 90.0, 0.0, ShellCasings[id][scWorld], ShellCasings[id][scInterior], .streamdistance = 20.0);
  9754. SetDynamicObjectMaterial(ShellCasings[id][scObject], 0, 2061, "cj_ammo", "CJ_BULLETBRASS");
  9755. return 1;
  9756. }
  9757. /*UpdateBlood(id)
  9758. {
  9759. if (!Bloods[id][blExists]) return 0;
  9760. DestroyDynamicObject(Bloods[id][blObject]);
  9761. Bloods[id][blObject] = CreateDynamicObject(19836, Bloods[id][blSpawn][0], Bloods[id][blSpawn][1], Bloods[id][blSpawn][2] - 0.95, 0.0, 0.0, 0.0, Bloods[id][blWorld], Bloods[id][blInterior], .streamdistance = 20.0);
  9762. return 1;
  9763. }*/
  9764. UpdateWeedPlant(id)
  9765. {
  9766. if (!WeedPlants[id][wpExists]) return 0;
  9767. DestroyDynamicObject(WeedPlants[id][wpObject]);
  9768. WeedPlants[id][wpObject] = CreateDynamicObject(19473, WeedPlants[id][wpSpawn][0], WeedPlants[id][wpSpawn][1], WeedPlants[id][wpSpawn][2] - 0.95, 0.0, 0.0, 0.0, WeedPlants[id][wpWorld], WeedPlants[id][wpInterior], .streamdistance = 20.0);
  9769. return 1;
  9770. }
  9771. SaveDealershipCar(id)
  9772. {
  9773. static
  9774. queryString[128];
  9775. if (!DealershipCars[id][dcExists]) return 0;
  9776. format(queryString, sizeof(queryString), "UPDATE rp_dealercars SET Model = %i, Price = %i WHERE ID = %i", DealershipCars[id][dcModel], DealershipCars[id][dcPrice], DealershipCars[id][dcID]);
  9777. return mysql_tquery(gConnection, queryString);
  9778. }
  9779. GetClosestATM(playerid)
  9780. {
  9781. for (new i = 0; i < MAX_ATMS; i ++)
  9782. {
  9783. if (ATM[i][atmExists] && IsPlayerNearPoint(playerid, 2.0, ATM[i][atmSpawn][0], ATM[i][atmSpawn][1], ATM[i][atmSpawn][2], ATM[i][atmInterior], ATM[i][atmWorld]))
  9784. {
  9785. return i;
  9786. }
  9787. }
  9788. return INVALID_ID;
  9789. }
  9790. SaveATM(id)
  9791. {
  9792. static
  9793. queryString[192];
  9794. if (!ATM[id][atmExists]) return 0;
  9795. format(queryString, sizeof(queryString), "UPDATE rp_atms SET atmX = %.4f, atmY = %.4f, atmZ = %.4f, atmA = %.4f, atmInterior = %i, atmWorld = %i WHERE atmID = %i",
  9796. ATM[id][atmSpawn][0],
  9797. ATM[id][atmSpawn][1],
  9798. ATM[id][atmSpawn][2],
  9799. ATM[id][atmSpawn][3],
  9800. ATM[id][atmInterior],
  9801. ATM[id][atmWorld],
  9802. ATM[id][atmID]
  9803. );
  9804. return mysql_tquery(gConnection, queryString);
  9805. }
  9806. UpdateATM(id)
  9807. {
  9808. new string[64];
  9809. if (!ATM[id][atmExists])
  9810. {
  9811. return 0;
  9812. }
  9813. DestroyDynamic3DTextLabel(ATM[id][atmText]);
  9814. DestroyDynamicObject(ATM[id][atmObject]);
  9815. format(string, sizeof(string), "ID: %i\nPress Y to use machine", id);
  9816. ATM[id][atmObject] = CreateDynamicObject(19526, ATM[id][atmSpawn][0], ATM[id][atmSpawn][1], ATM[id][atmSpawn][2], 0.0, 0.0, ATM[id][atmSpawn][3], ATM[id][atmWorld], ATM[id][atmInterior]);
  9817. ATM[id][atmText] = CreateDynamic3DTextLabel(string, COLOR_GREY, ATM[id][atmSpawn][0], ATM[id][atmSpawn][1], ATM[id][atmSpawn][2] + 0.9, 5.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, ATM[id][atmWorld], ATM[id][atmInterior]);
  9818. return 1;
  9819. }
  9820. StopRepairing(playerid)
  9821. {
  9822. if (Players[playerid][pRepairCar])
  9823. {
  9824. KillTimer(Timers[playerid][tRepair]);
  9825. Players[playerid][pRepairCar] = 0;
  9826. }
  9827. }
  9828. StopWorking(playerid)
  9829. {
  9830. if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_CARRY)
  9831. {
  9832. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE);
  9833. RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_MISC);
  9834. }
  9835. if (IsValidVehicle(Players[playerid][pWorkVehicle]) && IsValidDynamicObject(VehicleInformation[Players[playerid][pWorkVehicle]][vObject]))
  9836. {
  9837. DestroyDynamicObject(VehicleInformation[Players[playerid][pWorkVehicle]][vObject]);
  9838. VehicleInformation[Players[playerid][pWorkVehicle]][vObject] = INVALID_OBJECT_ID;
  9839. }
  9840. if (Players[playerid][pJob] == JOB_TRASHMAN)
  9841. {
  9842. ClearTrashBags(playerid);
  9843. }
  9844. Players[playerid][pWorking] = 0;
  9845. Players[playerid][pWorkVehicle] = INVALID_VEHICLE_ID;
  9846. Players[playerid][pTrash] = 0;
  9847. Players[playerid][pTrashPickup] = 0;
  9848. ResetCheckpoint(playerid);
  9849. }
  9850. StartWorking(playerid)
  9851. {
  9852. switch (Players[playerid][pJob])
  9853. {
  9854. case JOB_FORKLIFTER:
  9855. {
  9856. switch (random(5))
  9857. {
  9858. case 0: SetCheckpoint(playerid, CHECKPOINT_JOB, 2756.0898, -2568.1514, 13.3329, 2.0);
  9859. case 1: SetCheckpoint(playerid, CHECKPOINT_JOB, 2396.0554, -2507.3931, 13.6478, 2.0);
  9860. case 2: SetCheckpoint(playerid, CHECKPOINT_JOB, 2350.6902, -2329.9878, 13.5469, 2.0);
  9861. case 3: SetCheckpoint(playerid, CHECKPOINT_JOB, 2204.1365, -2592.5439, 13.5409, 2.0);
  9862. case 4: SetCheckpoint(playerid, CHECKPOINT_JOB, 2450.6052, -2628.4292, 13.6645, 2.0);
  9863. }
  9864. Players[playerid][pJobStage] = 0;
  9865. Players[playerid][pWorking] = 1;
  9866. }
  9867. }
  9868. }
  9869. StopPicking(playerid)
  9870. {
  9871. if (Players[playerid][pPicking] == PICK_LOCK_VEHICLE)
  9872. {
  9873. SetAlarmStatus(Vehicles[Players[playerid][pPickID]][vVehicle], false);
  9874. }
  9875. Players[playerid][pPicking] = PICK_LOCK_NONE;
  9876. Players[playerid][pPickID] = INVALID_ID;
  9877. Players[playerid][pPickTime] = 0;
  9878. PlayerPlaySound(playerid, 9202, 0.0, 0.0, 0.0);
  9879. PlayerPlaySound(playerid, 1036, 0.0, 0.0, 0.0);
  9880. }
  9881. ClearTrashBags(playerid)
  9882. {
  9883. for (new i = 0; i < sizeof(g_TrashPickups); i ++)
  9884. {
  9885. if (IsValidPlayerObject(playerid, gTrashObjects[playerid][i]))
  9886. {
  9887. DestroyPlayerObject(playerid, gTrashObjects[playerid][i]);
  9888. gTrashObjects[playerid][i] = INVALID_OBJECT_ID;
  9889. }
  9890. }
  9891. }
  9892. PickLock(playerid, type, id)
  9893. {
  9894. Players[playerid][pPicking] = type;
  9895. Players[playerid][pPickID] = id;
  9896. switch (type)
  9897. {
  9898. case PICK_LOCK_HOUSE:
  9899. {
  9900. if (Houses[id][hAlarm])
  9901. {
  9902. foreach (new i : Player)
  9903. {
  9904. if (GetCurrentHouse(i) == id)
  9905. {
  9906. PlayerPlaySound(i, 9200, Houses[id][hInt][0], Houses[id][hInt][1], Houses[id][hInt][2]);
  9907. }
  9908. if (IsHouseOwner(i, id))
  9909. {
  9910. SendFormatMessage(i, COLOR_YELLOW, "* Text from Home Security: The alarm has been activated at %s from a possible intruder!", Houses[id][hAddress]);
  9911. }
  9912. if (GetPlayerFactionType(i) == FACTION_LEO)
  9913. {
  9914. SendFormatMessage(i, COLOR_RED, "* [DISPATCH] House Alarm has been Activated any available units please respond.");
  9915. SendFormatMessage(i, COLOR_RED, "* [DISPATCH] House located in %s, address: '%s' *", GetZoneName(Houses[id][hSpawn][0], Houses[id][hSpawn][1], Houses[id][hSpawn][2]), Houses[id][hAddress]);
  9916. //break;
  9917. }
  9918. }
  9919. /*foreach (new j : Player)
  9920. {
  9921. if (GetPlayerFactionType(j) == FACTION_LEO)
  9922. {
  9923. SendFormatMessage(j, COLOR_RED, "* [ALARM] House located in %s, address: '%s' *", GetZoneName(Houses[id][hSpawn][0], Houses[id][hSpawn][1], Houses[id][hSpawn][2]), Houses[id][hAddress]);
  9924. //break;
  9925. }
  9926. }*/
  9927. PlayerPlaySound(playerid, 9200, Houses[id][hSpawn][0], Houses[id][hSpawn][1], Houses[id][hSpawn][2]);
  9928. }
  9929. Players[playerid][pPickTime] = 45;
  9930. }
  9931. case PICK_LOCK_SAFE:
  9932. {
  9933. new hid = GetNearbyHouse(playerid);
  9934. if (Houses[hid][hAlarm])
  9935. {
  9936. foreach (new i : Player)
  9937. {
  9938. /*if (GetCurrentHouse(i) == hid)
  9939. {
  9940. PlayerPlaySound(i, 9200, Houses[hid][hInt][0], Houses[hid][hInt][1], Houses[hid][hInt][2]);
  9941. }*/
  9942. if (IsHouseOwner(i, hid))
  9943. {
  9944. SendFormatMessage(i, COLOR_YELLOW, "* Text from Home Security: The alarm has been activated at %s from a possible intruder!", Houses[hid][hAddress]);
  9945. }
  9946. if (GetPlayerFactionType(i) == FACTION_LEO)
  9947. {
  9948. SendFormatMessage(i, COLOR_RED, "* [DISPATCH] House SAFE Alarm has been Activated any available units please respond.");
  9949. SendFormatMessage(i, COLOR_RED, "* [DISPATCH] House located in %s, address: '%s' *", GetZoneName(Houses[hid][hSpawn][0], Houses[hid][hSpawn][1], Houses[hid][hSpawn][2]), Houses[hid][hAddress]);
  9950. //break;
  9951. }
  9952. }
  9953. //PlayerPlaySound(playerid, 9200, Houses[hid][hSpawn][0], Houses[hid][hSpawn][1], Houses[hid][hSpawn][2]);
  9954. }
  9955. Players[playerid][pPickTime] = 45;
  9956. }
  9957. case PICK_LOCK_COMPANY:
  9958. {
  9959. foreach (new i : Player)
  9960. {
  9961. /*if (GetCurrentCompany(i) == id)
  9962. {
  9963. PlayerPlaySound(i, 9200, Companies[id][cInt][0], Companies[id][cInt][1], Companies[id][cInt][2]);
  9964. }*/
  9965. if (IsCompanyOwner(i, id))
  9966. {
  9967. SendFormatMessage(i, COLOR_YELLOW, "* Text from CompSec: The alarm has been activated at %s from a possible intruder!", Companies[id][cName]);
  9968. }
  9969. if (GetPlayerFactionType(i) == FACTION_LEO)
  9970. {
  9971. SendFormatMessage(i, COLOR_DARKGREEN, "* [DISPATCH] Company Alarm has been Activated any available units please respond, CODE-3.");
  9972. SendFormatMessage(i, COLOR_DARKGREEN, "* [DISPATCH] Company located in %s, company name: '%s' *", GetZoneName(Companies[id][cSpawn][0], Companies[id][cSpawn][1], Companies[id][cSpawn][2]), Companies[id][cName]);
  9973. }
  9974. }
  9975. Players[playerid][pPickTime] = 50;
  9976. }
  9977. case PICK_LOCK_VEHICLE:
  9978. {
  9979. Players[playerid][pPickTime] = 40;
  9980. if (Vehicles[id][vAlarm])
  9981. {
  9982. SetAlarmStatus(Vehicles[id][vVehicle], true);
  9983. }
  9984. }
  9985. }
  9986. }
  9987. /*SpawnBloodObject(playerid)
  9988. {
  9989. new Float:x, Float:y, Float:z;
  9990. if (!IsPlayerInAnyVehicle(playerid) && GetPlayerPos(playerid, x, y, z))
  9991. {
  9992. if (!IsPlayerInAir(playerid))
  9993. {
  9994. SetTimerEx("DeleteObject", 300000, false, "i", CreateDynamicObject(19836, x, y, z - 0.95, 0.0, 0.0, 0.0, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid)));
  9995. }
  9996. //SetTimerEx("DeleteObject", 1000, false, "i", CreateDynamicObject(18668, x, y, z - 1.7, 0.0, 0.0, 0.0));
  9997. }
  9998. }*/
  9999. ShowSettings(playerid)
  10000. {
  10001. new string[512];
  10002. string = "Name\tStatus";
  10003. if (Players[playerid][pShowPM])
  10004. {
  10005. format(string, sizeof(string), "%s\nPrivate Messages\t{33CC33}Enabled", string);
  10006. }
  10007. else
  10008. {
  10009. format(string, sizeof(string), "%s\nPrivate Messages\t{FF5030}Disabled", string);
  10010. }
  10011. if (Players[playerid][pShowSpeed])
  10012. {
  10013. format(string, sizeof(string), "%s\nSpeedometer\t\t{33CC33}Enabled", string);
  10014. }
  10015. else
  10016. {
  10017. format(string, sizeof(string), "%s\nSpeedometer\t\t{FF5030}Disabled", string);
  10018. }
  10019. if (Players[playerid][pShowFuel])
  10020. {
  10021. format(string, sizeof(string), "%s\nFuel Gauge\t\t{33CC33}Enabled", string);
  10022. }
  10023. else
  10024. {
  10025. format(string, sizeof(string), "%s\nFuel Gauge\t\t{FF5030}Disabled", string);
  10026. }
  10027. if (Players[playerid][pShowTime])
  10028. {
  10029. format(string, sizeof(string), "%s\nTime Textdraw\t\t{33CC33}Enabled", string);
  10030. }
  10031. else
  10032. {
  10033. format(string, sizeof(string), "%s\nTime Textdraw\t\t{FF5030}Disabled", string);
  10034. }
  10035. if (Players[playerid][pShowOOC])
  10036. {
  10037. format(string, sizeof(string), "%s\nOOC Chat\t\t{33CC33}Enabled", string);
  10038. }
  10039. else
  10040. {
  10041. format(string, sizeof(string), "%s\nOOC Chat\t\t{FF5030}Disabled", string);
  10042. }
  10043. if (Players[playerid][pAdmin] > 0 || Players[playerid][pSupporter] > 0)
  10044. {
  10045. if (Players[playerid][pShowSupporter])
  10046. {
  10047. format(string, sizeof(string), "%s\nSupporter Chat\t\t{33CC33}Enabled", string);
  10048. }
  10049. else
  10050. {
  10051. format(string, sizeof(string), "%s\nSupporter Chat\t\t{FF5030}Disabled", string);
  10052. }
  10053. }
  10054. if (Players[playerid][pAdmin] > 0)
  10055. {
  10056. if (Players[playerid][pShowReports])
  10057. {
  10058. format(string, sizeof(string), "%s\nReports\t\t{33CC33}Enabled", string);
  10059. }
  10060. else
  10061. {
  10062. format(string, sizeof(string), "%s\nReports\t\t{FF5030}Disabled", string);
  10063. }
  10064. if (Players[playerid][pShowAdmin])
  10065. {
  10066. format(string, sizeof(string), "%s\nAdmin Chat\t\t{33CC33}Enabled", string);
  10067. }
  10068. else
  10069. {
  10070. format(string, sizeof(string), "%s\nAdmin Chat\t\t{FF5030}Disabled", string);
  10071. }
  10072. }
  10073. Dialog_Show(playerid, MySettings, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Settings", string, "Switch", "Cancel");
  10074. return 1;
  10075. }
  10076. /*stock GetComponentName(componentid)
  10077. {
  10078. new modname[64];
  10079. switch (componentid)
  10080. {
  10081. case 1000: modname = "Pro Spoiler";
  10082. case 1001: modname = "Win Spoiler";
  10083. case 1002: modname = "Drag Spoiler";
  10084. case 1003: modname = "Alpha Spoiler";
  10085. case 1004: modname = "Champ Scoop";
  10086. case 1005: modname = "Fury Scoop";
  10087. case 1006: modname = "Roof Scoop";
  10088. case 1007: modname = "Right Sideskirt";
  10089. case 1008: modname = "5x Nitrous";
  10090. case 1009: modname = "2x Nitrous";
  10091. case 1010: modname = "10x Nitrous";
  10092. case 1011: modname = "Race Scoop";
  10093. case 1012: modname = "Worx Scoop";
  10094. case 1013: modname = "Round Fog Lamp";
  10095. case 1014: modname = "Champ Spoiler";
  10096. case 1015: modname = "Race Spoiler";
  10097. case 1016: modname = "Worx Spoiler";
  10098. case 1017: modname = "Left Sideskirt";
  10099. case 1018: modname = "Upswept Exhaust";
  10100. case 1019: modname = "Twin Exhaust";
  10101. case 1020: modname = "Large Exhaust";
  10102. case 1021: modname = "Medium Exhaust";
  10103. case 1022: modname = "Small Exhaust";
  10104. case 1023: modname = "Fury Spoiler";
  10105. case 1024: modname = "Square Fog Lights";
  10106. case 1025: modname = "Offroad";
  10107. case 1026, 1036, 1047, 1056, 1069, 1090: modname = "Right Alien Sideskirt";
  10108. case 1027, 1040, 1051, 1062, 1071, 1094: modname = "Left Alien Sideskirt";
  10109. case 1028, 1034, 1046, 1064, 1065, 1092: modname = "Alien Exhaust";
  10110. case 1029, 1037, 1045, 1059, 1066, 1089: modname = "X-Flow Exhaust";
  10111. case 1030, 1039, 1048, 1057, 1070, 1095: modname = "Right X-Flow Sideskirt";
  10112. case 1031, 1041, 1052, 1063, 1072, 1093: modname = "Left X-Flow Sideskirt";
  10113. case 1032, 1038, 1054, 1055, 1067, 1088: modname = "Alien Roof Vent";
  10114. case 1033, 1035, 1053, 1061, 1068, 1091: modname = "X-Flow Roof Vent";
  10115. case 1042: modname = "Right Chrome Sideskirt";
  10116. case 1099: modname = "Left Chrome Sideskirt";
  10117. case 1043, 1105, 1114, 1127, 1132, 1135: modname = "Slamin Exhaust";
  10118. case 1044, 1104, 1113, 1126, 1129, 1136: modname = "Chrome Exhaust";
  10119. case 1050, 1058, 1139, 1146, 1158, 1163: modname = "X-Flow Spoiler";
  10120. case 1049, 1060, 1138, 1147, 1162, 1164: modname = "Alien Spoiler";
  10121. case 1073: modname = "Shadow";
  10122. case 1074: modname = "Mega";
  10123. case 1075: modname = "Rimshine";
  10124. case 1076: modname = "Wires";
  10125. case 1077: modname = "Classic";
  10126. case 1078: modname = "Twist";
  10127. case 1079: modname = "Cutter";
  10128. case 1080: modname = "Stitch";
  10129. case 1081: modname = "Grove";
  10130. case 1082: modname = "Import";
  10131. case 1083: modname = "Dollar";
  10132. case 1084: modname = "Trance";
  10133. case 1085: modname = "Atomic";
  10134. case 1086: modname = "Stereo";
  10135. case 1087: modname = "Hydraulics";
  10136. case 1096: modname = "Ahab";
  10137. case 1097: modname = "Virtual";
  10138. case 1098: modname = "Access";
  10139. case 1100: modname = "Chrome Grill";
  10140. case 1101: modname = "Left Chrome Flames Sideskirt";
  10141. case 1102, 1107: modname = "Left Chrome Strip Sideskirt";
  10142. case 1103: modname = "Convertible Roof";
  10143. case 1106, 1124: modname = "Left Chrome Arches Sideskirt";
  10144. case 1108, 1133, 1134: modname = "Right Chrome Strip Sideskirt";
  10145. case 1109: modname = "Chrome Rear Bullbars";
  10146. case 1110: modname = "Slamin Rear Bullbars";
  10147. case 1111, 1112: modname = "Front Sign";
  10148. case 1115: modname = "Chrome Front Bullbars";
  10149. case 1116: modname = "Slamin Front Bullbars";
  10150. case 1117, 1174, 1179, 1182, 1189, 1191: modname = "Chrome Front Bumper";
  10151. case 1175, 1181, 1185, 1188, 1190: modname = "Slamin Front Bumper";
  10152. case 1176, 1180, 1184, 1187, 1192: modname = "Chrome Rear Bumper";
  10153. case 1177, 1178, 1183, 1186, 1193: modname = "Slamin Rear Bumper";
  10154. case 1118: modname = "Right Chrome Trim Sideskirt";
  10155. case 1119: modname = "Right Wheelcovers Sideskirt";
  10156. case 1120: modname = "Left Chrome Trim Sideskirt";
  10157. case 1121: modname = "Left Wheelcovers Sideskirt";
  10158. case 1122: modname = "Right Chrome Flames Sideskirt";
  10159. case 1123: modname = "Bullbar Chrome Bars";
  10160. case 1125: modname = "Bullbar Chrome Lights";
  10161. case 1128: modname = "Vinyl Hardtop Roof";
  10162. case 1130: modname = "Hardtop Roof";
  10163. case 1131: modname = "Softtop Roof";
  10164. case 1140, 1148, 1151, 1156, 1161, 1167: modname = "X-Flow Rear Bumper";
  10165. case 1141, 1149, 1150, 1154, 1159, 1168: modname = "Alien Rear Bumper";
  10166. case 1142: modname = "Left Oval Vent";
  10167. case 1143: modname = "Right Oval Vent";
  10168. case 1144: modname = "Left Square Vent";
  10169. case 1145: modname = "Right Square Vent";
  10170. case 1152, 1157, 1165, 1170, 1172, 1173: modname = "X-Flow Front Bumper";
  10171. case 1153, 1155, 1160, 1166, 1169, 1171: modname = "Alien Front Bumper";
  10172. }
  10173. return modname;
  10174. }*/
  10175. SaveComponent(id, slot)
  10176. {
  10177. static
  10178. queryString[200];
  10179. if (!Vehicles[id][vExists]) return 0;
  10180. format(queryString, sizeof(queryString), "INSERT INTO rp_vehiclemods VALUES(%i, %i, %i) ON DUPLICATE KEY UPDATE vComponent = %i", Vehicles[id][vID], slot, Vehicles[id][vMods][slot], Vehicles[id][vMods][slot]);
  10181. return mysql_tquery(gConnection, queryString);
  10182. }
  10183. SaveVehicle(id)
  10184. {
  10185. static
  10186. queryString[1024];
  10187. if (!Vehicles[id][vExists])
  10188. {
  10189. return 0;
  10190. }
  10191. format(queryString, sizeof(queryString), "UPDATE rp_vehicles SET vPlate = '%s', vRegistered = '%s', vCompany = %i, vOwner = %i, vModel = %i, vPrice = %i, vRentable = %i, vX = %.4f, vY = %.4f, vZ = %.4f, vA = %.4f, vColor1 = %i, vColor2 = %i, vPaintjob = %i, vLocked = %i, vTrunkMoney = %i",
  10192. mysql_escaped(Vehicles[id][vPlate]),
  10193. Vehicles[id][vRegistered],
  10194. Vehicles[id][vCompany],
  10195. Vehicles[id][vOwner],
  10196. Vehicles[id][vModel],
  10197. Vehicles[id][vPrice],
  10198. Vehicles[id][vRentable],
  10199. Vehicles[id][vSpawn][0],
  10200. Vehicles[id][vSpawn][1],
  10201. Vehicles[id][vSpawn][2],
  10202. Vehicles[id][vSpawn][3],
  10203. Vehicles[id][vColor1],
  10204. Vehicles[id][vColor2],
  10205. Vehicles[id][vPaintjob],
  10206. Vehicles[id][vLocked],
  10207. Vehicles[id][vTrunkMoney]
  10208. );
  10209. format(queryString, sizeof(queryString), "%s, vFaction = %i, vSiren = %i, vAlarm = %i, vImpound = %i, vDespawned = %i WHERE vID = %i",
  10210. queryString,
  10211. Vehicles[id][vFaction],
  10212. Vehicles[id][vSiren],
  10213. Vehicles[id][vAlarm],
  10214. Vehicles[id][vImpound],
  10215. Vehicles[id][vDespawned],
  10216. Vehicles[id][vID]
  10217. );
  10218. return mysql_tquery(gConnection, queryString);
  10219. }
  10220. UpdateVehicle(id)
  10221. {
  10222. new
  10223. string[48];
  10224. if (Vehicles[id][vRentable])
  10225. {
  10226. if (Vehicles[id][vLocked])
  10227. {
  10228. Vehicles[id][vLocked] = 0;
  10229. }
  10230. if (Vehicles[id][vRenter] != INVALID_PLAYER_ID)
  10231. {
  10232. Players[Vehicles[id][vRenter]][pRental] = INVALID_ID;
  10233. Vehicles[id][vRenter] = INVALID_PLAYER_ID;
  10234. }
  10235. }
  10236. DestroyVehicleEx(Vehicles[id][vVehicle]);
  10237. DestroyDynamic3DTextLabel(Vehicles[id][vText]);
  10238. if (!Vehicles[id][vImpound] && !Vehicles[id][vDespawned])
  10239. {
  10240. Vehicles[id][vVehicle] = SpawnVehicle(Vehicles[id][vModel], Vehicles[id][vSpawn][0], Vehicles[id][vSpawn][1], Vehicles[id][vSpawn][2], Vehicles[id][vSpawn][3], Vehicles[id][vColor1], Vehicles[id][vColor2], (Vehicles[id][vFaction] > 0) ? (1800) : (0), Vehicles[id][vSiren]);
  10241. if (Vehicles[id][vVehicle] != INVALID_VEHICLE_ID)
  10242. {
  10243. SetVehicleNumberPlate(Vehicles[id][vVehicle], Vehicles[id][vPlate]);
  10244. ResyncVehicle(Vehicles[id][vVehicle]);
  10245. if (Vehicles[id][vRentable])
  10246. {
  10247. format(string, sizeof(string), "You can rent this vehicle!\nPrice: {33AA33}%s", FormatNumber(Vehicles[id][vPrice]));
  10248. Vehicles[id][vText] = CreateDynamic3DTextLabel(string, COLOR_GREY, 0.0, 0.0, 0.0, 10.0, INVALID_PLAYER_ID, Vehicles[id][vVehicle]);
  10249. }
  10250. ApplyModifications(id);
  10251. }
  10252. }
  10253. else
  10254. {
  10255. Vehicles[id][vVehicle] = INVALID_VEHICLE_ID;
  10256. }
  10257. return 1;
  10258. }
  10259. ApplyModifications(id)
  10260. {
  10261. if (IsValidVehicleID(id) && IsValidVehicle(Vehicles[id][vVehicle]))
  10262. {
  10263. ChangeVehicleColor(Vehicles[id][vVehicle], Vehicles[id][vColor1], Vehicles[id][vColor2]);
  10264. if (Vehicles[id][vPaintjob] != INVALID_ID)
  10265. {
  10266. ChangeVehiclePaintjob(Vehicles[id][vVehicle], Vehicles[id][vPaintjob]);
  10267. }
  10268. for (new i = 0; i < 14; i ++)
  10269. {
  10270. if (Vehicles[id][vMods][i] > 0)
  10271. {
  10272. AddVehicleComponent(Vehicles[id][vVehicle], Vehicles[id][vMods][i]);
  10273. }
  10274. }
  10275. SetLockStatus(Vehicles[id][vVehicle], Vehicles[id][vLocked]);
  10276. }
  10277. }
  10278. ToggleVehicleSiren(vehicleid)
  10279. {
  10280. new
  10281. Float:x,
  10282. Float:y,
  10283. Float:z,
  10284. Float:tmp;
  10285. if (gSirenObject[vehicleid] == INVALID_OBJECT_ID)
  10286. {
  10287. GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_SIZE, z, z, z);
  10288. GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_FRONTSEAT, x, y, tmp);
  10289. gSirenObject[vehicleid] = CreateDynamicObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  10290. AttachDynamicObjectToVehicle(gSirenObject[vehicleid], vehicleid, -x, y, z / 1.9, 0.0, 0.0, 0.0);
  10291. }
  10292. else
  10293. {
  10294. AttachDynamicObjectToVehicle(gSirenObject[vehicleid], INVALID_VEHICLE_ID, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  10295. DestroyDynamicObject(gSirenObject[vehicleid]);
  10296. gSirenObject[vehicleid] = INVALID_OBJECT_ID;
  10297. }
  10298. }
  10299. GetVehicleJobType(vehicleid)
  10300. {
  10301. if (JobVehicles[Transporter][0] <= vehicleid <= JobVehicles[Transporter][10]) {
  10302. return JOB_TRANSPORTER;
  10303. } else if (JobVehicles[Forklifter][0] <= vehicleid <= JobVehicles[Forklifter][5]) {
  10304. return JOB_FORKLIFTER;
  10305. } else if (JobVehicles[TaxiDriver][0] <= vehicleid <= JobVehicles[TaxiDriver][5]) {
  10306. return JOB_TAXI;
  10307. } else if (JobVehicles[Pizzaboy][0] <= vehicleid <= JobVehicles[Pizzaboy][4]) {
  10308. return JOB_PIZZA;
  10309. } else if (JobVehicles[Trashman][0] <= vehicleid <= JobVehicles[Trashman][4]) {
  10310. return JOB_TRASHMAN;
  10311. }
  10312. return JOB_NONE;
  10313. }
  10314. PlayerHasKeys(playerid, vehicle)
  10315. {
  10316. for (new i = 0; i < MAX_INVENTORY_ITEMS; i ++)
  10317. {
  10318. if (Inventory[playerid][i][invExists] && !strcmp(Inventory[playerid][i][invName], "Car Key") && Inventory[playerid][i][invValue] == Vehicles[vehicle][vID])
  10319. {
  10320. return 1;
  10321. }
  10322. }
  10323. return 0;
  10324. }
  10325. GetVehicleKeys(playerid, vehicleid)
  10326. {
  10327. new id;
  10328. if(CheckAdmin(playerid, 1) && Players[playerid][pAdminDuty])
  10329. {
  10330. return 1;
  10331. }
  10332. else if (VehicleInformation[vehicleid][vAdmin])
  10333. {
  10334. return 1;
  10335. }
  10336. else if (IsTestVehicle(vehicleid) && Players[playerid][pDrivingTest])
  10337. {
  10338. return 1;
  10339. }
  10340. else if (GetVehicleJobType(vehicleid) != JOB_NONE && Players[playerid][pJob] == GetVehicleJobType(vehicleid))
  10341. {
  10342. return 1;
  10343. }
  10344. else if ((id = GetVehicleID(vehicleid)) != INVALID_ID)
  10345. {
  10346. if (Vehicles[id][vRenter] == playerid || IsVehicleOwner(playerid, id))
  10347. {
  10348. return 1;
  10349. }
  10350. else if (Vehicles[id][vFaction] != 0 && GetFactionID(Vehicles[id][vFaction]) == Players[playerid][pFaction])
  10351. {
  10352. return 1;
  10353. }
  10354. else if (Vehicles[id][vOwner] != 0 && PlayerHasKeys(playerid, id))
  10355. {
  10356. return 1;
  10357. }
  10358. }
  10359. return 0;
  10360. }
  10361. IsRentalCar(vehicleid)
  10362. {
  10363. new
  10364. id = GetVehicleID(vehicleid);
  10365. if (id == INVALID_ID)
  10366. {
  10367. return 0;
  10368. }
  10369. return Vehicles[id][vRentable];
  10370. }
  10371. GetVehicleID(vehicleid)
  10372. {
  10373. new modelid = GetVehicleModel(vehicleid);
  10374. if (!IsValidVehicle(vehicleid))
  10375. {
  10376. return INVALID_ID;
  10377. }
  10378. else
  10379. {
  10380. for (new i = 0; i < MAX_CARS; i ++)
  10381. {
  10382. if (Vehicles[i][vExists] && Vehicles[i][vModel] == modelid && Vehicles[i][vVehicle] == vehicleid)
  10383. {
  10384. return i;
  10385. }
  10386. }
  10387. }
  10388. return INVALID_ID;
  10389. }
  10390. RespawnRentalCar(playerid)
  10391. {
  10392. new
  10393. vehicle = Players[playerid][pRental];
  10394. if (vehicle != INVALID_ID && Vehicles[vehicle][vRentable])
  10395. {
  10396. Vehicles[vehicle][vRenter] = INVALID_PLAYER_ID;
  10397. Players[playerid][pRental] = INVALID_ID;
  10398. SetVehicleToRespawn(Vehicles[vehicle][vVehicle]);
  10399. UpdateVehicle(vehicle);
  10400. }
  10401. return 1;
  10402. }
  10403. GetVehicleCompany(id)
  10404. {
  10405. for (new i = 0; i < MAX_COMPANIES; i ++)
  10406. {
  10407. if (IsValidCompanyID(i) && Companies[i][cID] == Vehicles[id][vCompany])
  10408. {
  10409. return i;
  10410. }
  10411. }
  10412. return INVALID_ID;
  10413. }
  10414. IsVehicleOwner(playerid, vehicle)
  10415. {
  10416. return (IsValidVehicleID(vehicle)) && (Vehicles[vehicle][vOwner] == Players[playerid][pID]);
  10417. }
  10418. ShowTrunkItems(playerid, vehicle)
  10419. {
  10420. if (!IsValidVehicleID(vehicle))
  10421. {
  10422. return 0;
  10423. }
  10424. else
  10425. {
  10426. new
  10427. title[64],
  10428. index = 0;
  10429. gListString = "Item\tWeight\nStore Item";
  10430. for (new i = 0; i < MAX_STORED_ITEMS; i ++)
  10431. {
  10432. if (StoredItems[i][stExists] && StoredItems[i][stVehicle] == Vehicles[vehicle][vID])
  10433. {
  10434. format(gListString, sizeof(gListString), "%s\n%s\t%i lbs", gListString, GetStoredItemName(i), GetItemInformation(StoredItems[i][stName], ITEM_INFO_WEIGHT));
  10435. gListedItems[playerid][index++] = i;
  10436. }
  10437. }
  10438. format(title, sizeof(title), "{FFFFFF}Trunk - Capacity: %i/%i", GetTrunkTotalWeight(vehicle), GetTrunkCapacity(vehicle));
  10439. Dialog_Show(playerid, TrunkItems, DIALOG_STYLE_TABLIST_HEADERS, title, gListString, "Select", "Back");
  10440. }
  10441. return 1;
  10442. }
  10443. SetPlayerCellphoneAction(playerid, enable)
  10444. {
  10445. if (Players[playerid][pDeathState] != DEATH_STATE_NONE || Players[playerid][pHandcuffed])
  10446. {
  10447. return 0;
  10448. }
  10449. else
  10450. {
  10451. if (VehicleHasDoors(GetPlayerVehicleID(playerid)) && Players[playerid][pChatting])
  10452. {
  10453. Players[playerid][pChatting] = 0;
  10454. }
  10455. if (enable)
  10456. {
  10457. if (VehicleHasDoors(GetPlayerVehicleID(playerid)))
  10458. {
  10459. ApplyAnimation(playerid, "CAR_CHAT", "carfone_in", 4.1, 0, 0, 0, 1, 0, 1);
  10460. }
  10461. else
  10462. {
  10463. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USECELLPHONE);
  10464. SetPlayerAttachedObject(playerid, ATTACHED_SLOT_MISC, 330, 6);
  10465. }
  10466. }
  10467. else
  10468. {
  10469. if (VehicleHasDoors(GetPlayerVehicleID(playerid)))
  10470. {
  10471. ApplyAnimation(playerid, "CAR_CHAT", "carfone_out", 4.1, 0, 0, 0, 0, 0, 1);
  10472. }
  10473. else
  10474. {
  10475. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_STOPUSECELLPHONE);
  10476. RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_MISC);
  10477. }
  10478. }
  10479. }
  10480. return 1;
  10481. }
  10482. HangupCall(playerid)
  10483. {
  10484. if (Players[playerid][pCalling] > 0)
  10485. {
  10486. for (new i = 0; i < MAX_PAYPHONES; i ++)
  10487. {
  10488. if (IsValidPayphoneID(i) && Payphones[i][phCaller] == playerid)
  10489. {
  10490. Payphones[i][phCaller] = INVALID_PLAYER_ID;
  10491. UpdatePayphoneText(i);
  10492. }
  10493. }
  10494. if (Players[playerid][pCaller] != INVALID_PLAYER_ID)
  10495. {
  10496. SetPlayerCellphoneAction(Players[playerid][pCaller], false);
  10497. SendInfoMessage(Players[playerid][pCaller], "The other line has ended the call.");
  10498. PlayerPlaySound(Players[playerid][pCaller], 20601, 0.0, 0.0, 0.0);
  10499. if (Players[Players[playerid][pCaller]][pPayphone] != INVALID_ID)
  10500. {
  10501. ResetPayphone(Players[playerid][pCaller]);
  10502. ShowActionBubble(Players[playerid][pCaller], "* %s hangs up the payphone.", ReturnNameEx(Players[playerid][pCaller]));
  10503. }
  10504. else
  10505. {
  10506. ShowActionBubble(Players[playerid][pCaller], "* %s hangs up the phone and puts it in their pocket.", ReturnNameEx(Players[playerid][pCaller]));
  10507. }
  10508. Players[Players[playerid][pCaller]][pCalling] = 0;
  10509. Players[Players[playerid][pCaller]][pCaller] = INVALID_PLAYER_ID;
  10510. }
  10511. SetPlayerCellphoneAction(playerid, false);
  10512. PlayerPlaySound(playerid, 20601, 0.0, 0.0, 0.0);
  10513. Players[playerid][pDispatch] = 0;
  10514. Players[playerid][pCalling] = 0;
  10515. Players[playerid][pCaller] = INVALID_PLAYER_ID;
  10516. if (Players[playerid][pPayphone] != INVALID_ID)
  10517. {
  10518. ResetPayphone(playerid);
  10519. ShowActionBubble(playerid, "* %s hangs up the payphone.", ReturnNameEx(playerid));
  10520. }
  10521. else
  10522. {
  10523. ShowActionBubble(playerid, "* %s hangs up the phone and puts it in their pocket.", ReturnNameEx(playerid));
  10524. }
  10525. }
  10526. }
  10527. SendTextMessage(playerid, number, const text[])
  10528. {
  10529. foreach (new i : Player)
  10530. {
  10531. if (number != 0 && Players[i][pPhone] == number)
  10532. {
  10533. if (Players[i][pPhoneOff])
  10534. {
  10535. return SendErrorMessage(playerid, "That player's phone is turned off.");
  10536. }
  10537. else
  10538. {
  10539. SendFormatMessage(i, COLOR_YELLOW, "* Text from %i: %s", Players[playerid][pPhone], text);
  10540. SendFormatMessage(playerid, COLOR_YELLOW, "* Text to %i: %s", number, text);
  10541. return 1;
  10542. }
  10543. }
  10544. }
  10545. return SendErrorMessage(playerid, "The specified number is not in service.");
  10546. }
  10547. CallNumber(playerid, number, payphone = INVALID_ID)
  10548. {
  10549. if (Players[playerid][pCalling] > 0)
  10550. {
  10551. return SendErrorMessage(playerid, "You are already on a call.");
  10552. }
  10553. else if (Players[playerid][pPhone] == number)
  10554. {
  10555. return SendErrorMessage(playerid, "You can't dial your own number.");
  10556. }
  10557. else
  10558. {
  10559. new targetid = GetPhonePlayerID(number);
  10560. if (IsValidPayphoneID(payphone))
  10561. {
  10562. ShowActionBubble(playerid, "* %s inserts a coin and picks up the payphone.", ReturnNameEx(playerid));
  10563. AssignPayphone(playerid, payphone);
  10564. }
  10565. else
  10566. {
  10567. ShowActionBubble(playerid, "* %s takes out their phone and dials a number.", ReturnNameEx(playerid));
  10568. }
  10569. if (IsPlayerConnected(targetid))
  10570. {
  10571. if (Players[targetid][pPhoneOff])
  10572. {
  10573. return SendClientMessage(playerid, COLOR_LIGHTGREY, "** The phone is switched off. The number would automatically forward to voicemail. **");
  10574. }
  10575. else if (Players[targetid][pCalling] > 0)
  10576. {
  10577. return SendClientMessage(playerid, COLOR_LIGHTGREY, "** The other line is currently busy. **");
  10578. }
  10579. else
  10580. {
  10581. Players[playerid][pCalling] = 1;
  10582. Players[playerid][pCaller] = targetid;
  10583. Players[targetid][pCalling] = 1;
  10584. Players[targetid][pCaller] = playerid;
  10585. if (IsValidPayphoneID(payphone))
  10586. {
  10587. SendInfoMessage(targetid, "Payphone (%i) is attempting to call you (use /answer to answer).", Payphones[payphone][phNumber]);
  10588. }
  10589. else
  10590. {
  10591. SendInfoMessage(targetid, "Number %i is attempting to call you (use /answer to answer).", Players[playerid][pPhone]);
  10592. }
  10593. ShowActionBubble(targetid, "* %s's phone starts to ring.", ReturnNameEx(targetid));
  10594. HandlePhoneRing(targetid);
  10595. }
  10596. }
  10597. else
  10598. {
  10599. new id = GetPhonePayphoneID(number);
  10600. if (IsValidPayphoneID(id) && !Payphones[id][phOccupied])
  10601. {
  10602. CallPayphone(playerid, id);
  10603. }
  10604. else
  10605. {
  10606. SetTimerEx("OnPhoneResponse", 3000, false, "ii", playerid, number);
  10607. }
  10608. Players[playerid][pCalling] = 1;
  10609. }
  10610. SetPlayerCellphoneAction(playerid, true);
  10611. HandlePhoneDial(playerid);
  10612. SendInfoMessage(playerid, "You have dialed number: %i. Please wait for a connection...", number);
  10613. PlayerPlaySound(playerid, 16001, 0.0, 0.0, 0.0);
  10614. }
  10615. return 1;
  10616. }
  10617. ListContacts(playerid)
  10618. {
  10619. if (Players[playerid][pPhone] > 0)
  10620. {
  10621. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_contacts WHERE Phone = %i", Players[playerid][pPhone]);
  10622. mysql_tquery(gConnection, gExecute, "OnPlayerListContacts", "i", playerid);
  10623. }
  10624. }
  10625. OpenPhone(playerid)
  10626. {
  10627. new strHead[128];
  10628. if (Players[playerid][pPhone] > 0)
  10629. {
  10630. format(strHead,sizeof(strHead),"{FFFFFF}Phone: %i",Players[playerid][pPhone]);
  10631. Dialog_Show(playerid, PhoneMenu, DIALOG_STYLE_LIST, strHead, "Call\nSMS\nContacts\nMusic\nBank\nSettings", "Select", "Cancel");
  10632. }
  10633. }
  10634. EditAttachedObjectEx(playerid, type, index)
  10635. {
  10636. Players[playerid][pEdit] = type;
  10637. return EditAttachedObject(playerid, index);
  10638. }
  10639. EditDynamicObjectEx(playerid, type, objectid, extraid = INVALID_ID)
  10640. {
  10641. Players[playerid][pEdit] = type;
  10642. Players[playerid][pEditID] = extraid;
  10643. return EditDynamicObject(playerid, objectid);
  10644. }
  10645. CancelObjectEdit(playerid)
  10646. {
  10647. Players[playerid][pEdit] = EDIT_TYPE_NONE;
  10648. Players[playerid][pEditID] = INVALID_ID;
  10649. return CancelEdit(playerid);
  10650. }
  10651. UpdateGasPump(id)
  10652. {
  10653. new
  10654. string[128];
  10655. if (GasPumps[id][gpExists])
  10656. {
  10657. DestroyDynamicObject(GasPumps[id][gpObject]);
  10658. DestroyDynamic3DTextLabel(GasPumps[id][gpText]);
  10659. format(string, sizeof(string), "{2B89DB}[Gas Station]:\n ID: %i\nGasoline: %.1f gallons\nUse /refuel to refill vehicle", id, GasPumps[id][gpFuel]);
  10660. GasPumps[id][gpObject] = CreateDynamicObject(3465, GasPumps[id][gpSpawn][0], GasPumps[id][gpSpawn][1], GasPumps[id][gpSpawn][2], 0.0, 0.0, GasPumps[id][gpSpawn][3]);
  10661. GasPumps[id][gpText] = CreateDynamic3DTextLabel(string, -1, GasPumps[id][gpSpawn][0], GasPumps[id][gpSpawn][1], GasPumps[id][gpSpawn][2], 3.0);
  10662. }
  10663. return 1;
  10664. }
  10665. SaveGasPump(id)
  10666. {
  10667. static
  10668. queryString[200];
  10669. if (!GasPumps[id][gpExists]) return 0;
  10670. format(queryString, sizeof(queryString), "UPDATE rp_gaspumps SET gpX = %.4f, gpY = %.4f, gpZ = %.4f, gpA = %.4f, gpFuel = %.4f WHERE gpID = %i", GasPumps[id][gpSpawn][0], GasPumps[id][gpSpawn][1], GasPumps[id][gpSpawn][2], GasPumps[id][gpSpawn][3], GasPumps[id][gpFuel], GasPumps[id][gpID]);
  10671. return mysql_tquery(gConnection, queryString);
  10672. }
  10673. GetClosestPump(playerid)
  10674. {
  10675. for (new i = 0; i < MAX_GAS_PUMPS; i ++)
  10676. {
  10677. if (GasPumps[i][gpExists] && IsPlayerInRangeOfPoint(playerid, 6.0, GasPumps[i][gpSpawn][0], GasPumps[i][gpSpawn][1], GasPumps[i][gpSpawn][2]))
  10678. {
  10679. return i;
  10680. }
  10681. }
  10682. return INVALID_ID;
  10683. }
  10684. StopRefuel(playerid)
  10685. {
  10686. if (Players[playerid][pRefuel] != INVALID_ID)
  10687. {
  10688. new
  10689. company = GetPumpCompany(Players[playerid][pRefuel]);
  10690. if (IsValidCompanyID(company))
  10691. {
  10692. GiveCompanyMoney(company, Players[playerid][pGasPrice]);
  10693. }
  10694. KillTimer(Timers[playerid][tRefuel]);
  10695. SaveGasPump(Players[playerid][pRefuel]);
  10696. RemoveMoney(playerid, Players[playerid][pGasPrice]);
  10697. SendInfoMessage(playerid, "You have filled your vehicle for {33CC33}%s{FFFFFF}.", FormatNumber(Players[playerid][pGasPrice]));
  10698. Players[playerid][pRefuel] = INVALID_ID;
  10699. Players[playerid][pGasPrice] = 0;
  10700. }
  10701. return 1;
  10702. }
  10703. GetPumpCompany(id)
  10704. {
  10705. for (new i = 0; i < MAX_COMPANIES; i ++)
  10706. {
  10707. if (IsValidCompanyID(i) && Companies[i][cID] == GasPumps[id][gpCompany])
  10708. {
  10709. return i;
  10710. }
  10711. }
  10712. return INVALID_ID;
  10713. }
  10714. AddATMMachine(Float:x, Float:y, Float:z, Float:angle, interior, world)
  10715. {
  10716. new
  10717. id = GetNextATMID();
  10718. if (id != INVALID_ID)
  10719. {
  10720. ATM[id][atmExists] = 1;
  10721. ATM[id][atmSpawn][0] = x;
  10722. ATM[id][atmSpawn][1] = y;
  10723. ATM[id][atmSpawn][2] = z;
  10724. ATM[id][atmSpawn][3] = angle;
  10725. ATM[id][atmInterior] = interior;
  10726. ATM[id][atmWorld] = world;
  10727. ATM[id][atmObject] = INVALID_OBJECT_ID;
  10728. ATM[id][atmText] = INVALID_3DTEXT_ID;
  10729. UpdateATM(id);
  10730. format(gExecute, sizeof(gExecute), "INSERT INTO rp_atms (atmInterior) VALUES(%i)", interior);
  10731. mysql_tquery(gConnection, gExecute, "OnATMAdded", "i", id);
  10732. }
  10733. return id;
  10734. }
  10735. AddGasPump(company, Float:x, Float:y, Float:z, Float:angle)
  10736. {
  10737. new
  10738. id = GetNextGasPumpID();
  10739. if (id != INVALID_ID)
  10740. {
  10741. GasPumps[id][gpExists] = 1;
  10742. GasPumps[id][gpCompany] = Companies[company][cID];
  10743. GasPumps[id][gpSpawn][0] = x;
  10744. GasPumps[id][gpSpawn][1] = y;
  10745. GasPumps[id][gpSpawn][2] = z;
  10746. GasPumps[id][gpSpawn][3] = angle + 90.0;
  10747. GasPumps[id][gpFuel] = 5000.0;
  10748. GasPumps[id][gpObject] = INVALID_OBJECT_ID;
  10749. GasPumps[id][gpText] = INVALID_3DTEXT_ID;
  10750. UpdateGasPump(id);
  10751. format(gExecute, sizeof(gExecute), "INSERT INTO rp_gaspumps (gpCompany) VALUES(%i)", GasPumps[id][gpCompany]);
  10752. mysql_tquery(gConnection, gExecute, "OnGasPumpAdded", "i", id);
  10753. }
  10754. return id;
  10755. }
  10756. ShowTrunkMenu(playerid, vehicle)
  10757. {
  10758. new string[128];
  10759. if (!IsValidVehicleID(vehicle)) return 0;
  10760. format(string, sizeof(string), "Money: {00FF00}%s{FFFFFF}\nView Items", FormatNumber(Vehicles[vehicle][vTrunkMoney]));
  10761. Dialog_Show(playerid, VehicleTrunk, DIALOG_STYLE_LIST, "{FFFFFF}Trunk menu", string, "Select", "Cancel");
  10762. return 1;
  10763. }
  10764. DeleteVehicle(id)
  10765. {
  10766. if (!IsValidVehicleID(id))
  10767. {
  10768. return 0;
  10769. }
  10770. format(gExecute, sizeof(gExecute), "DELETE FROM rp_vehicles WHERE vID = %i", Vehicles[id][vID]);
  10771. mysql_tquery(gConnection, gExecute);
  10772. ClearTrunkItems(id);
  10773. ResetVehicle(id);
  10774. return 1;
  10775. }
  10776. AddVehicle(company, model, price, Float:x, Float:y, Float:z, Float:angle, color1, color2, playerid = INVALID_PLAYER_ID, faction = INVALID_ID, bool:rentable = false, bool:despawned = false)
  10777. {
  10778. new
  10779. id = GetNextVehicleID();
  10780. if (id != INVALID_ID)
  10781. {
  10782. if(rentable == true)
  10783. {
  10784. format(Vehicles[id][vPlate], 45, "RENTAL%i", id);
  10785. }
  10786. else format(Vehicles[id][vPlate], 32, "%c%c%c %i", Random('A', 'Z'), Random('A', 'Z'), Random('A', 'Z'), Random(100, 999));
  10787. format(Vehicles[id][vRegistered], 32, GetDateAndTime());
  10788. for (new i = 0; i < 14; i ++) {
  10789. Vehicles[id][vMods][i] = 0;
  10790. }
  10791. Vehicles[id][vExists] = 1;
  10792. Vehicles[id][vCompany] = 0;
  10793. Vehicles[id][vModel] = model;
  10794. Vehicles[id][vPrice] = price;
  10795. Vehicles[id][vRentable] = 0;
  10796. Vehicles[id][vOwner] = 0;
  10797. Vehicles[id][vSpawn][0] = x;
  10798. Vehicles[id][vSpawn][1] = y;
  10799. Vehicles[id][vSpawn][2] = z;
  10800. Vehicles[id][vSpawn][3] = angle;
  10801. Vehicles[id][vColor1] = color1;
  10802. Vehicles[id][vColor2] = color2;
  10803. Vehicles[id][vPaintjob] = INVALID_ID;
  10804. Vehicles[id][vLocked] = 0;
  10805. Vehicles[id][vTrunkMoney] = 0;
  10806. Vehicles[id][vFaction] = 0;
  10807. Vehicles[id][vSiren] = 0;
  10808. Vehicles[id][vAlarm] = 0;
  10809. Vehicles[id][vImpound] = 0;
  10810. Vehicles[id][vDespawned] = despawned;
  10811. Vehicles[id][vRentable] = rentable;
  10812. Vehicles[id][vText] = INVALID_3DTEXT_ID;
  10813. Vehicles[id][vVehicle] = INVALID_VEHICLE_ID;
  10814. Vehicles[id][vRenter] = INVALID_PLAYER_ID;
  10815. if (IsPlayerConnected(playerid) && IsPlayerLoggedIn(playerid))
  10816. {
  10817. Vehicles[id][vOwner] = Players[playerid][pID];
  10818. }
  10819. if (IsValidCompanyID(company) && Companies[company][cType] == COMPANY_RENTALS)
  10820. {
  10821. Vehicles[id][vCompany] = Companies[company][cID];
  10822. }
  10823. if (IsValidFactionID(faction))
  10824. {
  10825. Vehicles[id][vFaction] = Factions[faction][fcID];
  10826. }
  10827. UpdateVehicle(id);
  10828. format(gExecute, sizeof(gExecute), "INSERT INTO rp_vehicles (vModel) VALUES(%i)", model);
  10829. mysql_tquery(gConnection, gExecute, "OnVehicleAdded", "i", id);
  10830. }
  10831. return id;
  10832. }
  10833. DiscardWeapon(playerid, type)
  10834. {
  10835. if (GetPlayerState(playerid) != PLAYER_STATE_ONFOOT)
  10836. {
  10837. return SendErrorMessage(playerid, "You must be onfoot to discard weapons.");
  10838. }
  10839. switch (type)
  10840. {
  10841. case WEAPON_MELEE:
  10842. {
  10843. if (!Weapons[playerid][wMelee])
  10844. {
  10845. SendErrorMessage(playerid, "You don't have a weapon in that slot.");
  10846. }
  10847. else
  10848. {
  10849. SendInfoMessage(playerid, "You have dropped your %s.", GetWeapon(Weapons[playerid][wMelee]));
  10850. ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0);
  10851. if (Players[playerid][pFaction] != INVALID_ID && Factions[Players[playerid][pFaction]][fcType] != FACTION_ILLEGAL)
  10852. {
  10853. SetPlayerWeapon(playerid, WEAPON_MELEE, 0);
  10854. SendInfoMessage(playerid, "As you are a faction member, dropped weapons will not appear on the ground.");
  10855. }
  10856. else
  10857. {
  10858. DropWeapon(playerid, Weapons[playerid][wMelee]);
  10859. }
  10860. }
  10861. }
  10862. case WEAPON_PRIMARY:
  10863. {
  10864. if (!Weapons[playerid][wPrimary])
  10865. {
  10866. SendErrorMessage(playerid, "You don't have a weapon in that slot.");
  10867. }
  10868. else
  10869. {
  10870. SendInfoMessage(playerid, "You have dropped your %s (%i ammo).", GetWeapon(Weapons[playerid][wPrimary]), Weapons[playerid][wPrimaryAmmo]);
  10871. ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0);
  10872. if (Players[playerid][pFaction] != INVALID_ID && Factions[Players[playerid][pFaction]][fcType] != FACTION_ILLEGAL)
  10873. {
  10874. SetPlayerWeapon(playerid, WEAPON_PRIMARY, 0);
  10875. SendInfoMessage(playerid, "As you are a faction member, dropped weapons will not appear on the ground.");
  10876. }
  10877. else
  10878. {
  10879. DropWeapon(playerid, Weapons[playerid][wPrimary], Weapons[playerid][wPrimaryAmmo]);
  10880. }
  10881. }
  10882. }
  10883. case WEAPON_SECONDARY:
  10884. {
  10885. if (!Weapons[playerid][wSecondary])
  10886. {
  10887. SendErrorMessage(playerid, "You don't have a weapon in that slot.");
  10888. }
  10889. else
  10890. {
  10891. SendInfoMessage(playerid, "You have dropped your %s (%i ammo).", GetWeapon(Weapons[playerid][wSecondary]), Weapons[playerid][wSecondaryAmmo]);
  10892. ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0);
  10893. if (Players[playerid][pFaction] != INVALID_ID && Factions[Players[playerid][pFaction]][fcType] != FACTION_ILLEGAL)
  10894. {
  10895. SetPlayerWeapon(playerid, WEAPON_SECONDARY, 0);
  10896. SendInfoMessage(playerid, "As you are a faction member, dropped weapons will not appear on the ground.");
  10897. }
  10898. else
  10899. {
  10900. DropWeapon(playerid, Weapons[playerid][wSecondary], Weapons[playerid][wSecondaryAmmo]);
  10901. }
  10902. }
  10903. }
  10904. case WEAPON_TERTIARY:
  10905. {
  10906. if (!Weapons[playerid][wTertiary])
  10907. {
  10908. SendErrorMessage(playerid, "You don't have a weapon in that slot.");
  10909. }
  10910. else
  10911. {
  10912. SendInfoMessage(playerid, "You have dropped your %s (%i ammo).", GetWeapon(Weapons[playerid][wTertiary]), Weapons[playerid][wTertiaryAmmo]);
  10913. ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0);
  10914. if (Players[playerid][pFaction] != INVALID_ID && Factions[Players[playerid][pFaction]][fcType] != FACTION_ILLEGAL)
  10915. {
  10916. SetPlayerWeapon(playerid, WEAPON_TERTIARY, 0);
  10917. SendInfoMessage(playerid, "As you are a faction member, dropped weapons will not appear on the ground.");
  10918. }
  10919. else
  10920. {
  10921. DropWeapon(playerid, Weapons[playerid][wTertiary], Weapons[playerid][wTertiaryAmmo]);
  10922. }
  10923. }
  10924. }
  10925. }
  10926. return 1;
  10927. }
  10928. ListBankTransfers(playerid)
  10929. {
  10930. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_transfers WHERE Player = %i", Players[playerid][pID]);
  10931. mysql_tquery(gConnection, gExecute, "OnPlayerViewTransfers", "i", playerid);
  10932. }
  10933. ShowBankAccountMenu(playerid, id)
  10934. {
  10935. new
  10936. string[64];
  10937. if (!BankAccounts[playerid][id][bankExists])
  10938. {
  10939. return 0;
  10940. }
  10941. Players[playerid][pBank] = id;
  10942. format(string, sizeof(string), "{FFFFFF}%s", BankAccounts[playerid][id][bankName]);
  10943. Dialog_Show(playerid, BankMenu, DIALOG_STYLE_LIST, string, "Withdraw (%s)\nDeposit\nTransfer\nPaycheck (%s)\nCollect Transfers\nClose Account", "Select", "Cancel", FormatNumber(BankAccounts[playerid][id][bankBalance]), FormatNumber(Players[playerid][pPaycheck]));
  10944. return 1;
  10945. }
  10946. ShowBankAccounts(playerid, type)
  10947. {
  10948. new
  10949. displayString[MAX_BANK_ACCOUNTS * 50],
  10950. index = 0
  10951. ;
  10952. displayString = "Name\tBalance\n";
  10953. if (type == BANK_ACCESS_MENU)
  10954. {
  10955. strcat(displayString, "New Account");
  10956. }
  10957. for (new i = 0; i < MAX_BANK_ACCOUNTS; i ++)
  10958. {
  10959. if (BankAccounts[playerid][i][bankExists])
  10960. {
  10961. format(displayString, sizeof(displayString), "%s\n%s\t%s", displayString, BankAccounts[playerid][i][bankName], FormatNumber(BankAccounts[playerid][i][bankBalance]));
  10962. gListedItems[playerid][index++] = i;
  10963. }
  10964. }
  10965. switch (type)
  10966. {
  10967. case BANK_ACCESS_MENU:
  10968. {
  10969. return Dialog_Show(playerid, BankAccounts, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Bank accounts", displayString, "Select", "Cancel");
  10970. }
  10971. case BANK_ATM_MENU:
  10972. {
  10973. if (index)
  10974. {
  10975. return Dialog_Show(playerid, ATMSelect, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Bank accounts", displayString, "Select", "Cancel");
  10976. }
  10977. }
  10978. case BANK_PAYMENT_TYPE:
  10979. {
  10980. if (index)
  10981. {
  10982. return Dialog_Show(playerid, PaymentAccount, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Select account", displayString, "Select", "Cancel");
  10983. }
  10984. }
  10985. }
  10986. return 0;
  10987. }
  10988. CheckBank(playerid, targetid)
  10989. {
  10990. new
  10991. displayString[MAX_BANK_ACCOUNTS * 50],
  10992. index = 0
  10993. ;
  10994. displayString = "Name\tBalance\n";
  10995. for (new i = 0; i < MAX_BANK_ACCOUNTS; i ++)
  10996. {
  10997. if (BankAccounts[targetid][i][bankExists])
  10998. {
  10999. format(displayString, sizeof(displayString), "%s\n%s\t%s", displayString, BankAccounts[targetid][i][bankName], FormatNumber(BankAccounts[targetid][i][bankBalance]));
  11000. gListedItems[playerid][index++] = i;
  11001. }
  11002. }
  11003. return Dialog_Show(playerid, aBankAccounts, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Bank accounts", displayString, "","Exit");
  11004. }
  11005. SaveBankAccount(playerid, id)
  11006. {
  11007. static
  11008. queryString[200];
  11009. if (!BankAccounts[playerid][id][bankExists])
  11010. {
  11011. return 0;
  11012. }
  11013. format(queryString, sizeof(queryString), "UPDATE rp_bankaccounts SET bankName = '%s', bankBalance = %i WHERE bankID = %i", mysql_escaped(BankAccounts[playerid][id][bankName]), BankAccounts[playerid][id][bankBalance], BankAccounts[playerid][id][bankID]);
  11014. return mysql_tquery(gConnection, queryString);
  11015. }
  11016. GetPrimaryBankAccount(playerid)
  11017. {
  11018. for (new i = 0; i < MAX_BANK_ACCOUNTS; i ++)
  11019. {
  11020. if (BankAccounts[playerid][i][bankExists] && BankAccounts[playerid][i][bankID] == Players[playerid][pBankAccount])
  11021. {
  11022. return i;
  11023. }
  11024. }
  11025. return INVALID_ID;
  11026. }
  11027. AddBankAccount(playerid, const name[])
  11028. {
  11029. new
  11030. id = GetNextBankAccountID(playerid);
  11031. if (id != INVALID_ID)
  11032. {
  11033. strcpy(BankAccounts[playerid][id][bankName], name, 32);
  11034. BankAccounts[playerid][id][bankExists] = 1;
  11035. BankAccounts[playerid][id][bankBalance] = 0;
  11036. format(gExecute, sizeof(gExecute), "INSERT INTO rp_bankaccounts (ID) VALUES(%i)", Players[playerid][pID]);
  11037. mysql_tquery(gConnection, gExecute, "OnBankAccountAdded", "ii", playerid, id);
  11038. }
  11039. return id;
  11040. }
  11041. OnPlayerExitTaxi(playerid)
  11042. {
  11043. if (Players[playerid][pInsideTaxi] != INVALID_PLAYER_ID)
  11044. {
  11045. SendInfoMessage(playerid, "You have arrived to your destination for {33CC33}%s{FFFFFF}.", FormatNumber(Players[playerid][pTaxiMeter]*Players[Players[playerid][pInsideTaxi]][pTaxiFare]));
  11046. SendInfoMessage(Players[playerid][pInsideTaxi], "You have received {33CC33}%s{FFFFFF} on your paycheck.", FormatNumber(Players[playerid][pTaxiMeter]*Players[Players[playerid][pInsideTaxi]][pTaxiFare]));
  11047. RemoveMoney(playerid, Players[playerid][pTaxiMeter]*Players[Players[playerid][pInsideTaxi]][pTaxiFare]);
  11048. Players[Players[playerid][pInsideTaxi]][pJobPaycheck] += Players[playerid][pTaxiMeter]*Players[Players[playerid][pInsideTaxi]][pTaxiFare];
  11049. ResetTaxi(playerid);
  11050. }
  11051. }
  11052. ResetTaxi(playerid)
  11053. {
  11054. if (Players[playerid][pInsideTaxi] != INVALID_PLAYER_ID)
  11055. {
  11056. Players[Players[playerid][pInsideTaxi]][pPassenger] = 0;
  11057. Players[playerid][pInsideTaxi] = INVALID_PLAYER_ID;
  11058. Players[playerid][pTaxiMeter] = 0;
  11059. Players[playerid][pTaxiTime] = 0;
  11060. }
  11061. }
  11062. IsAdvertisementActive(playerid)
  11063. {
  11064. return ispacked(gAdvertisement[playerid]);
  11065. }
  11066. IsHelpRequestActive(playerid)
  11067. {
  11068. return ispacked(gHelpRequest[playerid]);
  11069. }
  11070. ResetAdvertisement(playerid)
  11071. {
  11072. gAdvertisement[playerid]{0} = 0;
  11073. }
  11074. ResetHelpRequest(playerid)
  11075. {
  11076. gHelpRequest[playerid]{0} = 0;
  11077. }
  11078. PlayerHasLeadership(playerid)
  11079. {
  11080. return (Players[playerid][pFactionRank] >= Factions[Players[playerid][pFaction]][fcMaxRanks] - 1 || Players[playerid][pFactionLeader]);
  11081. }
  11082. SetPlayerFaction(playerid, faction, rank)
  11083. {
  11084. if (IsValidFactionID(faction))
  11085. {
  11086. Players[playerid][pFaction] = faction;
  11087. Players[playerid][pFactionID] = Factions[faction][fcID];
  11088. Players[playerid][pFactionRank] = rank;
  11089. if (rank >= Factions[faction][fcMaxRanks] - 1) {
  11090. Players[playerid][pFactionLeader] = 1;
  11091. } else {
  11092. Players[playerid][pFactionLeader] = 0;
  11093. }
  11094. if(GetPlayerFactionType(playerid) == FACTION_LEO)
  11095. {
  11096. //Players[playerid][pBadge] = 100 + random(999) + Players[playerid][pID];
  11097. Players[playerid][pBadge] = Random(100, 9999);
  11098. } else {
  11099. Players[playerid][pBadge] = 0;
  11100. }
  11101. SaveAccount(playerid);
  11102. }
  11103. }
  11104. ResetFactionInfo(playerid)
  11105. {
  11106. RemoveEquipment(playerid);
  11107. Players[playerid][pFaction] = INVALID_ID;
  11108. Players[playerid][pFactionID] = 0;
  11109. Players[playerid][pFactionRank] = 0;
  11110. Players[playerid][pFactionLeader] = 0;
  11111. }
  11112. SetCheckpoint(playerid, type, Float:x, Float:y, Float:z, Float:size)
  11113. {
  11114. Players[playerid][pCheckpoint] = type;
  11115. SetCheckpointsForPlayer(playerid);
  11116. DisablePlayerCheckpoint(playerid);
  11117. SetPlayerCheckpoint(playerid, x, y, z, size);
  11118. }
  11119. ResetCheckpoint(playerid)
  11120. {
  11121. Players[playerid][pCheckpoint] = CHECKPOINT_NONE;
  11122. DisablePlayerCheckpoint(playerid);
  11123. }
  11124. SetCheckpointsForPlayer(playerid)
  11125. {
  11126. if (Players[playerid][pWorking] || Players[playerid][pCheckpoint] != CHECKPOINT_NONE || Players[playerid][pDrivingTest])
  11127. TogglePlayerAllDynamicCPs(playerid, false);
  11128. else
  11129. TogglePlayerAllDynamicCPs(playerid, true);
  11130. }
  11131. VehicleStereoUpdate(playerid)
  11132. {
  11133. new
  11134. vehicleid = GetPlayerVehicleID(playerid),
  11135. string[255]
  11136. ;
  11137. if (Players[playerid][pStereoPlayerID] != INVALID_PLAYER_ID)
  11138. {
  11139. Players[playerid][pStereoPlayerID] = INVALID_PLAYER_ID;
  11140. StopAudioStreamForPlayer(playerid);
  11141. }
  11142. if (IsValidVehicle(vehicleid) && Players[playerid][pVehicleStream] != vehicleid)
  11143. {
  11144. strunpack(string, VehicleInformation[vehicleid][vStream]);
  11145. if (strcmp(string, "Not Specified") != 0)
  11146. {
  11147. PlayAudioStreamForPlayer(playerid, string);
  11148. Players[playerid][pVehicleStream] = vehicleid;
  11149. }
  11150. }
  11151. else if (Players[playerid][pVehicleStream] != INVALID_PLAYER_ID && !IsPlayerInVehicle(playerid, Players[playerid][pVehicleStream]))
  11152. {
  11153. Players[playerid][pVehicleStream] = INVALID_VEHICLE_ID;
  11154. StopAudioStreamForPlayer(playerid);
  11155. }
  11156. }
  11157. StereoUpdate(playerid)
  11158. {
  11159. new
  11160. targetid = GetNearbyStereoPlayerID(playerid),
  11161. string[255]
  11162. ;
  11163. if (Players[playerid][pVehicleStream] != INVALID_VEHICLE_ID)
  11164. {
  11165. Players[playerid][pVehicleStream] = INVALID_VEHICLE_ID;
  11166. StopAudioStreamForPlayer(playerid);
  11167. }
  11168. if (targetid != INVALID_PLAYER_ID && Players[playerid][pStereoPlayerID] != targetid)
  11169. {
  11170. strunpack(string, Stereos[targetid][pStereoURL]);
  11171. if (strcmp(string, "Not Specified") != 0)
  11172. {
  11173. PlayAudioStreamForPlayer(playerid, string, Stereos[targetid][pStereoX], Stereos[targetid][pStereoY], Stereos[targetid][pStereoZ], 50.0, true);
  11174. Players[playerid][pStereoPlayerID] = targetid;
  11175. }
  11176. }
  11177. else if (Players[playerid][pStereoPlayerID] != INVALID_PLAYER_ID && Players[playerid][pStereoPlayerID] != targetid)
  11178. {
  11179. Players[playerid][pStereoPlayerID] = INVALID_PLAYER_ID;
  11180. StopAudioStreamForPlayer(playerid);
  11181. }
  11182. }
  11183. ResetPayphone(playerid)
  11184. {
  11185. if (Players[playerid][pPayphone] != INVALID_ID)
  11186. {
  11187. Payphones[Players[playerid][pPayphone]][phOccupied] = 0;
  11188. UpdatePayphoneText(Players[playerid][pPayphone]);
  11189. }
  11190. Players[playerid][pPayphone] = INVALID_ID;
  11191. }
  11192. GetNearbyStereoPlayerID(playerid)
  11193. {
  11194. foreach (new i : Player)
  11195. {
  11196. if (Stereos[i][pStereoID] != INVALID_ID && IsPlayerNearPoint(playerid, 50.0, Stereos[i][pStereoX], Stereos[i][pStereoY], Stereos[i][pStereoZ], Stereos[i][pStereoInterior], Stereos[i][pStereoWorld]))
  11197. {
  11198. return i;
  11199. }
  11200. }
  11201. return INVALID_PLAYER_ID;
  11202. }
  11203. PickupStereo(playerid)
  11204. {
  11205. ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0);
  11206. ShowActionBubble(playerid, "* %s picks up their stereo and turns it off.", ReturnNameEx(playerid));
  11207. ResetStereo(playerid);
  11208. SendInfoMessage(playerid, "You have picked up your stereo.");
  11209. }
  11210. ResetStereo(playerid)
  11211. {
  11212. if (Stereos[playerid][pStereoID] != INVALID_ID)
  11213. {
  11214. DestroyDynamic3DTextLabel(Stereos[playerid][pStereoText]);
  11215. DestroyDynamicObject(Stereos[playerid][pStereoObject]);
  11216. }
  11217. Stereos[playerid][pStereoID] = INVALID_ID;
  11218. Stereos[playerid][pStereoX] = 0.0;
  11219. Stereos[playerid][pStereoY] = 0.0;
  11220. Stereos[playerid][pStereoZ] = 0.0;
  11221. Stereos[playerid][pStereoInterior] = 0;
  11222. Stereos[playerid][pStereoWorld] = 0;
  11223. Stereos[playerid][pStereoObject] = INVALID_OBJECT_ID;
  11224. Stereos[playerid][pStereoText] = INVALID_3DTEXT_ID;
  11225. }
  11226. ResetPlayer(playerid)
  11227. {
  11228. Players[playerid][pSession] = 0;
  11229. Players[playerid][pSessionCaller] = -1;
  11230. if (Players[playerid][pWorkout] != WORKOUT_NONE)
  11231. {
  11232. StopWorkout(playerid);
  11233. }
  11234. if (Players[playerid][pHotwire] != INVALID_VEHICLE_ID)
  11235. {
  11236. Players[playerid][pHotwire] = INVALID_VEHICLE_ID;
  11237. Players[playerid][pHotwireTime] = 0;
  11238. }
  11239. if (Players[playerid][pSetPosition])
  11240. {
  11241. Players[playerid][pSetPosition] = 0;
  11242. }
  11243. if (Players[playerid][pFurnitureMenu])
  11244. {
  11245. HideFurniturePreviewer(playerid);
  11246. }
  11247. if (Players[playerid][pAccessoryMenu])
  11248. {
  11249. HideAccessoryPreviewer(playerid);
  11250. }
  11251. if (Players[playerid][pOutfitIndex] != INVALID_ID)
  11252. {
  11253. CancelOutfitSelection(playerid);
  11254. }
  11255. if (Players[playerid][pHouseEdit] != INVALID_ID)
  11256. {
  11257. SetFurnitureEditMode(Players[playerid][pHouseEdit], false);
  11258. Players[playerid][pHouseEdit] = INVALID_ID;
  11259. }
  11260. if (Players[playerid][pCarConfirm] != INVALID_ID)
  11261. {
  11262. Players[playerid][pCarConfirm] = INVALID_ID;
  11263. }
  11264. if (Players[playerid][pRefuel] != INVALID_ID)
  11265. {
  11266. StopRefuel(playerid);
  11267. }
  11268. if (Players[playerid][pHandcuffed])
  11269. {
  11270. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE);
  11271. }
  11272. if (Players[playerid][pCalling] > 0)
  11273. {
  11274. HangupCall(playerid);
  11275. }
  11276. if (Players[playerid][pMaskID] > 0)
  11277. {
  11278. Players[playerid][pMaskID] = 0;
  11279. UpdateMaskForPlayer(playerid);
  11280. }
  11281. for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++)
  11282. PoliceObjects[playerid][i] = INVALID_OBJECT_ID;
  11283. StopWorking(playerid);
  11284. StopPicking(playerid);
  11285. StopRepairing(playerid);
  11286. ResetWeapons(playerid);
  11287. ResetPayphone(playerid);
  11288. CancelEdit(playerid);
  11289. SetPlayerArmedWeapon(playerid, 0);
  11290. Players[playerid][pFlashOn] = 0;
  11291. Players[playerid][pSitting] = 0;
  11292. Players[playerid][pEdit] = EDIT_TYPE_NONE;
  11293. Players[playerid][pBleeding] = 0;
  11294. Players[playerid][pBleedingTime] = 0;
  11295. Players[playerid][pMedicKit] = 0;
  11296. Players[playerid][pPainkillers] = 0;
  11297. Players[playerid][pTazer] = 0;
  11298. Players[playerid][pTazed] = 0;
  11299. Players[playerid][pHandcuffed] = 0;
  11300. Players[playerid][pCuffedBy] = INVALID_PLAYER_ID;
  11301. Players[playerid][pAnimation] = 0;
  11302. Players[playerid][pSelectUniform] = 0;
  11303. Players[playerid][pDealershipMenu] = INVALID_ID;
  11304. Players[playerid][pStoned] = STONED_TYPE_NONE;
  11305. Players[playerid][pStonedTime] = 0;
  11306. Players[playerid][pCallTaxi] = 0;
  11307. Players[playerid][pSprayTag] = INVALID_ID;
  11308. Players[playerid][pBrokenLeg] = 0;
  11309. Players[playerid][pChatting] = 0;
  11310. Players[playerid][pAutoShop] = INVALID_ID;
  11311. Players[playerid][pMining] = 0;
  11312. }
  11313. SetAttachedObject(playerid, modelid, bone, Float:x = 0.0, Float:y = 0.0, Float:z = 0.0, Float:rx = 0.0, Float:ry = 0.0, Float:rz = 0.0, Float:sx = 1.0, Float:sy = 1.0, Float:sz = 1.0, materialcolor1 = 0, materialcolor2 = 0)
  11314. {
  11315. for (new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i ++)
  11316. {
  11317. if (!IsPlayerAttachedObjectSlotUsed(playerid, i))
  11318. {
  11319. SetPlayerAttachedObject(playerid, i, modelid, bone, x, y, z, rx, ry, rz, sx, sy, sz, materialcolor1, materialcolor2);
  11320. return i;
  11321. }
  11322. }
  11323. return INVALID_ID;
  11324. }
  11325. StopWorkout(playerid)
  11326. {
  11327. if (Players[playerid][pWorkout] != WORKOUT_NONE)
  11328. {
  11329. HidePlayerProgressBar(playerid, Players[playerid][pBars][0]);
  11330. HidePlayerTextDraws(playerid, 58, 62);
  11331. SetCameraBehindPlayer(playerid);
  11332. TogglePlayerControllable(playerid, 1);
  11333. KillTimer(Timers[playerid][tWorkout]);
  11334. switch (Players[playerid][pWorkout])
  11335. {
  11336. case WORKOUT_DUMBELLS:
  11337. {
  11338. Players[playerid][pWeight] = 0;
  11339. Players[playerid][pReps] = 0;
  11340. PlayerPlaySound(playerid, 17807, 0.0, 0.0, 0.0);
  11341. RemovePlayerAttachedObject(playerid, gWeights[playerid][0]);
  11342. RemovePlayerAttachedObject(playerid, gWeights[playerid][1]);
  11343. }
  11344. case WORKOUT_TREADMILL:
  11345. {
  11346. Players[playerid][pSpeedLevel] = 0;
  11347. Players[playerid][pDistanceRan] = 0;
  11348. PlayerPlaySound(playerid, 17808, 0.0, 0.0, 0.0);
  11349. }
  11350. }
  11351. Players[playerid][pWorkout] = WORKOUT_NONE;
  11352. }
  11353. return 1;
  11354. }
  11355. WorkoutUpdate(playerid)
  11356. {
  11357. if (Players[playerid][pWorkout] != WORKOUT_NONE)
  11358. {
  11359. new
  11360. Float:value = GetPlayerProgressBarValue(playerid, Players[playerid][pBars][0]);
  11361. switch (Players[playerid][pWorkout])
  11362. {
  11363. case WORKOUT_DUMBELLS:
  11364. {
  11365. switch (Players[playerid][pWeight])
  11366. {
  11367. case 20..60:
  11368. {
  11369. ApplyAnimation(playerid, "Freeweights", "gym_free_A", 4.1, 0, 0, 0, 0, 0, 1);
  11370. }
  11371. case 70..110:
  11372. {
  11373. ApplyAnimation(playerid, "Freeweights", "gym_free_B", 4.1, 0, 0, 0, 0, 0, 1);
  11374. }
  11375. }
  11376. if (value < 90.0)
  11377. {
  11378. AddPowerToMeter(playerid);
  11379. }
  11380. else
  11381. {
  11382. Players[playerid][pReps]++;
  11383. Statistics[playerid][sTotalReps]++;
  11384. if (Players[playerid][pFitness] < 100 && (Players[playerid][pReps] % ((120 - Players[playerid][pWeight]) / 5)) == 0)
  11385. {
  11386. AddFitnessForPlayer(playerid);
  11387. }
  11388. SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], 0.0);
  11389. PlayerTextDrawFormatString(playerid, Players[playerid][pText][60], "%i", Players[playerid][pReps]);
  11390. ApplyAnimation(playerid, "Freeweights", "gym_free_down", 4.1, 0, 0, 0, 0, 0, 1);
  11391. ApplyAnimation(playerid, "Freeweights", "gym_free_down", 4.1, 0, 0, 0, 0, 0, 1);
  11392. if (Players[playerid][pReps] == 50 && !Players[playerid][pGymMembership])
  11393. {
  11394. Players[playerid][pWorkoutTime] = gettime() + 43200;
  11395. StopWorkout(playerid);
  11396. ShowFooterText(playerid, "You have reached your limit for today!");
  11397. ApplyAnimation(playerid, "Freeweights", "gym_free_putdown", 4.1, 0, 0, 0, 0, 0, 1);
  11398. }
  11399. }
  11400. }
  11401. case WORKOUT_TREADMILL:
  11402. {
  11403. Players[playerid][pDistanceRan] = Players[playerid][pDistanceRan] + 1;
  11404. Statistics[playerid][sDistanceRan]++;
  11405. SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], value + (Players[playerid][pSpeedLevel] + 12));
  11406. PlayerTextDrawFormatString(playerid, Players[playerid][pText][62], "%i", Players[playerid][pDistanceRan]);
  11407. if (Players[playerid][pFitness] < 100 && (Players[playerid][pDistanceRan] % 100) == 0)
  11408. {
  11409. AddFitnessForPlayer(playerid);
  11410. }
  11411. if (Players[playerid][pDistanceRan] == 200 && !Players[playerid][pGymMembership])
  11412. {
  11413. Players[playerid][pWorkoutTime] = gettime() + 43200;
  11414. StopWorkout(playerid);
  11415. ShowFooterText(playerid, "You have reached your limit for today!");
  11416. ApplyAnimation(playerid, "GYMNASIUM", "gym_tread_getoff", 4.1, 0, 0, 0, 0, 0, 1);
  11417. }
  11418. }
  11419. }
  11420. }
  11421. return 1;
  11422. }
  11423. AddPowerToMeter(playerid)
  11424. {
  11425. new
  11426. Float:value = GetPlayerProgressBarValue(playerid, Players[playerid][pBars][0]);
  11427. switch (Players[playerid][pWeight])
  11428. {
  11429. case 20: SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], value + 22.0);
  11430. case 30: SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], value + 20.5);
  11431. case 40: SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], value + 19.0);
  11432. case 50: SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], value + 18.0);
  11433. case 60: SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], value + 16.0);
  11434. case 70: SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], value + 14.0);
  11435. case 80: SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], value + 12.0);
  11436. case 90: SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], value + 10.0);
  11437. case 100: SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], value + 8.0);
  11438. case 110: SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], value + 6.0);
  11439. }
  11440. }
  11441. SetReloadAnimation(playerid, weaponid)
  11442. {
  11443. switch (weaponid)
  11444. {
  11445. case 22:
  11446. {
  11447. if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK)
  11448. ApplyAnimation(playerid, "COLT45", "colt45_crouchreload", 4.1, 0, 0, 0, 0, 0, 1);
  11449. else
  11450. ApplyAnimation(playerid, "COLT45", "colt45_reload", 4.1, 0, 0, 0, 0, 0, 1);
  11451. }
  11452. case 23:
  11453. {
  11454. if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK)
  11455. ApplyAnimation(playerid, "SILENCED", "CrouchReload", 4.1, 0, 0, 0, 0, 0, 1);
  11456. else
  11457. ApplyAnimation(playerid, "SILENCED", "Silence_reload", 4.1, 0, 0, 0, 0, 0, 1);
  11458. }
  11459. case 24:
  11460. {
  11461. if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK)
  11462. ApplyAnimation(playerid, "PYTHON", "python_crouchreload", 4.1, 0, 0, 0, 0, 0, 1);
  11463. else
  11464. ApplyAnimation(playerid, "PYTHON", "python_reload", 4.1, 0, 0, 0, 0, 0, 1);
  11465. }
  11466. case 25:
  11467. {
  11468. if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK)
  11469. ApplyAnimation(playerid, "BUDDY", "buddy_crouchreload", 4.1, 0, 0, 0, 0, 0, 1);
  11470. else
  11471. ApplyAnimation(playerid, "BUDDY", "buddy_reload", 4.1, 0, 0, 0, 0, 0, 1);
  11472. }
  11473. case 26:
  11474. {
  11475. if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK)
  11476. ApplyAnimation(playerid, "COLT45", "colt45_crouchreload", 4.1, 0, 0, 0, 0, 0, 1);
  11477. else
  11478. ApplyAnimation(playerid, "COLT45", "sawnoff_reload", 4.1, 0, 0, 0, 0, 0, 1);
  11479. }
  11480. case 27:
  11481. {
  11482. if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK)
  11483. ApplyAnimation(playerid, "BUDDY", "buddy_crouchreload", 4.1, 0, 0, 0, 0, 0, 1);
  11484. else
  11485. ApplyAnimation(playerid, "BUDDY", "buddy_reload", 4.1, 0, 0, 0, 0, 0, 1);
  11486. }
  11487. case 28:
  11488. {
  11489. if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK)
  11490. ApplyAnimation(playerid, "UZI", "UZI_crouchreload", 4.1, 0, 0, 0, 0, 0, 1);
  11491. else
  11492. ApplyAnimation(playerid, "UZI", "UZI_reload", 4.1, 0, 0, 0, 0, 0, 1);
  11493. }
  11494. case 29, 30, 31, 33, 34:
  11495. {
  11496. if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK)
  11497. ApplyAnimation(playerid, "RIFLE", "RIFLE_crouchload", 4.1, 0, 0, 0, 0, 0, 1);
  11498. else
  11499. ApplyAnimation(playerid, "RIFLE", "RIFLE_load", 4.1, 0, 0, 0, 0, 0, 1);
  11500. }
  11501. case 32:
  11502. {
  11503. if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK)
  11504. ApplyAnimation(playerid, "TEC", "TEC_crouchreload", 4.1, 0, 0, 0, 0, 0, 1);
  11505. else
  11506. ApplyAnimation(playerid, "TEC", "TEC_reload", 4.1, 0, 0, 0, 0, 0, 1);
  11507. }
  11508. }
  11509. return 1;
  11510. }
  11511. SetCheckpointForPackage(playerid)
  11512. {
  11513. if (IsValidPlayerObject(playerid, Players[playerid][pPackage]))
  11514. {
  11515. DestroyPlayerObject(playerid, Players[playerid][pPackage]);
  11516. }
  11517. Players[playerid][pPackage] = INVALID_OBJECT_ID;
  11518. SendInfoMessage(playerid, "The package can be found at the checkpoint on your mini-map.");
  11519. ShowFooterText(playerid, "Go to the marker to pickup your ~r~package~w~.");
  11520. switch (random(3))
  11521. {
  11522. case 0:
  11523. {
  11524. SetCheckpoint(playerid, CHECKPOINT_PACKAGE, 1550.09, -27.9456, 20.5695, 1.5);
  11525. Players[playerid][pPackage] = CreatePlayerObject(playerid, 3014, 1550.09, -27.9456, 20.5695, 0.0, 0.0, 0.0);
  11526. }
  11527. case 1:
  11528. {
  11529. SetCheckpoint(playerid, CHECKPOINT_PACKAGE, 1357.66, 1042.88, 10.0403, 1.5);
  11530. Players[playerid][pPackage] = CreatePlayerObject(playerid, 3014, 1357.66, 1042.88, 10.0403, 0.0, 0.0, 0.0);
  11531. }
  11532. case 2:
  11533. {
  11534. SetCheckpoint(playerid, CHECKPOINT_PACKAGE, -124.091, 1077.85, 19.009, 1.5);
  11535. Players[playerid][pPackage] = CreatePlayerObject(playerid, 3014, -124.091, 1077.85, 19.009, 0.0, 0.0, 0.0);
  11536. }
  11537. }
  11538. }
  11539. IsItemWeapon(item[])
  11540. {
  11541. new modelid = GetItemInformation(item, ITEM_INFO_MODEL);
  11542. if(modelid)
  11543. {
  11544. for(new i = 0; i < sizeof(g_WeaponInfo); i ++)
  11545. {
  11546. if(g_WeaponInfo[i][e_WeaponModel] == modelid)
  11547. {
  11548. return true;
  11549. }
  11550. }
  11551. }
  11552. return false;
  11553. }
  11554. GetWeaponItemName(weaponid)
  11555. {
  11556. new string[32];
  11557. for (new i = 0; i < sizeof(g_ItemList); i ++)
  11558. {
  11559. if (g_ItemList[i][e_ItemModel] == g_WeaponInfo[weaponid][e_WeaponModel])
  11560. {
  11561. strcpy(string, g_ItemList[i][e_ItemName]);
  11562. }
  11563. }
  11564. return string;
  11565. }
  11566. UpdateWeaponOffset(playerid, slot)
  11567. {
  11568. new index = 0;
  11569. if (slot == WEAPON_MELEE) {
  11570. index = ATTACHED_SLOT_MELEE;
  11571. } else if (slot == WEAPON_PRIMARY) {
  11572. index = ATTACHED_SLOT_PRIMARY;
  11573. } else if (slot == WEAPON_SECONDARY) {
  11574. index = ATTACHED_SLOT_SECONDARY;
  11575. } else if (slot == WEAPON_TERTIARY) {
  11576. index = ATTACHED_SLOT_TERTIARY;
  11577. }
  11578. RemovePlayerAttachedObject(playerid, index);
  11579. UpdateWeaponHolster(playerid);
  11580. }
  11581. UpdateWeaponHolster(playerid)
  11582. {
  11583. new
  11584. weaponid = GetPlayerWeapon(playerid),
  11585. type;
  11586. if (IsPlayerAttachedObjectSlotUsed(playerid, ATTACHED_SLOT_MELEE) && weaponid == Weapons[playerid][wMelee])
  11587. {
  11588. RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_MELEE);
  11589. }
  11590. else if (weaponid != Weapons[playerid][wMelee] && !IsPlayerAttachedObjectSlotUsed(playerid, ATTACHED_SLOT_MELEE) && IsHolsterWeapon(Weapons[playerid][wMelee]))
  11591. {
  11592. type = GetWeaponOffsetType(Weapons[playerid][wMelee]);
  11593. if (!WeaponOffsets[playerid][type][wBoneID]) {
  11594. SetDefaultWeaponOffset(playerid, Weapons[playerid][wMelee]);
  11595. }
  11596. if (!WeaponOffsets[playerid][type][wHidden]) {
  11597. SetPlayerAttachedObject(playerid, ATTACHED_SLOT_MELEE, g_WeaponInfo[Weapons[playerid][wMelee]][e_WeaponModel], WeaponOffsets[playerid][type][wBoneID], WeaponOffsets[playerid][type][wOffsetX], WeaponOffsets[playerid][type][wOffsetY], WeaponOffsets[playerid][type][wOffsetZ], WeaponOffsets[playerid][type][wOffsetRX], WeaponOffsets[playerid][type][wOffsetRY], WeaponOffsets[playerid][type][wOffsetRZ]);
  11598. }
  11599. }
  11600. if (IsPlayerAttachedObjectSlotUsed(playerid, ATTACHED_SLOT_PRIMARY) && weaponid == Weapons[playerid][wPrimary])
  11601. {
  11602. RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_PRIMARY);
  11603. }
  11604. else if (weaponid != Weapons[playerid][wPrimary] && !IsPlayerAttachedObjectSlotUsed(playerid, ATTACHED_SLOT_PRIMARY) && IsHolsterWeapon(Weapons[playerid][wPrimary]))
  11605. {
  11606. type = GetWeaponOffsetType(Weapons[playerid][wPrimary]);
  11607. if (!WeaponOffsets[playerid][type][wBoneID]) {
  11608. SetDefaultWeaponOffset(playerid, Weapons[playerid][wPrimary]);
  11609. }
  11610. if (!WeaponOffsets[playerid][type][wHidden]) {
  11611. SetPlayerAttachedObject(playerid, ATTACHED_SLOT_PRIMARY, g_WeaponInfo[Weapons[playerid][wPrimary]][e_WeaponModel], WeaponOffsets[playerid][type][wBoneID], WeaponOffsets[playerid][type][wOffsetX], WeaponOffsets[playerid][type][wOffsetY], WeaponOffsets[playerid][type][wOffsetZ], WeaponOffsets[playerid][type][wOffsetRX], WeaponOffsets[playerid][type][wOffsetRY], WeaponOffsets[playerid][type][wOffsetRZ]);
  11612. }
  11613. }
  11614. if (IsPlayerAttachedObjectSlotUsed(playerid, ATTACHED_SLOT_SECONDARY) && weaponid == Weapons[playerid][wSecondary])
  11615. {
  11616. RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_SECONDARY);
  11617. }
  11618. else if (weaponid != Weapons[playerid][wSecondary] && !IsPlayerAttachedObjectSlotUsed(playerid, ATTACHED_SLOT_SECONDARY) && IsHolsterWeapon(Weapons[playerid][wSecondary]))
  11619. {
  11620. type = GetWeaponOffsetType(Weapons[playerid][wSecondary]);
  11621. if (!WeaponOffsets[playerid][type][wBoneID]) {
  11622. SetDefaultWeaponOffset(playerid, Weapons[playerid][wSecondary]);
  11623. }
  11624. if (!WeaponOffsets[playerid][type][wHidden]) {
  11625. SetPlayerAttachedObject(playerid, ATTACHED_SLOT_SECONDARY, g_WeaponInfo[Weapons[playerid][wSecondary]][e_WeaponModel], WeaponOffsets[playerid][type][wBoneID], WeaponOffsets[playerid][type][wOffsetX], WeaponOffsets[playerid][type][wOffsetY], WeaponOffsets[playerid][type][wOffsetZ], WeaponOffsets[playerid][type][wOffsetRX], WeaponOffsets[playerid][type][wOffsetRY], WeaponOffsets[playerid][type][wOffsetRZ]);
  11626. }
  11627. }
  11628. if (IsPlayerAttachedObjectSlotUsed(playerid, ATTACHED_SLOT_TERTIARY) && weaponid == Weapons[playerid][wTertiary])
  11629. {
  11630. RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_TERTIARY);
  11631. }
  11632. else if (weaponid != Weapons[playerid][wTertiary] && !IsPlayerAttachedObjectSlotUsed(playerid, ATTACHED_SLOT_TERTIARY) && IsHolsterWeapon(Weapons[playerid][wTertiary]))
  11633. {
  11634. type = GetWeaponOffsetType(Weapons[playerid][wTertiary]);
  11635. if (!WeaponOffsets[playerid][type][wBoneID]) {
  11636. SetDefaultWeaponOffset(playerid, Weapons[playerid][wTertiary]);
  11637. }
  11638. if (!WeaponOffsets[playerid][type][wHidden]) {
  11639. SetPlayerAttachedObject(playerid, ATTACHED_SLOT_TERTIARY, g_WeaponInfo[Weapons[playerid][wTertiary]][e_WeaponModel], WeaponOffsets[playerid][type][wBoneID], WeaponOffsets[playerid][type][wOffsetX], WeaponOffsets[playerid][type][wOffsetY], WeaponOffsets[playerid][type][wOffsetZ], WeaponOffsets[playerid][type][wOffsetRX], WeaponOffsets[playerid][type][wOffsetRY], WeaponOffsets[playerid][type][wOffsetRZ]);
  11640. }
  11641. }
  11642. return 1;
  11643. }
  11644. OnPlayerPurchaseItem(playerid, item[], company, product)
  11645. {
  11646. new price = Products[company][product][prPrice];
  11647. if (!IsValidCompanyID(company))
  11648. {
  11649. return 0;
  11650. }
  11651. else if (Products[company][product][prStock] == 0)
  11652. {
  11653. return SendErrorMessage(playerid, "This item is out of stock.");
  11654. }
  11655. else if (!PlayerCanAfford(playerid, Products[company][product][prPrice]))
  11656. {
  11657. return SendErrorMessage(playerid, "You cannot afford this item.");
  11658. }
  11659. else
  11660. {
  11661. if (!strcmp(item, "SIM Card"))
  11662. {
  11663. new
  11664. number = (100000 + random(899999));
  11665. for (new i = 0; i < MAX_INVENTORY_ITEMS; i ++)
  11666. {
  11667. if (Inventory[playerid][i][invExists] && !strcmp(Inventory[playerid][i][invName], "Mobile Phone") && !Inventory[playerid][i][invValue])
  11668. {
  11669. SetItemValue(playerid, i, number);
  11670. SendInfoMessage(playerid, "Your new number is %i. You can find your phone in your inventory.", number);
  11671. PurchaseProduct(playerid, company, product);
  11672. new log[128];
  11673. format(log, sizeof(log), "%s purchased a SIM Card, number %i.", ReturnName(playerid), number);
  11674. CreateLog("purchase", log);
  11675. return 1;
  11676. }
  11677. }
  11678. SendErrorMessage(playerid, "You must purchase a mobile phone first.");
  11679. }
  11680. else if (!strcmp(item, "Mobile Phone"))
  11681. {
  11682. if (!IsSufficientSpace(playerid, "Mobile Phone"))
  11683. {
  11684. SendErrorMessage(playerid, "There is no more room in your inventory.");
  11685. }
  11686. else
  11687. {
  11688. AddItemToInventory(playerid, "Mobile Phone");
  11689. SendInfoMessage(playerid, "You have purchased a mobile phone for {33CC33}%s{FFFFFF}. Buy a SIM card to activate it.", FormatNumber(price));
  11690. PurchaseProduct(playerid, company, product);
  11691. new log[128];
  11692. format(log, sizeof(log), "%s purchased a phone.", ReturnName(playerid));
  11693. CreateLog("purchase", log);
  11694. }
  11695. }
  11696. else if (!strcmp(item, "Membership"))
  11697. {
  11698. if (Players[playerid][pGymMembership])
  11699. {
  11700. SendErrorMessage(playerid, "You already have one!");
  11701. }
  11702. else
  11703. {
  11704. Players[playerid][pGymMembership] = 1;
  11705. Players[playerid][pWorkoutTime] = 0;
  11706. SendInfoMessage(playerid, "You have purchased a membership! You now have unlimited access to the equipment.");
  11707. PurchaseProduct(playerid, company, product);
  11708. new log[128];
  11709. format(log, sizeof(log), "%s purchased a Gym Membership.", ReturnName(playerid));
  11710. CreateLog("purchase", log);
  11711. }
  11712. }
  11713. else if (!strcmp(item, "Protein Shake"))
  11714. {
  11715. if (GetPlayerHealthEx(playerid) >= 100.0)
  11716. {
  11717. SendErrorMessage(playerid, "You don't need this right now.");
  11718. }
  11719. else
  11720. {
  11721. GivePlayerHealth(playerid, 20.0);
  11722. ApplyAnimation(playerid, "BAR", "dnk_stndM_loop", 4.1, 0, 0, 0, 0, 0);
  11723. SendInfoMessage(playerid, "You have purchased a protein shake for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  11724. PurchaseProduct(playerid, company, product);
  11725. new log[128];
  11726. format(log, sizeof(log), "%s purchased a Protein Shake.", ReturnName(playerid));
  11727. CreateLog("purchase", log);
  11728. }
  11729. }
  11730. else if (!strcmp(item, "Outfit"))
  11731. {
  11732. if (IsPlayerSelectingOutfit(playerid))
  11733. {
  11734. SendErrorMessage(playerid, "You are already selecting an outfit.");
  11735. }
  11736. else
  11737. {
  11738. Players[playerid][pBuyOutfit] = company;
  11739. TogglePlayerControllable(playerid, 0);
  11740. SavePositionAndHealth(playerid);
  11741. FadeScreenForPlayer(playerid, FADE_BUY_OUTFIT);
  11742. }
  11743. }
  11744. else if (!strcmp(item, "Glasses"))
  11745. {
  11746. ShowAccessoryPreviewer(playerid, ACCESSORY_GLASSES);
  11747. Players[playerid][pSelected] = product;
  11748. }
  11749. else if (!strcmp(item, "Bandanas"))
  11750. {
  11751. ShowAccessoryPreviewer(playerid, ACCESSORY_BANDANAS);
  11752. Players[playerid][pSelected] = product;
  11753. }
  11754. else if (!strcmp(item, "Hats"))
  11755. {
  11756. ShowAccessoryPreviewer(playerid, ACCESSORY_HATS);
  11757. Players[playerid][pSelected] = product;
  11758. }
  11759. else if (!strcmp(item, "Bags"))
  11760. {
  11761. ShowAccessoryPreviewer(playerid, ACCESSORY_BAGS);
  11762. Players[playerid][pSelected] = product;
  11763. }
  11764. else if (!strcmp(item, "Toolbox"))
  11765. {
  11766. if (!IsSufficientSpace(playerid, "Toolbox"))
  11767. {
  11768. SendErrorMessage(playerid, "There is no more room in your inventory.");
  11769. }
  11770. else
  11771. {
  11772. AddItemToInventory(playerid, "Toolbox");
  11773. SendInfoMessage(playerid, "You have purchased a toolbox for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  11774. PurchaseProduct(playerid, company, product);
  11775. new log[128];
  11776. format(log, sizeof(log), "%s purchased a toolbox.", ReturnName(playerid));
  11777. CreateLog("purchase", log);
  11778. }
  11779. }
  11780. else if (!strcmp(item, "Stereo"))
  11781. {
  11782. if (!IsSufficientSpace(playerid, "Stereo"))
  11783. {
  11784. SendErrorMessage(playerid, "There is no more room in your inventory.");
  11785. }
  11786. else if (Players[playerid][pHoursOnline] < 4)
  11787. {
  11788. SendErrorMessage(playerid, "You need at least 4 playing hours to buy this item.");
  11789. }
  11790. else
  11791. {
  11792. AddItemToInventory(playerid, "Stereo");
  11793. SendInfoMessage(playerid, "You have purchased a stereo for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  11794. PurchaseProduct(playerid, company, product);
  11795. new log[128];
  11796. format(log, sizeof(log), "%s purchased a stereo.", ReturnName(playerid));
  11797. CreateLog("purchase", log);
  11798. }
  11799. }
  11800. else if (!strcmp(item, "Bandages"))
  11801. {
  11802. if (!IsSufficientSpace(playerid, "Bandages"))
  11803. {
  11804. SendErrorMessage(playerid, "There is no more room in your inventory.");
  11805. }
  11806. else
  11807. {
  11808. AddItemToInventory(playerid, "Bandages", 5);
  11809. SendInfoMessage(playerid, "You have purchased a pack of 5 bandage rolls for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  11810. PurchaseProduct(playerid, company, product);
  11811. new log[128];
  11812. format(log, sizeof(log), "%s purchased bandages.", ReturnName(playerid));
  11813. CreateLog("purchase", log);
  11814. }
  11815. }
  11816. else if (!strcmp(item, "Medical Kit"))
  11817. {
  11818. if (!IsSufficientSpace(playerid, "Medical Kit"))
  11819. {
  11820. SendErrorMessage(playerid, "There is no more room in your inventory.");
  11821. }
  11822. else
  11823. {
  11824. AddItemToInventory(playerid, "Medical Kit");
  11825. SendInfoMessage(playerid, "You have purchased a medical kit for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  11826. PurchaseProduct(playerid, company, product);
  11827. new log[128];
  11828. format(log, sizeof(log), "%s purchased a medical kit.", ReturnName(playerid));
  11829. CreateLog("purchase", log);
  11830. }
  11831. }
  11832. else if (!strcmp(item, "Water"))
  11833. {
  11834. if (Companies[company][cType] == COMPANY_GYM)
  11835. {
  11836. if (GetPlayerHealthEx(playerid) >= 100.0)
  11837. {
  11838. SendErrorMessage(playerid, "You don't need this right now.");
  11839. }
  11840. else
  11841. {
  11842. GivePlayerHealth(playerid, 15.0);
  11843. ApplyAnimation(playerid, "BAR", "dnk_stndM_loop", 4.1, 0, 0, 0, 0, 0);
  11844. SendInfoMessage(playerid, "You have purchased some water for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  11845. PurchaseProduct(playerid, company, product);
  11846. new log[128];
  11847. format(log, sizeof(log), "%s purchased water.", ReturnName(playerid));
  11848. CreateLog("purchase", log);
  11849. }
  11850. }
  11851. }
  11852. else if (!strcmp(item, "Notebook"))
  11853. {
  11854. if (!IsSufficientSpace(playerid, "Notebook"))
  11855. {
  11856. SendErrorMessage(playerid, "There is no more room in your inventory.");
  11857. }
  11858. else
  11859. {
  11860. AddItemToInventory(playerid, "Notebook");
  11861. SendInfoMessage(playerid, "You have purchased a notebook for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  11862. PurchaseProduct(playerid, company, product);
  11863. new log[128];
  11864. format(log, sizeof(log), "%s purchased a notebook.", ReturnName(playerid));
  11865. CreateLog("purchase", log);
  11866. }
  11867. }
  11868. else if (!strcmp(item, "Gasoline"))
  11869. {
  11870. if (!IsSufficientSpace(playerid, "Gasoline"))
  11871. {
  11872. SendErrorMessage(playerid, "There is no more room in your inventory.");
  11873. }
  11874. else
  11875. {
  11876. AddItemToInventory(playerid, "Gasoline", 10);
  11877. SendInfoMessage(playerid, "You have purchased a can of gasoline for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  11878. PurchaseProduct(playerid, company, product);
  11879. new log[128];
  11880. format(log, sizeof(log), "%s purchased a can of gasoline.", ReturnName(playerid));
  11881. CreateLog("purchase", log);
  11882. }
  11883. }
  11884. else if (!strcmp(item, "Cigarettes"))
  11885. {
  11886. if (!IsSufficientSpace(playerid, "Cigarettes"))
  11887. {
  11888. SendErrorMessage(playerid, "There is no more room in your inventory.");
  11889. }
  11890. else
  11891. {
  11892. AddItemToInventory(playerid, "Cigarettes", 20);
  11893. SendInfoMessage(playerid, "You have purchased a pack of 20 cigarettes for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  11894. PurchaseProduct(playerid, company, product);
  11895. new log[128];
  11896. format(log, sizeof(log), "%s purchased a pack of cigarettes.", ReturnName(playerid));
  11897. CreateLog("purchase", log);
  11898. }
  11899. }
  11900. else if (!strcmp(item, "Screwdriver"))
  11901. {
  11902. if (!IsSufficientSpace(playerid, "Screwdriver"))
  11903. {
  11904. SendErrorMessage(playerid, "There is no more room in your inventory.");
  11905. }
  11906. else
  11907. {
  11908. AddItemToInventory(playerid, "Screwdriver");
  11909. SendInfoMessage(playerid, "You have purchased a screwdriver for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  11910. PurchaseProduct(playerid, company, product);
  11911. new log[128];
  11912. format(log, sizeof(log), "%s purchased a screwdriver.", ReturnName(playerid));
  11913. CreateLog("purchase", log);
  11914. }
  11915. }
  11916. else if (!strcmp(item, "Mask"))
  11917. {
  11918. if (!IsSufficientSpace(playerid, "Mask"))
  11919. {
  11920. SendErrorMessage(playerid, "There is no more room in your inventory.");
  11921. }
  11922. else if (Players[playerid][pHoursOnline] < 10)
  11923. {
  11924. SendErrorMessage(playerid, "There is a 10 hour playing requirement for this item.");
  11925. }
  11926. else
  11927. {
  11928. AddItemToInventory(playerid, "Mask", Random(10000, 99999));
  11929. SendInfoMessage(playerid, "You have purchased a mask for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  11930. PurchaseProduct(playerid, company, product);
  11931. new log[128];
  11932. format(log, sizeof(log), "%s purchased a mask.", ReturnName(playerid));
  11933. CreateLog("purchase", log);
  11934. }
  11935. }
  11936. else if (!strcmp(item, "Cigarette"))
  11937. {
  11938. if (Companies[company][cType] == COMPANY_BAR)
  11939. {
  11940. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_SMOKE_CIGGY);
  11941. SendInfoMessage(playerid, "You have purchased a cigarette for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  11942. PurchaseProduct(playerid, company, product);
  11943. new log[128];
  11944. format(log, sizeof(log), "%s purchased a cigarette.", ReturnName(playerid));
  11945. CreateLog("purchase", log);
  11946. }
  11947. }
  11948. else if (!strcmp(item, "Sprunk"))
  11949. {
  11950. if (Companies[company][cType] == COMPANY_BAR)
  11951. {
  11952. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_SPRUNK);
  11953. SendInfoMessage(playerid, "You have purchased a can of sprunk for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  11954. PurchaseProduct(playerid, company, product);
  11955. new log[128];
  11956. format(log, sizeof(log), "%s purchased a sprunk.", ReturnName(playerid));
  11957. CreateLog("purchase", log);
  11958. }
  11959. }
  11960. else if (!strcmp(item, "Beer"))
  11961. {
  11962. if (Companies[company][cType] == COMPANY_BAR)
  11963. {
  11964. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_BEER);
  11965. SendInfoMessage(playerid, "You have purchased a bottle of beer for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  11966. PurchaseProduct(playerid, company, product);
  11967. }
  11968. else if (!IsSufficientSpace(playerid, "Beer"))
  11969. {
  11970. SendErrorMessage(playerid, "There is no more room in your inventory.");
  11971. }
  11972. else
  11973. {
  11974. AddItemToInventory(playerid, "Beer");
  11975. SendInfoMessage(playerid, "You have purchased a bottle of beer for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  11976. PurchaseProduct(playerid, company, product);
  11977. new log[128];
  11978. format(log, sizeof(log), "%s purchased a bottle of beer.", ReturnName(playerid));
  11979. CreateLog("purchase", log);
  11980. }
  11981. }
  11982. else if (!strcmp(item, "Wine"))
  11983. {
  11984. if (Companies[company][cType] == COMPANY_BAR)
  11985. {
  11986. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_WINE);
  11987. SendInfoMessage(playerid, "You have purchased a bottle of wine for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  11988. PurchaseProduct(playerid, company, product);
  11989. }
  11990. else if (!IsSufficientSpace(playerid, "Wine"))
  11991. {
  11992. SendErrorMessage(playerid, "There is no more room in your inventory.");
  11993. }
  11994. else
  11995. {
  11996. AddItemToInventory(playerid, "Wine");
  11997. SendInfoMessage(playerid, "You have purchased a bottle of wine for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  11998. PurchaseProduct(playerid, company, product);
  11999. new log[128];
  12000. format(log, sizeof(log), "%s purchased a bottle of wine.", ReturnName(playerid));
  12001. CreateLog("purchase", log);
  12002. }
  12003. }
  12004. else if (!strcmp(item, "Spraycan"))
  12005. {
  12006. if (!IsSufficientSpace(playerid, "Spraycan"))
  12007. {
  12008. SendErrorMessage(playerid, "There is no more room in your inventory.");
  12009. }
  12010. else
  12011. {
  12012. AddItemToInventory(playerid, "Spraycan", 5);
  12013. SendInfoMessage(playerid, "You have purchased a 5 liter spraycan for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  12014. PurchaseProduct(playerid, company, product);
  12015. new log[128];
  12016. format(log, sizeof(log), "%s purchased a 5 liter spraycan.", ReturnName(playerid));
  12017. CreateLog("purchase", log);
  12018. }
  12019. }
  12020. else if (!strcmp(item, "Baseball Bat"))
  12021. {
  12022. if (!IsSufficientSpace(playerid, "Baseball Bat"))
  12023. {
  12024. SendErrorMessage(playerid, "There is no more room in your inventory.");
  12025. }
  12026. else
  12027. {
  12028. AddItemToInventory(playerid, "Baseball Bat");
  12029. SendInfoMessage(playerid, "You have purchased a baseball bat for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  12030. PurchaseProduct(playerid, company, product);
  12031. new log[128];
  12032. format(log, sizeof(log), "%s purchased a baseball bat.", ReturnName(playerid));
  12033. CreateLog("purchase", log);
  12034. }
  12035. }
  12036. else if (!strcmp(item, "Walkie Talkie"))
  12037. {
  12038. if (!IsSufficientSpace(playerid, "Walkie Talkie"))
  12039. {
  12040. SendErrorMessage(playerid, "There is no more room in your inventory.");
  12041. }
  12042. else
  12043. {
  12044. AddItemToInventory(playerid, "Walkie Talkie");
  12045. SendInfoMessage(playerid, "You have purchased a walkie talkie for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  12046. PurchaseProduct(playerid, company, product);
  12047. new log[128];
  12048. format(log, sizeof(log), "%s purchased a walkie talkie.", ReturnName(playerid));
  12049. CreateLog("purchase", log);
  12050. }
  12051. }
  12052. else if (!strcmp(item, "Portable Radio"))
  12053. {
  12054. if (!IsSufficientSpace(playerid, "Portable Radio"))
  12055. {
  12056. SendErrorMessage(playerid, "There is no more room in your inventory.");
  12057. }
  12058. else
  12059. {
  12060. AddItemToInventory(playerid, "Portable Radio");
  12061. SendInfoMessage(playerid, "You have purchased a portable radio for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  12062. PurchaseProduct(playerid, company, product);
  12063. new log[128];
  12064. format(log, sizeof(log), "%s purchased a portable radio.", ReturnName(playerid));
  12065. CreateLog("purchase", log);
  12066. }
  12067. }
  12068. else if (!strcmp(item, "Camera"))
  12069. {
  12070. if (!IsSufficientSpace(playerid, "Camera"))
  12071. {
  12072. SendErrorMessage(playerid, "There is no more room in your inventory.");
  12073. }
  12074. else
  12075. {
  12076. AddItemToInventory(playerid, "Camera");
  12077. SendInfoMessage(playerid, "You have purchased a camera for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  12078. PurchaseProduct(playerid, company, product);
  12079. new log[128];
  12080. format(log, sizeof(log), "%s purchased a camera.", ReturnName(playerid));
  12081. CreateLog("purchase", log);
  12082. }
  12083. }
  12084. /*else if (!strcmp(item, "Kevlar Vest"))
  12085. {
  12086. if (!IsSufficientSpace(playerid, "Kevlar Vest"))
  12087. {
  12088. SendErrorMessage(playerid, "There is no more room in your inventory.");
  12089. }
  12090. else
  12091. {
  12092. AddItemToInventory(playerid, "Kevlar Vest", 50);
  12093. SendInfoMessage(playerid, "You have purchased a kevlar vest for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  12094. PurchaseProduct(playerid, company, product);
  12095. }
  12096. }*/
  12097. else if (!strcmp(item, "Armor"))
  12098. {
  12099. if (!Players[playerid][pGunLicense])
  12100. {
  12101. SendErrorMessage(playerid, "You haven't been issued a gun license.");
  12102. }
  12103. else if (!IsSufficientSpace(playerid, "Armor"))
  12104. {
  12105. SendErrorMessage(playerid, "There is no more room in your inventory.");
  12106. }
  12107. else
  12108. {
  12109. AddItemToInventory(playerid, "Armor", 50);
  12110. SendInfoMessage(playerid, "You have purchased armor for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  12111. PurchaseProduct(playerid, company, product);
  12112. new log[128];
  12113. format(log, sizeof(log), "%s purchased armor.", ReturnName(playerid));
  12114. CreateLog("purchase", log);
  12115. }
  12116. }
  12117. else if (!strcmp(item, "Pepper Spray"))
  12118. {
  12119. if (!Players[playerid][pGunLicense])
  12120. {
  12121. SendErrorMessage(playerid, "You haven't been issued a gun license.");
  12122. }
  12123. else if (!IsSufficientSpace(playerid, "Pepper Spray"))
  12124. {
  12125. SendErrorMessage(playerid, "There is no more room in your inventory.");
  12126. }
  12127. else
  12128. {
  12129. AddItemToInventory(playerid, "Pepper Spray", 2000);
  12130. SendInfoMessage(playerid, "You have purchased a can of pepper spray for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  12131. PurchaseProduct(playerid, company, product);
  12132. new log[128];
  12133. format(log, sizeof(log), "%s purchased a pepper spray.", ReturnName(playerid));
  12134. CreateLog("purchase", log);
  12135. }
  12136. }
  12137. else if (!strcmp(item, "Desert Eagle"))
  12138. {
  12139. new serial = Random(10000, 99999);
  12140. if (!Players[playerid][pGunLicense])
  12141. {
  12142. SendErrorMessage(playerid, "You haven't been issued a gun license.");
  12143. }
  12144. else if (!IsSufficientSpace(playerid, "Desert Eagle"))
  12145. {
  12146. SendErrorMessage(playerid, "There is no more room in your inventory.");
  12147. }
  12148. else
  12149. {
  12150. AddItemToInventory(playerid, "Desert Eagle", 0, serial);
  12151. PurchaseProduct(playerid, company, product);
  12152. SendInfoMessage(playerid, "You have purchased a Desert Eagle for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  12153. AddSerialToRegistry(serial, "Desert Eagle", ReturnName(playerid), Companies[company][cName]);
  12154. new log[128];
  12155. format(log, sizeof(log), "%s purchased a desert eagle, serial: %i.", ReturnName(playerid), serial);
  12156. CreateLog("purchase", log);
  12157. }
  12158. }
  12159. else if (!strcmp(item, "Shotgun"))
  12160. {
  12161. new serial = Random(10000, 99999);
  12162. if(!Players[playerid][pGunLicense])
  12163. {
  12164. SendErrorMessage(playerid,"You haven't been issued a gun license.");
  12165. }
  12166. else if (!IsSufficientSpace(playerid, "Shotgun"))
  12167. {
  12168. SendErrorMessage(playerid, "There is no more room in your inventory.");
  12169. }
  12170. else
  12171. {
  12172. AddItemToInventory(playerid, "Shotgun", 0, serial);
  12173. PurchaseProduct(playerid, company, product);
  12174. SendInfoMessage(playerid, "You have purchased a Shotgun for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  12175. AddSerialToRegistry(serial, "Shotgun", ReturnName(playerid), Companies[company][cName]);
  12176. new log[128];
  12177. format(log, sizeof(log), "%s purchased a shotgun, serial: %i.", ReturnName(playerid), serial);
  12178. CreateLog("purchase", log);
  12179. }
  12180. }
  12181. else if (!strcmp(item, "Rifle"))
  12182. {
  12183. new serial = Random(10000, 99999);
  12184. if (!Players[playerid][pGunLicense])
  12185. {
  12186. SendErrorMessage(playerid, "You haven't been issued a gun license.");
  12187. }
  12188. else if (!IsSufficientSpace(playerid, "Rifle"))
  12189. {
  12190. SendErrorMessage(playerid, "There is no more room in your inventory.");
  12191. }
  12192. else
  12193. {
  12194. AddItemToInventory(playerid, "Rifle", 0, serial);
  12195. PurchaseProduct(playerid, company, product);
  12196. SendInfoMessage(playerid, "You have purchased a Rifle for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  12197. AddSerialToRegistry(serial, "Rifle", ReturnName(playerid), Companies[company][cName]);
  12198. new log[128];
  12199. format(log, sizeof(log), "%s purchased a rifle, serial: %i.", ReturnName(playerid), serial);
  12200. CreateLog("purchase", log);
  12201. }
  12202. }
  12203. else if (!strcmp(item, "9x19mm Ammo"))
  12204. {
  12205. if (!Players[playerid][pGunLicense])
  12206. {
  12207. SendErrorMessage(playerid, "You haven't been issued a gun license.");
  12208. }
  12209. else if (!IsSufficientSpace(playerid, "9x19mm"))
  12210. {
  12211. SendErrorMessage(playerid, "There is no more room in your inventory.");
  12212. }
  12213. else
  12214. {
  12215. AddItemToInventory(playerid, "9x19mm", 50);
  12216. SendInfoMessage(playerid, "You have purchased a 50 pack of 9x19mm ammunition for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  12217. PurchaseProduct(playerid, company, product);
  12218. new log[128];
  12219. format(log, sizeof(log), "%s purchased 9x19mm.", ReturnName(playerid));
  12220. CreateLog("purchase", log);
  12221. }
  12222. }
  12223. else if (!strcmp(item, ".50cal Ammo"))
  12224. {
  12225. if (!Players[playerid][pGunLicense])
  12226. {
  12227. SendErrorMessage(playerid, "You haven't been issued a gun license.");
  12228. }
  12229. else if (!IsSufficientSpace(playerid, ".50cal"))
  12230. {
  12231. SendErrorMessage(playerid, "There is no more room in your inventory.");
  12232. }
  12233. else
  12234. {
  12235. AddItemToInventory(playerid, ".50cal", 50);
  12236. SendInfoMessage(playerid, "You have purchased a 50 pack of ammunation from ammunition for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  12237. PurchaseProduct(playerid, company, product);
  12238. new log[128];
  12239. format(log, sizeof(log), "%s purchased .50cal.", ReturnName(playerid));
  12240. CreateLog("purchase", log);
  12241. }
  12242. }
  12243. else if (!strcmp(item, "12 Gauge Ammo"))
  12244. {
  12245. if (!Players[playerid][pGunLicense])
  12246. {
  12247. SendErrorMessage(playerid, "You haven't been issued a gun license.");
  12248. }
  12249. else if (!IsSufficientSpace(playerid, "12 Gauge"))
  12250. {
  12251. SendErrorMessage(playerid, "There is no more room in your inventory.");
  12252. }
  12253. else
  12254. {
  12255. AddItemToInventory(playerid, "12 Gauge", 20);
  12256. SendInfoMessage(playerid, "You have purchased a 20 pack of 12 Gauge ammunition for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  12257. PurchaseProduct(playerid, company, product);
  12258. new log[128];
  12259. format(log, sizeof(log), "%s purchased 12 Gauge.", ReturnName(playerid));
  12260. CreateLog("purchase", log);
  12261. }
  12262. }
  12263. else if (!strcmp(item, "5.56x45mm Ammo"))
  12264. {
  12265. if (!Players[playerid][pGunLicense])
  12266. {
  12267. SendErrorMessage(playerid, "You haven't been issued a gun license.");
  12268. }
  12269. else if (!IsSufficientSpace(playerid, "5.56x45mm"))
  12270. {
  12271. SendErrorMessage(playerid, "There is no more room in your inventory.");
  12272. }
  12273. else
  12274. {
  12275. AddItemToInventory(playerid, "5.56x45mm", 75);
  12276. SendInfoMessage(playerid, "You have purchased a 75 pack of 5.56x45mm ammunition for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  12277. PurchaseProduct(playerid, company, product);
  12278. new log[128];
  12279. format(log, sizeof(log), "%s purchased 5.56x45mm.", ReturnName(playerid));
  12280. CreateLog("purchase", log);
  12281. }
  12282. }
  12283. else if (!strcmp(item, "7.62x39mm Ammo"))
  12284. {
  12285. if (!Players[playerid][pGunLicense])
  12286. {
  12287. SendErrorMessage(playerid, "You haven't been issued a gun license.");
  12288. }
  12289. else if (!IsSufficientSpace(playerid, "7.62x39mm"))
  12290. {
  12291. SendErrorMessage(playerid, "There is no more room in your inventory.");
  12292. }
  12293. else
  12294. {
  12295. AddItemToInventory(playerid, "7.62x39mm", 50);
  12296. SendInfoMessage(playerid, "You have purchased a 50 pack of 7.62x39mm ammunition for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  12297. PurchaseProduct(playerid, company, product);
  12298. new log[128];
  12299. format(log, sizeof(log), "%s purchased 7.62x39mm.", ReturnName(playerid));
  12300. CreateLog("purchase", log);
  12301. }
  12302. }
  12303. else if (!strcmp(item, "7.62x51mm Ammo"))
  12304. {
  12305. if (!Players[playerid][pGunLicense])
  12306. {
  12307. SendErrorMessage(playerid, "You haven't been issued a gun license.");
  12308. }
  12309. else if (!IsSufficientSpace(playerid, "7.62x51mm"))
  12310. {
  12311. SendErrorMessage(playerid, "There is no more room in your inventory.");
  12312. }
  12313. else
  12314. {
  12315. AddItemToInventory(playerid, "7.62x51mm", 25);
  12316. SendInfoMessage(playerid, "You have purchased a 25 pack of 7.62x51mm ammunition for {33CC33}%s{FFFFFF}.", FormatNumber(price));
  12317. PurchaseProduct(playerid, company, product);
  12318. new log[128];
  12319. format(log, sizeof(log), "%s purchased 7x62x51mm.", ReturnName(playerid));
  12320. CreateLog("purchase", log);
  12321. }
  12322. }
  12323. }
  12324. return 1;
  12325. }
  12326. ShowStatsForPlayer(playerid, targetid) // "targetid" is the player to show the dialog to.
  12327. {
  12328. /*static
  12329. statString[1024];
  12330. if (!IsPlayerLoggedIn(playerid) || !IsPlayerLoggedIn(targetid))
  12331. {
  12332. return 0;
  12333. }
  12334. switch (page)
  12335. {
  12336. case 1:
  12337. {
  12338. format(statString, sizeof(statString), "{6688FF}Username:{FFFFFF} %s\n{6688FF}Register date:{FFFFFF} %s", ReturnNameEx(playerid, 0), Players[playerid][pRegistered]);
  12339. format(statString, sizeof(statString), "%s\n{6688FF}Gender:{FFFFFF} %s\n{6688FF}Age:{FFFFFF} %i years old\n{6688FF}Origin:{FFFFFF} %s\n{6688FF}Playing hours:{FFFFFF} %i hours", statString, GetGenderForPlayer(playerid), Players[playerid][pAge], Players[playerid][pOrigin], Players[playerid][pHoursOnline]);
  12340. format(statString, sizeof(statString), "%s\n{6688FF}Pocket money:{FFFFFF} %s\n{6688FF}Paycheck:{FFFFFF} %s (%i minutes)", statString, FormatNumber(Players[playerid][pPocketMoney]), FormatNumber(Players[playerid][pPaycheck]), (60 - Players[playerid][pMinutes]));
  12341. format(statString, sizeof(statString), "%s\n{6688FF}Payment type:{FFFFFF} %s\n{6688FF}Total weight:{FFFFFF} %i/%i\n{6688FF}Fitness:{FFFFFF} %s", statString, GetPaymentType(playerid), GetInventoryTotalWeight(playerid), GetInventoryMaxWeight(playerid), GetFitnessLevel(playerid));
  12342. format(statString, sizeof(statString), "%s\n{6688FF}Car license:{FFFFFF} %s\n{6688FF}Gun license:{FFFFFF} %s\n{6688FF}Distance traveled:{FFFFFF} %.2f km", statString, (Players[playerid][pCarLicense]) ? ("Yes") : ("No"), (Players[playerid][pGunLicense]) ? ("Yes") : ("No"), Players[playerid][pTraveled]);
  12343. Dialog_Show(targetid, Stats, DIALOG_STYLE_MSGBOX, "{FFFFFF}Statistics", statString, "Next", "Close");
  12344. }
  12345. case 2:
  12346. {
  12347. format(statString, sizeof(statString), "{6688FF}Vehicles hotwired:{FFFFFF} %i\n{6688FF}Vehicles rented:{FFFFFF} %i\n{6688FF}Total hospital fees:{FFFFFF} %s\n{6688FF}Items used:{FFFFFF} %i\n{6688FF}Items dropped:{FFFFFF} %i\n{6688FF}Items picked up:{FFFFFF} %i", Statistics[playerid][sHotwired], Statistics[playerid][sRentals], FormatNumber(Statistics[playerid][sHospitalFees]), Statistics[playerid][sItemsUsed], Statistics[playerid][sItemsDropped], Statistics[playerid][sItemsPicked]);
  12348. format(statString, sizeof(statString), "%s\n{6688FF}Distance ran:{FFFFFF} %i\n{6688FF}Total weights lifted:{FFFFFF} %i\n{6688FF}Houses purchased:{FFFFFF} %i\n{6688FF}Companies purchased:{FFFFFF} %i", statString, Statistics[playerid][sDistanceRan], Statistics[playerid][sTotalReps], Statistics[playerid][sHouses], Statistics[playerid][sCompanies]);
  12349. format(statString, sizeof(statString), "%s\n{6688FF}Vehicles purchased:{FFFFFF} %i\n{6688FF}Furniture purchased:{FFFFFF} %s\n{6688FF}Warrants issued:{FFFFFF} %i", statString, Statistics[playerid][sVehicles], FormatNumber(Statistics[playerid][sFurnitureFees]), Statistics[playerid][sTotalWarrants]);
  12350. Dialog_Show(targetid, Stats, DIALOG_STYLE_MSGBOX, "{FFFFFF}Statistics", statString, "Back", "Close");
  12351. }
  12352. }
  12353. Players[targetid][pViewStats] = playerid;
  12354. Players[targetid][pStatsPage] = page;*/
  12355. SendClientMessage(targetid, COLOR_DARKGREEN, "____________________________________________________________________________");
  12356. //SendClientMessage(targetid, COLOR_GREY, "-------------------------------------------------------------------------------------------------------------------------------------");
  12357. SendFormatMessage(targetid, COLOR_LIGHTGREY, "** Stats for %s **", ReturnNameEx(playerid, 0));
  12358. SendFormatMessage(targetid, COLOR_WHITE, "Hours: %i hours | Capacity: %i/%i", Players[playerid][pHoursOnline], GetInventoryTotalWeight(playerid), GetInventoryMaxWeight(playerid));
  12359. SendFormatMessage(targetid, COLOR_LIGHTGREY, "Money: %s | Paycheck: %s | Savings: %s | Payment: %s | Fitness: %s | Job: %s", FormatNumber(Players[playerid][pPocketMoney]), FormatNumber(Players[playerid][pPaycheck]), FormatNumber(Players[playerid][pSavingsMoney]), GetPaymentType(playerid), GetFitnessLevel(playerid), GetJobName(Players[playerid][pJob]));
  12360. SendFormatMessage(targetid, COLOR_WHITE, "Melee: %s | Primary: %s | Ammo: %i | Secondary: %s | Ammo: %i", GetWeapon(Weapons[playerid][wMelee]), GetWeapon(Weapons[playerid][wPrimary]), Weapons[playerid][wPrimaryAmmo], GetWeapon(Weapons[playerid][wSecondary]), Weapons[playerid][wSecondaryAmmo]);
  12361. SendFormatMessage(targetid, COLOR_LIGHTGREY, "Phone: %i | Channel: %i | Faction: %s | Rank: %s", Players[playerid][pPhone], Players[playerid][pChannel], GetPlayerFactionName(playerid), GetPlayerFactionRank(playerid));
  12362. SendFormatMessage(targetid, COLOR_WHITE, "Name Changes: %i | Jail Time: %i seconds | Health: %.1f | Armor: %.1f", Players[playerid][pNameChanges], Players[playerid][pJailTime], GetPlayerHealthEx(playerid), GetPlayerArmourEx(playerid));
  12363. SendFormatMessage(targetid, COLOR_LIGHTGREY, "Car License: %s | Gun License: %s | Traveled: %.2f km | Registered: %s | Donator: %s", (Players[playerid][pCarLicense]) ? ("Yes") : ("No"), (Players[playerid][pGunLicense]) ? ("Yes") : ("No"), Players[playerid][pTraveled], Players[playerid][pRegistered], GetDonatorLevel(Players[playerid][pDonator]));
  12364. //SendClientMessage(targetid, COLOR_GREY, "-------------------------------------------------------------------------------------------------------------------------------------");
  12365. SendClientMessage(targetid, COLOR_DARKGREEN, "____________________________________________________________________________");
  12366. /*SendClientMessage(targetid, COLOR_DARKGREEN, "____________________________________________________________________________");
  12367. //SendClientMessage(targetid, COLOR_GREY, "-------------------------------------------------------------------------------------------------------------------------------------");
  12368. SendFormatMessage(targetid, COLOR_LIGHTGREY, "** Stats for %s **", ReturnNameEx(playerid, 0));
  12369. SendFormatMessage(targetid, COLOR_WHITE, "Gender: %s | Age: %i | Origin: %s | Fitness: %s");
  12370. SendFormatMessage(targetid, COLOR_WHITE, "Faction: %s | Rank: %s | Job: %s | Phone: %i | Channel: %i");
  12371. SendFormatMessage(targetid, COLOR_WHITE, "Melee: %s | Primary: %s | Ammo: %i | Secondary: %s | Ammo: %i");
  12372. SendFormatMessage(targetid, COLOR_WHITE, "Level: %i | Experience: %i/%i | Donator Level: %s");
  12373. SendFormatMessage(targetid, COLOR_WHITE, "Health: %.0f | Armor: %.0f | Hours Played: %i");
  12374. SendFormatMessage(targetid, COLOR_WHITE, "Cash: %s | Paycheck: %s | Savings: %s | Payment: %s");
  12375. SendFormatMessage(targetid, COLOR_WHITE, "");
  12376. SendFormatMessage(targetid, COLOR_WHITE, "");
  12377. SendFormatMessage(targetid, COLOR_WHITE, "");
  12378. //SendClientMessage(targetid, COLOR_GREY, "-------------------------------------------------------------------------------------------------------------------------------------");
  12379. SendClientMessage(targetid, COLOR_DARKGREEN, "____________________________________________________________________________");*/
  12380. return 1;
  12381. }
  12382. ShowRentalEditMenu(playerid, company)
  12383. {
  12384. if (Companies[company][cType] != COMPANY_RENTALS)
  12385. {
  12386. return 0;
  12387. }
  12388. else
  12389. {
  12390. new
  12391. index = 0;
  12392. gListString = "Model\tPrice";
  12393. for (new i = 0; i < MAX_CARS; i ++)
  12394. {
  12395. if (IsValidVehicleID(i) && Vehicles[i][vCompany] == Companies[company][cID])
  12396. {
  12397. format(gListString, sizeof(gListString), "%s\n%s\t%s", gListString, GetVehicleModelName(Vehicles[i][vModel]), FormatNumber(Vehicles[i][vPrice]));
  12398. gListedItems[playerid][index++] = i;
  12399. }
  12400. }
  12401. Players[playerid][pCompany] = company;
  12402. Dialog_Show(playerid, RentalEdit, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Change prices", gListString, "Change", "Back");
  12403. }
  12404. return 1;
  12405. }
  12406. ShowRestaurantEditMenu(playerid, company)
  12407. {
  12408. static
  12409. string[(MAX_RESTAURANT_ITEMS * 32)];
  12410. if (Companies[company][cType] != COMPANY_RESTAURANT)
  12411. {
  12412. return 0;
  12413. }
  12414. else
  12415. {
  12416. new
  12417. index = 0;
  12418. string = "Add to Menu";
  12419. for (new i = 0; i < MAX_RESTAURANT_ITEMS; i ++)
  12420. {
  12421. if (RestaurantItems[company][i][rtExists])
  12422. {
  12423. format(string, sizeof(string), "%s\nStock: %i\tItem: %s (%s)", string, RestaurantItems[company][i][rtStock], RestaurantItems[company][i][rtName], FormatNumber(RestaurantItems[company][i][rtPrice]));
  12424. gListedItems[playerid][index++] = i;
  12425. }
  12426. }
  12427. Dialog_Show(playerid, RestaurantEdit, DIALOG_STYLE_LIST, "{FFFFFF}Select item to edit", string, "Edit", "Back");
  12428. }
  12429. return 1;
  12430. }
  12431. ShowDealershipEditMenu(playerid, company)
  12432. {
  12433. static
  12434. string[3072];
  12435. if (Companies[company][cType] != COMPANY_DEALERSHIP)
  12436. {
  12437. return 0;
  12438. }
  12439. else
  12440. {
  12441. new
  12442. index = 0;
  12443. string = "Add Vehicle";
  12444. for (new i = 0; i < MAX_DEALERSHIP_CARS; i ++)
  12445. {
  12446. if (DealershipCars[i][dcExists] && DealershipCars[i][dcCompany] == Companies[company][cID])
  12447. {
  12448. format(string, sizeof(string), "%s\n%s (price: %s)", string, GetVehicleModelName(DealershipCars[i][dcModel]), FormatNumber(DealershipCars[i][dcPrice]));
  12449. gListedItems[playerid][index++] = i;
  12450. }
  12451. }
  12452. Players[playerid][pCompany] = company;
  12453. Dialog_Show(playerid, DealerList, DIALOG_STYLE_LIST, "{FFFFFF}Dealership cars", string, "Select", "Back");
  12454. }
  12455. return 1;
  12456. }
  12457. ShowProductEditMenu(playerid, company)
  12458. {
  12459. new
  12460. string[(MAX_PRODUCTS * 64)],
  12461. index = 0
  12462. ;
  12463. switch (Companies[company][cType])
  12464. {
  12465. case COMPANY_RESTAURANT:
  12466. {
  12467. ShowRestaurantEditMenu(playerid, company);
  12468. }
  12469. case COMPANY_RENTALS:
  12470. {
  12471. ShowRentalEditMenu(playerid, company);
  12472. }
  12473. default:
  12474. {
  12475. for (new i = 0; i < sizeof(g_CompanyItems); i ++)
  12476. {
  12477. if (Companies[company][cType] == g_CompanyItems[i][e_CompanyType])
  12478. {
  12479. if (g_CompanyItems[i][e_IsStockable])
  12480. {
  12481. format(string, sizeof(string), "%s\nStock: %i\tItem: %s (%s)", string, Products[company][index][prStock], g_CompanyItems[i][e_ItemName], FormatNumber(Products[company][index][prPrice]));
  12482. }
  12483. else
  12484. {
  12485. format(string, sizeof(string), "%s\nItem: %s (%s)", string, g_CompanyItems[i][e_ItemName], FormatNumber(Products[company][index][prPrice]));
  12486. }
  12487. gListedItems[playerid][index++] = i;
  12488. }
  12489. }
  12490. if (strlen(string))
  12491. {
  12492. return Dialog_Show(playerid, EditProducts, DIALOG_STYLE_LIST, "{FFFFFF}Select product to edit", string, "Edit", "Back");
  12493. }
  12494. return 0;
  12495. }
  12496. }
  12497. return 1;
  12498. }
  12499. ShowRestaurantMenu(playerid, company)
  12500. {
  12501. new
  12502. string[(MAX_RESTAURANT_ITEMS * 64)],
  12503. index = 0;
  12504. for (new i = 0; i < MAX_RESTAURANT_ITEMS; i ++)
  12505. {
  12506. if (RestaurantItems[company][i][rtExists])
  12507. {
  12508. if (RestaurantItems[company][i][rtStock] > 0)
  12509. {
  12510. format(string, sizeof(string), "%s\nIn Stock\tItem: %s (%s)", string, RestaurantItems[company][i][rtName], FormatNumber(RestaurantItems[company][i][rtPrice]));
  12511. }
  12512. else
  12513. {
  12514. format(string, sizeof(string), "%s\nOut of Stock\tItem: %s (%s)", string, RestaurantItems[company][i][rtName], FormatNumber(RestaurantItems[company][i][rtPrice]));
  12515. }
  12516. gListedItems[playerid][index++] = i;
  12517. }
  12518. }
  12519. if (strlen(string))
  12520. {
  12521. Dialog_Show(playerid, BuyFood, DIALOG_STYLE_LIST, "{FFFFFF}Restaurant menu", string, "Purchase", "Back");
  12522. }
  12523. else
  12524. {
  12525. SendErrorMessage(playerid, "The owner of this restaurant has not added any food items.");
  12526. }
  12527. return 1;
  12528. }
  12529. ShowProductsForSale(playerid, company)
  12530. {
  12531. new
  12532. string[(MAX_PRODUCTS * 64)],
  12533. index = 0;
  12534. if (Companies[company][cType] == COMPANY_DEALERSHIP)
  12535. {
  12536. SendInfoMessage(playerid, "Use the arrows to browse between vehicles. Press ESC to cancel.");
  12537. return ShowDealershipPreviewMenu(playerid, company);
  12538. }
  12539. for (new i = 0; i < sizeof(g_CompanyItems); i ++)
  12540. {
  12541. if (Companies[company][cType] == g_CompanyItems[i][e_CompanyType])
  12542. {
  12543. if (g_CompanyItems[i][e_IsStockable])
  12544. {
  12545. if (Products[company][index][prStock] > 0)
  12546. {
  12547. format(string, sizeof(string), "%s\nIn Stock\tItem: %s (%s)", string, g_CompanyItems[i][e_ItemName], FormatNumber(Products[company][index][prPrice]));
  12548. }
  12549. else
  12550. {
  12551. format(string, sizeof(string), "%s\nOut of Stock\tItem: %s (%s)", string, g_CompanyItems[i][e_ItemName], FormatNumber(Products[company][index][prPrice]));
  12552. }
  12553. }
  12554. else
  12555. {
  12556. format(string, sizeof(string), "%s\nIn Stock\tItem: %s (%s)", string, g_CompanyItems[i][e_ItemName], FormatNumber(Products[company][index][prPrice]));
  12557. }
  12558. gListedItems[playerid][index++] = i;
  12559. }
  12560. }
  12561. if (strlen(string))
  12562. {
  12563. return Dialog_Show(playerid, BuyItem, DIALOG_STYLE_LIST, "{FFFFFF}Select product to buy", string, "Purchase", "Back");
  12564. }
  12565. return 0;
  12566. }
  12567. ShowHouseEditMenu(playerid, house)
  12568. {
  12569. new
  12570. string[32];
  12571. if (IsValidHouseID(house))
  12572. {
  12573. Players[playerid][pSelected] = house;
  12574. format(string, sizeof(string), "{FFFFFF}Edit house: %i", house);
  12575. Dialog_Show(playerid, EditHouse, DIALOG_STYLE_LIST, string, "House Location\nHouse Interior\nHouse Owner\t\t%s\nHouse Price\t\t%s\nHouse Address\t\t%s", "Edit", "Cancel", GetHouseOwner(house), FormatNumber(Houses[house][hValue]), Houses[house][hAddress]);
  12576. }
  12577. return 1;
  12578. }
  12579. ShowPaycheckEditMenu(playerid, faction)
  12580. {
  12581. if (IsValidFactionID(faction))
  12582. {
  12583. gListString[0] = 0;
  12584. for (new i = 1; i <= Factions[faction][fcMaxRanks]; i ++)
  12585. {
  12586. format(gListString, sizeof(gListString), "%s\n%i) %s (%s)", gListString, i, GetFactionRank(faction, i), FormatNumber(GetFactionRankPay(faction, i)));
  12587. }
  12588. Players[playerid][pSelected] = faction;
  12589. Dialog_Show(playerid, EditPaychecks, DIALOG_STYLE_LIST, "{FFFFFF}Faction Paychecks", gListString, "Change", "Cancel");
  12590. }
  12591. return 1;
  12592. }
  12593. ShowRankEditMenu(playerid, faction)
  12594. {
  12595. if (IsValidFactionID(faction))
  12596. {
  12597. gListString[0] = 0;
  12598. for (new i = 1; i <= Factions[faction][fcMaxRanks]; i ++)
  12599. {
  12600. format(gListString, sizeof(gListString), "%s\n%i) %s", gListString, i, GetFactionRank(faction, i));
  12601. }
  12602. Players[playerid][pSelected] = faction;
  12603. Dialog_Show(playerid, EditRanks, DIALOG_STYLE_LIST, "{FFFFFF}Faction Ranks", gListString, "Change", "Cancel");
  12604. }
  12605. return 1;
  12606. }
  12607. ShowEquipmentEditMenu(playerid, faction)
  12608. {
  12609. if(IsValidFactionID(faction))
  12610. {
  12611. gListString[0] = 0;
  12612. for(new i = 0; i < MAX_FACTION_EQUIPMENT; i ++)
  12613. {
  12614. if(!FactionEquipment[faction][i][fcItemExists])
  12615. format(gListString, sizeof(gListString), "%s\n%i) Empty Slot", gListString, i + 1);
  12616. else if(FactionEquipment[faction][i][fcItemValue] > 0)
  12617. format(gListString, sizeof(gListString), "%s\n%i) %s (%i)", gListString, i + 1, FactionEquipment[faction][i][fcItemName], FactionEquipment[faction][i][fcItemValue]);
  12618. else
  12619. format(gListString, sizeof(gListString), "%s\n%i) %s", gListString, i + 1, FactionEquipment[faction][i][fcItemName]);
  12620. }
  12621. Dialog_Show(playerid, EditEquipment, DIALOG_STYLE_LIST, "{FFFFFF}Faction Equipment", gListString, "Edit", "Cancel");
  12622. }
  12623. return 1;
  12624. }
  12625. ShowAccessoryEditMenu(playerid, faction)
  12626. {
  12627. if(IsValidFactionID(faction))
  12628. {
  12629. gListString[0] = 0;
  12630. for(new i = 0; i < MAX_FACTION_ACCESSORIES; i ++)
  12631. {
  12632. if(!FactionAccessories[faction][i][fcAccessoryExists])
  12633. format(gListString, sizeof(gListString), "%s\n%i) Empty Slot", gListString, i + 1);
  12634. else
  12635. format(gListString, sizeof(gListString), "%s\n%i) %s", gListString, i + 1, FactionAccessories[faction][i][fcAccessoryName]);
  12636. }
  12637. Dialog_Show(playerid, EditAccessories, DIALOG_STYLE_LIST, "{FFFFFF}Faction Accessories", gListString, "Edit", "Cancel");
  12638. }
  12639. return 1;
  12640. }
  12641. ShowUniformEditMenu(playerid, faction)
  12642. {
  12643. if (IsValidFactionID(faction))
  12644. {
  12645. gListString[0] = 0;
  12646. for (new i = 0; i < MAX_FACTION_UNIFORMS; i ++)
  12647. {
  12648. if (!Factions[faction][fcUniforms][i])
  12649. {
  12650. format(gListString, sizeof(gListString), "%s\n%i) Empty Slot", gListString, i + 1);
  12651. }
  12652. else
  12653. {
  12654. format(gListString, sizeof(gListString), "%s\n%i) Skin: %i", gListString, i + 1, Factions[faction][fcUniforms][i]);
  12655. }
  12656. }
  12657. Dialog_Show(playerid, EditUniforms, DIALOG_STYLE_LIST, "{FFFFFF}Faction Uniforms", gListString, "Edit", "Cancel");
  12658. }
  12659. return 1;
  12660. }
  12661. ShowFactionEditMenu(playerid, faction)
  12662. {
  12663. if (IsValidFactionID(faction))
  12664. {
  12665. Players[playerid][pSelected] = faction;
  12666. Dialog_Show(playerid, EditFaction, DIALOG_STYLE_LIST, "{FFFFFF}Edit Faction", "Faction Name\t\t%s\nFaction Type\t\t%s\nFaction Color\t\t%s{FFFFFF}\nFaction Ranks\t\t%i\nFaction Rights\nRank Names\nRank Paychecks\nFaction Spawn\nLocker Spawn\nLocker Uniforms\nLocker Equipment\nLocker Accessories", "Change", "Cancel", Factions[faction][fcName], GetFactionType(Factions[faction][fcType]), GetFactionEmbedColor(faction), Factions[faction][fcMaxRanks]);
  12667. }
  12668. return 1;
  12669. }
  12670. ShowBuildingEditMenu(playerid, building)
  12671. {
  12672. new
  12673. string[32];
  12674. if (IsValidBuildingID(building))
  12675. {
  12676. Players[playerid][pSelected] = building;
  12677. format(string, sizeof(string), "{FFFFFF}Edit building: %i", building);
  12678. Dialog_Show(playerid, EditBuilding, DIALOG_STYLE_LIST, string, "Building Location\nBuilding Interior\nBuilding Status\t\t%s\nBuilding Name\t\t%s\nBuilding World\t\t%i\nBuilding Icon\t\t%i", "Edit", "Cancel", (Buildings[building][bLocked]) ? ("Locked") : ("Unlocked"), Buildings[building][bName], Buildings[building][bWorld], Buildings[building][bIconType]);
  12679. }
  12680. return 1;
  12681. }
  12682. ShowCompanyEditMenu(playerid, company)
  12683. {
  12684. new
  12685. string[32];
  12686. if (IsValidCompanyID(company))
  12687. {
  12688. Players[playerid][pSelected] = company;
  12689. format(string, sizeof(string), "{FFFFFF}Edit company: %i", company);
  12690. if (Companies[company][cType] == COMPANY_DEALERSHIP)
  12691. {
  12692. Dialog_Show(playerid, EditCompany, DIALOG_STYLE_LIST, string, "Company Location\nCompany Interior\nVehicle Spawn\nCompany Owner\t%s\nCompany Price\t\t%s\nCompany Name\t\t%s\nCompany Type\t\t%s\nCompany Stock\t\t%i", "Edit", "Cancel", GetCompanyOwner(company), FormatNumber(Companies[company][cValue]), Companies[company][cName], GetCompanyType(Companies[company][cType]), Companies[company][cStock]);
  12693. }
  12694. else
  12695. {
  12696. Dialog_Show(playerid, EditCompany, DIALOG_STYLE_LIST, string, "Company Location\nCompany Interior\nDelivery Point\nCompany Owner\t%s\nCompany Price\t\t%s\nCompany Name\t\t%s\nCompany Type\t\t%s\nCompany Stock\t\t%i", "Edit", "Cancel", GetCompanyOwner(company), FormatNumber(Companies[company][cValue]), Companies[company][cName], GetCompanyType(Companies[company][cType]), Companies[company][cStock]);
  12697. }
  12698. }
  12699. return 1;
  12700. }
  12701. UpdateLightsForPlayer(playerid)
  12702. {
  12703. new id = GetCurrentHouse(playerid);
  12704. if (id != INVALID_ID)
  12705. {
  12706. if (Houses[id][hLights])
  12707. TextDrawHideForPlayer(playerid, gGlobalTextdraws[0]);
  12708. else
  12709. TextDrawShowForPlayer(playerid, gGlobalTextdraws[0]);
  12710. Players[playerid][pLights] = Houses[id][hLights];
  12711. }
  12712. else
  12713. {
  12714. TextDrawHideForPlayer(playerid, gGlobalTextdraws[0]);
  12715. Players[playerid][pLights] = 0;
  12716. }
  12717. return 1;
  12718. }
  12719. EnterCaller(playerid)
  12720. {
  12721. new id;
  12722. if (Players[playerid][pSetPosition] || Players[playerid][pTazed] || Players[playerid][pJailType] > 0)
  12723. {
  12724. return 0;
  12725. }
  12726. if ((id = GetClosestHouse(playerid)) != INVALID_ID)
  12727. {
  12728. if (Houses[id][hLocked])
  12729. {
  12730. SendErrorMessage(playerid, "The doors are locked.");
  12731. }
  12732. else if (Houses[id][hInt][0] == 0.0 && Houses[id][hInt][1] == 0.0 && Houses[id][hInt][2] == 0.0)
  12733. {
  12734. SendErrorMessage(playerid, "This house doesn't have an interior set.");
  12735. }
  12736. else if (IsPlayerNearBackdoor(playerid, id) && !IsBackdoorExitSetup(id))
  12737. {
  12738. return SendErrorMessage(playerid, "The backdoor exit is not setup yet.");
  12739. }
  12740. else
  12741. {
  12742. TogglePlayerControllable(playerid,0);
  12743. GameTextForPlayer(playerid, "~r~Loading objects...", 2000, 4);
  12744. SetTimerEx("UnFreezePlayer", 2000, false, "i", playerid); // was 8000 before
  12745. if (IsPlayerNearBackdoor(playerid, id)) {
  12746. SetPlayerFadePos(playerid, Houses[id][hBackdoorInt][0], Houses[id][hBackdoorInt][1], Houses[id][hBackdoorInt][2], Houses[id][hInt][3], Houses[id][hInterior], Houses[id][hWorld]);
  12747. } else {
  12748. SetPlayerFadePos(playerid, Houses[id][hInt][0], Houses[id][hInt][1], Houses[id][hInt][2], Houses[id][hInt][3], Houses[id][hInterior], Houses[id][hWorld]);
  12749. }
  12750. ShowActionBubble(playerid, "* %s opens the door and enters the house.", ReturnNameEx(playerid));
  12751. return 1;
  12752. }
  12753. }
  12754. else if ((id = GetClosestCompany(playerid)) != INVALID_ID)
  12755. {
  12756. if (Companies[id][cLocked])
  12757. {
  12758. SendErrorMessage(playerid, "The doors are locked.");
  12759. }
  12760. else if (Companies[id][cInt][0] == 0.0 && Companies[id][cInt][1] == 0.0 && Companies[id][cInt][2] == 0.0)
  12761. {
  12762. SendErrorMessage(playerid, "This company doesn't have an interior set.");
  12763. }
  12764. else if (!PlayerCanAfford(playerid, Companies[id][cFee]))
  12765. {
  12766. return SendErrorMessage(playerid, "You can't afford the entrance fee.");
  12767. }
  12768. else
  12769. {
  12770. TogglePlayerControllable(playerid,0);
  12771. GameTextForPlayer(playerid, "~r~Loading objects...", 2000, 4);
  12772. SetTimerEx("UnFreezePlayer", 2000, false, "i", playerid);
  12773. SetPlayerFadePos(playerid, Companies[id][cInt][0], Companies[id][cInt][1], Companies[id][cInt][2], Companies[id][cInt][3], Companies[id][cInterior], Companies[id][cWorld]);
  12774. ShowActionBubble(playerid, "* %s opens the door and enters the company.", ReturnNameEx(playerid));
  12775. GiveCompanyMoney(id, Companies[id][cFee]);
  12776. RemoveMoney(playerid, Companies[id][cFee]);
  12777. if(!isnull(Companies[id][cStream])) {
  12778. PlayAudioStreamForPlayer(playerid, Companies[id][cStream]);
  12779. }
  12780. return 1;
  12781. }
  12782. }
  12783. else if ((id = GetClosestBuilding(playerid)) != INVALID_ID)
  12784. {
  12785. if (Buildings[id][bLocked])
  12786. {
  12787. SendErrorMessage(playerid, "The doors are locked.");
  12788. }
  12789. else if (Buildings[id][bInt][0] == 0.0 && Buildings[id][bInt][1] == 0.0 && Buildings[id][bInt][2] == 0.0)
  12790. {
  12791. SendErrorMessage(playerid, "This building doesn't have an interior set.");
  12792. }
  12793. else
  12794. {
  12795. TogglePlayerControllable(playerid,0);
  12796. GameTextForPlayer(playerid, "~r~Loading objects...", 2000, 4);
  12797. SetTimerEx("UnFreezePlayer", 2000, false, "i", playerid);
  12798. SetPlayerFadePos(playerid, Buildings[id][bInt][0], Buildings[id][bInt][1], Buildings[id][bInt][2], Buildings[id][bInt][3], Buildings[id][bInterior], Buildings[id][bWorld]);
  12799. ShowActionBubble(playerid, "* %s opens the door and enters the building.", ReturnNameEx(playerid));
  12800. return 1;
  12801. }
  12802. }
  12803. for (new i = 0; i < sizeof(g_StaticBuildings); i ++)
  12804. {
  12805. if (IsPlayerInRangeOfPoint(playerid, 2.0, g_StaticBuildings[i][e_SpawnX], g_StaticBuildings[i][e_SpawnY], g_StaticBuildings[i][e_SpawnZ]))
  12806. {
  12807. TogglePlayerControllable(playerid,0);
  12808. GameTextForPlayer(playerid, "~r~Loading objects...", 2000, 4);
  12809. SetTimerEx("UnFreezePlayer", 2000, false, "i", playerid);
  12810. SetPlayerFadePos(playerid, g_StaticBuildings[i][e_InsideX], g_StaticBuildings[i][e_InsideY], g_StaticBuildings[i][e_InsideZ], g_StaticBuildings[i][e_InsideA], g_StaticBuildings[i][e_Interior], g_StaticBuildings[i][e_VirtualWorld], g_StaticBuildings[i][e_Freeze]);
  12811. ShowActionBubble(playerid, "* %s opens the door and enters the building.", ReturnNameEx(playerid));
  12812. return 1;
  12813. }
  12814. }
  12815. for (new i = 0; i < sizeof(g_HospitalLocations); i ++)
  12816. {
  12817. if (IsPlayerInRangeOfPoint(playerid, 2.0, g_HospitalLocations[i][0], g_HospitalLocations[i][1], g_HospitalLocations[i][2]))
  12818. {
  12819. TogglePlayerControllable(playerid,0);
  12820. GameTextForPlayer(playerid, "~r~Loading objects...", 2000, 4);
  12821. SetTimerEx("UnFreezePlayer", 2000, false, "i", playerid);
  12822. SetPlayerFadePos(playerid, 2502.0286, -1706.2908, 2104.7358, 270.0000, 8, i);
  12823. ShowActionBubble(playerid, "* %s opens the door and enters the building.", ReturnNameEx(playerid));
  12824. return 1;
  12825. }
  12826. }
  12827. if(IsPlayerInRangeOfPoint(playerid, 5.0, 1041.2220, -1028.3320, 32.1016) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  12828. {
  12829. new vehicleid = GetPlayerVehicleID(playerid);
  12830. if(!IsVehicleModifiable(vehicleid))
  12831. {
  12832. return SendErrorMessage(playerid, "This vehicle cannot be modified.");
  12833. }
  12834. Players[playerid][pModPreview] = 0;
  12835. SetVehiclePos(vehicleid, 614.8823, -125.0021, 998.0926);
  12836. SetVehicleZAngle(vehicleid, 90.0000);
  12837. //SetVehicleVirtualWorld(vehicleid, 9999);
  12838. LinkVehicleToInterior(vehicleid, 3);
  12839. GetVehicleParamsEx(vehicleid, Players[playerid][pVehicleParams][0], Players[playerid][pVehicleParams][1], Players[playerid][pVehicleParams][2], Players[playerid][pVehicleParams][3], Players[playerid][pVehicleParams][4], Players[playerid][pVehicleParams][5], Players[playerid][pVehicleParams][6]);
  12840. SetVehicleParamsEx(vehicleid, 0, 0, 0, 0, 0, 0, 0);
  12841. SetPlayerInterior(playerid, 3);
  12842. //SetPlayerVirtualWorld(playerid, 9999);
  12843. SetCameraBehindPlayer(playerid);
  12844. ShowModMainMenu(playerid);
  12845. return 1;
  12846. }
  12847. if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER && !Players[playerid][pRepairTime])
  12848. {
  12849. for(new i = 0; i < sizeof(g_RepairShops); i ++)
  12850. {
  12851. if(IsPlayerInRangeOfPoint(playerid, 5.0, g_RepairShops[i][0], g_RepairShops[i][1], g_RepairShops[i][2]))
  12852. {
  12853. if(IsRepairShopInUse(i))
  12854. {
  12855. return SendErrorMessage(playerid, "This Pay n' Spray is currently in use.");
  12856. }
  12857. if((!PlayerCanAfford(playerid, 500)) && (GetPlayerFactionType(playerid) != FACTION_LEO && GetPlayerFactionType(playerid) != FACTION_MEDICAL))
  12858. {
  12859. return SendErrorMessage(playerid, "You can't afford the entry cost.");
  12860. }
  12861. SetVehiclePos(GetPlayerVehicleID(playerid), g_RepairShops[i][3], g_RepairShops[i][4], g_RepairShops[i][5]);
  12862. SetVehicleZAngle(GetPlayerVehicleID(playerid), g_RepairShops[i][6]);
  12863. /*foreach(new p : Player)
  12864. {
  12865. if(IsPlayerInVehicle(p, GetPlayerVehicleID(playerid)))
  12866. {
  12867. SetPlayerCameraPos(p, repairShopCameras[i][0], repairShopCameras[i][1], repairShopCameras[i][2]);
  12868. SetPlayerCameraLookAt(p, repairShopCameras[i][3], repairShopCameras[i][4], repairShopCameras[i][5]);
  12869. }
  12870. }*/
  12871. TogglePlayerControllable(playerid, 0);
  12872. SendClientMessage(playerid, COLOR_WHITE, "Garage: You will be moved out the garage in 8 seconds.");
  12873. if(GetPlayerFactionType(playerid) == FACTION_LEO || GetPlayerFactionType(playerid) == FACTION_MEDICAL)
  12874. {
  12875. SendClientMessage(playerid, COLOR_GREEN, "Your vehicle is fixed free of charge due to being in a government faction!");
  12876. }
  12877. else
  12878. {
  12879. RemoveMoney(playerid, -500);
  12880. }
  12881. Players[playerid][pRepairTime] = 8;
  12882. Players[playerid][pRepairShop] = i;
  12883. return 1;
  12884. }
  12885. }
  12886. return 1;
  12887. }
  12888. return 0;
  12889. }
  12890. ExitCaller(playerid)
  12891. {
  12892. new id;
  12893. if (Players[playerid][pSetPosition] || Players[playerid][pTazed] || Players[playerid][pJailType] > 0)
  12894. {
  12895. return 0;
  12896. }
  12897. if (IsPlayerInRangeOfPoint(playerid, 3.0, 1725.3818, -2242.7742, 2039.3804))
  12898. {
  12899. TogglePlayerControllable(playerid,0);
  12900. GameTextForPlayer(playerid, "~r~Loading objects...", 2000, 4);
  12901. SetTimerEx("UnFreezePlayer", 2000, false, "i", playerid);
  12902. SetPlayerFadePos(playerid, 1685.8079, -2333.4343, 13.5469, 0.0000, 0, 0);
  12903. RemovePlayerMapIcon(playerid, 0);
  12904. HideFooterText(playerid);
  12905. return 1;
  12906. }
  12907. if ((id = GetCurrentHouse(playerid)) != INVALID_ID)
  12908. {
  12909. if (IsPlayerNearBackdoorExit(playerid, id) && !IsBackdoorSetup(id))
  12910. {
  12911. return SendErrorMessage(playerid, "The backdoor entrance is not setup yet.");
  12912. }
  12913. if (IsPlayerInRangeOfPoint(playerid, 3.0, Houses[id][hInt][0], Houses[id][hInt][1], Houses[id][hInt][2]))
  12914. {
  12915. TogglePlayerControllable(playerid,0);
  12916. GameTextForPlayer(playerid, "~r~Loading objects...", 2000, 4);
  12917. SetTimerEx("UnFreezePlayer", 2000, false, "i", playerid);
  12918. SetPlayerFadePos(playerid, Houses[id][hSpawn][0], Houses[id][hSpawn][1], Houses[id][hSpawn][2], Houses[id][hSpawn][3], Houses[id][hExterior], Houses[id][hExteriorWorld]);
  12919. ShowActionBubble(playerid, "* %s opens the door and exits the house.", ReturnNameEx(playerid));
  12920. }
  12921. else if (IsPlayerNearBackdoorExit(playerid, id))
  12922. {
  12923. TogglePlayerControllable(playerid,0);
  12924. GameTextForPlayer(playerid, "~r~Loading objects...", 2000, 4);
  12925. SetTimerEx("UnFreezePlayer", 2000, false, "i", playerid);
  12926. SetPlayerFadePos(playerid, Houses[id][hBackdoor][0], Houses[id][hBackdoor][1], Houses[id][hBackdoor][2], 0.0, Houses[id][hExterior], Houses[id][hExteriorWorld]);
  12927. ShowActionBubble(playerid, "* %s opens the door and exits the house.", ReturnNameEx(playerid));
  12928. }
  12929. return 1;
  12930. }
  12931. else if ((id = GetCurrentCompany(playerid)) != INVALID_ID && IsPlayerInRangeOfPoint(playerid, 3.0, Companies[id][cInt][0], Companies[id][cInt][1], Companies[id][cInt][2]))
  12932. {
  12933. TogglePlayerControllable(playerid,0);
  12934. GameTextForPlayer(playerid, "~r~Loading objects...", 2000, 4);
  12935. SetTimerEx("UnFreezePlayer", 2000, false, "i", playerid);
  12936. SetPlayerFadePos(playerid, Companies[id][cSpawn][0], Companies[id][cSpawn][1], Companies[id][cSpawn][2], Companies[id][cSpawn][3], Companies[id][cExterior], Companies[id][cExteriorWorld]);
  12937. ShowActionBubble(playerid, "* %s opens the door and exits the company.", ReturnNameEx(playerid));
  12938. if(!isnull(Companies[id][cStream])) {
  12939. StopAudioStreamForPlayer(playerid);
  12940. }
  12941. return 1;
  12942. }
  12943. else if ((id = GetCurrentBuilding(playerid)) != INVALID_ID && IsPlayerInRangeOfPoint(playerid, 3.0, Buildings[id][bInt][0], Buildings[id][bInt][1], Buildings[id][bInt][2]))
  12944. {
  12945. SetPlayerFadePos(playerid, Buildings[id][bSpawn][0], Buildings[id][bSpawn][1], Buildings[id][bSpawn][2], Buildings[id][bSpawn][3], Buildings[id][bExterior], Buildings[id][bExteriorWorld]);
  12946. ShowActionBubble(playerid, "* %s opens the door and exits the building.", ReturnNameEx(playerid));
  12947. TogglePlayerControllable(playerid,0);
  12948. GameTextForPlayer(playerid, "~r~Loading objects...", 2000, 4);
  12949. SetTimerEx("UnFreezePlayer", 2000, false, "i", playerid);
  12950. return 1;
  12951. }
  12952. for (new i = 0; i < sizeof(g_StaticBuildings); i ++)
  12953. {
  12954. if (IsPlayerNearPoint(playerid, 3.0, g_StaticBuildings[i][e_InsideX], g_StaticBuildings[i][e_InsideY], g_StaticBuildings[i][e_InsideZ], g_StaticBuildings[i][e_Interior], g_StaticBuildings[i][e_VirtualWorld]))
  12955. {
  12956. TogglePlayerControllable(playerid,0);
  12957. GameTextForPlayer(playerid, "~r~Loading objects...", 2000, 4);
  12958. SetTimerEx("UnFreezePlayer", 2000, false, "i", playerid);
  12959. SetPlayerFadePos(playerid, g_StaticBuildings[i][e_SpawnX], g_StaticBuildings[i][e_SpawnY], g_StaticBuildings[i][e_SpawnZ], 0.0, 0, 0);
  12960. ShowActionBubble(playerid, "* %s opens the door and exits the building.", ReturnNameEx(playerid));
  12961. return 1;
  12962. }
  12963. }
  12964. for (new i = 0; i < sizeof(g_HospitalLocations); i ++)
  12965. {
  12966. if (IsPlayerNearPoint(playerid, 3.0, 2502.0286, -1706.2908, 2104.7358) && GetPlayerVirtualWorld(playerid) == i)
  12967. {
  12968. SetPlayerFadePos(playerid, g_HospitalLocations[i][0], g_HospitalLocations[i][1], g_HospitalLocations[i][2], 0.0, 0, 0);
  12969. ShowActionBubble(playerid, "* %s opens the door and exits the building.", ReturnNameEx(playerid));
  12970. TogglePlayerControllable(playerid,0);
  12971. GameTextForPlayer(playerid, "~r~Loading objects...", 2000, 4);
  12972. SetTimerEx("UnFreezePlayer", 2000, false, "i", playerid);
  12973. return 1;
  12974. }
  12975. }
  12976. if(IsPlayerInModdingShop(playerid))
  12977. {
  12978. return ExitModdingShop(playerid);
  12979. }
  12980. return 0;
  12981. }
  12982. PlayerCanAfford(playerid, amount)
  12983. {
  12984. switch (Players[playerid][pPaymentType])
  12985. {
  12986. case PAYMENT_TYPE_CASH:
  12987. {
  12988. return Players[playerid][pPocketMoney] >= amount;
  12989. }
  12990. case PAYMENT_TYPE_BANK:
  12991. {
  12992. new
  12993. bank = GetPrimaryBankAccount(playerid);
  12994. if (bank != INVALID_ID)
  12995. {
  12996. return BankAccounts[playerid][bank][bankBalance] >= amount;
  12997. }
  12998. }
  12999. }
  13000. return 0;
  13001. }
  13002. RemoveMoney(playerid, amount)
  13003. {
  13004. switch (Players[playerid][pPaymentType])
  13005. {
  13006. case PAYMENT_TYPE_CASH:
  13007. {
  13008. Players[playerid][pPocketMoney] -= amount;
  13009. GivePlayerMoney(playerid, -amount);
  13010. }
  13011. case PAYMENT_TYPE_BANK:
  13012. {
  13013. new
  13014. bank = GetPrimaryBankAccount(playerid);
  13015. if (bank != INVALID_ID)
  13016. {
  13017. BankAccounts[playerid][bank][bankBalance] -= amount;
  13018. SaveBankAccount(playerid, bank);
  13019. }
  13020. }
  13021. }
  13022. return 0;
  13023. }
  13024. /*GetCurrentHouse(playerid)
  13025. {
  13026. new
  13027. world = GetPlayerVirtualWorld(playerid);
  13028. for (new i = 0; i < MAX_HOUSES; i ++)
  13029. {
  13030. if ((Houses[i][hExists]) && Houses[i][hInterior] == GetPlayerInterior(playerid) && Houses[i][hWorld] == world)
  13031. {
  13032. return i;
  13033. }
  13034. }
  13035. return INVALID_ID;
  13036. }*///knulla2
  13037. GetCurrentHouse(playerid)
  13038. {
  13039. for (new i = 0; i < MAX_HOUSES; i ++)
  13040. {
  13041. if ((Houses[i][hExists]) && Houses[i][hInterior] == GetPlayerInterior(playerid) && Houses[i][hWorld] == GetPlayerVirtualWorld(playerid))
  13042. {
  13043. return i;
  13044. }
  13045. }
  13046. return INVALID_ID;
  13047. }
  13048. GetNearbyHouse(playerid)
  13049. {
  13050. new
  13051. id = GetClosestHouse(playerid);
  13052. if (id == INVALID_ID)
  13053. {
  13054. id = GetCurrentHouse(playerid);
  13055. }
  13056. return id;
  13057. }
  13058. IsPlayerNearBackdoorExit(playerid, house)
  13059. {
  13060. return (IsBackdoorSetup(house) && IsPlayerNearPoint(playerid, 3.0, Houses[house][hBackdoorInt][0], Houses[house][hBackdoorInt][1], Houses[house][hBackdoorInt][2], Houses[house][hInterior], Houses[house][hWorld]));
  13061. }
  13062. IsPlayerNearBackdoor(playerid, house)
  13063. {
  13064. return (IsBackdoorSetup(house) && IsPlayerNearPoint(playerid, 3.0, Houses[house][hBackdoor][0], Houses[house][hBackdoor][1], Houses[house][hBackdoor][2], Houses[house][hExterior], Houses[house][hExteriorWorld]));
  13065. }
  13066. GetClosestHouse(playerid)
  13067. {
  13068. for (new i = 0; i < MAX_HOUSES; i ++)
  13069. {
  13070. if (!Houses[i][hExists]) {
  13071. continue;
  13072. } else if (IsPlayerNearPoint(playerid, 2.0, Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2], Houses[i][hExterior], Houses[i][hExteriorWorld]) || IsPlayerNearBackdoor(playerid, i)) {
  13073. return i;
  13074. }
  13075. }
  13076. return INVALID_ID;
  13077. }
  13078. GetClosestFurniture(playerid, Float:range, model)
  13079. {
  13080. for (new i = 0; i < MAX_FURNITURE; i ++)
  13081. {
  13082. if (Furniture[i][fExists] && Furniture[i][fModel] == model && IsPlayerNearPoint(playerid, range, Furniture[i][fSpawn][0], Furniture[i][fSpawn][1], Furniture[i][fSpawn][2], Furniture[i][fInterior], Furniture[i][fWorld]))
  13083. {
  13084. return i;
  13085. }
  13086. }
  13087. return INVALID_ID;
  13088. }
  13089. GetClosestFridge(playerid, Float:range)
  13090. {
  13091. for (new i = 0; i < MAX_FURNITURE; i ++)
  13092. {
  13093. if (Furniture[i][fExists] && ((Furniture[i][fModel] == 19916) || (Furniture[i][fModel] == 2147) || (Furniture[i][fModel] == 2131) || (Furniture[i][fModel] == 2127) || (Furniture[i][fModel] == 2452)) && IsPlayerNearPoint(playerid, range, Furniture[i][fSpawn][0], Furniture[i][fSpawn][1], Furniture[i][fSpawn][2], Furniture[i][fInterior], Furniture[i][fWorld]))
  13094. {
  13095. return i;
  13096. }
  13097. }
  13098. return INVALID_ID;
  13099. }
  13100. GetClosestDoor(playerid, Float:range)
  13101. {
  13102. for (new i = 0; i < MAX_FURNITURE; i ++)
  13103. {
  13104. //if (Furniture[i][fExists] && ((Furniture[i][fModel] == 19802 || Furniture[i][fModel] == 1498) && IsPlayerNearPoint(playerid, range, Furniture[i][fSpawn][0], Furniture[i][fSpawn][1], Furniture[i][fSpawn][2], Furniture[i][fInterior], Furniture[i][fWorld]))
  13105. if (Furniture[i][fExists] && ((Furniture[i][fModel] == 19802) || (Furniture[i][fModel] == 1498)) && IsPlayerNearPoint(playerid, range, Furniture[i][fSpawn][0], Furniture[i][fSpawn][1], Furniture[i][fSpawn][2], Furniture[i][fInterior], Furniture[i][fWorld]))
  13106. {
  13107. return i;
  13108. }
  13109. }
  13110. return INVALID_ID;
  13111. }
  13112. SetHouseInteriorType(house, type)
  13113. {
  13114. if (1 <= type <= sizeof(g_HouseInteriors) - 1)
  13115. {
  13116. Houses[house][hInt][0] = g_HouseInteriors[type][e_InteriorX];
  13117. Houses[house][hInt][1] = g_HouseInteriors[type][e_InteriorY];
  13118. Houses[house][hInt][2] = g_HouseInteriors[type][e_InteriorZ];
  13119. Houses[house][hInt][3] = g_HouseInteriors[type][e_InteriorA];
  13120. Houses[house][hInterior] = g_HouseInteriors[type][e_Interior];
  13121. }
  13122. }
  13123. SaveBuilding(building)
  13124. {
  13125. static
  13126. queryString[512];
  13127. if (!Buildings[building][bExists]) return 0;
  13128. format(queryString, sizeof(queryString), "UPDATE rp_buildings SET bName = '%s', bIconType = %i, bLocked = %i, bSpawnX = %.4f, bSpawnY = %.4f, bSpawnZ = %.4f, bSpawnA = %.4f, bIntX = %.4f, bIntY = %.4f, bIntZ = %.4f, bIntA = %.4f, bExterior = %i, bExteriorWorld = %i, bInterior = %i, bWorld = %i WHERE bID = %i",
  13129. mysql_escaped(Buildings[building][bName]),
  13130. Buildings[building][bIconType],
  13131. Buildings[building][bLocked],
  13132. Buildings[building][bSpawn][0],
  13133. Buildings[building][bSpawn][1],
  13134. Buildings[building][bSpawn][2],
  13135. Buildings[building][bSpawn][3],
  13136. Buildings[building][bInt][0],
  13137. Buildings[building][bInt][1],
  13138. Buildings[building][bInt][2],
  13139. Buildings[building][bInt][3],
  13140. Buildings[building][bExterior],
  13141. Buildings[building][bExteriorWorld],
  13142. Buildings[building][bInterior],
  13143. Buildings[building][bWorld],
  13144. Buildings[building][bID]
  13145. );
  13146. return mysql_tquery(gConnection, queryString);
  13147. }
  13148. UpdateBuilding(building)
  13149. {
  13150. if (!Buildings[building][bExists]) return 0;
  13151. DestroyDynamicPickup(Buildings[building][bPickup]);
  13152. DestroyDynamicMapIcon(Buildings[building][bIcon]);
  13153. DestroyDynamic3DTextLabel(Buildings[building][bText]);
  13154. Buildings[building][bPickup] = CreateDynamicPickup(19198, 23, Buildings[building][bSpawn][0], Buildings[building][bSpawn][1], Buildings[building][bSpawn][2] + 0.5, Buildings[building][bExteriorWorld], Buildings[building][bExterior]);
  13155. if (Buildings[building][bIconType] != 0)
  13156. {
  13157. Buildings[building][bIcon] = CreateDynamicMapIcon(Buildings[building][bSpawn][0], Buildings[building][bSpawn][1], Buildings[building][bSpawn][2], Buildings[building][bIconType], 0, Buildings[building][bExteriorWorld], Buildings[building][bExterior]);
  13158. }
  13159. Buildings[building][bText] = CreateDynamic3DTextLabel(Buildings[building][bName], COLOR_GREY, Buildings[building][bSpawn][0], Buildings[building][bSpawn][1], Buildings[building][bSpawn][2], 15.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Buildings[building][bExteriorWorld], Buildings[building][bExterior]);
  13160. return 1;
  13161. }
  13162. /*GetCurrentBuilding(playerid)
  13163. {
  13164. new
  13165. world = GetPlayerVirtualWorld(playerid);
  13166. for (new i = 0; i < MAX_BUILDINGS; i ++)
  13167. {
  13168. if (Buildings[i][bExists] && Buildings[i][bInterior] == GetPlayerInterior(playerid) && Buildings[i][bWorld] == world)
  13169. {
  13170. return i;
  13171. }
  13172. }
  13173. return INVALID_ID;
  13174. }*///knulla3
  13175. GetCurrentBuilding(playerid)
  13176. {
  13177. for (new i = 0; i < MAX_BUILDINGS; i ++)
  13178. {
  13179. if (Buildings[i][bExists] && Buildings[i][bInterior] == GetPlayerInterior(playerid) && Buildings[i][bWorld] == GetPlayerVirtualWorld(playerid))
  13180. {
  13181. return i;
  13182. }
  13183. }
  13184. return INVALID_ID;
  13185. }
  13186. GetClosestBuilding(playerid)
  13187. {
  13188. for (new i = 0; i < MAX_BUILDINGS; i ++)
  13189. {
  13190. if (Buildings[i][bExists] && IsPlayerNearPoint(playerid, 2.0, Buildings[i][bSpawn][0], Buildings[i][bSpawn][1], Buildings[i][bSpawn][2], Buildings[i][bExterior], Buildings[i][bExteriorWorld]))
  13191. {
  13192. return i;
  13193. }
  13194. }
  13195. return INVALID_ID;
  13196. }
  13197. ResetBuilding(building)
  13198. {
  13199. DestroyDynamicPickup(Buildings[building][bPickup]);
  13200. DestroyDynamicMapIcon(Buildings[building][bIcon]);
  13201. DestroyDynamic3DTextLabel(Buildings[building][bText]);
  13202. Buildings[building][bID] = 0;
  13203. Buildings[building][bExists] = 0;
  13204. Buildings[building][bIconType] = 0;
  13205. Buildings[building][bLocked] = 0;
  13206. Buildings[building][bInt][0] = 0.0;
  13207. Buildings[building][bInt][1] = 0.0;
  13208. Buildings[building][bInt][2] = 0.0;
  13209. Buildings[building][bInt][3] = 0.0;
  13210. Buildings[building][bInterior] = 0;
  13211. Buildings[building][bWorld] = 0;
  13212. Buildings[building][bExterior] = 0;
  13213. Buildings[building][bExteriorWorld] = 0;
  13214. Buildings[building][bPickup] = INVALID_ID;
  13215. Buildings[building][bIcon] = INVALID_ID;
  13216. Buildings[building][bText] = INVALID_3DTEXT_ID;
  13217. }
  13218. ClearPumps(company)
  13219. {
  13220. if (!IsValidCompanyID(company))
  13221. {
  13222. return 0;
  13223. }
  13224. for (new i = 0; i < MAX_GAS_PUMPS; i ++)
  13225. {
  13226. if (GasPumps[i][gpExists] && GasPumps[i][gpCompany] == Companies[company][cID])
  13227. {
  13228. DestroyDynamicObject(GasPumps[i][gpObject]);
  13229. DestroyDynamic3DTextLabel(GasPumps[i][gpText]);
  13230. GasPumps[i][gpExists] = 0;
  13231. GasPumps[i][gpID] = 0;
  13232. }
  13233. }
  13234. format(gExecute, sizeof(gExecute), "DELETE FROM rp_gaspumps WHERE gpCompany = %i", Companies[company][cID]);
  13235. mysql_tquery(gConnection, gExecute);
  13236. return 1;
  13237. }
  13238. ClearFurniture(house)
  13239. {
  13240. if (!IsValidHouseID(house))
  13241. {
  13242. return 0;
  13243. }
  13244. for (new i = 0; i < MAX_FURNITURE; i ++)
  13245. {
  13246. if (Furniture[i][fExists] && Furniture[i][fHouseID] == Houses[house][hID])
  13247. {
  13248. if (Furniture[i][fModel] == 2332)
  13249. {
  13250. ClearSafeItems(i);
  13251. }
  13252. DestroyDynamicObject(Furniture[i][fObject]);
  13253. DestroyDynamic3DTextLabel(Furniture[i][fText]);
  13254. Furniture[i][fExists] = 0;
  13255. Furniture[i][fID] = 0;
  13256. }
  13257. }
  13258. format(gExecute, sizeof(gExecute), "DELETE FROM rp_furniture WHERE fHouseID = %i", Houses[house][hID]);
  13259. mysql_tquery(gConnection, gExecute);
  13260. return 1;
  13261. }
  13262. ClearOutsideFurniture(house)
  13263. {
  13264. if (!IsValidHouseID(house))
  13265. {
  13266. return 0;
  13267. }
  13268. for (new i = 0; i < MAX_FURNITURE; i ++)
  13269. {
  13270. if (Furniture[i][fExists] && Furniture[i][fHouseID] == Houses[house][hID] && Furniture[i][fInterior] == Houses[house][hInterior] && Furniture[i][fWorld] == Houses[house][hWorld])
  13271. {
  13272. if (Furniture[i][fModel] == 2332)
  13273. {
  13274. ClearSafeItems(i);
  13275. }
  13276. DeleteFurniture(i);
  13277. }
  13278. }
  13279. return 1;
  13280. }
  13281. ResetHouse(house)
  13282. {
  13283. DestroyDynamicCP(Houses[house][hCheckpoint]);
  13284. //DestroyDynamic3DTextLabel(Houses[house][hText]);
  13285. DestroyDynamic3DTextLabel(Houses[house][hBackdoorText][0]);
  13286. DestroyDynamic3DTextLabel(Houses[house][hBackdoorText][1]);
  13287. strcpy(Houses[house][hOwnerName], "Nobody", MAX_PLAYER_NAME);
  13288. Houses[house][hID] = 0;
  13289. Houses[house][hExists] = 0;
  13290. Houses[house][hOwner] = 0;
  13291. Houses[house][hValue] = 0;
  13292. Houses[house][hLocked] = 0;
  13293. Houses[house][hAlarm] = 0;
  13294. Houses[house][hLights] = 0;
  13295. Houses[house][hEdit] = 0;
  13296. Houses[house][hInt][0] = 0.0;
  13297. Houses[house][hInt][1] = 0.0;
  13298. Houses[house][hInt][2] = 0.0;
  13299. Houses[house][hInt][3] = 0.0;
  13300. Houses[house][hBackdoor][0] = 0.0;
  13301. Houses[house][hBackdoor][1] = 0.0;
  13302. Houses[house][hBackdoor][2] = 0.0;
  13303. Houses[house][hBackdoorInt][0] = 0.0;
  13304. Houses[house][hBackdoorInt][1] = 0.0;
  13305. Houses[house][hBackdoorInt][2] = 0.0;
  13306. Houses[house][hInterior] = 0;
  13307. Houses[house][hWorld] = 0;
  13308. Houses[house][hRentPrice] = 0;
  13309. Houses[house][hExterior] = 0;
  13310. Houses[house][hExteriorWorld] = 0;
  13311. Houses[house][hCheckpoint] = INVALID_ID;
  13312. //Houses[house][hText] = INVALID_3DTEXT_ID;
  13313. Houses[house][hBackdoorText][0] = INVALID_3DTEXT_ID;
  13314. Houses[house][hBackdoorText][1] = INVALID_3DTEXT_ID;
  13315. Houses[house][hFaction] = 0;
  13316. }
  13317. IsRentingHouse(playerid, house)
  13318. {
  13319. return (IsValidHouseID(house)) && Houses[house][hID] == Players[playerid][pRentHouse];
  13320. }
  13321. IsHouseOwner(playerid, house)
  13322. {
  13323. return (IsValidHouseID(house)) && (Houses[house][hOwner] == Players[playerid][pID]);
  13324. }
  13325. UpdateFurniture(furniture)
  13326. {
  13327. if (!IsValidFurnitureID(furniture))
  13328. {
  13329. return 0;
  13330. }
  13331. DestroyDynamicObject(Furniture[furniture][fObject]);
  13332. Furniture[furniture][fObject] = CreateDynamicObject(Furniture[furniture][fModel], Furniture[furniture][fSpawn][0], Furniture[furniture][fSpawn][1], Furniture[furniture][fSpawn][2], Furniture[furniture][fSpawn][3], Furniture[furniture][fSpawn][4], Furniture[furniture][fSpawn][5], Furniture[furniture][fWorld], Furniture[furniture][fInterior]);
  13333. for(new i = 0; i != 3; i ++)
  13334. {
  13335. if(MaterialIDs[Furniture[furniture][fMaterial][i]][ModelID] != 0)
  13336. {
  13337. SetDynamicObjectMaterial(Furniture[furniture][fObject], i, MaterialIDs[Furniture[furniture][fMaterial][i]][ModelID], MaterialIDs[Furniture[furniture][fMaterial][i]][TxdName], MaterialIDs[Furniture[furniture][fMaterial][i]][TextureName], MaterialColors[Furniture[furniture][fMatColour][i]][ColorHex]);
  13338. }
  13339. else if(Furniture[furniture][fMatColour][i] != 0)
  13340. {
  13341. SetDynamicObjectMaterial(Furniture[furniture][fObject], i, -1, MaterialIDs[Furniture[furniture][fMaterial][i]][TxdName], MaterialIDs[Furniture[furniture][fMaterial][i]][TextureName], MaterialColors[Furniture[furniture][fMatColour][i]][ColorHex]);
  13342. }
  13343. }
  13344. UpdateFurnitureText(furniture);
  13345. return 1;
  13346. }
  13347. UpdateFurnitureText(furniture)
  13348. {
  13349. new
  13350. string[64];
  13351. if (!IsValidFurnitureID(furniture))
  13352. {
  13353. return 0;
  13354. }
  13355. DestroyDynamic3DTextLabel(Furniture[furniture][fText]);
  13356. if (Furniture[furniture][fEdit])
  13357. {
  13358. format(string, sizeof(string), "ID: {00FF00}%i{FFFFFF}\n/edit, /delete.", furniture);
  13359. Furniture[furniture][fText] = CreateDynamic3DTextLabel(string, COLOR_WHITE, Furniture[furniture][fSpawn][0], Furniture[furniture][fSpawn][1], Furniture[furniture][fSpawn][2], 50.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Furniture[furniture][fWorld], Furniture[furniture][fInterior]);
  13360. }
  13361. else
  13362. {
  13363. if (Furniture[furniture][fModel] == 2332)
  13364. {
  13365. if (Furniture[furniture][fSafeOpen])
  13366. {
  13367. Furniture[furniture][fText] = CreateDynamic3DTextLabel("Status: {00FF00}Opened{AFAFAF}\nPress Y to use safe", COLOR_GREY, Furniture[furniture][fSpawn][0], Furniture[furniture][fSpawn][1], Furniture[furniture][fSpawn][2], 3.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Furniture[furniture][fWorld], Furniture[furniture][fInterior]);
  13368. }
  13369. else
  13370. {
  13371. Furniture[furniture][fText] = CreateDynamic3DTextLabel("Status: {FF5030}Closed{AFAFAF}\nPress Y to use safe", COLOR_GREY, Furniture[furniture][fSpawn][0], Furniture[furniture][fSpawn][1], Furniture[furniture][fSpawn][2], 3.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Furniture[furniture][fWorld], Furniture[furniture][fInterior]);
  13372. }
  13373. }
  13374. /*if ((Furniture[furniture][fModel] == 19916) || (Furniture[furniture][fModel] == 2147) || (Furniture[furniture][fModel] == 2131) || (Furniture[furniture][fModel] == 2127) || (Furniture[furniture][fModel] == 2452))
  13375. {
  13376. Furniture[furniture][fText] = CreateDynamic3DTextLabel("Refridgerator\n'/heal' to heal", COLOR_GREY, Furniture[furniture][fSpawn][0], Furniture[furniture][fSpawn][1], Furniture[furniture][fSpawn][2], 10.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Furniture[furniture][fWorld], Furniture[furniture][fInterior]);
  13377. }*/
  13378. else
  13379. {
  13380. Furniture[furniture][fText] = INVALID_3DTEXT_ID;
  13381. }
  13382. }
  13383. return 1;
  13384. }
  13385. SaveFurniture(furniture)
  13386. {
  13387. static
  13388. queryString[512];
  13389. if (!IsValidFurnitureID(furniture)) return 0;
  13390. format(queryString, sizeof(queryString), "UPDATE rp_furniture SET fModel = %i, fX = %.4f, fY = %.4f, fZ = %.4f, fRX = %.4f, fRY = %.4f, fRZ = %.4f, fInterior = %i, fWorld = %i, fCode = %i, fMoney = %i, Mat1 = %i, Mat2 = %i, Mat3 = %i, MatColor1 = %i, MatColor2 = %i, MatColor3 = %i WHERE fID = %i",
  13391. Furniture[furniture][fModel],
  13392. Furniture[furniture][fSpawn][0],
  13393. Furniture[furniture][fSpawn][1],
  13394. Furniture[furniture][fSpawn][2],
  13395. Furniture[furniture][fSpawn][3],
  13396. Furniture[furniture][fSpawn][4],
  13397. Furniture[furniture][fSpawn][5],
  13398. Furniture[furniture][fInterior],
  13399. Furniture[furniture][fWorld],
  13400. Furniture[furniture][fCode],
  13401. Furniture[furniture][fMoney],
  13402. Furniture[furniture][fMaterial][0],
  13403. Furniture[furniture][fMaterial][1],
  13404. Furniture[furniture][fMaterial][2],
  13405. Furniture[furniture][fMatColour][0],
  13406. Furniture[furniture][fMatColour][1],
  13407. Furniture[furniture][fMatColour][2],
  13408. Furniture[furniture][fID]
  13409. );
  13410. return mysql_tquery(gConnection, queryString);
  13411. }
  13412. DeleteFurniture(furniture)
  13413. {
  13414. if (!IsValidFurnitureID(furniture))
  13415. {
  13416. return 0;
  13417. }
  13418. if (Furniture[furniture][fModel] == 2332)
  13419. {
  13420. ClearSafeItems(furniture);
  13421. }
  13422. DestroyDynamicObject(Furniture[furniture][fObject]);
  13423. DestroyDynamic3DTextLabel(Furniture[furniture][fText]);
  13424. format(gExecute, sizeof(gExecute), "DELETE FROM rp_furniture WHERE fID = %i", Furniture[furniture][fID]);
  13425. mysql_tquery(gConnection, gExecute);
  13426. Furniture[furniture][fID] = 0;
  13427. Furniture[furniture][fExists] = 0;
  13428. Furniture[furniture][fObject] = INVALID_OBJECT_ID;
  13429. Furniture[furniture][fText] = INVALID_3DTEXT_ID;
  13430. return 1;
  13431. }
  13432. ShowFurnitureCategories(playerid)
  13433. {
  13434. new string[192];
  13435. for (new i = 0; i < sizeof(g_FurnitureTypes); i ++) {
  13436. strcat(string, g_FurnitureTypes[i]);
  13437. strcat(string, "\n");
  13438. }
  13439. Dialog_Show(playerid, BuyFurniture, DIALOG_STYLE_LIST, "{FFFFFF}Select category", string, "Select", "Cancel");
  13440. }
  13441. SetFurnitureEditMode(house, enable)
  13442. {
  13443. Houses[house][hEdit] = enable;
  13444. for (new i = 0; i < MAX_FURNITURE; i ++)
  13445. {
  13446. if (Furniture[i][fExists] && Furniture[i][fHouseID] == Houses[house][hID])
  13447. {
  13448. Furniture[i][fEdit] = enable;
  13449. UpdateFurnitureText(i);
  13450. }
  13451. }
  13452. }
  13453. AddFurniture(house, modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, interior, worldid)
  13454. {
  13455. new
  13456. id = GetNextFurnitureID();
  13457. if (id != INVALID_ID)
  13458. {
  13459. Furniture[id][fExists] = 1;
  13460. Furniture[id][fHouseID] = Houses[house][hID];
  13461. Furniture[id][fEdit] = Houses[house][hEdit];
  13462. Furniture[id][fModel] = modelid;
  13463. Furniture[id][fSpawn][0] = x;
  13464. Furniture[id][fSpawn][1] = y;
  13465. Furniture[id][fSpawn][2] = z;
  13466. Furniture[id][fSpawn][3] = rx;
  13467. Furniture[id][fSpawn][4] = ry;
  13468. Furniture[id][fSpawn][5] = rz;
  13469. Furniture[id][fInterior] = interior;
  13470. Furniture[id][fWorld] = worldid;
  13471. Furniture[id][fCode] = 0;
  13472. Furniture[id][fMoney] = 0;
  13473. Furniture[id][fSafeOpen] = 0;
  13474. Furniture[id][fDoorOpen] = 0;
  13475. Furniture[id][fObject] = INVALID_OBJECT_ID;
  13476. Furniture[id][fText] = INVALID_3DTEXT_ID;
  13477. for(new i = 0; i != 3; i ++)
  13478. {
  13479. Furniture[id][fMaterial][i] = 0;
  13480. Furniture[id][fMatColour][i] = 0;
  13481. }
  13482. UpdateFurniture(id);
  13483. format(gExecute, sizeof(gExecute), "INSERT INTO rp_furniture (fHouseID) VALUES(%i)", Furniture[id][fHouseID]);
  13484. mysql_tquery(gConnection, gExecute, "OnFurnitureAdded", "i", id);
  13485. }
  13486. return id;
  13487. }
  13488. /*GetCurrentCompany(playerid)
  13489. {
  13490. new
  13491. world = GetPlayerVirtualWorld(playerid);
  13492. for (new i = 0; i < MAX_COMPANIES; i ++)
  13493. {
  13494. if (Companies[i][cExists] && Companies[i][cInterior] == GetPlayerInterior(playerid) && Companies[i][cWorld] == world)
  13495. {
  13496. return i;
  13497. }
  13498. }
  13499. return INVALID_ID;
  13500. }*///knulla1
  13501. GetCurrentCompany(playerid)
  13502. {
  13503. for (new i = 0; i < MAX_COMPANIES; i ++)
  13504. {
  13505. if (Companies[i][cExists] && Companies[i][cInterior] == GetPlayerInterior(playerid) && Companies[i][cWorld] == GetPlayerVirtualWorld(playerid))
  13506. {
  13507. return i;
  13508. }
  13509. }
  13510. return INVALID_ID;
  13511. }
  13512. GetNearbyCompany(playerid)
  13513. {
  13514. new
  13515. id = GetClosestCompany(playerid);
  13516. if (id == INVALID_ID)
  13517. {
  13518. id = GetCurrentCompany(playerid);
  13519. }
  13520. return id;
  13521. }
  13522. GetClosestCompany(playerid)
  13523. {
  13524. new Float:range;
  13525. if (IsPlayerInAnyVehicle(playerid)) {
  13526. range = 5.0;
  13527. } else {
  13528. range = 2.0;
  13529. }
  13530. for (new i = 0; i < MAX_COMPANIES; i ++)
  13531. {
  13532. if (Companies[i][cExists] && IsPlayerNearPoint(playerid, range, Companies[i][cSpawn][0], Companies[i][cSpawn][1], Companies[i][cSpawn][2], Companies[i][cExterior], Companies[i][cExteriorWorld]))
  13533. {
  13534. return i;
  13535. }
  13536. }
  13537. return INVALID_ID;
  13538. }
  13539. GetClosestDeliveryPoint(playerid)
  13540. {
  13541. for (new i = 0; i < MAX_COMPANIES; i ++)
  13542. {
  13543. if (Companies[i][cExists] && IsPlayerInRangeOfPoint(playerid, 5.0, Companies[i][cVehicle][0], Companies[i][cVehicle][1], Companies[i][cVehicle][2]))
  13544. {
  13545. return i;
  13546. }
  13547. }
  13548. return GetClosestCompany(playerid);
  13549. }
  13550. SaveRestaurantItem(company, id)
  13551. {
  13552. static
  13553. queryString[255];
  13554. if (!IsValidCompanyID(company)) return 0;
  13555. format(queryString, sizeof(queryString), "UPDATE rp_fooditems SET Name = '%s', Stock = %i, Price = %i, Type = %i, Health = %i WHERE ID = %i", RestaurantItems[company][id][rtName], RestaurantItems[company][id][rtStock], RestaurantItems[company][id][rtPrice], RestaurantItems[company][id][rtType], RestaurantItems[company][id][rtHealth], RestaurantItems[company][id][rtID]);
  13556. mysql_tquery(gConnection, queryString);
  13557. return 1;
  13558. }
  13559. SaveProduct(company, product)
  13560. {
  13561. static
  13562. queryString[255];
  13563. if (!IsValidCompanyID(company)) return 0;
  13564. format(queryString, sizeof(queryString), "INSERT INTO rp_products (cID, ID, Price, Stock) VALUES(%i, %i, %i, %i) ON DUPLICATE KEY UPDATE Price = %i, Stock = %i", Companies[company][cID], product, Products[company][product][prPrice], Products[company][product][prStock], Products[company][product][prPrice], Products[company][product][prStock]);
  13565. mysql_tquery(gConnection, queryString);
  13566. return 1;
  13567. }
  13568. CheckCompanyItems(company)
  13569. {
  13570. for (new i = 0, index = 0; i < sizeof(g_CompanyItems); i ++)
  13571. {
  13572. if (Companies[company][cType] == g_CompanyItems[i][e_CompanyType])
  13573. {
  13574. if (!Products[company][index][prPrice])
  13575. {
  13576. Products[company][index][prPrice] = g_CompanyItems[i][e_DefaultPrice];
  13577. if (g_CompanyItems[i][e_IsStockable])
  13578. Products[company][index][prStock] = 200;
  13579. else
  13580. Products[company][index][prStock] = -1;
  13581. SaveProduct(company, index);
  13582. }
  13583. index++;
  13584. }
  13585. }
  13586. }
  13587. GetCompanyOwner(company)
  13588. {
  13589. new playername[MAX_PLAYER_NAME];
  13590. if (Companies[company][cOwner])
  13591. strcpy(playername, Companies[company][cOwnerName]);
  13592. else
  13593. playername = "Nobody";
  13594. return playername;
  13595. }
  13596. SetCompanyOwner(company, playerid)
  13597. {
  13598. if (playerid == INVALID_PLAYER_ID)
  13599. {
  13600. strcpy(Companies[company][cOwnerName], "Nobody", MAX_PLAYER_NAME);
  13601. Companies[company][cOwner] = 0;
  13602. }
  13603. else if (IsPlayerLoggedIn(playerid))
  13604. {
  13605. GetPlayerName(playerid, Companies[company][cOwnerName], MAX_PLAYER_NAME);
  13606. Companies[company][cOwner] = Players[playerid][pID];
  13607. }
  13608. UpdateCompany(company);
  13609. SaveCompany(company);
  13610. }
  13611. UpdateCompany(company)
  13612. {
  13613. new
  13614. string[128];
  13615. if (!Companies[company][cExists]) return 0;
  13616. DestroyDynamicCP(Companies[company][cCheckpoint]);
  13617. //DestroyDynamicMapIcon(Companies[company][cIcon]);
  13618. //DestroyDynamic3DTextLabel(Companies[company][cText]);
  13619. DestroyDynamic3DTextLabel(Companies[company][cDeliverText]);
  13620. if (Companies[company][cOwner])
  13621. {
  13622. if (Companies[company][cLocked])
  13623. format(string, sizeof(string), "Status: {AA3333}Closed{AFAFAF}\n%s", Companies[company][cName]);
  13624. else
  13625. format(string, sizeof(string), "Status: {33AA33}Opened{AFAFAF}\n%s", Companies[company][cName]);
  13626. }
  13627. else
  13628. {
  13629. format(string, sizeof(string), "Price: {33CC33}%s{AFAFAF}\n%s", FormatNumber(Companies[company][cValue]), Companies[company][cName]);
  13630. }
  13631. Companies[company][cCheckpoint] = CreateDynamicCP(Companies[company][cSpawn][0], Companies[company][cSpawn][1], Companies[company][cSpawn][2], 2.0, Companies[company][cExteriorWorld], Companies[company][cExterior], .streamdistance = 10.0);
  13632. //Companies[company][cText] = CreateDynamic3DTextLabel(string, COLOR_GREY, Companies[company][cSpawn][0], Companies[company][cSpawn][1], Companies[company][cSpawn][2], 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Companies[company][cExteriorWorld], Companies[company][cExterior]);
  13633. /*switch (Companies[company][cType])
  13634. {
  13635. case COMPANY_STORE: type = 17;
  13636. case COMPANY_CLOTHES: type = 45;
  13637. case COMPANY_RESTAURANT: type = 10;
  13638. case COMPANY_RENTALS: type = 55;
  13639. case COMPANY_PHONE: type = 56;
  13640. case COMPANY_DEALERSHIP: type = 55;
  13641. case COMPANY_GYM: type = 54;
  13642. case COMPANY_AMMO: type = 18;
  13643. case COMPANY_BAR: type = 49;
  13644. }*/
  13645. //Companies[company][cIcon] = CreateDynamicMapIcon(Companies[company][cSpawn][0], Companies[company][cSpawn][1], Companies[company][cSpawn][2], type, 0, Companies[company][cExteriorWorld], Companies[company][cExterior]);
  13646. if (Companies[company][cType] != COMPANY_DEALERSHIP)
  13647. {
  13648. Companies[company][cDeliverText] = CreateDynamic3DTextLabel("/deliver", COLOR_GREY, Companies[company][cVehicle][0], Companies[company][cVehicle][1], Companies[company][cVehicle][2], 10.0);
  13649. }
  13650. return 1;
  13651. }
  13652. SaveCompany(company)
  13653. {
  13654. static
  13655. queryString[1024];
  13656. if (!Companies[company][cExists]) return 0;
  13657. format(queryString, sizeof(queryString), "UPDATE rp_companies SET `cOwner` = %i, `cOwnerName` = '%s', `cValue` = %i, `cType` = %i, `cName` = '%s', `cSpawnX` = %.4f, `cSpawnY` = %.4f, `cSpawnZ` = %.4f, `cSpawnA` = %.4f, `cVehicleX` = %.4f, `cVehicleY` = %.4f, `cVehicleZ` = %.4f, `cVehicleA` = %.4f, `cIntX` = %.4f, `cIntY` = %.4f, `cIntZ` = %.4f, `cIntA` = %.4f",
  13658. Companies[company][cOwner],
  13659. Companies[company][cOwnerName],
  13660. Companies[company][cValue],
  13661. Companies[company][cType],
  13662. mysql_escaped(Companies[company][cName]),
  13663. Companies[company][cSpawn][0],
  13664. Companies[company][cSpawn][1],
  13665. Companies[company][cSpawn][2],
  13666. Companies[company][cSpawn][3],
  13667. Companies[company][cVehicle][0],
  13668. Companies[company][cVehicle][1],
  13669. Companies[company][cVehicle][2],
  13670. Companies[company][cVehicle][3],
  13671. Companies[company][cInt][0],
  13672. Companies[company][cInt][1],
  13673. Companies[company][cInt][2],
  13674. Companies[company][cInt][3]
  13675. );
  13676. format(queryString, sizeof(queryString), "%s, `cExterior` = %i, `cExteriorWorld` = %i, `cInterior` = %i, `cWorld` = %i, `cLocked` = %i, `cSafe` = %i, `cStock` = %i WHERE `cID` = %i",
  13677. queryString,
  13678. Companies[company][cExterior],
  13679. Companies[company][cExteriorWorld],
  13680. Companies[company][cInterior],
  13681. Companies[company][cWorld],
  13682. Companies[company][cLocked],
  13683. Companies[company][cSafe],
  13684. Companies[company][cStock],
  13685. Companies[company][cID]
  13686. );
  13687. return mysql_tquery(gConnection, queryString);
  13688. }
  13689. SetCompanyType(company, type)
  13690. {
  13691. if (1 <= type <= sizeof(g_CompanyInteriors) - 1)
  13692. {
  13693. Companies[company][cInt][0] = g_CompanyInteriors[type][e_InteriorX];
  13694. Companies[company][cInt][1] = g_CompanyInteriors[type][e_InteriorY];
  13695. Companies[company][cInt][2] = g_CompanyInteriors[type][e_InteriorZ];
  13696. Companies[company][cInt][3] = g_CompanyInteriors[type][e_InteriorA];
  13697. Companies[company][cInterior] = g_CompanyInteriors[type][e_Interior];
  13698. Companies[company][cType] = type;
  13699. }
  13700. }
  13701. PurchaseProduct(playerid, company, product)
  13702. {
  13703. if (Products[company][product][prStock] > 0)
  13704. {
  13705. Products[company][product][prStock]--;
  13706. SaveProduct(company, product);
  13707. }
  13708. RemoveMoney(playerid, Products[company][product][prPrice]);
  13709. if (!IsCompanyOwner(playerid, company))
  13710. {
  13711. GiveCompanyMoney(company, Products[company][product][prPrice]);
  13712. }
  13713. }
  13714. GiveCompanyMoney(company, money)
  13715. {
  13716. new tax = percent(money, Server[TaxRate]);
  13717. if (IsValidCompanyID(company))
  13718. {
  13719. Companies[company][cSafe] += money - tax;
  13720. SaveCompany(company);
  13721. Server[TaxVault] += tax;
  13722. SaveInformation();
  13723. }
  13724. }
  13725. /*GetBootOffset(vehicleid, &Float:x, &Float:y, &Float:z)
  13726. {
  13727. new
  13728. Float:fX,
  13729. Float:fY,
  13730. Float:fZ,
  13731. Float:fA,
  13732. Float:fSX,
  13733. Float:fSY,
  13734. Float:fSZ;
  13735. if (!IsValidVehicle(vehicleid))
  13736. {
  13737. x = 0.0;
  13738. y = 0.0;
  13739. z = 0.0;
  13740. return 0;
  13741. }
  13742. else
  13743. {
  13744. GetVehiclePos(vehicleid, fX, fY, fZ);
  13745. GetVehicleZAngle(vehicleid, fA);
  13746. GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_SIZE, fSX, fSY, fSZ);
  13747. x = fX - (floatsqroot(fSY + fSY) * floatsin(-fA, degrees));
  13748. y = fY - (floatsqroot(fSY + fSY) * floatcos(-fA, degrees));
  13749. z = fZ;
  13750. }
  13751. return 1;
  13752. }
  13753. GetClosestBoot(playerid)
  13754. {
  13755. new
  13756. vehicleid = GetClosestVehicle(playerid);
  13757. if (vehicleid != INVALID_VEHICLE_ID && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  13758. {
  13759. new
  13760. Float:x,
  13761. Float:y,
  13762. Float:z;
  13763. GetBootOffset(vehicleid, x, y, z);
  13764. if (IsPlayerInRangeOfPoint(playerid, 3.0, x, y, z))
  13765. {
  13766. return vehicleid;
  13767. }
  13768. }
  13769. return INVALID_VEHICLE_ID;
  13770. }*/
  13771. GetClosestVehicle(playerid)
  13772. {
  13773. new
  13774. Float:x,
  13775. Float:y,
  13776. Float:z;
  13777. for (new i = 1; i < MAX_VEHICLES; i ++)
  13778. {
  13779. if (!IsValidVehicle(i) || !IsVehicleStreamedIn(i, playerid))
  13780. {
  13781. continue;
  13782. }
  13783. else
  13784. {
  13785. GetVehiclePos(i, x, y, z);
  13786. if (IsPlayerInRangeOfPoint(playerid, 3.7, x, y, z))
  13787. {
  13788. return i;
  13789. }
  13790. }
  13791. }
  13792. return INVALID_VEHICLE_ID;
  13793. }
  13794. ClearVehicleObjects(vehicleid)
  13795. {
  13796. if (!IsValidVehicle(vehicleid)) return 0;
  13797. if (IsValidDynamicObject(VehicleInformation[vehicleid][vObject]))
  13798. {
  13799. DestroyDynamicObject(VehicleInformation[vehicleid][vObject]);
  13800. VehicleInformation[vehicleid][vObject] = INVALID_OBJECT_ID;
  13801. }
  13802. if (IsValidDynamicObject(gSirenObject[vehicleid]))
  13803. {
  13804. DestroyDynamicObject(gSirenObject[vehicleid]);
  13805. gSirenObject[vehicleid] = INVALID_OBJECT_ID;
  13806. }
  13807. if (gCallsignText[vehicleid] != INVALID_3DTEXT_ID)
  13808. {
  13809. Delete3DTextLabel(gCallsignText[vehicleid]);
  13810. gCallsignText[vehicleid] = INVALID_3DTEXT_ID;
  13811. }
  13812. if(TaxiObject[vehicleid] != INVALID_OBJECT_ID)
  13813. {
  13814. DestroyDynamicObject(TaxiObject[vehicleid]);
  13815. TaxiObject[vehicleid] = INVALID_OBJECT_ID;
  13816. }
  13817. return 1;
  13818. }
  13819. ResyncVehicle(vehicleid)
  13820. {
  13821. new worldid = GetVehicleVirtualWorld(vehicleid);
  13822. SetVehicleVirtualWorld(vehicleid, worldid + 1);
  13823. SetVehicleVirtualWorld(vehicleid, worldid);
  13824. }
  13825. ResetVehicle(vehicle)
  13826. {
  13827. for (new i = 0; i < 14; i ++) {
  13828. Vehicles[vehicle][vMods][i] = 0;
  13829. }
  13830. strcpy(Vehicles[vehicle][vPlate], "XYZSR998");
  13831. DestroyVehicleEx(Vehicles[vehicle][vVehicle]);
  13832. DestroyDynamic3DTextLabel(Vehicles[vehicle][vText]);
  13833. Vehicles[vehicle][vID] = 0;
  13834. Vehicles[vehicle][vExists] = 0;
  13835. Vehicles[vehicle][vCompany] = 0;
  13836. Vehicles[vehicle][vOwner] = 0;
  13837. Vehicles[vehicle][vModel] = 0;
  13838. Vehicles[vehicle][vPrice] = 0;
  13839. Vehicles[vehicle][vRentable] = 0;
  13840. Vehicles[vehicle][vSpawn][0] = 0.0;
  13841. Vehicles[vehicle][vSpawn][1] = 0.0;
  13842. Vehicles[vehicle][vSpawn][2] = 0.0;
  13843. Vehicles[vehicle][vSpawn][3] = 0.0;
  13844. Vehicles[vehicle][vColor1] = 0;
  13845. Vehicles[vehicle][vColor2] = 0;
  13846. Vehicles[vehicle][vPaintjob] = INVALID_ID;
  13847. Vehicles[vehicle][vLocked] = 0;
  13848. Vehicles[vehicle][vTrunkMoney] = 0;
  13849. Vehicles[vehicle][vFaction] = 0;
  13850. Vehicles[vehicle][vSiren] = 0;
  13851. Vehicles[vehicle][vAlarm] = 0;
  13852. Vehicles[vehicle][vImpound] = 0;
  13853. Vehicles[vehicle][vDespawned] = 0;
  13854. Vehicles[vehicle][vVehicle] = INVALID_VEHICLE_ID;
  13855. Vehicles[vehicle][vText] = INVALID_3DTEXT_ID;
  13856. Vehicles[vehicle][vRenter] = INVALID_PLAYER_ID;
  13857. }
  13858. IsAdminNameSetup(playerid)
  13859. {
  13860. return (strcmp(Players[playerid][pAdminName], "none", true));
  13861. }
  13862. IsAdminTitleSetup(playerid)
  13863. {
  13864. return (strcmp(Players[playerid][pAdminTitle], "none", true));
  13865. }
  13866. IsVehicleSpawnSetup(company)
  13867. {
  13868. return (Companies[company][cVehicle][0] != 0.0 && Companies[company][cVehicle][1] != 0.0 && Companies[company][cVehicle][2] != 0.0);
  13869. }
  13870. ResetCompany(company)
  13871. {
  13872. for (new i = 0; i < MAX_PRODUCTS; i ++)
  13873. {
  13874. Products[company][i][prStock] = 0;
  13875. Products[company][i][prPrice] = 0;
  13876. }
  13877. DestroyDynamicCP(Companies[company][cCheckpoint]);
  13878. DestroyDynamicMapIcon(Companies[company][cIcon]);
  13879. //DestroyDynamic3DTextLabel(Companies[company][cText]);
  13880. DestroyDynamic3DTextLabel(Companies[company][cDeliverText]);
  13881. strcpy(Companies[company][cOwnerName], "Nobody", MAX_PLAYER_NAME);
  13882. Companies[company][cID] = 0;
  13883. Companies[company][cExists] = 0;
  13884. Companies[company][cOwner] = 0;
  13885. Companies[company][cValue] = 0;
  13886. Companies[company][cType] = 0;
  13887. Companies[company][cLocked] = 0;
  13888. Companies[company][cSafe] = 0;
  13889. Companies[company][cStock] = 0;
  13890. Companies[company][cVehicle][0] = 0.0;
  13891. Companies[company][cVehicle][1] = 0.0;
  13892. Companies[company][cVehicle][2] = 0.0;
  13893. Companies[company][cVehicle][3] = 0.0;
  13894. Companies[company][cInterior] = 0;
  13895. Companies[company][cWorld] = 0;
  13896. Companies[company][cExterior] = 0;
  13897. Companies[company][cExteriorWorld] = 0;
  13898. Companies[company][cCheckpoint] = INVALID_ID;
  13899. Companies[company][cIcon] = INVALID_ID;
  13900. //Companies[company][cText] = INVALID_3DTEXT_ID;
  13901. Companies[company][cDeliverText] = INVALID_3DTEXT_ID;
  13902. }
  13903. IsCompanyOwner(playerid, company)
  13904. {
  13905. return (IsValidCompanyID(company)) && (Companies[company][cOwner] == Players[playerid][pID]);
  13906. }
  13907. GetPaymentType(playerid)
  13908. {
  13909. new ret[16];
  13910. if (Players[playerid][pPaymentType] == PAYMENT_TYPE_CASH)
  13911. ret = "Cash";
  13912. else if (Players[playerid][pPaymentType] == PAYMENT_TYPE_BANK)
  13913. ret = "Bank Account";
  13914. return ret;
  13915. }
  13916. IsPlayerAtInvalidCoords(playerid)
  13917. {
  13918. new
  13919. Float:fX,
  13920. Float:fY,
  13921. Float:fZ;
  13922. if (GetPlayerPos(playerid, fX, fY, fZ))
  13923. {
  13924. return (fX == 0.0 && fY == 0.0 && fZ == 0.0);
  13925. }
  13926. return 0;
  13927. }
  13928. IsWeaponModel(model)
  13929. {
  13930. for (new i = 0; i < sizeof(g_WeaponInfo); i ++)
  13931. {
  13932. if (g_WeaponInfo[i][e_WeaponModel] == model) return 1;
  13933. }
  13934. return 0;
  13935. }
  13936. IsPlayerNearPoint(playerid, Float:range, Float:x, Float:y, Float:z, interior = -1, world = -1)
  13937. {
  13938. if (interior == -1)
  13939. interior = GetPlayerInterior(playerid);
  13940. if (world == -1)
  13941. world = GetPlayerVirtualWorld(playerid);
  13942. return (IsPlayerInRangeOfPoint(playerid, range, x, y, z)) && (GetPlayerInterior(playerid) == interior && GetPlayerVirtualWorld(playerid) == world);
  13943. }
  13944. ResetVehicleStream(vehicleid)
  13945. {
  13946. strpack(VehicleInformation[vehicleid][vStream], "Not Specified", 128);
  13947. }
  13948. SetupVehicle(vehicleid, color1 = -1, color2 = -1)
  13949. {
  13950. if (vehicleid != INVALID_VEHICLE_ID)
  13951. {
  13952. ResetVehicleStream(vehicleid);
  13953. VehicleInformation[vehicleid][vInit] = 1;
  13954. VehicleInformation[vehicleid][vFuel] = 100;
  13955. VehicleInformation[vehicleid][vAdmin] = 0;
  13956. VehicleInformation[vehicleid][vGoods] = 0;
  13957. VehicleInformation[vehicleid][vObject] = INVALID_OBJECT_ID;
  13958. VehicleInformation[vehicleid][vColor][0] = color1;
  13959. VehicleInformation[vehicleid][vColor][1] = color2;
  13960. VehicleInformation[vehicleid][vWindows] = 1;
  13961. VehicleInformation[vehicleid][vWindowFL] = 1;
  13962. VehicleInformation[vehicleid][vWindowFR] = 1;
  13963. VehicleInformation[vehicleid][vWindowBL] = 1;
  13964. VehicleInformation[vehicleid][vWindowBR] = 1;
  13965. gSirenObject[vehicleid] = INVALID_OBJECT_ID;
  13966. gCallsignText[vehicleid] = INVALID_3DTEXT_ID;
  13967. }
  13968. }
  13969. SpawnConfirmationVehicle(playerid, company, faction, price, modelid, color1, color2, bool:rental = false)
  13970. {
  13971. new
  13972. Float:x,
  13973. Float:y,
  13974. Float:z,
  13975. Float:angle
  13976. ;
  13977. GetPlayerPos(playerid, x, y, z);
  13978. GetPlayerFacingAngle(playerid, angle);
  13979. Players[playerid][pAddVehicle] = SpawnVehicle(modelid, x, y, z, angle, color1, color2, -1, 0);
  13980. if (IsValidVehicle(Players[playerid][pAddVehicle]))
  13981. {
  13982. Players[playerid][pVehiclePrice] = price;
  13983. Players[playerid][pVehicleCompany] = company;
  13984. Players[playerid][pVehicleRental] = rental;
  13985. Players[playerid][pVehicleFaction] = faction;
  13986. PutPlayerInVehicle(playerid, Players[playerid][pAddVehicle], 0);
  13987. SetVehicleParamsEx(Players[playerid][pAddVehicle], 1, 1, 0, 0, 0, 0, 0);
  13988. }
  13989. return 1;
  13990. }
  13991. SpawnVehicle(modelid, Float:fX, Float:fY, Float:fZ, Float:fA, color1, color2, respawn = -1, addsiren = 0)
  13992. {
  13993. new vehicleid = INVALID_VEHICLE_ID;
  13994. if (400 <= modelid <= 611)
  13995. {
  13996. vehicleid = AddStaticVehicleEx(modelid, fX, fY, fZ, fA, color1, color2, respawn, addsiren);
  13997. SetupVehicle(vehicleid, color1, color2);
  13998. CallLocalFunction("OnVehicleSpawn", "i", vehicleid);
  13999. }
  14000. return vehicleid;
  14001. }
  14002. GetVehicleModelName(modelid)
  14003. {
  14004. new string[32];
  14005. if (400 <= modelid <= 611)
  14006. strcpy(string, g_VehicleNames[modelid - 400]);
  14007. else
  14008. string = "Unknown";
  14009. return string;
  14010. }
  14011. GetVehicleName(vehicleid)
  14012. {
  14013. new modelid, string[32];
  14014. if (400 <= (modelid = GetVehicleModel(vehicleid)) <= 611)
  14015. strcpy(string, g_VehicleNames[modelid - 400]);
  14016. else
  14017. string = "Unknown";
  14018. return string;
  14019. }
  14020. GetVehicleModelFromName(const string[])
  14021. {
  14022. new
  14023. modelid = strval(string);
  14024. if (400 <= modelid <= 611)
  14025. {
  14026. return modelid;
  14027. }
  14028. else
  14029. {
  14030. for (new i = 0; i < sizeof(g_VehicleNames); i ++)
  14031. {
  14032. if (strfind(g_VehicleNames[i], string, true) != -1)
  14033. {
  14034. modelid = i + 400;
  14035. return modelid;
  14036. }
  14037. }
  14038. }
  14039. return 0;
  14040. }
  14041. GetWeaponOffsetType(weaponid)
  14042. {
  14043. if (weaponid == 2 || (2 <= weaponid <= 9)) {
  14044. return WEAPON_TYPE_MELEE;
  14045. } else if (22 <= weaponid <= 24) {
  14046. return WEAPON_TYPE_PISTOL;
  14047. } else if (25 <= weaponid <= 27) {
  14048. return WEAPON_TYPE_SHOTGUN;
  14049. } else if (weaponid == 28 || weaponid == 29 || weaponid == 32) {
  14050. return WEAPON_TYPE_SMG;
  14051. } else if (weaponid == 30 || weaponid == 31) {
  14052. return WEAPON_TYPE_ASSAULT;
  14053. } else if (weaponid == 33 || weaponid == 34) {
  14054. return WEAPON_TYPE_RIFLE;
  14055. }
  14056. return INVALID_ID;
  14057. }
  14058. GetPlayerWeaponID(playerid, slot)
  14059. {
  14060. if (slot == WEAPON_MELEE) {
  14061. return Weapons[playerid][wMelee];
  14062. } else if (slot == WEAPON_PRIMARY) {
  14063. return Weapons[playerid][wPrimary];
  14064. } else if (slot == WEAPON_SECONDARY) {
  14065. return Weapons[playerid][wSecondary];
  14066. } else if (slot == WEAPON_TERTIARY) {
  14067. return Weapons[playerid][wTertiary];
  14068. }
  14069. return 0;
  14070. }
  14071. GetPlayerWeaponAmmo(playerid, slot)
  14072. {
  14073. if (slot == WEAPON_PRIMARY) {
  14074. return Weapons[playerid][wPrimaryAmmo];
  14075. } else if (slot == WEAPON_SECONDARY) {
  14076. return Weapons[playerid][wSecondaryAmmo];
  14077. } else if (slot == WEAPON_TERTIARY) {
  14078. return Weapons[playerid][wTertiaryAmmo];
  14079. }
  14080. return 0;
  14081. }
  14082. PlayerHasWeapon(playerid, weaponid)
  14083. {
  14084. if (Weapons[playerid][wMelee] == weaponid || Weapons[playerid][wPrimary] == weaponid || Weapons[playerid][wSecondary] == weaponid || Weapons[playerid][wTertiary] == weaponid) {
  14085. return 1;
  14086. }
  14087. else if (weaponid == 23 && Players[playerid][pTazer]) {
  14088. return 1;
  14089. }
  14090. else if (weaponid == 0 || weaponid == 40 || weaponid == 43 || weaponid == 46) {
  14091. return 1;
  14092. }
  14093. return 0;
  14094. }
  14095. SetWeaponHidden(playerid, slot, enable)
  14096. {
  14097. if (!(WEAPON_TYPE_MELEE <= slot <= WEAPON_TYPE_RIFLE)) {
  14098. return 0;
  14099. }
  14100. WeaponOffsets[playerid][slot][wHidden] = enable;
  14101. format(gExecute, sizeof(gExecute), "UPDATE rp_weaponoffsets SET Hidden = %i WHERE ID = %i AND Slot = %i", enable, Players[playerid][pID], slot);
  14102. mysql_tquery(gConnection, gExecute);
  14103. return 1;
  14104. }
  14105. SetDefaultWeaponOffset(playerid, weaponid)
  14106. {
  14107. switch (weaponid)
  14108. {
  14109. case 2, 5..9:
  14110. SetWeaponOffset(playerid, GetWeaponOffsetType(weaponid), 1, -0.254000, 0.186999, -0.066999, 9.699998, 57.799995, -2.400001); // 0
  14111. case 22..24:
  14112. SetWeaponOffset(playerid, GetWeaponOffsetType(weaponid), 8, 0.000000, -0.010999, 0.143000, -96.400016, 0.000000, 0.000000);
  14113. case 25:
  14114. SetWeaponOffset(playerid, GetWeaponOffsetType(weaponid), 1, -0.182000, -0.265999, 0.037999, -8.600000, 3.800007, 3.799999); // 1 shotgun
  14115. case 27:
  14116. SetWeaponOffset(playerid, GetWeaponOffsetType(weaponid), 1, -0.286000, -0.170999, 0.001000, 0.000000, 6.199998, 2.999999);
  14117. case 28, 29, 32:
  14118. SetWeaponOffset(playerid, GetWeaponOffsetType(weaponid), 7, 0.041999, -0.068999, -0.131999, -75.299995, 6.900000, 0.100000); // 3 mp5
  14119. case 30, 31:
  14120. SetWeaponOffset(playerid, GetWeaponOffsetType(weaponid), 1, -0.121999, -0.174998, 0.088999, 0.000000, 35.400012, 0.000000); // 0 m4
  14121. case 33, 34:
  14122. SetWeaponOffset(playerid, GetWeaponOffsetType(weaponid), 1, -0.095000, -0.238999, -0.174999, -3.100000, -25.399997, 3.899999);
  14123. }
  14124. }
  14125. SetWeaponOffset(playerid, slot, bone, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
  14126. {
  14127. if (!(WEAPON_TYPE_MELEE <= slot <= WEAPON_TYPE_RIFLE)) {
  14128. return 0;
  14129. }
  14130. WeaponOffsets[playerid][slot][wBoneID] = bone;
  14131. WeaponOffsets[playerid][slot][wHidden] = false;
  14132. WeaponOffsets[playerid][slot][wOffsetX] = x;
  14133. WeaponOffsets[playerid][slot][wOffsetY] = y;
  14134. WeaponOffsets[playerid][slot][wOffsetZ] = z;
  14135. WeaponOffsets[playerid][slot][wOffsetRX] = rx;
  14136. WeaponOffsets[playerid][slot][wOffsetRY] = ry;
  14137. WeaponOffsets[playerid][slot][wOffsetRZ] = rz;
  14138. format(gExecute, sizeof(gExecute), "INSERT INTO rp_weaponoffsets VALUES(%i, %i, %i, 0, %.4f, %.4f, %.4f, %.4f, %.4f, %.4f) ON DUPLICATE KEY UPDATE Bone = %i, Hidden = 0, OffsetX = %.4f, OffsetY = %.4f, OffsetZ = %.4f, OffsetRX = %.4f, OffsetRY = %.4f, OffsetRZ = %.4f", Players[playerid][pID], slot, bone, x, y, z, rx, ry, rz, bone, x, y, z, rx, ry, rz);
  14139. mysql_tquery(gConnection, gExecute);
  14140. return 1;
  14141. }
  14142. GiveWeaponAmmo(playerid, slot, ammo)
  14143. {
  14144. switch (slot)
  14145. {
  14146. case WEAPON_PRIMARY:
  14147. {
  14148. Weapons[playerid][wPrimaryAmmo] += ammo;
  14149. GivePlayerWeapon(playerid, Weapons[playerid][wPrimary], ammo);
  14150. if (GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) {
  14151. SetPlayerArmedWeapon(playerid, Weapons[playerid][wPrimary]);
  14152. } else if (GetPlayerState(playerid) != PLAYER_STATE_PASSENGER && !IsDrivebyWeapon(Weapons[playerid][wPrimary])) {
  14153. SetPlayerArmedWeapon(playerid, 0);
  14154. }
  14155. }
  14156. case WEAPON_SECONDARY:
  14157. {
  14158. Weapons[playerid][wSecondaryAmmo] += ammo;
  14159. GivePlayerWeapon(playerid, Weapons[playerid][wSecondary], ammo);
  14160. if (GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) {
  14161. SetPlayerArmedWeapon(playerid, Weapons[playerid][wSecondary]);
  14162. } else if (GetPlayerState(playerid) != PLAYER_STATE_PASSENGER && !IsDrivebyWeapon(Weapons[playerid][wSecondary])) {
  14163. SetPlayerArmedWeapon(playerid, 0);
  14164. }
  14165. }
  14166. case WEAPON_TERTIARY:
  14167. {
  14168. Weapons[playerid][wTertiaryAmmo] += ammo;
  14169. GivePlayerWeapon(playerid, Weapons[playerid][wTertiary], ammo);
  14170. if (GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) {
  14171. SetPlayerArmedWeapon(playerid, Weapons[playerid][wTertiary]);
  14172. } else if (GetPlayerState(playerid) != PLAYER_STATE_PASSENGER && !IsDrivebyWeapon(Weapons[playerid][wTertiary])) {
  14173. SetPlayerArmedWeapon(playerid, 0);
  14174. }
  14175. }
  14176. }
  14177. }
  14178. ShowMenuForWeapon(playerid, slot)
  14179. {
  14180. new
  14181. weaponid = GetPlayerWeaponID(playerid, slot);
  14182. if (weaponid)
  14183. {
  14184. new type = GetWeaponOffsetType(weaponid);
  14185. if (IsWeaponHideable(weaponid))
  14186. {
  14187. if (WeaponOffsets[playerid][type][wHidden]) {
  14188. Dialog_Show(playerid, AdjustWeapon, DIALOG_STYLE_LIST, "{FFFFFF}Adjust Weapon", "Adjust Bone (%s)\nAdjust Offset\nShow Weapon", "Select", "Cancel", GetBoneName(WeaponOffsets[playerid][type][wBoneID]));
  14189. } else {
  14190. Dialog_Show(playerid, AdjustWeapon, DIALOG_STYLE_LIST, "{FFFFFF}Adjust Weapon", "Adjust Bone (%s)\nAdjust Offset\nHide Weapon", "Select", "Cancel", GetBoneName(WeaponOffsets[playerid][type][wBoneID]));
  14191. }
  14192. }
  14193. else
  14194. {
  14195. Dialog_Show(playerid, AdjustWeapon, DIALOG_STYLE_LIST, "{FFFFFF}Adjust Weapon", "Adjust Bone (%s)\nAdjust Offset", "Select", "Cancel", GetBoneName(WeaponOffsets[playerid][type][wBoneID]));
  14196. }
  14197. }
  14198. }
  14199. SetPlayerWeapon(playerid, slot, weaponid, ammo=0, serial=0)
  14200. {
  14201. Players[playerid][pAnticheat] = 2;
  14202. if (!((22 <= weaponid <= 24) && Players[playerid][pTazer]))
  14203. {
  14204. SetPlayerArmedWeapon(playerid, 0);
  14205. ResetPlayerWeapons(playerid);
  14206. }
  14207. switch (slot)
  14208. {
  14209. case WEAPON_MELEE:
  14210. {
  14211. Weapons[playerid][wMelee] = weaponid;
  14212. }
  14213. case WEAPON_PRIMARY:
  14214. {
  14215. Weapons[playerid][wPrimary] = weaponid;
  14216. Weapons[playerid][wPrimaryAmmo] = ammo;
  14217. Weapons[playerid][wPrimarySerial] = serial;
  14218. }
  14219. case WEAPON_SECONDARY:
  14220. {
  14221. Weapons[playerid][wSecondary] = weaponid;
  14222. Weapons[playerid][wSecondaryAmmo] = ammo;
  14223. Weapons[playerid][wSecondarySerial] = serial;
  14224. }
  14225. case WEAPON_TERTIARY:
  14226. {
  14227. Weapons[playerid][wTertiary] = weaponid;
  14228. Weapons[playerid][wTertiaryAmmo] = ammo;
  14229. Weapons[playerid][wTertiarySerial] = serial;
  14230. }
  14231. }
  14232. if (!weaponid)
  14233. {
  14234. if (slot == WEAPON_MELEE) {
  14235. RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_MELEE);
  14236. } else if (slot == WEAPON_PRIMARY) {
  14237. RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_PRIMARY);
  14238. } else if (slot == WEAPON_SECONDARY) {
  14239. RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_SECONDARY);
  14240. } else if (slot == WEAPON_TERTIARY) {
  14241. RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_TERTIARY);
  14242. }
  14243. }
  14244. if (!((22 <= weaponid <= 24) && Players[playerid][pTazer]))
  14245. {
  14246. SetWeaponsForPlayer(playerid);
  14247. if (IsDrivebyWeapon(weaponid) && IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) {
  14248. SetPlayerArmedWeapon(playerid, 0);
  14249. }
  14250. }
  14251. }
  14252. SetWeaponsForPlayer(playerid)
  14253. {
  14254. ResetPlayerWeapons(playerid);
  14255. if (Weapons[playerid][wMelee])
  14256. {
  14257. GivePlayerWeapon(playerid, Weapons[playerid][wMelee], 0);
  14258. }
  14259. if (Weapons[playerid][wPrimary] && Weapons[playerid][wPrimaryAmmo])
  14260. {
  14261. GivePlayerWeapon(playerid, Weapons[playerid][wPrimary], Weapons[playerid][wPrimaryAmmo]);
  14262. }
  14263. if (Weapons[playerid][wSecondary] && Weapons[playerid][wSecondaryAmmo])
  14264. {
  14265. GivePlayerWeapon(playerid, Weapons[playerid][wSecondary], Weapons[playerid][wSecondaryAmmo]);
  14266. }
  14267. if (Weapons[playerid][wTertiary] && Weapons[playerid][wTertiaryAmmo])
  14268. {
  14269. GivePlayerWeapon(playerid, Weapons[playerid][wTertiary], Weapons[playerid][wTertiaryAmmo]);
  14270. }
  14271. if (Players[playerid][pCamera] != 0)
  14272. {
  14273. GivePlayerWeapon(playerid, 43, 99999);
  14274. }
  14275. if (GetPlayerState(playerid) != PLAYER_STATE_ONFOOT)
  14276. {
  14277. SetPlayerArmedWeapon(playerid, 0);
  14278. }
  14279. return 1;
  14280. }
  14281. ResetWeapons(playerid)
  14282. {
  14283. Players[playerid][pAnticheat] = 2;
  14284. SetPlayerArmedWeapon(playerid, 0);
  14285. ResetPlayerWeapons(playerid);
  14286. if (Players[playerid][pCamera])
  14287. {
  14288. Players[playerid][pCamera] = 0;
  14289. }
  14290. if (Players[playerid][pTazer])
  14291. {
  14292. Players[playerid][pTazer] = 0;
  14293. }
  14294. Weapons[playerid][wMelee] = 0;
  14295. Weapons[playerid][wPrimary] = 0;
  14296. Weapons[playerid][wPrimaryAmmo] = 0;
  14297. Weapons[playerid][wPrimarySerial] = 0;
  14298. Weapons[playerid][wSecondary] = 0;
  14299. Weapons[playerid][wSecondaryAmmo] = 0;
  14300. Weapons[playerid][wSecondarySerial] = 0;
  14301. Weapons[playerid][wTertiary] = 0;
  14302. Weapons[playerid][wTertiaryAmmo] = 0;
  14303. Weapons[playerid][wTertiarySerial] = 0;
  14304. if (IsPlayerAttachedObjectSlotUsed(playerid, ATTACHED_SLOT_PRIMARY))
  14305. {
  14306. RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_PRIMARY);
  14307. }
  14308. if (IsPlayerAttachedObjectSlotUsed(playerid, ATTACHED_SLOT_SECONDARY))
  14309. {
  14310. RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_SECONDARY);
  14311. }
  14312. if (IsPlayerAttachedObjectSlotUsed(playerid, ATTACHED_SLOT_TERTIARY))
  14313. {
  14314. RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_TERTIARY);
  14315. }
  14316. return 1;
  14317. }
  14318. IsPlayerSpawned(playerid)
  14319. {
  14320. switch (GetPlayerState(playerid))
  14321. {
  14322. case PLAYER_STATE_NONE, PLAYER_STATE_WASTED:
  14323. return 0;
  14324. }
  14325. return 1;
  14326. }
  14327. TeleportToPlayer(playerid, targetid)
  14328. {
  14329. if (!IsPlayerConnected(playerid) || !IsPlayerConnected(targetid))
  14330. {
  14331. return 0;
  14332. }
  14333. else
  14334. {
  14335. new
  14336. Float:x,
  14337. Float:y,
  14338. Float:z,
  14339. Float:a;
  14340. GetPlayerPos(targetid, x, y, z);
  14341. GetPlayerFacingAngle(targetid, a);
  14342. if (GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  14343. {
  14344. SetVehiclePos(GetPlayerVehicleID(playerid), x - (1.0 * floatsin(-a, degrees)), y - (1.0 * floatcos(-a, degrees)), z);
  14345. LinkVehicleToInterior(GetPlayerVehicleID(playerid), GetPlayerInterior(targetid));
  14346. SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), GetPlayerVirtualWorld(targetid));
  14347. }
  14348. else
  14349. {
  14350. SetPlayerPos(playerid, x - (1.0 * floatsin(-a, degrees)), y - (1.0 * floatcos(-a, degrees)), z);
  14351. }
  14352. SetPlayerInterior(playerid, GetPlayerInterior(targetid));
  14353. SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(targetid));
  14354. }
  14355. return 1;
  14356. }
  14357. AddIPToBlacklist(ip[], admin[], reason[])
  14358. {
  14359. format(gExecute, sizeof(gExecute), "INSERT INTO rp_blacklist (Player, IP, BannedBy, Date, Reason) VALUES(NULL, '%s', '%s', NOW(), '%s')", ip, admin, mysql_escaped(reason));
  14360. mysql_tquery(gConnection, gExecute);
  14361. foreach (new i : Player)
  14362. {
  14363. if (!strcmp(ReturnIP(i), ip))
  14364. {
  14365. SendInfoMessage(i, "Your IP '%s' has been banned.", ip);
  14366. KickPlayer(i);
  14367. }
  14368. }
  14369. return 1;
  14370. }
  14371. AddToBlacklist(playerid, admin[], reason[])
  14372. {
  14373. AddPunishment(playerid, admin, "Ban", reason);
  14374. format(gExecute, sizeof(gExecute), "INSERT INTO rp_banlogs (Admin, Player, Reason, Date) VALUES('%s', '%s', '%s', NOW())", admin, ReturnName(playerid), mysql_escaped(reason));
  14375. mysql_tquery(gConnection, gExecute);
  14376. format(gExecute, sizeof(gExecute), "INSERT INTO rp_blacklist (Player, IP, BannedBy, Date, Reason) VALUES('%s', '%s', '%s', NOW(), '%s')", ReturnName(playerid), ReturnIP(playerid), admin, mysql_escaped(reason));
  14377. mysql_tquery(gConnection, gExecute);
  14378. return KickPlayer(playerid);
  14379. }
  14380. AddPunishment(playerid, admin[], type[], reason[])
  14381. {
  14382. if (!IsPlayerNPC(playerid) && Players[playerid][pLoggedIn])
  14383. {
  14384. format(gExecute, sizeof(gExecute), "INSERT INTO rp_punishments (Player, Admin, Type, Date, Reason) VALUES(%i, '%s', '%s', NOW(), '%s')", Players[playerid][pID], admin, type, mysql_escaped(reason));
  14385. mysql_tquery(gConnection, gExecute);
  14386. }
  14387. return 1;
  14388. }
  14389. AddChatLog(playerid, command[], text[])
  14390. {
  14391. if (!IsPlayerNPC(playerid) && Players[playerid][pLoggedIn])
  14392. {
  14393. format(gExecute, sizeof(gExecute), "INSERT INTO rp_chatlogs (Player, Command, Text, Date) VALUES('%s', '%s', '%s', NOW())", ReturnName(playerid), mysql_escaped(command), mysql_escaped(text));
  14394. mysql_tquery(gConnection, gExecute);
  14395. }
  14396. return 1;
  14397. }
  14398. GetNextReportID()
  14399. {
  14400. for (new i = 0; i < MAX_REPORTS; i ++)
  14401. {
  14402. if (!Reports[i][rExists])
  14403. {
  14404. return i;
  14405. }
  14406. }
  14407. return INVALID_ID;
  14408. }
  14409. GetNextEmergencyID()
  14410. {
  14411. for (new i = 0; i < MAX_EMERGENCY; i ++)
  14412. {
  14413. if (!Emergency[i][ecExists])
  14414. {
  14415. return i;
  14416. }
  14417. }
  14418. return INVALID_ID;
  14419. }
  14420. GetNextApbID()
  14421. {
  14422. for (new i = 0; i < MAX_APBS; i ++)
  14423. {
  14424. if(!Apbs[i][apbExists])
  14425. {
  14426. return i;
  14427. }
  14428. }
  14429. return INVALID_ID;
  14430. }
  14431. ReviewReport(playerid, id)
  14432. {
  14433. if (!Players[playerid][pAdmin]) return 0;
  14434. Players[playerid][pSelected] = id;
  14435. return Dialog_Show(playerid, ReportReview, DIALOG_STYLE_MSGBOX, "{FFFFFF}Review Report", "{6688FF}Reported By:{FFFFFF}\n%s (ID: %i)\n\n{6688FF}Time Left:{FFFFFF}\n%i minutes\n\n{6688FF}Report Text:{FFFFFF}\n%s", "Options", "Back", ReturnNameEx(Reports[id][rReporter]), Reports[id][rReporter], Reports[id][rReportTime], Reports[id][rText]);
  14436. }
  14437. ReviewEmergency(playerid, id)
  14438. {
  14439. Players[playerid][pSelected] = id;
  14440. return Dialog_Show(playerid, EmergencyReview, DIALOG_STYLE_MSGBOX, "{FFFFFF}Review Emergency Call", "{6688FF}Service:{FFFFFF}\n%s\n\n{6688FF}Reported By:{FFFFFF}\n%s (%i)\n\n{6688FF}Situation:{FFFFFF}\n%s\n\n{6688FF}Location:{FFFFFF}\n%s", "Handle", "Back", Emergency[id][ecService], Emergency[id][ecName], Emergency[id][ecNumber], Emergency[id][ecSituation], Emergency[id][ecLocation]);
  14441. }
  14442. /*
  14443. {
  14444. ecExists,
  14445. ecTime,
  14446. ecName[128],
  14447. ecService[32],
  14448. ecNumber,
  14449. ecLocation[128],
  14450. ecSituation[128]
  14451. };
  14452. */
  14453. ReviewApb(playerid, id)
  14454. {
  14455. if(GetPlayerFactionType(playerid) != FACTION_LEO) return 0;
  14456. Players[playerid][pSelected] = id;
  14457. return Dialog_Show(playerid, ApbReview, DIALOG_STYLE_MSGBOX, "{FFFFFF}Review APB", "{6688FF}Reported By:{FFFFFF}\n%s (ID: %i)\n\n{6688FF}Description:{FFFFFF}\n%s","Options","Back",ReturnNameEx(Apbs[id][apbReporter]), Apbs[id][apbReporter], Apbs[id][apbDesc1]);
  14458. }
  14459. AddApbToQueue(playerid, const text[])
  14460. {
  14461. new
  14462. id = GetNextApbID();
  14463. if (id != INVALID_ID)
  14464. {
  14465. strcpy(Apbs[id][apbDesc1], text, 128);
  14466. Apbs[id][apbExists] = 1;
  14467. Apbs[id][apbReporter] = playerid;
  14468. foreach (new i : Player) {
  14469. if (GetPlayerFactionType(i) == FACTION_LEO) {
  14470. SendFormatMessage(i, COLOR_FACTION, "[APB] %s reports: \"%s\"",ReturnNameEx(playerid,0),text);
  14471. }
  14472. }
  14473. }
  14474. return id;
  14475. }
  14476. AddReportToQueue(playerid, const text[])
  14477. {
  14478. new
  14479. id = GetNextReportID();
  14480. if (id != INVALID_ID)
  14481. {
  14482. strcpy(Reports[id][rText], text, 128);
  14483. Reports[id][rExists] = 1;
  14484. Reports[id][rReportTime] = REPORT_EXPIRE_TIME;
  14485. Reports[id][rReporter] = playerid;
  14486. foreach (new i : Player) {
  14487. if(CheckAdmin(i, 1) && Players[i][pShowReports]) {
  14488. SendFormatMessage(i, COLOR_YELLOW, "(REPORT) %s (ID: %i) reports: \"%s\"", ReturnNameEx(playerid, 0), playerid, text);
  14489. }
  14490. }
  14491. }
  14492. return id;
  14493. }
  14494. AddEmergency(const name[], const service[], number, const location[], const situation[])
  14495. {
  14496. new
  14497. id = GetNextEmergencyID();
  14498. if (id != INVALID_ID)
  14499. {
  14500. strcpy(Emergency[id][ecName], name, 128);
  14501. strcpy(Emergency[id][ecService], service, 32);
  14502. strcpy(Emergency[id][ecLocation], location, 128);
  14503. strcpy(Emergency[id][ecSituation], situation, 128);
  14504. Emergency[id][ecNumber] = number;
  14505. Emergency[id][ecExists] = 1;
  14506. Emergency[id][ecTime] = EMERGENCY_EXPIRE_TIME;
  14507. }
  14508. return id;
  14509. }
  14510. /*
  14511. enum e_EmergencyCalls
  14512. {
  14513. ecExists,
  14514. ecTime
  14515. ecName[128],
  14516. ecService[32],
  14517. ecNumber,
  14518. ecLocation[128],
  14519. ecSituation[128]
  14520. };
  14521. */
  14522. /*ListEmergency(playerid)
  14523. {
  14524. static
  14525. displayString[2048];
  14526. new
  14527. index = 0;
  14528. displayString = "Service\tLocation\tName\tNumber";
  14529. for (new i = 0; i < MAX_EMERGENCY; i ++)
  14530. {
  14531. if (Emergency[i][ecExists])
  14532. {
  14533. format(displayString, sizeof(displayString), "%s\n%s\t%s\t%s\t%i", Emergency[i][ecService], Emergency[i][ecLocation], Emergency[i][ecName], Emergency[i][ecNumber]);
  14534. gListedItems[playerid][index++] = i;
  14535. }
  14536. }
  14537. Dialog_Show(playerid, SafeItems, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Last Emergency Calls", displayString, "Select", "Back");
  14538. return 1;
  14539. }*/
  14540. ListEmergency(playerid)
  14541. {
  14542. new
  14543. index = 0;
  14544. gListString[0] = 0;
  14545. for (new i = 0; i < MAX_EMERGENCY; i ++)
  14546. {
  14547. if (Emergency[i][ecExists])
  14548. {
  14549. format(gListString, sizeof(gListString), "%s\n%s, %s (%s) -> %.24s...", gListString, Emergency[i][ecService], Emergency[i][ecName], Emergency[i][ecLocation], Emergency[i][ecSituation]);
  14550. gListedItems[playerid][index++] = i;
  14551. }
  14552. }
  14553. if (strlen(gListString))
  14554. {
  14555. return Dialog_Show(playerid, EmergencyList, DIALOG_STYLE_LIST, "{FFFFFF}Last Emergency Calls", gListString, "Review", "Cancel");
  14556. }
  14557. return 0;
  14558. }
  14559. ListReports(playerid)
  14560. {
  14561. new
  14562. index = 0;
  14563. gListString[0] = 0;
  14564. for (new i = 0; i < MAX_REPORTS; i ++)
  14565. {
  14566. if (Reports[i][rExists])
  14567. {
  14568. format(gListString, sizeof(gListString), "%s\n%s (%i) -> %.24s...", gListString, ReturnNameEx(Reports[i][rReporter]), Reports[i][rReporter], Reports[i][rText]);
  14569. gListedItems[playerid][index++] = i;
  14570. }
  14571. }
  14572. if (strlen(gListString))
  14573. {
  14574. return Dialog_Show(playerid, ReportList, DIALOG_STYLE_LIST, "{FFFFFF}Report List", gListString, "Review", "Cancel");
  14575. }
  14576. return 0;
  14577. }
  14578. ListApbs(playerid)
  14579. {
  14580. new
  14581. index = 0;
  14582. gListString[0] = 0;
  14583. for (new i = 0; i < MAX_APBS; i ++)
  14584. {
  14585. if (Apbs[i][apbExists])
  14586. {
  14587. format(gListString, sizeof(gListString), "%s\n%s -> %.24s...",gListString, ReturnNameEx(Apbs[i][apbReporter]),Apbs[i][apbDesc1]);
  14588. gListedItems[playerid][index++] = i;
  14589. }
  14590. }
  14591. if(strlen(gListString))
  14592. {
  14593. return Dialog_Show(playerid, ApbList, DIALOG_STYLE_LIST, "{FFFFFF}APB List", gListString, "Review", "Cancel");
  14594. }
  14595. return 0;
  14596. }
  14597. UpdateSkinSelection(playerid, index)
  14598. {
  14599. new size;
  14600. if (Players[playerid][pGender] == GENDER_MALE) {
  14601. size = sizeof(g_MaleSkins);
  14602. } else if (Players[playerid][pGender] == GENDER_FEMALE) {
  14603. size = sizeof(g_FemaleSkins);
  14604. }
  14605. if (index < 0) {
  14606. index = --size;
  14607. } else if (index >= size) {
  14608. index = 0;
  14609. }
  14610. Players[playerid][pOutfit] = index;
  14611. if (Players[playerid][pGender] == GENDER_MALE) {
  14612. Players[playerid][pSkin] = g_MaleSkins[index];
  14613. } else if (Players[playerid][pGender] == GENDER_FEMALE) {
  14614. Players[playerid][pSkin] = g_FemaleSkins[index];
  14615. }
  14616. SetPlayerSkin(playerid, Players[playerid][pSkin]);
  14617. }
  14618. ResetCharacterSetup(playerid)
  14619. {
  14620. if (!Players[playerid][pSetupInfo])
  14621. {
  14622. Players[playerid][pSkin] = g_MaleSkins[0];
  14623. Players[playerid][pAge] = 13;
  14624. Players[playerid][pGender] = GENDER_MALE;
  14625. Players[playerid][pOutfit] = 0;
  14626. SetPlayerSkin(playerid, Players[playerid][pSkin]);
  14627. UpdateCharacterSetup(playerid);
  14628. }
  14629. }
  14630. UpdateCharacterSetup(playerid)
  14631. {
  14632. new string[64];
  14633. if (Players[playerid][pGender] == GENDER_MALE) {
  14634. PlayerTextDrawSetString(playerid, Players[playerid][pText][89], "Male");
  14635. PlayerTextDrawSetString(playerid, Players[playerid][pText][90], "Female");
  14636. } else if (Players[playerid][pGender] == GENDER_FEMALE) {
  14637. PlayerTextDrawSetString(playerid, Players[playerid][pText][89], "Male");
  14638. PlayerTextDrawSetString(playerid, Players[playerid][pText][90], "Female");
  14639. }
  14640. format(string, sizeof(string), "%i years old", Players[playerid][pAge]);
  14641. PlayerTextDrawSetString(playerid, Players[playerid][pText][92], string);
  14642. format(string, sizeof(string), "Skin: %i/%i", Players[playerid][pOutfit] + 1, (Players[playerid][pGender] == GENDER_MALE ? sizeof(g_MaleSkins) : sizeof(g_FemaleSkins)));
  14643. PlayerTextDrawSetString(playerid, Players[playerid][pText][96], string);
  14644. }
  14645. IsValidOrigin(const str[])
  14646. {
  14647. new
  14648. len = strlen(str);
  14649. for (new i = 0; i < len; i ++)
  14650. {
  14651. if (('A' <= str[i] <= 'Z') || ('a' <= str[i] <= 'z') || ('0' <= str[i] <= '9') || (str[i] == ' '))
  14652. continue;
  14653. else
  14654. return 0;
  14655. }
  14656. return 1;
  14657. }
  14658. IsValidIP(const ip[])
  14659. {
  14660. new
  14661. part[4];
  14662. if (sscanf(ip, "p<.>dddd", part[0], part[1], part[2], part[3]))
  14663. {
  14664. return 0;
  14665. }
  14666. return (0 <= part[0] <= 255) && (0 <= part[1] <= 255) && (0 <= part[2] <= 255) && (0 <= part[3] <= 255);
  14667. }
  14668. IsRoleplayName(const name[])
  14669. {
  14670. if (!('A' <= name[0] <= 'Z') || strfind(name, "_") == -1)
  14671. return 0;
  14672. for (new i = 0, l = strlen(name); i < l; i ++)
  14673. {
  14674. if ('a' <= name[i] <= 'z' || 'A' <= name[i] <= 'Z')
  14675. continue;
  14676. else if (name[i] == '_')
  14677. {
  14678. if (!('A' <= name[i + 1] <= 'Z'))
  14679. return 0;
  14680. else
  14681. continue;
  14682. }
  14683. }
  14684. return 1;
  14685. }
  14686. IsValidName(name[], length_check = 1)
  14687. {
  14688. new i = 0;
  14689. if ((length_check) && !(3 <= strlen(name) <= MAX_PLAYER_NAME))
  14690. return 0;
  14691. while (name[i])
  14692. {
  14693. switch (name[i++])
  14694. {
  14695. case 'A'..'Z', 'a'..'z', '0'..'9', '@', '$', '(', ')', '[', ']', '=', '_':
  14696. continue;
  14697. default:
  14698. return 0;
  14699. }
  14700. }
  14701. return 1;
  14702. }
  14703. SendToDefaultSpawn(playerid)
  14704. {
  14705. SetCameraBehindPlayer(playerid);
  14706. SetPlayerPos(playerid, 1641.8969,-2333.1714,13.5469);
  14707. SetPlayerFacingAngle(playerid, 0.0000);
  14708. SetPlayerInterior(playerid, 0);
  14709. SetPlayerVirtualWorld(playerid, 0);
  14710. }
  14711. SetPlayerSpawn(playerid)
  14712. {
  14713. if (Players[playerid][pJailType] > 0)
  14714. {
  14715. SpawnPlayerInJail(playerid);
  14716. SendInfoMessage(playerid, "You have %i more minutes to serve in jail.", Players[playerid][pJailTime] / 60);
  14717. }
  14718. else
  14719. {
  14720. if (Players[playerid][pDeathState] == DEATH_STATE_INJURED)
  14721. {
  14722. if (IsValidDynamic3DTextLabel(Players[playerid][pInjuredText]))
  14723. {
  14724. DestroyDynamic3DTextLabel(Players[playerid][pInjuredText]);
  14725. }
  14726. Players[playerid][pInjuredText] = CreateDynamic3DTextLabel("Injured Player\n(( /damages ))", COLOR_GREY, 0.0, 0.0, 0.4, 20.0, playerid);
  14727. Players[playerid][pDeathTime] = gettime() + 120;
  14728. SetPlayerPosEx(playerid, Players[playerid][pSpawn][0], Players[playerid][pSpawn][1], Players[playerid][pSpawn][2], Players[playerid][pSpawn][3], Players[playerid][pInterior], Players[playerid][pWorld]);
  14729. //TogglePlayerControllable(playerid, 0);
  14730. ApplyAnimation(playerid, "WUZI", "CS_Dead_Guy", 4.1, 0, 0, 0, 0, 0, 0);
  14731. SendInfoMessage(playerid, "{CFCFCF}(Deathmode) You are wounded. You must wait {FF5030}120{CFCFCF} seconds before accepting death. /acceptdeath");
  14732. }
  14733. /*else if (Players[playerid][pDeathState] == DEATH_STATE_MELEE)
  14734. {
  14735. //SetPlayerPosEx(playerid, Players[playerid][pSpawn][0], Players[playerid][pSpawn][1], Players[playerid][pSpawn][2], Players[playerid][pSpawn][3], Players[playerid][pInterior], Players[playerid][pWorld]);
  14736. SetFreezePos(playerid, Players[playerid][pSpawn][0], Players[playerid][pSpawn][1], Players[playerid][pSpawn][2], 5000);
  14737. SetPlayerVirtualWorld(playerid, Players[playerid][pWorld]);
  14738. SetPlayerInterior(playerid, Players[playerid][pInterior]);
  14739. ApplyAnimation(playerid, "SWAT", "gnstwall_injurd", 4.1, 1, 0, 0, 0, 0, 1);
  14740. SendInfoMessage(playerid, "You have been beaten in a melee fight. Please roleplay your injuries.");
  14741. }*/
  14742. else if (Players[playerid][pDeathState] == DEATH_STATE_HOSPITAL)
  14743. {
  14744. SpawnInsideHospital(playerid);
  14745. }
  14746. else if (Players[playerid][pSpawn][0] == 0.0 && Players[playerid][pSpawn][1] == 0.0 && Players[playerid][pSpawn][2] == 0.0)
  14747. {
  14748. SendToDefaultSpawn(playerid);
  14749. }
  14750. else
  14751. {
  14752. if(Players[playerid][pCrashed])
  14753. {
  14754. Players[playerid][pCrashed] = 0;
  14755. SendInfoMessage(playerid, "{CFCFCF}(Crashed) You was sent back to your original position before the crash.");
  14756. SetFreezePos(playerid, Players[playerid][pSpawn][0], Players[playerid][pSpawn][1], Players[playerid][pSpawn][2], 3000);
  14757. SetPlayerFacingAngle(playerid, Players[playerid][pSpawn][3]);
  14758. SetPlayerInterior(playerid, Players[playerid][pInterior]);
  14759. SetPlayerVirtualWorld(playerid, Players[playerid][pWorld]);
  14760. }
  14761. else
  14762. {
  14763. switch(Players[playerid][pSpawnType]) // Spawn types - added by Grime/Emmet (09-27-2017)
  14764. {
  14765. case SPAWN_TYPE_LAST:
  14766. {
  14767. if (Players[playerid][pInterior] > 0 || Players[playerid][pWorld] > 0)
  14768. {
  14769. SetFreezePos(playerid, Players[playerid][pSpawn][0], Players[playerid][pSpawn][1], Players[playerid][pSpawn][2], 3000);
  14770. }
  14771. else
  14772. {
  14773. SetPlayerPos(playerid, Players[playerid][pSpawn][0], Players[playerid][pSpawn][1], Players[playerid][pSpawn][2]);
  14774. }
  14775. SetPlayerFacingAngle(playerid, Players[playerid][pSpawn][3]);
  14776. SetPlayerInterior(playerid, Players[playerid][pInterior]);
  14777. SetPlayerVirtualWorld(playerid, Players[playerid][pWorld]);
  14778. }
  14779. case SPAWN_TYPE_AIRPORT:
  14780. {
  14781. //SendToDefaultSpawn(playerid);
  14782. }
  14783. case SPAWN_TYPE_HOUSE:
  14784. {
  14785. new houseid = -1;
  14786. for(new i = 0; i < MAX_HOUSES; i ++)
  14787. {
  14788. if(IsValidHouseID(i) && IsHouseOwner(playerid, i) && Houses[i][hID] == Players[playerid][pSpawnExtra])
  14789. {
  14790. houseid = i;
  14791. break;
  14792. }
  14793. }
  14794. if(houseid == -1)
  14795. {
  14796. SendToDefaultSpawn(playerid);
  14797. SendClientMessage(playerid, COLOR_RED, "The house you've chosen to spawn at doesn't exist - you spawned at the airport.");
  14798. }
  14799. else
  14800. {
  14801. SetFreezePos(playerid, Houses[houseid][hSpawn][0], Houses[houseid][hSpawn][1], Houses[houseid][hSpawn][2], 3000);
  14802. SetPlayerFacingAngle(playerid, Houses[houseid][hSpawn][3]);
  14803. SetPlayerInterior(playerid, Houses[houseid][hExterior]);
  14804. SetPlayerVirtualWorld(playerid, Houses[houseid][hExteriorWorld]);
  14805. }
  14806. }
  14807. case SPAWN_TYPE_COMPANY:
  14808. {
  14809. new companyid = -1;
  14810. for(new i = 0; i < MAX_COMPANIES; i ++)
  14811. {
  14812. if(IsValidCompanyID(i) && IsCompanyOwner(playerid, i) && Companies[i][cID] == Players[playerid][pSpawnExtra])
  14813. {
  14814. companyid = i;
  14815. break;
  14816. }
  14817. }
  14818. if(companyid == -1)
  14819. {
  14820. SendToDefaultSpawn(playerid);
  14821. SendClientMessage(playerid, COLOR_RED, "The company you've chosen to spawn at doesn't exist - you spawned at the airport.");
  14822. }
  14823. else
  14824. {
  14825. SetFreezePos(playerid, Companies[companyid][cSpawn][0], Companies[companyid][cSpawn][1], Companies[companyid][cSpawn][2], 3000);
  14826. SetPlayerFacingAngle(playerid, Companies[companyid][cInt][3]);
  14827. SetPlayerInterior(playerid, Companies[companyid][cExterior]);
  14828. SetPlayerVirtualWorld(playerid, Companies[companyid][cExteriorWorld]);
  14829. }
  14830. }
  14831. case SPAWN_TYPE_FACTION:
  14832. {
  14833. if(Players[playerid][pFaction] == INVALID_ID)
  14834. {
  14835. SendToDefaultSpawn(playerid);
  14836. SendClientMessage(playerid, COLOR_RED, "You are not apart of the faction you've chosen to spawn at - you spawned at the airport.");
  14837. }
  14838. else if(Factions[Players[playerid][pFaction]][fcSpawnX] == 0.0 && Factions[Players[playerid][pFaction]][fcSpawnY] == 0.0 && Factions[Players[playerid][pFaction]][fcSpawnZ] == 0.0)
  14839. {
  14840. SendToDefaultSpawn(playerid);
  14841. SendErrorMessage(playerid, "Your faction's spawn is not set up currently - you spawned at the airport.");
  14842. }
  14843. else
  14844. {
  14845. SetFreezePos(playerid, Factions[Players[playerid][pFaction]][fcSpawnX], Factions[Players[playerid][pFaction]][fcSpawnY], Factions[Players[playerid][pFaction]][fcSpawnZ], 3000);
  14846. SetPlayerFacingAngle(playerid, Factions[Players[playerid][pFaction]][fcSpawnA]);
  14847. SetPlayerInterior(playerid, Factions[Players[playerid][pFaction]][fcSpawnInt]);
  14848. SetPlayerVirtualWorld(playerid, Factions[Players[playerid][pFaction]][fcSpawnWorld]);
  14849. }
  14850. }
  14851. default:
  14852. {
  14853. SendToDefaultSpawn(playerid);
  14854. SendClientMessage(playerid, COLOR_RED, "Invalid spawn type - you spawned at the airport.");
  14855. }
  14856. }
  14857. }
  14858. SetCameraBehindPlayer(playerid);
  14859. SetPlayerHealth(playerid, Players[playerid][pHealth]);
  14860. SetPlayerValidArmor(playerid, Players[playerid][pArmor]);
  14861. }
  14862. SetWeaponsForPlayer(playerid);
  14863. }
  14864. AttachObjectsToPlayer(playerid);
  14865. ShowTimeForPlayer(playerid, Players[playerid][pShowTime]);
  14866. Players[playerid][pUnfairDeath] = 0;
  14867. return 1;
  14868. }
  14869. SpawnInsideHospital(playerid)
  14870. {
  14871. new
  14872. index = random(sizeof(g_HospitalSpawns));
  14873. DestroyDynamic3DTextLabel(Players[playerid][pInjuredText]);
  14874. if (Players[playerid][pHospital] == HOSPITAL_NONE) {
  14875. SetPlayerVirtualWorld(playerid, HOSPITAL_COUNTY_GENERAL);
  14876. } else {
  14877. SetPlayerVirtualWorld(playerid, Players[playerid][pHospital]);
  14878. }
  14879. Players[playerid][pInjuredText] = INVALID_3DTEXT_ID;
  14880. Players[playerid][pHospital] = HOSPITAL_NONE;
  14881. SetPlayerPosEx(playerid, g_HospitalSpawns[index][0], g_HospitalSpawns[index][1], g_HospitalSpawns[index][2], 180.0000, 8, Players[playerid][pHospital]);
  14882. ResetWeapons(playerid);
  14883. TogglePlayerControllable(playerid, 0);
  14884. ApplyAnimation(playerid, "CRACK", "crckidle4", 4.1, 1, 0, 0, 1, 0, 1);
  14885. SendInfoMessage(playerid, "You must spend some time in the hospital to recover.");
  14886. KillTimer(Timers[playerid][tHospital]);
  14887. Timers[playerid][tHospital] = SetTimerEx("PlayerRecover", 15000, false, "i", playerid);
  14888. return 1;
  14889. }
  14890. ResetSpawnInfo(playerid)
  14891. {
  14892. Players[playerid][pSpawn][0] = 0.0;
  14893. Players[playerid][pSpawn][1] = 0.0;
  14894. Players[playerid][pSpawn][2] = 0.0;
  14895. Players[playerid][pSpawn][3] = 0.0;
  14896. Players[playerid][pInterior] = 0;
  14897. Players[playerid][pWorld] = 0;
  14898. }
  14899. SpawnPlayerInJail(playerid)
  14900. {
  14901. switch (Players[playerid][pJailType])
  14902. {
  14903. case 1: // Admin jail
  14904. {
  14905. SetPlayerPosEx(playerid, 198.6772, 161.8068, 1003.0300, 180.0000, .interior = 3, .world = playerid);
  14906. }
  14907. case 2: // IC prison
  14908. {
  14909. new cell = randomEx(1, 13);
  14910. switch(cell)
  14911. {
  14912. case 1:
  14913. {
  14914. SetFreezePos(playerid, 2592.0857,-1504.0573,-48.9141, 3000);
  14915. SetPlayerInterior(playerid, GetPrisonInterior());
  14916. SetPlayerVirtualWorld(playerid, GetPrisonVirtualWorld());
  14917. }
  14918. case 2:
  14919. {
  14920. SetFreezePos(playerid, 2592.1113,-1506.9465,-48.9141, 3000);
  14921. SetPlayerInterior(playerid, GetPrisonInterior());
  14922. SetPlayerVirtualWorld(playerid, GetPrisonVirtualWorld());
  14923. }
  14924. case 3:
  14925. {
  14926. SetFreezePos(playerid, 2592.0310,-1511.2773,-48.9141, 3000);
  14927. SetPlayerInterior(playerid, GetPrisonInterior());
  14928. SetPlayerVirtualWorld(playerid, GetPrisonVirtualWorld());
  14929. }
  14930. case 4:
  14931. {
  14932. SetFreezePos(playerid, 2591.2156,-1514.5721,-48.9141, 3000);
  14933. SetPlayerInterior(playerid, GetPrisonInterior());
  14934. SetPlayerVirtualWorld(playerid, GetPrisonVirtualWorld());
  14935. }
  14936. case 5:
  14937. {
  14938. SetFreezePos(playerid, 2592.0066,-1518.1298,-48.9141, 3000);
  14939. SetPlayerInterior(playerid, GetPrisonInterior());
  14940. SetPlayerVirtualWorld(playerid, GetPrisonVirtualWorld());
  14941. }
  14942. case 6:
  14943. {
  14944. SetFreezePos(playerid, 2587.5442,-1527.0267,-48.9141, 3000);
  14945. SetPlayerInterior(playerid, GetPrisonInterior());
  14946. SetPlayerVirtualWorld(playerid, GetPrisonVirtualWorld());
  14947. }
  14948. case 7:
  14949. {
  14950. SetFreezePos(playerid, 2583.5703,-1526.7782,-48.9141, 3000);
  14951. SetPlayerInterior(playerid, GetPrisonInterior());
  14952. SetPlayerVirtualWorld(playerid, GetPrisonVirtualWorld());
  14953. }
  14954. case 8:
  14955. {
  14956. SetFreezePos(playerid, 2580.3545,-1526.7935,-48.9141, 3000);
  14957. SetPlayerInterior(playerid, GetPrisonInterior());
  14958. SetPlayerVirtualWorld(playerid, GetPrisonVirtualWorld());
  14959. }
  14960. case 9:
  14961. {
  14962. SetFreezePos(playerid, 2574.7024,-1516.4629,-48.9141, 3000);
  14963. SetPlayerInterior(playerid, GetPrisonInterior());
  14964. SetPlayerVirtualWorld(playerid, GetPrisonVirtualWorld());
  14965. }
  14966. case 10:
  14967. {
  14968. SetFreezePos(playerid, 2573.2253,-1512.4327,-48.9141, 3000);
  14969. SetPlayerInterior(playerid, GetPrisonInterior());
  14970. SetPlayerVirtualWorld(playerid, GetPrisonVirtualWorld());
  14971. }
  14972. case 11:
  14973. {
  14974. SetFreezePos(playerid, 2573.2837,-1509.4783,-48.9141, 3000);
  14975. SetPlayerInterior(playerid, GetPrisonInterior());
  14976. SetPlayerVirtualWorld(playerid, GetPrisonVirtualWorld());
  14977. }
  14978. case 12:
  14979. {
  14980. SetFreezePos(playerid, 2573.1831,-1505.6473,-48.9141, 3000);
  14981. SetPlayerInterior(playerid, GetPrisonInterior());
  14982. SetPlayerVirtualWorld(playerid, GetPrisonVirtualWorld());
  14983. }
  14984. case 13:
  14985. {
  14986. SetFreezePos(playerid, 2573.3062,-1502.3737,-48.9141, 3000);
  14987. SetPlayerInterior(playerid, GetPrisonInterior());
  14988. SetPlayerVirtualWorld(playerid, GetPrisonVirtualWorld());
  14989. }
  14990. }
  14991. }
  14992. }
  14993. ResetWeapons(playerid);
  14994. RemoveAttachedObjects(playerid);
  14995. return 1;
  14996. }
  14997. SpectatePlayer(playerid, targetid)
  14998. {
  14999. if (targetid == INVALID_PLAYER_ID)
  15000. {
  15001. TogglePlayerSpectating(playerid, false);
  15002. SpawnPlayer(playerid);
  15003. }
  15004. else
  15005. {
  15006. TogglePlayerSpectating(playerid, true);
  15007. SetPlayerInterior(playerid, GetPlayerInterior(targetid));
  15008. SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(targetid));
  15009. if (IsPlayerInAnyVehicle(targetid))
  15010. {
  15011. PlayerSpectateVehicle(playerid, GetPlayerVehicleID(targetid));
  15012. }
  15013. else
  15014. {
  15015. PlayerSpectatePlayer(playerid, targetid);
  15016. }
  15017. }
  15018. Players[playerid][pSpectate] = targetid;
  15019. return 1;
  15020. }
  15021. INI_GetInteger(File:file, name[])
  15022. {
  15023. new
  15024. retString[16];
  15025. INI_GetValue(file, name, retString, sizeof(retString));
  15026. return strval(retString);
  15027. }
  15028. INI_WriteInt(File:file, name[], value)
  15029. {
  15030. new
  15031. writeString[64];
  15032. format(writeString, sizeof(writeString), "%s = %i\r\n", name, value);
  15033. return fwrite(file, writeString);
  15034. }
  15035. INI_WriteValue(File:file, name[], value[])
  15036. {
  15037. new
  15038. writeString[128];
  15039. format(writeString, sizeof(writeString), "%s = %s\r\n", name, value);
  15040. return fwrite(file, writeString);
  15041. }
  15042. INI_GetValue(File:file, name[], dest[], size = sizeof(dest))
  15043. {
  15044. if (file)
  15045. {
  15046. new
  15047. str[128],
  15048. pos;
  15049. fseek(file, 0, seek_start);
  15050. while (fread(file, str, sizeof(str)))
  15051. {
  15052. if (strfind(str, name, false) == 0)
  15053. {
  15054. if (str[(pos = strlen(name))] == ' ')
  15055. strmid(dest, str, pos + 3, strlen(str), size);
  15056. else
  15057. strmid(dest, str, pos + 1, strlen(str), size);
  15058. if ((pos = strfind(dest, "\r")) != -1)
  15059. dest[pos] = '\0';
  15060. if ((pos = strfind(dest, "\n")) != -1)
  15061. dest[pos] = '\0';
  15062. }
  15063. }
  15064. }
  15065. return 1;
  15066. }
  15067. FormatNumber(number, money = true)
  15068. {
  15069. new
  15070. value[32],
  15071. length;
  15072. format(value, sizeof(value), "%i", (number < 0) ? (-number) : (number));
  15073. length = strlen(value);
  15074. if (length > 3)
  15075. {
  15076. for (new l = 0, i = length; --i >= 0; l ++)
  15077. {
  15078. if ((l % 3 == 0) && l > 0)
  15079. strins(value, ",", i + 1);
  15080. }
  15081. }
  15082. if (money)
  15083. strins(value, "$", 0);
  15084. if (number < 0)
  15085. strins(value, "-", 0);
  15086. return value;
  15087. }
  15088. GetItemDropOffset(name[], &Float:z, &Float:rx, &Float:ry)
  15089. {
  15090. new
  15091. model = GetItemInformation(name, ITEM_INFO_MODEL);
  15092. if (IsWeaponModel(model))
  15093. {
  15094. z = 1.0;
  15095. rx = 93.0;
  15096. ry = 90.0;
  15097. }
  15098. else
  15099. {
  15100. z = 0.9;
  15101. rx = 0.0;
  15102. ry = 0.0;
  15103. }
  15104. for (new i = 0; i < sizeof(g_GroundOffsets); i ++)
  15105. {
  15106. if (!strcmp(g_GroundOffsets[i][e_Item], name))
  15107. {
  15108. z = g_GroundOffsets[i][e_OffsetZ];
  15109. rx = g_GroundOffsets[i][e_OffsetRX];
  15110. ry = g_GroundOffsets[i][e_OffsetRY];
  15111. }
  15112. }
  15113. return 1;
  15114. }
  15115. RemoveAttachedObjects(playerid)
  15116. {
  15117. for (new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i ++)
  15118. {
  15119. if (IsPlayerAttachedObjectSlotUsed(playerid, i))
  15120. {
  15121. RemovePlayerAttachedObject(playerid, i);
  15122. }
  15123. }
  15124. return 1;
  15125. }
  15126. UpdateAttachedObjects(playerid)
  15127. {
  15128. UpdateWeaponHolster(playerid);
  15129. }
  15130. GetAccessoryListStart(category)
  15131. {
  15132. for (new i = 0; i < sizeof(g_AccessoryList); i ++)
  15133. {
  15134. if (g_AccessoryList[i][e_AccessoryCategory] == category)
  15135. {
  15136. return i;
  15137. }
  15138. }
  15139. return INVALID_ID;
  15140. }
  15141. GetAccessoryListEnd(category)
  15142. {
  15143. new
  15144. start = GetAccessoryListStart(category);
  15145. for (new i = start; i < sizeof(g_AccessoryList); i ++)
  15146. {
  15147. if (i + 1 == sizeof(g_AccessoryList) || g_AccessoryList[i + 1][e_AccessoryCategory] != category)
  15148. {
  15149. return i;
  15150. }
  15151. }
  15152. return INVALID_ID;
  15153. }
  15154. HideAccessoryPreviewer(playerid)
  15155. {
  15156. Players[playerid][pAccessoryMenu] = 0;
  15157. HidePlayerTextDraws(playerid, 63, 69);
  15158. CancelSelectTextDraw(playerid);
  15159. }
  15160. UpdateAccessoryPreviewer(playerid)
  15161. {
  15162. new
  15163. index = Players[playerid][pPreviewIndex];
  15164. PlayerTextDrawSetPreviewModel(playerid, Players[playerid][pText][66], g_AccessoryList[index][e_AccessoryModel]);
  15165. PlayerTextDrawHide(playerid, Players[playerid][pText][66]);
  15166. PlayerTextDrawShow(playerid, Players[playerid][pText][66]);
  15167. }
  15168. PreviewAccessory(playerid, index)
  15169. {
  15170. switch (g_AccessoryList[index][e_AccessoryCategory])
  15171. {
  15172. case ACCESSORY_GLASSES:
  15173. {
  15174. SetPlayerAttachedObject(playerid, ATTACHED_SLOT_MISC, g_AccessoryList[index][e_AccessoryModel], 2, 0.102999, 0.041000, 0.000999, 0.000000, 88.500030, 86.300010);
  15175. }
  15176. case ACCESSORY_BANDANAS:
  15177. {
  15178. /*if (g_AccessoryList[index][e_AccessoryModel] == 19521)
  15179. {
  15180. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  15181. SendErrorMessage(playerid, "You are not allowed to purchase this item.");
  15182. }*/
  15183. SetPlayerAttachedObject(playerid, ATTACHED_SLOT_MISC, g_AccessoryList[index][e_AccessoryModel], 2, 0.078534, 0.041857, -0.001727, 268.970458, 1.533374, 269.223754);
  15184. }
  15185. case ACCESSORY_HATS:
  15186. {
  15187. SetPlayerAttachedObject(playerid, ATTACHED_SLOT_MISC, g_AccessoryList[index][e_AccessoryModel], 2, 0.181000, -0.015000, 0.000000, 0.000000, 0.000000, 0.000000);
  15188. }
  15189. case ACCESSORY_BAGS:
  15190. {
  15191. SetPlayerAttachedObject(playerid, ATTACHED_SLOT_MISC, g_AccessoryList[index][e_AccessoryModel], 6, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  15192. }
  15193. }
  15194. EditAttachedObjectEx(playerid, EDIT_TYPE_PREVIEW, ATTACHED_SLOT_MISC);
  15195. SendInfoMessage(playerid, "Click the disk icon to save changes or press ESC to cancel.");
  15196. }
  15197. ShowAccessoryPreviewer(playerid, category)
  15198. {
  15199. new
  15200. start = GetAccessoryListStart(category);
  15201. Players[playerid][pPreviewIndex] = start;
  15202. Players[playerid][pAccessoryMenu] = 1;
  15203. Players[playerid][pCategory] = category;
  15204. PlayerTextDrawSetString(playerid, Players[playerid][pText][65], "Accessories");
  15205. PlayerTextDrawSetPreviewModel(playerid, Players[playerid][pText][66], g_AccessoryList[start][e_AccessoryModel]);
  15206. switch (category)
  15207. {
  15208. case ACCESSORY_GLASSES:
  15209. {
  15210. PlayerTextDrawSetPreviewRot(playerid, Players[playerid][pText][66], 0.0, 0.0, 90.0);
  15211. }
  15212. case ACCESSORY_BANDANAS:
  15213. {
  15214. PlayerTextDrawSetPreviewRot(playerid, Players[playerid][pText][66], 0.0, 0.0, -90.0);
  15215. }
  15216. case ACCESSORY_HATS:
  15217. {
  15218. PlayerTextDrawSetPreviewRot(playerid, Players[playerid][pText][66], 0.0, -90.0, 0.0);
  15219. }
  15220. case ACCESSORY_BAGS:
  15221. {
  15222. PlayerTextDrawSetPreviewRot(playerid, Players[playerid][pText][66], 0.0, 0.0, 0.0);
  15223. }
  15224. }
  15225. ShowPlayerTextDraws(playerid, 63, 69);
  15226. SelectTextDrawEx(playerid, -1);
  15227. return 1;
  15228. }
  15229. GetAccessoryNameFromModel(modelid)
  15230. {
  15231. new
  15232. name[32] = "Unknown";
  15233. for (new i = 0; i < sizeof(g_AccessoryList); i ++)
  15234. {
  15235. if (g_AccessoryList[i][e_AccessoryModel] == modelid)
  15236. {
  15237. strcpy(name, g_AccessoryList[i][e_AccessoryName]);
  15238. break;
  15239. }
  15240. }
  15241. return name;
  15242. }
  15243. GetAccessoryName(playerid, id)
  15244. {
  15245. new
  15246. name[32] = "Unknown";
  15247. if(isnull(Accessories[playerid][id][aName]) || !strcmp(Accessories[playerid][id][aName], "None", true))
  15248. {
  15249. for (new i = 0; i < sizeof(g_AccessoryList); i ++)
  15250. {
  15251. if (g_AccessoryList[i][e_AccessoryModel] == Accessories[playerid][id][aModel])
  15252. {
  15253. strcpy(name, g_AccessoryList[i][e_AccessoryName]);
  15254. break;
  15255. }
  15256. }
  15257. }
  15258. else
  15259. {
  15260. strcpy(name, Accessories[playerid][id][aName]);
  15261. }
  15262. return name;
  15263. }
  15264. ListAccessories(playerid)
  15265. {
  15266. new
  15267. index = 0;
  15268. gListString[0] = 0;
  15269. for (new i = 0; i < MAX_ACCESSORIES; i ++)
  15270. {
  15271. if (Accessories[playerid][i][aExists])
  15272. {
  15273. if (Accessories[playerid][i][aAttached])
  15274. format(gListString, sizeof(gListString), "%s\n%s (Attached) (model ID: %i)", gListString, GetAccessoryName(playerid, i), Accessories[playerid][i][aModel]);
  15275. else
  15276. format(gListString, sizeof(gListString), "%s\n%s (model ID: %i)", gListString, GetAccessoryName(playerid, i), Accessories[playerid][i][aModel]);
  15277. gListedItems[playerid][index++] = i;
  15278. }
  15279. }
  15280. if (index > 0)
  15281. {
  15282. return Dialog_Show(playerid, Accessories, DIALOG_STYLE_LIST, "{FFFFFF}My accessories", gListString, "Select", "Cancel");
  15283. }
  15284. return 0;
  15285. }
  15286. DeleteAccessory(playerid, id)
  15287. {
  15288. if (Accessories[playerid][id][aExists])
  15289. {
  15290. RemovePlayerAttachedObject(playerid, id);
  15291. format(gExecute, sizeof(gExecute), "DELETE FROM rp_accessories WHERE aID = %i", Accessories[playerid][id][aID]);
  15292. mysql_tquery(gConnection, gExecute);
  15293. Accessories[playerid][id][aExists] = 0;
  15294. Accessories[playerid][id][aID] = 0;
  15295. }
  15296. return 1;
  15297. }
  15298. AddAccessory(playerid, name[], modelid, bone, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, Float:sx, Float:sy, Float:sz)
  15299. {
  15300. new
  15301. id = GetNextAccessoryID(playerid);
  15302. if (id != INVALID_ID)
  15303. {
  15304. strcpy(Accessories[playerid][id][aName], name, 32);
  15305. Accessories[playerid][id][aExists] = 1;
  15306. Accessories[playerid][id][aAttached] = 0;
  15307. Accessories[playerid][id][aModel] = modelid;
  15308. Accessories[playerid][id][aBone] = bone;
  15309. Accessories[playerid][id][aOffset][0] = x;
  15310. Accessories[playerid][id][aOffset][1] = y;
  15311. Accessories[playerid][id][aOffset][2] = z;
  15312. Accessories[playerid][id][aOffset][3] = rx;
  15313. Accessories[playerid][id][aOffset][4] = ry;
  15314. Accessories[playerid][id][aOffset][5] = rz;
  15315. Accessories[playerid][id][aOffset][6] = sx;
  15316. Accessories[playerid][id][aOffset][7] = sy;
  15317. Accessories[playerid][id][aOffset][8] = sz;
  15318. AttachObjectsToPlayer(playerid);
  15319. format(gExecute, sizeof(gExecute), "INSERT INTO rp_accessories (ID) VALUES(%i)", Players[playerid][pID]);
  15320. mysql_tquery(gConnection, gExecute, "OnAccessoryAdded", "ii", playerid, id);
  15321. }
  15322. return id;
  15323. }
  15324. SaveAccessory(playerid, id)
  15325. {
  15326. static
  15327. queryString[512];
  15328. if (!Accessories[playerid][id][aExists]) return 0;
  15329. mysql_format(gConnection, queryString, sizeof(queryString), "UPDATE rp_accessories SET aName = '%e', aModel = %i, aBone = %i, aX = '%f', aY = '%f', aZ = '%f', aRX = '%f', aRY = '%f', aRZ = '%f', aSX = '%f', aSY = '%f', aSZ = '%f' WHERE aID = %i",
  15330. Accessories[playerid][id][aName],
  15331. Accessories[playerid][id][aModel],
  15332. Accessories[playerid][id][aBone],
  15333. Accessories[playerid][id][aOffset][0],
  15334. Accessories[playerid][id][aOffset][1],
  15335. Accessories[playerid][id][aOffset][2],
  15336. Accessories[playerid][id][aOffset][3],
  15337. Accessories[playerid][id][aOffset][4],
  15338. Accessories[playerid][id][aOffset][5],
  15339. Accessories[playerid][id][aOffset][6],
  15340. Accessories[playerid][id][aOffset][7],
  15341. Accessories[playerid][id][aOffset][8],
  15342. Accessories[playerid][id][aID]
  15343. );
  15344. return mysql_tquery(gConnection, queryString);
  15345. }
  15346. AttachObjectsToPlayer(playerid)
  15347. {
  15348. for (new i = 0; i < MAX_ACCESSORIES; i ++)
  15349. {
  15350. if (Accessories[playerid][i][aExists])
  15351. {
  15352. if (!Accessories[playerid][i][aAttached])
  15353. {
  15354. RemovePlayerAttachedObject(playerid, i);
  15355. }
  15356. else
  15357. {
  15358. SetPlayerAttachedObject(playerid, i, Accessories[playerid][i][aModel], Accessories[playerid][i][aBone],
  15359. Accessories[playerid][i][aOffset][0],
  15360. Accessories[playerid][i][aOffset][1],
  15361. Accessories[playerid][i][aOffset][2],
  15362. Accessories[playerid][i][aOffset][3],
  15363. Accessories[playerid][i][aOffset][4],
  15364. Accessories[playerid][i][aOffset][5],
  15365. Accessories[playerid][i][aOffset][6],
  15366. Accessories[playerid][i][aOffset][7],
  15367. Accessories[playerid][i][aOffset][8]
  15368. );
  15369. }
  15370. }
  15371. }
  15372. return 1;
  15373. }
  15374. GetWeaponIDFromModel(model)
  15375. {
  15376. for (new i = 0; i < sizeof(g_WeaponInfo); i ++)
  15377. {
  15378. if (g_WeaponInfo[i][e_WeaponModel] == model)
  15379. {
  15380. return i;
  15381. }
  15382. }
  15383. return 0;
  15384. }
  15385. /*
  15386. {"Steroids", 2891, 1, true, true, true},
  15387. {"Heroin", 2891, 1, true, true, true},
  15388. {"LSD", 2891, 1, true, true, true},
  15389. {"Ecstasy", 2891, 1, true, true, true},
  15390. {"Marijuana", 2891, 1, true, true, true},
  15391. {"Crack", 2891, 1, true, true, true},
  15392. {"Cocaine", 2891, 1, true, true, true},
  15393. {"Methamphetamine", 2891, 1, true, true, true},
  15394. {"PCP", 2891, 1, true, true, true},
  15395. */
  15396. GetPackagePrice(type)
  15397. {
  15398. if (type == PACKAGE_TYPE_MELEE)
  15399. return 3000;
  15400. else if (type == PACKAGE_TYPE_PISTOLS)
  15401. return 22500;
  15402. else if (type == PACKAGE_TYPE_SHOTGUNS)
  15403. return 21000;
  15404. else if (type == PACKAGE_TYPE_SMGS)
  15405. return 10500;
  15406. else if (type == PACKAGE_TYPE_RIFLES)
  15407. return 42000;
  15408. else if (type == PACKAGE_TYPE_EXPLOSIVES)
  15409. return 150000;
  15410. else if (type == PACKAGE_TYPE_STEROIDS)
  15411. return 2000;
  15412. else if (type == PACKAGE_TYPE_HEROIN)
  15413. return 6100;
  15414. else if (type == PACKAGE_TYPE_LSD)
  15415. return 4100;
  15416. else if (type == PACKAGE_TYPE_ECSTASY)
  15417. return 4100;
  15418. else if (type == PACKAGE_TYPE_MARIJUANA)
  15419. return 4100;
  15420. else if (type == PACKAGE_TYPE_CRACK)
  15421. return 4100;
  15422. else if (type == PACKAGE_TYPE_COCAINE)
  15423. return 4100;
  15424. else if (type == PACKAGE_TYPE_METH)
  15425. return 4100;
  15426. else if (type == PACKAGE_TYPE_PCP)
  15427. return 4100;
  15428. else if (type == PACKAGE_TYPE_AMMO_1)
  15429. return 4100;
  15430. else if (type == PACKAGE_TYPE_AMMO_2)
  15431. return 4000;
  15432. else if (type == PACKAGE_TYPE_AMMO_3)
  15433. return 2500;
  15434. else if (type == PACKAGE_TYPE_AMMO_4)
  15435. return 5000;
  15436. else if (type == PACKAGE_TYPE_AMMO_5)
  15437. return 5000;
  15438. else if (type == PACKAGE_TYPE_AMMO_6)
  15439. return 5000;
  15440. return 0;
  15441. }
  15442. IsWeaponPackage(const item[])
  15443. {
  15444. if (!strcmp(item, "Melee Package")) return 1;
  15445. else if (!strcmp(item, "Pistol Package")) return 1;
  15446. else if (!strcmp(item, "Shotgun Package")) return 1;
  15447. else if (!strcmp(item, "SMG Package")) return 1;
  15448. else if (!strcmp(item, "Rifle Package")) return 1;
  15449. return 0;
  15450. }
  15451. GetItemInformation(const item[], type)
  15452. {
  15453. for (new i = 0; i < sizeof(g_ItemList); i ++)
  15454. {
  15455. if (!strcmp(g_ItemList[i][e_ItemName], item))
  15456. {
  15457. if (type == ITEM_INFO_MODEL)
  15458. return g_ItemList[i][e_ItemModel];
  15459. else if (type == ITEM_INFO_WEIGHT)
  15460. return g_ItemList[i][e_ItemWeight];
  15461. else if (type == ITEM_INFO_VALUE)
  15462. return g_ItemList[i][e_ItemValue];
  15463. else if (type == ITEM_INFO_WEAPON_ID)
  15464. {
  15465. new weaponid = GetWeaponIDFromModel(g_ItemList[i][e_ItemModel]);
  15466. if (weaponid == 43 || weaponid == 46) return 0;
  15467. return weaponid;
  15468. }
  15469. else if (type == ITEM_INFO_ILLEGAL)
  15470. return g_ItemList[i][e_ItemIllegal];
  15471. else if (type == ITEM_INFO_STACKABLE)
  15472. return g_ItemList[i][e_ItemStackable];
  15473. else if (type == ITEM_INFO_DRUG)
  15474. return g_ItemList[i][e_ItemModel] == 2891;
  15475. }
  15476. }
  15477. return 0;
  15478. }
  15479. ShowTimeForPlayer(playerid, show)
  15480. {
  15481. if (show)
  15482. {
  15483. TextDrawShowForPlayer(playerid, gGlobalTextdraws[1]);
  15484. }
  15485. else
  15486. {
  15487. TextDrawHideForPlayer(playerid, gGlobalTextdraws[1]);
  15488. }
  15489. }
  15490. ShowSpeedometer(playerid, show)
  15491. {
  15492. if (show)
  15493. {
  15494. PlayerTextDrawShow(playerid, Players[playerid][pText][26]);
  15495. }
  15496. else
  15497. {
  15498. PlayerTextDrawHide(playerid, Players[playerid][pText][26]);
  15499. }
  15500. }
  15501. ShowFuelGauge(playerid, show)
  15502. {
  15503. if (show)
  15504. {
  15505. ShowPlayerTextDraws(playerid, 27, 32);
  15506. if (IsPlayerInAnyVehicle(playerid) && IsPoweredVehicle(GetPlayerVehicleID(playerid)))
  15507. {
  15508. UpdateFuelGauge(GetPlayerVehicleID(playerid));
  15509. }
  15510. }
  15511. else
  15512. {
  15513. HidePlayerTextDraws(playerid, 27, 32);
  15514. }
  15515. return 1;
  15516. }
  15517. GivePlayerHealth(playerid, Float:amount)
  15518. {
  15519. new Float:health;
  15520. GetPlayerHealth(playerid, health);
  15521. health += amount;
  15522. if (health > 100.0) {
  15523. SetPlayerHealth(playerid, 100.0);
  15524. } else {
  15525. SetPlayerHealth(playerid, health);
  15526. }
  15527. }
  15528. AddFitnessForPlayer(playerid)
  15529. {
  15530. if (Players[playerid][pFitness] < 100)
  15531. {
  15532. Players[playerid][pFitness]++;
  15533. }
  15534. }
  15535. Float:GetVehicleKMH(vehicleid)
  15536. {
  15537. new
  15538. Float:fX,
  15539. Float:fY,
  15540. Float:fZ;
  15541. if (GetVehicleVelocity(vehicleid, fX, fY, fZ))
  15542. {
  15543. return floatsqroot((fX * fX) + (fY * fY) + (fZ * fZ)) * 181.5;
  15544. }
  15545. return 0.0;
  15546. }
  15547. Float:GetVehicleMPH(vehicleid)
  15548. {
  15549. new
  15550. Float:fX,
  15551. Float:fY,
  15552. Float:fZ;
  15553. if (GetVehicleVelocity(vehicleid, fX, fY, fZ))
  15554. {
  15555. return floatsqroot( fX*fX + fY*fY + fZ*fZ ) * 180 / 1.609344; // Mph
  15556. }
  15557. return 0.0;
  15558. }
  15559. SetAlarmStatus(vehicleid, enable)
  15560. {
  15561. new engine, lights, alarm, doors, bonnet, boot, objective;
  15562. GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  15563. SetVehicleParamsEx(vehicleid, engine, lights, enable, doors, bonnet, boot, objective);
  15564. }
  15565. SetEngineStatus(vehicleid, enable)
  15566. {
  15567. new engine, lights, alarm, doors, bonnet, boot, objective;
  15568. GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  15569. SetVehicleParamsEx(vehicleid, enable, lights, alarm, doors, bonnet, boot, objective);
  15570. }
  15571. GetEngineStatus(vehicleid)
  15572. {
  15573. new engine, lights, alarm, doors, bonnet, boot, objective;
  15574. GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  15575. return (engine == VEHICLE_PARAMS_ON);
  15576. }
  15577. SetLightsStatus(vehicleid, enable)
  15578. {
  15579. new engine, lights, alarm, doors, bonnet, boot, objective;
  15580. GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  15581. SetVehicleParamsEx(vehicleid, engine, enable, alarm, doors, bonnet, boot, objective);
  15582. }
  15583. GetLightsStatus(vehicleid)
  15584. {
  15585. new engine, lights, alarm, doors, bonnet, boot, objective;
  15586. GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  15587. return (lights == VEHICLE_PARAMS_ON);
  15588. }
  15589. SetLockStatus(vehicleid, enable)
  15590. {
  15591. new engine, lights, alarm, doors, bonnet, boot, objective;
  15592. GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  15593. SetVehicleParamsEx(vehicleid, engine, lights, alarm, enable, bonnet, boot, objective);
  15594. }
  15595. SetHoodStatus(vehicleid, enable)
  15596. {
  15597. new engine, lights, alarm, doors, bonnet, boot, objective;
  15598. GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  15599. SetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, enable, boot, objective);
  15600. }
  15601. GetHoodStatus(vehicleid)
  15602. {
  15603. new engine, lights, alarm, doors, bonnet, boot, objective;
  15604. GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  15605. return (bonnet == VEHICLE_PARAMS_ON);
  15606. }
  15607. SetBootStatus(vehicleid, enable)
  15608. {
  15609. new engine, lights, alarm, doors, bonnet, boot, objective;
  15610. GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  15611. SetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, enable, objective);
  15612. }
  15613. GetBootStatus(vehicleid)
  15614. {
  15615. new engine, lights, alarm, doors, bonnet, boot, objective;
  15616. GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  15617. return (boot == VEHICLE_PARAMS_ON);
  15618. }
  15619. /*GetLockStatus(vehicleid)
  15620. {
  15621. new engine, lights, alarm, doors, bonnet, boot, objective;
  15622. GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  15623. return (doors == VEHICLE_PARAMS_ON);
  15624. }*/
  15625. EngineCaller(playerid) // Code for starting the vehicle's engine.
  15626. {
  15627. new vehicleid = GetPlayerVehicleID(playerid);
  15628. if (IsPoweredVehicle(vehicleid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  15629. {
  15630. if (GetEngineStatus(vehicleid))
  15631. {
  15632. SetEngineStatus(vehicleid, 0);
  15633. SendInfoMessage(playerid, "You have turned off the engine.");
  15634. }
  15635. else
  15636. {
  15637. new id = GetVehicleID(vehicleid);
  15638. if (!VehicleInformation[vehicleid][vFuel])
  15639. {
  15640. SendErrorMessage(playerid, "This vehicle cannot start as it has no fuel.");
  15641. }
  15642. else if (GetVehicleHealthEx(vehicleid) <= 300.0)
  15643. {
  15644. SendErrorMessage(playerid, "This vehicle is totalled and can't be started.");
  15645. }
  15646. else if(!GetVehicleKeys(playerid, vehicleid))
  15647. {
  15648. if(IsRentalCar(vehicleid))
  15649. {
  15650. return SendErrorMessage(playerid, "You can't hotwire a rental vehicle.");
  15651. }
  15652. if (Players[playerid][pHotwire] == vehicleid)
  15653. {
  15654. Players[playerid][pHotwire] = INVALID_VEHICLE_ID;
  15655. Players[playerid][pHotwireTime] = 0;
  15656. SendInfoMessage(playerid, "You have stopped hotwiring this vehicle.");
  15657. HideFooterText(playerid);
  15658. }
  15659. else
  15660. {
  15661. ShowActionBubble(playerid, "* %s takes off the ignition cover and begins hotwiring the vehicle.", ReturnNameEx(playerid));
  15662. if (IsValidVehicleID(id) && Vehicles[id][vAlarm])
  15663. {
  15664. SetAlarmStatus(vehicleid, true);
  15665. foreach (new i : Player)
  15666. {
  15667. if (IsVehicleOwner(i, id))
  15668. {
  15669. SendFormatMessage(i, COLOR_YELLOW, "* Text from OnStar: The alarm has been activated on your %s with the license plate '%s'.", GetVehicleModelName(Vehicles[id][vModel]), Vehicles[id][vPlate]);
  15670. }
  15671. if (GetPlayerFactionType(i) == FACTION_LEO)
  15672. {
  15673. new
  15674. Float:x,
  15675. Float:y,
  15676. Float:z;
  15677. GetVehiclePos( Vehicles[id][vVehicle] , x, y, z);
  15678. SendFormatMessage(i, COLOR_GREEN, "* [DISPATCH] Vehicle Alarm has been Activated any available units in the area please respond.");
  15679. SendFormatMessage(i, COLOR_GREEN, "* [DISPATCH] %s located in %s, plate: '%s' *", GetVehicleModelName(Vehicles[id][vModel]), GetZoneName(x, y, z), Vehicles[id][vPlate]);
  15680. //break;
  15681. }
  15682. }
  15683. }
  15684. Players[playerid][pHotwire] = vehicleid;
  15685. Players[playerid][pHotwireTime] = 90;
  15686. ShowFooterText(playerid, "~w~Hotwiring... 90 seconds remaining.", 1500);
  15687. SendInfoMessage(playerid, "You are attempting to hotwire this vehicle...");
  15688. }
  15689. }
  15690. else
  15691. {
  15692. if (!Players[playerid][pStartEngine])
  15693. {
  15694. Players[playerid][pStartEngine] = 1;
  15695. SetTimerEx("StartEngine", 1000, false, "ii", playerid, vehicleid);
  15696. SendInfoMessage(playerid, "You are starting the engine of the vehicle...");
  15697. }
  15698. }
  15699. }
  15700. }
  15701. return 1;
  15702. }
  15703. IsPlayerDrivingVehicle(playerid, vehicleid)
  15704. {
  15705. return (GetPlayerState(playerid) == PLAYER_STATE_DRIVER && GetPlayerVehicleID(playerid) == vehicleid);
  15706. }
  15707. IsPlayerInTaxi(playerid)
  15708. {
  15709. if(!Players[playerid][pTaxiDuty]) return 1;
  15710. new modelid = GetVehicleModel(GetPlayerVehicleID(playerid));
  15711. if(modelid == 420) return true; //Taxi
  15712. if(modelid == 438) return true; //Cabbie
  15713. if(modelid == 426) return true; //Premier
  15714. if(modelid == 418) return true; //Moonbeam
  15715. if(modelid == 445) return true; //Admiral
  15716. return false;
  15717. }
  15718. stock IsSuitableTaxiCar(vehicleid)
  15719. {
  15720. if(vehicleid == 0) return false;
  15721. new modelid = GetVehicleModel(vehicleid);
  15722. if(modelid == 420) return true; //Taxi
  15723. if(modelid == 438) return true; //Cabbie
  15724. if(modelid == 426) return true; //Premier
  15725. if(modelid == 418) return true; //Moonbeam
  15726. if(modelid == 445) return true; //Admiral
  15727. return false;
  15728. }
  15729. stock CreateVehicleObject(objectid, vehicleid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
  15730. {
  15731. new object = CreateDynamicObject(objectid, 0, 0, 0, 0, 0, 0);
  15732. AttachDynamicObjectToVehicle(object, vehicleid, x, y, z, rx, ry, rz);
  15733. return object;
  15734. }
  15735. IsTransportVehicle(vehicleid)
  15736. {
  15737. switch (GetVehicleModel(vehicleid))
  15738. {
  15739. case 413, 414, 418, 422, 440, 459, 478, 482, 498, 499, 543, 554, 609:
  15740. {
  15741. return 1;
  15742. }
  15743. }
  15744. return 0;
  15745. }
  15746. VehicleHasDoors(vehicleid)
  15747. {
  15748. switch (GetVehicleModel(vehicleid))
  15749. {
  15750. case 400..424, 426..429, 431..440, 442..445, 451, 455, 456, 458, 459, 466, 467, 470, 474, 475, 477..480, 482, 483, 486, 489, 490..492, 494..496, 498..500, 502..508, 514..518, 524..529, 533..536, 540..547, 549..552, 554..562, 565..568, 573, 575, 576, 578..580, 582, 585, 587..589, 596..605, 609:
  15751. return 1;
  15752. }
  15753. return 0;
  15754. }
  15755. IsValidNOSVehicle(vehicleid)
  15756. {
  15757. if (!IsValidVehicle(vehicleid) || IsAircraftVehicle(vehicleid))
  15758. return 0;
  15759. switch (GetVehicleModel(vehicleid))
  15760. {
  15761. case 581, 523, 462, 521, 463, 522, 461, 448, 468, 586, 509, 481, 510, 472, 473, 493, 595, 484, 430, 453, 452, 446, 454, 590, 569, 537, 538, 570, 449:
  15762. return 0;
  15763. }
  15764. return 1;
  15765. }
  15766. IsAircraftVehicle(vehicleid)
  15767. {
  15768. switch (GetVehicleModel(vehicleid))
  15769. {
  15770. case 417, 425, 447, 460, 464, 469, 476, 487, 488, 497, 501, 511..513, 519, 520, 548, 553, 563, 577, 592, 593:
  15771. return 1;
  15772. }
  15773. return 0;
  15774. }
  15775. IsWindowedVehicle(vehicleid)
  15776. {
  15777. new
  15778. model = GetVehicleModel(vehicleid);
  15779. if (400 <= model <= 611)
  15780. {
  15781. static const g_WindowInfo[] = {
  15782. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  15783. 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1,
  15784. 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1,
  15785. 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1,
  15786. 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
  15787. 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  15788. 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0,
  15789. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  15790. 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1,
  15791. 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1,
  15792. 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0
  15793. };
  15794. return g_WindowInfo[model - 400];
  15795. }
  15796. return 0;
  15797. }
  15798. IsPoweredVehicle(vehicleid)
  15799. {
  15800. new
  15801. model = GetVehicleModel(vehicleid);
  15802. if (400 <= model <= 611)
  15803. {
  15804. static const g_EngineInfo[] = {
  15805. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  15806. 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  15807. 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  15808. 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  15809. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  15810. 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1,
  15811. 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0
  15812. };
  15813. return g_EngineInfo[model - 400];
  15814. }
  15815. return 0;
  15816. }
  15817. ResetInventoryItem(playerid, itemid)
  15818. {
  15819. Inventory[playerid][itemid][invID] = 0;
  15820. Inventory[playerid][itemid][invExists] = 0;
  15821. Inventory[playerid][itemid][invName] = 0;
  15822. Inventory[playerid][itemid][invValue] = 0;
  15823. Inventory[playerid][itemid][invSerial] = 0;
  15824. for (new i = 0; i < 6; i ++) {
  15825. Inventory[playerid][itemid][invOffset][i] = 0.0;
  15826. }
  15827. }
  15828. OnItemDelete(playerid, item)
  15829. {
  15830. if (!strcmp(Inventory[playerid][item][invName], "Mobile Phone") && Inventory[playerid][item][invValue] > 0 && Inventory[playerid][item][invValue] == Players[playerid][pPhone])
  15831. {
  15832. HangupCall(playerid);
  15833. Players[playerid][pPhone] = 0;
  15834. }
  15835. if (!strcmp(Inventory[playerid][item][invName], "Stereo") && Stereos[playerid][pStereoID] == item)
  15836. {
  15837. ResetStereo(playerid);
  15838. }
  15839. if (!strcmp(Inventory[playerid][item][invName], "Mask") && Players[playerid][pMaskID] == Inventory[playerid][item][invValue])
  15840. {
  15841. Players[playerid][pMaskID] = 0;
  15842. }
  15843. if (!strcmp(Inventory[playerid][item][invName], "Walkie Talkie") && Players[playerid][pChannel] == Inventory[playerid][item][invValue])
  15844. {
  15845. Players[playerid][pChannel] = 0;
  15846. }
  15847. if (!strcmp(Inventory[playerid][item][invName], "Portable Radio") && Players[playerid][pChannel] == Inventory[playerid][item][invValue])
  15848. {
  15849. Players[playerid][pChannel] = 0;
  15850. }
  15851. if (!strcmp(Inventory[playerid][item][invName], "Camera") && Players[playerid][pCamera] == Inventory[playerid][item][invID])
  15852. {
  15853. Players[playerid][pCamera] = 0;
  15854. SetWeaponsForPlayer(playerid);
  15855. }
  15856. }
  15857. RemoveItemFromInventory(playerid, item)
  15858. {
  15859. if (Inventory[playerid][item][invExists])
  15860. {
  15861. OnItemDelete(playerid, item);
  15862. format(gExecute, sizeof(gExecute), "DELETE FROM rp_items WHERE itemID = %i", Inventory[playerid][item][invID]);
  15863. mysql_tquery(gConnection, gExecute);
  15864. Inventory[playerid][item][invExists] = 0;
  15865. Inventory[playerid][item][invValue] = 0;
  15866. Inventory[playerid][item][invSerial] = 0;
  15867. }
  15868. return 1;
  15869. }
  15870. RemoveItemValue(playerid, item, amount)
  15871. {
  15872. if (Inventory[playerid][item][invExists])
  15873. {
  15874. Inventory[playerid][item][invValue] = Inventory[playerid][item][invValue] - amount;
  15875. if (Inventory[playerid][item][invValue] <= 0) {
  15876. RemoveItemFromInventory(playerid, item);
  15877. } else {
  15878. SaveItem(playerid, item);
  15879. }
  15880. }
  15881. }
  15882. SetItemValue(playerid, item, value)
  15883. {
  15884. if (Inventory[playerid][item][invExists])
  15885. {
  15886. Inventory[playerid][item][invValue] = value;
  15887. SaveItem(playerid, item);
  15888. }
  15889. }
  15890. SaveItem(playerid, item)
  15891. {
  15892. if (Inventory[playerid][item][invExists])
  15893. {
  15894. format(gExecute, sizeof(gExecute), "UPDATE rp_items SET itemValue = %i, itemSerial = %i WHERE itemID = %i",
  15895. Inventory[playerid][item][invValue],
  15896. Inventory[playerid][item][invSerial],
  15897. Inventory[playerid][item][invID]
  15898. );
  15899. mysql_tquery(gConnection, gExecute);
  15900. }
  15901. return 1;
  15902. }
  15903. /*GetVehModel(vehicle)
  15904. {
  15905. return GetVehicleModel(Vehicles[vehicle][vModel]);
  15906. }
  15907. GetVehModel2(vehicle)
  15908. {
  15909. return Vehicles[vehicle][vModel];
  15910. }*/
  15911. GetTrunkCapacity(vehicle)
  15912. {
  15913. if (!IsValidVehicleID(vehicle))
  15914. {
  15915. return 0;
  15916. }
  15917. else if (!VehicleHasDoors(Vehicles[vehicle][vVehicle]))
  15918. {
  15919. return 0;
  15920. }
  15921. /*switch (Vehicles[vehicle][vModel])
  15922. {
  15923. case 403, 415, 429, 434, 443, 451, 457, 477, 480, 491, 496, 506:
  15924. return 10;
  15925. case 401, 402, 410, 411, 412, 419, 436, 439, 445, 458, 466, 467, 474, 475, 492, 507:
  15926. return 20;
  15927. case 405, 420, 421, 426, 438, 479:
  15928. return 30;
  15929. case 404, 470:
  15930. return 40;
  15931. case 400, 407, 409, 422, 442, 478, 489:
  15932. return 50;
  15933. case 413, 416, 418, 440, 459, 482, 483, 490, 508:
  15934. return 70;
  15935. case 414, 427, 428, 456:
  15936. return 100;
  15937. case 433, 455, 498, 499:
  15938. return 150;
  15939. case 431, 437, 435, 450:
  15940. return 200;
  15941. default:
  15942. return 5;
  15943. }*/
  15944. switch (Vehicles[vehicle][vModel])
  15945. {
  15946. case 400, 404, 413, 418, 423, 440, 442, 458, 459, 470, 478, 479, 482, 483, 489..491, 495, 505, 543, 552, 554, 561, 579, 580, 582, 599:
  15947. return 30;
  15948. case 406, 407, 408, 414, 427, 428, 433, 455, 456, 498, 499, 508, 544, 573, 578, 609:
  15949. return 50;
  15950. case 435, 450, 591:
  15951. return 100;
  15952. default:
  15953. return 20;
  15954. }
  15955. return 0;
  15956. }
  15957. GetSafeTotalWeight(id)
  15958. {
  15959. new total;
  15960. for (new i = 0; i < MAX_STORED_ITEMS; i ++)
  15961. {
  15962. if (StoredItems[i][stExists] && StoredItems[i][stFurniture] == Furniture[id][fID])
  15963. {
  15964. total = total + GetItemInformation(StoredItems[i][stName], ITEM_INFO_WEIGHT);
  15965. }
  15966. }
  15967. return total;
  15968. }
  15969. GetTrunkTotalWeight(vehicle)
  15970. {
  15971. new total;
  15972. for (new i = 0; i < MAX_STORED_ITEMS; i ++)
  15973. {
  15974. if (StoredItems[i][stExists] && StoredItems[i][stVehicle] == Vehicles[vehicle][vID])
  15975. {
  15976. total = total + GetItemInformation(StoredItems[i][stName], ITEM_INFO_WEIGHT);
  15977. }
  15978. }
  15979. return total;
  15980. }
  15981. GetTrashbinTotalWeight(id)
  15982. {
  15983. new total;
  15984. for (new i = 0; i < MAX_STORED_ITEMS; i ++)
  15985. {
  15986. if (StoredItems[i][stExists] && StoredItems[i][stTrashbin] == Trashbins[id][tID])
  15987. {
  15988. total = total + GetItemInformation(StoredItems[i][stName], ITEM_INFO_WEIGHT);
  15989. }
  15990. }
  15991. return total;
  15992. }
  15993. AddItemToTrunk(playerid, vehicle, itemid)
  15994. {
  15995. if (GetItemInformation(Inventory[playerid][itemid][invName], ITEM_INFO_WEIGHT) + GetTrunkTotalWeight(vehicle) > GetTrunkCapacity(vehicle))
  15996. return INVALID_ID;
  15997. else
  15998. return SetPVarInt(playerid, "tempVehicle", vehicle), TransferItem(playerid, itemid, TRANSFER_TO_TRUNK, Vehicles[vehicle][vID]);
  15999. }
  16000. AddItemToSafe(playerid, safe, itemid)
  16001. {
  16002. if (GetItemInformation(Inventory[playerid][itemid][invName], ITEM_INFO_WEIGHT) + GetSafeTotalWeight(safe) > MAX_SAFE_WEIGHT)
  16003. return INVALID_ID;
  16004. else
  16005. return TransferItem(playerid, itemid, TRANSFER_TO_SAFE, Furniture[safe][fID]);
  16006. }
  16007. AddItemToTrashbin(playerid, trashbin, itemid)
  16008. {
  16009. if (GetItemInformation(Inventory[playerid][itemid][invName], ITEM_INFO_WEIGHT) + GetTrashbinTotalWeight(trashbin) > MAX_TRASHBIN_WEIGHT)
  16010. return INVALID_ID;
  16011. else
  16012. return TransferItem(playerid, itemid, TRANSFER_TO_TRASH, Trashbins[trashbin][tID]);
  16013. }
  16014. TransferItemToPlayer(playerid, targetid, itemid)
  16015. {
  16016. if (GetItemInformation(Inventory[playerid][itemid][invName], ITEM_INFO_WEIGHT) + GetInventoryTotalWeight(targetid) > GetInventoryMaxWeight(targetid))
  16017. return INVALID_ID;
  16018. else
  16019. return TransferItem(playerid, itemid, TRANSFER_TO_PLAYER, targetid);
  16020. }
  16021. AddSerialToRegistry(serial, weapon[], owner[], registrar[])
  16022. {
  16023. format(gExecute, sizeof(gExecute), "INSERT INTO rp_serials (Serial, Weapon, Owner, Registrar, Date) VALUES(%i, '%s', '%s', '%s', NOW())", serial, mysql_escaped(weapon), mysql_escaped(owner), mysql_escaped(registrar));
  16024. mysql_tquery(gConnection, gExecute);
  16025. }
  16026. IsSufficientSpace(playerid, const item[])
  16027. {
  16028. if (GetNextItemID(playerid) == INVALID_ID || GetItemInformation(item, ITEM_INFO_WEIGHT) + GetInventoryTotalWeight(playerid) > GetInventoryMaxWeight(playerid))
  16029. {
  16030. return 0;
  16031. }
  16032. return 1;
  16033. }
  16034. GetInventoryItemID(playerid, const item[], value = -1)
  16035. {
  16036. for (new i = 0; i < MAX_INVENTORY_ITEMS; i ++)
  16037. {
  16038. if (Inventory[playerid][i][invExists] && !strcmp(Inventory[playerid][i][invName], item))
  16039. {
  16040. if (value != -1 && Inventory[playerid][i][invValue] != value)
  16041. continue;
  16042. return i;
  16043. }
  16044. }
  16045. return INVALID_ID;
  16046. }
  16047. stock IsItemInInventory(playerid, const item[])
  16048. {
  16049. new
  16050. item = GetInventoryItemID(playerid, item);
  16051. if (item == INVALID_ID) return 0;
  16052. return 1;
  16053. }
  16054. stock ItemID(playerid, const item[])
  16055. {
  16056. new
  16057. item = GetInventoryItemID(playerid, item);
  16058. if (item == INVALID_ID) return 0;
  16059. return item;
  16060. }
  16061. AddItemToInventory(playerid, const item[], value = 0, serial = 0)
  16062. {
  16063. new
  16064. id = GetNextItemID(playerid);
  16065. if (isnull(item))
  16066. {
  16067. return INVALID_ID;
  16068. }
  16069. else if (id != INVALID_ID && IsSufficientSpace(playerid, item))
  16070. {
  16071. if (GetItemInformation(item, ITEM_INFO_STACKABLE)) {
  16072. new itemid = GetInventoryItemID(playerid, item);
  16073. if (itemid != INVALID_ID) {
  16074. SetItemValue(playerid, itemid, Inventory[playerid][itemid][invValue] + value);
  16075. return itemid;
  16076. }
  16077. }
  16078. if (ispacked(item)) {
  16079. strunpack(Inventory[playerid][id][invName], item, MAX_ITEM_NAME);
  16080. } else {
  16081. strcpy(Inventory[playerid][id][invName], item, MAX_ITEM_NAME);
  16082. }
  16083. Inventory[playerid][id][invExists] = 1;
  16084. Inventory[playerid][id][invValue] = value;
  16085. Inventory[playerid][id][invSerial] = serial;
  16086. format(gExecute, sizeof(gExecute), "INSERT INTO rp_items (itemName, itemValue, itemOwner, itemSerial) VALUES('%s', %i, %i, %i)", Inventory[playerid][id][invName], value, Players[playerid][pID], serial);
  16087. mysql_tquery(gConnection, gExecute, "OnItemInsertion", "ii", playerid, id);
  16088. return id;
  16089. }
  16090. return INVALID_ID;
  16091. }
  16092. GetTotalNearbyItems(playerid)
  16093. {
  16094. new count = 0;
  16095. for (new i = 0; i < MAX_DROPPED_ITEMS; i ++)
  16096. {
  16097. if (DropItems[i][dExists] && IsPlayerNearPoint(playerid, 1.0, DropItems[i][dSpawn][0], DropItems[i][dSpawn][1], DropItems[i][dSpawn][2], DropItems[i][dInterior], DropItems[i][dWorld]))
  16098. {
  16099. count++;
  16100. }
  16101. }
  16102. return count;
  16103. }
  16104. GetClosestDropItem(playerid)
  16105. {
  16106. for (new i = 0; i < MAX_DROPPED_ITEMS; i ++)
  16107. {
  16108. if (DropItems[i][dExists] && IsPlayerNearPoint(playerid, 1.0, DropItems[i][dSpawn][0], DropItems[i][dSpawn][1], DropItems[i][dSpawn][2], DropItems[i][dInterior], DropItems[i][dWorld]))
  16109. {
  16110. return i;
  16111. }
  16112. }
  16113. return INVALID_ID;
  16114. }
  16115. IsWeightsInUse(playerid)
  16116. {
  16117. foreach (new i : Player)
  16118. {
  16119. if (Players[i][pWorkout] == WORKOUT_DUMBELLS && IsPlayerInRangeOfPlayer(i, playerid, 10.0))
  16120. {
  16121. return 1;
  16122. }
  16123. }
  16124. return 0;
  16125. }
  16126. IsTreadmillInUse(playerid)
  16127. {
  16128. foreach (new i : Player)
  16129. {
  16130. if (Players[i][pWorkout] == WORKOUT_TREADMILL && IsPlayerInRangeOfPlayer(i, playerid, 10.0))
  16131. {
  16132. return 1;
  16133. }
  16134. }
  16135. return 0;
  16136. }
  16137. LoadCheck(playerid)
  16138. {
  16139. /*if (Players[playerid][pJob] == JOB_TRANSPORTER && Players[playerid][pWorking] && Players[playerid][pGoods])
  16140. {
  16141. for (new i = 0; i < MAX_VEHICLES; i ++)
  16142. {
  16143. if (IsValidVehicle(i) && IsPlayerInRangeOfVehicle(playerid, i, 5.0))
  16144. {
  16145. if (!IsTransportVehicle(i))
  16146. {
  16147. SendErrorMessage(playerid, "You can't load goods into this vehicle.");
  16148. }
  16149. else if (VehicleInformation[i][vGoods] > 0)
  16150. {
  16151. SendErrorMessage(playerid, "This vehicle is already loaded. Please find another vehicle.");
  16152. }
  16153. else
  16154. {
  16155. VehicleInformation[i][vGoods] = Players[playerid][pGoods];
  16156. VehicleInformation[i][vObject] = CreateDynamicObject(1220, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  16157. Players[playerid][pWorking] = 0;
  16158. Players[playerid][pGoods] = 0;
  16159. AttachDynamicObjectToVehicle(VehicleInformation[i][vObject], i, 0.0, -1.5, 0.0, 0.0, 0.0, 0.0);
  16160. ApplyAnimation(playerid, "CARRY", "putdwn", 4.1, 0, 0, 0, 0, 0, 1);
  16161. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE);
  16162. RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_MISC);
  16163. SendInfoMessage(playerid, "You have loaded the goods. Use /deliver at any %s to get paid.", GetCompanyType(VehicleInformation[i][vGoods]));
  16164. return 1;
  16165. }
  16166. }
  16167. }
  16168. }*/
  16169. if (Players[playerid][pWorking])
  16170. {
  16171. switch (Players[playerid][pJob])
  16172. {
  16173. case JOB_TRANSPORTER:
  16174. {
  16175. if (Players[playerid][pGoods])
  16176. {
  16177. for (new i = 0; i < MAX_VEHICLES; i ++)
  16178. {
  16179. if (IsValidVehicle(i) && IsPlayerInRangeOfVehicle(playerid, i, 5.0))
  16180. {
  16181. if (!IsTransportVehicle(i))
  16182. {
  16183. SendErrorMessage(playerid, "You can't load goods into this vehicle.");
  16184. }
  16185. else if (VehicleInformation[i][vGoods] > 0)
  16186. {
  16187. SendErrorMessage(playerid, "This vehicle is already loaded. Please find another vehicle.");
  16188. }
  16189. else
  16190. {
  16191. VehicleInformation[i][vGoods] = Players[playerid][pGoods];
  16192. VehicleInformation[i][vObject] = CreateDynamicObject(1220, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  16193. Players[playerid][pWorking] = 0;
  16194. Players[playerid][pGoods] = 0;
  16195. AttachDynamicObjectToVehicle(VehicleInformation[i][vObject], i, 0.0, -1.5, 0.0, 0.0, 0.0, 0.0);
  16196. ApplyAnimation(playerid, "CARRY", "putdwn", 4.1, 0, 0, 0, 0, 0, 1);
  16197. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE);
  16198. RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_MISC);
  16199. SendInfoMessage(playerid, "You have loaded the goods. Use /deliver at any %s to get paid.", GetCompanyType(VehicleInformation[i][vGoods]));
  16200. return 1;
  16201. }
  16202. }
  16203. }
  16204. }
  16205. }
  16206. case JOB_TRASHMAN:
  16207. {
  16208. if (Players[playerid][pTrash])
  16209. {
  16210. for (new i = 0; i < MAX_VEHICLES; i ++)
  16211. {
  16212. if (IsValidVehicle(i) && IsPlayerInRangeOfVehicle(playerid, i, 5.0))
  16213. {
  16214. if (GetVehicleModel(i) != 408)
  16215. {
  16216. SendErrorMessage(playerid, "You can't load trash into this vehicle.");
  16217. }
  16218. else
  16219. {
  16220. Players[playerid][pTrash] = 0;
  16221. ApplyAnimation(playerid, "CARRY", "putdwn", 4.1, 0, 0, 0, 0, 0, 1);
  16222. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE);
  16223. RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_MISC);
  16224. if (Players[playerid][pTrashPickup] < sizeof(g_TrashPickups))
  16225. {
  16226. //SetCheckpoint(playerid, CHECKPOINT_JOB, g_TrashPickups[Players[playerid][pTrashPickup]][0], g_TrashPickups[Players[playerid][pTrashPickup]][1], g_TrashPickups[Players[playerid][pTrashPickup]][2], 2.0);
  16227. new trash = GetRandomTrash();
  16228. if (trash == INVALID_ID) return SendErrorMessage(playerid, "There are no available trash bins in Los Santos - contact an admin!");
  16229. SetCheckpoint(playerid, CHECKPOINT_JOB, Trashbins[trash][tX], Trashbins[trash][tY], Trashbins[trash][tZ], 3.0);
  16230. //SendInfoMessage(playerid, "Make your way to the trash bin and pick up the garbage.");
  16231. SendInfoMessage(playerid, "You have loaded the trash. You have %i more bags to pickup.", (sizeof(g_TrashPickups) - Players[playerid][pTrashPickup]));
  16232. }
  16233. else
  16234. {
  16235. SetCheckpoint(playerid, CHECKPOINT_JOB, 2179.2222, -1980.5339, 13.5519, 3.0);//hora
  16236. SendInfoMessage(playerid, "You have loaded the trash. Deliver it to the {FF0000}checkpoint{FFFFFF} to complete the job.");
  16237. }
  16238. return 1;
  16239. }
  16240. }
  16241. }
  16242. }
  16243. }
  16244. }
  16245. }
  16246. return 0;
  16247. }
  16248. SitCheck(playerid)
  16249. {
  16250. for (new i = 0; i < sizeof(g_SittingPositions); i ++)
  16251. {
  16252. if (IsPlayerInRangeOfPoint(playerid, 1.0, g_SittingPositions[i][e_SittingX], g_SittingPositions[i][e_SittingY], g_SittingPositions[i][e_SittingZ]))
  16253. {
  16254. Players[playerid][pSitting] = !Players[playerid][pSitting];
  16255. if (Players[playerid][pSitting])
  16256. {
  16257. SetPlayerPos(playerid, g_SittingPositions[i][e_SittingX], g_SittingPositions[i][e_SittingY], g_SittingPositions[i][e_SittingZ]);
  16258. SetPlayerFacingAngle(playerid, g_SittingPositions[i][e_SittingA]);
  16259. ApplyAnimation(playerid, "FOOD", g_SittingPositions[i][e_SittingIn], 4.1, 0, 0, 0, 1, 0, 1);
  16260. SendInfoMessage(playerid, "You must use '/t' to speak otherwise you'll stand up from the table.");
  16261. }
  16262. else
  16263. {
  16264. ApplyAnimation(playerid, "FOOD", g_SittingPositions[i][e_SittingOut], 4.1, 0, 0, 0, 0, 0, 1);
  16265. }
  16266. return 1;
  16267. }
  16268. }
  16269. return 0;
  16270. }
  16271. TrashbinCheck(playerid)
  16272. {
  16273. new
  16274. id = GetClosestTrashbin(playerid);
  16275. if (id != INVALID_ID)
  16276. {
  16277. ShowTrashbinItems(playerid, id);
  16278. ShowActionBubble(playerid, "* %s opens the trashbin and looks inside.", ReturnNameEx(playerid));
  16279. }
  16280. }
  16281. ShellCheck(playerid)
  16282. {
  16283. new
  16284. id = GetClosestShell(playerid);
  16285. if (id != INVALID_ID)
  16286. {
  16287. if (gettime() - ShellCasings[id][scTime] < 86400)
  16288. {
  16289. //Dialog_Show(playerid, ExamineShell, DIALOG_STYLE_MSGBOX, "{FFFFFF}Shell casing", "This shell casing was dropped just recently.\n\nThe ammunition type for this casing is %s (serial: %s).", "Pickup", "Close", GetAmmunitionType(ShellCasings[id][scWeapon]), FormatSerial(ShellCasings[id][scSerial]));
  16290. Dialog_Show(playerid, ExamineShell, DIALOG_STYLE_MSGBOX, "{FFFFFF}Shell Casing", "{6688FF}Type:\n{FFFFFF}%s\n\n{6688FF}Serial:\n{FFFFFF}%s\n\n{6688FF}Time:\n{FFFFFF}Recent", "Pickup", "Close", GetAmmunitionType(ShellCasings[id][scWeapon]), FormatSerial(ShellCasings[id][scSerial]) );
  16291. }
  16292. else
  16293. {
  16294. //Dialog_Show(playerid, ExamineShell, DIALOG_STYLE_MSGBOX, "{FFFFFF}Shell casing", "This shell casing was dropped a while ago.\n\nThe ammunition type for this casing is %s (serial: %s).", "Pickup", "Close", GetAmmunitionType(ShellCasings[id][scWeapon]), FormatSerial(ShellCasings[id][scSerial]));
  16295. Dialog_Show(playerid, ExamineShell, DIALOG_STYLE_MSGBOX, "{FFFFFF}Shell Casing", "{6688FF}Type:\n{FFFFFF}%s\n\n{6688FF}Serial:\n{FFFFFF}%s\n\n{6688FF}Time:\n{FFFFFF}Old", "Pickup", "Close", GetAmmunitionType(ShellCasings[id][scWeapon]), FormatSerial(ShellCasings[id][scSerial]) );
  16296. }
  16297. }
  16298. }
  16299. /*BloodCheck(playerid)
  16300. {
  16301. new
  16302. id = GetClosestBlood(playerid);
  16303. if(id != INVALID_ID)
  16304. {
  16305. if(gettime() - Bloods[id][blTime] < 86400)
  16306. {
  16307. Dialog_Show(playerid, ExamineBlood, DIALOG_STYLE_MSGBOX, "{FFFFFF}Blood", "{6688FF}Owner:\n{FFFFFF}%s\n\n{6688FF}Type:\n{FFFFFF}%i\n\n{6688FF}Time:\n{FFFFFF}Recent","Pickup","Close", Bloods[id][blOwner], Bloods[id][blType] );
  16308. }
  16309. else
  16310. {
  16311. Dialog_Show(playerid, ExamineBlood, DIALOG_STYLE_MSGBOX, "{FFFFFF}Blood", "{6688FF}Owner:\n{FFFFFF}%s\n\n{6688FF}Type:\n{FFFFFF}%i\n\n{6688FF}Time:\n{FFFFFF}Old","Pickup","Close", Bloods[id][blOwner], Bloods[id][blType] );
  16312. }
  16313. }
  16314. }*/
  16315. WeedCheck(playerid)
  16316. {
  16317. new
  16318. id = GetClosestWeedPlant(playerid);
  16319. if (id != INVALID_ID)
  16320. {
  16321. if (0 <= WeedPlants[id][wpTime] <= 899)
  16322. {
  16323. Dialog_Show(playerid, ExamineWeedPlant, DIALOG_STYLE_MSGBOX, "{FFFFFF}Weed Plant", "{6688FF}Stage:\n{FFFFFF}Growing", "Pick up", "Close");
  16324. }
  16325. else
  16326. {
  16327. Dialog_Show(playerid, ExamineWeedPlant, DIALOG_STYLE_MSGBOX, "{FFFFFF}Weed Plant", "{6688FF}Stage:\n{FFFFFF}Ready", "Pick up", "Close");
  16328. }
  16329. }
  16330. }
  16331. ATMCheck(playerid)
  16332. {
  16333. new
  16334. id = GetClosestATM(playerid);
  16335. if (IsValidATMID(id))
  16336. {
  16337. new
  16338. success = ShowBankAccounts(playerid, BANK_ATM_MENU);
  16339. if (!success)
  16340. {
  16341. SendErrorMessage(playerid, "You need a registered bank account to do this.");
  16342. }
  16343. }
  16344. }
  16345. SafeCheck(playerid)
  16346. {
  16347. new
  16348. id = GetClosestFurniture(playerid, 2.0, 2332);
  16349. if (IsValidFurnitureID(id))
  16350. {
  16351. if (!Furniture[id][fSafeOpen])
  16352. {
  16353. if (Furniture[id][fCode] != 0)
  16354. {
  16355. return Dialog_Show(playerid, SafeCode, DIALOG_STYLE_INPUT, "{FFFFFF}Safe code", "Please input the code to unlock this safe:", "Submit", "Cancel");
  16356. }
  16357. else
  16358. {
  16359. Furniture[id][fSafeOpen] = 1;
  16360. ShowActionBubble(playerid, "* %s opens the safe and looks inside.", ReturnNameEx(playerid));
  16361. UpdateDynamic3DTextLabelText(Furniture[id][fText], COLOR_GREY, "Status: {33CC33}Opened{AFAFAF}\nPress Y to use safe");
  16362. SendInfoMessage(playerid, "You have opened the safe.");
  16363. }
  16364. }
  16365. ShowSafeMenu(playerid, id);
  16366. }
  16367. return 1;
  16368. }
  16369. FridgeCheck(playerid)
  16370. {
  16371. new
  16372. id = GetClosestFridge(playerid, 2.0);
  16373. if (IsValidFurnitureID(id))
  16374. {
  16375. SetPlayerHealth(playerid, 100);
  16376. ShowActionBubble(playerid, "* %s grabs something to eat from the fridge.", ReturnNameEx(playerid));
  16377. SendInfoMessage(playerid, "You have healed to full health.");
  16378. }
  16379. return 1;
  16380. }
  16381. DoorCheck(playerid)
  16382. {
  16383. new
  16384. id = GetClosestDoor(playerid, 2.0);
  16385. if (IsValidFurnitureID(id))
  16386. {
  16387. if (Furniture[id][fDoorOpen] == 1)
  16388. {
  16389. Furniture[id][fSpawn][5] = Furniture[id][fSpawn][5] + 90.0;
  16390. Furniture[id][fDoorOpen] = 0;
  16391. UpdateFurniture(id);
  16392. }
  16393. else
  16394. {
  16395. Furniture[id][fSpawn][5] = Furniture[id][fSpawn][5] - 90.0;
  16396. Furniture[id][fDoorOpen] = 1;
  16397. UpdateFurniture(id);
  16398. }
  16399. }
  16400. return 1;
  16401. }
  16402. ShowSafeItems(playerid, id)
  16403. {
  16404. static
  16405. displayString[1024];
  16406. if (!IsValidFurnitureID(id))
  16407. {
  16408. return 0;
  16409. }
  16410. else
  16411. {
  16412. new
  16413. title[64],
  16414. index = 0;
  16415. displayString = "Item\tWeight\nStore Item";
  16416. for (new i = 0; i < MAX_STORED_ITEMS; i ++)
  16417. {
  16418. if (StoredItems[i][stExists] && StoredItems[i][stFurniture] == Furniture[id][fID])
  16419. {
  16420. format(displayString, sizeof(displayString), "%s\n%s\t%i lbs", displayString, GetStoredItemName(i), GetItemInformation(StoredItems[i][stName], ITEM_INFO_WEIGHT));
  16421. gListedItems[playerid][index++] = i;
  16422. }
  16423. }
  16424. format(title, sizeof(title), "{FFFFFF}Safe - Capacity: %i/%i", GetSafeTotalWeight(id), MAX_SAFE_WEIGHT);
  16425. Dialog_Show(playerid, SafeItems, DIALOG_STYLE_TABLIST_HEADERS, title, displayString, "Select", "Back");
  16426. }
  16427. return 1;
  16428. }
  16429. ShowSafeMenu(playerid, id)
  16430. {
  16431. new
  16432. string[128];
  16433. if (!IsValidFurnitureID(id))
  16434. {
  16435. return 0;
  16436. }
  16437. if (!Furniture[id][fCode])
  16438. {
  16439. format(string, sizeof(string), "Stored Money\t\t{00FF00}%s{FFFFFF}\nSecurity Code\t\t{FF5030}Not Setup\nView Items\nClose Safe", FormatNumber(Furniture[id][fMoney]));
  16440. }
  16441. else
  16442. {
  16443. format(string, sizeof(string), "Stored Money\t\t{00FF00}%s{FFFFFF}\nSecurity Code\t\t{00FF00}%i\nView Items\nClose Safe", FormatNumber(Furniture[id][fMoney]), Furniture[id][fCode]);
  16444. }
  16445. Players[playerid][pSafeMenu] = id;
  16446. Dialog_Show(playerid, SafeMenu, DIALOG_STYLE_LIST, "{FFFFFF}Safe menu", string, "Select", "Close");
  16447. return 1;
  16448. }
  16449. IsPlayerNearGymEquipment(playerid)
  16450. {
  16451. return (IsPlayerInRangeOfPoint(playerid, 2.0, 771.7793, 5.4092, 1000.7802) || IsPlayerInRangeOfPoint(playerid, 2.0, 773.5131, -2.1218, 1000.8479));
  16452. }
  16453. GymCheck(playerid)
  16454. {
  16455. new company = GetCurrentCompany(playerid);
  16456. if (company == INVALID_ID || Companies[company][cType] != COMPANY_GYM)
  16457. {
  16458. return 0;
  16459. }
  16460. else if (IsPlayerInRangeOfPoint(playerid, 2.0, 771.7793, 5.4092, 1000.7802))
  16461. {
  16462. if (!Players[playerid][pWorkout])
  16463. {
  16464. if (Players[playerid][pWorkoutTime] > gettime())
  16465. {
  16466. SendErrorMessage(playerid, "You have reached your limit for the day.");
  16467. }
  16468. else if (IsWeightsInUse(playerid))
  16469. {
  16470. SendErrorMessage(playerid, "The weights are already being used.");
  16471. }
  16472. else if (Players[playerid][pWeight])
  16473. {
  16474. SendErrorMessage(playerid, "Please wait before using this command.");
  16475. }
  16476. else
  16477. {
  16478. SetPlayerPos(playerid, 771.7793, 5.4092, 1000.7802);
  16479. SetPlayerFacingAngle(playerid, 270.0000);
  16480. SetPlayerCameraPos(playerid, 775.425048, 5.364191, 1001.295227);
  16481. SetPlayerCameraLookAt(playerid, 772.279235, 5.403525, 1000.780212);
  16482. Dialog_Show(playerid, LiftWeights, DIALOG_STYLE_LIST, "{FFFFFF}Select weight", "20 lbs\n30 lbs\n40 lbs\n50 lbs\n60 lbs\n70 lbs\n80 lbs\n90 lbs\n100 lbs\n110 lbs", "Begin", "Cancel");
  16483. }
  16484. }
  16485. else
  16486. {
  16487. StopWorkout(playerid);
  16488. ApplyAnimation(playerid, "Freeweights", "gym_free_putdown", 4.1, 0, 0, 0, 0, 0, 1);
  16489. }
  16490. return 1;
  16491. }
  16492. else if (IsPlayerInRangeOfPoint(playerid, 2.0, 773.5131, -2.1218, 1000.8479))
  16493. {
  16494. if (!Players[playerid][pWorkout])
  16495. {
  16496. if (Players[playerid][pWorkoutTime] > gettime())
  16497. {
  16498. SendErrorMessage(playerid, "You have reached your limit for the day.");
  16499. }
  16500. else if (IsTreadmillInUse(playerid))
  16501. {
  16502. SendErrorMessage(playerid, "The treadmill is already being used.");
  16503. }
  16504. else if (Players[playerid][pSpeedLevel])
  16505. {
  16506. SendErrorMessage(playerid, "Please wait before using this command.");
  16507. }
  16508. else
  16509. {
  16510. SetPlayerPos(playerid, 773.4777, -1.3239, 1000.7260);
  16511. SetPlayerFacingAngle(playerid, 180.0000);
  16512. SetPlayerCameraPos(playerid, 774.571166, -6.172124, 1001.582763);
  16513. SetPlayerCameraLookAt(playerid, 773.482116, -3.338384, 1000.847900);
  16514. Dialog_Show(playerid, Treadmill, DIALOG_STYLE_LIST, "{FFFFFF}Select level", "Level 1 (slowest)\nLevel 2\nLevel 3\nLevel 4\nLevel 5\nLevel 6\nLevel 7\nLevel 8\nLevel 9\nLevel 10 (fastest)", "Begin", "Cancel");
  16515. }
  16516. }
  16517. else
  16518. {
  16519. StopWorkout(playerid);
  16520. ApplyAnimation(playerid, "GYMNASIUM", "gym_tread_getoff", 4.1, 0, 0, 0, 0, 0, 1);
  16521. }
  16522. return 1;
  16523. }
  16524. return 0;
  16525. }
  16526. /*CompanyCheck(playerid)
  16527. {
  16528. new company = GetCurrentCompany(playerid);
  16529. if (company != INVALID_ID)
  16530. {
  16531. if (Companies[company][cType] == COMPANY_RESTAURANT)
  16532. {
  16533. ShowRestaurantMenu(playerid, company);
  16534. }
  16535. else if (Companies[company][cType] == COMPANY_AMMO && Players[playerid][pHoursOnline] < 4)
  16536. {
  16537. return SendErrorMessage(playerid, "You must play at least 4 hours to buy items here.");
  16538. }
  16539. else if (Companies[company][cType] == COMPANY_AMMO && Players[playerid][pWarrants] > 0)
  16540. {
  16541. return SendErrorMessage(playerid, "You can't purchase items here if you have an active warrant.");
  16542. }
  16543. else
  16544. {
  16545. if (Companies[company][cType] == COMPANY_GYM && IsPlayerNearGymEquipment(playerid))
  16546. {
  16547. GymCheck(playerid);
  16548. }
  16549. else
  16550. {
  16551. ShowProductsForSale(playerid, company);
  16552. }
  16553. }
  16554. return 1;
  16555. }
  16556. return 0;
  16557. }*/
  16558. ShowLockerMenu(playerid)
  16559. {
  16560. if(GetPlayerFactionType(playerid) == FACTION_ILLEGAL)
  16561. {
  16562. Dialog_Show(playerid, LockerUniform, DIALOG_STYLE_MSGBOX, "{FFFFFF}Uniforms", "Would you like to change your uniform?", "Yes", "No");
  16563. }
  16564. else
  16565. {
  16566. if(!Players[playerid][pDuty])
  16567. {
  16568. Dialog_Show(playerid, Locker, DIALOG_STYLE_LIST, "{FFFFFF}Faction Locker", "Clock In\nUniforms\nEquipment\nAccessories\nReturn Equipment", "Select", "Cancel");
  16569. }
  16570. else
  16571. {
  16572. Dialog_Show(playerid, Locker, DIALOG_STYLE_LIST, "{FFFFFF}Faction Locker", "Clock Out\nUniforms\nEquipment\nAccessories\nReturn Equipment", "Select", "<<<");
  16573. }
  16574. }
  16575. return 1;
  16576. }
  16577. ShowLockerEquipmentMenu(playerid)
  16578. {
  16579. /*switch (Factions[Players[playerid][pFaction]][fcType])
  16580. {
  16581. case FACTION_LEO:
  16582. {
  16583. //Dialog_Show(playerid, PoliceEquipment, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Equipment", "Item\tPrice\nTazer\t\t$50\nKevlar Vest\t\t$50\nNightstick\t\t$75\nDesert Eagle\t$150\nShotgun\t\t$200\nMP5\t\t$400\nM16\t\t$800\nSniper\t\t$1,000", "Select", "Cancel");
  16584. Dialog_Show(playerid, PoliceEquipment, DIALOG_STYLE_LIST, "{FFFFFF}Equipment", "Medical Kit\nArmor\nNightstick\nPepper Spray\nDesert Eagle\nShotgun\nMP5\nM4\nSniper Rifle\nPortable Radio\nCuffs\nKeys", "Select", "Cancel");
  16585. }
  16586. case FACTION_MEDICAL:
  16587. {
  16588. //Dialog_Show(playerid, MedicEquipment, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Equipment", "Item\tPrice\nBandages\t\t$20\nMedical Kit\t$40\nFire Extinguisher\t$50\nPainkillers\t\t$60", "Select", "Cancel");
  16589. Dialog_Show(playerid, MedicEquipment, DIALOG_STYLE_LIST, "{FFFFFF}Equipment", "Bandages\nMedical Kit\nKevlar Vest\nFire Extinguisher\nPainkillers\nPepper Spray", "Select", "Cancel");
  16590. }
  16591. }*/
  16592. gListString[0] = 0;
  16593. for(new i = 0; i < MAX_FACTION_EQUIPMENT; i ++)
  16594. {
  16595. if(FactionEquipment[Players[playerid][pFaction]][i][fcItemExists])
  16596. {
  16597. if(FactionEquipment[Players[playerid][pFaction]][i][fcItemValue] > 0)
  16598. format(gListString, sizeof(gListString), "%s\n%s (%i)", gListString, FactionEquipment[Players[playerid][pFaction]][i][fcItemName], FactionEquipment[Players[playerid][pFaction]][i][fcItemValue]);
  16599. else
  16600. format(gListString, sizeof(gListString), "%s\n%s", gListString, FactionEquipment[Players[playerid][pFaction]][i][fcItemName]);
  16601. }
  16602. }
  16603. if(isnull(gListString))
  16604. return SendErrorMessage(playerid, "There is no equipment added for this faction.");
  16605. Dialog_Show(playerid, LockerEquipment, DIALOG_STYLE_LIST, "{FFFFFF}Equipment", gListString, "Equip", "Back");
  16606. return 1;
  16607. }
  16608. ShowLockerAccessoryMenu(playerid)
  16609. {
  16610. gListString[0] = 0;
  16611. for(new i = 0; i < MAX_FACTION_ACCESSORIES; i ++)
  16612. {
  16613. if(FactionAccessories[Players[playerid][pFaction]][i][fcAccessoryExists])
  16614. {
  16615. format(gListString, sizeof(gListString), "%s\n%s", gListString, FactionAccessories[Players[playerid][pFaction]][i][fcAccessoryName]);
  16616. }
  16617. }
  16618. if(isnull(gListString))
  16619. return SendErrorMessage(playerid, "There are no accessories added for this faction.");
  16620. Dialog_Show(playerid, LockerAccessories, DIALOG_STYLE_LIST, "{FFFFFF}Accessories", gListString, "Select", "Back");
  16621. return 1;
  16622. }
  16623. IsPlayerNearSwitch(playerid)
  16624. {
  16625. new
  16626. house = GetCurrentHouse(playerid);
  16627. if (house == INVALID_ID)
  16628. {
  16629. return 0;
  16630. }
  16631. for (new i = 0; i < sizeof(g_LightSwitches); i ++)
  16632. {
  16633. if (IsPlayerInRangeOfPoint(playerid, 1.0, g_LightSwitches[i][0], g_LightSwitches[i][1], g_LightSwitches[i][2]))
  16634. {
  16635. return 1;
  16636. }
  16637. }
  16638. return 0;
  16639. }
  16640. LightSwitch(playerid)
  16641. {
  16642. new
  16643. id = GetCurrentHouse(playerid);
  16644. if (id == INVALID_ID)
  16645. {
  16646. return 0;
  16647. }
  16648. for (new i = 0; i < sizeof(g_LightSwitches); i ++)
  16649. {
  16650. if (IsPlayerInRangeOfPoint(playerid, 1.0, g_LightSwitches[i][0], g_LightSwitches[i][1], g_LightSwitches[i][2]))
  16651. {
  16652. ApplyAnimation(playerid, "HEIST9", "Use_SwipeCard", 4.1, 0, 0, 0, 0, 0, 1);
  16653. SetPlayerFacingAngle(playerid, g_LightSwitches[i][3]);
  16654. PlayerPlaySound(playerid, 1083, 0.0, 0.0, 0.0);
  16655. return Houses[id][hLights] = !Houses[id][hLights];
  16656. }
  16657. }
  16658. return 0;
  16659. }
  16660. PickupNearestItem(playerid)
  16661. {
  16662. new
  16663. count = GetTotalNearbyItems(playerid);
  16664. if (count == 1)
  16665. {
  16666. new id = GetClosestDropItem(playerid);
  16667. if (IsPlayerInAnyVehicle(playerid))
  16668. {
  16669. return SendErrorMessage(playerid, "You can't pickup items in a vehicle.");
  16670. }
  16671. else
  16672. {
  16673. if (!IsSufficientSpace(playerid, DropItems[id][dName]))
  16674. {
  16675. SendErrorMessage(playerid, "There is no more room in your inventory.");
  16676. }
  16677. else
  16678. {
  16679. Statistics[playerid][sItemsPicked]++;
  16680. format(gExecute, sizeof(gExecute), "INSERT INTO rp_itemlogs (Player, Item, Action, Date) VALUES('%s', '%s', 'Picked Up', NOW())", ReturnName(playerid), GetDropItemName(id));
  16681. mysql_tquery(gConnection, gExecute);
  16682. ShowActionBubble(playerid, "* %s reaches down and picks up an item.", ReturnNameEx(playerid));
  16683. SendInfoMessage(playerid, "{CFCFCF}You have picked up an item:{33AA33} %s.", GetDropItemName(id));
  16684. if(DropItems[id][dSerial] != 0 && GetPlayerFactionType(playerid) == FACTION_LEO)
  16685. {
  16686. SendInfoMessage(playerid,"Serial number: %d",DropItems[id][dSerial]);
  16687. }
  16688. ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0);
  16689. RetrieveItem(playerid, TRANSFER_FROM_GROUND, id);
  16690. }
  16691. }
  16692. }
  16693. else if (count > 1)
  16694. {
  16695. new
  16696. buffer[1024],
  16697. index
  16698. ;
  16699. for (new i = 0; i < MAX_DROPPED_ITEMS; i ++)
  16700. {
  16701. if (DropItems[i][dExists] && IsPlayerNearPoint(playerid, 1.0, DropItems[i][dSpawn][0], DropItems[i][dSpawn][1], DropItems[i][dSpawn][2], DropItems[i][dInterior], DropItems[i][dWorld]))
  16702. {
  16703. format(buffer, sizeof(buffer), "%s\n%s", buffer, GetDropItemName(i));
  16704. gListedItems[playerid][index++] = i;
  16705. }
  16706. }
  16707. if (index > 0)
  16708. {
  16709. Dialog_Show(playerid, PickupItems, DIALOG_STYLE_LIST, "{FFFFFF}Pickup nearby items", buffer, "Pickup", "Close");
  16710. }
  16711. }
  16712. return count;
  16713. }
  16714. DeleteDropItem(id)
  16715. {
  16716. if (!DropItems[id][dExists]) return 0;
  16717. DestroyDynamicObject(DropItems[id][dObject]);
  16718. //DestroyDynamic3DTextLabel(DropItems[id][dText]);
  16719. format(gExecute, sizeof(gExecute), "DELETE FROM rp_items WHERE itemDropped = 1 AND itemID = %i", DropItems[id][dID]);
  16720. mysql_tquery(gConnection, gExecute);
  16721. DropItems[id][dExists] = 0;
  16722. DropItems[id][dID] = 0;
  16723. DropItems[id][dName] = 0;
  16724. DropItems[id][dValue] = 0;
  16725. DropItems[id][dObject] = INVALID_OBJECT_ID;
  16726. //DropItems[id][dText] = INVALID_3DTEXT_ID;
  16727. return 1;
  16728. }
  16729. UpdateDropItem(id)
  16730. {
  16731. if (!DropItems[id][dExists]) return 0;
  16732. new
  16733. Float:z,
  16734. Float:rx,
  16735. Float:ry,
  16736. string[128];
  16737. GetItemDropOffset(DropItems[id][dName], z, rx, ry);
  16738. DestroyDynamicObject(DropItems[id][dObject]);
  16739. //DestroyDynamic3DTextLabel(DropItems[id][dText]);
  16740. format(string, sizeof(string), "%s\nPress Y to pickup item", GetDropItemName(id));
  16741. DropItems[id][dObject] = CreateDynamicObject(GetItemInformation(DropItems[id][dName], ITEM_INFO_MODEL), DropItems[id][dSpawn][0], DropItems[id][dSpawn][1], DropItems[id][dSpawn][2] - z, rx, ry, 0.0, DropItems[id][dWorld], DropItems[id][dInterior]);
  16742. //DropItems[id][dText] = CreateDynamic3DTextLabel(string, COLOR_GREY, DropItems[id][dSpawn][0], DropItems[id][dSpawn][1], DropItems[id][dSpawn][2] - z, 10.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, DropItems[id][dWorld], DropItems[id][dInterior]);
  16743. if (!strcmp(DropItems[id][dName], "Toolbox"))
  16744. SetDynamicObjectMaterial(DropItems[id][dObject], 0, 14796, "genintintgarage2", "tool_store");
  16745. else if (!strcmp(DropItems[id][dName], "Painkillers"))
  16746. SetDynamicObjectMaterial(DropItems[id][dObject], 0, 1950, "kbeer", "bottles_kb2");
  16747. else if (!strcmp(DropItems[id][dName], "Marijuana"))
  16748. SetDynamicObjectMaterial(DropItems[id][dObject], 0, -1, "none", "none", 0xFF33CC33);
  16749. else if (!strcmp(DropItems[id][dName], "Heroin"))
  16750. SetDynamicObjectMaterial(DropItems[id][dObject], 0, -1, "none", "none", 0xFFFFDD00);
  16751. return 1;
  16752. }
  16753. RetrieveItem(playerid, type, itemid)
  16754. {
  16755. new id = GetNextItemID(playerid);
  16756. if (id == INVALID_ID)
  16757. {
  16758. return id;
  16759. }
  16760. switch (type)
  16761. {
  16762. case TRANSFER_FROM_SAFE, TRANSFER_FROM_TRUNK, TRANSFER_FROM_TRASH:
  16763. {
  16764. if (!IsSufficientSpace(playerid, StoredItems[itemid][stName]))
  16765. {
  16766. return INVALID_ID;
  16767. }
  16768. strunpack(Inventory[playerid][id][invName], StoredItems[itemid][stName], MAX_ITEM_NAME);
  16769. Inventory[playerid][id][invExists] = 1;
  16770. Inventory[playerid][id][invID] = StoredItems[itemid][stID];
  16771. Inventory[playerid][id][invValue] = StoredItems[itemid][stValue];
  16772. Inventory[playerid][id][invSerial] = StoredItems[itemid][stSerial];
  16773. for (new i = 0; i < 6; i ++) {
  16774. Inventory[playerid][id][invOffset][i] = StoredItems[itemid][stOffset][i];
  16775. }
  16776. for ( new a = 0; a < 6; a ++)
  16777. {
  16778. StoredItems[itemid][vehicleOffset][a] = 0.0;
  16779. }
  16780. StoredItems[itemid][stID] = 0;
  16781. StoredItems[itemid][stExists] = 0;
  16782. StoredItems[itemid][stValue] = 0;
  16783. StoredItems[itemid][stSerial] = 0;
  16784. if(IsValidDynamicObject(StoredItems[itemid][vehicleItem])) DestroyDynamicObject(StoredItems[itemid][vehicleItem]);
  16785. format(gExecute, sizeof(gExecute), "UPDATE rp_items SET itemOwner = %i, itemFurnitureID = 0, itemVehicleID = 0, itemTrashbinID = 0, vehOffsetX = 0.0, vehOffsetY = 0.0, vehOffsetZ = 0.0, vehRotX = 0.0, vehRotY = 0.0, vehRotZ = 0.0 WHERE itemID = %i", Players[playerid][pID], Inventory[playerid][id][invID]);
  16786. mysql_tquery(gConnection, gExecute);
  16787. }
  16788. case TRANSFER_FROM_GROUND:
  16789. {
  16790. new
  16791. item = GetInventoryItemID(playerid, DropItems[itemid][dName]);
  16792. if (!IsSufficientSpace(playerid, DropItems[itemid][dName]))
  16793. {
  16794. return INVALID_ID;
  16795. }
  16796. if (GetItemInformation(DropItems[itemid][dName], ITEM_INFO_STACKABLE) && item != INVALID_ID)
  16797. {
  16798. SetItemValue(playerid, item, Inventory[playerid][item][invValue] + DropItems[itemid][dValue]);
  16799. return DeleteDropItem(itemid);
  16800. }
  16801. else
  16802. {
  16803. strcpy(Inventory[playerid][id][invName], DropItems[itemid][dName], MAX_ITEM_NAME);
  16804. Inventory[playerid][id][invExists] = 1;
  16805. Inventory[playerid][id][invID] = DropItems[itemid][dID];
  16806. Inventory[playerid][id][invValue] = DropItems[itemid][dValue];
  16807. Inventory[playerid][id][invSerial] = DropItems[itemid][dSerial];
  16808. for (new i = 0; i < 6; i ++) {
  16809. Inventory[playerid][id][invOffset][i] = DropItems[itemid][dOffset][i];
  16810. }
  16811. format(gExecute, sizeof(gExecute), "UPDATE rp_items SET itemOwner = %i, itemDropped = 0, itemX = 0.0, itemY = 0.0, itemZ = 0.0, itemA = 0.0, itemInt = 0, itemWorld = 0 WHERE itemID = %i", Players[playerid][pID], Inventory[playerid][id][invID]);
  16812. mysql_tquery(gConnection, gExecute);
  16813. }
  16814. //DestroyDynamic3DTextLabel(DropItems[itemid][dText]);
  16815. DestroyDynamicObject(DropItems[itemid][dObject]);
  16816. DropItems[itemid][dID] = 0;
  16817. DropItems[itemid][dExists] = 0;
  16818. DropItems[itemid][dValue] = 0;
  16819. DropItems[itemid][dSerial] = 0;
  16820. DropItems[itemid][dObject] = INVALID_OBJECT_ID;
  16821. //DropItems[itemid][dText] = INVALID_3DTEXT_ID;
  16822. }
  16823. }
  16824. return id;
  16825. }
  16826. GetStoredItemID(const name[], type, extraid)
  16827. {
  16828. for (new i = 0; i < MAX_STORED_ITEMS; i ++)
  16829. {
  16830. if (StoredItems[i][stExists] && !strcmp(StoredItems[i][stName], name))
  16831. {
  16832. if ((type == STORED_TYPE_TRUNK && StoredItems[i][stVehicle] == extraid) || (type == STORED_TYPE_SAFE && StoredItems[i][stFurniture] == extraid) || (type == STORED_TYPE_TRASH && StoredItems[i][stTrashbin] == extraid))
  16833. {
  16834. return i;
  16835. }
  16836. }
  16837. }
  16838. return INVALID_ID;
  16839. }
  16840. AddStoredItem(type, extraid, const name[], value = 0, serial = 0)
  16841. {
  16842. new
  16843. id = GetNextStoredItemID();
  16844. if (id != INVALID_ID)
  16845. {
  16846. strpack(StoredItems[id][stName], name, MAX_ITEM_NAME);
  16847. StoredItems[id][stExists] = 1;
  16848. StoredItems[id][stValue] = value;
  16849. StoredItems[id][stSerial] = serial;
  16850. StoredItems[id][stFurniture] = 0;
  16851. StoredItems[id][stVehicle] = 0;
  16852. StoredItems[id][stTrashbin] = 0;
  16853. if (type == TRANSFER_TO_SAFE) {
  16854. StoredItems[id][stFurniture] = extraid;
  16855. }
  16856. else if (type == TRANSFER_TO_TRUNK)
  16857. {
  16858. StoredItems[id][stVehicle] = extraid;
  16859. }
  16860. else if (type == TRANSFER_TO_TRASH)
  16861. {
  16862. StoredItems[id][stTrashbin] = extraid;
  16863. }
  16864. format(gExecute, sizeof(gExecute), "INSERT INTO rp_items (itemName, itemValue, itemSerial, itemVehicleID, itemFurnitureID, itemTrashbinID, vehOffsetX, vehOffsetY, vehOffsetZ, vehRotX, vehRotY, vehRotZ) VALUES('%s', %i, %i, %i, %i, %i, '0.0', '0.0', '0.0', '0.0', '0.0', '0.0')", name, StoredItems[id][stValue], StoredItems[id][stSerial], StoredItems[id][stVehicle], StoredItems[id][stFurniture], StoredItems[id][stTrashbin]);
  16865. mysql_tquery(gConnection, gExecute, "OnStoredItemAdded", "i", id);
  16866. }
  16867. return id;
  16868. }
  16869. TransferItem(playerid, itemid, type, extraid = -1)
  16870. {
  16871. new
  16872. id = INVALID_ID,
  16873. item = INVALID_ID
  16874. ;
  16875. switch (type)
  16876. {
  16877. case TRANSFER_TO_SAFE, TRANSFER_TO_TRUNK, TRANSFER_TO_TRASH:
  16878. {
  16879. id = GetNextStoredItemID();
  16880. if (id != INVALID_ID)
  16881. {
  16882. if (GetItemInformation(Inventory[playerid][itemid][invName], ITEM_INFO_STACKABLE)) {
  16883. if (type == TRANSFER_TO_SAFE) {
  16884. item = GetStoredItemID(Inventory[playerid][itemid][invName], STORED_TYPE_SAFE, extraid);
  16885. } else if (type == TRANSFER_TO_TRUNK) {
  16886. item = GetStoredItemID(Inventory[playerid][itemid][invName], STORED_TYPE_TRUNK, extraid);
  16887. } else if (type == TRANSFER_TO_TRASH) {
  16888. item = GetStoredItemID(Inventory[playerid][itemid][invName], STORED_TYPE_TRASH, extraid);
  16889. }
  16890. }
  16891. if (item != INVALID_ID)
  16892. {
  16893. StoredItems[item][stValue] += Inventory[playerid][itemid][invValue];
  16894. format(gExecute, sizeof(gExecute), "UPDATE rp_items SET itemValue = itemValue + %i WHERE itemID = %i", Inventory[playerid][itemid][invValue], StoredItems[item][stID]);
  16895. mysql_tquery(gConnection, gExecute);
  16896. RemoveItemFromInventory(playerid, itemid);
  16897. return item;
  16898. }
  16899. else
  16900. {
  16901. OnItemDelete(playerid, itemid);
  16902. strpack(StoredItems[id][stName], Inventory[playerid][itemid][invName], MAX_ITEM_NAME);
  16903. StoredItems[id][stExists] = 1;
  16904. StoredItems[id][stID] = Inventory[playerid][itemid][invID];
  16905. StoredItems[id][stValue] = Inventory[playerid][itemid][invValue];
  16906. StoredItems[id][stSerial] = Inventory[playerid][itemid][invSerial];
  16907. StoredItems[id][stFurniture] = 0;
  16908. StoredItems[id][stVehicle] = 0;
  16909. StoredItems[id][stTrashbin] = 0;
  16910. for (new i = 0; i < 6; i ++) {
  16911. StoredItems[id][stOffset][i] = Inventory[playerid][itemid][invOffset][i];
  16912. }
  16913. if (type == TRANSFER_TO_SAFE)
  16914. {
  16915. StoredItems[id][stFurniture] = extraid;
  16916. }
  16917. else if (type == TRANSFER_TO_TRUNK)
  16918. {
  16919. StoredItems[id][stVehicle] = extraid;
  16920. for(new Addr = 0; Addr < 6; Addr ++)
  16921. {
  16922. StoredItems[id][vehicleOffset][Addr] = 0.0; // empty it's value
  16923. }
  16924. new Float: thisSpot[3];
  16925. GetPlayerPos(playerid, thisSpot[0], thisSpot[1], thisSpot[2]);
  16926. StoredItems[id][vehicleItem] = CreateDynamicObject(GetItemInformation(StoredItems[id][stName], ITEM_INFO_MODEL), thisSpot[0], thisSpot[1], thisSpot[2], 0.0, 0.0, 0.0);
  16927. EditDynamicObjectEx(playerid, EDIT_TYPE_TRUNK, StoredItems[id][vehicleItem], id);
  16928. }
  16929. else if (type == TRANSFER_TO_TRASH)
  16930. {
  16931. StoredItems[id][stTrashbin] = extraid;
  16932. }
  16933. ResetInventoryItem(playerid, itemid);
  16934. format(gExecute, sizeof(gExecute), "UPDATE rp_items SET itemOwner = 0, itemFurnitureID = %i, itemVehicleID = %i, itemTrashbinID = %i WHERE itemID = %i",
  16935. StoredItems[id][stFurniture],
  16936. StoredItems[id][stVehicle],
  16937. StoredItems[id][stTrashbin],
  16938. StoredItems[id][stID]);
  16939. mysql_tquery(gConnection, gExecute);
  16940. }
  16941. }
  16942. }
  16943. case TRANSFER_TO_PLAYER:
  16944. {
  16945. if ((id = GetNextItemID(extraid)) != INVALID_ID)
  16946. {
  16947. OnItemDelete(playerid, itemid);
  16948. strcpy(Inventory[extraid][id][invName], Inventory[playerid][itemid][invName], MAX_ITEM_NAME);
  16949. Inventory[extraid][id][invExists] = 1;
  16950. Inventory[extraid][id][invID] = Inventory[playerid][itemid][invID];
  16951. Inventory[extraid][id][invValue] = Inventory[playerid][itemid][invValue];
  16952. Inventory[extraid][id][invSerial] = Inventory[playerid][itemid][invSerial];
  16953. for (new i = 0; i < 6; i ++) {
  16954. Inventory[extraid][id][invOffset][i] = Inventory[playerid][itemid][invOffset][i];
  16955. }
  16956. ResetInventoryItem(playerid, itemid);
  16957. format(gExecute, sizeof(gExecute), "UPDATE rp_items SET itemOwner = %i WHERE itemID = %i", Players[extraid][pID], Inventory[extraid][id][invID]);
  16958. mysql_tquery(gConnection, gExecute);
  16959. }
  16960. }
  16961. case TRANSFER_TO_GROUND:
  16962. {
  16963. id = GetNextDropID();
  16964. if (id != INVALID_ID)
  16965. {
  16966. OnItemDelete(playerid, itemid);
  16967. strcpy(DropItems[id][dName], Inventory[playerid][itemid][invName], MAX_ITEM_NAME);
  16968. GetPlayerPos(playerid, DropItems[id][dSpawn][0], DropItems[id][dSpawn][1], DropItems[id][dSpawn][2]);
  16969. GetPlayerFacingAngle(playerid, DropItems[id][dSpawn][3]);
  16970. DropItems[id][dExists] = 1;
  16971. DropItems[id][dID] = Inventory[playerid][itemid][invID];
  16972. DropItems[id][dValue] = Inventory[playerid][itemid][invValue];
  16973. DropItems[id][dSerial] = Inventory[playerid][itemid][invSerial];
  16974. DropItems[id][dInterior] = GetPlayerInterior(playerid);
  16975. DropItems[id][dWorld] = GetPlayerVirtualWorld(playerid);
  16976. DropItems[id][dObject] = INVALID_OBJECT_ID;
  16977. //DropItems[id][dText] = INVALID_3DTEXT_ID;
  16978. for (new i = 0; i < 6; i ++) {
  16979. DropItems[id][dOffset][i] = Inventory[playerid][itemid][invOffset][i];
  16980. }
  16981. UpdateDropItem(id);
  16982. ResetInventoryItem(playerid, itemid);
  16983. format(gExecute, sizeof(gExecute), "UPDATE rp_items SET itemOwner = 0, itemDropped = 1, itemX = %.4f, itemY = %.4f, itemZ = %.4f, itemA = %.4f, itemInt = %i, itemWorld = %i WHERE itemID = %i", DropItems[id][dSpawn][0], DropItems[id][dSpawn][1], DropItems[id][dSpawn][2], DropItems[id][dSpawn][3], DropItems[id][dInterior], DropItems[id][dWorld], DropItems[id][dID]);
  16984. mysql_tquery(gConnection, gExecute);
  16985. }
  16986. }
  16987. }
  16988. return id;
  16989. }
  16990. AddDropItem(const item[], value, serial, Float:x, Float:y, Float:z, Float:angle, interior, worldid)
  16991. {
  16992. new
  16993. id = GetNextDropID();
  16994. if (isnull(item))
  16995. {
  16996. return INVALID_ID;
  16997. }
  16998. if (id != INVALID_ID)
  16999. {
  17000. strcpy(DropItems[id][dName], item, MAX_ITEM_NAME);
  17001. DropItems[id][dExists] = 1;
  17002. DropItems[id][dValue] = value;
  17003. DropItems[id][dSerial] = serial;
  17004. DropItems[id][dSpawn][0] = x;
  17005. DropItems[id][dSpawn][1] = y;
  17006. DropItems[id][dSpawn][2] = z;
  17007. DropItems[id][dSpawn][3] = angle;
  17008. DropItems[id][dInterior] = interior;
  17009. DropItems[id][dWorld] = worldid;
  17010. format(gExecute, sizeof(gExecute), "INSERT INTO rp_items (itemName, itemValue, itemSerial, itemDropped, itemX, itemY, itemZ, itemA, itemInt, itemWorld) VALUES('%s', %i, %i, 1, %.4f, %.4f, %.4f, %.4f, %i, %i)", DropItems[id][dName], DropItems[id][dValue], DropItems[id][dSerial], DropItems[id][dSpawn][0], DropItems[id][dSpawn][1], DropItems[id][dSpawn][2], DropItems[id][dSpawn][3], DropItems[id][dInterior], DropItems[id][dWorld]);
  17011. mysql_tquery(gConnection, gExecute, "OnDropItemAdded", "i", id);
  17012. UpdateDropItem(id);
  17013. }
  17014. return id;
  17015. }
  17016. DropWeapon(playerid, weaponid, ammo = 0)
  17017. {
  17018. new
  17019. Float:x,
  17020. Float:y,
  17021. Float:z,
  17022. Float:angle,
  17023. serial;
  17024. GetPlayerPos(playerid, x, y, z);
  17025. GetPlayerFacingAngle(playerid, angle);
  17026. if (weaponid == Weapons[playerid][wPrimary]) {
  17027. serial = Weapons[playerid][wPrimarySerial];
  17028. } else if (weaponid == Weapons[playerid][wSecondary]) {
  17029. serial = Weapons[playerid][wSecondarySerial];
  17030. } else if (weaponid == Weapons[playerid][wTertiary]) {
  17031. serial = Weapons[playerid][wTertiarySerial];
  17032. }
  17033. AddDropItem(GetWeaponItemName(weaponid), ammo, serial, x, y, z, angle, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid));
  17034. if (weaponid == Weapons[playerid][wMelee]) {
  17035. SetPlayerWeapon(playerid, WEAPON_MELEE, 0);
  17036. } else if (weaponid == Weapons[playerid][wPrimary]) {
  17037. SetPlayerWeapon(playerid, WEAPON_PRIMARY, 0);
  17038. } else if (weaponid == Weapons[playerid][wSecondary]) {
  17039. SetPlayerWeapon(playerid, WEAPON_SECONDARY, 0);
  17040. } else if (weaponid == Weapons[playerid][wTertiary]) {
  17041. SetPlayerWeapon(playerid, WEAPON_TERTIARY, 0);
  17042. }
  17043. return 1;
  17044. }
  17045. DiscardItem(playerid, itemid)
  17046. {
  17047. TransferItem(playerid, itemid, TRANSFER_TO_GROUND);
  17048. return 1;
  17049. }
  17050. LoadTextDraws()
  17051. {
  17052. // House lights textdraw
  17053. gGlobalTextdraws[0] = TextDrawCreate(650.000000, -5.000000, "_");
  17054. TextDrawBackgroundColor(gGlobalTextdraws[0], 255);
  17055. TextDrawFont(gGlobalTextdraws[0], 1);
  17056. TextDrawLetterSize(gGlobalTextdraws[0], 0.500000, 55.000000);
  17057. TextDrawColor(gGlobalTextdraws[0], -1);
  17058. TextDrawSetOutline(gGlobalTextdraws[0], 0);
  17059. TextDrawSetProportional(gGlobalTextdraws[0], 1);
  17060. TextDrawSetShadow(gGlobalTextdraws[0], 1);
  17061. TextDrawUseBox(gGlobalTextdraws[0], 1);
  17062. TextDrawBoxColor(gGlobalTextdraws[0], 136);
  17063. TextDrawTextSize(gGlobalTextdraws[0], -10.000000, 0.000000);
  17064. // Time textdraw
  17065. gGlobalTextdraws[1] = TextDrawCreate(576.000000, 21.000000, "00:00");
  17066. TextDrawAlignment(gGlobalTextdraws[1], 2);
  17067. TextDrawBackgroundColor(gGlobalTextdraws[1], 255);
  17068. TextDrawFont(gGlobalTextdraws[1], 3);
  17069. TextDrawLetterSize(gGlobalTextdraws[1], 0.550000, 1.700000);
  17070. TextDrawColor(gGlobalTextdraws[1], -1);
  17071. TextDrawSetOutline(gGlobalTextdraws[1], 1);
  17072. TextDrawSetProportional(gGlobalTextdraws[1], 1);
  17073. // Black screen textdraw
  17074. gGlobalTextdraws[2] = TextDrawCreate(650.000000, -5.000000, "_");
  17075. TextDrawBackgroundColor(gGlobalTextdraws[2], 255);
  17076. TextDrawFont(gGlobalTextdraws[2], 1);
  17077. TextDrawLetterSize(gGlobalTextdraws[2], 0.500000, 55.000000);
  17078. TextDrawColor(gGlobalTextdraws[2], -1);
  17079. TextDrawSetOutline(gGlobalTextdraws[2], 0);
  17080. TextDrawSetProportional(gGlobalTextdraws[2], 1);
  17081. TextDrawSetShadow(gGlobalTextdraws[2], 1);
  17082. TextDrawUseBox(gGlobalTextdraws[2], 1);
  17083. TextDrawBoxColor(gGlobalTextdraws[2], 0x000000ff);
  17084. TextDrawTextSize(gGlobalTextdraws[2], -10.000000, 0.000000);
  17085. }
  17086. LoadStaticBuildings()
  17087. {
  17088. for (new i = 0; i < sizeof(g_StaticBuildings); i ++)
  17089. {
  17090. CreateDynamicPickup(g_StaticBuildings[i][e_IconModel], 23, g_StaticBuildings[i][e_SpawnX], g_StaticBuildings[i][e_SpawnY], g_StaticBuildings[i][e_SpawnZ]);
  17091. CreateDynamic3DTextLabel(g_StaticBuildings[i][e_BuildingName], COLOR_GREY, g_StaticBuildings[i][e_SpawnX], g_StaticBuildings[i][e_SpawnY], g_StaticBuildings[i][e_SpawnZ], 10.0);
  17092. }
  17093. for (new i = 0; i < sizeof(g_HospitalLocations); i ++)
  17094. {
  17095. CreateDynamicPickup(19198, 23, g_HospitalLocations[i][0], g_HospitalLocations[i][1], g_HospitalLocations[i][2] + 0.5);
  17096. CreateDynamic3DTextLabel("Press H to enter hospital", COLOR_GREY, g_HospitalLocations[i][0], g_HospitalLocations[i][1], g_HospitalLocations[i][2], 10.0);
  17097. }
  17098. }
  17099. LoadDynamicObjects()
  17100. {
  17101. // Inglewood Gas Station
  17102. CreateDynamicObject(1257, 1954.156494, -1767.254882, 13.792809, 0.000000, 0.000000, 180.000000);
  17103. CreateDynamicObject(970, 1942.256469, -1767.598266, 13.092811, 0.000000, 0.000000, 90.000000);
  17104. CreateDynamicObject(970, 1942.256469, -1771.718627, 13.092811, 0.000000, 0.000000, 90.000000);
  17105. CreateDynamicObject(970, 1942.256469, -1775.848876, 13.092811, 0.000000, 0.000000, 90.000000);
  17106. CreateDynamicObject(970, 1942.256469, -1777.948974, 13.092811, 0.000000, 0.000000, 90.000000);
  17107. CreateDynamicObject(970, 1941.095825, -1777.948974, 13.092811, 0.000000, 0.000000, 90.000000);
  17108. CreateDynamicObject(970, 1941.096191, -1775.848876, 13.092811, 0.000000, 0.000000, 90.000000);
  17109. CreateDynamicObject(970, 1941.096679, -1771.718627, 13.092811, 0.000000, 0.000000, 90.000000);
  17110. CreateDynamicObject(970, 1941.095703, -1767.598266, 13.092811, 0.000000, 0.000000, 90.000000);
  17111. CreateDynamicObject(1215, 1941.625610, -1780.841918, 13.160593, 0.000000, 0.000000, 95.991020);
  17112. CreateDynamicObject(1215, 1941.636230, -1765.047241, 13.160593, 0.000000, 0.000000, 95.991020);
  17113. CreateDynamicObject(1291, 1928.692382, -1767.511352, 13.032809, 0.000000, 0.000000, 90.000000);
  17114. CreateDynamicObject(1287, 1928.503662, -1768.784423, 13.076869, 0.000000, 0.000000, -90.000000);
  17115. CreateDynamicObject(1289, 1928.507202, -1769.368896, 13.092813, 0.000000, 0.000000, -90.228660);
  17116. //CreateDynamicObject(1216, 1928.558593, -1785.416381, 13.242809, 0.000000, 0.000000, 90.000000);
  17117. CreateDynamicObject(1250, 1908.817138, -1782.609863, 13.582806, 0.000000, 0.000000, 90.000000);
  17118. // Weapon shop Ilegal
  17119. new object;
  17120. new worldid;
  17121. new interiorid;
  17122. object = CreateDynamicObject(6959,507.7510,-2303.0110,511.8220,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17123. SetDynamicObjectMaterial(object, 0, 5149, "lasground2_las2", "driveway4_128", 0x00000000);
  17124. object = CreateDynamicObject(19353,508.0850,-2317.2791,513.5410,0.0000,0.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17125. SetDynamicObjectMaterial(object, 0, 8678, "wddngchplgrnd01", "vgschapelwall01_128", 0x00000000);
  17126. object = CreateDynamicObject(19383,504.8750,-2317.2791,513.5410,0.0000,0.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17127. SetDynamicObjectMaterial(object, 0, 8678, "wddngchplgrnd01", "vgschapelwall01_128", 0x00000000);
  17128. object = CreateDynamicObject(19859,505.6060,-2317.2891,513.0290,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17129. SetDynamicObjectMaterial(object, 0, 18200, "w_town2cs_t", "Bow_door_graffiti_128", 0x00000000);
  17130. object = CreateDynamicObject(19353,501.6650,-2317.2791,513.5410,0.0000,0.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17131. SetDynamicObjectMaterial(object, 0, 8678, "wddngchplgrnd01", "vgschapelwall01_128", 0x00000000);
  17132. object = CreateDynamicObject(18066,505.6350,-2317.2461,513.6590,0.0000,90.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17133. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17134. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17135. object = CreateDynamicObject(18066,504.8810,-2317.2461,514.3140,90.0000,180.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17136. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17137. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17138. object = CreateDynamicObject(18066,505.6350,-2317.2461,512.2390,0.0000,90.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17139. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17140. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17141. object = CreateDynamicObject(18066,504.0650,-2317.2461,513.6600,0.0000,90.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17142. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17143. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17144. object = CreateDynamicObject(18066,504.8010,-2317.2439,514.3160,90.0000,180.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17145. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17146. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17147. object = CreateDynamicObject(18066,504.0650,-2317.2461,512.2390,0.0000,90.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17148. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17149. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17150. object = CreateDynamicObject(19399,509.1950,-2318.9180,513.5410,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17151. SetDynamicObjectMaterial(object, 0, 8678, "wddngchplgrnd01", "vgschapelwall01_128", 0x00000000);
  17152. object = CreateDynamicObject(1897,509.0520,-2317.3169,512.8950,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17153. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17154. object = CreateDynamicObject(1897,509.0520,-2317.3169,515.1250,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17155. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17156. object = CreateDynamicObject(1897,507.8830,-2317.3169,515.2450,0.0000,90.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17157. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17158. object = CreateDynamicObject(1897,505.6530,-2317.3169,515.2450,0.0000,90.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17159. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17160. object = CreateDynamicObject(1897,503.4230,-2317.3169,515.2450,0.0000,90.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17161. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17162. object = CreateDynamicObject(19383,502.2450,-2318.9280,513.5410,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17163. SetDynamicObjectMaterial(object, 0, 8678, "wddngchplgrnd01", "vgschapelwall01_128", 0x00000000);
  17164. object = CreateDynamicObject(3361,508.1520,-2326.0259,509.7130,0.0000,0.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17165. SetDynamicObjectMaterial(object, 0, 3925, "weemap", "Bow_Abattoir_Conc2", 0xFFFFFFFF);
  17166. SetDynamicObjectMaterial(object, 1, 8438, "vgseroads", "ws_sub_pen_conc", 0x00000000);
  17167. SetDynamicObjectMaterial(object, 4, 3925, "weemap", "Bow_Abattoir_Conc2", 0x00000000);
  17168. object = CreateDynamicObject(19353,502.2460,-2322.1311,513.5410,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17169. SetDynamicObjectMaterial(object, 0, 8678, "wddngchplgrnd01", "vgschapelwall01_128", 0x00000000);
  17170. object = CreateDynamicObject(19353,509.1950,-2322.1279,513.5410,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17171. SetDynamicObjectMaterial(object, 0, 8678, "wddngchplgrnd01", "vgschapelwall01_128", 0x00000000);
  17172. object = CreateDynamicObject(3361,506.0420,-2326.2759,513.7330,0.0000,0.0000,450.0000, worldid , interiorid, -1,200.0,200.0);
  17173. SetDynamicObjectMaterial(object, 0, 3925, "weemap", "Bow_Abattoir_Conc2", 0xFFFFFFFF);
  17174. SetDynamicObjectMaterial(object, 1, 8438, "vgseroads", "ws_sub_pen_conc", 0x00000000);
  17175. SetDynamicObjectMaterial(object, 4, 3925, "weemap", "Bow_Abattoir_Conc2", 0x00000000);
  17176. object = CreateDynamicObject(19353,503.4760,-2322.8120,513.5410,0.0000,0.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17177. SetDynamicObjectMaterial(object, 0, 8678, "wddngchplgrnd01", "vgschapelwall01_128", 0x00000000);
  17178. object = CreateDynamicObject(19353,504.9960,-2324.3311,513.5410,0.0000,0.0000,360.0000, worldid , interiorid, -1,200.0,200.0);
  17179. SetDynamicObjectMaterial(object, 0, 8678, "wddngchplgrnd01", "vgschapelwall01_128", 0x00000000);
  17180. object = CreateDynamicObject(19353,509.1950,-2325.3369,513.5410,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17181. SetDynamicObjectMaterial(object, 0, 8678, "wddngchplgrnd01", "vgschapelwall01_128", 0x00000000);
  17182. object = CreateDynamicObject(3095,504.6130,-2318.2329,515.2810,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17183. SetDynamicObjectMaterial(object, 1, 9583, "bigshap_sfw", "man_ceiling", 0x00000000);
  17184. object = CreateDynamicObject(19353,504.9960,-2327.5420,513.5410,0.0000,0.0000,360.0000, worldid , interiorid, -1,200.0,200.0);
  17185. SetDynamicObjectMaterial(object, 0, 8678, "wddngchplgrnd01", "vgschapelwall01_128", 0x00000000);
  17186. object = CreateDynamicObject(19353,504.9960,-2327.5420,517.0410,0.0000,0.0000,360.0000, worldid , interiorid, -1,200.0,200.0);
  17187. SetDynamicObjectMaterial(object, 0, 8678, "wddngchplgrnd01", "vgschapelwall01_128", 0x00000000);
  17188. object = CreateDynamicObject(19353,504.9960,-2324.3320,517.0410,0.0000,0.0000,360.0000, worldid , interiorid, -1,200.0,200.0);
  17189. SetDynamicObjectMaterial(object, 0, 8678, "wddngchplgrnd01", "vgschapelwall01_128", 0x00000000);
  17190. object = CreateDynamicObject(3095,511.5720,-2327.2329,515.2810,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17191. SetDynamicObjectMaterial(object, 1, 9583, "bigshap_sfw", "man_ceiling", 0x00000000);
  17192. object = CreateDynamicObject(19353,507.1160,-2324.3320,517.0410,0.0000,0.0000,360.0000, worldid , interiorid, -1,200.0,200.0);
  17193. SetDynamicObjectMaterial(object, 0, 8678, "wddngchplgrnd01", "vgschapelwall01_128", 0x00000000);
  17194. object = CreateDynamicObject(19353,507.1160,-2327.5449,517.0410,0.0000,0.0000,360.0000, worldid , interiorid, -1,200.0,200.0);
  17195. SetDynamicObjectMaterial(object, 0, 8678, "wddngchplgrnd01", "vgschapelwall01_128", 0x00000000);
  17196. object = CreateDynamicObject(19353,509.1950,-2328.5459,513.5410,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17197. SetDynamicObjectMaterial(object, 0, 8678, "wddngchplgrnd01", "vgschapelwall01_128", 0x00000000);
  17198. object = CreateDynamicObject(1498,502.2340,-2319.7061,511.7800,0.0000,0.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17199. SetDynamicObjectMaterial(object, 0, -1, "none", "none", 0xFFFFFFFF);
  17200. object = CreateDynamicObject(3095,504.6130,-2325.9170,518.4670,-45.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17201. SetDynamicObjectMaterial(object, 1, 13012, "sw_apartflat5", "concretenew256", 0x00000000);
  17202. object = CreateDynamicObject(3095,504.6130,-2330.6909,518.7810,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17203. SetDynamicObjectMaterial(object, 1, 9583, "bigshap_sfw", "man_ceiling", 0x00000000);
  17204. object = CreateDynamicObject(19353,504.9960,-2330.7510,517.0410,0.0000,0.0000,360.0000, worldid , interiorid, -1,200.0,200.0);
  17205. SetDynamicObjectMaterial(object, 0, 8678, "wddngchplgrnd01", "vgschapelwall01_128", 0x00000000);
  17206. object = CreateDynamicObject(19353,506.6360,-2331.2510,517.0410,0.0000,0.0000,450.0000, worldid , interiorid, -1,200.0,200.0);
  17207. SetDynamicObjectMaterial(object, 0, 8678, "wddngchplgrnd01", "vgschapelwall01_128", 0x00000000);
  17208. object = CreateDynamicObject(16501,504.7890,-2326.5491,513.7500,-33.5000,90.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17209. SetDynamicObjectMaterial(object, 0, 3925, "weemap", "Bow_Abattoir_Conc2", 0xFFFFFFFF);
  17210. object = CreateDynamicObject(16501,504.7890,-2326.2410,513.5500,-33.5000,90.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17211. SetDynamicObjectMaterial(object, 0, 3925, "weemap", "Bow_Abattoir_Conc2", 0xFFFFFFFF);
  17212. object = CreateDynamicObject(16501,506.9090,-2325.6780,509.7570,-33.5000,90.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17213. SetDynamicObjectMaterial(object, 0, 3925, "weemap", "Bow_Abattoir_Conc2", 0xFFFFFFFF);
  17214. object = CreateDynamicObject(16501,506.9090,-2326.4441,509.2460,-33.5000,90.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17215. SetDynamicObjectMaterial(object, 0, 3925, "weemap", "Bow_Abattoir_Conc2", 0xFFFFFFFF);
  17216. object = CreateDynamicObject(1763,506.0940,-2326.8669,514.3020,18.4000,34.3000,103.9000, worldid , interiorid, -1,200.0,200.0);
  17217. SetDynamicObjectMaterial(object, 0, 14860, "gf1", "CJ_MAT2DIRT", 0x00000000);
  17218. object = CreateDynamicObject(1347,506.1950,-2327.2200,515.2800,0.0000,37.7000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17219. object = CreateDynamicObject(913,506.7430,-2330.6909,516.6400,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17220. SetDynamicObjectMaterial(object, 0, 14754, "sfhsb3", "mp_apt1_brokedoor", 0x00000000);
  17221. object = CreateDynamicObject(2350,506.2620,-2327.0081,515.5870,-34.9000,22.7000,5.5000, worldid , interiorid, -1,200.0,200.0);
  17222. object = CreateDynamicObject(2807,506.6860,-2326.3191,514.5800,-30.4000,4.0000,-2.9000, worldid , interiorid, -1,200.0,200.0);
  17223. SetDynamicObjectMaterial(object, 0, 10789, "xenon_sfse", "bluemetal02", 0x00000000);
  17224. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17225. object = CreateDynamicObject(1265,505.4550,-2327.3269,514.9430,-17.2000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17226. object = CreateDynamicObject(1265,506.6110,-2328.3479,515.7710,1.7000,29.1000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17227. object = CreateDynamicObject(1265,505.6590,-2325.4790,514.3440,-4.1000,-51.5000,-87.9000, worldid , interiorid, -1,200.0,200.0);
  17228. object = CreateDynamicObject(19940,506.6260,-2325.8860,514.6840,-7.7000,35.0000,118.2000, worldid , interiorid, -1,200.0,200.0);
  17229. SetDynamicObjectMaterial(object, 0, 3925, "weemap", "telepole128", 0xFFFFFFFF);
  17230. object = CreateDynamicObject(16500,504.5450,-2325.3269,515.1710,0.0000,0.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17231. SetDynamicObjectMaterial(object, 0, -1, "none", "none", 0x00FFFFFF);
  17232. object = CreateDynamicObject(6959,508.3090,-2337.0979,507.7250,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17233. SetDynamicObjectMaterial(object, 0, 12923, "sw_block05", "dustyconcrete", 0xFFCCCCCC);
  17234. object = CreateDynamicObject(19353,509.1950,-2328.5459,510.0410,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17235. SetDynamicObjectMaterial(object, 0, 17500, "stormdrain", "macbrij2_LAe", 0x00000000);
  17236. object = CreateDynamicObject(19353,509.1950,-2328.5459,506.5410,180.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17237. SetDynamicObjectMaterial(object, 0, 17500, "stormdrain", "macbrij2_LAe", 0x00000000);
  17238. object = CreateDynamicObject(19353,509.1950,-2328.5459,510.0410,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17239. SetDynamicObjectMaterial(object, 0, 17500, "stormdrain", "macbrij2_LAe", 0x00000000);
  17240. object = CreateDynamicObject(19353,509.1950,-2325.3359,510.0410,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17241. SetDynamicObjectMaterial(object, 0, 17500, "stormdrain", "macbrij2_LAe", 0x00000000);
  17242. object = CreateDynamicObject(19353,510.7250,-2330.0681,509.4310,0.0000,0.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17243. SetDynamicObjectMaterial(object, 0, 17500, "stormdrain", "macbrij2_LAe", 0x00000000);
  17244. object = CreateDynamicObject(19353,506.9750,-2328.5459,510.0410,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17245. SetDynamicObjectMaterial(object, 0, 17500, "stormdrain", "macbrij2_LAe", 0x00000000);
  17246. object = CreateDynamicObject(19353,506.9750,-2325.3359,510.0410,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17247. SetDynamicObjectMaterial(object, 0, 17500, "stormdrain", "macbrij2_LAe", 0x00000000);
  17248. object = CreateDynamicObject(19353,506.9750,-2322.1331,510.0410,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17249. SetDynamicObjectMaterial(object, 0, 17500, "stormdrain", "macbrij2_LAe", 0x00000000);
  17250. object = CreateDynamicObject(19353,506.9750,-2328.5459,506.5410,180.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17251. SetDynamicObjectMaterial(object, 0, 17500, "stormdrain", "macbrij2_LAe", 0x00000000);
  17252. object = CreateDynamicObject(3095,511.5320,-2328.6909,514.1210,35.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17253. SetDynamicObjectMaterial(object, 1, 13012, "sw_apartflat5", "concretenew256", 0x00000000);
  17254. object = CreateDynamicObject(3095,511.5390,-2334.6411,511.1590,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17255. SetDynamicObjectMaterial(object, 1, 9583, "bigshap_sfw", "man_ceiling", 0x00000000);
  17256. object = CreateDynamicObject(19353,507.5250,-2330.1951,513.5410,0.0000,0.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17257. SetDynamicObjectMaterial(object, 0, 8678, "wddngchplgrnd01", "vgschapelwall01_128", 0x00000000);
  17258. object = CreateDynamicObject(19353,507.5250,-2330.2051,512.9200,180.0000,0.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17259. SetDynamicObjectMaterial(object, 0, 17500, "stormdrain", "macbrij2_LAe", 0x00000000);
  17260. object = CreateDynamicObject(1897,502.2830,-2318.5581,515.2450,0.0000,90.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17261. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17262. object = CreateDynamicObject(1897,502.2830,-2320.7871,515.2450,0.0000,90.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17263. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17264. object = CreateDynamicObject(1897,502.2830,-2323.0171,515.2450,0.0000,90.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17265. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17266. object = CreateDynamicObject(1897,502.2830,-2322.6770,512.9040,0.0000,180.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17267. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17268. object = CreateDynamicObject(1897,502.2830,-2322.6770,515.1340,0.0000,180.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17269. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17270. object = CreateDynamicObject(1897,502.2830,-2317.4470,512.9040,0.0000,180.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17271. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17272. object = CreateDynamicObject(1897,502.2830,-2317.4470,515.1240,0.0000,180.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17273. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17274. object = CreateDynamicObject(1897,509.1630,-2318.5559,515.2450,360.0000,90.0000,450.0000, worldid , interiorid, -1,200.0,200.0);
  17275. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17276. object = CreateDynamicObject(1897,509.1630,-2320.7859,515.2450,360.0000,90.0000,450.0000, worldid , interiorid, -1,200.0,200.0);
  17277. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17278. object = CreateDynamicObject(1897,509.1650,-2321.7571,515.2440,360.0000,90.0000,450.0000, worldid , interiorid, -1,200.0,200.0);
  17279. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17280. object = CreateDynamicObject(1897,509.1650,-2322.9270,512.8730,360.0000,180.0000,450.0000, worldid , interiorid, -1,200.0,200.0);
  17281. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17282. object = CreateDynamicObject(1897,509.1650,-2322.9270,515.1030,360.0000,180.0000,450.0000, worldid , interiorid, -1,200.0,200.0);
  17283. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17284. object = CreateDynamicObject(1897,505.0300,-2322.7771,512.8730,360.0000,180.0000,720.0000, worldid , interiorid, -1,200.0,200.0);
  17285. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17286. object = CreateDynamicObject(1897,505.0300,-2322.7771,515.1030,360.0000,180.0000,720.0000, worldid , interiorid, -1,200.0,200.0);
  17287. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17288. object = CreateDynamicObject(1897,503.8400,-2322.7771,515.2130,360.0000,270.0000,1080.0000, worldid , interiorid, -1,200.0,200.0);
  17289. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17290. object = CreateDynamicObject(1897,501.6100,-2322.7771,515.2130,360.0000,270.0000,1080.0000, worldid , interiorid, -1,200.0,200.0);
  17291. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17292. object = CreateDynamicObject(19482,509.2010,-2317.7859,513.9950,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17293. SetDynamicObjectMaterial(object, 0, 11390, "hubint2", "ws_fuckedwin2", 0x00000000);
  17294. object = CreateDynamicObject(19482,509.2610,-2317.7859,514.0050,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17295. SetDynamicObjectMaterial(object, 0, 17944, "lngblok_lae2", "white64bumpy", 0xDDFFFFFF);
  17296. object = CreateDynamicObject(647,511.6760,-2318.7539,513.4700,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17297. object = CreateDynamicObject(647,511.6760,-2322.7849,513.9300,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17298. object = CreateDynamicObject(18066,502.2260,-2318.1670,513.6590,0.0000,90.0000,360.0000, worldid , interiorid, -1,200.0,200.0);
  17299. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17300. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17301. object = CreateDynamicObject(18066,502.2260,-2318.1670,512.2390,0.0000,90.0000,360.0000, worldid , interiorid, -1,200.0,200.0);
  17302. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17303. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17304. object = CreateDynamicObject(18066,502.2260,-2319.7371,512.2390,0.0000,90.0000,360.0000, worldid , interiorid, -1,200.0,200.0);
  17305. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17306. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17307. object = CreateDynamicObject(18066,502.2260,-2319.7371,513.6590,0.0000,90.0000,360.0000, worldid , interiorid, -1,200.0,200.0);
  17308. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17309. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17310. object = CreateDynamicObject(18066,502.2260,-2318.9961,514.3150,90.0000,180.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17311. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17312. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17313. object = CreateDynamicObject(18066,502.2280,-2318.9060,514.3140,90.0000,180.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17314. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17315. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17316. object = CreateDynamicObject(18066,509.0980,-2318.7461,512.9530,90.0000,180.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17317. SetDynamicObjectMaterial(object, 0, 1637, "od_beachstuff", "wood02", 0x00000000);
  17318. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17319. object = CreateDynamicObject(18066,509.0990,-2319.1060,512.9560,90.0000,180.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17320. SetDynamicObjectMaterial(object, 0, 1637, "od_beachstuff", "wood02", 0x00000000);
  17321. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17322. object = CreateDynamicObject(18066,509.2190,-2317.9980,513.6390,180.0000,270.0000,540.0000, worldid , interiorid, -1,200.0,200.0);
  17323. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17324. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17325. object = CreateDynamicObject(18066,509.2190,-2319.8501,513.6390,180.0000,270.0000,540.0000, worldid , interiorid, -1,200.0,200.0);
  17326. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17327. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17328. object = CreateDynamicObject(18066,509.2190,-2319.1650,514.3790,270.0000,270.0000,540.0000, worldid , interiorid, -1,200.0,200.0);
  17329. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17330. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17331. object = CreateDynamicObject(18066,509.2200,-2318.6541,514.3800,270.0000,270.0000,540.0000, worldid , interiorid, -1,200.0,200.0);
  17332. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17333. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17334. object = CreateDynamicObject(18066,509.2800,-2318.8840,513.6890,360.0000,270.0000,540.0000, worldid , interiorid, -1,200.0,200.0);
  17335. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17336. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17337. object = CreateDynamicObject(1897,509.1670,-2324.1179,511.8430,360.0000,270.0000,1170.0000, worldid , interiorid, -1,200.0,200.0);
  17338. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17339. object = CreateDynamicObject(19353,509.1950,-2322.1221,510.0410,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17340. SetDynamicObjectMaterial(object, 0, 17500, "stormdrain", "macbrij2_LAe", 0x00000000);
  17341. object = CreateDynamicObject(1897,509.1670,-2326.3479,511.8430,360.0000,270.0000,1170.0000, worldid , interiorid, -1,200.0,200.0);
  17342. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17343. object = CreateDynamicObject(1897,509.1670,-2328.5801,511.8430,360.0000,270.0000,1170.0000, worldid , interiorid, -1,200.0,200.0);
  17344. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17345. object = CreateDynamicObject(1897,509.1670,-2330.8110,511.8430,360.0000,270.0000,1170.0000, worldid , interiorid, -1,200.0,200.0);
  17346. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17347. object = CreateDynamicObject(1897,506.9670,-2324.5391,511.8430,540.0000,270.0000,1530.0000, worldid , interiorid, -1,200.0,200.0);
  17348. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17349. object = CreateDynamicObject(1897,506.9670,-2326.7700,511.8430,540.0000,270.0000,1530.0000, worldid , interiorid, -1,200.0,200.0);
  17350. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17351. object = CreateDynamicObject(1897,506.9670,-2329.0000,511.8430,540.0000,270.0000,1530.0000, worldid , interiorid, -1,200.0,200.0);
  17352. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17353. object = CreateDynamicObject(1897,508.0170,-2330.1809,511.8650,900.0000,270.0000,1620.0000, worldid , interiorid, -1,200.0,200.0);
  17354. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17355. object = CreateDynamicObject(19353,506.9750,-2331.7539,509.4410,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17356. SetDynamicObjectMaterial(object, 0, 17500, "stormdrain", "macbrij2_LAe", 0x00000000);
  17357. object = CreateDynamicObject(19383,512.2450,-2331.7571,509.4310,0.0000,0.0000,360.0000, worldid , interiorid, -1,200.0,200.0);
  17358. SetDynamicObjectMaterial(object, 0, 17500, "stormdrain", "macbrij2_LAe", 0x00000000);
  17359. object = CreateDynamicObject(19353,506.9750,-2334.9651,509.4410,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17360. SetDynamicObjectMaterial(object, 0, 17500, "stormdrain", "macbrij2_LAe", 0x00000000);
  17361. object = CreateDynamicObject(19353,512.2460,-2334.9651,509.4410,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17362. SetDynamicObjectMaterial(object, 0, 17500, "stormdrain", "macbrij2_LAe", 0x00000000);
  17363. object = CreateDynamicObject(19445,507.3560,-2335.7561,509.4410,0.0000,0.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17364. SetDynamicObjectMaterial(object, 0, 17500, "stormdrain", "macbrij2_LAe", 0x00000000);
  17365. object = CreateDynamicObject(19383,512.4250,-2331.7571,509.4310,0.0000,0.0000,360.0000, worldid , interiorid, -1,200.0,200.0);
  17366. SetDynamicObjectMaterial(object, 0, 5174, "warehus_las2", "newall1-1128", 0x00000000);
  17367. object = CreateDynamicObject(19353,512.4250,-2334.9680,509.4310,0.0000,0.0000,360.0000, worldid , interiorid, -1,200.0,200.0);
  17368. SetDynamicObjectMaterial(object, 0, 5174, "warehus_las2", "newall1-1128", 0x00000000);
  17369. object = CreateDynamicObject(19353,512.4250,-2328.5481,509.4310,0.0000,0.0000,360.0000, worldid , interiorid, -1,200.0,200.0);
  17370. SetDynamicObjectMaterial(object, 0, 5174, "warehus_las2", "newall1-1128", 0x00000000);
  17371. object = CreateDynamicObject(19353,514.1050,-2327.0271,509.4310,0.0000,0.0000,450.0000, worldid , interiorid, -1,200.0,200.0);
  17372. SetDynamicObjectMaterial(object, 0, 5174, "warehus_las2", "newall1-1128", 0x00000000);
  17373. object = CreateDynamicObject(19353,514.1050,-2336.6189,509.4310,0.0000,0.0000,450.0000, worldid , interiorid, -1,200.0,200.0);
  17374. SetDynamicObjectMaterial(object, 0, 5174, "warehus_las2", "newall1-1128", 0x00000000);
  17375. object = CreateDynamicObject(19353,517.3150,-2336.6189,509.4310,0.0000,0.0000,450.0000, worldid , interiorid, -1,200.0,200.0);
  17376. SetDynamicObjectMaterial(object, 0, 5174, "warehus_las2", "newall1-1128", 0x00000000);
  17377. object = CreateDynamicObject(19383,518.9950,-2334.9490,509.4310,0.0000,0.0000,540.0000, worldid , interiorid, -1,200.0,200.0);
  17378. SetDynamicObjectMaterial(object, 0, 5174, "warehus_las2", "newall1-1128", 0x00000000);
  17379. object = CreateDynamicObject(19353,520.5150,-2333.2710,509.4310,0.0000,0.0000,450.0000, worldid , interiorid, -1,200.0,200.0);
  17380. SetDynamicObjectMaterial(object, 0, 5174, "warehus_las2", "newall1-1128", 0x00000000);
  17381. object = CreateDynamicObject(19353,517.3140,-2327.0271,509.4310,0.0000,0.0000,450.0000, worldid , interiorid, -1,200.0,200.0);
  17382. SetDynamicObjectMaterial(object, 0, 5174, "warehus_las2", "newall1-1128", 0x00000000);
  17383. object = CreateDynamicObject(19353,520.5250,-2327.0271,509.4310,0.0000,0.0000,450.0000, worldid , interiorid, -1,200.0,200.0);
  17384. SetDynamicObjectMaterial(object, 0, 5174, "warehus_las2", "newall1-1128", 0x00000000);
  17385. object = CreateDynamicObject(19353,523.7340,-2327.0271,509.4310,0.0000,0.0000,450.0000, worldid , interiorid, -1,200.0,200.0);
  17386. SetDynamicObjectMaterial(object, 0, 5174, "warehus_las2", "newall1-1128", 0x00000000);
  17387. object = CreateDynamicObject(19353,526.9440,-2327.0271,509.4310,0.0000,0.0000,450.0000, worldid , interiorid, -1,200.0,200.0);
  17388. SetDynamicObjectMaterial(object, 0, 5174, "warehus_las2", "newall1-1128", 0x00000000);
  17389. object = CreateDynamicObject(19353,528.6340,-2328.7070,509.4310,0.0000,0.0000,540.0000, worldid , interiorid, -1,200.0,200.0);
  17390. SetDynamicObjectMaterial(object, 0, 13131, "cunte_blockammo", "dt_ammu_wall2", 0xFFFFEEEE);
  17391. object = CreateDynamicObject(19353,528.6340,-2331.9170,509.4310,0.0000,0.0000,540.0000, worldid , interiorid, -1,200.0,200.0);
  17392. SetDynamicObjectMaterial(object, 0, 13131, "cunte_blockammo", "dt_ammu_wall2", 0xFFFFEEEE);
  17393. object = CreateDynamicObject(19353,523.7250,-2333.2710,509.4310,0.0000,0.0000,450.0000, worldid , interiorid, -1,200.0,200.0);
  17394. SetDynamicObjectMaterial(object, 0, 5174, "warehus_las2", "newall1-1128", 0x00000000);
  17395. object = CreateDynamicObject(19353,526.9350,-2333.2710,509.4310,0.0000,0.0000,450.0000, worldid , interiorid, -1,200.0,200.0);
  17396. SetDynamicObjectMaterial(object, 0, 5174, "warehus_las2", "newall1-1128", 0x00000000);
  17397. object = CreateDynamicObject(19455,528.6250,-2330.7180,506.3610,180.0000,0.0000,540.0000, worldid , interiorid, -1,200.0,200.0);
  17398. SetDynamicObjectMaterial(object, 0, 5174, "warehus_las2", "newall1-1128", 0x00000000);
  17399. object = CreateDynamicObject(19455,528.6250,-2330.7180,512.7810,180.0000,0.0000,540.0000, worldid , interiorid, -1,200.0,200.0);
  17400. SetDynamicObjectMaterial(object, 0, 5174, "warehus_las2", "newall1-1128", 0x00000000);
  17401. object = CreateDynamicObject(3095,520.5390,-2334.6411,511.1590,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17402. SetDynamicObjectMaterial(object, 1, 9583, "bigshap_sfw", "man_ceiling", 0x00000000);
  17403. object = CreateDynamicObject(3095,520.5390,-2325.6411,511.1590,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17404. SetDynamicObjectMaterial(object, 1, 9583, "bigshap_sfw", "man_ceiling", 0x00000000);
  17405. object = CreateDynamicObject(-1,520.5390,-2325.6411,1511.1591,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17406. SetDynamicObjectMaterial(object, 1, 9583, "bigshap_sfw", "man_ceiling", 0x00000000);
  17407. object = CreateDynamicObject(3095,529.5390,-2334.6411,511.1590,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17408. SetDynamicObjectMaterial(object, 1, 9583, "bigshap_sfw", "man_ceiling", 0x00000000);
  17409. object = CreateDynamicObject(3095,529.5390,-2325.6411,511.1590,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17410. SetDynamicObjectMaterial(object, 1, 9583, "bigshap_sfw", "man_ceiling", 0x00000000);
  17411. object = CreateDynamicObject(3095,516.4980,-2325.6411,511.1610,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17412. SetDynamicObjectMaterial(object, 1, 9583, "bigshap_sfw", "man_ceiling", 0x00000000);
  17413. object = CreateDynamicObject(1499,512.3210,-2330.9851,507.6790,0.0000,0.0000,-90.0000, worldid , interiorid, -1,200.0,200.0);
  17414. SetDynamicObjectMaterial(object, 0, -1, "none", "none", 0xFFFFFFFF);
  17415. object = CreateDynamicObject(1897,509.1930,-2330.0940,510.0650,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17416. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17417. object = CreateDynamicObject(1897,509.1930,-2330.0940,507.8350,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17418. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17419. object = CreateDynamicObject(1897,507.0030,-2330.1741,507.8350,0.0000,0.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17420. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17421. object = CreateDynamicObject(1897,507.0030,-2330.1741,510.0650,0.0000,0.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17422. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17423. object = CreateDynamicObject(1897,508.1730,-2330.0940,511.0850,180.0000,90.0000,360.0000, worldid , interiorid, -1,200.0,200.0);
  17424. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17425. object = CreateDynamicObject(1897,510.4030,-2330.0940,511.0850,180.0000,90.0000,360.0000, worldid , interiorid, -1,200.0,200.0);
  17426. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17427. object = CreateDynamicObject(1897,511.0430,-2330.0920,511.0850,180.0000,90.0000,360.0000, worldid , interiorid, -1,200.0,200.0);
  17428. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17429. object = CreateDynamicObject(1897,512.2130,-2331.3330,511.0850,180.0000,90.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17430. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17431. object = CreateDynamicObject(1897,512.2130,-2333.5649,511.0850,180.0000,90.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17432. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17433. object = CreateDynamicObject(1897,512.2130,-2335.7949,511.0850,180.0000,90.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17434. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17435. object = CreateDynamicObject(1897,510.9630,-2335.7251,511.0850,180.0000,90.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17436. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17437. object = CreateDynamicObject(1897,508.7330,-2335.7251,511.0850,180.0000,90.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17438. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17439. object = CreateDynamicObject(1897,506.5030,-2335.7251,511.0850,180.0000,90.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17440. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17441. object = CreateDynamicObject(1897,507.0030,-2331.3611,511.0850,180.0000,90.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17442. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17443. object = CreateDynamicObject(1897,507.0030,-2333.5911,511.0850,180.0000,90.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17444. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17445. object = CreateDynamicObject(1897,507.0030,-2335.8201,511.0850,180.0000,90.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17446. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17447. object = CreateDynamicObject(1897,507.0030,-2335.5901,509.9450,180.0000,180.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17448. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17449. object = CreateDynamicObject(1897,507.0030,-2335.5901,507.7150,180.0000,180.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17450. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17451. object = CreateDynamicObject(18066,512.4250,-2332.5149,508.1250,0.0000,90.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17452. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17453. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17454. object = CreateDynamicObject(1897,512.2230,-2335.6201,509.9450,180.0000,180.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17455. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17456. object = CreateDynamicObject(1897,512.2230,-2330.2300,509.9450,180.0000,180.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17457. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17458. object = CreateDynamicObject(1897,512.2230,-2330.2300,507.7150,180.0000,180.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17459. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17460. object = CreateDynamicObject(18066,512.2750,-2332.5161,509.5450,0.0000,90.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17461. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17462. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17463. object = CreateDynamicObject(18066,512.2750,-2331.7649,510.2000,90.0000,90.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17464. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17465. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17466. object = CreateDynamicObject(18066,512.2750,-2332.5161,508.1250,0.0000,90.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17467. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17468. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17469. object = CreateDynamicObject(18066,512.2750,-2330.9451,508.1250,0.0000,90.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17470. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17471. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17472. object = CreateDynamicObject(18066,512.2750,-2330.9451,509.5450,0.0000,90.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17473. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17474. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17475. object = CreateDynamicObject(18066,512.2770,-2331.6851,510.1990,90.0000,90.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17476. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17477. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17478. object = CreateDynamicObject(2680,502.4050,-2318.4080,512.6940,20.0000,0.0000,95.0000, worldid , interiorid, -1,200.0,200.0);
  17479. object = CreateDynamicObject(18066,502.4260,-2318.5701,513.9540,0.0000,30.0000,-90.0000, worldid , interiorid, -1,200.0,200.0);
  17480. SetDynamicObjectMaterial(object, 0, 1637, "od_beachstuff", "wood02", 0xFFFFFFFF);
  17481. SetDynamicObjectMaterial(object, 1, 1637, "od_beachstuff", "wood02", 0x00000000);
  17482. object = CreateDynamicObject(18066,502.4240,-2319.3569,513.4990,0.0000,30.0000,-90.0000, worldid , interiorid, -1,200.0,200.0);
  17483. SetDynamicObjectMaterial(object, 0, 1637, "od_beachstuff", "wood02", 0xFFFFFFFF);
  17484. SetDynamicObjectMaterial(object, 1, 1637, "od_beachstuff", "wood02", 0x00000000);
  17485. object = CreateDynamicObject(18066,502.4240,-2319.1470,512.9760,0.0000,10.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17486. SetDynamicObjectMaterial(object, 0, 1637, "od_beachstuff", "wood02", 0xFFFFFFFF);
  17487. SetDynamicObjectMaterial(object, 1, 1637, "od_beachstuff", "wood02", 0x00000000);
  17488. object = CreateDynamicObject(18066,502.4260,-2318.6570,513.0620,0.0000,10.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17489. SetDynamicObjectMaterial(object, 0, 1637, "od_beachstuff", "wood02", 0xFFFFFFFF);
  17490. SetDynamicObjectMaterial(object, 1, 1637, "od_beachstuff", "wood02", 0x00000000);
  17491. object = CreateDynamicObject(17969,502.3500,-2315.5400,512.9270,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17492. object = CreateDynamicObject(17969,502.3300,-2321.0710,513.1970,0.0000,0.0000,179.8000, worldid , interiorid, -1,200.0,200.0);
  17493. object = CreateDynamicObject(17969,502.3700,-2322.8220,513.6470,0.0000,0.0000,-179.4000, worldid , interiorid, -1,200.0,200.0);
  17494. object = CreateDynamicObject(18666,503.6360,-2322.7119,514.1470,2.7000,0.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17495. SetDynamicObjectMaterial(object, 0, -1, "none", "none", 0xFF000000);
  17496. object = CreateDynamicObject(911,503.6820,-2322.2419,512.3510,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17497. SetDynamicObjectMaterial(object, 0, 17925, "lae2fake_int", "ab_wood1", 0x00000000);
  17498. object = CreateDynamicObject(4227,506.9740,-2329.5950,509.0750,0.0000,0.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17499. object = CreateDynamicObject(365,503.6070,-2322.5381,513.0930,0.0000,-5.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17500. object = CreateDynamicObject(365,503.9610,-2322.3721,513.0310,0.0000,85.0000,55.0000, worldid , interiorid, -1,200.0,200.0);
  17501. object = CreateDynamicObject(365,503.2690,-2322.0061,511.9510,0.0000,85.0000,5.0000, worldid , interiorid, -1,200.0,200.0);
  17502. object = CreateDynamicObject(1893,505.2260,-2320.2429,515.7360,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17503. object = CreateDynamicObject(1893,506.0850,-2329.0769,519.2470,0.0000,0.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17504. object = CreateDynamicObject(1893,509.5860,-2333.3870,511.6170,0.0000,0.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17505. object = CreateDynamicObject(1440,508.3890,-2318.2180,512.2990,0.0000,0.0000,-6.2000, worldid , interiorid, -1,200.0,200.0);
  17506. object = CreateDynamicObject(2121,504.8170,-2322.2329,512.2880,-33.0000,0.0000,146.7000, worldid , interiorid, -1,200.0,200.0);
  17507. SetDynamicObjectMaterial(object, 0, 10789, "xenon_sfse", "bluemetal02", 0x00000000);
  17508. object = CreateDynamicObject(19477,505.2180,-2317.4250,511.7960,0.0000,-90.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17509. SetDynamicObjectMaterial(object, 0, 10789, "xenon_sfse", "ruffroadlas", 0x00000000);
  17510. object = CreateDynamicObject(19477,509.0970,-2320.7351,511.5960,90.0000,-90.0000,-90.0000, worldid , interiorid, -1,200.0,200.0);
  17511. SetDynamicObjectMaterial(object, 0, 10789, "xenon_sfse", "ruffroadlas", 0x00000000);
  17512. object = CreateDynamicObject(2673,503.2450,-2321.2361,511.8680,0.0000,0.0000,27.8000, worldid , interiorid, -1,200.0,200.0);
  17513. object = CreateDynamicObject(1338,507.7230,-2335.0291,508.3770,0.0000,0.0000,-22.8000, worldid , interiorid, -1,200.0,200.0);
  17514. SetDynamicObjectMaterial(object, 0, -1, "none", "none", 0xFFFFFFFF);
  17515. object = CreateDynamicObject(925,510.9750,-2334.8311,508.6880,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17516. SetDynamicObjectMaterial(object, 0, -1, "none", "none", 0xFFFFFFFF);
  17517. object = CreateDynamicObject(1886,511.7030,-2334.9060,511.2230,15.5000,0.0000,-153.2000, worldid , interiorid, -1,200.0,200.0);
  17518. object = CreateDynamicObject(2922,512.1410,-2332.8850,508.9510,0.0000,0.0000,-270.0000, worldid , interiorid, -1,200.0,200.0);
  17519. SetDynamicObjectMaterial(object, 1, 9818, "ship_brijsfw", "ship_greenscreen1", 0x00000000);
  17520. object = CreateDynamicObject(927,512.1120,-2333.8560,509.8850,0.0000,0.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17521. object = CreateDynamicObject(19475,511.9830,-2334.8379,510.6500,0.0000,0.0000,-32.8000, worldid , interiorid, -1,200.0,200.0);
  17522. SetDynamicObjectMaterial(object, 0, 10675, "transformer_sfs", "hangingwires2", 0x00000000);
  17523. object = CreateDynamicObject(920,510.5700,-2334.8989,510.2310,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17524. object = CreateDynamicObject(19476,511.7250,-2334.8950,509.7600,0.0000,270.0000,-65.0000, worldid , interiorid, -1,200.0,200.0);
  17525. SetDynamicObjectMaterial(object, 0, 10675, "transformer_sfs", "hangingwires2", 0x00000000);
  17526. object = CreateDynamicObject(19476,511.6450,-2334.6160,509.7600,0.0000,270.0000,109.0000, worldid , interiorid, -1,200.0,200.0);
  17527. SetDynamicObjectMaterial(object, 0, 10675, "transformer_sfs", "hangingwires2", 0x00000000);
  17528. object = CreateDynamicObject(19563,512.3740,-2334.5691,509.8030,-90.0000,0.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17529. SetDynamicObjectMaterial(object, 0, 16146, "des_ufoinn", "electricbox256", 0x00000000);
  17530. object = CreateDynamicObject(18066,512.4250,-2332.5149,509.5450,0.0000,90.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17531. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17532. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17533. object = CreateDynamicObject(18066,512.4250,-2330.9441,509.5450,0.0000,90.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17534. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17535. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17536. object = CreateDynamicObject(18066,512.4250,-2330.9441,508.1250,0.0000,90.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17537. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17538. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17539. object = CreateDynamicObject(18066,512.4250,-2331.6841,510.2010,90.0000,90.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17540. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17541. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17542. object = CreateDynamicObject(18066,512.4260,-2331.7639,510.2000,90.0000,90.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17543. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17544. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17545. object = CreateDynamicObject(1897,512.4520,-2336.4500,510.0450,0.0000,0.0000,-90.0000, worldid , interiorid, -1,200.0,200.0);
  17546. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17547. object = CreateDynamicObject(1897,512.4520,-2336.4500,507.8050,0.0000,0.0000,-90.0000, worldid , interiorid, -1,200.0,200.0);
  17548. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17549. object = CreateDynamicObject(1897,512.4520,-2327.1580,507.8050,0.0000,0.0000,-90.0000, worldid , interiorid, -1,200.0,200.0);
  17550. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17551. object = CreateDynamicObject(1897,512.4520,-2327.1580,510.0350,0.0000,0.0000,-90.0000, worldid , interiorid, -1,200.0,200.0);
  17552. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17553. object = CreateDynamicObject(1897,528.5930,-2327.1819,510.0350,0.0000,0.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17554. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17555. object = CreateDynamicObject(1897,528.5930,-2327.1819,507.8050,0.0000,0.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17556. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17557. object = CreateDynamicObject(1897,528.5930,-2333.1321,507.8050,0.0000,0.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17558. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17559. object = CreateDynamicObject(1897,528.5930,-2333.1321,510.0350,0.0000,0.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17560. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17561. object = CreateDynamicObject(1897,518.9620,-2333.2620,510.0450,0.0000,0.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17562. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17563. object = CreateDynamicObject(1897,518.9620,-2333.2620,507.8150,0.0000,0.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17564. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17565. object = CreateDynamicObject(1897,518.9620,-2336.4810,507.8150,0.0000,0.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17566. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17567. object = CreateDynamicObject(1897,518.9620,-2336.4810,510.0450,0.0000,0.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17568. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17569. object = CreateDynamicObject(1897,518.9620,-2334.4290,511.1150,0.0000,90.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17570. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17571. object = CreateDynamicObject(1897,518.9620,-2336.6599,511.1150,0.0000,90.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17572. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17573. object = CreateDynamicObject(1897,517.7210,-2336.5801,511.1150,0.0000,90.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17574. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17575. object = CreateDynamicObject(1897,515.4910,-2336.5801,511.1150,0.0000,90.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17576. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17577. object = CreateDynamicObject(1897,513.7010,-2336.5779,511.1160,0.0000,90.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17578. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17579. object = CreateDynamicObject(1897,512.4510,-2335.2881,511.1160,0.0000,90.0000,-90.0000, worldid , interiorid, -1,200.0,200.0);
  17580. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17581. object = CreateDynamicObject(1897,512.4510,-2333.0591,511.1160,0.0000,90.0000,-90.0000, worldid , interiorid, -1,200.0,200.0);
  17582. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17583. object = CreateDynamicObject(1897,512.4510,-2330.8291,511.1160,0.0000,90.0000,-90.0000, worldid , interiorid, -1,200.0,200.0);
  17584. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17585. object = CreateDynamicObject(1897,512.4510,-2328.5991,511.1160,0.0000,90.0000,-90.0000, worldid , interiorid, -1,200.0,200.0);
  17586. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17587. object = CreateDynamicObject(1897,512.4510,-2326.3611,511.1160,0.0000,90.0000,-90.0000, worldid , interiorid, -1,200.0,200.0);
  17588. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17589. object = CreateDynamicObject(1897,513.6900,-2327.0620,511.1160,0.0000,90.0000,-180.0000, worldid , interiorid, -1,200.0,200.0);
  17590. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17591. object = CreateDynamicObject(1897,515.9200,-2327.0620,511.1160,0.0000,90.0000,-180.0000, worldid , interiorid, -1,200.0,200.0);
  17592. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17593. object = CreateDynamicObject(1897,518.1490,-2327.0620,511.1160,0.0000,90.0000,-180.0000, worldid , interiorid, -1,200.0,200.0);
  17594. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17595. object = CreateDynamicObject(1897,520.3790,-2327.0620,511.1160,0.0000,90.0000,-180.0000, worldid , interiorid, -1,200.0,200.0);
  17596. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17597. object = CreateDynamicObject(1897,522.6090,-2327.0620,511.1160,0.0000,90.0000,-180.0000, worldid , interiorid, -1,200.0,200.0);
  17598. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17599. object = CreateDynamicObject(1897,524.8390,-2327.0620,511.1160,0.0000,90.0000,-180.0000, worldid , interiorid, -1,200.0,200.0);
  17600. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17601. object = CreateDynamicObject(1897,527.0690,-2327.0620,511.1160,0.0000,90.0000,-180.0000, worldid , interiorid, -1,200.0,200.0);
  17602. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17603. object = CreateDynamicObject(1897,529.3000,-2327.0620,511.1160,0.0000,90.0000,-180.0000, worldid , interiorid, -1,200.0,200.0);
  17604. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17605. object = CreateDynamicObject(1897,528.6000,-2328.3430,511.1160,0.0000,90.0000,-270.0000, worldid , interiorid, -1,200.0,200.0);
  17606. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17607. object = CreateDynamicObject(1897,528.6000,-2330.5730,511.1160,0.0000,90.0000,-270.0000, worldid , interiorid, -1,200.0,200.0);
  17608. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17609. object = CreateDynamicObject(1897,528.6000,-2332.8020,511.1160,0.0000,90.0000,-270.0000, worldid , interiorid, -1,200.0,200.0);
  17610. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17611. object = CreateDynamicObject(1897,519.9400,-2333.2419,511.1160,360.0000,270.0000,-360.0000, worldid , interiorid, -1,200.0,200.0);
  17612. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17613. object = CreateDynamicObject(1897,522.1700,-2333.2419,511.1160,360.0000,270.0000,-360.0000, worldid , interiorid, -1,200.0,200.0);
  17614. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17615. object = CreateDynamicObject(1897,524.4000,-2333.2419,511.1160,360.0000,270.0000,-360.0000, worldid , interiorid, -1,200.0,200.0);
  17616. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17617. object = CreateDynamicObject(1897,526.6300,-2333.2419,511.1160,360.0000,270.0000,-360.0000, worldid , interiorid, -1,200.0,200.0);
  17618. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17619. object = CreateDynamicObject(1897,528.8590,-2333.2419,511.1160,360.0000,270.0000,-360.0000, worldid , interiorid, -1,200.0,200.0);
  17620. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17621. object = CreateDynamicObject(941,519.6940,-2332.2390,508.1540,0.0000,0.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17622. SetDynamicObjectMaterial(object, 0, 1637, "od_beachstuff", "wood02", 0xFFFFFFFF);
  17623. SetDynamicObjectMaterial(object, 1, 10350, "oc_flats_gnd_sfs", "ws_woodfence1", 0x00000000);
  17624. object = CreateDynamicObject(937,519.6240,-2328.0481,508.1540,0.0000,0.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17625. SetDynamicObjectMaterial(object, 0, 1637, "od_beachstuff", "wood02", 0xFFFFFFFF);
  17626. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17627. object = CreateDynamicObject(3013,519.3720,-2329.1960,507.8380,0.0000,0.0000,-17.4000, worldid , interiorid, -1,200.0,200.0);
  17628. object = CreateDynamicObject(3014,519.7970,-2329.2480,507.8180,0.0000,0.0000,3.9000, worldid , interiorid, -1,200.0,200.0);
  17629. object = CreateDynamicObject(3014,519.7960,-2329.2681,508.2980,0.0000,0.0000,-3.3000, worldid , interiorid, -1,200.0,200.0);
  17630. object = CreateDynamicObject(19940,519.9010,-2329.9351,508.6420,0.0000,0.0000,2.9000, worldid , interiorid, -1,200.0,200.0);
  17631. SetDynamicObjectMaterial(object, 0, 3925, "weemap", "telepole128", 0x00000000);
  17632. object = CreateDynamicObject(19940,519.3420,-2329.9580,508.6420,360.0000,0.0000,178.7000, worldid , interiorid, -1,200.0,200.0);
  17633. SetDynamicObjectMaterial(object, 0, 3925, "weemap", "telepole128", 0x00000000);
  17634. object = CreateDynamicObject(1587,523.8400,-2328.8550,506.5090,0.0000,0.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17635. object = CreateDynamicObject(1586,523.7400,-2328.8550,507.8590,0.0000,0.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17636. SetDynamicObjectMaterial(object, 0, 13131, "cunte_blockammo", "dt_ammu_wall2", 0xFFCCDDFF);
  17637. object = CreateDynamicObject(1587,526.3800,-2331.4160,506.5090,0.0000,0.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17638. object = CreateDynamicObject(1586,526.3700,-2331.4160,507.8680,0.0000,0.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17639. SetDynamicObjectMaterial(object, 0, 13131, "cunte_blockammo", "dt_ammu_wall2", 0xFFCCDDFF);
  17640. object = CreateDynamicObject(2448,514.4520,-2333.8459,507.1730,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17641. SetDynamicObjectMaterial(object, 2, 914, "industrialext", "CJ_GEN_GLASS2", 0x00000000);
  17642. SetDynamicObjectMaterial(object, 3, 3925, "weemap", "telepole128", 0x00000000);
  17643. SetDynamicObjectMaterial(object, 4, 8494, "vgslowbuild1", "bluemetal", 0x00000000);
  17644. object = CreateDynamicObject(2448,516.8510,-2333.8459,507.1730,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17645. SetDynamicObjectMaterial(object, 2, 914, "industrialext", "CJ_GEN_GLASS2", 0x00000000);
  17646. SetDynamicObjectMaterial(object, 3, 3925, "weemap", "telepole128", 0x00000000);
  17647. SetDynamicObjectMaterial(object, 4, 8494, "vgslowbuild1", "bluemetal", 0x00000000);
  17648. object = CreateDynamicObject(2400,517.1260,-2336.9070,508.4610,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17649. SetDynamicObjectMaterial(object, 1, 1, "none", "none", 0x00FFFFFF);
  17650. object = CreateDynamicObject(2509,516.6780,-2336.5081,509.7670,0.0000,90.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17651. SetDynamicObjectMaterial(object, 0, 1, "none", "none", 0xFFFFFFFF);
  17652. object = CreateDynamicObject(2509,514.7890,-2336.5081,509.7670,0.0000,90.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17653. SetDynamicObjectMaterial(object, 0, 1, "none", "none", 0xFFFFFFFF);
  17654. object = CreateDynamicObject(1271,513.0150,-2336.0129,508.0290,0.0000,0.0000,49.7000, worldid , interiorid, -1,200.0,200.0);
  17655. SetDynamicObjectMaterial(object, 0, 498, "boxville", "boxville92crate128", 0xFFFFFFFF);
  17656. object = CreateDynamicObject(2969,512.8300,-2336.1331,508.4580,0.0000,0.0000,104.7000, worldid , interiorid, -1,200.0,200.0);
  17657. object = CreateDynamicObject(2807,513.6690,-2335.1721,508.2010,0.0000,0.0000,-114.3000, worldid , interiorid, -1,200.0,200.0);
  17658. SetDynamicObjectMaterial(object, 0, 10789, "xenon_sfse", "bluemetal02", 0x00000000);
  17659. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17660. object = CreateDynamicObject(1744,512.3530,-2335.7290,509.2430,0.0000,0.0000,-270.0000, worldid , interiorid, -1,200.0,200.0);
  17661. SetDynamicObjectMaterial(object, 0, 1637, "od_beachstuff", "wood02", 0x00000000);
  17662. object = CreateDynamicObject(2358,519.6330,-2327.3740,508.7390,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17663. object = CreateDynamicObject(2359,519.7700,-2327.8169,508.8290,0.0000,0.0000,-11.3000, worldid , interiorid, -1,200.0,200.0);
  17664. object = CreateDynamicObject(2043,519.4710,-2328.7009,508.7220,0.0000,0.0000,69.1000, worldid , interiorid, -1,200.0,200.0);
  17665. object = CreateDynamicObject(19832,519.5990,-2327.7019,508.7490,90.0000,0.0000,-11.3000, worldid , interiorid, -1,200.0,200.0);
  17666. object = CreateDynamicObject(19832,519.6260,-2328.4719,508.6320,0.0000,0.0000,-3.5000, worldid , interiorid, -1,200.0,200.0);
  17667. object = CreateDynamicObject(2038,519.4180,-2330.7280,508.7000,-90.0000,0.0000,-80.0000, worldid , interiorid, -1,200.0,200.0);
  17668. object = CreateDynamicObject(19995,519.5630,-2331.2180,508.6390,0.0000,-270.0000,-23.0000, worldid , interiorid, -1,200.0,200.0);
  17669. object = CreateDynamicObject(19995,519.5730,-2331.3979,508.6390,0.0000,-270.0000,18.0000, worldid , interiorid, -1,200.0,200.0);
  17670. object = CreateDynamicObject(3577,514.1690,-2327.2461,508.4150,0.0000,0.0000,-179.9000, worldid , interiorid, -1,200.0,200.0);
  17671. SetDynamicObjectMaterial(object, 0, 1, "none", "none", 0xFFFFFFFF);
  17672. SetDynamicObjectMaterial(object, 2, 498, "boxville", "boxville92crate128", 0x00000000);
  17673. object = CreateDynamicObject(1271,513.8250,-2327.8601,508.1390,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17674. SetDynamicObjectMaterial(object, 0, 456, "yankee", "yankee92crate", 0xFFAAAAAA);
  17675. object = CreateDynamicObject(1271,513.8270,-2327.8579,508.7080,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17676. SetDynamicObjectMaterial(object, 0, 456, "yankee", "yankee92crate", 0xFFAAAAAA);
  17677. object = CreateDynamicObject(2055,518.2450,-2327.1340,509.5570,0.0000,1.2000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17678. object = CreateDynamicObject(2102,512.6830,-2334.7361,509.5780,0.0000,0.0000,99.0000, worldid , interiorid, -1,200.0,200.0);
  17679. object = CreateDynamicObject(2162,512.4770,-2335.4729,510.9080,180.0000,0.0000,-100.2000, worldid , interiorid, -1,200.0,200.0);
  17680. SetDynamicObjectMaterial(object, 1, 1, "none", "none", 0x00FFFFFF);
  17681. SetDynamicObjectMaterial(object, 2, -1, "none", "none", 0x00FFFFFF);
  17682. object = CreateDynamicObject(19383,519.1650,-2334.9490,509.4310,0.0000,0.0000,540.0000, worldid , interiorid, -1,200.0,200.0);
  17683. SetDynamicObjectMaterial(object, 0, 17517, "templae2land", "chipboard_256128", 0x00000000);
  17684. object = CreateDynamicObject(19353,520.5250,-2333.3311,509.4310,0.0000,0.0000,450.0000, worldid , interiorid, -1,200.0,200.0);
  17685. SetDynamicObjectMaterial(object, 0, 17517, "templae2land", "chipboard_256128", 0x00000000);
  17686. object = CreateDynamicObject(19353,526.9350,-2333.3311,509.4310,0.0000,0.0000,450.0000, worldid , interiorid, -1,200.0,200.0);
  17687. SetDynamicObjectMaterial(object, 0, 17517, "templae2land", "chipboard_256128", 0x00000000);
  17688. object = CreateDynamicObject(19353,519.1650,-2338.1541,509.4310,0.0000,0.0000,540.0000, worldid , interiorid, -1,200.0,200.0);
  17689. SetDynamicObjectMaterial(object, 0, 17517, "templae2land", "chipboard_256128", 0x00000000);
  17690. object = CreateDynamicObject(19353,524.0540,-2339.7451,509.4310,0.0000,0.0000,630.0000, worldid , interiorid, -1,200.0,200.0);
  17691. SetDynamicObjectMaterial(object, 0, 17517, "templae2land", "chipboard_256128", 0x00000000);
  17692. object = CreateDynamicObject(19353,520.8440,-2339.8020,509.4310,0.0000,0.0000,450.0000, worldid , interiorid, -1,200.0,200.0);
  17693. SetDynamicObjectMaterial(object, 0, 5174, "warehus_las2", "newall1-1128", 0x00000000);
  17694. object = CreateDynamicObject(19353,525.7240,-2338.2129,509.4310,0.0000,0.0000,720.0000, worldid , interiorid, -1,200.0,200.0);
  17695. SetDynamicObjectMaterial(object, 0, 17517, "templae2land", "chipboard_256128", 0x00000000);
  17696. object = CreateDynamicObject(19353,526.8950,-2335.0139,509.4310,0.0000,0.0000,720.0000, worldid , interiorid, -1,200.0,200.0);
  17697. SetDynamicObjectMaterial(object, 0, 17517, "templae2land", "chipboard_256128", 0x00000000);
  17698. object = CreateDynamicObject(19353,527.2850,-2336.7041,509.4310,0.0000,0.0000,810.0000, worldid , interiorid, -1,200.0,200.0);
  17699. SetDynamicObjectMaterial(object, 0, 17517, "templae2land", "chipboard_256128", 0x00000000);
  17700. object = CreateDynamicObject(3095,520.5390,-2343.6411,511.1590,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17701. SetDynamicObjectMaterial(object, 1, 9583, "bigshap_sfw", "man_ceiling", 0x00000000);
  17702. object = CreateDynamicObject(3095,529.5390,-2343.6411,511.1590,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17703. SetDynamicObjectMaterial(object, 1, 9583, "bigshap_sfw", "man_ceiling", 0x00000000);
  17704. object = CreateDynamicObject(1897,519.3330,-2333.3669,510.0550,0.0000,0.0000,-180.0000, worldid , interiorid, -1,200.0,200.0);
  17705. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17706. object = CreateDynamicObject(1897,519.3330,-2333.3669,507.8250,0.0000,0.0000,-180.0000, worldid , interiorid, -1,200.0,200.0);
  17707. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17708. object = CreateDynamicObject(1897,522.0780,-2333.3669,507.8250,0.0000,0.0000,-180.0000, worldid , interiorid, -1,200.0,200.0);
  17709. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17710. object = CreateDynamicObject(1897,522.0780,-2333.3669,510.0540,0.0000,0.0000,-180.0000, worldid , interiorid, -1,200.0,200.0);
  17711. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17712. object = CreateDynamicObject(1897,525.4060,-2333.3669,510.0540,0.0000,0.0000,-180.0000, worldid , interiorid, -1,200.0,200.0);
  17713. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17714. object = CreateDynamicObject(1897,525.4060,-2333.3669,507.8240,0.0000,0.0000,-180.0000, worldid , interiorid, -1,200.0,200.0);
  17715. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17716. object = CreateDynamicObject(1897,526.7560,-2333.3669,507.8240,0.0000,0.0000,-180.0000, worldid , interiorid, -1,200.0,200.0);
  17717. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17718. object = CreateDynamicObject(1897,526.7560,-2333.3669,510.0540,0.0000,0.0000,-180.0000, worldid , interiorid, -1,200.0,200.0);
  17719. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17720. object = CreateDynamicObject(1897,526.7360,-2336.6731,510.0540,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17721. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17722. object = CreateDynamicObject(1897,526.7360,-2336.6731,507.8250,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17723. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17724. object = CreateDynamicObject(1897,525.5660,-2339.7170,507.8250,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17725. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17726. object = CreateDynamicObject(1897,525.5660,-2339.7170,510.0540,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17727. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17728. object = CreateDynamicObject(1897,522.5010,-2339.7170,510.0540,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17729. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17730. object = CreateDynamicObject(1897,522.5010,-2339.7170,507.8240,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17731. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17732. object = CreateDynamicObject(1897,519.3010,-2339.7170,507.8240,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17733. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17734. object = CreateDynamicObject(1897,519.3010,-2339.7170,510.0540,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17735. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17736. object = CreateDynamicObject(1897,519.3010,-2339.8069,510.0540,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17737. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17738. object = CreateDynamicObject(1897,519.3010,-2339.8069,507.8240,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17739. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17740. object = CreateDynamicObject(1897,519.1910,-2334.6050,511.1140,0.0000,90.0000,-90.0000, worldid , interiorid, -1,200.0,200.0);
  17741. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17742. object = CreateDynamicObject(1897,519.1910,-2336.8350,511.1140,0.0000,90.0000,-90.0000, worldid , interiorid, -1,200.0,200.0);
  17743. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17744. object = CreateDynamicObject(1897,519.1910,-2339.0649,511.1140,0.0000,90.0000,-90.0000, worldid , interiorid, -1,200.0,200.0);
  17745. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17746. object = CreateDynamicObject(1897,520.4800,-2339.7261,511.1140,0.0000,90.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17747. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17748. object = CreateDynamicObject(1897,522.7100,-2339.7261,511.1140,0.0000,90.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17749. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17750. object = CreateDynamicObject(1897,524.9400,-2339.7261,511.1140,0.0000,90.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17751. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17752. object = CreateDynamicObject(1897,525.7000,-2337.7241,511.1140,0.0000,90.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17753. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17754. object = CreateDynamicObject(1897,525.7000,-2339.9541,511.1140,0.0000,90.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17755. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17756. object = CreateDynamicObject(1897,526.6860,-2336.6731,511.1140,180.0000,90.0000,540.0000, worldid , interiorid, -1,200.0,200.0);
  17757. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17758. object = CreateDynamicObject(1897,526.8600,-2334.6101,511.1140,0.0000,90.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17759. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17760. object = CreateDynamicObject(1897,526.8600,-2336.8391,511.1140,0.0000,90.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17761. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17762. object = CreateDynamicObject(1897,520.4790,-2333.3650,511.1140,0.0000,90.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17763. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17764. object = CreateDynamicObject(1897,522.7090,-2333.3650,511.1140,0.0000,90.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17765. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17766. object = CreateDynamicObject(1897,524.9390,-2333.3650,511.1140,0.0000,90.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17767. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17768. object = CreateDynamicObject(1897,527.1690,-2333.3650,511.1140,0.0000,90.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17769. SetDynamicObjectMaterial(object, 0, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0xFFFFFFFF);
  17770. object = CreateDynamicObject(11714,519.3930,-2337.8091,509.7230,0.0000,5.2000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17771. SetDynamicObjectMaterial(object, 0, 17517, "templae2land", "chipboard_256128", 0xFFFFFFFF);
  17772. object = CreateDynamicObject(11714,519.6190,-2337.8091,507.2330,0.0000,5.2000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17773. SetDynamicObjectMaterial(object, 0, 17517, "templae2land", "chipboard_256128", 0xFFFFFFFF);
  17774. object = CreateDynamicObject(1494,519.0790,-2334.2051,507.6720,0.0000,0.0000,-90.0000, worldid , interiorid, -1,200.0,200.0);
  17775. SetDynamicObjectMaterial(object, 1, 3906, "libertyhi5", "chipboardgrating64HV", 0x00000000);
  17776. object = CreateDynamicObject(941,526.2270,-2335.6101,508.1620,0.0000,0.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17777. SetDynamicObjectMaterial(object, 0, 5154, "dkcargoshp_las2", "jettyfloor02", 0xFFFFFFFF);
  17778. SetDynamicObjectMaterial(object, 1, 11631, "mp_ranchcut", "mpCJ_DarkWood", 0x00000000);
  17779. object = CreateDynamicObject(2370,522.9270,-2338.7471,507.3780,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17780. object = CreateDynamicObject(1712,525.1150,-2337.6760,507.6820,0.0000,0.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17781. object = CreateDynamicObject(2121,521.8600,-2339.1370,508.1950,0.0000,0.0000,143.5000, worldid , interiorid, -1,200.0,200.0);
  17782. object = CreateDynamicObject(2121,521.7420,-2337.9800,508.1950,0.0000,0.0000,80.4000, worldid , interiorid, -1,200.0,200.0);
  17783. object = CreateDynamicObject(2737,526.7670,-2335.5620,509.5750,0.0000,0.0000,-90.0000, worldid , interiorid, -1,200.0,200.0);
  17784. SetDynamicObjectMaterial(object, 0, 1637, "od_beachstuff", "wood02", 0x00000000);
  17785. SetDynamicObjectMaterial(object, 1, 11391, "hubprops2_sfse", "toolwall1", 0x00000000);
  17786. object = CreateDynamicObject(2051,517.3550,-2327.1599,509.5650,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17787. object = CreateDynamicObject(2050,516.6450,-2327.1599,509.5650,0.0000,-1.5000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17788. object = CreateDynamicObject(2063,523.6990,-2333.6260,508.5740,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17789. object = CreateDynamicObject(2063,523.7000,-2333.6250,509.9140,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17790. object = CreateDynamicObject(19940,526.7670,-2335.3420,509.1850,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17791. SetDynamicObjectMaterial(object, 0, 1637, "od_beachstuff", "wood02", 0x00000000);
  17792. object = CreateDynamicObject(19940,526.7670,-2335.3420,509.1550,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17793. SetDynamicObjectMaterial(object, 0, 1637, "od_beachstuff", "wood02", 0x00000000);
  17794. object = CreateDynamicObject(19940,526.7670,-2335.3420,509.1240,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17795. SetDynamicObjectMaterial(object, 0, 1637, "od_beachstuff", "wood02", 0x00000000);
  17796. object = CreateDynamicObject(3014,526.3530,-2333.8679,507.9070,0.0000,0.0000,45.0000, worldid , interiorid, -1,200.0,200.0);
  17797. object = CreateDynamicObject(3014,526.3530,-2333.8679,508.3870,0.0000,0.0000,67.1000, worldid , interiorid, -1,200.0,200.0);
  17798. object = CreateDynamicObject(3014,525.6580,-2333.6880,507.8870,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17799. object = CreateDynamicObject(1893,523.9170,-2330.1721,511.6190,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17800. object = CreateDynamicObject(1893,515.3160,-2330.1721,511.6190,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17801. object = CreateDynamicObject(1893,515.3160,-2334.8250,511.6190,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17802. object = CreateDynamicObject(1893,521.9770,-2337.7759,511.6190,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17803. object = CreateDynamicObject(1893,526.0770,-2335.5459,511.6190,0.0000,0.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17804. object = CreateDynamicObject(349,516.5820,-2336.4961,509.3320,0.0000,10.5500,6.0000, worldid , interiorid, -1,200.0,200.0);
  17805. object = CreateDynamicObject(355,514.7280,-2336.4080,510.1380,0.0000,8.0500,186.0000, worldid , interiorid, -1,200.0,200.0);
  17806. object = CreateDynamicObject(357,515.9110,-2336.4050,510.1660,0.0000,15.0500,186.0000, worldid , interiorid, -1,200.0,200.0);
  17807. object = CreateDynamicObject(358,515.9320,-2336.4241,509.3120,0.0000,10.1550,186.0000, worldid , interiorid, -1,200.0,200.0);
  17808. object = CreateDynamicObject(346,513.6470,-2333.8250,508.5020,990.0000,180.0000,-6.0000, worldid , interiorid, -1,200.0,200.0);
  17809. object = CreateDynamicObject(346,513.6470,-2333.5750,508.5020,990.0000,180.0000,-6.0000, worldid , interiorid, -1,200.0,200.0);
  17810. object = CreateDynamicObject(347,514.1470,-2333.6250,508.5020,990.0000,180.0000,-6.0000, worldid , interiorid, -1,200.0,200.0);
  17811. object = CreateDynamicObject(348,514.7040,-2333.8350,508.4870,990.0000,180.0000,-1.0000, worldid , interiorid, -1,200.0,200.0);
  17812. object = CreateDynamicObject(348,514.7040,-2333.5850,508.4870,990.0000,180.0000,-1.0000, worldid , interiorid, -1,200.0,200.0);
  17813. object = CreateDynamicObject(335,513.0810,-2333.6479,508.4230,-270.0000,0.0000,-7.0000, worldid , interiorid, -1,200.0,200.0);
  17814. object = CreateDynamicObject(335,513.1150,-2333.8301,508.4230,-270.0000,0.0000,178.0000, worldid , interiorid, -1,200.0,200.0);
  17815. object = CreateDynamicObject(335,513.0050,-2333.8269,508.4230,-270.0000,0.0000,188.0000, worldid , interiorid, -1,200.0,200.0);
  17816. object = CreateDynamicObject(352,515.3390,-2333.8091,508.4540,90.0000,0.0000,3.0000, worldid , interiorid, -1,200.0,200.0);
  17817. object = CreateDynamicObject(352,515.7190,-2333.7900,508.4540,90.0000,0.0000,3.0000, worldid , interiorid, -1,200.0,200.0);
  17818. object = CreateDynamicObject(372,516.4380,-2333.7539,508.4940,630.0000,180.0000,3.0000, worldid , interiorid, -1,200.0,200.0);
  17819. object = CreateDynamicObject(350,516.9330,-2334.0430,508.4550,90.0000,0.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17820. object = CreateDynamicObject(350,516.7610,-2334.0349,508.4550,90.0000,0.0000,105.0000, worldid , interiorid, -1,200.0,200.0);
  17821. object = CreateDynamicObject(19995,513.6270,-2333.7410,508.4800,0.0000,90.0000,-90.0000, worldid , interiorid, -1,200.0,200.0);
  17822. object = CreateDynamicObject(19773,519.6660,-2331.7019,508.6400,0.0000,90.0000,120.0000, worldid , interiorid, -1,200.0,200.0);
  17823. object = CreateDynamicObject(19773,512.7600,-2333.7290,508.1490,0.0000,90.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17824. object = CreateDynamicObject(19773,512.9600,-2333.7290,508.1490,0.0000,90.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17825. object = CreateDynamicObject(19773,513.1400,-2333.7290,508.1490,0.0000,90.0000,295.0000, worldid , interiorid, -1,200.0,200.0);
  17826. object = CreateDynamicObject(19832,515.1690,-2333.7661,508.1500,0.0000,0.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17827. object = CreateDynamicObject(19832,515.4190,-2333.7661,508.1500,0.0000,0.0000,96.3000, worldid , interiorid, -1,200.0,200.0);
  17828. object = CreateDynamicObject(19832,515.6390,-2333.7710,508.1500,0.0000,0.0000,88.8000, worldid , interiorid, -1,200.0,200.0);
  17829. object = CreateDynamicObject(19832,515.8590,-2333.7759,508.1500,0.0000,0.0000,83.8000, worldid , interiorid, -1,200.0,200.0);
  17830. object = CreateDynamicObject(19832,516.9970,-2333.8569,508.1500,0.0000,0.0000,177.7000, worldid , interiorid, -1,200.0,200.0);
  17831. object = CreateDynamicObject(19832,517.0060,-2333.6270,508.1500,0.0000,0.0000,-176.2000, worldid , interiorid, -1,200.0,200.0);
  17832. object = CreateDynamicObject(1210,512.9630,-2333.9519,508.1200,90.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17833. object = CreateDynamicObject(19478,512.9050,-2333.8191,508.7730,0.0000,-90.0000,270.0000, worldid , interiorid, -1,200.0,200.0);
  17834. SetDynamicObjectMaterial(object, 0, 1829, "kbmiscfrn2", "man_mny1", 0x00000000);
  17835. object = CreateDynamicObject(2042,513.0350,-2333.7200,508.8630,0.0000,0.0000,-45.0000, worldid , interiorid, -1,200.0,200.0);
  17836. object = CreateDynamicObject(19478,512.8650,-2333.6489,508.7930,0.0000,-90.0000,90.0000, worldid , interiorid, -1,200.0,200.0);
  17837. SetDynamicObjectMaterial(object, 0, 1829, "kbmiscfrn2", "man_mny1", 0x00000000);
  17838. object = CreateDynamicObject(355,518.9970,-2329.4241,507.9880,-13.8000,273.0000,-89.8000, worldid , interiorid, -1,200.0,200.0);
  17839. object = CreateDynamicObject(346,519.2370,-2330.4619,508.6360,93.0000,0.0000,30.0000, worldid , interiorid, -1,200.0,200.0);
  17840. object = CreateDynamicObject(19825,513.2240,-2336.5010,510.4280,0.0000,0.0000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17841. SetDynamicObjectMaterial(object, 0, -1, "none", "none", 0xFFFFFFFF);
  17842. object = CreateDynamicObject(2034,525.9320,-2335.1130,508.6550,0.0000,0.0000,-55.0000, worldid , interiorid, -1,200.0,200.0);
  17843. SetDynamicObjectMaterial(object, 0, 10824, "subpen1_sfse", "sl_metaledge", 0x00000000);
  17844. object = CreateDynamicObject(2033,526.1620,-2335.4399,508.6670,0.0000,0.0000,-85.1000, worldid , interiorid, -1,200.0,200.0);
  17845. SetDynamicObjectMaterial(object, 0, 10824, "subpen1_sfse", "sl_metaledge", 0x00000000);
  17846. object = CreateDynamicObject(3017,526.2160,-2334.4451,508.6430,0.0000,0.0000,540.0000, worldid , interiorid, -1,200.0,200.0);
  17847. object = CreateDynamicObject(19942,526.7290,-2334.5339,509.3030,0.0000,0.0000,-69.5000, worldid , interiorid, -1,200.0,200.0);
  17848. object = CreateDynamicObject(19942,523.5830,-2338.6709,508.2430,270.0000,0.0000,123.0000, worldid , interiorid, -1,200.0,200.0);
  17849. object = CreateDynamicObject(18644,525.7920,-2335.5439,508.6530,90.0000,0.0000,-57.0000, worldid , interiorid, -1,200.0,200.0);
  17850. object = CreateDynamicObject(18644,526.6390,-2334.8770,509.2130,90.0000,0.0000,-12.0000, worldid , interiorid, -1,200.0,200.0);
  17851. object = CreateDynamicObject(19621,522.7110,-2333.5371,508.1160,0.0000,0.0000,-8.5000, worldid , interiorid, -1,200.0,200.0);
  17852. object = CreateDynamicObject(19621,522.8330,-2333.4709,508.1160,0.0000,0.0000,14.7000, worldid , interiorid, -1,200.0,200.0);
  17853. object = CreateDynamicObject(18635,525.8580,-2334.6641,508.6900,270.0000,0.0000,-80.0000, worldid , interiorid, -1,200.0,200.0);
  17854. object = CreateDynamicObject(19832,526.5650,-2336.3521,508.6410,0.0000,0.0000,-165.8000, worldid , interiorid, -1,200.0,200.0);
  17855. object = CreateDynamicObject(19832,524.8120,-2333.6299,508.9390,0.0000,0.0000,-81.0000, worldid , interiorid, -1,200.0,200.0);
  17856. object = CreateDynamicObject(19816,526.3020,-2336.4380,508.9000,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17857. object = CreateDynamicObject(19893,525.9380,-2336.2910,508.6310,0.0000,0.0000,-147.5000, worldid , interiorid, -1,200.0,200.0);
  17858. SetDynamicObjectMaterial(object, 1, 2059, "CJ_AMMO2", "CJ_gunbook1", 0x00000000);
  17859. object = CreateDynamicObject(18633,526.6760,-2336.0229,509.2240,0.0000,0.0000,166.8000, worldid , interiorid, -1,200.0,200.0);
  17860. object = CreateDynamicObject(18634,524.7780,-2333.4929,509.3710,0.0000,90.0000,110.0000, worldid , interiorid, -1,200.0,200.0);
  17861. object = CreateDynamicObject(1650,523.0910,-2333.6289,508.3120,0.0000,0.0000,-80.0000, worldid , interiorid, -1,200.0,200.0);
  17862. SetDynamicObjectMaterial(object, 0, -1, "none", "none", 0xFFFFFFFF);
  17863. object = CreateDynamicObject(1650,523.2970,-2333.6650,508.3120,0.0000,0.0000,-89.0000, worldid , interiorid, -1,200.0,200.0);
  17864. SetDynamicObjectMaterial(object, 0, -1, "none", "none", 0xFFFFFFFF);
  17865. object = CreateDynamicObject(1654,526.5580,-2336.0601,508.8290,0.0000,0.0000,-106.7000, worldid , interiorid, -1,200.0,200.0);
  17866. object = CreateDynamicObject(2057,526.2860,-2335.0310,507.8570,0.0000,0.0000,-32.4000, worldid , interiorid, -1,200.0,200.0);
  17867. object = CreateDynamicObject(2036,523.1210,-2333.5940,508.9620,0.0000,0.0000,5.0000, worldid , interiorid, -1,200.0,200.0);
  17868. object = CreateDynamicObject(2035,523.1590,-2333.6489,508.9920,-7.2000,-3.7000,165.4000, worldid , interiorid, -1,200.0,200.0);
  17869. SetDynamicObjectMaterial(object, 0, 3267, "milbase", "a51_metal1", 0x00000000);
  17870. object = CreateDynamicObject(2044,523.8480,-2333.6550,508.9600,0.0000,0.0000,68.9000, worldid , interiorid, -1,200.0,200.0);
  17871. SetDynamicObjectMaterial(object, 0, 9818, "ship_brijsfw", "CJ_PLASTIC", 0x00000000);
  17872. object = CreateDynamicObject(2035,523.5510,-2333.6160,509.3760,0.0000,0.0000,-7.6000, worldid , interiorid, -1,200.0,200.0);
  17873. SetDynamicObjectMaterial(object, 0, 9818, "ship_brijsfw", "CJ_PLASTIC", 0x00000000);
  17874. object = CreateDynamicObject(19998,526.6020,-2334.5339,508.7260,0.0000,0.0000,-30.1000, worldid , interiorid, -1,200.0,200.0);
  17875. object = CreateDynamicObject(19627,525.7850,-2335.3940,508.6430,0.0000,0.0000,-14.1000, worldid , interiorid, -1,200.0,200.0);
  17876. object = CreateDynamicObject(19627,526.6720,-2335.4060,509.2070,0.0000,0.0000,155.8000, worldid , interiorid, -1,200.0,200.0);
  17877. object = CreateDynamicObject(19627,526.6750,-2335.5271,509.2070,0.0000,0.0000,-173.7000, worldid , interiorid, -1,200.0,200.0);
  17878. object = CreateDynamicObject(2711,526.0330,-2335.2151,508.6410,90.0000,36.5000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17879. object = CreateDynamicObject(1665,526.3900,-2334.5381,508.6520,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17880. object = CreateDynamicObject(19995,525.8610,-2334.5620,508.6460,0.0000,-90.0000,22.0000, worldid , interiorid, -1,200.0,200.0);
  17881. object = CreateDynamicObject(19995,526.1040,-2336.0300,508.6460,0.0000,-90.0000,176.7000, worldid , interiorid, -1,200.0,200.0);
  17882. object = CreateDynamicObject(1840,526.3730,-2333.7839,508.6450,0.0000,0.0000,30.6000, worldid , interiorid, -1,200.0,200.0);
  17883. object = CreateDynamicObject(1840,520.3250,-2339.3521,507.6880,0.0000,0.0000,-160.3000, worldid , interiorid, -1,200.0,200.0);
  17884. object = CreateDynamicObject(1839,519.9780,-2337.8020,508.3510,0.0000,0.0000,-91.7000, worldid , interiorid, -1,200.0,200.0);
  17885. object = CreateDynamicObject(1271,519.9430,-2338.6931,508.0320,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17886. SetDynamicObjectMaterial(object, 0, 456, "yankee", "yankee92crate", 0xFFFFFFFF);
  17887. object = CreateDynamicObject(1271,519.9460,-2337.8831,508.0320,0.0000,0.0000,-4.2000, worldid , interiorid, -1,200.0,200.0);
  17888. SetDynamicObjectMaterial(object, 0, 498, "boxville", "boxville92crate128", 0xFFFFFFFF);
  17889. object = CreateDynamicObject(1271,519.9060,-2338.4629,508.7120,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17890. SetDynamicObjectMaterial(object, 0, 456, "yankee", "yankee92crate", 0xFFFFFFFF);
  17891. object = CreateDynamicObject(924,523.2500,-2333.6531,510.4610,0.0000,0.0000,179.1000, worldid , interiorid, -1,200.0,200.0);
  17892. object = CreateDynamicObject(19823,523.2770,-2338.4851,508.2150,0.0000,0.0000,-20.3000, worldid , interiorid, -1,200.0,200.0);
  17893. object = CreateDynamicObject(1509,523.4640,-2337.9790,508.4050,0.0000,0.0000,-20.3000, worldid , interiorid, -1,200.0,200.0);
  17894. object = CreateDynamicObject(1509,523.1260,-2337.8550,508.2750,90.0000,-48.4000,-20.3000, worldid , interiorid, -1,200.0,200.0);
  17895. object = CreateDynamicObject(1665,523.2300,-2338.2839,508.2540,0.0000,0.0000,41.1000, worldid , interiorid, -1,200.0,200.0);
  17896. object = CreateDynamicObject(348,522.6540,-2339.0879,508.2240,90.0000,0.0000,40.5000, worldid , interiorid, -1,200.0,200.0);
  17897. object = CreateDynamicObject(2695,523.5820,-2339.6350,509.6620,0.0000,3.1000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17898. object = CreateDynamicObject(2588,524.4460,-2339.5649,509.9220,0.0000,-1.3000,180.0000, worldid , interiorid, -1,200.0,200.0);
  17899. SetDynamicObjectMaterial(object, 0, 14737, "whorewallstuff", "AH_paintbond", 0x00000000);
  17900. object = CreateDynamicObject(19475,524.3440,-2339.6431,509.0730,0.0000,1.8000,450.0000, worldid , interiorid, -1,200.0,200.0);
  17901. SetDynamicObjectMaterial(object, 0, 14737, "whorewallstuff", "ah_painting2", 0x00000000);
  17902. object = CreateDynamicObject(351,519.5780,-2338.2419,509.0190,97.1000,70.1000,-70.0000, worldid , interiorid, -1,200.0,200.0);
  17903. object = CreateDynamicObject(1517,507.3360,-2317.7090,512.3660,90.0000,-31.7000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17904. object = CreateDynamicObject(2342,514.5450,-2333.8411,508.8770,0.0000,0.0000,168.1000, worldid , interiorid, -1,200.0,200.0);
  17905. object = CreateDynamicObject(2663,525.0790,-2339.3469,508.4090,0.0000,3.1000,1.7000, worldid , interiorid, -1,200.0,200.0);
  17906. object = CreateDynamicObject(2768,523.7130,-2338.8679,508.2680,0.0000,0.0000,77.6000, worldid , interiorid, -1,200.0,200.0);
  17907. object = CreateDynamicObject(2769,522.5770,-2338.1670,508.2480,0.0000,0.0000,-90.5000, worldid , interiorid, -1,200.0,200.0);
  17908. object = CreateDynamicObject(19835,519.4140,-2332.5630,508.7120,0.0000,0.0000,-36.3000, worldid , interiorid, -1,200.0,200.0);
  17909. SetDynamicObjectMaterial(object, 0, -1, "none", "none", 0xFFFFFFFF);
  17910. object = CreateDynamicObject(19421,519.6290,-2332.3931,508.6460,-8.5000,0.0000,-78.3000, worldid , interiorid, -1,200.0,200.0);
  17911. object = CreateDynamicObject(19421,519.7900,-2332.5181,508.6460,-8.5000,0.0000,-127.3000, worldid , interiorid, -1,200.0,200.0);
  17912. object = CreateDynamicObject(19421,519.2550,-2329.1790,508.6700,-8.5000,0.0000,-87.0000, worldid , interiorid, -1,200.0,200.0);
  17913. object = CreateDynamicObject(935,516.0710,-2327.5049,508.2620,0.0000,0.0000,-16.3000, worldid , interiorid, -1,200.0,200.0);
  17914. object = CreateDynamicObject(19477,509.3020,-2318.5820,512.2290,0.0000,0.0000,0.0000, worldid , interiorid, -1,200.0,200.0);
  17915. SetDynamicObjectMaterialText(object, 0, "Map by Twixxer/Sajugs", 80, "Arial", 24, 0, 0xFF66FF00, 0x00000000, 0);
  17916. //Idlewood
  17917. new tmpobjid;
  17918. tmpobjid = CreateObject(19444, 1912.219604, -1706.741210, 10.800986, 0.000000, 180.000000, 1170.000000, 300.00);
  17919. SetObjectMaterial(tmpobjid, 0, 9525, "boigas_sfw", "GEwhite1_64", 0xFF996600);
  17920. tmpobjid = CreateObject(3584, 1902.599609, -1638.699218, 16.799999, 0.000000, 0.000000, 270.000000, 300.00);
  17921. SetObjectMaterial(tmpobjid, 0, 6404, "beafron1_law2", "comptwall31", 0x00000000);
  17922. tmpobjid = CreateObject(19444, 1897.399414, -1648.799804, 12.460000, 0.000000, 90.000000, 270.000000, 300.00);
  17923. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17924. tmpobjid = CreateObject(19444, 1897.400024, -1652.300048, 12.460000, 0.000000, 90.000000, 270.000000, 300.00);
  17925. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17926. tmpobjid = CreateObject(19444, 1897.399414, -1655.799804, 12.458000, 0.000000, 90.000000, 270.000000, 300.00);
  17927. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17928. tmpobjid = CreateObject(19444, 1897.399414, -1659.299804, 12.458998, 0.000000, 90.000000, 270.000000, 300.00);
  17929. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17930. tmpobjid = CreateObject(19444, 1897.399414, -1662.799804, 12.460000, 0.000000, 90.000000, 270.000000, 300.00);
  17931. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17932. tmpobjid = CreateObject(19444, 1897.399414, -1666.259765, 12.460000, 0.000000, 90.000000, 270.000000, 300.00);
  17933. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17934. tmpobjid = CreateObject(19357, 1897.399414, -1645.500000, 12.460900, 0.000000, 90.000000, 270.000000, 300.00);
  17935. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17936. tmpobjid = CreateObject(19357, 1864.199218, -1658.000000, 12.460900, 0.000000, 90.000000, 0.000000, 300.00);
  17937. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17938. tmpobjid = CreateObject(19444, 1867.699218, -1658.000000, 12.460000, 0.000000, 90.000000, 180.000000, 300.00);
  17939. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17940. tmpobjid = CreateObject(19444, 1871.199218, -1658.000000, 12.460000, 0.000000, 90.000000, 179.994995, 300.00);
  17941. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17942. tmpobjid = CreateObject(19444, 1874.699218, -1658.000000, 12.460000, 0.000000, 90.000000, 180.000000, 300.00);
  17943. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17944. tmpobjid = CreateObject(19444, 1878.199218, -1658.000000, 12.460000, 0.000000, 90.000000, 180.000000, 300.00);
  17945. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17946. tmpobjid = CreateObject(19444, 1881.699218, -1658.000000, 12.460000, 0.000000, 90.000000, 180.000000, 300.00);
  17947. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17948. tmpobjid = CreateObject(19444, 1885.199218, -1658.000000, 12.460000, 0.000000, 90.000000, 180.000000, 300.00);
  17949. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17950. tmpobjid = CreateObject(19444, 1888.699218, -1658.000000, 12.460000, 0.000000, 90.000000, 180.000000, 300.00);
  17951. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17952. tmpobjid = CreateObject(19444, 1892.199218, -1658.000000, 12.460000, 0.000000, 90.000000, 179.994995, 300.00);
  17953. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17954. tmpobjid = CreateObject(19444, 1895.699218, -1658.000000, 12.460000, 0.000000, 90.000000, 180.000000, 300.00);
  17955. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17956. tmpobjid = CreateObject(19545, 1900.500000, -1665.479492, 12.532999, 0.000000, 0.000000, 90.000000, 300.00);
  17957. SetObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  17958. tmpobjid = CreateObject(19543, 1900.500000, -1650.500000, 12.532999, 0.000000, 0.000000, 90.000000, 300.00);
  17959. SetObjectMaterial(tmpobjid, 0, 17081, "cuntwlandcent", "grass10_grassdeep1", 0x00000000);
  17960. tmpobjid = CreateObject(19444, 1899.199218, -1658.000000, 12.460000, 0.000000, 90.000000, 180.000000, 300.00);
  17961. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17962. tmpobjid = CreateObject(19444, 1902.699218, -1658.000000, 12.460000, 0.000000, 90.000000, 180.000000, 300.00);
  17963. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17964. tmpobjid = CreateObject(19444, 1906.199218, -1658.000000, 12.460000, 0.000000, 90.000000, 180.000000, 300.00);
  17965. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17966. tmpobjid = CreateObject(19444, 1909.699218, -1658.000000, 12.460000, 0.000000, 90.000000, 180.000000, 300.00);
  17967. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17968. tmpobjid = CreateObject(19444, 1913.199218, -1658.000000, 12.460000, 0.000000, 90.000000, 180.000000, 300.00);
  17969. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17970. tmpobjid = CreateObject(19444, 1916.699218, -1658.000000, 12.460000, 0.000000, 90.000000, 179.994995, 300.00);
  17971. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17972. tmpobjid = CreateObject(19444, 1920.199218, -1658.000000, 12.460000, 0.000000, 90.000000, 180.000000, 300.00);
  17973. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17974. tmpobjid = CreateObject(19444, 1923.699218, -1658.000000, 12.460000, 0.000000, 90.000000, 0.000000, 300.00);
  17975. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17976. tmpobjid = CreateObject(19444, 1927.199218, -1658.000000, 12.460000, 0.000000, 90.000000, 180.000000, 300.00);
  17977. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17978. tmpobjid = CreateObject(19444, 1929.899414, -1658.000000, 12.461998, 0.000000, 90.000000, 180.000000, 300.00);
  17979. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17980. tmpobjid = CreateObject(19444, 1869.650024, -1660.000000, 12.449998, 0.000000, 90.000000, 90.000000, 300.00);
  17981. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17982. tmpobjid = CreateObject(19444, 1869.650024, -1663.000000, 12.458998, 0.000000, 90.000000, 90.000000, 300.00);
  17983. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17984. tmpobjid = CreateObject(19444, 1869.650024, -1666.250000, 12.449998, 0.000000, 90.000000, 90.000000, 300.00);
  17985. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  17986. tmpobjid = CreateObject(19543, 1861.369995, -1648.799804, 12.529998, 0.000000, 0.000000, 0.000000, 300.00);
  17987. SetObjectMaterial(tmpobjid, 0, 17081, "cuntwlandcent", "grass10_grassdeep1", 0x00000000);
  17988. tmpobjid = CreateObject(19543, 1900.500000, -1629.399414, 12.532999, 0.000000, 0.000000, 90.000000, 300.00);
  17989. SetObjectMaterial(tmpobjid, 0, 17081, "cuntwlandcent", "grass10_grassdeep1", 0x00000000);
  17990. tmpobjid = CreateObject(19543, 1838.000000, -1648.799804, 12.531000, 0.000000, 0.000000, 0.000000, 300.00);
  17991. SetObjectMaterial(tmpobjid, 0, 17081, "cuntwlandcent", "grass10_grassdeep1", 0x00000000);
  17992. tmpobjid = CreateObject(19543, 1853.000000, -1648.799804, 12.531000, 0.000000, 0.000000, 0.000000, 300.00);
  17993. SetObjectMaterial(tmpobjid, 0, 17081, "cuntwlandcent", "grass10_grassdeep1", 0x00000000);
  17994. tmpobjid = CreateObject(19545, 1886.000000, -1715.000000, 12.531997, 0.000000, 0.000000, 0.000000, 300.00);
  17995. SetObjectMaterial(tmpobjid, 0, 8409, "gnhotel1", "ap_tarmac", 0x00000000);
  17996. tmpobjid = CreateObject(19543, 1900.500000, -1639.400024, 12.529998, 0.000000, 0.000000, 90.000000, 300.00);
  17997. SetObjectMaterial(tmpobjid, 0, 17081, "cuntwlandcent", "grass10_grassdeep1", 0x00000000);
  17998. tmpobjid = CreateObject(8947, 1861.500000, -1680.299804, 9.486000, 0.000000, 0.000000, 0.000000, 300.00);
  17999. SetObjectMaterial(tmpobjid, 0, 10101, "2notherbuildsfe", "ferry_build14", 0x00000000);
  18000. SetObjectMaterial(tmpobjid, 1, 10101, "2notherbuildsfe", "Bow_Abpave_Gen", 0x00000000);
  18001. SetObjectMaterial(tmpobjid, 2, 3063, "col_wall1x", "mp_diner_ceilingdirt", 0x00000000);
  18002. tmpobjid = CreateObject(8947, 1847.250000, -1680.300048, 9.484998, 0.000000, 0.000000, 0.000000, 300.00);
  18003. SetObjectMaterial(tmpobjid, 2, 3063, "col_wall1x", "mp_diner_ceilingdirt", 0x00000000);
  18004. tmpobjid = CreateObject(8947, 1839.000000, -1680.299804, 9.479998, 0.000000, 0.000000, 0.000000, 300.00);
  18005. SetObjectMaterial(tmpobjid, 1, 4817, "traintrack_las", "sjmlascumpth", 0x00000000);
  18006. SetObjectMaterial(tmpobjid, 2, 3063, "col_wall1x", "mp_diner_ceilingdirt", 0x00000000);
  18007. tmpobjid = CreateObject(19545, 1870.999023, -1715.000000, 12.531998, 0.000000, 0.000000, 0.000000, 300.00);
  18008. SetObjectMaterial(tmpobjid, 0, 8409, "gnhotel1", "ap_tarmac", 0x00000000);
  18009. tmpobjid = CreateObject(19545, 1855.999023, -1715.000000, 12.531998, 0.000000, 0.000000, 0.000000, 300.00);
  18010. SetObjectMaterial(tmpobjid, 0, 8409, "gnhotel1", "ap_tarmac", 0x00000000);
  18011. tmpobjid = CreateObject(19545, 1840.999023, -1715.000000, 12.531998, 0.000000, 0.000000, 0.000000, 300.00);
  18012. SetObjectMaterial(tmpobjid, 0, 8409, "gnhotel1", "ap_tarmac", 0x00000000);
  18013. tmpobjid = CreateObject(19357, 1927.099609, -1639.899414, 12.470000, 0.000000, 90.000000, 0.000000, 300.00);
  18014. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  18015. tmpobjid = CreateObject(19357, 1927.099609, -1637.500000, 12.479998, 0.000000, 90.000000, 0.000000, 300.00);
  18016. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  18017. tmpobjid = CreateObject(19444, 1929.899414, -1638.799804, 12.460000, 0.000000, 90.000000, 179.994995, 300.00);
  18018. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  18019. tmpobjid = CreateObject(19463, 1966.000000, -1625.400024, 14.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18020. SetObjectMaterial(tmpobjid, 0, 10856, "bakerybit_sfse", "ws_altz_wall7", 0x00000000);
  18021. tmpobjid = CreateObject(19463, 1986.799804, -1625.399414, 14.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18022. SetObjectMaterial(tmpobjid, 0, 10856, "bakerybit_sfse", "ws_altz_wall7", 0x00000000);
  18023. tmpobjid = CreateObject(19444, 1981.199951, -1625.400024, 14.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18024. SetObjectMaterial(tmpobjid, 0, 10856, "bakerybit_sfse", "ws_altz_wall7", 0x00000000);
  18025. tmpobjid = CreateObject(19463, 1956.399414, -1625.399414, 14.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18026. SetObjectMaterial(tmpobjid, 0, 10856, "bakerybit_sfse", "ws_altz_wall7", 0x00000000);
  18027. tmpobjid = CreateObject(19371, 1972.400024, -1625.400024, 14.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18028. SetObjectMaterial(tmpobjid, 0, 10856, "bakerybit_sfse", "ws_altz_wall7", 0x00000000);
  18029. tmpobjid = CreateObject(19371, 1975.599609, -1625.399414, 14.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18030. SetObjectMaterial(tmpobjid, 0, 10856, "bakerybit_sfse", "ws_altz_wall7", 0x00000000);
  18031. tmpobjid = CreateObject(19371, 1978.799804, -1625.399414, 14.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18032. SetObjectMaterial(tmpobjid, 0, 10856, "bakerybit_sfse", "ws_altz_wall7", 0x00000000);
  18033. tmpobjid = CreateObject(19357, 1907.500000, -1632.199218, 12.460900, 0.000000, 90.000000, 270.000000, 300.00);
  18034. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  18035. tmpobjid = CreateObject(19444, 1907.400024, -1627.500000, 12.460000, 0.000000, 90.000000, 270.000000, 300.00);
  18036. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  18037. tmpobjid = CreateObject(19444, 1907.400024, -1624.000000, 12.460000, 0.000000, 90.000000, 270.000000, 300.00);
  18038. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  18039. tmpobjid = CreateObject(19444, 1907.400024, -1631.000000, 12.460000, 0.000000, 90.000000, 270.000000, 300.00);
  18040. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  18041. tmpobjid = CreateObject(19444, 1869.650024, -1655.500000, 12.460000, 0.000000, 90.000000, 90.000000, 300.00);
  18042. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  18043. tmpobjid = CreateObject(19444, 1869.650024, -1652.000000, 12.460000, 0.000000, 90.000000, 90.000000, 300.00);
  18044. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  18045. tmpobjid = CreateObject(19444, 1869.650024, -1648.500000, 12.460000, 0.000000, 90.000000, 90.000000, 300.00);
  18046. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  18047. tmpobjid = CreateObject(19444, 1869.650024, -1645.000000, 12.460000, 0.000000, 90.000000, 90.000000, 300.00);
  18048. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  18049. tmpobjid = CreateObject(19444, 1869.650024, -1641.500000, 12.460000, 0.000000, 90.000000, 90.000000, 300.00);
  18050. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  18051. tmpobjid = CreateObject(19444, 1869.650024, -1638.000000, 12.460000, 0.000000, 90.000000, 90.000000, 300.00);
  18052. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  18053. tmpobjid = CreateObject(19444, 1869.650024, -1634.500000, 12.460000, 0.000000, 90.000000, 90.000000, 300.00);
  18054. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  18055. tmpobjid = CreateObject(19444, 1869.650024, -1631.000000, 12.460000, 0.000000, 90.000000, 90.000000, 300.00);
  18056. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  18057. tmpobjid = CreateObject(19444, 1869.650024, -1627.500000, 12.460000, 0.000000, 90.000000, 90.000000, 300.00);
  18058. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  18059. tmpobjid = CreateObject(19444, 1869.650024, -1624.000000, 12.460000, 0.000000, 90.000000, 90.000000, 300.00);
  18060. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  18061. tmpobjid = CreateObject(19357, 1850.900024, -1647.800048, 12.460900, 0.000000, 90.000000, 0.000000, 300.00);
  18062. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  18063. tmpobjid = CreateObject(19444, 1847.400024, -1647.800048, 12.460000, 0.000000, 90.000000, 180.000000, 300.00);
  18064. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  18065. tmpobjid = CreateObject(19444, 1843.900024, -1647.800048, 12.460000, 0.000000, 90.000000, 179.994995, 300.00);
  18066. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  18067. tmpobjid = CreateObject(19444, 1840.400024, -1647.800048, 12.460000, 0.000000, 90.000000, 179.994995, 300.00);
  18068. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  18069. tmpobjid = CreateObject(19444, 1836.900024, -1647.800048, 12.460000, 0.000000, 90.000000, 179.994995, 300.00);
  18070. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  18071. tmpobjid = CreateObject(19444, 1833.400024, -1647.800048, 12.460000, 0.000000, 90.000000, 179.994995, 300.00);
  18072. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  18073. tmpobjid = CreateObject(19357, 1856.500000, -1628.299804, 12.479998, 0.000000, 90.000000, 90.000000, 300.00);
  18074. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  18075. tmpobjid = CreateObject(19357, 1858.899414, -1628.299804, 12.470000, 0.000000, 90.000000, 90.000000, 300.00);
  18076. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  18077. tmpobjid = CreateObject(19444, 1857.699218, -1624.000000, 12.460000, 0.000000, 90.000000, 90.000000, 300.00);
  18078. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  18079. tmpobjid = CreateObject(19444, 1857.699951, -1627.500000, 12.460000, 0.000000, 90.000000, 90.000000, 300.00);
  18080. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "indund_64", 0x00000000);
  18081. tmpobjid = CreateObject(19545, 1895.031616, -1715.000000, 12.530998, 0.000000, 0.000000, 0.000000, 300.00);
  18082. SetObjectMaterial(tmpobjid, 0, 12855, "cunte_cop", "sw_PDground", 0xFFFFFFFF);
  18083. tmpobjid = CreateObject(19545, 1925.028198, -1715.000000, 12.530998, 0.000000, 0.000000, 0.000000, 300.00);
  18084. SetObjectMaterial(tmpobjid, 0, 12855, "cunte_cop", "sw_PDground", 0xFFFFFFFF);
  18085. tmpobjid = CreateObject(19545, 1910.029174, -1715.000000, 12.529001, 0.000000, 0.000000, 0.000000, 300.00);
  18086. SetObjectMaterial(tmpobjid, 0, 12855, "cunte_cop", "sw_PDground", 0xFFFFFFFF);
  18087. tmpobjid = CreateObject(19463, 1902.791748, -1730.740478, 10.799994, 0.000000, 0.000000, 180.000000, 300.00);
  18088. SetObjectMaterial(tmpobjid, 0, 9525, "boigas_sfw", "GEwhite1_64", 0xFF996600);
  18089. tmpobjid = CreateObject(19463, 1902.791748, -1721.110839, 10.799994, 0.000000, 0.000000, 180.000000, 300.00);
  18090. SetObjectMaterial(tmpobjid, 0, 9525, "boigas_sfw", "GEwhite1_64", 0xFF996600);
  18091. tmpobjid = CreateObject(19463, 1902.791748, -1711.471923, 10.799994, 0.000000, 0.000000, 180.000000, 300.00);
  18092. SetObjectMaterial(tmpobjid, 0, 9525, "boigas_sfw", "GEwhite1_64", 0xFF996600);
  18093. tmpobjid = CreateObject(19463, 1907.693115, -1720.732910, 10.799999, 0.000000, 0.000000, -90.000000, 300.00);
  18094. SetObjectMaterial(tmpobjid, 0, 9525, "boigas_sfw", "GEwhite1_64", 0xFF996600);
  18095. tmpobjid = CreateObject(19463, 1917.703369, -1720.732910, 10.799999, 0.000000, 0.000000, -90.000000, 300.00);
  18096. SetObjectMaterial(tmpobjid, 0, 9525, "boigas_sfw", "GEwhite1_64", 0xFF996600);
  18097. tmpobjid = CreateObject(19463, 1907.702880, -1706.741821, 10.799999, 0.000000, 0.000000, -90.000000, 300.00);
  18098. SetObjectMaterial(tmpobjid, 0, 9525, "boigas_sfw", "GEwhite1_64", 0xFF996600);
  18099. tmpobjid = CreateObject(19463, 1917.733154, -1706.741821, 10.800002, 0.000000, 0.000000, -90.000000, 300.00);
  18100. SetObjectMaterial(tmpobjid, 0, 9525, "boigas_sfw", "GEwhite1_64", 0xFF996600);
  18101. tmpobjid = CreateObject(19463, 1917.733154, -1735.472900, 10.800002, 0.000000, 0.000000, -90.000000, 300.00);
  18102. SetObjectMaterial(tmpobjid, 0, 9525, "boigas_sfw", "GEwhite1_64", 0xFF996600);
  18103. tmpobjid = CreateObject(19463, 1907.682495, -1735.472900, 10.800002, 0.000000, 0.000000, -90.000000, 300.00);
  18104. SetObjectMaterial(tmpobjid, 0, 9525, "boigas_sfw", "GEwhite1_64", 0xFF996600);
  18105. tmpobjid = CreateObject(19463, 1922.611816, -1711.471923, 10.799994, 0.000000, 0.000000, 180.000000, 300.00);
  18106. SetObjectMaterial(tmpobjid, 0, 9525, "boigas_sfw", "GEwhite1_64", 0xFF996600);
  18107. tmpobjid = CreateObject(19463, 1922.611816, -1721.111816, 10.799994, 0.000000, 0.000000, 180.000000, 300.00);
  18108. SetObjectMaterial(tmpobjid, 0, 9525, "boigas_sfw", "GEwhite1_64", 0xFF996600);
  18109. tmpobjid = CreateObject(19463, 1922.611816, -1730.741699, 10.799994, 0.000000, 0.000000, 180.000000, 300.00);
  18110. SetObjectMaterial(tmpobjid, 0, 9525, "boigas_sfw", "GEwhite1_64", 0xFF996600);
  18111. tmpobjid = CreateObject(19444, 1912.219604, -1720.734008, 10.800982, 0.000000, 180.000000, 1170.000000, 300.00);
  18112. SetObjectMaterial(tmpobjid, 0, 9525, "boigas_sfw", "GEwhite1_64", 0xFF996600);
  18113. tmpobjid = CreateObject(19444, 1912.219604, -1735.473876, 10.800986, 0.000000, 180.000000, 1170.000000, 300.00);
  18114. SetObjectMaterial(tmpobjid, 0, 9525, "boigas_sfw", "GEwhite1_64", 0xFF996600);
  18115. tmpobjid = CreateObject(19362, 1912.200561, -1708.852416, 12.440023, 0.000000, 90.000000, 90.100021, 300.00);
  18116. SetObjectMaterial(tmpobjid, 0, 6959, "vgnbasktball", "yellowbball", 0xFF996600);
  18117. tmpobjid = CreateObject(19362, 1912.243408, -1733.352905, 12.440023, 0.000000, 90.000000, -90.299896, 300.00);
  18118. SetObjectMaterial(tmpobjid, 0, 6959, "vgnbasktball", "yellowbball", 0xFF996600);
  18119. tmpobjid = CreateObject(19376, 1917.119628, -1696.299804, 12.446997, 0.000000, 90.000000, 90.000000, 300.00);
  18120. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0xFF969696);
  18121. tmpobjid = CreateObject(19376, 1907.500000, -1696.299804, 12.446998, 0.000000, 90.000000, 90.000000, 300.00);
  18122. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0xFF969696);
  18123. tmpobjid = CreateObject(3037, 1893.505859, -1737.290893, 13.772905, 0.000000, 0.000000, 0.000000, 300.00);
  18124. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "newall1-1128", 0xFFFFFFFF);
  18125. tmpobjid = CreateObject(3037, 1893.505859, -1727.070922, 13.772905, 0.000000, 0.000000, 0.000000, 300.00);
  18126. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "newall1-1128", 0xFFFFFFFF);
  18127. tmpobjid = CreateObject(3037, 1893.505859, -1716.850830, 13.772905, 0.000000, 0.000000, 0.000000, 300.00);
  18128. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "newall1-1128", 0xFFFFFFFF);
  18129. tmpobjid = CreateObject(3037, 1893.505859, -1706.640258, 13.772905, 0.000000, 0.000000, 0.000000, 300.00);
  18130. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "newall1-1128", 0xFFFFFFFF);
  18131. tmpobjid = CreateObject(3037, 1893.505859, -1696.420654, 13.772905, 0.000000, 0.000000, 0.000000, 300.00);
  18132. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "newall1-1128", 0xFFFFFFFF);
  18133. tmpobjid = CreateObject(3037, 1893.504882, -1693.041259, 13.772905, 0.000000, 0.000000, 0.000000, 300.00);
  18134. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "newall1-1128", 0xFFFFFFFF);
  18135. tmpobjid = CreateObject(3084, 1862.378662, -1711.907104, 18.448654, 0.000000, 0.000000, 0.000000, 300.00);
  18136. SetObjectMaterial(tmpobjid, 0, 16640, "a51", "concretegroundl1_256", 0x00000000);
  18137. tmpobjid = CreateObject(3084, 1849.938110, -1711.907104, 18.448654, 0.000000, 0.000000, 0.000000, 300.00);
  18138. SetObjectMaterial(tmpobjid, 0, 16640, "a51", "concretegroundl1_256", 0x00000000);
  18139. tmpobjid = CreateObject(16775, 1864.678100, -1719.253417, 19.973865, 89.999938, 0.000000, 89.999931, 300.00);
  18140. SetObjectMaterial(tmpobjid, 0, 5766, "capitol_lawn", "alleygroundb256", 0x00000000);
  18141. tmpobjid = CreateObject(19369, 1893.513793, -1733.765502, 14.150005, 0.000000, 0.000000, 180.000000, 300.00);
  18142. SetObjectMaterial(tmpobjid, 0, 3077, "blkbrdx", "WCTitle", 0xFF000000);
  18143. tmpobjid = CreateObject(3032, 1880.645874, -1742.603027, 20.043806, 0.000000, 0.000000, 0.000000, 300.00);
  18144. SetObjectMaterial(tmpobjid, 0, 5631, "apartmentalpha", "aptsign01_LA", 0x00000000);
  18145. tmpobjid = CreateObject(2632, 1918.300048, -1699.699951, 12.600000, 0.000000, 0.000000, 0.000000, 300.00);
  18146. SetObjectMaterial(tmpobjid, 0, -1, "none", "none", 0xFF33FFFF);
  18147. tmpobjid = CreateObject(2631, 1906.199951, -1699.699951, 12.600000, 0.000000, 0.000000, 0.000000, 300.00);
  18148. SetObjectMaterial(tmpobjid, 0, -1, "none", "none", 0xFFDCDCDC);
  18149. tmpobjid = CreateObject(3819, 1927.199951, -1729.099975, 13.500000, 0.000000, 0.000000, 0.000000, 300.00);
  18150. SetObjectMaterial(tmpobjid, 0, -1, "none", "none", 0xFFFFFFFF);
  18151. tmpobjid = CreateObject(3819, 1927.199951, -1713.300048, 13.500000, 0.000000, 0.000000, 0.000000, 300.00);
  18152. SetObjectMaterial(tmpobjid, 0, -1, "none", "none", 0xFFFFFFFF);
  18153. tmpobjid = CreateObject(2661, 1832.203491, -1738.423461, 15.800000, 0.000000, 0.000000, 315.000000, 300.00);
  18154. SetObjectMaterial(tmpobjid, 0, 10439, "hashblock3_sfs", "ws_hs_awning", 0x00000000);
  18155. tmpobjid = CreateObject(2661, 1853.494628, -1742.605712, 15.789999, 0.000000, 0.000000, 0.000007, 300.00);
  18156. SetObjectMaterial(tmpobjid, 0, 7418, "vgnbballsign2", "frogspawn1_256", 0x00000000);
  18157. tmpobjid = CreateObject(2661, 1831.399780, -1718.379150, 15.800000, 0.000000, 0.000000, -90.200019, 300.00);
  18158. SetObjectMaterial(tmpobjid, 0, 12979, "sw_block9", "sw_bikeshed", 0x00000000);
  18159. tmpobjid = CreateObject(19377, 1850.197143, -1679.699218, 12.509999, 0.000000, 90.000000, 90.000000, 300.00);
  18160. SetObjectMaterial(tmpobjid, 0, 3980, "cityhall_lan", "man_cellarfloor128", 0x00000000);
  18161. tmpobjid = CreateObject(3037, 1956.701171, -1705.763793, 13.642912, 0.000000, 0.000000, -90.000045, 300.00);
  18162. SetObjectMaterial(tmpobjid, 0, 10856, "bakerybit_sfse", "ws_altz_wall7", 0xFFFFFFFF);
  18163. tmpobjid = CreateObject(3037, 1966.921264, -1705.763793, 13.642912, 0.000000, 0.000000, -90.000045, 300.00);
  18164. SetObjectMaterial(tmpobjid, 0, 10856, "bakerybit_sfse", "ws_altz_wall7", 0xFFFFFFFF);
  18165. tmpobjid = CreateObject(3037, 1977.142089, -1705.763793, 13.642912, 0.000000, 0.000000, -90.000045, 300.00);
  18166. SetObjectMaterial(tmpobjid, 0, 10856, "bakerybit_sfse", "ws_altz_wall7", 0xFFFFFFFF);
  18167. tmpobjid = CreateObject(19462, 1893.520019, -1698.300048, 12.409996, 0.000000, 0.000000, 180.000000, 300.00);
  18168. SetObjectMaterial(tmpobjid, 0, 14801, "lee_bdupsmain", "Bdup_graf1", 0xFF333333);
  18169. tmpobjid = CreateObject(3037, 1986.571411, -1705.762817, 13.642912, 0.000000, 0.000000, -90.000045, 300.00);
  18170. SetObjectMaterial(tmpobjid, 0, 10856, "bakerybit_sfse", "ws_altz_wall7", 0xFFFFFFFF);
  18171. tmpobjid = CreateObject(19398, 1891.979980, -1742.330078, 14.199997, 0.000000, 0.000000, 90.000000, 300.00);
  18172. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "newall1-1128", 0x00000000);
  18173. tmpobjid = CreateObject(19463, 1888.770019, -1688.000000, 14.199998, 0.000000, 0.000000, 270.000000, 300.00);
  18174. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "newall1-1128", 0x00000000);
  18175. tmpobjid = CreateObject(19371, 1870.300048, -1688.000000, 14.199998, 0.000000, 0.000000, 90.000000, 300.00);
  18176. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "newall1-1128", 0x00000000);
  18177. tmpobjid = CreateObject(19417, 1873.500000, -1688.000000, 14.199998, 0.000000, 0.000000, 90.000000, 300.00);
  18178. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "newall1-1128", 0x00000000);
  18179. tmpobjid = CreateObject(19417, 1875.000000, -1689.599975, 14.199998, 0.000000, 0.000000, 0.000000, 300.00);
  18180. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "newall1-1128", 0x00000000);
  18181. tmpobjid = CreateObject(19398, 1873.500000, -1691.199951, 14.199998, 0.000000, 0.000000, 90.000000, 300.00);
  18182. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "newall1-1128", 0x00000000);
  18183. tmpobjid = CreateObject(19371, 1868.699218, -1689.519531, 14.199998, 0.000000, 0.000000, 179.994995, 300.00);
  18184. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "newall1-1128", 0x00000000);
  18185. tmpobjid = CreateObject(19444, 1868.699218, -1691.899414, 14.199998, 0.000000, 0.000000, 0.000000, 300.00);
  18186. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "newall1-1128", 0x00000000);
  18187. tmpobjid = CreateObject(19463, 1868.699951, -1697.500000, 14.199998, 0.000000, 0.000000, 179.988998, 300.00);
  18188. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "newall1-1128", 0x00000000);
  18189. tmpobjid = CreateObject(19463, 1868.699951, -1707.099975, 14.199998, 0.000000, 0.000000, 179.983993, 300.00);
  18190. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "newall1-1128", 0x00000000);
  18191. tmpobjid = CreateObject(19371, 1870.299804, -1691.199218, 14.199998, 0.000000, 0.000000, 90.000000, 300.00);
  18192. SetObjectMaterial(tmpobjid, 0, 17545, "burnsground", "newall1-1128", 0x00000000);
  18193. tmpobjid = CreateObject(19362, 1870.399414, -1689.599609, 15.909998, 0.000000, 90.000000, 0.000000, 300.00);
  18194. SetObjectMaterial(tmpobjid, 0, 10101, "2notherbuildsfe", "Bow_Abpave_Gen", 0x00000000);
  18195. tmpobjid = CreateObject(19362, 1873.300048, -1689.599975, 15.899997, 0.000000, 90.000000, 0.000000, 300.00);
  18196. SetObjectMaterial(tmpobjid, 0, 10101, "2notherbuildsfe", "Bow_Abpave_Gen", 0x00000000);
  18197. tmpobjid = CreateObject(19463, 1867.000000, -1712.000000, 12.039999, 90.000000, 179.994995, 270.000000, 300.00);
  18198. SetObjectMaterial(tmpobjid, 0, 16640, "a51", "concretegroundl1_256", 0x00000000);
  18199. tmpobjid = CreateObject(19444, 1858.699951, -1712.000000, 15.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18200. SetObjectMaterial(tmpobjid, 0, 16640, "a51", "concretegroundl1_256", 0x00000000);
  18201. tmpobjid = CreateObject(19463, 1850.400024, -1712.000000, 12.039999, 90.000000, 180.000000, 270.000000, 300.00);
  18202. SetObjectMaterial(tmpobjid, 0, 16640, "a51", "concretegroundl1_256", 0x00000000);
  18203. tmpobjid = CreateObject(16775, 1856.688964, -1719.253417, 19.973865, 89.999938, 0.000000, 89.999931, 300.00);
  18204. SetObjectMaterial(tmpobjid, 0, 5766, "capitol_lawn", "alleygroundb256", 0x00000000);
  18205. tmpobjid = CreateObject(19444, 1858.699951, -1712.000000, 11.600000, 0.000000, 0.000000, 90.000000, 300.00);
  18206. SetObjectMaterial(tmpobjid, 0, 16640, "a51", "concretegroundl1_256", 0x00000000);
  18207. tmpobjid = CreateObject(16775, 1848.709838, -1719.253417, 19.973865, 89.999938, 0.000000, 89.999931, 300.00);
  18208. SetObjectMaterial(tmpobjid, 0, 5766, "capitol_lawn", "alleygroundb256", 0x00000000);
  18209. tmpobjid = CreateObject(19545, 1835.800048, -1712.500000, 12.531000, 0.000000, 0.000000, 0.000000, 300.00);
  18210. SetObjectMaterial(tmpobjid, 0, 8409, "gnhotel1", "ap_tarmac", 0x00000000);
  18211. tmpobjid = CreateObject(19377, 1879.699951, -1737.300048, 12.461998, 0.000000, 90.000000, 90.000000, 300.00);
  18212. SetObjectMaterial(tmpobjid, 0, 10755, "airportrminl_sfse", "ws_rotten_concrete1", 0xFFFFFFFF);
  18213. tmpobjid = CreateObject(19377, 1857.899414, -1679.699218, 12.506999, 0.000000, 90.000000, 90.000000, 300.00);
  18214. SetObjectMaterial(tmpobjid, 0, 3980, "cityhall_lan", "man_cellarfloor128", 0x00000000);
  18215. tmpobjid = CreateObject(19377, 1850.179199, -1684.400024, 12.507998, 0.000000, 90.000000, -89.799957, 300.00);
  18216. SetObjectMaterial(tmpobjid, 0, 3980, "cityhall_lan", "man_cellarfloor128", 0x00000000);
  18217. tmpobjid = CreateObject(19377, 1845.400024, -1679.699951, 12.506999, 0.000000, 90.000000, 90.000000, 300.00);
  18218. SetObjectMaterial(tmpobjid, 0, 3980, "cityhall_lan", "man_cellarfloor128", 0x00000000);
  18219. tmpobjid = CreateObject(19377, 1850.199951, -1675.000000, 12.508891, 0.000000, 90.000000, 90.000000, 300.00);
  18220. SetObjectMaterial(tmpobjid, 0, 3980, "cityhall_lan", "man_cellarfloor128", 0x00000000);
  18221. tmpobjid = CreateObject(19545, 1959.099975, -1736.800048, 12.375000, 0.000000, 0.000000, 0.000000, 300.00);
  18222. SetObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  18223. tmpobjid = CreateObject(19545, 1969.299804, -1715.799804, 12.536000, 0.000000, 0.000000, 0.000000, 300.00);
  18224. SetObjectMaterial(tmpobjid, 0, 3452, "bballvgnint", "Bow_Abattoir_Conc2", 0x00000000);
  18225. tmpobjid = CreateObject(19545, 1984.300048, -1715.800048, 12.538000, 0.000000, 0.000000, 0.000000, 300.00);
  18226. SetObjectMaterial(tmpobjid, 0, 3452, "bballvgnint", "Bow_Abattoir_Conc2", 0x00000000);
  18227. tmpobjid = CreateObject(19543, 1969.299804, -1674.500000, 12.539999, 0.000000, 0.000000, 0.000000, 300.00);
  18228. SetObjectMaterial(tmpobjid, 0, 17562, "coast_apts", "yardgrass1", 0x00000000);
  18229. tmpobjid = CreateObject(19543, 1984.299804, -1674.500000, 12.539999, 0.000000, 0.000000, 0.000000, 300.00);
  18230. SetObjectMaterial(tmpobjid, 0, 17562, "coast_apts", "yardgrass1", 0x00000000);
  18231. tmpobjid = CreateObject(19543, 1959.099609, -1674.500000, 12.538000, 0.000000, 0.000000, 0.000000, 300.00);
  18232. SetObjectMaterial(tmpobjid, 0, 17562, "coast_apts", "yardgrass1", 0x00000000);
  18233. tmpobjid = CreateObject(19545, 1984.300048, -1612.000000, 12.359998, 0.000000, 0.000000, 0.000000, 300.00);
  18234. SetObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  18235. tmpobjid = CreateObject(19545, 1969.300048, -1612.099975, 12.359998, 0.000000, 0.000000, 0.000000, 300.00);
  18236. SetObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  18237. tmpobjid = CreateObject(19545, 1954.300048, -1612.099975, 12.359998, 0.000000, 0.000000, 0.000000, 300.00);
  18238. SetObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  18239. tmpobjid = CreateObject(19463, 1991.699218, -1636.500000, 14.100000, 0.000000, 0.000000, 0.000000, 300.00);
  18240. SetObjectMaterial(tmpobjid, 0, 10856, "bakerybit_sfse", "ws_altz_wall7", 0x00000000);
  18241. tmpobjid = CreateObject(19377, 1979.679199, -1731.869995, 12.460000, 0.000000, 90.000000, 90.000000, 300.00);
  18242. SetObjectMaterial(tmpobjid, 0, 9515, "bigboxtemp1", "redbrickground256", 0x00000000);
  18243. tmpobjid = CreateObject(19377, 1971.199218, -1731.869995, 12.449998, 0.000000, 90.000000, 90.000000, 300.00);
  18244. SetObjectMaterial(tmpobjid, 0, 9515, "bigboxtemp1", "redbrickground256", 0x00000000);
  18245. tmpobjid = CreateObject(19463, 1966.500000, -1716.000000, 12.899998, 0.000000, 0.000000, 179.983993, 300.00);
  18246. SetObjectMaterial(tmpobjid, 0, 10856, "bakerybit_sfse", "ws_altz_wall7", 0x00000000);
  18247. tmpobjid = CreateObject(2763, 1973.678100, -1730.272827, 12.958680, 0.000000, 0.000000, 0.000000, 300.00);
  18248. SetObjectMaterial(tmpobjid, 0, -1, "none", "none", 0xFF000000);
  18249. tmpobjid = CreateObject(2763, 1977.877685, -1730.272827, 12.958680, 0.000000, 0.000000, 0.000000, 300.00);
  18250. SetObjectMaterial(tmpobjid, 0, -1, "none", "none", 0xFF000000);
  18251. tmpobjid = CreateObject(19371, 1991.699218, -1626.899414, 14.100000, 0.000000, 0.000000, 0.000000, 300.00);
  18252. SetObjectMaterial(tmpobjid, 0, 10856, "bakerybit_sfse", "ws_altz_wall7", 0x00000000);
  18253. tmpobjid = CreateObject(19398, 1991.699218, -1630.099609, 14.100000, 0.000000, 0.000000, 0.000000, 300.00);
  18254. SetObjectMaterial(tmpobjid, 0, 10856, "bakerybit_sfse", "ws_altz_wall7", 0x00000000);
  18255. tmpobjid = CreateObject(19444, 1991.699218, -1642.099609, 14.100000, 0.000000, 0.000000, 0.000000, 300.00);
  18256. SetObjectMaterial(tmpobjid, 0, 10856, "bakerybit_sfse", "ws_altz_wall7", 0x00000000);
  18257. tmpobjid = CreateObject(3783, 1971.299804, -1655.399414, 14.800000, 0.000000, 0.000000, 179.994995, 300.00);
  18258. SetObjectMaterial(tmpobjid, 3, 10856, "bakerybit_sfse", "ws_altz_wall7", 0x00000000);
  18259. tmpobjid = CreateObject(3783, 1971.299804, -1673.899414, 14.800000, 0.000000, 0.000000, 180.000000, 300.00);
  18260. SetObjectMaterial(tmpobjid, 3, 10856, "bakerybit_sfse", "ws_altz_wall7", 0x00000000);
  18261. tmpobjid = CreateObject(3783, 1971.300048, -1692.099975, 14.800000, 0.000000, 0.000000, 180.000000, 300.00);
  18262. SetObjectMaterial(tmpobjid, 3, 10856, "bakerybit_sfse", "ws_altz_wall7", 0x00000000);
  18263. tmpobjid = CreateObject(19463, 1982.099609, -1692.000000, 14.100000, 0.000000, 0.000000, 269.989013, 300.00);
  18264. SetObjectMaterial(tmpobjid, 0, 10856, "bakerybit_sfse", "ws_altz_wall7", 0x00000000);
  18265. tmpobjid = CreateObject(19444, 1966.299804, -1688.500000, 12.460000, 0.000000, 90.000000, 179.994995, 300.00);
  18266. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18267. tmpobjid = CreateObject(19444, 1969.800048, -1688.500000, 12.460000, 0.000000, 90.000000, 179.994995, 300.00);
  18268. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18269. tmpobjid = CreateObject(19444, 1973.300048, -1688.500000, 12.460000, 0.000000, 90.000000, 179.994995, 300.00);
  18270. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18271. tmpobjid = CreateObject(19444, 1976.800048, -1688.500000, 12.460000, 0.000000, 90.000000, 179.994995, 300.00);
  18272. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18273. tmpobjid = CreateObject(19444, 1971.300048, -1688.550048, 12.460398, 0.000000, 90.000000, 89.995002, 300.00);
  18274. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18275. tmpobjid = CreateObject(19444, 1971.300048, -1685.050048, 12.460398, 0.000000, 90.000000, 89.988998, 300.00);
  18276. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18277. tmpobjid = CreateObject(19463, 1959.900024, -1692.000000, 14.100000, 0.000000, 0.000000, 269.989013, 300.00);
  18278. SetObjectMaterial(tmpobjid, 0, 10856, "bakerybit_sfse", "ws_altz_wall7", 0x00000000);
  18279. tmpobjid = CreateObject(19444, 1968.500000, -1695.699218, 12.468998, 0.000000, 90.000000, 179.994995, 300.00);
  18280. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18281. tmpobjid = CreateObject(19444, 1965.000000, -1695.699218, 12.468998, 0.000000, 90.000000, 179.994995, 300.00);
  18282. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18283. tmpobjid = CreateObject(19444, 1961.500000, -1695.699218, 12.468998, 0.000000, 90.000000, 179.994995, 300.00);
  18284. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18285. tmpobjid = CreateObject(19444, 1963.500000, -1698.160034, 12.460398, 0.000000, 90.000000, 269.989013, 300.00);
  18286. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18287. tmpobjid = CreateObject(19444, 1960.299804, -1700.699218, 12.460398, 0.000000, 90.000000, 179.983993, 300.00);
  18288. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18289. tmpobjid = CreateObject(19444, 1953.299804, -1700.699218, 12.460398, 0.000000, 90.000000, 179.977996, 300.00);
  18290. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18291. tmpobjid = CreateObject(19444, 1956.799804, -1700.699218, 12.460398, 0.000000, 90.000000, 179.983993, 300.00);
  18292. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18293. tmpobjid = CreateObject(19444, 1963.799804, -1700.699218, 12.460398, 0.000000, 90.000000, 179.977996, 300.00);
  18294. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18295. tmpobjid = CreateObject(19444, 1967.299804, -1700.699218, 12.460398, 0.000000, 90.000000, 179.977996, 300.00);
  18296. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18297. tmpobjid = CreateObject(19444, 1970.799804, -1700.699218, 12.460398, 0.000000, 90.000000, 179.977996, 300.00);
  18298. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18299. tmpobjid = CreateObject(19444, 1974.299804, -1700.699218, 12.460398, 0.000000, 90.000000, 179.977996, 300.00);
  18300. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18301. tmpobjid = CreateObject(19444, 1977.799804, -1700.699218, 12.460398, 0.000000, 90.000000, 179.977996, 300.00);
  18302. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18303. tmpobjid = CreateObject(19444, 1981.299804, -1700.699218, 12.460398, 0.000000, 90.000000, 179.977996, 300.00);
  18304. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18305. tmpobjid = CreateObject(19444, 1984.799804, -1700.699218, 12.460398, 0.000000, 90.000000, 179.977996, 300.00);
  18306. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18307. tmpobjid = CreateObject(19444, 1988.299804, -1700.699218, 12.460398, 0.000000, 90.000000, 179.977996, 300.00);
  18308. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18309. tmpobjid = CreateObject(19444, 1989.928222, -1700.699218, 12.470398, 0.000000, 90.000000, 179.983993, 300.00);
  18310. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18311. tmpobjid = CreateObject(19444, 1974.000000, -1695.699218, 12.468998, 0.000000, 90.000000, 179.994995, 300.00);
  18312. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18313. tmpobjid = CreateObject(19444, 1977.500000, -1695.699218, 12.468998, 0.000000, 90.000000, 179.994995, 300.00);
  18314. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18315. tmpobjid = CreateObject(19444, 1981.000000, -1695.699218, 12.468998, 0.000000, 90.000000, 179.994995, 300.00);
  18316. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18317. tmpobjid = CreateObject(19444, 1979.099609, -1698.160034, 12.460398, 0.000000, 90.000000, 269.989013, 300.00);
  18318. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18319. tmpobjid = CreateObject(19444, 1956.799804, -1682.500000, 12.460398, 0.000000, 90.000000, 359.984008, 300.00);
  18320. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18321. tmpobjid = CreateObject(19444, 1953.299804, -1682.500000, 12.460398, 0.000000, 90.000000, 359.984008, 300.00);
  18322. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18323. tmpobjid = CreateObject(19444, 1960.299804, -1682.500000, 12.460398, 0.000000, 90.000000, 359.984008, 300.00);
  18324. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18325. tmpobjid = CreateObject(19444, 1963.799804, -1682.500000, 12.460398, 0.000000, 90.000000, 359.984008, 300.00);
  18326. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18327. tmpobjid = CreateObject(19444, 1967.299804, -1682.500000, 12.460398, 0.000000, 90.000000, 359.984008, 300.00);
  18328. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18329. tmpobjid = CreateObject(19444, 1970.799804, -1682.500000, 12.460398, 0.000000, 90.000000, 359.984008, 300.00);
  18330. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18331. tmpobjid = CreateObject(19444, 1974.299804, -1682.500000, 12.460398, 0.000000, 90.000000, 359.984008, 300.00);
  18332. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18333. tmpobjid = CreateObject(19444, 1977.799804, -1682.500000, 12.460398, 0.000000, 90.000000, 359.984008, 300.00);
  18334. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18335. tmpobjid = CreateObject(19444, 1981.299804, -1682.500000, 12.460398, 0.000000, 90.000000, 359.983001, 300.00);
  18336. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18337. tmpobjid = CreateObject(19444, 1984.799804, -1682.500000, 12.460398, 0.000000, 90.000000, 359.984008, 300.00);
  18338. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18339. tmpobjid = CreateObject(19444, 1988.299804, -1682.500000, 12.460398, 0.000000, 90.000000, 359.984008, 300.00);
  18340. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18341. tmpobjid = CreateObject(19444, 1989.938720, -1682.500610, 12.480400, 0.000000, 90.000000, 359.984008, 300.00);
  18342. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18343. tmpobjid = CreateObject(19444, 1961.500000, -1688.500000, 12.460000, 0.000000, 90.000000, 179.994995, 300.00);
  18344. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18345. tmpobjid = CreateObject(2763, 1981.377929, -1730.272827, 12.958680, 0.000000, 0.000000, 0.000000, 300.00);
  18346. SetObjectMaterial(tmpobjid, 0, -1, "none", "none", 0xFF000000);
  18347. tmpobjid = CreateObject(2788, 1982.423339, -1730.219604, 13.059138, 0.000000, 0.000000, 0.000000, 300.00);
  18348. SetObjectMaterial(tmpobjid, 0, -1, "none", "none", 0xFF000000);
  18349. tmpobjid = CreateObject(2788, 1974.672119, -1730.219604, 13.059138, 0.000000, 0.000000, 0.000000, 300.00);
  18350. SetObjectMaterial(tmpobjid, 0, -1, "none", "none", 0xFF000000);
  18351. tmpobjid = CreateObject(2788, 1972.741210, -1730.219604, 13.059138, 0.000000, 0.000000, 178.799926, 300.00);
  18352. SetObjectMaterial(tmpobjid, 0, -1, "none", "none", 0xFF000000);
  18353. tmpobjid = CreateObject(2788, 1980.291259, -1730.278442, 13.059138, 0.000000, 0.000000, 178.799926, 300.00);
  18354. SetObjectMaterial(tmpobjid, 0, -1, "none", "none", 0xFF000000);
  18355. tmpobjid = CreateObject(19444, 1960.599975, -1688.550048, 12.460398, 0.000000, 90.000000, 89.988998, 300.00);
  18356. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18357. tmpobjid = CreateObject(19444, 1960.599975, -1685.050048, 12.460398, 0.000000, 90.000000, 89.988998, 300.00);
  18358. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18359. tmpobjid = CreateObject(19444, 1968.500000, -1677.500000, 12.460000, 0.000000, 90.000000, 179.988998, 300.00);
  18360. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18361. tmpobjid = CreateObject(19444, 1965.000000, -1677.500000, 12.460000, 0.000000, 90.000000, 179.983993, 300.00);
  18362. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18363. tmpobjid = CreateObject(19444, 1961.500000, -1677.500000, 12.460000, 0.000000, 90.000000, 179.983993, 300.00);
  18364. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18365. tmpobjid = CreateObject(19444, 1974.000000, -1677.500000, 12.460000, 0.000000, 90.000000, 179.983993, 300.00);
  18366. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18367. tmpobjid = CreateObject(19444, 1977.500000, -1677.500000, 12.460000, 0.000000, 90.000000, 179.983993, 300.00);
  18368. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18369. tmpobjid = CreateObject(19444, 1981.000000, -1677.500000, 12.460000, 0.000000, 90.000000, 179.983993, 300.00);
  18370. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18371. tmpobjid = CreateObject(19444, 1979.000000, -1679.989990, 12.460398, 0.000000, 90.000000, 89.984001, 300.00);
  18372. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18373. tmpobjid = CreateObject(19444, 1963.599975, -1680.000000, 12.458998, 0.000000, 90.000000, 89.984001, 300.00);
  18374. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18375. tmpobjid = CreateObject(19444, 1981.000000, -1688.500000, 12.458998, 0.000000, 90.000000, 359.983001, 300.00);
  18376. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18377. tmpobjid = CreateObject(19444, 1982.000000, -1685.050048, 12.460398, 0.000000, 90.000000, 269.984008, 300.00);
  18378. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18379. tmpobjid = CreateObject(19444, 1982.000000, -1688.550048, 12.460398, 0.000000, 90.000000, 269.977996, 300.00);
  18380. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18381. tmpobjid = CreateObject(19444, 1981.099975, -1670.300048, 12.460398, 0.000000, 90.000000, 179.983993, 300.00);
  18382. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18383. tmpobjid = CreateObject(19444, 1976.300048, -1670.300048, 12.460398, 0.000000, 90.000000, 179.983993, 300.00);
  18384. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18385. tmpobjid = CreateObject(19444, 1972.800048, -1670.300048, 12.460398, 0.000000, 90.000000, 179.983993, 300.00);
  18386. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18387. tmpobjid = CreateObject(19444, 1969.300048, -1670.300048, 12.460398, 0.000000, 90.000000, 179.983993, 300.00);
  18388. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18389. tmpobjid = CreateObject(19444, 1965.800048, -1670.300048, 12.460398, 0.000000, 90.000000, 179.983993, 300.00);
  18390. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18391. tmpobjid = CreateObject(19444, 1961.500000, -1670.300048, 12.460398, 0.000000, 90.000000, 179.983993, 300.00);
  18392. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18393. tmpobjid = CreateObject(19444, 1968.500000, -1659.000000, 12.460398, 0.000000, 90.000000, 179.983993, 300.00);
  18394. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18395. tmpobjid = CreateObject(19444, 1965.000000, -1659.000000, 12.468998, 0.000000, 90.000000, 179.983993, 300.00);
  18396. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18397. tmpobjid = CreateObject(19444, 1961.500000, -1659.000000, 12.468998, 0.000000, 90.000000, 179.983993, 300.00);
  18398. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18399. tmpobjid = CreateObject(19444, 1960.599975, -1667.630004, 12.460398, 0.000000, 90.000000, 269.983001, 300.00);
  18400. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18401. tmpobjid = CreateObject(19444, 1960.300048, -1665.099975, 12.460398, 0.000000, 90.000000, 179.977996, 300.00);
  18402. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18403. tmpobjid = CreateObject(19444, 1956.800048, -1665.099975, 12.460398, 0.000000, 90.000000, 179.977996, 300.00);
  18404. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18405. tmpobjid = CreateObject(19444, 1953.300048, -1665.099975, 12.460398, 0.000000, 90.000000, 179.973007, 300.00);
  18406. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18407. tmpobjid = CreateObject(19444, 1963.800048, -1665.099975, 12.460398, 0.000000, 90.000000, 179.977996, 300.00);
  18408. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18409. tmpobjid = CreateObject(19444, 1967.300048, -1665.099975, 12.460398, 0.000000, 90.000000, 179.977996, 300.00);
  18410. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18411. tmpobjid = CreateObject(19444, 1963.500000, -1662.599975, 12.460398, 0.000000, 90.000000, 269.972991, 300.00);
  18412. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18413. tmpobjid = CreateObject(19444, 1960.599975, -1671.099975, 12.470398, 0.000000, 90.000000, 269.977996, 300.00);
  18414. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18415. tmpobjid = CreateObject(19444, 1963.500000, -1659.099975, 12.460398, 0.000000, 90.000000, 269.967010, 300.00);
  18416. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18417. tmpobjid = CreateObject(19444, 1970.800048, -1665.099975, 12.460398, 0.000000, 90.000000, 179.973007, 300.00);
  18418. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18419. tmpobjid = CreateObject(19444, 1974.300048, -1665.099975, 12.460398, 0.000000, 90.000000, 179.973007, 300.00);
  18420. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18421. tmpobjid = CreateObject(19444, 1977.800048, -1665.099975, 12.460398, 0.000000, 90.000000, 179.973007, 300.00);
  18422. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18423. tmpobjid = CreateObject(19444, 1981.300048, -1665.099975, 12.460398, 0.000000, 90.000000, 179.973007, 300.00);
  18424. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18425. tmpobjid = CreateObject(19444, 1984.800048, -1665.099975, 12.460398, 0.000000, 90.000000, 179.973007, 300.00);
  18426. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18427. tmpobjid = CreateObject(19444, 1988.300048, -1665.099975, 12.460398, 0.000000, 90.000000, 179.973007, 300.00);
  18428. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18429. tmpobjid = CreateObject(19444, 1989.958984, -1665.100097, 12.470398, 0.000000, 90.000000, 179.973007, 300.00);
  18430. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18431. tmpobjid = CreateObject(19444, 1971.199951, -1667.630004, 12.460398, 0.000000, 90.000000, 89.984001, 300.00);
  18432. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18433. tmpobjid = CreateObject(19444, 1971.199951, -1671.099975, 12.460000, 0.000000, 90.000000, 89.984001, 300.00);
  18434. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18435. tmpobjid = CreateObject(19444, 1982.000000, -1667.599975, 12.460398, 0.000000, 90.000000, 89.984001, 300.00);
  18436. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18437. tmpobjid = CreateObject(19444, 1982.000000, -1671.099975, 12.470398, 0.000000, 90.000000, 89.984001, 300.00);
  18438. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18439. tmpobjid = CreateObject(19444, 1974.000000, -1659.000000, 12.460398, 0.000000, 90.000000, 179.983993, 300.00);
  18440. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18441. tmpobjid = CreateObject(19444, 1977.500000, -1659.000000, 12.460398, 0.000000, 90.000000, 179.983993, 300.00);
  18442. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18443. tmpobjid = CreateObject(19444, 1981.000000, -1659.000000, 12.460398, 0.000000, 90.000000, 179.983993, 300.00);
  18444. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18445. tmpobjid = CreateObject(19444, 1979.000000, -1659.099975, 12.461098, 0.000000, 90.000000, 89.984001, 300.00);
  18446. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18447. tmpobjid = CreateObject(19444, 1979.000000, -1662.550048, 12.460398, 0.000000, 90.000000, 89.984001, 300.00);
  18448. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18449. tmpobjid = CreateObject(19444, 1961.500000, -1651.800048, 12.460398, 0.000000, 90.000000, 179.983993, 300.00);
  18450. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18451. tmpobjid = CreateObject(19444, 1966.300048, -1651.800048, 12.460398, 0.000000, 90.000000, 179.983993, 300.00);
  18452. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18453. tmpobjid = CreateObject(19444, 1969.800048, -1651.800048, 12.460398, 0.000000, 90.000000, 179.983993, 300.00);
  18454. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18455. tmpobjid = CreateObject(19444, 1973.300048, -1651.800048, 12.460398, 0.000000, 90.000000, 179.983993, 300.00);
  18456. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18457. tmpobjid = CreateObject(19444, 1976.800048, -1651.800048, 12.460398, 0.000000, 90.000000, 179.983993, 300.00);
  18458. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18459. tmpobjid = CreateObject(19444, 1981.099975, -1651.800048, 12.460398, 0.000000, 90.000000, 179.983993, 300.00);
  18460. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18461. tmpobjid = CreateObject(19444, 1982.000000, -1650.000000, 12.460000, 0.000000, 90.000000, 89.984001, 300.00);
  18462. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18463. tmpobjid = CreateObject(19444, 1982.000000, -1646.500000, 12.460000, 0.000000, 90.000000, 89.984001, 300.00);
  18464. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18465. tmpobjid = CreateObject(19444, 1971.199951, -1650.000000, 12.460000, 0.000000, 90.000000, 89.984001, 300.00);
  18466. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18467. tmpobjid = CreateObject(19444, 1971.199951, -1646.500000, 12.460000, 0.000000, 90.000000, 89.984001, 300.00);
  18468. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18469. tmpobjid = CreateObject(19444, 1960.599975, -1650.000000, 12.460000, 0.000000, 90.000000, 89.984001, 300.00);
  18470. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18471. tmpobjid = CreateObject(19444, 1960.599975, -1646.500000, 12.460000, 0.000000, 90.000000, 89.984001, 300.00);
  18472. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18473. tmpobjid = CreateObject(19444, 1960.300048, -1644.000000, 12.460398, 0.000000, 90.000000, 359.983001, 300.00);
  18474. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18475. tmpobjid = CreateObject(19444, 1956.800048, -1644.000000, 12.460398, 0.000000, 90.000000, 359.977996, 300.00);
  18476. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18477. tmpobjid = CreateObject(19444, 1953.300048, -1644.000000, 12.460398, 0.000000, 90.000000, 359.977996, 300.00);
  18478. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18479. tmpobjid = CreateObject(19444, 1963.800048, -1644.000000, 12.460398, 0.000000, 90.000000, 359.977996, 300.00);
  18480. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18481. tmpobjid = CreateObject(19444, 1967.300048, -1644.000000, 12.460398, 0.000000, 90.000000, 359.977996, 300.00);
  18482. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18483. tmpobjid = CreateObject(19444, 1970.800048, -1644.000000, 12.460398, 0.000000, 90.000000, 359.977996, 300.00);
  18484. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18485. tmpobjid = CreateObject(19444, 1974.300048, -1644.000000, 12.460398, 0.000000, 90.000000, 359.977996, 300.00);
  18486. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18487. tmpobjid = CreateObject(19444, 1977.800048, -1644.000000, 12.460398, 0.000000, 90.000000, 359.977996, 300.00);
  18488. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18489. tmpobjid = CreateObject(19444, 1981.300048, -1644.000000, 12.460398, 0.000000, 90.000000, 359.977996, 300.00);
  18490. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18491. tmpobjid = CreateObject(19444, 1984.800048, -1644.000000, 12.460398, 0.000000, 90.000000, 359.977996, 300.00);
  18492. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18493. tmpobjid = CreateObject(19444, 1988.300048, -1644.000000, 12.460398, 0.000000, 90.000000, 359.977996, 300.00);
  18494. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18495. tmpobjid = CreateObject(19444, 1990.018920, -1644.000000, 12.470398, 0.000000, 90.000000, 359.977996, 300.00);
  18496. SetObjectMaterial(tmpobjid, 0, 11301, "carshow_sfse", "concreteslab_small", 0x00000000);
  18497. tmpobjid = CreateObject(19463, 1959.900024, -1673.800048, 14.100000, 0.000000, 0.000000, 270.000000, 300.00);
  18498. SetObjectMaterial(tmpobjid, 0, 10856, "bakerybit_sfse", "ws_altz_wall7", 0x00000000);
  18499. tmpobjid = CreateObject(19463, 1982.099609, -1673.800048, 14.100000, 0.000000, 0.000000, 269.989013, 300.00);
  18500. SetObjectMaterial(tmpobjid, 0, 10856, "bakerybit_sfse", "ws_altz_wall7", 0x00000000);
  18501. tmpobjid = CreateObject(19463, 1959.900024, -1656.000000, 14.100000, 0.000000, 0.000000, 269.989013, 300.00);
  18502. SetObjectMaterial(tmpobjid, 0, 10856, "bakerybit_sfse", "ws_altz_wall7", 0x00000000);
  18503. tmpobjid = CreateObject(19463, 1982.099609, -1656.000000, 14.100000, 0.000000, 0.000000, 269.989013, 300.00);
  18504. SetObjectMaterial(tmpobjid, 0, 10856, "bakerybit_sfse", "ws_altz_wall7", 0x00000000);
  18505. tmpobjid = CreateObject(2661, 1833.900024, -1740.119995, 15.800000, 0.000000, 0.000000, 315.000000, 300.00);
  18506. SetObjectMaterial(tmpobjid, 0, 10431, "hashblock2_sfs", "ws_w's_shopfront_top", 0x00000000);
  18507. tmpobjid = CreateObject(19377, 1868.680053, -1716.749877, 14.830005, 0.000000, 0.000000, 0.000000, 300.00);
  18508. SetObjectMaterial(tmpobjid, 0, 16640, "a51", "concretegroundl1_256", 0x00000000);
  18509. tmpobjid = CreateObject(19377, 1868.680053, -1726.369873, 14.849995, 0.000000, 0.000000, 0.000000, 300.00);
  18510. SetObjectMaterial(tmpobjid, 0, 16640, "a51", "concretegroundl1_256", 0x00000000);
  18511. tmpobjid = CreateObject(927, 1851.099975, -1712.900024, 14.399998, 0.000000, 0.000000, 270.000000, 300.00);
  18512. SetObjectMaterial(tmpobjid, 0, 16640, "a51", "concretegroundl1_256", 0x00000000);
  18513. tmpobjid = CreateObject(18608, 1859.300048, -1718.400024, 18.899999, 0.000000, 0.000000, 270.000000, 300.00);
  18514. SetObjectMaterial(tmpobjid, 0, 5766, "capitol_lawn", "alleygroundb256", 0x00000000);
  18515. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  18516. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  18517. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  18518. tmpobjid = CreateObject(5437, 1939.312500, -1689.879882, 12.550000, 0.000000, 0.000000, 90.000000, 300.00);
  18519. tmpobjid = CreateObject(5501, 1884.615966, -1613.469360, 12.430898, 0.000000, 0.000000, 0.000000, 300.00);
  18520. tmpobjid = CreateObject(3697, 1857.699218, -1645.500000, 16.799999, 0.000000, 0.000000, 90.000000, 300.00);
  18521. tmpobjid = CreateObject(673, 1885.199218, -1654.899414, 12.300000, 0.000000, 0.000000, 259.997009, 300.00);
  18522. tmpobjid = CreateObject(673, 1906.699218, -1654.099609, 12.300000, 0.000000, 0.000000, 259.997009, 300.00);
  18523. tmpobjid = CreateObject(673, 1921.399414, -1653.500000, 12.300000, 0.000000, 0.000000, 259.997009, 300.00);
  18524. tmpobjid = CreateObject(7893, 1871.599975, -1678.000000, 12.800000, 0.000000, 0.000000, 270.000000, 300.00);
  18525. tmpobjid = CreateObject(1259, 1842.900024, -1729.199951, 23.500000, 0.000000, 0.000000, 29.985000, 300.00);
  18526. tmpobjid = CreateObject(1412, 1929.000000, -1657.199218, 13.800000, 0.000000, 0.000000, 0.000000, 300.00);
  18527. tmpobjid = CreateObject(1412, 1923.699218, -1657.199218, 13.800000, 0.000000, 0.000000, 0.000000, 300.00);
  18528. tmpobjid = CreateObject(1412, 1918.399414, -1657.199218, 13.800000, 0.000000, 0.000000, 0.000000, 300.00);
  18529. tmpobjid = CreateObject(1412, 1913.099609, -1657.199218, 13.800000, 0.000000, 0.000000, 0.000000, 300.00);
  18530. tmpobjid = CreateObject(1412, 1907.799804, -1657.199218, 13.800000, 0.000000, 0.000000, 0.000000, 300.00);
  18531. tmpobjid = CreateObject(1412, 1902.500000, -1657.199951, 13.800000, 0.000000, 0.000000, 0.000000, 300.00);
  18532. tmpobjid = CreateObject(1412, 1892.299804, -1657.199218, 13.800000, 0.000000, 0.000000, 0.000000, 300.00);
  18533. tmpobjid = CreateObject(1412, 1887.000000, -1657.199951, 13.800000, 0.000000, 0.000000, 0.000000, 300.00);
  18534. tmpobjid = CreateObject(1412, 1881.699218, -1657.199218, 13.800000, 0.000000, 0.000000, 0.000000, 300.00);
  18535. tmpobjid = CreateObject(1412, 1876.399414, -1657.199218, 13.800000, 0.000000, 0.000000, 0.000000, 300.00);
  18536. tmpobjid = CreateObject(1412, 1931.599975, -1654.500000, 13.800000, 0.000000, 0.000000, 90.000000, 300.00);
  18537. tmpobjid = CreateObject(1412, 1931.599975, -1649.199951, 13.800000, 0.000000, 0.000000, 90.000000, 300.00);
  18538. tmpobjid = CreateObject(1412, 1931.599975, -1643.900024, 13.800000, 0.000000, 0.000000, 90.000000, 300.00);
  18539. tmpobjid = CreateObject(1412, 1928.900024, -1622.400024, 13.800000, 0.000000, 0.000000, 180.000000, 300.00);
  18540. tmpobjid = CreateObject(1412, 1931.599975, -1625.099975, 13.800000, 0.000000, 0.000000, 90.000000, 300.00);
  18541. tmpobjid = CreateObject(1412, 1931.599975, -1630.400024, 13.800000, 0.000000, 0.000000, 90.000000, 300.00);
  18542. tmpobjid = CreateObject(1344, 1927.399414, -1640.000000, 13.366000, 0.000000, 0.000000, 90.000000, 300.00);
  18543. tmpobjid = CreateObject(1412, 1931.599975, -1633.900024, 13.800000, 0.000000, 0.000000, 90.000000, 300.00);
  18544. tmpobjid = CreateObject(19858, 1926.829101, -1638.599609, 13.800000, 0.000000, 0.000000, 90.000000, 300.00);
  18545. tmpobjid = CreateObject(1412, 1923.599975, -1622.400024, 13.800000, 0.000000, 0.000000, 180.000000, 300.00);
  18546. tmpobjid = CreateObject(1412, 1918.300048, -1622.400024, 13.800000, 0.000000, 0.000000, 180.000000, 300.00);
  18547. tmpobjid = CreateObject(1412, 1913.000000, -1622.400024, 13.800000, 0.000000, 0.000000, 180.000000, 300.00);
  18548. tmpobjid = CreateObject(1412, 1902.400024, -1622.400024, 13.800000, 0.000000, 0.000000, 180.000000, 300.00);
  18549. tmpobjid = CreateObject(1412, 1897.099975, -1622.400024, 13.800000, 0.000000, 0.000000, 180.000000, 300.00);
  18550. tmpobjid = CreateObject(1412, 1891.800048, -1622.400024, 13.800000, 0.000000, 0.000000, 180.000000, 300.00);
  18551. tmpobjid = CreateObject(1412, 1886.500000, -1622.400024, 13.800000, 0.000000, 0.000000, 180.000000, 300.00);
  18552. tmpobjid = CreateObject(1412, 1881.199951, -1622.400024, 13.800000, 0.000000, 0.000000, 180.000000, 300.00);
  18553. tmpobjid = CreateObject(1412, 1875.900024, -1622.400024, 13.800000, 0.000000, 0.000000, 180.000000, 300.00);
  18554. tmpobjid = CreateObject(1412, 1863.699951, -1623.599975, 13.600000, 323.502014, 0.621999, 194.365005, 300.00);
  18555. tmpobjid = CreateObject(1412, 1850.199951, -1622.400024, 13.800000, 0.000000, 0.000000, 180.000000, 300.00);
  18556. tmpobjid = CreateObject(1412, 1844.900024, -1622.400024, 13.800000, 0.000000, 0.000000, 180.000000, 300.00);
  18557. tmpobjid = CreateObject(1412, 1839.599975, -1622.400024, 13.800000, 0.000000, 0.000000, 180.000000, 300.00);
  18558. tmpobjid = CreateObject(1412, 1834.300048, -1622.400024, 13.800000, 0.000000, 0.000000, 180.000000, 300.00);
  18559. tmpobjid = CreateObject(1412, 1831.699951, -1625.000000, 13.800000, 0.000000, 0.000000, 270.000000, 300.00);
  18560. tmpobjid = CreateObject(673, 1863.799804, -1624.599609, 12.300000, 0.000000, 0.000000, 89.995002, 300.00);
  18561. tmpobjid = CreateObject(673, 1884.599975, -1624.599609, 12.300000, 0.000000, 0.000000, 89.995002, 300.00);
  18562. tmpobjid = CreateObject(673, 1902.800048, -1624.599609, 12.300000, 0.000000, 0.000000, 89.995002, 300.00);
  18563. tmpobjid = CreateObject(673, 1919.699951, -1624.599609, 12.300000, 0.000000, 0.000000, 89.995002, 300.00);
  18564. tmpobjid = CreateObject(1344, 1859.399414, -1627.899414, 13.366000, 0.000000, 0.000000, 179.994995, 300.00);
  18565. tmpobjid = CreateObject(19858, 1858.099975, -1628.540039, 13.800000, 0.000000, 0.000000, 180.000000, 300.00);
  18566. tmpobjid = CreateObject(2674, 1857.400024, -1627.699951, 12.600000, 0.000000, 0.000000, 0.000000, 300.00);
  18567. tmpobjid = CreateObject(1462, 1856.199951, -1628.000000, 12.600000, 0.000000, 0.000000, 180.000000, 300.00);
  18568. tmpobjid = CreateObject(673, 1873.500000, -1640.199951, 12.300000, 0.000000, 0.000000, 169.994995, 300.00);
  18569. tmpobjid = CreateObject(673, 1840.699951, -1656.300048, 12.300000, 0.000000, 0.000000, 169.990997, 300.00);
  18570. tmpobjid = CreateObject(673, 1841.500000, -1635.000000, 12.300000, 0.000000, 0.000000, 169.990997, 300.00);
  18571. tmpobjid = CreateObject(1412, 1831.699951, -1630.300048, 13.800000, 0.000000, 0.000000, 270.000000, 300.00);
  18572. tmpobjid = CreateObject(1412, 1831.699951, -1635.599975, 13.800000, 0.000000, 0.000000, 270.000000, 300.00);
  18573. tmpobjid = CreateObject(1412, 1831.699951, -1640.900024, 13.800000, 0.000000, 0.000000, 270.000000, 300.00);
  18574. tmpobjid = CreateObject(1412, 1831.699951, -1655.000000, 13.800000, 0.000000, 0.000000, 270.000000, 300.00);
  18575. tmpobjid = CreateObject(1412, 1831.699951, -1660.300048, 13.800000, 0.000000, 0.000000, 270.000000, 300.00);
  18576. tmpobjid = CreateObject(1412, 1831.699951, -1665.300048, 13.800000, 0.000000, 0.000000, 270.000000, 300.00);
  18577. tmpobjid = CreateObject(1412, 1834.300048, -1667.900024, 13.800000, 0.000000, 0.000000, 0.250000, 300.00);
  18578. tmpobjid = CreateObject(1412, 1839.599975, -1667.900024, 13.800000, 0.000000, 0.000000, 0.246998, 300.00);
  18579. tmpobjid = CreateObject(1412, 1844.900024, -1667.900024, 13.800000, 0.000000, 0.000000, 0.246998, 300.00);
  18580. tmpobjid = CreateObject(1412, 1850.199951, -1667.900024, 13.800000, 0.000000, 0.000000, 0.246998, 300.00);
  18581. tmpobjid = CreateObject(1412, 1855.500000, -1667.900024, 13.800000, 0.000000, 0.000000, 0.246998, 300.00);
  18582. tmpobjid = CreateObject(1412, 1860.800048, -1667.900024, 13.800000, 0.000000, 0.000000, 0.246998, 300.00);
  18583. tmpobjid = CreateObject(1412, 1866.099975, -1667.900024, 13.800000, 0.000000, 0.000000, 0.246998, 300.00);
  18584. tmpobjid = CreateObject(1412, 1868.800048, -1665.199951, 13.800000, 0.000000, 0.000000, 90.247001, 300.00);
  18585. tmpobjid = CreateObject(673, 1858.899414, -1665.899414, 12.300000, 0.000000, 0.000000, 299.986999, 300.00);
  18586. tmpobjid = CreateObject(18101, 1897.396972, -1699.885742, 12.600000, 0.000000, 0.000000, 21.199018, 300.00);
  18587. tmpobjid = CreateObject(1215, 1931.288696, -1656.972900, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18588. tmpobjid = CreateObject(946, 1912.250000, -1734.770019, 14.699997, 0.000000, 0.000000, 0.000000, 300.00);
  18589. tmpobjid = CreateObject(946, 1912.250000, -1707.449951, 14.699998, 0.000000, 0.000000, 180.000000, 300.00);
  18590. tmpobjid = CreateObject(970, 1908.830200, -1701.550537, 13.049994, 0.000000, 0.000000, 0.000000, 300.00);
  18591. tmpobjid = CreateObject(970, 1919.810424, -1701.550537, 13.049994, 0.000000, 0.000000, 0.000000, 300.00);
  18592. tmpobjid = CreateObject(970, 1915.620971, -1701.550537, 13.049994, 0.000000, 0.000000, 0.000000, 300.00);
  18593. tmpobjid = CreateObject(970, 1902.761474, -1699.466430, 13.049994, 0.000000, 0.000000, 90.000022, 300.00);
  18594. tmpobjid = CreateObject(970, 1902.761474, -1693.176391, 13.049994, 0.000000, 0.000000, 90.000022, 300.00);
  18595. tmpobjid = CreateObject(970, 1904.779785, -1691.100708, 13.049994, 0.000000, 0.000000, 0.000000, 300.00);
  18596. tmpobjid = CreateObject(970, 1908.869750, -1691.100708, 13.049994, 0.000000, 0.000000, 0.000000, 300.00);
  18597. tmpobjid = CreateObject(970, 1919.839843, -1691.100708, 13.049994, 0.000000, 0.000000, 0.000000, 300.00);
  18598. tmpobjid = CreateObject(970, 1915.689941, -1691.100708, 13.049994, 0.000000, 0.000000, 0.000000, 300.00);
  18599. tmpobjid = CreateObject(970, 1921.892944, -1693.176391, 13.049994, 0.000000, 0.000000, 90.000022, 300.00);
  18600. tmpobjid = CreateObject(970, 1921.892944, -1699.436767, 13.049994, 0.000000, 0.000000, 90.000022, 300.00);
  18601. tmpobjid = CreateObject(16767, 1973.968505, -1712.437377, 18.521148, 0.000000, 0.000000, -89.999969, 300.00);
  18602. tmpobjid = CreateObject(1522, 1967.076904, -1729.490600, 12.500000, 0.000000, 0.000000, 0.000000, 300.00);
  18603. tmpobjid = CreateObject(2629, 1904.300048, -1692.500000, 12.500000, 0.000000, 0.000000, 0.000000, 300.00);
  18604. tmpobjid = CreateObject(2628, 1920.500000, -1692.699951, 12.500000, 0.000000, 0.000000, 0.000000, 300.00);
  18605. tmpobjid = CreateObject(2629, 1909.099609, -1692.500000, 12.500000, 0.000000, 0.000000, 0.000000, 300.00);
  18606. tmpobjid = CreateObject(1231, 1922.300048, -1701.500000, 15.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18607. tmpobjid = CreateObject(1231, 1922.300048, -1691.199951, 15.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18608. tmpobjid = CreateObject(1231, 1902.300048, -1691.199951, 15.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18609. tmpobjid = CreateObject(1231, 1902.300048, -1701.500000, 15.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18610. tmpobjid = CreateObject(1368, 1899.199951, -1728.099975, 13.199998, 0.000000, 0.000000, 90.000000, 300.00);
  18611. tmpobjid = CreateObject(1368, 1899.199218, -1713.799804, 13.199998, 0.000000, 0.000000, 90.000000, 300.00);
  18612. tmpobjid = CreateObject(19373, 1928.009033, -1738.599975, 12.500000, 0.000000, 90.000000, 90.000000, 300.00);
  18613. tmpobjid = CreateObject(19369, 1929.540039, -1738.599609, 11.010000, 0.000000, 0.000000, 0.000000, 300.00);
  18614. tmpobjid = CreateObject(19369, 1928.009765, -1740.290039, 11.010000, 0.000000, 0.000000, 270.000000, 300.00);
  18615. tmpobjid = CreateObject(19369, 1926.479980, -1738.599975, 11.010000, 0.000000, 0.000000, 180.000000, 300.00);
  18616. tmpobjid = CreateObject(19369, 1928.010009, -1736.930053, 11.010000, 0.000000, 0.000000, 90.000000, 300.00);
  18617. tmpobjid = CreateObject(713, 1927.500000, -1738.400024, 12.500000, 0.000000, 0.000000, 239.250000, 300.00);
  18618. tmpobjid = CreateObject(19373, 1927.309082, -1696.500000, 12.500000, 0.000000, 90.000000, 90.000000, 300.00);
  18619. tmpobjid = CreateObject(19369, 1928.840087, -1696.500000, 11.010000, 0.000000, 0.000000, 0.000000, 300.00);
  18620. tmpobjid = CreateObject(19369, 1927.310058, -1698.190063, 11.010000, 0.000000, 0.000000, 270.000000, 300.00);
  18621. tmpobjid = CreateObject(19369, 1925.780029, -1696.500000, 11.010000, 0.000000, 0.000000, 180.000000, 300.00);
  18622. tmpobjid = CreateObject(19369, 1927.310058, -1694.830078, 11.010000, 0.000000, 0.000000, 90.000000, 300.00);
  18623. tmpobjid = CreateObject(713, 1926.800048, -1696.300048, 12.500000, 0.000000, 0.000000, 239.250000, 300.00);
  18624. tmpobjid = CreateObject(19369, 1933.300048, -1742.800048, 12.399998, 0.000000, 90.000000, 270.000000, 300.00);
  18625. tmpobjid = CreateObject(19369, 1934.799804, -1742.299804, 12.399998, 0.000000, 90.000000, 261.996002, 300.00);
  18626. tmpobjid = CreateObject(19868, 1893.500000, -1739.699218, 15.000000, 0.000000, 0.000000, 270.000000, 300.00);
  18627. tmpobjid = CreateObject(19868, 1893.500000, -1734.500000, 15.000000, 0.000000, 0.000000, 270.000000, 300.00);
  18628. tmpobjid = CreateObject(19868, 1893.500000, -1729.300048, 15.000000, 0.000000, 0.000000, 270.000000, 300.00);
  18629. tmpobjid = CreateObject(19868, 1893.500000, -1724.099975, 15.000000, 0.000000, 0.000000, 270.000000, 300.00);
  18630. tmpobjid = CreateObject(19868, 1893.500000, -1718.900024, 15.000000, 0.000000, 0.000000, 270.000000, 300.00);
  18631. tmpobjid = CreateObject(19868, 1893.500000, -1713.699951, 15.000000, 0.000000, 0.000000, 270.000000, 300.00);
  18632. tmpobjid = CreateObject(19868, 1893.500000, -1708.500000, 15.000000, 0.000000, 0.000000, 270.000000, 300.00);
  18633. tmpobjid = CreateObject(19868, 1893.500000, -1703.300048, 15.000000, 0.000000, 0.000000, 270.000000, 300.00);
  18634. tmpobjid = CreateObject(19868, 1893.500000, -1698.099975, 15.000000, 0.000000, 0.000000, 270.000000, 300.00);
  18635. tmpobjid = CreateObject(19868, 1893.500000, -1692.899414, 15.000000, 0.000000, 0.000000, 270.000000, 300.00);
  18636. tmpobjid = CreateObject(1368, 1898.300048, -1728.099975, 13.199998, 0.000000, 0.000000, 270.000000, 300.00);
  18637. tmpobjid = CreateObject(1368, 1898.299804, -1713.799804, 13.199998, 0.000000, 0.000000, 270.000000, 300.00);
  18638. tmpobjid = CreateObject(1231, 1898.599609, -1716.099609, 15.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18639. tmpobjid = CreateObject(1231, 1898.699951, -1730.699951, 15.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18640. tmpobjid = CreateObject(18099, 1897.599609, -1739.500000, 12.600000, 0.000000, 0.000000, 299.997985, 300.00);
  18641. tmpobjid = CreateObject(18101, 1898.899414, -1716.899414, 12.600000, 0.000000, 0.000000, 339.998992, 300.00);
  18642. tmpobjid = CreateObject(1347, 1898.699218, -1711.599609, 13.100000, 0.000000, 0.000000, 0.000000, 300.00);
  18643. tmpobjid = CreateObject(1347, 1898.699951, -1726.000000, 12.899998, 281.750000, 0.000000, 0.000000, 300.00);
  18644. tmpobjid = CreateObject(2677, 1899.099975, -1725.900024, 12.800000, 0.000000, 0.000000, 0.000000, 300.00);
  18645. tmpobjid = CreateObject(1264, 1898.699218, -1725.099609, 13.000000, 0.000000, 0.000000, 10.496998, 300.00);
  18646. tmpobjid = CreateObject(17969, 1893.685424, -1739.290039, 14.199997, 0.000000, 0.000000, 179.500000, 300.00);
  18647. tmpobjid = CreateObject(4227, 1893.599975, -1706.400024, 13.899997, 0.000000, 0.000000, 89.750000, 300.00);
  18648. tmpobjid = CreateObject(2629, 1918.400024, -1692.500000, 12.500000, 0.000000, 0.000000, 0.000000, 300.00);
  18649. tmpobjid = CreateObject(2630, 1906.699951, -1692.599975, 12.500000, 0.000000, 0.000000, 0.000000, 300.00);
  18650. tmpobjid = CreateObject(1897, 1916.300048, -1691.300048, 14.500000, 0.000000, 0.000000, 0.000000, 300.00);
  18651. tmpobjid = CreateObject(1897, 1916.300048, -1692.300048, 15.500000, 90.000000, 180.000000, 180.000000, 300.00);
  18652. tmpobjid = CreateObject(1985, 1916.319946, -1693.369995, 15.449998, 0.000000, 0.000000, 0.000000, 300.00);
  18653. tmpobjid = CreateObject(1897, 1916.323974, -1691.298950, 12.310000, 0.000000, 180.000000, 0.000000, 300.00);
  18654. tmpobjid = CreateObject(2984, 1898.699951, -1694.599975, 13.899998, 0.000000, 0.000000, 0.000000, 300.00);
  18655. tmpobjid = CreateObject(2984, 1898.699218, -1696.299804, 13.899998, 0.000000, 0.000000, 0.000000, 300.00);
  18656. tmpobjid = CreateObject(2984, 1898.699951, -1692.900024, 13.899998, 0.000000, 0.000000, 0.000000, 300.00);
  18657. tmpobjid = CreateObject(16775, 1864.678100, -1719.253417, 19.973865, 89.999938, 0.000000, 89.999931, 300.00);
  18658. tmpobjid = CreateObject(1347, 1898.699951, -1691.599975, 13.100000, 0.000000, 0.000000, 0.000000, 300.00);
  18659. tmpobjid = CreateObject(5787, 1851.009765, -1724.989257, 17.533000, 0.000000, 0.000000, 90.000000, 300.00);
  18660. tmpobjid = CreateObject(8399, 1881.000000, -1722.599609, 17.200000, 0.000000, 0.000000, 179.994995, 300.00);
  18661. tmpobjid = CreateObject(8400, 1880.640991, -1708.920043, 17.192300, 0.000000, 0.000000, 180.000000, 300.00);
  18662. tmpobjid = CreateObject(1412, 1890.899414, -1742.299804, 16.399999, 0.000000, 0.000000, 0.000000, 300.00);
  18663. tmpobjid = CreateObject(2933, 1879.500000, -1688.099975, 14.199998, 0.000000, 0.000000, 180.000000, 300.00);
  18664. tmpobjid = CreateObject(19463, 1836.599975, -1692.599975, 14.199998, 0.000000, 0.000000, 269.989013, 300.00);
  18665. tmpobjid = CreateObject(1215, 1905.467773, -1622.481079, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18666. tmpobjid = CreateObject(1215, 1899.287841, -1657.031860, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18667. tmpobjid = CreateObject(19366, 1870.400024, -1689.599975, 12.500000, 0.000000, 90.000000, 0.000000, 300.00);
  18668. tmpobjid = CreateObject(19366, 1873.300048, -1689.599975, 12.503000, 0.000000, 90.000000, 0.000000, 300.00);
  18669. tmpobjid = CreateObject(19868, 1893.500000, -1690.599975, 15.000000, 0.000000, 0.000000, 270.000000, 300.00);
  18670. tmpobjid = CreateObject(19868, 1890.900024, -1688.000000, 15.000000, 0.000000, 0.000000, 0.000000, 300.00);
  18671. tmpobjid = CreateObject(19868, 1886.599975, -1688.000000, 15.000000, 0.000000, 0.000000, 0.000000, 300.00);
  18672. tmpobjid = CreateObject(19868, 1868.699951, -1693.900024, 15.000000, 0.000000, 0.000000, 90.000000, 300.00);
  18673. tmpobjid = CreateObject(19868, 1868.699951, -1699.099975, 15.000000, 0.000000, 0.000000, 90.000000, 300.00);
  18674. tmpobjid = CreateObject(19868, 1868.699951, -1704.300048, 15.000000, 0.000000, 0.000000, 90.000000, 300.00);
  18675. tmpobjid = CreateObject(19868, 1868.694946, -1709.335327, 15.000000, 0.000000, 0.000000, 90.000000, 300.00);
  18676. tmpobjid = CreateObject(19371, 1862.199951, -1692.599975, 14.199998, 0.000000, 0.000000, 89.995002, 300.00);
  18677. tmpobjid = CreateObject(19371, 1865.400024, -1692.599975, 14.199998, 0.000000, 0.000000, 89.995002, 300.00);
  18678. tmpobjid = CreateObject(19444, 1867.808715, -1692.599975, 14.199998, 0.000000, 0.000000, 90.000000, 300.00);
  18679. tmpobjid = CreateObject(1215, 1895.648193, -1657.021850, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18680. tmpobjid = CreateObject(11102, 1855.000000, -1712.000000, 14.699998, 0.000000, 0.000000, 270.000000, 300.00);
  18681. tmpobjid = CreateObject(11102, 1862.400024, -1712.000000, 14.699998, 0.000000, 0.000000, 270.000000, 300.00);
  18682. tmpobjid = CreateObject(1215, 1872.167968, -1657.001831, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18683. tmpobjid = CreateObject(1215, 1909.908569, -1622.481079, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18684. tmpobjid = CreateObject(1215, 1872.087890, -1622.481079, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18685. tmpobjid = CreateObject(1215, 1831.846679, -1644.131103, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18686. tmpobjid = CreateObject(1215, 1831.846679, -1652.009643, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18687. tmpobjid = CreateObject(1215, 1959.480102, -1696.419189, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18688. tmpobjid = CreateObject(1215, 1982.630493, -1696.419189, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18689. tmpobjid = CreateObject(19371, 1831.699951, -1694.119995, 14.199998, 0.000000, 0.000000, 180.000000, 300.00);
  18690. tmpobjid = CreateObject(19371, 1831.699951, -1706.099975, 14.199998, 0.000000, 0.000000, 180.000000, 300.00);
  18691. tmpobjid = CreateObject(2933, 1831.800048, -1700.099975, 14.199998, 0.000000, 0.000000, 269.994995, 300.00);
  18692. tmpobjid = CreateObject(19463, 1846.199951, -1692.599975, 14.199998, 0.000000, 0.000000, 269.989013, 300.00);
  18693. tmpobjid = CreateObject(19463, 1855.800048, -1692.599975, 14.199998, 0.000000, 0.000000, 269.989013, 300.00);
  18694. tmpobjid = CreateObject(1215, 1982.970825, -1687.808837, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18695. tmpobjid = CreateObject(3431, 1890.900024, -1736.800048, 17.299999, 0.000000, 0.000000, 179.994995, 300.00);
  18696. tmpobjid = CreateObject(3431, 1890.900024, -1727.599975, 17.299999, 0.000000, 0.000000, 179.994995, 300.00);
  18697. tmpobjid = CreateObject(3431, 1890.900024, -1718.300048, 17.299999, 0.000000, 0.000000, 179.994995, 300.00);
  18698. tmpobjid = CreateObject(1522, 1879.875000, -1741.099609, 12.500000, 0.000000, 0.000000, 0.000000, 300.00);
  18699. tmpobjid = CreateObject(1495, 1891.229492, -1742.319335, 12.501668, 0.000000, 0.000000, 0.000000, 300.00);
  18700. tmpobjid = CreateObject(3644, 1851.599975, -1679.800048, 15.199998, 0.000000, 0.000000, 180.000000, 300.00);
  18701. tmpobjid = CreateObject(1215, 1959.541625, -1687.808837, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18702. tmpobjid = CreateObject(1215, 1959.541625, -1669.598510, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18703. tmpobjid = CreateObject(1215, 1959.541625, -1651.006347, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18704. tmpobjid = CreateObject(1215, 1982.970825, -1669.319091, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18705. tmpobjid = CreateObject(1215, 1982.970825, -1651.069091, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18706. tmpobjid = CreateObject(19371, 1951.699951, -1708.900024, 10.800000, 0.000000, 0.000000, 179.994995, 300.00);
  18707. tmpobjid = CreateObject(19463, 1992.199951, -1710.300048, 10.798998, 0.000000, 0.000000, 179.988998, 300.00);
  18708. tmpobjid = CreateObject(19463, 1992.199951, -1729.500000, 10.798998, 0.000000, 0.000000, 179.983993, 300.00);
  18709. tmpobjid = CreateObject(19463, 1992.199951, -1739.099975, 10.798998, 0.000000, 0.000000, 179.983993, 300.00);
  18710. tmpobjid = CreateObject(19463, 1951.599975, -1722.300048, 10.798998, 0.000000, 0.000000, 0.000000, 300.00);
  18711. tmpobjid = CreateObject(19444, 1951.699951, -1706.599975, 10.799900, 0.000000, 0.000000, 180.000000, 300.00);
  18712. tmpobjid = CreateObject(19463, 1961.760009, -1710.599975, 10.788498, 0.000000, 0.000000, 180.000000, 300.00);
  18713. tmpobjid = CreateObject(19463, 1961.760009, -1720.199951, 10.788498, 0.000000, 0.000000, 180.000000, 300.00);
  18714. tmpobjid = CreateObject(19463, 1961.758056, -1729.800048, 10.787498, 0.000000, 0.000000, 180.000000, 300.00);
  18715. tmpobjid = CreateObject(19463, 1961.760009, -1739.400024, 10.788498, 0.000000, 0.000000, 180.000000, 300.00);
  18716. tmpobjid = CreateObject(19371, 1951.599975, -1739.000000, 10.788498, 0.000000, 0.000000, 179.994995, 300.00);
  18717. tmpobjid = CreateObject(19444, 1951.599975, -1741.400024, 10.788498, 0.000000, 0.000000, 179.994995, 300.00);
  18718. tmpobjid = CreateObject(19463, 1956.400024, -1742.300048, 10.798850, 0.000000, 0.000000, 89.995002, 300.00);
  18719. tmpobjid = CreateObject(19444, 1961.000000, -1742.300048, 10.797848, 0.000000, 0.000000, 269.994995, 300.00);
  18720. tmpobjid = CreateObject(19369, 1935.000000, -1742.400024, 10.798998, 0.000000, 180.000000, 90.000000, 300.00);
  18721. tmpobjid = CreateObject(1344, 1977.299804, -1713.899414, 13.399998, 0.000000, 0.000000, 179.994995, 300.00);
  18722. tmpobjid = CreateObject(1338, 1979.300048, -1713.800048, 13.199998, 0.000000, 0.000000, 0.000000, 300.00);
  18723. tmpobjid = CreateObject(2671, 1978.099975, -1712.199951, 12.600000, 0.000000, 0.000000, 0.000000, 300.00);
  18724. tmpobjid = CreateObject(1535, 1981.199218, -1714.630004, 12.529998, 0.000000, 0.000000, 0.000000, 300.00);
  18725. tmpobjid = CreateObject(1344, 1974.000000, -1713.900024, 13.399998, 0.000000, 0.000000, 179.994995, 300.00);
  18726. tmpobjid = CreateObject(1428, 1970.500000, -1714.500000, 12.800000, 0.008999, 89.750000, 165.994995, 300.00);
  18727. tmpobjid = CreateObject(2770, 1984.025512, -1729.789672, 13.159588, 0.000000, 0.000000, -89.799995, 300.00);
  18728. tmpobjid = CreateObject(2770, 1971.184570, -1729.834350, 13.159588, 0.000000, 0.000000, -89.799995, 300.00);
  18729. tmpobjid = CreateObject(1522, 1968.566894, -1729.490600, 12.500000, 0.000000, 0.000000, 0.000000, 300.00);
  18730. tmpobjid = CreateObject(1232, 1966.500000, -1737.000000, 15.000000, 0.000000, 0.000000, 90.000000, 300.00);
  18731. tmpobjid = CreateObject(1232, 1984.500000, -1737.000000, 15.000000, 0.000000, 0.000000, 90.000000, 300.00);
  18732. tmpobjid = CreateObject(10183, 1957.699951, -1721.199951, 12.380000, 0.000000, 0.000000, 316.000000, 300.00);
  18733. tmpobjid = CreateObject(1412, 1961.800048, -1740.000000, 13.800000, 0.000000, 0.000000, 270.000000, 300.00);
  18734. tmpobjid = CreateObject(1412, 1959.199951, -1742.599975, 13.800000, 0.000000, 0.000000, 179.988998, 300.00);
  18735. tmpobjid = CreateObject(1412, 1954.199951, -1742.599975, 13.800000, 0.000000, 0.000000, 179.983993, 300.00);
  18736. tmpobjid = CreateObject(1412, 1951.599975, -1740.000000, 13.800000, 0.000000, 0.000000, 89.984001, 300.00);
  18737. tmpobjid = CreateObject(1215, 1951.599609, -1718.000000, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18738. tmpobjid = CreateObject(1215, 1951.500000, -1726.599975, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18739. tmpobjid = CreateObject(1215, 1962.099975, -1711.000000, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18740. tmpobjid = CreateObject(1215, 1962.099975, -1720.500000, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18741. tmpobjid = CreateObject(1215, 1962.099975, -1729.500000, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18742. tmpobjid = CreateObject(1412, 1966.399414, -1708.599609, 13.800000, 0.000000, 0.000000, 89.984001, 300.00);
  18743. tmpobjid = CreateObject(1281, 1988.500000, -1723.099975, 13.300000, 0.000000, 0.000000, 39.995998, 300.00);
  18744. tmpobjid = CreateObject(1281, 1988.500000, -1716.199951, 13.300000, 0.000000, 0.000000, 39.995998, 300.00);
  18745. tmpobjid = CreateObject(2001, 1984.900024, -1722.699951, 12.500000, 0.000000, 0.000000, 0.000000, 300.00);
  18746. tmpobjid = CreateObject(2001, 1984.900024, -1715.300048, 12.500000, 0.000000, 0.000000, 0.000000, 300.00);
  18747. tmpobjid = CreateObject(10183, 1971.900024, -1639.500000, 12.378000, 0.000000, 0.000000, 225.500000, 300.00);
  18748. tmpobjid = CreateObject(1344, 1984.799804, -1691.299804, 13.345000, 0.000000, 0.000000, 179.994995, 300.00);
  18749. tmpobjid = CreateObject(2788, 1978.923095, -1730.219604, 13.059138, 0.000000, 0.000000, 0.000000, 300.00);
  18750. tmpobjid = CreateObject(2788, 1976.930541, -1730.308105, 13.059138, 0.000000, 0.000000, 178.799926, 300.00);
  18751. tmpobjid = CreateObject(1344, 1984.599975, -1655.300048, 13.345000, 0.000000, 0.000000, 179.994995, 300.00);
  18752. tmpobjid = CreateObject(1412, 1991.599975, -1694.900024, 13.800000, 0.000000, 0.000000, 89.984001, 300.00);
  18753. tmpobjid = CreateObject(1412, 1991.599975, -1689.699951, 13.800000, 0.000000, 0.000000, 89.984001, 300.00);
  18754. tmpobjid = CreateObject(1412, 1991.599975, -1675.699951, 13.800000, 0.000000, 0.000000, 89.984001, 300.00);
  18755. tmpobjid = CreateObject(1412, 1991.599975, -1672.099975, 13.800000, 0.000000, 0.000000, 89.984001, 300.00);
  18756. tmpobjid = CreateObject(1412, 1991.599975, -1658.099975, 13.800000, 0.000000, 0.000000, 89.984001, 300.00);
  18757. tmpobjid = CreateObject(1412, 1991.599975, -1652.800048, 13.800000, 0.000000, 0.000000, 89.984001, 300.00);
  18758. tmpobjid = CreateObject(673, 1990.300048, -1655.699951, 12.300000, 0.000000, 0.000000, 359.997009, 300.00);
  18759. tmpobjid = CreateObject(673, 1990.300048, -1673.699951, 12.300000, 0.000000, 0.000000, 359.994995, 300.00);
  18760. tmpobjid = CreateObject(673, 1990.300048, -1691.900024, 12.300000, 0.000000, 0.000000, 359.994995, 300.00);
  18761. tmpobjid = CreateObject(1412, 1951.599975, -1652.900024, 13.800000, 0.000000, 0.000000, 269.984008, 300.00);
  18762. tmpobjid = CreateObject(673, 1952.800048, -1655.699951, 12.300000, 0.000000, 0.000000, 129.994995, 300.00);
  18763. tmpobjid = CreateObject(1412, 1951.599975, -1658.199951, 13.800000, 0.000000, 0.000000, 269.977996, 300.00);
  18764. tmpobjid = CreateObject(673, 1953.000000, -1673.699951, 12.300000, 0.000000, 0.000000, 139.994995, 300.00);
  18765. tmpobjid = CreateObject(1412, 1951.599975, -1672.599975, 13.800000, 0.000000, 0.000000, 269.977996, 300.00);
  18766. tmpobjid = CreateObject(1412, 1951.599975, -1676.199951, 13.800000, 0.000000, 0.000000, 269.977996, 300.00);
  18767. tmpobjid = CreateObject(1412, 1951.599975, -1689.800048, 13.800000, 0.000000, 0.000000, 269.977996, 300.00);
  18768. tmpobjid = CreateObject(1412, 1951.599975, -1695.099975, 13.800000, 0.000000, 0.000000, 269.977996, 300.00);
  18769. tmpobjid = CreateObject(673, 1952.900024, -1691.900024, 12.300000, 0.000000, 0.000000, 139.992996, 300.00);
  18770. tmpobjid = CreateObject(910, 1984.800048, -1673.099975, 13.800000, 0.000000, 0.000000, 180.000000, 300.00);
  18771. tmpobjid = CreateObject(1773, 1986.000000, -1674.400024, 13.300000, 0.000000, 0.000000, 0.000000, 300.00);
  18772. tmpobjid = CreateObject(1450, 1984.400024, -1674.599975, 13.100000, 0.000000, 0.000000, 0.000000, 300.00);
  18773. tmpobjid = CreateObject(1462, 1985.699951, -1692.599975, 12.500000, 0.000000, 0.000000, 0.000000, 300.00);
  18774. tmpobjid = CreateObject(1449, 1984.000000, -1692.300048, 13.100000, 0.000000, 0.000000, 0.000000, 300.00);
  18775. tmpobjid = CreateObject(1440, 1984.800048, -1656.900024, 13.100000, 0.000000, 0.000000, 0.000000, 300.00);
  18776. tmpobjid = CreateObject(1430, 1957.400024, -1692.500000, 12.899998, 0.000000, 0.000000, 0.000000, 300.00);
  18777. tmpobjid = CreateObject(1415, 1957.400024, -1674.400024, 12.500000, 0.000000, 0.000000, 0.000000, 300.00);
  18778. tmpobjid = CreateObject(1338, 1958.800048, -1692.800048, 13.199998, 0.000000, 0.000000, 0.000000, 300.00);
  18779. tmpobjid = CreateObject(1265, 1956.300048, -1692.699951, 13.000000, 0.000000, 0.000000, 0.000000, 300.00);
  18780. tmpobjid = CreateObject(1265, 1955.500000, -1692.599975, 13.000000, 346.000000, 0.000000, 89.250000, 300.00);
  18781. tmpobjid = CreateObject(1265, 1955.699951, -1693.500000, 13.000000, 353.220001, 327.747009, 85.739997, 300.00);
  18782. tmpobjid = CreateObject(1441, 1957.300048, -1691.400024, 13.199998, 0.000000, 0.000000, 180.000000, 300.00);
  18783. tmpobjid = CreateObject(1357, 1956.000000, -1673.199951, 12.800000, 0.000000, 0.000000, 180.000000, 300.00);
  18784. tmpobjid = CreateObject(1337, 1958.000000, -1673.099975, 13.199998, 0.000000, 0.000000, 190.000000, 300.00);
  18785. tmpobjid = CreateObject(1265, 1959.099975, -1673.099975, 13.000000, 353.216003, 327.743988, 85.736999, 300.00);
  18786. tmpobjid = CreateObject(1265, 1958.900024, -1672.199951, 13.000000, 353.216003, 327.743988, 335.736999, 300.00);
  18787. tmpobjid = CreateObject(1450, 1958.500000, -1656.699951, 13.100000, 0.000000, 0.000000, 0.000000, 300.00);
  18788. tmpobjid = CreateObject(1343, 1957.099975, -1656.599975, 13.300000, 0.000000, 0.000000, 0.000000, 300.00);
  18789. tmpobjid = CreateObject(1440, 1957.500000, -1655.099975, 13.000000, 0.000000, 0.000000, 179.994995, 300.00);
  18790. tmpobjid = CreateObject(1265, 1956.000000, -1656.800048, 13.000000, 353.216003, 327.743988, 85.736999, 300.00);
  18791. tmpobjid = CreateObject(18660, 1957.300048, -1691.900024, 14.500000, 0.000000, 0.000000, 270.000000, 300.00);
  18792. tmpobjid = CreateObject(17969, 1960.800048, -1705.599975, 14.100000, 0.000000, 0.000000, 269.747009, 300.00);
  18793. tmpobjid = CreateObject(4227, 1970.099975, -1705.800048, 14.000000, 0.000000, 0.000000, 179.994995, 300.00);
  18794. tmpobjid = CreateObject(19444, 1991.699951, -1643.500000, 10.789999, 0.000000, 0.000000, 0.000000, 300.00);
  18795. tmpobjid = CreateObject(19463, 1951.599975, -1642.099975, 10.787199, 0.000000, 0.000000, 180.000000, 300.00);
  18796. tmpobjid = CreateObject(19463, 1951.599975, -1622.500000, 10.787199, 0.000000, 0.000000, 179.994995, 300.00);
  18797. tmpobjid = CreateObject(19463, 1941.400024, -1622.400024, 12.270000, 0.000000, 90.000000, 270.000000, 300.00);
  18798. tmpobjid = CreateObject(18660, 1984.800048, -1656.099975, 14.399998, 0.000000, 0.000000, 90.000000, 300.00);
  18799. tmpobjid = CreateObject(1495, 1991.699951, -1630.829956, 12.359998, 0.000000, 0.000000, 90.000000, 300.00);
  18800. tmpobjid = CreateObject(19463, 1986.800048, -1643.300048, 10.699998, 0.000000, 0.000000, 270.000000, 300.00);
  18801. tmpobjid = CreateObject(19463, 1977.199951, -1643.300048, 10.699998, 0.000000, 0.000000, 270.000000, 300.00);
  18802. tmpobjid = CreateObject(19463, 1967.599975, -1643.300048, 10.699998, 0.000000, 0.000000, 270.000000, 300.00);
  18803. tmpobjid = CreateObject(19463, 1958.000000, -1643.300048, 10.699998, 0.000000, 0.000000, 270.000000, 300.00);
  18804. tmpobjid = CreateObject(19371, 1951.599975, -1643.300048, 10.699998, 0.000000, 0.000000, 270.000000, 300.00);
  18805. tmpobjid = CreateObject(1215, 1982.940795, -1678.229980, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18806. tmpobjid = CreateObject(1215, 1982.940795, -1659.820068, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18807. tmpobjid = CreateObject(1215, 1959.479736, -1678.198120, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18808. tmpobjid = CreateObject(1215, 1959.479736, -1659.718505, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18809. tmpobjid = CreateObject(1368, 1839.900024, -1686.099975, 13.199998, 0.000000, 0.000000, 270.000000, 300.00);
  18810. tmpobjid = CreateObject(1368, 1840.000000, -1673.699951, 13.199998, 0.000000, 0.000000, 270.000000, 300.00);
  18811. tmpobjid = CreateObject(1215, 1863.400024, -1681.699951, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18812. tmpobjid = CreateObject(1215, 1863.500000, -1677.800048, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18813. tmpobjid = CreateObject(1215, 1839.800048, -1677.800048, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18814. tmpobjid = CreateObject(1215, 1839.800048, -1681.699951, 13.100000, 0.000000, 0.000000, 90.000000, 300.00);
  18815. tmpobjid = CreateObject(955, 1985.030273, -1719.300048, 12.939997, 0.000000, 0.000000, 90.000000, 300.00);
  18816. tmpobjid = CreateObject(1226, 1945.800048, -1722.599975, 16.399999, 0.000000, 0.000000, 0.000000, 300.00);
  18817. tmpobjid = CreateObject(1226, 1945.800048, -1680.500000, 16.399999, 0.000000, 0.000000, 0.000000, 300.00);
  18818. tmpobjid = CreateObject(1226, 1945.800048, -1622.500000, 16.399999, 0.000000, 0.000000, 0.000000, 300.00);
  18819. tmpobjid = CreateObject(1226, 1917.900024, -1682.099975, 16.399999, 0.000000, 0.000000, 270.000000, 300.00);
  18820. tmpobjid = CreateObject(1226, 1891.500000, -1682.099975, 16.399999, 0.000000, 0.000000, 270.000000, 300.00);
  18821. tmpobjid = CreateObject(1226, 1937.599975, -1651.199951, 16.399999, 0.000000, 0.000000, 180.000000, 300.00);
  18822. tmpobjid = CreateObject(8406, 1969.900024, -1625.500000, 14.000000, 1.000000, 0.000000, 0.000000, 300.00);
  18823. tmpobjid = CreateObject(970, 1872.400024, -1688.000000, 14.199998, 0.000000, 180.000000, 0.000000, 300.00);
  18824. tmpobjid = CreateObject(970, 1872.400024, -1688.000000, 15.000000, 0.000000, 179.994995, 0.000000, 300.00);
  18825. tmpobjid = CreateObject(19466, 1875.000000, -1689.599609, 14.399998, 0.000000, 0.000000, 359.994995, 300.00);
  18826. tmpobjid = CreateObject(1806, 1873.300048, -1689.599975, 12.600000, 0.000000, 0.000000, 270.000000, 300.00);
  18827. tmpobjid = CreateObject(2009, 1873.400024, -1688.599975, 12.600000, 0.000000, 0.000000, 270.000000, 300.00);
  18828. tmpobjid = CreateObject(2611, 1870.800048, -1688.199951, 14.399998, 0.000000, 0.000000, 0.000000, 300.00);
  18829. tmpobjid = CreateObject(2026, 1871.599975, -1689.599975, 15.800000, 0.000000, 0.000000, 0.000000, 300.00);
  18830. tmpobjid = CreateObject(2164, 1871.699951, -1691.099975, 12.600000, 0.000000, 0.000000, 180.000000, 300.00);
  18831. tmpobjid = CreateObject(1812, 1871.300048, -1688.699951, 12.569998, 0.000000, 0.000000, 90.000000, 300.00);
  18832. tmpobjid = CreateObject(949, 1869.400024, -1690.699951, 13.199998, 0.000000, 0.000000, 0.000000, 300.00);
  18833. tmpobjid = CreateObject(3497, 1839.800048, -1679.699951, 16.299999, 0.000000, 0.000000, 90.000000, 300.00);
  18834. tmpobjid = CreateObject(970, 1835.000000, -1741.000000, 16.600000, 0.000000, 0.000000, 316.000000, 300.00);
  18835. tmpobjid = CreateObject(970, 1833.000000, -1739.099975, 16.600000, 0.000000, 0.000000, 315.750000, 300.00);
  18836. tmpobjid = CreateObject(970, 1838.599975, -1742.500000, 16.600000, 0.000000, 0.000000, 0.000000, 300.00);
  18837. tmpobjid = CreateObject(970, 1842.699951, -1742.500000, 16.600000, 0.000000, 0.000000, 0.000000, 300.00);
  18838. tmpobjid = CreateObject(970, 1846.800048, -1742.500000, 16.600000, 0.000000, 0.000000, 0.000000, 300.00);
  18839. tmpobjid = CreateObject(970, 1850.900024, -1742.500000, 16.600000, 0.000000, 0.000000, 0.000000, 300.00);
  18840. tmpobjid = CreateObject(970, 1855.000000, -1742.500000, 16.600000, 0.000000, 0.000000, 0.000000, 300.00);
  18841. tmpobjid = CreateObject(970, 1858.599975, -1742.500000, 16.600000, 0.000000, 0.000000, 0.000000, 300.00);
  18842. tmpobjid = CreateObject(970, 1831.500000, -1735.599975, 16.600000, 0.000000, 0.000000, 270.000000, 300.00);
  18843. tmpobjid = CreateObject(970, 1831.500000, -1731.500000, 16.600000, 0.000000, 0.000000, 270.000000, 300.00);
  18844. tmpobjid = CreateObject(970, 1831.500000, -1727.400024, 16.600000, 0.000000, 0.000000, 270.000000, 300.00);
  18845. tmpobjid = CreateObject(970, 1831.500000, -1723.300048, 16.600000, 0.000000, 0.000000, 270.000000, 300.00);
  18846. tmpobjid = CreateObject(970, 1831.500000, -1719.199951, 16.600000, 0.000000, 0.000000, 270.000000, 300.00);
  18847. tmpobjid = CreateObject(970, 1831.500000, -1715.099975, 16.600000, 0.000000, 0.000000, 270.000000, 300.00);
  18848. tmpobjid = CreateObject(1797, 1842.900024, -1741.900024, 12.500000, 0.000000, 0.000000, 0.000000, 300.00);
  18849. tmpobjid = CreateObject(1726, 1845.400024, -1739.400024, 12.500000, 0.000000, 0.000000, 0.000000, 300.00);
  18850. tmpobjid = CreateObject(1727, 1848.199951, -1739.599975, 12.500000, 0.000000, 0.000000, 330.000000, 300.00);
  18851. tmpobjid = CreateObject(2315, 1845.800048, -1741.099975, 12.500000, 0.000000, 0.000000, 0.000000, 300.00);
  18852. tmpobjid = CreateObject(7909, 1843.599975, -1730.400024, 29.600000, 0.000000, 0.000000, 300.000000, 300.00);
  18853. tmpobjid = CreateObject(19463, 1867.000000, -1716.729980, 13.100000, 0.000000, 90.000000, 0.000000, 300.00);
  18854. tmpobjid = CreateObject(19463, 1865.333007, -1716.900024, 11.399998, 0.000000, 0.000000, 0.000000, 300.00);
  18855. tmpobjid = CreateObject(19463, 1863.969970, -1723.300048, 13.100000, 0.000000, 90.000000, 270.000000, 300.00);
  18856. tmpobjid = CreateObject(19463, 1863.500000, -1716.920043, 11.866000, 15.000000, 90.000000, 180.000000, 300.00);
  18857. tmpobjid = CreateObject(19463, 1861.800048, -1723.800048, 11.399998, 0.000000, 0.000000, 0.000000, 300.00);
  18858. tmpobjid = CreateObject(19463, 1856.969970, -1721.635986, 11.399998, 0.000000, 0.000000, 270.000000, 300.00);
  18859. tmpobjid = CreateObject(19463, 1854.349975, -1723.300048, 13.100000, 0.000000, 90.000000, 90.000000, 300.00);
  18860. tmpobjid = CreateObject(19463, 1850.400024, -1716.739990, 13.100000, 0.000000, 90.000000, 180.000000, 300.00);
  18861. tmpobjid = CreateObject(19463, 1852.062011, -1716.900024, 11.399998, 0.000000, 0.000000, 180.000000, 300.00);
  18862. tmpobjid = CreateObject(1497, 1856.300048, -1724.900024, 13.199998, 0.000000, 0.000000, 0.000000, 300.00);
  18863. tmpobjid = CreateObject(1497, 1859.300048, -1724.900024, 13.199998, 0.000000, 0.000000, 180.000000, 300.00);
  18864. tmpobjid = CreateObject(19371, 1859.300048, -1726.400024, 14.000000, 0.000000, 0.000000, 0.000000, 300.00);
  18865. tmpobjid = CreateObject(19371, 1856.300048, -1726.400024, 14.000000, 0.000000, 0.000000, 0.000000, 300.00);
  18866. tmpobjid = CreateObject(19371, 1857.800048, -1726.400024, 15.800000, 0.000000, 90.000000, 0.000000, 300.00);
  18867. tmpobjid = CreateObject(939, 1864.199951, -1723.800048, 15.500000, 0.000000, 0.000000, 0.000000, 300.00);
  18868. tmpobjid = CreateObject(942, 1867.400024, -1716.400024, 15.600000, 0.000000, 0.000000, 90.000000, 300.00);
  18869. tmpobjid = CreateObject(922, 1853.800048, -1724.199951, 14.100000, 0.000000, 0.000000, 0.000000, 300.00);
  18870. tmpobjid = CreateObject(1497, 1851.099975, -1716.699951, 13.199998, 0.000000, 0.000000, 270.000000, 300.00);
  18871. tmpobjid = CreateObject(19371, 1849.599975, -1716.599975, 14.000000, 0.000000, 0.000000, 90.000000, 300.00);
  18872. tmpobjid = CreateObject(19371, 1849.599975, -1718.199951, 14.000000, 0.000000, 0.000000, 90.000000, 300.00);
  18873. tmpobjid = CreateObject(19444, 1849.500000, -1717.400024, 15.699998, 0.000000, 90.000000, 0.000000, 300.00);
  18874. tmpobjid = CreateObject(1368, 1863.199951, -1673.400024, 13.199998, 0.000000, 0.000000, 90.000000, 300.00);
  18875. tmpobjid = CreateObject(1368, 1863.199951, -1686.599975, 13.199998, 0.000000, 0.000000, 90.000000, 300.00);
  18876. tmpobjid = CreateObject(970, 1904.759765, -1701.550537, 13.049994, 0.000000, 0.000000, 0.000000, 300.00);
  18877. //lspd interior2
  18878. CreateDynamicObject(19379, 127.86078, 1135.12048, 526.37921, 0.00000, 90.00000, 0.00000);
  18879. CreateDynamicObject(19379, 117.57440, 1135.16626, 526.38123, 0.00000, 90.00000, 0.00000);
  18880. CreateDynamicObject(19379, 128.02011, 1128.01392, 526.37720, 0.00000, 90.00000, 0.00000);
  18881. CreateDynamicObject(19379, 117.61464, 1128.00610, 526.37921, 0.00000, 90.00000, 0.00000);
  18882. CreateDynamicObject(19450, 128.41344, 1139.85852, 528.14587, 0.00000, 0.00000, 90.00000);
  18883. CreateDynamicObject(19450, 133.13857, 1135.13562, 528.14587, 0.00000, 0.00000, 0.00000);
  18884. CreateDynamicObject(19450, 118.96809, 1139.86719, 528.14587, 0.00000, 0.00000, 90.00000);
  18885. CreateDynamicObject(19450, 122.09531, 1135.04700, 528.14587, 0.00000, 0.00000, 0.00000);
  18886. CreateDynamicObject(19458, 133.12823, 1136.35120, 525.85760, 0.00000, 0.00000, 0.00000);
  18887. CreateDynamicObject(19458, 119.86307, 1139.84583, 525.85760, 0.00000, 0.00000, 90.00000);
  18888. CreateDynamicObject(1536, 124.66843, 1139.78503, 526.44818, 0.00000, 0.00000, 0.00000);
  18889. CreateDynamicObject(1536, 127.65437, 1139.81555, 526.44818, 0.00000, 0.00000, 180.00000);
  18890. CreateDynamicObject(19458, 132.41571, 1139.83948, 525.85760, 0.00000, 0.00000, 90.00000);
  18891. CreateDynamicObject(19458, 122.11882, 1135.07520, 525.85760, 0.00000, 0.00000, 0.00000);
  18892. CreateDynamicObject(19358, 133.16109, 1131.60010, 525.92493, 0.00000, 0.00000, 90.00000);
  18893. CreateDynamicObject(19358, 130.39549, 1130.58801, 525.92291, 0.00000, 0.00000, 130.16800);
  18894. CreateDynamicObject(19431, 129.19858, 1128.81836, 525.92493, 0.00000, 0.00000, 0.00000);
  18895. CreateDynamicObject(2169, 132.11578, 1131.13257, 526.46643, 0.00000, 0.00000, 0.00000);
  18896. CreateDynamicObject(2169, 130.84669, 1130.22217, 526.46503, 0.00000, 0.00000, 40.16050);
  18897. CreateDynamicObject(2169, 129.91870, 1129.44458, 526.46442, 0.00000, 0.00000, 40.16050);
  18898. CreateDynamicObject(2169, 129.62215, 1128.10730, 526.46637, 0.00000, 0.00000, 90.00000);
  18899. CreateDynamicObject(19431, 129.20044, 1128.29749, 525.92291, 0.00000, 0.00000, 0.00000);
  18900. CreateDynamicObject(2190, 129.69472, 1129.83899, 527.23822, 0.00000, 0.00000, 40.00000);
  18901. CreateDynamicObject(19388, 133.13324, 1128.82117, 528.14587, 0.00000, 0.00000, 0.00000);
  18902. CreateDynamicObject(19358, 133.13043, 1125.87024, 528.14587, 0.00000, 0.00000, 0.00000);
  18903. CreateDynamicObject(19358, 130.72435, 1126.50049, 528.14587, 0.00000, 0.00000, 90.00000);
  18904. CreateDynamicObject(19431, 129.19862, 1127.22180, 525.92493, 0.00000, 0.00000, 0.00000);
  18905. CreateDynamicObject(19358, 133.35988, 1126.50269, 528.14587, 0.00000, 0.00000, 90.00000);
  18906. CreateDynamicObject(19358, 134.53226, 1131.59460, 528.14587, 0.00000, 0.00000, 90.00000);
  18907. CreateDynamicObject(2169, 129.61507, 1126.94189, 526.46442, 0.00000, 0.00000, 90.00000);
  18908. CreateDynamicObject(2190, 129.26579, 1127.07520, 527.23822, 0.00000, 0.00000, 90.00000);
  18909. CreateDynamicObject(2164, 132.49529, 1126.62976, 526.46252, 0.00000, 0.00000, 180.00000);
  18910. CreateDynamicObject(19513, 129.54300, 1128.15002, 527.25421, 0.00000, 0.00000, 45.00000);
  18911. CreateDynamicObject(2611, 132.98639, 1130.60254, 528.35309, 0.00000, 0.00000, 270.00000);
  18912. CreateDynamicObject(2356, 131.20386, 1128.90100, 526.46552, 0.00000, 0.00000, 37.00000);
  18913. CreateDynamicObject(2612, 122.21997, 1137.31628, 528.43170, 0.00000, 0.00000, 90.00000);
  18914. CreateDynamicObject(2356, 132.63315, 1130.37341, 526.46552, 0.00000, 0.00000, 135.00000);
  18915. CreateDynamicObject(2356, 130.88228, 1127.41321, 526.46552, 0.00000, 0.00000, 90.00000);
  18916. CreateDynamicObject(1721, 129.95886, 1139.60193, 526.46417, 0.00000, 0.00000, 180.00000);
  18917. CreateDynamicObject(1721, 130.64236, 1139.59973, 526.46417, 0.00000, 0.00000, 180.00000);
  18918. CreateDynamicObject(1721, 131.31886, 1139.59790, 526.46417, 0.00000, 0.00000, 180.00000);
  18919. CreateDynamicObject(1721, 131.99246, 1139.59460, 526.46417, 0.00000, 0.00000, 180.00000);
  18920. CreateDynamicObject(1721, 132.89439, 1138.72046, 526.46417, 0.00000, 0.00000, 90.00000);
  18921. CreateDynamicObject(1721, 132.88988, 1138.05505, 526.46417, 0.00000, 0.00000, 90.00000);
  18922. CreateDynamicObject(1721, 132.88197, 1137.37195, 526.46417, 0.00000, 0.00000, 90.00000);
  18923. CreateDynamicObject(2854, 132.66000, 1139.39026, 526.98291, 0.00000, 0.00000, 0.00000);
  18924. CreateDynamicObject(2209, 132.77827, 1139.48816, 526.17407, 0.00000, 0.00000, 0.00000);
  18925. CreateDynamicObject(19358, 133.15997, 1131.60742, 531.34406, 0.00000, 0.00000, 90.00000);
  18926. CreateDynamicObject(19358, 130.38956, 1130.60095, 531.34412, 0.00000, 0.00000, 130.16800);
  18927. CreateDynamicObject(19358, 129.19667, 1128.02588, 531.34412, 0.00000, 0.00000, 0.00000);
  18928. CreateDynamicObject(19466, 132.67456, 1131.59009, 528.87982, 0.00000, 0.00000, 90.00000);
  18929. CreateDynamicObject(19466, 130.73343, 1130.86206, 528.87982, 0.00000, 0.00000, 130.16800);
  18930. CreateDynamicObject(19466, 130.07275, 1130.29126, 528.87982, 0.00000, 0.00000, 130.16800);
  18931. CreateDynamicObject(19466, 129.21117, 1128.45630, 528.87982, 0.00000, 0.00000, 0.00000);
  18932. CreateDynamicObject(19466, 129.20494, 1126.27002, 528.87982, 0.00000, 0.00000, 0.00000);
  18933. CreateDynamicObject(19358, 129.21419, 1124.81445, 528.14587, 0.00000, 0.00000, 0.00000);
  18934. CreateDynamicObject(19358, 129.64127, 1123.28308, 528.14587, 0.00000, 0.00000, 90.00000);
  18935. CreateDynamicObject(19388, 127.26681, 1123.27673, 528.14587, 0.00000, 0.00000, 90.00000);
  18936. CreateDynamicObject(19388, 123.65508, 1123.27258, 528.14587, 0.00000, 0.00000, 90.00000);
  18937. CreateDynamicObject(19450, 122.09448, 1127.87793, 528.14587, 0.00000, 0.00000, 0.00000);
  18938. CreateDynamicObject(19431, 125.38683, 1123.28088, 528.14587, 0.00000, 0.00000, 90.00000);
  18939. CreateDynamicObject(19439, 125.69112, 1123.29248, 525.85760, 0.00000, 0.00000, 90.00000);
  18940. CreateDynamicObject(19439, 128.80530, 1123.29688, 525.85760, 0.00000, 0.00000, 90.00000);
  18941. CreateDynamicObject(19439, 129.20062, 1124.04504, 525.85760, 0.00000, 0.00000, 0.00000);
  18942. CreateDynamicObject(19439, 129.20180, 1125.62695, 525.85760, 0.00000, 0.00000, 0.00000);
  18943. CreateDynamicObject(19439, 125.19050, 1123.28931, 525.85760, 0.00000, 0.00000, 90.00000);
  18944. CreateDynamicObject(19458, 122.11900, 1128.18408, 525.85760, 0.00000, 0.00000, 0.00000);
  18945. CreateDynamicObject(19458, 118.06525, 1123.28918, 525.85760, 0.00000, 0.00000, 90.00000);
  18946. CreateDynamicObject(2886, 128.26689, 1123.35132, 528.10840, 0.00000, 0.00000, 180.00000);
  18947. CreateDynamicObject(2886, 122.54852, 1123.34033, 528.10840, 0.00000, 0.00000, 180.00000);
  18948. CreateDynamicObject(2611, 122.23282, 1135.57751, 528.43170, 0.00000, 0.00000, 90.00000);
  18949. CreateDynamicObject(2011, 122.70470, 1139.35327, 526.42072, 0.00000, 0.00000, 0.00000);
  18950. CreateDynamicObject(1549, 129.22298, 1139.57593, 526.37823, 0.00000, 0.00000, 0.00000);
  18951. CreateDynamicObject(2412, 124.79014, 1139.64636, 526.46570, 0.00000, 0.00000, 0.00000);
  18952. CreateDynamicObject(2412, 128.20688, 1139.63660, 526.46588, 0.00000, 0.00000, 0.00000);
  18953. CreateDynamicObject(2688, 133.06993, 1127.75256, 528.23529, 0.00000, 0.00000, 270.00000);
  18954. CreateDynamicObject(2690, 123.52813, 1139.72498, 527.11108, 0.00000, 0.00000, 0.00000);
  18955. CreateDynamicObject(2961, 124.14986, 1139.77234, 528.08264, 0.00000, 0.00000, 0.00000);
  18956. CreateDynamicObject(2261, 132.48260, 1138.41125, 528.27228, 0.00000, 0.00000, 270.00000);
  18957. CreateDynamicObject(2262, 132.56378, 1135.51196, 528.27228, 0.00000, 0.00000, 270.00000);
  18958. CreateDynamicObject(2264, 132.54478, 1132.67273, 528.27228, 0.00000, 0.00000, 270.00000);
  18959. CreateDynamicObject(19450, 137.88420, 1130.76587, 528.14587, 0.00000, 0.00000, 90.00000);
  18960. CreateDynamicObject(19388, 135.74176, 1126.50525, 528.14587, 0.00000, 0.00000, 90.00000);
  18961. CreateDynamicObject(19450, 137.27266, 1127.41260, 528.14587, 0.00000, 0.00000, 0.00000);
  18962. CreateDynamicObject(19388, 131.19031, 1121.67798, 528.14587, 0.00000, 0.00000, 0.00000);
  18963. CreateDynamicObject(19450, 135.92627, 1120.17273, 528.14587, 0.00000, 0.00000, 90.00000);
  18964. CreateDynamicObject(19450, 137.26620, 1124.91907, 528.14587, 0.00000, 0.00000, 0.00000);
  18965. CreateDynamicObject(19358, 131.59143, 1124.35205, 528.14587, 0.00000, 0.00000, 90.00000);
  18966. CreateDynamicObject(19358, 131.19286, 1124.45386, 528.14587, 0.00000, 0.00000, 0.00000);
  18967. CreateDynamicObject(19379, 136.40410, 1127.89185, 526.37518, 0.00000, 90.00000, 0.00000);
  18968. CreateDynamicObject(19379, 136.35280, 1121.61792, 526.35522, 0.00000, 90.00000, 0.00000);
  18969. CreateDynamicObject(19450, 117.34834, 1123.14880, 528.14587, 0.00000, 0.00000, 90.00000);
  18970. CreateDynamicObject(19450, 120.83286, 1120.00720, 528.14587, 0.00000, 0.00000, 0.00000);
  18971. CreateDynamicObject(19377, 126.00430, 1118.56348, 526.35321, 0.00000, 90.00000, 0.00000);
  18972. CreateDynamicObject(19377, 126.00710, 1114.51001, 526.34918, 0.00000, 90.00000, 0.00000);
  18973. CreateDynamicObject(19358, 131.18378, 1118.60645, 528.14587, 0.00000, 0.00000, 0.00000);
  18974. CreateDynamicObject(19358, 131.18018, 1115.43103, 528.14587, 0.00000, 0.00000, 0.00000);
  18975. CreateDynamicObject(19358, 131.19102, 1113.94202, 528.14587, 0.00000, 0.00000, 0.00000);
  18976. CreateDynamicObject(19366, 125.57810, 1118.22913, 528.14392, 0.00000, 0.00000, 90.00000);
  18977. CreateDynamicObject(19358, 124.04066, 1116.72290, 528.14587, 0.00000, 0.00000, 0.00000);
  18978. CreateDynamicObject(19358, 127.09470, 1116.71899, 528.14587, 0.00000, 0.00000, 0.00000);
  18979. CreateDynamicObject(19358, 127.09979, 1114.06091, 528.14587, 0.00000, 0.00000, 0.00000);
  18980. CreateDynamicObject(19358, 124.04125, 1114.05273, 528.14587, 0.00000, 0.00000, 0.00000);
  18981. CreateDynamicObject(19366, 125.57174, 1112.56445, 528.14392, 0.00000, 0.00000, 90.00000);
  18982. CreateDynamicObject(19358, 120.82690, 1113.90955, 528.14587, 0.00000, 0.00000, 0.00000);
  18983. CreateDynamicObject(2614, 125.58346, 1118.36316, 528.86505, 0.00000, 0.00000, 180.00000);
  18984. CreateDynamicObject(2614, 125.53983, 1112.40186, 528.86511, 0.00000, 0.00000, 0.00000);
  18985. CreateDynamicObject(19388, 132.70236, 1112.39661, 528.14587, 0.00000, 0.00000, 90.00000);
  18986. CreateDynamicObject(19358, 141.42851, 1112.37512, 528.14587, 0.00000, 0.00000, 90.00000);
  18987. CreateDynamicObject(19450, 140.34441, 1108.21594, 528.14587, 0.00000, 0.00000, 0.00000);
  18988. CreateDynamicObject(19450, 116.09457, 1112.37366, 528.14587, 0.00000, 0.00000, 90.00000);
  18989. CreateDynamicObject(19450, 140.03827, 1117.17700, 528.14587, 0.00000, 0.00000, 0.00000);
  18990. CreateDynamicObject(19379, 136.50000, 1117.20544, 526.35321, 0.00000, 90.00000, 0.00000);
  18991. CreateDynamicObject(19377, 116.49130, 1114.53735, 526.35120, 0.00000, 90.00000, 0.00000);
  18992. CreateDynamicObject(19377, 136.47391, 1114.50964, 526.35120, 0.00000, 90.00000, 0.00000);
  18993. CreateDynamicObject(19377, 142.11330, 1105.17847, 526.35321, 0.00000, 90.00000, 0.00000);
  18994. CreateDynamicObject(19444, 125.61120, 1109.78027, 526.69269, 90.00000, 0.00000, 90.00000);
  18995. CreateDynamicObject(19444, 122.12870, 1109.77466, 526.69470, 90.00000, 0.00000, 90.00000);
  18996. CreateDynamicObject(19444, 129.09680, 1109.76733, 526.69470, 90.00000, 0.00000, 90.00000);
  18997. CreateDynamicObject(19444, 132.47932, 1109.75732, 526.69269, 90.00000, 0.00000, 90.00000);
  18998. CreateDynamicObject(19444, 135.13850, 1109.76782, 526.69470, 90.00000, 0.00000, 90.00000);
  18999. CreateDynamicObject(19444, 118.67280, 1109.77686, 526.69269, 90.00000, 0.00000, 90.00000);
  19000. CreateDynamicObject(19444, 115.94530, 1109.78259, 526.69470, 90.00000, 0.00000, 90.00000);
  19001. CreateDynamicObject(19454, 112.46471, 1108.96716, 526.35321, 0.00000, 90.00000, 0.00000);
  19002. CreateDynamicObject(1536, 117.59206, 1112.31213, 526.35492, 0.00000, 0.00000, 0.00000);
  19003. CreateDynamicObject(19454, 138.60808, 1098.81006, 526.35522, 0.00000, 90.00000, 0.00000);
  19004. CreateDynamicObject(14877, 141.86850, 1099.50378, 524.35712, 0.00000, 0.00000, 90.00000);
  19005. CreateDynamicObject(2191, 133.68246, 1125.46155, 526.46252, 0.00000, 0.00000, 90.00000);
  19006. CreateDynamicObject(2204, 137.17787, 1125.03723, 526.46118, 0.00000, 0.00000, 270.00000);
  19007. CreateDynamicObject(2737, 133.89690, 1120.30957, 528.38220, 0.00000, 0.00000, 180.00000);
  19008. CreateDynamicObject(2182, 136.68703, 1121.71301, 526.45947, 0.00000, 0.00000, 180.00000);
  19009. CreateDynamicObject(2190, 137.09000, 1121.60791, 527.25787, 0.00000, 0.00000, 270.00000);
  19010. CreateDynamicObject(1536, 131.11464, 1120.86609, 526.42352, 0.00000, 0.00000, 20.52520);
  19011. CreateDynamicObject(1330, 132.39899, 1120.70972, 526.75928, 0.00000, 0.00000, 0.00000);
  19012. CreateDynamicObject(2011, 131.62309, 1123.81348, 526.45740, 0.00000, 0.00000, 0.00000);
  19013. CreateDynamicObject(1722, 133.34651, 1124.60852, 526.46259, 0.00000, 0.00000, 270.00000);
  19014. CreateDynamicObject(1806, 135.58820, 1121.36292, 526.45648, 0.00000, 0.00000, 307.22849);
  19015. CreateDynamicObject(2010, 136.87805, 1125.93713, 526.46216, 0.00000, 0.00000, 0.00000);
  19016. CreateDynamicObject(1536, 133.15187, 1129.61304, 526.45752, 0.00000, 0.00000, 12.11936);
  19017. CreateDynamicObject(2256, 135.08641, 1130.65771, 528.70770, 0.00000, 0.00000, 0.00000);
  19018. CreateDynamicObject(2258, 137.15707, 1128.67090, 528.65802, 0.00000, 0.00000, 269.69696);
  19019. CreateDynamicObject(2690, 133.26740, 1130.38123, 527.15887, 0.00000, 0.00000, 90.00000);
  19020. CreateDynamicObject(1722, 134.50121, 1126.67163, 526.46228, 0.00000, 0.00000, 0.00000);
  19021. CreateDynamicObject(1722, 133.79807, 1126.65308, 526.46222, 0.00000, 0.00000, 0.00000);
  19022. CreateDynamicObject(2205, 136.08499, 1117.84949, 526.45868, 0.00000, 0.00000, 180.00000);
  19023. CreateDynamicObject(19325, 137.56654, 1112.37195, 527.85474, 0.00000, 0.00000, 90.00000);
  19024. CreateDynamicObject(14455, 139.99011, 1114.04700, 528.09216, 0.00000, 0.00000, 90.00000);
  19025. CreateDynamicObject(1722, 134.87361, 1116.13501, 526.43964, 0.00000, 0.00000, 0.00000);
  19026. CreateDynamicObject(1722, 135.92680, 1116.13586, 526.45947, 0.00000, 0.00000, 0.00000);
  19027. CreateDynamicObject(2611, 133.11266, 1120.04382, 528.52368, 0.00000, 0.00000, 0.00000);
  19028. CreateDynamicObject(2204, 131.35355, 1113.01428, 526.43878, 0.00000, 0.00000, 90.00000);
  19029. CreateDynamicObject(2162, 131.32373, 1116.18311, 528.17126, 0.00000, 0.00000, 90.00000);
  19030. CreateDynamicObject(2612, 135.37790, 1120.04858, 528.52368, 0.00000, 0.00000, 0.00000);
  19031. CreateDynamicObject(2737, 138.35339, 1120.02527, 528.52368, 0.00000, 0.00000, 0.00000);
  19032. CreateDynamicObject(2615, 138.15709, 1120.01147, 528.69427, 0.00000, 0.00000, 0.00000);
  19033. CreateDynamicObject(2894, 134.89040, 1117.84570, 527.39203, 0.00000, 0.00000, 332.81030);
  19034. CreateDynamicObject(2196, 134.66370, 1118.03210, 527.38831, 0.00000, 0.00000, 22.75634);
  19035. CreateDynamicObject(2190, 136.18956, 1117.44397, 527.38831, 0.00000, 0.00000, 220.00000);
  19036. CreateDynamicObject(18870, 135.70641, 1117.98608, 527.39209, 0.00000, 0.00000, 200.00000);
  19037. CreateDynamicObject(2606, 131.41156, 1118.94824, 528.36499, 0.00000, 0.00000, 90.00000);
  19038. CreateDynamicObject(2010, 139.58926, 1119.63770, 526.44238, 0.00000, 0.00000, 0.00000);
  19039. CreateDynamicObject(2011, 139.51135, 1113.02698, 526.43896, 0.00000, 0.00000, 0.00000);
  19040. CreateDynamicObject(1330, 131.64388, 1115.89709, 526.74182, 0.00000, 0.00000, 0.00000);
  19041. CreateDynamicObject(1708, 135.09679, 1112.80481, 526.44012, 0.00000, 0.00000, 90.00000);
  19042. CreateDynamicObject(1708, 138.28033, 1113.82666, 526.44092, 0.00000, 0.00000, 270.00000);
  19043. CreateDynamicObject(1714, 135.60278, 1119.42688, 526.43811, 0.00000, 0.00000, 344.77161);
  19044. CreateDynamicObject(1822, 136.19110, 1112.79016, 526.43884, 0.00000, 0.00000, 0.00000);
  19045. CreateDynamicObject(19454, 112.45860, 1099.36975, 526.35120, 0.00000, 90.00000, 0.00000);
  19046. CreateDynamicObject(19454, 135.50690, 1093.47217, 526.35321, 0.00000, 90.00000, 90.00000);
  19047. CreateDynamicObject(19454, 125.93092, 1093.45447, 526.35522, 0.00000, 90.00000, 90.00000);
  19048. CreateDynamicObject(19454, 116.40486, 1093.46167, 526.35718, 0.00000, 90.00000, 90.00000);
  19049. CreateDynamicObject(19454, 109.46172, 1093.44653, 526.35522, 0.00000, 90.00000, 90.00000);
  19050. CreateDynamicObject(19444, 136.78610, 1108.07617, 526.69269, 90.00000, 0.00000, 0.00000);
  19051. CreateDynamicObject(19444, 136.78461, 1104.66504, 526.69470, 90.00000, 0.00000, 0.00000);
  19052. CreateDynamicObject(19444, 136.78720, 1101.24780, 526.69269, 90.00000, 0.00000, 0.00000);
  19053. CreateDynamicObject(19444, 136.79449, 1097.75964, 526.69470, 90.00000, 0.00000, 0.00000);
  19054. CreateDynamicObject(19444, 136.78951, 1096.97217, 526.69269, 90.00000, 0.00000, 0.00000);
  19055. CreateDynamicObject(19444, 135.11729, 1095.30383, 526.69470, 90.00000, 0.00000, 90.00000);
  19056. CreateDynamicObject(19444, 131.70110, 1095.29980, 526.69269, 90.00000, 0.00000, 90.00000);
  19057. CreateDynamicObject(19444, 128.26730, 1095.29834, 526.69470, 90.00000, 0.00000, 90.00000);
  19058. CreateDynamicObject(19444, 124.84230, 1095.30347, 526.69269, 90.00000, 0.00000, 90.00000);
  19059. CreateDynamicObject(19444, 121.39020, 1095.29907, 526.69470, 90.00000, 0.00000, 90.00000);
  19060. CreateDynamicObject(19444, 117.95600, 1095.28748, 526.69269, 90.00000, 0.00000, 90.00000);
  19061. CreateDynamicObject(19444, 114.28280, 1108.09314, 526.69269, 90.00000, 0.00000, 0.00000);
  19062. CreateDynamicObject(19444, 114.25240, 1104.68054, 526.69470, 90.00000, 0.00000, 0.00000);
  19063. CreateDynamicObject(19444, 114.23370, 1101.21851, 526.69269, 90.00000, 0.00000, 0.00000);
  19064. CreateDynamicObject(19444, 114.22680, 1097.79871, 526.69470, 90.00000, 0.00000, 0.00000);
  19065. CreateDynamicObject(19444, 115.89910, 1095.28357, 526.69470, 90.00000, 0.00000, 90.00000);
  19066. CreateDynamicObject(19444, 114.22220, 1096.95386, 526.69269, 90.00000, 0.00000, 0.00000);
  19067. CreateDynamicObject(19450, 111.37985, 1107.63342, 528.14587, 0.00000, 0.00000, 0.00000);
  19068. CreateDynamicObject(19450, 111.38427, 1098.07153, 528.14587, 0.00000, 0.00000, 0.00000);
  19069. CreateDynamicObject(19450, 111.38670, 1089.84912, 528.14587, 0.00000, 0.00000, 0.00000);
  19070. CreateDynamicObject(18756, 113.27636, 1098.83459, 528.43286, 0.00000, 0.00000, 0.00000);
  19071. CreateDynamicObject(18757, 113.27254, 1098.81433, 528.43292, 0.00000, 0.00000, 0.00000);
  19072. CreateDynamicObject(18756, 113.26991, 1105.07324, 528.43292, 0.00000, 0.00000, 0.00000);
  19073. CreateDynamicObject(18757, 113.25907, 1105.04565, 528.43292, 0.00000, 0.00000, 0.00000);
  19074. CreateDynamicObject(2010, 111.79386, 1111.89648, 526.43835, 0.00000, 0.00000, 345.26868);
  19075. CreateDynamicObject(19450, 140.27351, 1095.55518, 528.14587, 0.00000, 0.00000, 0.00000);
  19076. CreateDynamicObject(19388, 112.93038, 1091.72949, 528.14587, 0.00000, 0.00000, 90.00000);
  19077. CreateDynamicObject(19379, 115.76257, 1086.75574, 526.35321, 0.00000, 90.00000, 0.00000);
  19078. CreateDynamicObject(19325, 117.73980, 1091.73083, 528.19171, 0.00000, 0.00000, 90.00000);
  19079. CreateDynamicObject(2357, 116.70911, 1088.50146, 526.77863, 0.00000, 0.00000, 0.00000);
  19080. CreateDynamicObject(19450, 121.02410, 1086.94360, 528.14587, 0.00000, 0.00000, 0.00000);
  19081. CreateDynamicObject(19450, 116.12797, 1085.07898, 528.14587, 0.00000, 0.00000, 90.00000);
  19082. CreateDynamicObject(1714, 119.77950, 1088.46509, 526.40222, 0.00000, 0.00000, 270.00000);
  19083. CreateDynamicObject(1671, 118.46954, 1089.92505, 526.85437, 0.00000, 0.00000, 0.00000);
  19084. CreateDynamicObject(1671, 117.28407, 1089.92969, 526.85437, 0.00000, 0.00000, 0.00000);
  19085. CreateDynamicObject(1671, 116.15219, 1089.93604, 526.85437, 0.00000, 0.00000, 0.00000);
  19086. CreateDynamicObject(1671, 115.10846, 1089.94739, 526.85437, 0.00000, 0.00000, 0.00000);
  19087. CreateDynamicObject(1671, 118.45634, 1087.13391, 526.85437, 0.00000, 0.00000, 180.00000);
  19088. CreateDynamicObject(1671, 117.36018, 1087.12891, 526.85437, 0.00000, 0.00000, 180.00000);
  19089. CreateDynamicObject(1671, 116.15527, 1087.15271, 526.85437, 0.00000, 0.00000, 180.00000);
  19090. CreateDynamicObject(1671, 115.05414, 1087.15967, 526.85437, 0.00000, 0.00000, 180.00000);
  19091. CreateDynamicObject(2737, 111.52480, 1088.78040, 528.27179, 0.00000, 0.00000, 90.00000);
  19092. CreateDynamicObject(14604, 112.01170, 1085.64783, 527.32050, 0.00000, 0.00000, 311.34229);
  19093. CreateDynamicObject(1455, 118.05880, 1088.92456, 527.25232, 0.00000, 0.00000, 0.00000);
  19094. CreateDynamicObject(1455, 116.17137, 1088.16382, 527.25232, 0.00000, 0.00000, 0.00000);
  19095. CreateDynamicObject(2894, 118.48130, 1088.46375, 527.18390, 0.00000, 0.00000, 90.00000);
  19096. CreateDynamicObject(2161, 120.38039, 1085.16174, 528.04303, 0.00000, 0.00000, 180.00000);
  19097. CreateDynamicObject(2002, 111.98170, 1092.22778, 526.44098, 0.00000, 0.00000, 90.00000);
  19098. CreateDynamicObject(2011, 111.82670, 1091.19421, 526.43658, 0.00000, 0.00000, 0.00000);
  19099. CreateDynamicObject(1330, 120.52814, 1085.52783, 526.74475, 0.00000, 0.00000, 0.00000);
  19100. CreateDynamicObject(2288, 118.26725, 1085.69128, 528.27216, 0.00000, 0.00000, 180.00000);
  19101. CreateDynamicObject(2288, 113.80272, 1085.66016, 528.27222, 0.00000, 0.00000, 180.00000);
  19102. CreateDynamicObject(19450, 139.56389, 1091.73572, 528.14587, 0.00000, 0.00000, 90.00000);
  19103. CreateDynamicObject(19366, 134.82491, 1090.20447, 528.14392, 0.00000, 0.00000, 0.00000);
  19104. CreateDynamicObject(19366, 134.81180, 1087.08533, 528.14789, 0.00000, 0.00000, 0.00000);
  19105. CreateDynamicObject(19366, 133.30695, 1085.41980, 528.14587, 0.00000, 0.00000, 90.00000);
  19106. CreateDynamicObject(19366, 130.14590, 1085.43359, 528.14789, 0.00000, 0.00000, 90.00000);
  19107. CreateDynamicObject(19431, 128.62367, 1084.70020, 528.14587, 0.00000, 0.00000, 0.00000);
  19108. CreateDynamicObject(19377, 129.46500, 1086.96521, 526.35120, 0.00000, 90.00000, 0.00000);
  19109. CreateDynamicObject(19377, 125.91820, 1086.97253, 526.34918, 0.00000, 90.00000, 0.00000);
  19110. CreateDynamicObject(1713, 131.95149, 1086.21045, 526.43347, 0.00000, 0.00000, 180.00000);
  19111. CreateDynamicObject(1713, 132.90269, 1088.75122, 526.43347, 0.00000, 0.00000, 270.00000);
  19112. CreateDynamicObject(2010, 134.30821, 1085.90833, 526.43738, 0.00000, 0.00000, 0.00000);
  19113. CreateDynamicObject(1775, 134.35789, 1091.14221, 527.52203, 0.00000, 0.00000, 270.00000);
  19114. CreateDynamicObject(1776, 134.35620, 1089.94055, 527.51801, 0.00000, 0.00000, 270.00000);
  19115. CreateDynamicObject(2082, 130.69630, 1087.53809, 526.43719, 0.00000, 0.00000, 0.00000);
  19116. CreateDynamicObject(2852, 131.14174, 1088.06909, 526.93237, 0.00000, 0.00000, 0.00000);
  19117. CreateDynamicObject(1549, 129.10576, 1086.14331, 526.43652, 0.00000, 0.00000, 0.00000);
  19118. CreateDynamicObject(19225, 127.12206, 1082.65051, 526.43390, 0.00000, 0.00000, 0.00000);
  19119. CreateDynamicObject(19325, 128.60576, 1082.03406, 528.35968, 0.00000, 0.00000, 0.00000);
  19120. CreateDynamicObject(19388, 128.65894, 1077.93237, 528.14587, 0.00000, 0.00000, 0.00000);
  19121. CreateDynamicObject(19377, 123.37313, 1077.45435, 526.35321, 0.00000, 90.00000, 0.00000);
  19122. CreateDynamicObject(19450, 123.24889, 1073.73486, 528.14587, 0.00000, 0.00000, 45.00000);
  19123. CreateDynamicObject(19450, 125.56961, 1072.72607, 528.14587, 0.00000, 0.00000, 90.00000);
  19124. CreateDynamicObject(19450, 133.39168, 1076.40552, 528.14587, 0.00000, 0.00000, 90.00000);
  19125. CreateDynamicObject(19450, 135.73665, 1081.16174, 528.14587, 0.00000, 0.00000, 0.00000);
  19126. CreateDynamicObject(19450, 133.41606, 1085.22180, 528.14587, 0.00000, 0.00000, 90.00000);
  19127. CreateDynamicObject(19379, 133.84380, 1080.66089, 526.35919, 0.00000, 90.00000, 0.00000);
  19128. CreateDynamicObject(19377, 133.79469, 1071.60303, 526.36121, 0.00000, 90.00000, 0.00000);
  19129. CreateDynamicObject(2165, 133.11618, 1082.18774, 526.43860, 0.00000, 0.00000, 90.00000);
  19130. CreateDynamicObject(1714, 134.51045, 1082.76270, 526.43060, 0.00000, 0.00000, 270.00000);
  19131. CreateDynamicObject(1722, 131.52663, 1083.32080, 526.43988, 0.00000, 0.00000, 270.00000);
  19132. CreateDynamicObject(1722, 131.51898, 1082.16638, 526.43988, 0.00000, 0.00000, 270.00000);
  19133. CreateDynamicObject(2010, 129.19586, 1084.72717, 526.43927, 0.00000, 0.00000, 0.00000);
  19134. CreateDynamicObject(2164, 130.03203, 1076.50342, 526.43958, 0.00000, 0.00000, 180.00000);
  19135. CreateDynamicObject(2167, 130.94780, 1076.48743, 526.44019, 0.00000, 0.00000, 180.00000);
  19136. CreateDynamicObject(1742, 133.52155, 1076.36609, 526.43951, 0.00000, 0.00000, 180.00000);
  19137. CreateDynamicObject(2611, 135.61458, 1079.95618, 528.61853, 0.00000, 0.00000, 270.00000);
  19138. CreateDynamicObject(2612, 135.59764, 1077.76465, 528.61853, 0.00000, 0.00000, 270.00000);
  19139. CreateDynamicObject(1330, 135.27205, 1076.87073, 526.74207, 0.00000, 0.00000, 0.00000);
  19140. CreateDynamicObject(14604, 135.09319, 1084.59290, 527.37329, 0.00000, 0.00000, 131.09131);
  19141. CreateDynamicObject(2260, 131.79678, 1084.62195, 528.47632, 0.00000, 0.00000, 0.00000);
  19142. CreateDynamicObject(2002, 129.20558, 1079.10645, 526.43970, 0.00000, 0.00000, 90.00000);
  19143. CreateDynamicObject(19388, 131.86816, 1072.72595, 528.14587, 0.00000, 0.00000, 90.00000);
  19144. CreateDynamicObject(19450, 130.17386, 1067.83179, 528.14587, 0.00000, 0.00000, 0.00000);
  19145. CreateDynamicObject(19450, 138.23438, 1072.72717, 528.14587, 0.00000, 0.00000, 90.00000);
  19146. CreateDynamicObject(19450, 135.75153, 1077.51001, 528.14587, 0.00000, 0.00000, 0.00000);
  19147. CreateDynamicObject(19450, 134.93445, 1066.40051, 528.14587, 0.00000, 0.00000, 90.00000);
  19148. CreateDynamicObject(19450, 138.87886, 1068.02002, 528.14587, 0.00000, 0.00000, 0.00000);
  19149. CreateDynamicObject(19379, 134.65723, 1067.95557, 526.35718, 0.00000, 90.00000, 0.00000);
  19150. CreateDynamicObject(3077, 138.69243, 1069.44690, 526.13965, 0.00000, 0.00000, 90.00000);
  19151. CreateDynamicObject(14604, 138.19545, 1071.98853, 527.25476, 0.00000, 0.00000, 115.51939);
  19152. CreateDynamicObject(1811, 136.20747, 1072.29272, 527.06049, 0.00000, 0.00000, 180.00000);
  19153. CreateDynamicObject(1811, 136.19643, 1071.29944, 527.06049, 0.00000, 0.00000, 180.00000);
  19154. CreateDynamicObject(1811, 134.75218, 1072.29626, 527.06049, 0.00000, 0.00000, 180.00000);
  19155. CreateDynamicObject(1811, 134.77368, 1071.33752, 527.06049, 0.00000, 0.00000, 180.00000);
  19156. CreateDynamicObject(1811, 133.36150, 1072.35144, 527.06049, 0.00000, 0.00000, 180.00000);
  19157. CreateDynamicObject(1811, 133.31682, 1071.41089, 527.06049, 0.00000, 0.00000, 180.00000);
  19158. CreateDynamicObject(1811, 136.12198, 1066.84167, 527.06049, 0.00000, 0.00000, 180.00000);
  19159. CreateDynamicObject(1811, 136.12402, 1067.77856, 527.06049, 0.00000, 0.00000, 180.00000);
  19160. CreateDynamicObject(1811, 136.13535, 1068.73511, 527.06049, 0.00000, 0.00000, 180.00000);
  19161. CreateDynamicObject(1811, 134.73260, 1068.75024, 527.06049, 0.00000, 0.00000, 180.00000);
  19162. CreateDynamicObject(1811, 134.69025, 1067.75879, 527.06049, 0.00000, 0.00000, 180.00000);
  19163. CreateDynamicObject(1811, 134.70734, 1066.86731, 527.06049, 0.00000, 0.00000, 180.00000);
  19164. CreateDynamicObject(1811, 133.33559, 1068.78430, 527.06049, 0.00000, 0.00000, 180.00000);
  19165. CreateDynamicObject(1811, 133.30193, 1067.76831, 527.06049, 0.00000, 0.00000, 180.00000);
  19166. CreateDynamicObject(1811, 133.32515, 1066.87988, 527.06049, 0.00000, 0.00000, 180.00000);
  19167. CreateDynamicObject(2011, 130.54782, 1066.73120, 526.44244, 0.00000, 0.00000, 0.00000);
  19168. CreateDynamicObject(1330, 130.61829, 1072.21741, 526.74847, 0.00000, 0.00000, 0.00000);
  19169. CreateDynamicObject(2262, 135.15402, 1074.61951, 528.36896, 0.00000, 0.00000, 270.00000);
  19170. CreateDynamicObject(19450, 121.02251, 1077.49500, 528.14587, 0.00000, 0.00000, 0.00000);
  19171. CreateDynamicObject(14877, 141.87305, 1108.05750, 528.16107, 0.00000, 0.00000, 90.00000);
  19172. CreateDynamicObject(19377, 131.63106, 1114.61804, 530.15784, 0.00000, 90.00000, 0.00000);
  19173. CreateDynamicObject(19377, 139.73129, 1114.63342, 530.15979, 0.00000, 90.00000, 0.00000);
  19174. CreateDynamicObject(19454, 138.55641, 1105.10388, 530.16180, 0.00000, 90.00000, 0.00000);
  19175. CreateDynamicObject(19378, 127.24680, 1135.48657, 529.91479, 0.00000, 90.00000, 0.00000);
  19176. CreateDynamicObject(19378, 127.26780, 1127.97620, 529.91882, 0.00000, 90.00000, 0.00000);
  19177. CreateDynamicObject(19378, 137.31441, 1135.49072, 529.91681, 0.00000, 90.00000, 0.00000);
  19178. CreateDynamicObject(19378, 137.50050, 1128.01025, 529.91278, 0.00000, 90.00000, 0.00000);
  19179. CreateDynamicObject(19379, 126.02420, 1118.75073, 529.91479, 0.00000, 90.00000, 0.00000);
  19180. CreateDynamicObject(19378, 136.39461, 1124.86157, 529.91479, 0.00000, 90.00000, 0.00000);
  19181. CreateDynamicObject(19379, 133.77930, 1080.69104, 529.91681, 0.00000, 90.00000, 0.00000);
  19182. CreateDynamicObject(19379, 123.94470, 1080.68713, 529.91278, 0.00000, 90.00000, 0.00000);
  19183. CreateDynamicObject(19379, 135.44540, 1071.05615, 529.91479, 0.00000, 90.00000, 0.00000);
  19184. CreateDynamicObject(19379, 125.79240, 1074.95581, 529.91882, 0.00000, 90.00000, 0.00000);
  19185. CreateDynamicObject(19379, 116.08100, 1087.01868, 529.91882, 0.00000, 90.00000, 0.00000);
  19186. CreateDynamicObject(19379, 136.26430, 1117.10559, 529.91681, 0.00000, 90.00000, 0.00000);
  19187. CreateDynamicObject(19379, 126.48530, 1087.06067, 529.91083, 0.00000, 90.00000, 0.00000);
  19188. CreateDynamicObject(19379, 131.38940, 1087.10059, 529.91479, 0.00000, 90.00000, 0.00000);
  19189. CreateDynamicObject(19379, 125.84450, 1117.11646, 529.91681, 0.00000, 90.00000, 0.00000);
  19190. CreateDynamicObject(19454, 138.53020, 1095.95715, 530.15778, 0.00000, 90.00000, 0.00000);
  19191. CreateDynamicObject(19454, 132.67810, 1093.54395, 530.15979, 0.00000, 90.00000, 90.00000);
  19192. CreateDynamicObject(19454, 123.07740, 1093.54980, 530.16180, 0.00000, 90.00000, 90.00000);
  19193. CreateDynamicObject(19454, 113.53893, 1093.53662, 530.15778, 0.00000, 90.00000, 90.00000);
  19194. CreateDynamicObject(19454, 112.54580, 1098.87085, 530.15582, 0.00000, 90.00000, 0.00000);
  19195. CreateDynamicObject(19454, 112.55270, 1108.42798, 530.15778, 0.00000, 90.00000, 0.00000);
  19196. CreateDynamicObject(19454, 121.63480, 1111.54858, 530.15582, 0.00000, 90.00000, 90.00000);
  19197. CreateDynamicObject(19454, 114.24620, 1111.54163, 530.15979, 0.00000, 90.00000, 90.00000);
  19198. CreateDynamicObject(19444, 134.94830, 1109.84155, 530.61499, 90.00000, 0.00000, 90.00000);
  19199. CreateDynamicObject(19444, 131.51460, 1109.83362, 530.61700, 90.00000, 90.00000, 0.00000);
  19200. CreateDynamicObject(19444, 128.05809, 1109.84094, 530.61499, 90.00000, 90.00000, 0.00000);
  19201. CreateDynamicObject(19444, 124.58686, 1109.82886, 530.61499, 90.00000, 90.00000, 0.00000);
  19202. CreateDynamicObject(19444, 121.11240, 1109.83362, 530.61298, 90.00000, 90.00000, 0.00000);
  19203. CreateDynamicObject(19444, 117.65174, 1109.82898, 530.61499, 90.00000, 90.00000, 0.00000);
  19204. CreateDynamicObject(19444, 116.05900, 1109.82178, 530.61700, 90.00000, 90.00000, 0.00000);
  19205. CreateDynamicObject(19444, 114.36700, 1108.12878, 530.61499, 90.00000, 0.00000, 0.00000);
  19206. CreateDynamicObject(19444, 114.38530, 1104.65454, 530.61700, 90.00000, 0.00000, 0.00000);
  19207. CreateDynamicObject(19444, 114.38590, 1101.19116, 530.61499, 90.00000, 0.00000, 0.00000);
  19208. CreateDynamicObject(19444, 114.38820, 1097.69788, 530.61700, 90.00000, 0.00000, 0.00000);
  19209. CreateDynamicObject(19444, 114.40220, 1096.99829, 530.61902, 90.00000, 0.00000, 0.00000);
  19210. CreateDynamicObject(19454, 141.66440, 1113.54224, 530.15778, 0.00000, 90.00000, 0.00000);
  19211. CreateDynamicObject(19444, 116.08480, 1095.34558, 530.62097, 90.00000, 0.00000, 90.00000);
  19212. CreateDynamicObject(19444, 119.57096, 1095.35339, 530.61902, 90.00000, 0.00000, 90.00000);
  19213. CreateDynamicObject(19444, 123.01680, 1095.35278, 530.62097, 90.00000, 90.00000, 0.00000);
  19214. CreateDynamicObject(19444, 126.46865, 1095.33594, 530.61902, 90.00000, 90.00000, 0.00000);
  19215. CreateDynamicObject(19444, 129.93410, 1095.33057, 530.61700, 90.00000, 90.00000, 0.00000);
  19216. CreateDynamicObject(19444, 133.37680, 1095.32898, 530.61902, 90.00000, 90.00000, 0.00000);
  19217. CreateDynamicObject(19444, 135.18970, 1095.32666, 530.62097, 90.00000, 90.00000, 0.00000);
  19218. CreateDynamicObject(19444, 136.86742, 1097.01819, 530.61902, 90.00000, 0.00000, 0.00000);
  19219. CreateDynamicObject(19444, 136.86099, 1100.41992, 530.62097, 90.00000, 0.00000, 0.00000);
  19220. CreateDynamicObject(19444, 136.86174, 1103.87610, 530.61902, 90.00000, 0.00000, 0.00000);
  19221. CreateDynamicObject(19444, 136.87041, 1107.34583, 530.62097, 90.00000, 0.00000, 0.00000);
  19222. CreateDynamicObject(19444, 135.21918, 1109.83801, 530.61902, 90.00000, 0.00000, 90.00000);
  19223. CreateDynamicObject(19444, 136.88350, 1108.15576, 530.62299, 90.00000, 0.00000, 0.00000);
  19224. CreateDynamicObject(19462, 112.69556, 1096.55469, 529.91479, 0.00000, 90.00000, 0.00000);
  19225. CreateDynamicObject(19462, 112.62840, 1106.10645, 529.91278, 0.00000, 90.00000, 0.00000);
  19226. CreateDynamicObject(19462, 112.33601, 1111.62097, 529.91479, 0.00000, 90.00000, 90.00000);
  19227. CreateDynamicObject(19462, 121.68850, 1111.61267, 529.91278, 0.00000, 90.00000, 90.00000);
  19228. CreateDynamicObject(19462, 130.72701, 1111.54761, 529.91882, 0.00000, 90.00000, 90.00000);
  19229. CreateDynamicObject(19462, 138.96800, 1111.54187, 529.91479, 0.00000, 90.00000, 90.00000);
  19230. CreateDynamicObject(19462, 138.61723, 1105.10620, 529.91278, 0.00000, 90.00000, 0.00000);
  19231. CreateDynamicObject(19462, 138.57025, 1095.76221, 529.91479, 0.00000, 90.00000, 0.00000);
  19232. CreateDynamicObject(19462, 132.49710, 1093.56824, 529.91278, 0.00000, 90.00000, 90.00000);
  19233. CreateDynamicObject(19462, 123.22495, 1093.50879, 529.91479, 0.00000, 90.00000, 90.00000);
  19234. CreateDynamicObject(19462, 114.56200, 1093.60425, 529.91681, 0.00000, 90.00000, 90.00000);
  19235. CreateDynamicObject(19388, 140.34053, 1101.93823, 528.14587, 0.00000, 0.00000, 0.00000);
  19236. CreateDynamicObject(19450, 140.28880, 1103.91687, 531.60571, 0.00000, 0.00000, 0.00000);
  19237. CreateDynamicObject(19450, 140.29112, 1094.44104, 531.97791, 0.00000, 0.00000, 0.00000);
  19238. CreateDynamicObject(19450, 145.02670, 1100.66614, 531.60571, 0.00000, 0.00000, 90.00000);
  19239. CreateDynamicObject(19450, 129.96780, 1087.15955, 531.97791, 0.00000, 0.00000, 0.00000);
  19240. CreateDynamicObject(19450, 111.58964, 1096.60803, 531.97791, 0.00000, 0.00000, 0.00000);
  19241. CreateDynamicObject(19450, 111.58822, 1106.23401, 531.97791, 0.00000, 0.00000, 0.00000);
  19242. CreateDynamicObject(19450, 111.58785, 1115.74939, 531.97791, 0.00000, 0.00000, 0.00000);
  19243. CreateDynamicObject(19450, 116.37499, 1113.31738, 531.97791, 0.00000, 0.00000, 90.00000);
  19244. CreateDynamicObject(19325, 136.24066, 1091.88831, 532.21271, 0.00000, 0.00000, 90.00000);
  19245. CreateDynamicObject(19450, 141.36540, 1116.48499, 531.97791, 0.00000, 0.00000, 90.00000);
  19246. CreateDynamicObject(19450, 143.44580, 1113.48291, 531.97791, 0.00000, 0.00000, 0.00000);
  19247. CreateDynamicObject(18756, 113.47980, 1098.88000, 532.21948, 0.00000, 0.00000, 0.00000);
  19248. CreateDynamicObject(18757, 113.46759, 1098.85889, 532.21948, 0.00000, 0.00000, 0.00000);
  19249. CreateDynamicObject(18756, 113.46564, 1105.14160, 532.21948, 0.00000, 0.00000, 0.00000);
  19250. CreateDynamicObject(18757, 113.46570, 1105.09106, 532.21948, 0.00000, 0.00000, 0.00000);
  19251. CreateDynamicObject(2010, 139.85884, 1092.50354, 530.23560, 0.00000, 0.00000, 0.00000);
  19252. CreateDynamicObject(19377, 125.82520, 1116.18567, 530.15979, 0.00000, 90.00000, 0.00000);
  19253. CreateDynamicObject(19450, 136.62334, 1121.22974, 531.97791, 0.00000, 0.00000, 0.00000);
  19254. CreateDynamicObject(19450, 134.95810, 1115.57117, 531.97791, 0.00000, 0.00000, 298.09003);
  19255. CreateDynamicObject(19450, 125.93468, 1113.31970, 531.97791, 0.00000, 0.00000, 90.00000);
  19256. CreateDynamicObject(19388, 131.48174, 1091.88867, 531.97791, 0.00000, 0.00000, 90.00000);
  19257. CreateDynamicObject(19325, 126.89705, 1091.92029, 532.21271, 0.00000, 0.00000, 90.00000);
  19258. CreateDynamicObject(19388, 122.14970, 1091.87549, 531.97791, 0.00000, 0.00000, 90.00000);
  19259. CreateDynamicObject(19325, 117.70520, 1091.87073, 532.21271, 0.00000, 0.00000, 90.00000);
  19260. CreateDynamicObject(19388, 113.00563, 1091.83191, 531.97791, 0.00000, 0.00000, 90.00000);
  19261. CreateDynamicObject(19450, 134.76254, 1086.60999, 531.97791, 0.00000, 0.00000, 90.00000);
  19262. CreateDynamicObject(19450, 125.27247, 1086.61072, 531.97791, 0.00000, 0.00000, 90.00000);
  19263. CreateDynamicObject(19450, 120.62556, 1087.12634, 531.97791, 0.00000, 0.00000, 0.00000);
  19264. CreateDynamicObject(19450, 115.72308, 1086.61133, 531.97791, 0.00000, 0.00000, 90.00000);
  19265. CreateDynamicObject(19450, 111.54620, 1087.20276, 531.97791, 0.00000, 0.00000, 0.00000);
  19266. CreateDynamicObject(19450, 139.49138, 1087.04407, 531.97791, 0.00000, 0.00000, 0.00000);
  19267. CreateDynamicObject(19379, 124.42427, 1087.07080, 530.16382, 0.00000, 90.00000, 0.00000);
  19268. CreateDynamicObject(19379, 115.33568, 1087.04480, 530.16577, 0.00000, 90.00000, 0.00000);
  19269. CreateDynamicObject(2165, 137.57381, 1088.74829, 530.24573, 0.00000, 0.00000, 90.00000);
  19270. CreateDynamicObject(2165, 127.95204, 1088.84363, 530.24573, 0.00000, 0.00000, 90.00000);
  19271. CreateDynamicObject(2165, 118.61790, 1088.83020, 530.24573, 0.00000, 0.00000, 90.00000);
  19272. CreateDynamicObject(2612, 111.69997, 1089.28882, 532.43109, 0.00000, 0.00000, 90.00000);
  19273. CreateDynamicObject(2204, 114.13966, 1086.77905, 530.25262, 0.00000, 0.00000, 180.00000);
  19274. CreateDynamicObject(1722, 116.92688, 1089.94971, 530.25269, 0.00000, 0.00000, 270.00000);
  19275. CreateDynamicObject(1722, 116.95602, 1088.77759, 530.25262, 0.00000, 0.00000, 270.00000);
  19276. CreateDynamicObject(1806, 120.13129, 1089.28381, 530.25342, 0.00000, 0.00000, 90.00000);
  19277. CreateDynamicObject(2010, 111.95350, 1091.20374, 530.25269, 0.00000, 0.00000, 0.00000);
  19278. CreateDynamicObject(2288, 116.08520, 1087.20911, 532.12488, 0.00000, 0.00000, 180.00000);
  19279. CreateDynamicObject(2288, 119.47620, 1087.23804, 532.12488, 0.00000, 0.00000, 180.00000);
  19280. CreateDynamicObject(2204, 123.21225, 1086.70837, 530.25262, 0.00000, 0.00000, 180.00000);
  19281. CreateDynamicObject(2612, 120.74992, 1089.23096, 532.43109, 0.00000, 0.00000, 90.00000);
  19282. CreateDynamicObject(2010, 121.13047, 1091.35425, 530.25031, 0.00000, 0.00000, 0.00000);
  19283. CreateDynamicObject(2288, 125.32215, 1087.19531, 532.12488, 0.00000, 0.00000, 180.00000);
  19284. CreateDynamicObject(2288, 128.70610, 1087.19165, 532.12488, 0.00000, 0.00000, 180.00000);
  19285. CreateDynamicObject(1722, 126.37733, 1089.83777, 530.25043, 0.00000, 0.00000, 270.00000);
  19286. CreateDynamicObject(1722, 126.38070, 1088.81104, 530.25018, 0.00000, 0.00000, 270.00000);
  19287. CreateDynamicObject(1806, 129.45699, 1089.26892, 530.25128, 0.00000, 0.00000, 90.00000);
  19288. CreateDynamicObject(2162, 129.84070, 1088.24731, 532.02911, 0.00000, 0.00000, 270.00000);
  19289. CreateDynamicObject(2162, 120.51205, 1088.25647, 532.02911, 0.00000, 0.00000, 270.00000);
  19290. CreateDynamicObject(2162, 139.41263, 1088.26233, 532.02911, 0.00000, 0.00000, 270.00000);
  19291. CreateDynamicObject(2288, 138.35809, 1087.20105, 532.12488, 0.00000, 0.00000, 180.00000);
  19292. CreateDynamicObject(2288, 134.09587, 1087.22839, 532.12488, 0.00000, 0.00000, 180.00000);
  19293. CreateDynamicObject(2204, 132.50148, 1086.68408, 530.25262, 0.00000, 0.00000, 180.00000);
  19294. CreateDynamicObject(2612, 130.12473, 1089.21899, 532.43109, 0.00000, 0.00000, 90.00000);
  19295. CreateDynamicObject(2010, 130.54945, 1091.37976, 530.24780, 0.00000, 0.00000, 0.00000);
  19296. CreateDynamicObject(19379, 134.88551, 1087.09924, 530.16180, 0.00000, 90.00000, 0.00000);
  19297. CreateDynamicObject(1722, 135.97946, 1089.82288, 530.24792, 0.00000, 0.00000, 270.00000);
  19298. CreateDynamicObject(1722, 135.97874, 1088.71265, 530.24780, 0.00000, 0.00000, 270.00000);
  19299. CreateDynamicObject(1806, 139.01837, 1089.03369, 530.24902, 0.00000, 0.00000, 90.00000);
  19300. CreateDynamicObject(1330, 139.01315, 1087.08191, 530.55060, 0.00000, 0.00000, 0.00000);
  19301. CreateDynamicObject(1330, 129.52734, 1087.09998, 530.55060, 0.00000, 0.00000, 0.00000);
  19302. CreateDynamicObject(1330, 120.19865, 1087.10083, 530.55060, 0.00000, 0.00000, 0.00000);
  19303. CreateDynamicObject(1536, 113.75910, 1091.90076, 530.20190, 0.00000, 0.00000, 256.70200);
  19304. CreateDynamicObject(1536, 122.90400, 1091.92590, 530.20190, 0.00000, 0.00000, 256.70200);
  19305. CreateDynamicObject(1536, 132.24448, 1091.88440, 530.20190, 0.00000, 0.00000, 256.70200);
  19306. CreateDynamicObject(1775, 137.40103, 1116.03918, 531.36017, 0.00000, 0.00000, 0.00000);
  19307. CreateDynamicObject(1776, 138.67079, 1116.17371, 531.29559, 0.00000, 0.00000, 0.00000);
  19308. CreateDynamicObject(1536, 114.49542, 1113.25586, 530.27441, 0.00000, 0.00000, 0.00000);
  19309. CreateDynamicObject(1536, 127.30031, 1113.21472, 530.27441, 0.00000, 0.00000, 0.00000);
  19310. CreateDynamicObject(19379, 142.08961, 1096.71240, 533.76501, 0.00000, 90.00000, 0.00000);
  19311. CreateDynamicObject(19379, 142.11040, 1106.17957, 533.77100, 0.00000, 90.00000, 0.00000);
  19312. CreateDynamicObject(19379, 142.10101, 1115.62122, 533.77301, 0.00000, 90.00000, 0.00000);
  19313. CreateDynamicObject(19379, 132.30190, 1114.64856, 533.77502, 0.00000, 90.00000, 0.00000);
  19314. CreateDynamicObject(19379, 121.99330, 1114.64441, 533.77301, 0.00000, 90.00000, 0.00000);
  19315. CreateDynamicObject(19379, 111.87560, 1114.64026, 533.77502, 0.00000, 90.00000, 0.00000);
  19316. CreateDynamicObject(19379, 109.17750, 1107.13855, 533.77301, 0.00000, 90.00000, 0.00000);
  19317. CreateDynamicObject(19379, 109.18620, 1097.55298, 533.77502, 0.00000, 90.00000, 0.00000);
  19318. CreateDynamicObject(19379, 117.32070, 1090.59680, 533.77301, 0.00000, 90.00000, 0.00000);
  19319. CreateDynamicObject(19379, 127.82350, 1090.58374, 533.77502, 0.00000, 90.00000, 0.00000);
  19320. CreateDynamicObject(19379, 135.60220, 1090.58838, 533.77100, 0.00000, 90.00000, 0.00000);
  19321. CreateDynamicObject(19454, 115.62560, 1101.58276, 534.97791, 0.00000, 45.00000, 0.00000);
  19322. CreateDynamicObject(19454, 115.62793, 1111.15210, 534.97791, 0.00000, 45.00000, 0.00000);
  19323. CreateDynamicObject(19454, 115.62869, 1092.26245, 534.97791, 0.00000, 45.00000, 0.00000);
  19324. CreateDynamicObject(19454, 119.26988, 1096.59265, 534.97791, 0.00000, 45.00000, 90.00000);
  19325. CreateDynamicObject(19454, 128.86475, 1096.59167, 534.97791, 0.00000, 45.00000, 90.00000);
  19326. CreateDynamicObject(19454, 138.40860, 1096.57214, 534.97791, 0.00000, 45.00000, 90.00000);
  19327. CreateDynamicObject(19454, 135.64600, 1100.10974, 534.97791, 0.00000, 134.00000, 0.00000);
  19328. CreateDynamicObject(19454, 135.63617, 1109.42273, 534.97791, 0.00000, 134.00000, 0.00000);
  19329. CreateDynamicObject(19454, 132.16199, 1108.62390, 534.97791, 0.00000, 134.00000, 90.00000);
  19330. CreateDynamicObject(19454, 122.63538, 1108.62158, 534.97791, 0.00000, 134.00000, 90.00000);
  19331. CreateDynamicObject(19454, 113.23528, 1108.62549, 534.97791, 0.00000, 134.00000, 90.00000);
  19332. CreateDynamicObject(3851, 122.49400, 1099.75952, 536.20520, 0.00000, 90.00000, 90.00000);
  19333. CreateDynamicObject(3851, 122.49060, 1103.74939, 536.20319, 0.00000, 90.00000, 90.00000);
  19334. CreateDynamicObject(3851, 122.46804, 1107.65796, 536.20520, 0.00000, 90.00000, 90.00000);
  19335. CreateDynamicObject(3851, 133.76593, 1099.80408, 536.20923, 0.00000, 90.00000, 270.00000);
  19336. CreateDynamicObject(3851, 133.69357, 1103.72632, 536.20721, 0.00000, 90.00000, 90.00000);
  19337. CreateDynamicObject(3851, 133.77928, 1107.68640, 536.20319, 0.00000, 90.00000, 90.00000);
  19338. CreateDynamicObject(14604, 129.49469, 1091.40381, 531.14410, 0.00000, 0.00000, 90.00000);
  19339. CreateDynamicObject(14604, 139.02293, 1091.41394, 531.14410, 0.00000, 0.00000, 90.00000);
  19340. CreateDynamicObject(14604, 120.19371, 1091.40466, 531.14410, 0.00000, 0.00000, 90.00000);
  19341. CreateDynamicObject(1722, 143.20032, 1113.64319, 530.24573, 0.00000, 0.00000, 90.00000);
  19342. CreateDynamicObject(1722, 143.19011, 1114.44873, 530.24628, 0.00000, 0.00000, 90.00000);
  19343. CreateDynamicObject(1722, 143.20047, 1115.30127, 530.24622, 0.00000, 0.00000, 90.00000);
  19344. CreateDynamicObject(1722, 142.26004, 1116.34290, 530.24579, 0.00000, 0.00000, 180.00000);
  19345. CreateDynamicObject(1722, 141.35948, 1116.30200, 530.24579, 0.00000, 0.00000, 180.00000);
  19346. CreateDynamicObject(2082, 142.62309, 1115.68152, 530.24670, 0.00000, 0.00000, 0.00000);
  19347. CreateDynamicObject(2854, 142.94212, 1116.10400, 530.74310, 0.00000, 0.00000, 341.63055);
  19348. CreateDynamicObject(2011, 139.88695, 1115.98315, 530.24506, 0.00000, 0.00000, 0.00000);
  19349. CreateDynamicObject(1549, 143.02838, 1112.83582, 530.24652, 0.00000, 0.00000, 90.00000);
  19350. CreateDynamicObject(2010, 111.97650, 1112.83801, 530.24548, 0.00000, 0.00000, 0.00000);
  19351. CreateDynamicObject(19450, 140.33904, 1096.14893, 528.14587, 0.00000, 0.00000, 180.00000);
  19352. CreateDynamicObject(19377, 142.11330, 1105.17847, 526.35321, 0.00000, 90.00000, 0.00000);
  19353. CreateDynamicObject(19450, 143.44560, 1103.92468, 531.60571, 0.00000, 0.00000, 0.00000);
  19354. CreateDynamicObject(19450, 143.43307, 1104.31189, 528.14587, 0.00000, 0.00000, 0.00000);
  19355. CreateDynamicObject(19450, 143.43233, 1095.75171, 528.14587, 0.00000, 0.00000, 0.00000);
  19356. CreateDynamicObject(19379, 112.94600, 1087.97253, 533.77698, 0.00000, 90.00000, 0.00000);
  19357. CreateDynamicObject(19377, 145.44911, 1095.91614, 529.95880, 0.00000, 90.00000, 0.00000);
  19358. CreateDynamicObject(19377, 145.25360, 1093.57092, 529.96082, 0.00000, 90.00000, 0.00000);
  19359. CreateDynamicObject(19450, 140.27440, 1103.93079, 531.97791, 0.00000, 0.00000, 0.00000);
  19360. CreateDynamicObject(19450, 140.27980, 1096.92285, 531.97791, 0.00000, 0.00000, 0.00000);
  19361. CreateDynamicObject(19450, 144.21477, 1091.81763, 531.97791, 0.00000, 0.00000, 90.00000);
  19362. CreateDynamicObject(19450, 143.44524, 1104.04932, 531.97791, 0.00000, 0.00000, 0.00000);
  19363. CreateDynamicObject(19450, 145.14032, 1100.67163, 531.97791, 0.00000, 0.00000, 90.00000);
  19364. CreateDynamicObject(19450, 140.29176, 1103.91882, 531.97791, 0.00000, 0.00000, 0.00000);
  19365. CreateDynamicObject(19450, 140.28751, 1099.33887, 524.66052, 0.00000, 0.00000, 0.00000);
  19366. CreateDynamicObject(19388, 142.01030, 1100.68762, 528.14587, 0.00000, 0.00000, 90.00000);
  19367. CreateDynamicObject(2886, 140.85306, 1100.70117, 528.07343, 0.00000, 0.00000, 180.00000);
  19368. CreateDynamicObject(1536, 142.78467, 1100.68640, 526.44043, 0.00000, 0.00000, 75.00000);
  19369. CreateDynamicObject(19388, 140.28903, 1093.00366, 524.66052, 0.00000, 0.00000, 0.00000);
  19370. CreateDynamicObject(19377, 138.24370, 1092.36133, 522.83350, 0.00000, 90.00000, 0.00000);
  19371. CreateDynamicObject(19377, 138.24451, 1101.89868, 522.83148, 0.00000, 90.00000, 0.00000);
  19372. CreateDynamicObject(19377, 138.26080, 1111.43579, 522.83350, 0.00000, 90.00000, 0.00000);
  19373. CreateDynamicObject(19377, 128.06461, 1109.92236, 522.82953, 0.00000, 90.00000, 0.00000);
  19374. CreateDynamicObject(19377, 128.07579, 1100.29578, 522.83551, 0.00000, 90.00000, 0.00000);
  19375. CreateDynamicObject(19377, 128.07312, 1091.23816, 522.83148, 0.00000, 90.00000, 0.00000);
  19376. CreateDynamicObject(19450, 135.54425, 1091.48877, 524.66052, 0.00000, 0.00000, 90.00000);
  19377. CreateDynamicObject(19450, 143.40021, 1088.80066, 524.66052, 0.00000, 0.00000, 90.00000);
  19378. CreateDynamicObject(19450, 125.92052, 1091.49451, 524.66052, 0.00000, 0.00000, 90.00000);
  19379. CreateDynamicObject(19388, 141.97325, 1091.68042, 524.66052, 0.00000, 0.00000, 90.00000);
  19380. CreateDynamicObject(19358, 138.67682, 1087.18726, 524.66052, 0.00000, 0.00000, 0.00000);
  19381. CreateDynamicObject(19388, 138.68344, 1084.03223, 524.66052, 0.00000, 0.00000, 0.00000);
  19382. CreateDynamicObject(19385, 140.28984, 1085.25476, 524.66052, 0.00000, 0.00000, 90.00000);
  19383. CreateDynamicObject(19385, 143.47412, 1085.25293, 524.66052, 0.00000, 0.00000, 90.00000);
  19384. CreateDynamicObject(19385, 146.64734, 1085.24963, 524.66052, 0.00000, 0.00000, 90.00000);
  19385. CreateDynamicObject(19385, 138.69080, 1084.03247, 524.66248, 0.00000, 0.00000, 0.00000);
  19386. CreateDynamicObject(19355, 138.69785, 1087.13940, 524.66052, 0.00000, 0.00000, 0.00000);
  19387. CreateDynamicObject(19447, 143.54721, 1088.74988, 524.66052, 0.00000, 0.00000, 90.00000);
  19388. CreateDynamicObject(19355, 141.68327, 1086.77551, 524.66052, 0.00000, 0.00000, 0.00000);
  19389. CreateDynamicObject(19355, 141.67004, 1087.09839, 524.66052, 0.00000, 0.00000, 0.00000);
  19390. CreateDynamicObject(19447, 143.52057, 1082.50903, 524.66052, 0.00000, 0.00000, 90.00000);
  19391. CreateDynamicObject(19355, 148.16312, 1086.85205, 524.66052, 0.00000, 0.00000, 0.00000);
  19392. CreateDynamicObject(19355, 148.16469, 1088.76746, 524.66052, 0.00000, 0.00000, 0.00000);
  19393. CreateDynamicObject(19355, 144.96552, 1086.84717, 524.66052, 0.00000, 0.00000, 0.00000);
  19394. CreateDynamicObject(19355, 144.95012, 1087.26794, 524.66052, 0.00000, 0.00000, 0.00000);
  19395. CreateDynamicObject(19447, 148.18352, 1087.19287, 524.66052, 0.00000, 0.00000, 0.00000);
  19396. CreateDynamicObject(19302, 140.18980, 1085.21912, 524.15747, 0.00000, 0.00000, 0.00000);
  19397. CreateDynamicObject(19302, 143.38164, 1085.24597, 524.15747, 0.00000, 0.00000, 0.00000);
  19398. CreateDynamicObject(19302, 146.55701, 1085.25659, 524.15747, 0.00000, 0.00000, 0.00000);
  19399. CreateDynamicObject(19377, 143.75160, 1083.44604, 522.83148, 0.00000, 90.00000, 0.00000);
  19400. CreateDynamicObject(19377, 148.67390, 1090.22339, 522.82953, 0.00000, 90.00000, 0.00000);
  19401. CreateDynamicObject(1771, 143.26036, 1087.97412, 523.32465, 0.00000, 0.00000, 90.00000);
  19402. CreateDynamicObject(1771, 140.20673, 1087.95862, 523.32458, 0.00000, 0.00000, 90.00000);
  19403. CreateDynamicObject(1771, 146.60081, 1087.96973, 523.32458, 0.00000, 0.00000, 90.00000);
  19404. CreateDynamicObject(2602, 145.53918, 1085.67456, 523.36853, 0.00000, 0.00000, 180.00000);
  19405. CreateDynamicObject(2602, 142.34212, 1085.69116, 523.36853, 0.00000, 0.00000, 180.00000);
  19406. CreateDynamicObject(2602, 139.24156, 1085.70129, 523.36853, 0.00000, 0.00000, 180.00000);
  19407. CreateDynamicObject(1495, 138.72729, 1083.30469, 522.91858, 0.00000, 0.00000, 90.00000);
  19408. CreateDynamicObject(19377, 133.31830, 1083.48254, 522.82953, 0.00000, 90.00000, 0.00000);
  19409. CreateDynamicObject(19388, 133.77499, 1088.80090, 524.66052, 0.00000, 0.00000, 90.00000);
  19410. CreateDynamicObject(19358, 136.98422, 1088.79785, 524.66052, 0.00000, 0.00000, 90.00000);
  19411. CreateDynamicObject(19359, 133.91905, 1081.94104, 521.99481, 0.00000, 0.00000, 90.00000);
  19412. CreateDynamicObject(19359, 131.98703, 1081.96216, 521.99280, 0.00000, 0.00000, 90.00000);
  19413. CreateDynamicObject(1722, 135.03220, 1082.08691, 522.91711, 0.00000, 0.00000, 0.00000);
  19414. CreateDynamicObject(1722, 134.31194, 1082.10254, 522.91705, 0.00000, 0.00000, 0.00000);
  19415. CreateDynamicObject(1722, 133.63879, 1082.11487, 522.91705, 0.00000, 0.00000, 0.00000);
  19416. CreateDynamicObject(1722, 132.14066, 1082.13123, 522.91693, 0.00000, 0.00000, 0.00000);
  19417. CreateDynamicObject(2010, 132.93507, 1082.44189, 522.91675, 0.00000, 0.00000, 0.00000);
  19418. CreateDynamicObject(1722, 131.43916, 1082.12134, 522.91669, 0.00000, 0.00000, 0.00000);
  19419. CreateDynamicObject(1722, 130.77658, 1082.11987, 522.91687, 0.00000, 0.00000, 0.00000);
  19420. CreateDynamicObject(19358, 130.60133, 1088.80103, 524.66052, 0.00000, 0.00000, 90.00000);
  19421. CreateDynamicObject(19358, 128.77126, 1088.79529, 524.66052, 0.00000, 0.00000, 90.00000);
  19422. CreateDynamicObject(19358, 127.24265, 1087.27637, 524.66052, 0.00000, 0.00000, 0.00000);
  19423. CreateDynamicObject(19388, 127.24377, 1084.09473, 524.66052, 0.00000, 0.00000, 0.00000);
  19424. CreateDynamicObject(19450, 130.63762, 1079.06775, 524.66052, 0.00000, 0.00000, 45.00000);
  19425. CreateDynamicObject(19450, 135.27208, 1078.98413, 524.66052, 0.00000, 0.00000, 135.00000);
  19426. CreateDynamicObject(19450, 132.39598, 1078.92346, 524.66052, 0.00000, 0.00000, 90.00000);
  19427. CreateDynamicObject(19379, 139.86205, 1086.73352, 526.35522, 0.00000, 90.00000, 0.00000);
  19428. CreateDynamicObject(19379, 143.18819, 1083.98682, 526.35498, 0.00000, 90.00000, 0.00000);
  19429. CreateDynamicObject(19379, 129.75432, 1086.60962, 526.34723, 0.00000, 90.00000, 0.00000);
  19430. CreateDynamicObject(2191, 138.09259, 1088.18298, 522.91998, 0.00000, 0.00000, 270.00000);
  19431. CreateDynamicObject(2198, 135.08080, 1086.37158, 522.91553, 0.00000, 0.00000, 90.00000);
  19432. CreateDynamicObject(2198, 136.94574, 1085.53943, 522.91699, 0.00000, 0.00000, 180.00000);
  19433. CreateDynamicObject(2162, 138.59955, 1086.56250, 524.52618, 0.00000, 0.00000, 270.00000);
  19434. CreateDynamicObject(1806, 136.55389, 1087.21790, 522.91748, 0.00000, 0.00000, 90.00000);
  19435. CreateDynamicObject(1806, 136.36046, 1086.26489, 522.91791, 0.00000, 0.00000, 180.00000);
  19436. CreateDynamicObject(1495, 127.22569, 1083.35547, 522.91858, 0.00000, 0.00000, 90.00000);
  19437. CreateDynamicObject(19385, 127.22547, 1084.09802, 524.66052, 0.00000, 0.00000, 0.00000);
  19438. CreateDynamicObject(19447, 122.34933, 1082.73865, 524.66052, 0.00000, 0.00000, 90.00000);
  19439. CreateDynamicObject(19385, 125.62576, 1085.35486, 524.66052, 0.00000, 0.00000, 90.00000);
  19440. CreateDynamicObject(19385, 122.59427, 1085.34717, 524.66052, 0.00000, 0.00000, 90.00000);
  19441. CreateDynamicObject(19385, 119.60833, 1085.33813, 524.66052, 0.00000, 0.00000, 90.00000);
  19442. CreateDynamicObject(19447, 122.36819, 1088.57544, 524.66052, 0.00000, 0.00000, 90.00000);
  19443. CreateDynamicObject(19355, 118.08986, 1087.00342, 524.66052, 0.00000, 0.00000, 0.00000);
  19444. CreateDynamicObject(19355, 121.20937, 1086.87244, 524.66052, 0.00000, 0.00000, 0.00000);
  19445. CreateDynamicObject(19355, 127.17812, 1087.03943, 524.66052, 0.00000, 0.00000, 0.00000);
  19446. CreateDynamicObject(19355, 124.09195, 1086.87817, 524.66052, 0.00000, 0.00000, 0.00000);
  19447. CreateDynamicObject(19355, 118.10075, 1083.70496, 524.66052, 0.00000, 0.00000, 0.00000);
  19448. CreateDynamicObject(19377, 122.89516, 1083.72327, 522.82550, 0.00000, 90.00000, 0.00000);
  19449. CreateDynamicObject(19302, 125.52569, 1085.38574, 524.15747, 0.00000, 0.00000, 0.00000);
  19450. CreateDynamicObject(19302, 122.50881, 1085.33984, 524.15747, 0.00000, 0.00000, 0.00000);
  19451. CreateDynamicObject(19302, 119.50971, 1085.33813, 524.15747, 0.00000, 0.00000, 0.00000);
  19452. CreateDynamicObject(1771, 122.69280, 1087.83594, 523.32458, 0.00000, 0.00000, 90.00000);
  19453. CreateDynamicObject(1771, 125.63544, 1087.78369, 523.32458, 0.00000, 0.00000, 90.00000);
  19454. CreateDynamicObject(1771, 119.58060, 1087.82861, 523.32458, 0.00000, 0.00000, 90.00000);
  19455. CreateDynamicObject(2602, 118.56097, 1085.76880, 523.31781, 0.00000, 0.00000, 180.00000);
  19456. CreateDynamicObject(2602, 118.56097, 1085.76880, 523.31781, 0.00000, 0.00000, 180.00000);
  19457. CreateDynamicObject(2602, 123.66084, 1085.91602, 523.31781, 0.00000, 0.00000, 270.00000);
  19458. CreateDynamicObject(2602, 124.59685, 1085.78748, 523.31781, 0.00000, 0.00000, 180.00000);
  19459. CreateDynamicObject(19379, 122.76500, 1083.81946, 526.34723, 0.00000, 90.00000, 0.00000);
  19460. CreateDynamicObject(2164, 127.83847, 1088.66809, 522.91803, 0.00000, 0.00000, 0.00000);
  19461. CreateDynamicObject(2198, 131.05338, 1085.50879, 522.91669, 0.00000, 0.00000, 180.00000);
  19462. CreateDynamicObject(2198, 131.88240, 1087.34937, 522.91791, 0.00000, 0.00000, 270.00000);
  19463. CreateDynamicObject(1806, 130.38409, 1086.01379, 522.91882, 0.00000, 0.00000, 180.00000);
  19464. CreateDynamicObject(1806, 130.60435, 1086.75427, 522.91901, 0.00000, 0.00000, 270.00000);
  19465. CreateDynamicObject(2162, 129.82295, 1088.66077, 524.44781, 0.00000, 0.00000, 0.00000);
  19466. CreateDynamicObject(1235, 129.51157, 1088.33447, 523.42841, 0.00000, 0.00000, 0.00000);
  19467. CreateDynamicObject(2186, 132.19023, 1079.52148, 522.91211, 0.00000, 0.00000, 180.00000);
  19468. CreateDynamicObject(2611, 134.25023, 1079.12964, 525.20880, 0.00000, 0.00000, 180.00000);
  19469. CreateDynamicObject(2612, 131.57513, 1079.06165, 525.20880, 0.00000, 0.00000, 180.00000);
  19470. CreateDynamicObject(2612, 141.33829, 1088.95300, 525.00580, 0.00000, 0.00000, 180.00000);
  19471. CreateDynamicObject(2002, 133.03841, 1079.39392, 522.91150, 0.00000, 0.00000, 180.00000);
  19472. CreateDynamicObject(19377, 120.45150, 1092.68396, 522.82751, 0.00000, 90.00000, 0.00000);
  19473. CreateDynamicObject(19450, 119.22319, 1091.50220, 524.66052, 0.00000, 0.00000, 90.00000);
  19474. CreateDynamicObject(19450, 122.49615, 1088.80066, 524.66052, 0.00000, 0.00000, 90.00000);
  19475. CreateDynamicObject(19450, 122.38882, 1088.80640, 524.66052, 0.00000, 0.00000, 90.00000);
  19476. CreateDynamicObject(19447, 109.78014, 1088.71851, 524.66052, 0.00000, 0.00000, 90.00000);
  19477. CreateDynamicObject(19447, 107.40337, 1087.01196, 524.66052, 0.00000, 0.00000, 0.00000);
  19478. CreateDynamicObject(19447, 109.78036, 1082.78894, 524.66052, 0.00000, 0.00000, 90.00000);
  19479. CreateDynamicObject(19350, 117.54076, 1086.52673, 523.06812, 0.00000, 0.00000, 0.00000);
  19480. CreateDynamicObject(19385, 114.58030, 1086.91223, 524.66248, 0.00000, 0.00000, 0.00000);
  19481. CreateDynamicObject(19355, 114.57392, 1084.34558, 524.66052, 0.00000, 0.00000, 0.00000);
  19482. CreateDynamicObject(19355, 114.57330, 1089.78906, 524.66052, 0.00000, 0.00000, 0.00000);
  19483. CreateDynamicObject(19377, 113.61063, 1087.70313, 522.82349, 0.00000, 90.00000, 0.00000);
  19484. CreateDynamicObject(19455, 109.76550, 1086.96875, 522.83551, 0.00000, 90.00000, 90.00000);
  19485. CreateDynamicObject(19455, 109.80690, 1083.82361, 522.83752, 0.00000, 90.00000, 90.00000);
  19486. CreateDynamicObject(19379, 106.59776, 1086.73401, 526.35120, 0.00000, 90.00000, 0.00000);
  19487. CreateDynamicObject(2509, 113.90943, 1082.88464, 524.90875, 0.00000, 0.00000, 180.00000);
  19488. CreateDynamicObject(2509, 112.58274, 1082.87439, 524.90881, 0.00000, 0.00000, 180.00000);
  19489. CreateDynamicObject(2509, 111.23864, 1082.88440, 524.90881, 0.00000, 0.00000, 180.00000);
  19490. CreateDynamicObject(2509, 109.89198, 1082.88013, 524.90881, 0.00000, 0.00000, 180.00000);
  19491. CreateDynamicObject(2509, 108.54980, 1082.87830, 524.90881, 0.00000, 0.00000, 180.00000);
  19492. CreateDynamicObject(356, 113.62602, 1082.92297, 525.36688, 0.00000, 0.00000, 0.00000);
  19493. CreateDynamicObject(356, 113.69150, 1082.91870, 524.85394, 0.00000, 0.00000, 0.00000);
  19494. CreateDynamicObject(356, 113.67495, 1082.92761, 524.36243, 0.00000, 0.00000, 0.00000);
  19495. CreateDynamicObject(353, 112.42621, 1082.93323, 525.30804, 0.00000, 0.00000, 0.00000);
  19496. CreateDynamicObject(353, 112.42774, 1082.94812, 524.75189, 0.00000, 0.00000, 0.00000);
  19497. CreateDynamicObject(353, 112.43629, 1082.93494, 524.25012, 0.00000, 0.00000, 0.00000);
  19498. CreateDynamicObject(346, 111.39957, 1082.89844, 525.51910, 0.00000, 0.00000, 0.00000);
  19499. CreateDynamicObject(346, 110.87761, 1082.89294, 525.51910, 0.00000, 0.00000, 0.00000);
  19500. CreateDynamicObject(346, 111.34773, 1082.93823, 524.97650, 0.00000, 0.00000, 0.00000);
  19501. CreateDynamicObject(346, 110.83324, 1082.89844, 524.97650, 0.00000, 0.00000, 0.00000);
  19502. CreateDynamicObject(348, 111.33148, 1082.91931, 524.55145, 0.00000, 0.00000, 0.00000);
  19503. CreateDynamicObject(348, 110.77611, 1082.88245, 524.55151, 0.00000, 0.00000, 0.00000);
  19504. CreateDynamicObject(348, 111.31147, 1082.89697, 524.24365, 0.00000, 0.00000, 0.00000);
  19505. CreateDynamicObject(348, 110.75915, 1082.90479, 524.24371, 0.00000, 0.00000, 0.00000);
  19506. CreateDynamicObject(349, 109.61875, 1082.95581, 525.41864, 0.00000, 0.00000, 0.00000);
  19507. CreateDynamicObject(349, 109.63561, 1082.95593, 524.90588, 0.00000, 0.00000, 0.00000);
  19508. CreateDynamicObject(349, 109.57643, 1082.95569, 524.42761, 0.00000, 0.00000, 0.00000);
  19509. CreateDynamicObject(358, 108.33376, 1082.92090, 525.32642, 0.00000, 0.00000, 0.00000);
  19510. CreateDynamicObject(358, 108.34093, 1082.92822, 524.81311, 0.00000, 0.00000, 0.00000);
  19511. CreateDynamicObject(358, 108.32735, 1082.95239, 524.29095, 0.00000, 0.00000, 0.00000);
  19512. CreateDynamicObject(941, 107.61217, 1083.73694, 523.31549, 0.00000, 0.00000, 90.00000);
  19513. CreateDynamicObject(941, 107.60360, 1086.05933, 523.31348, 0.00000, 0.00000, 90.00000);
  19514. CreateDynamicObject(365, 107.61600, 1083.12244, 523.87091, 0.00000, 90.00000, 180.00000);
  19515. CreateDynamicObject(365, 107.60783, 1083.42773, 523.87091, 0.00000, 90.00000, 180.00000);
  19516. CreateDynamicObject(365, 107.63793, 1083.69971, 523.87091, 0.00000, 90.00000, 180.00000);
  19517. CreateDynamicObject(365, 107.66192, 1083.97290, 523.87091, 0.00000, 90.00000, 180.00000);
  19518. CreateDynamicObject(334, 107.93712, 1084.30762, 523.76257, 90.00000, 90.00000, 180.00000);
  19519. CreateDynamicObject(334, 107.93470, 1084.59167, 523.76257, 90.00000, 90.00000, 180.00000);
  19520. CreateDynamicObject(334, 107.94098, 1084.88391, 523.76257, 90.00000, 90.00000, 180.00000);
  19521. CreateDynamicObject(334, 107.94121, 1085.15076, 523.76257, 90.00000, 90.00000, 180.00000);
  19522. CreateDynamicObject(1672, 107.58466, 1085.35498, 523.88739, 0.00000, 0.00000, 0.00000);
  19523. CreateDynamicObject(1672, 107.61528, 1085.57410, 523.88739, 0.00000, 0.00000, 0.00000);
  19524. CreateDynamicObject(1672, 107.86807, 1085.35779, 523.88739, 0.00000, 0.00000, 0.00000);
  19525. CreateDynamicObject(1672, 107.87142, 1085.58337, 523.88739, 0.00000, 0.00000, 0.00000);
  19526. CreateDynamicObject(1672, 107.61620, 1085.82019, 523.88739, 0.00000, 0.00000, 0.00000);
  19527. CreateDynamicObject(1672, 107.87934, 1085.82117, 523.88739, 0.00000, 0.00000, 0.00000);
  19528. CreateDynamicObject(18673, 108.70865, 1086.39771, 525.41656, 0.00000, 0.00000, 0.00000);
  19529. CreateDynamicObject(18637, 107.47650, 1085.98010, 524.39148, 90.00000, 0.00000, 90.00000);
  19530. CreateDynamicObject(18637, 107.47083, 1086.50732, 524.39148, 90.00000, 0.00000, 90.00000);
  19531. CreateDynamicObject(2949, 114.60330, 1086.18176, 522.91071, 0.00000, 0.00000, 265.00000);
  19532. CreateDynamicObject(2164, 129.76744, 1088.91943, 522.91681, 0.00000, 0.00000, 180.00000);
  19533. CreateDynamicObject(2162, 127.90387, 1088.91638, 524.31885, 0.00000, 0.00000, 180.00000);
  19534. CreateDynamicObject(19379, 132.05751, 1102.08972, 522.83948, 0.00000, 90.00000, 0.00000);
  19535. CreateDynamicObject(19379, 121.96914, 1102.09583, 522.83752, 0.00000, 90.00000, 0.00000);
  19536. CreateDynamicObject(19379, 120.28329, 1102.09827, 522.83948, 0.00000, 90.00000, 0.00000);
  19537. CreateDynamicObject(19377, 120.45150, 1092.68396, 19377.00000, 0.00000, 90.00000, 0.00000);
  19538. CreateDynamicObject(19377, 117.69498, 1111.59216, 522.82751, 0.00000, 90.00000, 0.00000);
  19539. CreateDynamicObject(19450, 140.30443, 1108.88367, 524.66052, 0.00000, 0.00000, 0.00000);
  19540. CreateDynamicObject(19450, 139.04089, 1112.40698, 524.66052, 0.00000, 0.00000, 90.00000);
  19541. CreateDynamicObject(19450, 129.47171, 1112.41052, 524.66052, 0.00000, 0.00000, 90.00000);
  19542. CreateDynamicObject(2183, 131.65504, 1098.90417, 522.92242, 0.00000, 0.00000, 0.00000);
  19543. CreateDynamicObject(2183, 124.81044, 1098.81653, 522.92242, 0.00000, 0.00000, 0.00000);
  19544. CreateDynamicObject(2183, 131.51552, 1103.80627, 522.92242, 0.00000, 0.00000, 0.00000);
  19545. CreateDynamicObject(2183, 124.93020, 1103.76660, 522.92242, 0.00000, 0.00000, 0.00000);
  19546. CreateDynamicObject(2183, 118.27032, 1098.91064, 522.92242, 0.00000, 0.00000, 0.00000);
  19547. CreateDynamicObject(2183, 118.16262, 1103.81274, 522.92242, 0.00000, 0.00000, 0.00000);
  19548. CreateDynamicObject(19450, 119.97842, 1112.41125, 524.66052, 0.00000, 0.00000, 90.00000);
  19549. CreateDynamicObject(19450, 110.36918, 1112.41296, 524.66052, 0.00000, 0.00000, 90.00000);
  19550. CreateDynamicObject(19450, 111.33980, 1097.14661, 524.66052, 0.00000, 0.00000, 0.00000);
  19551. CreateDynamicObject(19450, 111.33373, 1106.62268, 524.66052, 0.00000, 0.00000, 0.00000);
  19552. CreateDynamicObject(19450, 111.32936, 1110.53687, 524.66052, 0.00000, 0.00000, 0.00000);
  19553. CreateDynamicObject(19377, 114.61030, 1097.12939, 522.82550, 0.00000, 90.00000, 0.00000);
  19554. CreateDynamicObject(19377, 115.36610, 1106.18958, 522.82147, 0.00000, 90.00000, 0.00000);
  19555. CreateDynamicObject(19377, 116.35430, 1111.23169, 522.82349, 0.00000, 90.00000, 0.00000);
  19556. CreateDynamicObject(2190, 133.50935, 1104.44312, 523.72797, 0.00000, 0.00000, 0.00000);
  19557. CreateDynamicObject(2190, 132.51724, 1104.48755, 523.72961, 0.00000, 0.00000, 180.00000);
  19558. CreateDynamicObject(2190, 133.01036, 1104.88794, 523.72961, 0.00000, 0.00000, 90.00000);
  19559. CreateDynamicObject(2190, 132.94148, 1103.97461, 523.72961, 0.00000, 0.00000, 270.00000);
  19560. CreateDynamicObject(2190, 133.65422, 1099.54834, 523.72821, 0.00000, 0.00000, 0.00000);
  19561. CreateDynamicObject(2190, 133.12120, 1100.05347, 523.72961, 0.00000, 0.00000, 90.00000);
  19562. CreateDynamicObject(2190, 132.62589, 1099.55652, 523.72968, 0.00000, 0.00000, 180.00000);
  19563. CreateDynamicObject(2190, 133.14821, 1099.00549, 523.72961, 0.00000, 0.00000, 270.00000);
  19564. CreateDynamicObject(2190, 126.89330, 1104.46387, 523.72980, 0.00000, 0.00000, 0.00000);
  19565. CreateDynamicObject(2190, 126.41243, 1104.96570, 523.72980, 0.00000, 0.00000, 90.00000);
  19566. CreateDynamicObject(2190, 125.89957, 1104.39526, 523.72968, 0.00000, 0.00000, 180.00000);
  19567. CreateDynamicObject(2190, 126.45559, 1103.82300, 523.72961, 0.00000, 0.00000, 270.00000);
  19568. CreateDynamicObject(2190, 126.77824, 1099.50549, 523.72888, 0.00000, 0.00000, 0.00000);
  19569. CreateDynamicObject(2190, 126.33763, 1099.97217, 523.72931, 0.00000, 0.00000, 90.00000);
  19570. CreateDynamicObject(2190, 125.79580, 1099.50891, 523.72931, 0.00000, 0.00000, 180.00000);
  19571. CreateDynamicObject(2190, 126.35437, 1098.98938, 523.72961, 0.00000, 0.00000, 270.00000);
  19572. CreateDynamicObject(2190, 120.12819, 1104.46716, 523.72858, 0.00000, 0.00000, 0.00000);
  19573. CreateDynamicObject(2190, 119.61075, 1104.94983, 523.72852, 0.00000, 0.00000, 90.00000);
  19574. CreateDynamicObject(2190, 119.18522, 1104.43079, 523.72858, 0.00000, 0.00000, 180.00000);
  19575. CreateDynamicObject(2190, 119.63222, 1103.97913, 523.72852, 0.00000, 0.00000, 270.00000);
  19576. CreateDynamicObject(2190, 120.29862, 1099.61438, 523.72894, 0.00000, 0.00000, 0.00000);
  19577. CreateDynamicObject(2190, 119.72598, 1100.12378, 523.72882, 0.00000, 0.00000, 90.00000);
  19578. CreateDynamicObject(2190, 119.25583, 1099.55176, 523.72913, 0.00000, 0.00000, 180.00000);
  19579. CreateDynamicObject(2190, 119.75493, 1099.06812, 523.72888, 0.00000, 0.00000, 270.00000);
  19580. CreateDynamicObject(19450, 109.66398, 1091.50818, 524.66052, 0.00000, 0.00000, 90.00000);
  19581. CreateDynamicObject(19450, 111.32271, 1096.33679, 524.66052, 0.00000, 0.00000, 0.00000);
  19582. CreateDynamicObject(19379, 112.34518, 1086.75513, 522.83148, 0.00000, 90.00000, 0.00000);
  19583. CreateDynamicObject(19388, 117.62875, 1089.92566, 524.66052, 0.00000, 0.00000, 0.00000);
  19584. CreateDynamicObject(19461, 117.61053, 1083.55151, 524.66052, 0.00000, 0.00000, 0.00000);
  19585. CreateDynamicObject(19397, 117.60355, 1077.75562, 524.66052, 0.00000, 0.00000, 0.00000);
  19586. CreateDynamicObject(19397, 114.59400, 1086.91138, 524.66052, 0.00000, 0.00000, 0.00000);
  19587. CreateDynamicObject(19461, 114.59531, 1080.87073, 524.66052, 0.00000, 0.00000, 0.00000);
  19588. CreateDynamicObject(19397, 117.61980, 1089.91467, 524.66248, 0.00000, 0.00000, 0.00000);
  19589. CreateDynamicObject(19369, 114.59068, 1089.92932, 524.66052, 0.00000, 0.00000, 0.00000);
  19590. CreateDynamicObject(19369, 115.93106, 1091.49622, 524.66052, 0.00000, 0.00000, 90.00000);
  19591. CreateDynamicObject(19379, 122.78049, 1086.60803, 526.34521, 0.00000, 90.00000, 0.00000);
  19592. CreateDynamicObject(19379, 112.33240, 1081.18127, 522.82953, 0.00000, 90.00000, 0.00000);
  19593. CreateDynamicObject(19461, 119.47045, 1076.34277, 524.66052, 0.00000, 0.00000, 90.00000);
  19594. CreateDynamicObject(19455, 119.29734, 1077.90198, 522.83148, 0.00000, 90.00000, 0.00000);
  19595. CreateDynamicObject(19455, 122.54670, 1077.84192, 522.82751, 0.00000, 90.00000, 0.00000);
  19596. CreateDynamicObject(19455, 125.42399, 1077.89221, 522.82953, 0.00000, 90.00000, 0.00000);
  19597. CreateDynamicObject(19461, 126.05796, 1077.89453, 524.66052, 0.00000, 0.00000, 0.00000);
  19598. CreateDynamicObject(19461, 121.36431, 1076.33752, 524.66052, 0.00000, 0.00000, 90.00000);
  19599. CreateDynamicObject(19461, 122.34753, 1082.18201, 524.66052, 0.00000, 0.00000, 90.00000);
  19600. CreateDynamicObject(14842, 125.07040, 1077.98047, 524.24432, 0.00000, 0.00000, 180.00000);
  19601. CreateDynamicObject(19369, 123.82243, 1077.27954, 523.11548, 0.00000, 0.00000, 0.00000);
  19602. CreateDynamicObject(19369, 123.81551, 1078.30652, 523.11548, 0.00000, 0.00000, 0.00000);
  19603. CreateDynamicObject(14782, 120.76030, 1081.72729, 523.92371, 0.00000, 0.00000, 0.00000);
  19604. CreateDynamicObject(14401, 129.59520, 1062.60181, 522.92242, 0.00000, 0.00000, 0.00000);
  19605. CreateDynamicObject(2844, 118.44782, 1079.69006, 522.91913, 0.00000, 0.00000, 0.00000);
  19606. CreateDynamicObject(19379, 123.37051, 1076.98132, 526.34320, 0.00000, 90.00000, 0.00000);
  19607. CreateDynamicObject(19379, 112.87190, 1078.56494, 526.34918, 0.00000, 90.00000, 0.00000);
  19608. CreateDynamicObject(3109, 116.86426, 1076.45776, 524.03528, 0.00000, 0.00000, 90.00000);
  19609. CreateDynamicObject(640, 134.47305, 1107.18835, 523.92700, 0.00000, 0.00000, 90.00000);
  19610. CreateDynamicObject(640, 129.20180, 1107.18445, 523.92902, 0.00000, 0.00000, 90.00000);
  19611. CreateDynamicObject(640, 123.85225, 1107.18494, 523.92700, 0.00000, 0.00000, 90.00000);
  19612. CreateDynamicObject(640, 118.50583, 1107.18713, 523.92700, 0.00000, 0.00000, 90.00000);
  19613. CreateDynamicObject(640, 137.25410, 1104.83179, 523.92499, 0.00000, 0.00000, 0.00000);
  19614. CreateDynamicObject(640, 137.24770, 1099.99646, 523.92902, 0.00000, 0.00000, 0.00000);
  19615. CreateDynamicObject(640, 115.52139, 1104.82532, 523.92902, 0.00000, 0.00000, 0.00000);
  19616. CreateDynamicObject(640, 115.49360, 1099.91638, 523.92499, 0.00000, 0.00000, 0.00000);
  19617. CreateDynamicObject(19458, 120.60987, 1106.85046, 521.93335, 0.00000, 0.00000, 90.00000);
  19618. CreateDynamicObject(19458, 130.16440, 1106.85352, 521.93530, 0.00000, 0.00000, 90.00000);
  19619. CreateDynamicObject(19458, 136.91629, 1102.13611, 521.93329, 0.00000, 0.00000, 0.00000);
  19620. CreateDynamicObject(19458, 132.17490, 1106.85583, 521.93127, 0.00000, 0.00000, 90.00000);
  19621. CreateDynamicObject(19458, 115.88650, 1102.05762, 521.93127, 0.00000, 0.00000, 0.00000);
  19622. CreateDynamicObject(19458, 132.80293, 1107.50037, 521.93329, 0.00000, 0.00000, 90.00000);
  19623. CreateDynamicObject(19458, 123.22170, 1107.49023, 521.93127, 0.00000, 0.00000, 90.00000);
  19624. CreateDynamicObject(19458, 119.85920, 1107.45935, 521.93329, 0.00000, 0.00000, 90.00000);
  19625. CreateDynamicObject(19458, 115.13110, 1102.73181, 521.93127, 0.00000, 0.00000, 0.00000);
  19626. CreateDynamicObject(19458, 115.13950, 1102.04370, 521.93530, 0.00000, 0.00000, 0.00000);
  19627. CreateDynamicObject(19458, 137.59819, 1102.78137, 521.93127, 0.00000, 0.00000, 0.00000);
  19628. CreateDynamicObject(19458, 137.58470, 1102.13293, 521.93127, 0.00000, 0.00000, 0.00000);
  19629. CreateDynamicObject(19439, 137.24181, 1097.37561, 521.92932, 0.00000, 0.00000, 90.00000);
  19630. CreateDynamicObject(19439, 115.56210, 1097.28723, 521.92932, 0.00000, 0.00000, 90.00000);
  19631. CreateDynamicObject(2010, 139.84850, 1092.20276, 526.44379, 0.00000, 0.00000, 0.00000);
  19632. CreateDynamicObject(2186, 121.58313, 1089.31726, 526.43542, 0.00000, 0.00000, 90.00000);
  19633. CreateDynamicObject(2164, 121.19000, 1087.27039, 526.43542, 0.00000, 0.00000, 90.00000);
  19634. CreateDynamicObject(2161, 121.13370, 1085.92786, 526.92352, 0.00000, 0.00000, 90.00000);
  19635. CreateDynamicObject(2167, 121.12644, 1084.99695, 526.43591, 0.00000, 0.00000, 90.00000);
  19636. CreateDynamicObject(1721, 121.32310, 1082.57239, 526.43561, 0.00000, 0.00000, 270.00000);
  19637. CreateDynamicObject(1721, 121.33524, 1081.85022, 526.43982, 0.00000, 0.00000, 270.00000);
  19638. CreateDynamicObject(1721, 121.32806, 1081.14038, 526.43982, 0.00000, 0.00000, 270.00000);
  19639. CreateDynamicObject(2288, 121.65150, 1076.76404, 528.26093, 0.00000, 0.00000, 90.00000);
  19640. CreateDynamicObject(2288, 121.64648, 1080.19482, 528.26093, 0.00000, 0.00000, 90.00000);
  19641. CreateDynamicObject(2288, 121.62092, 1083.69287, 528.26093, 0.00000, 0.00000, 90.00000);
  19642. CreateDynamicObject(2163, 126.13692, 1088.92883, 524.31708, 0.00000, 0.00000, 180.00000);
  19643. CreateDynamicObject(2611, 139.28130, 1088.93518, 525.00586, 0.00000, 0.00000, 180.00000);
  19644. CreateDynamicObject(1536, 115.02440, 1112.32153, 522.84723, 0.00000, 0.00000, 0.00000);
  19645. CreateDynamicObject(1536, 124.52151, 1112.33472, 522.84723, 0.00000, 0.00000, 0.00000);
  19646. CreateDynamicObject(1536, 135.28743, 1112.30444, 522.84723, 0.00000, 0.00000, 0.00000);
  19647. CreateDynamicObject(1806, 120.46580, 1103.44873, 522.92572, 0.00000, 0.00000, 0.00000);
  19648. CreateDynamicObject(1806, 118.54528, 1102.86108, 522.92633, 0.00000, 0.00000, 0.00000);
  19649. CreateDynamicObject(1806, 125.29755, 1103.42285, 522.92450, 0.00000, 0.00000, 0.00000);
  19650. CreateDynamicObject(1806, 127.17112, 1102.85657, 522.92651, 0.00000, 0.00000, 0.00000);
  19651. CreateDynamicObject(1806, 131.85538, 1102.62451, 522.92645, 0.00000, 0.00000, 0.00000);
  19652. CreateDynamicObject(1806, 134.11975, 1102.70569, 522.92651, 0.00000, 0.00000, 0.00000);
  19653. CreateDynamicObject(1494, 117.61360, 1077.02429, 522.91479, 0.00000, 0.00000, 90.00000);
  19654. CreateDynamicObject(1806, 134.39928, 1098.24060, 522.92682, 0.00000, 0.00000, 0.00000);
  19655. CreateDynamicObject(1806, 132.04057, 1097.80676, 522.92676, 0.00000, 0.00000, 0.00000);
  19656. CreateDynamicObject(1806, 127.34973, 1098.48083, 522.92499, 0.00000, 0.00000, 0.00000);
  19657. CreateDynamicObject(1806, 125.24721, 1098.57507, 522.92694, 0.00000, 0.00000, 0.00000);
  19658. CreateDynamicObject(1806, 120.78054, 1097.81726, 522.92700, 0.00000, 0.00000, 0.00000);
  19659. CreateDynamicObject(1806, 118.61246, 1097.92798, 522.91486, 0.00000, 0.00000, 0.00000);
  19660. CreateDynamicObject(1806, 118.83954, 1100.65100, 522.92670, 0.00000, 0.00000, 180.00000);
  19661. CreateDynamicObject(1806, 120.68443, 1101.28748, 522.92651, 0.00000, 0.00000, 180.00000);
  19662. CreateDynamicObject(1806, 120.53580, 1106.16870, 522.92712, 0.00000, 0.00000, 180.00000);
  19663. CreateDynamicObject(1806, 118.61662, 1105.83459, 522.92719, 0.00000, 0.00000, 180.00000);
  19664. CreateDynamicObject(1806, 127.45905, 1105.63965, 522.92719, 0.00000, 0.00000, 180.00000);
  19665. CreateDynamicObject(1806, 125.43990, 1105.97021, 522.92517, 0.00000, 0.00000, 180.00000);
  19666. CreateDynamicObject(1806, 132.01773, 1105.47009, 522.92657, 0.00000, 0.00000, 180.00000);
  19667. CreateDynamicObject(1806, 133.85490, 1106.18787, 522.92657, 0.00000, 0.00000, 180.00000);
  19668. CreateDynamicObject(1806, 125.46176, 1100.56982, 522.92603, 0.00000, 0.00000, 180.00000);
  19669. CreateDynamicObject(1806, 127.15005, 1100.57532, 522.92603, 0.00000, 0.00000, 180.00000);
  19670. CreateDynamicObject(1806, 132.23492, 1101.26782, 522.92603, 0.00000, 0.00000, 180.00000);
  19671. CreateDynamicObject(1806, 134.19078, 1100.52246, 522.92609, 0.00000, 0.00000, 180.00000);
  19672. CreateDynamicObject(1893, 127.79394, 1122.01599, 530.12433, 0.00000, 0.00000, 0.00000);
  19673. CreateDynamicObject(1893, 121.90017, 1119.07129, 530.12433, 0.00000, 0.00000, 0.00000);
  19674. CreateDynamicObject(1893, 136.46642, 1111.21460, 530.12433, 0.00000, 0.00000, 0.00000);
  19675. CreateDynamicObject(1893, 138.22479, 1094.21094, 530.12433, 0.00000, 0.00000, 0.00000);
  19676. CreateDynamicObject(1893, 112.61430, 1093.88098, 530.12433, 0.00000, 0.00000, 0.00000);
  19677. CreateDynamicObject(1893, 112.33164, 1110.95923, 530.12433, 0.00000, 0.00000, 0.00000);
  19678. CreateDynamicObject(19377, 128.07291, 1091.25818, 522.82953, 0.00000, 90.00000, 0.00000);
  19679. CreateDynamicObject(1893, 115.61887, 1077.37854, 526.35510, 0.00000, 0.00000, 0.00000);
  19680. CreateDynamicObject(1893, 115.54539, 1090.51758, 526.35510, 0.00000, 0.00000, 0.00000);
  19681. CreateDynamicObject(19377, 135.01331, 1087.05396, 526.35718, 0.00000, 90.00000, 0.00000);
  19682. CreateDynamicObject(19377, 115.49480, 1086.95300, 526.36121, 0.00000, 90.00000, 0.00000);
  19683. CreateDynamicObject(19358, 143.49193, 1093.16736, 524.66052, 0.00000, 0.00000, 0.00000);
  19684. CreateDynamicObject(19358, 148.15970, 1090.46484, 524.66052, 0.00000, 0.00000, 0.00000);
  19685. CreateDynamicObject(19358, 149.74225, 1091.98328, 524.66052, 0.00000, 0.00000, 90.00000);
  19686. CreateDynamicObject(19388, 152.30147, 1091.98096, 524.66052, 0.00000, 0.00000, 90.00000);
  19687. CreateDynamicObject(19450, 148.36438, 1087.25635, 524.66052, 0.00000, 0.00000, 0.00000);
  19688. CreateDynamicObject(19450, 153.18039, 1085.63928, 524.66052, 0.00000, 0.00000, 90.00000);
  19689. CreateDynamicObject(19404, 153.81474, 1090.34680, 524.66052, 0.00000, 0.00000, 0.00000);
  19690. CreateDynamicObject(19388, 153.81126, 1087.21033, 524.66052, 0.00000, 0.00000, 0.00000);
  19691. CreateDynamicObject(19358, 155.47127, 1091.98291, 524.66052, 0.00000, 0.00000, 90.00000);
  19692. CreateDynamicObject(19358, 158.63158, 1091.97644, 524.66052, 0.00000, 0.00000, 90.00000);
  19693. CreateDynamicObject(19450, 158.65688, 1087.20190, 524.66052, 0.00000, 0.00000, 0.00000);
  19694. CreateDynamicObject(19358, 157.47470, 1085.63818, 524.66052, 0.00000, 0.00000, 90.00000);
  19695. CreateDynamicObject(19358, 149.55676, 1095.09998, 524.66052, 0.00000, 0.00000, 90.00000);
  19696. CreateDynamicObject(19358, 152.72308, 1095.10168, 524.66052, 0.00000, 0.00000, 90.00000);
  19697. CreateDynamicObject(19358, 154.29224, 1095.10022, 524.66052, 0.00000, 0.00000, 90.00000);
  19698. CreateDynamicObject(19431, 156.39772, 1095.63220, 524.66052, 0.00000, 0.00000, 135.00000);
  19699. CreateDynamicObject(19358, 156.94632, 1097.73291, 524.66052, 0.00000, 0.00000, 0.00000);
  19700. CreateDynamicObject(19450, 160.05165, 1096.58350, 524.66052, 0.00000, 0.00000, 0.00000);
  19701. CreateDynamicObject(19388, 156.94150, 1100.07361, 524.66052, 0.00000, 0.00000, 0.00000);
  19702. CreateDynamicObject(19358, 156.93982, 1102.65613, 524.66052, 0.00000, 0.00000, 0.00000);
  19703. CreateDynamicObject(19431, 156.40536, 1104.76636, 524.66052, 0.00000, 0.00000, 45.00000);
  19704. CreateDynamicObject(19358, 154.30132, 1105.29602, 524.66052, 0.00000, 0.00000, 90.00000);
  19705. CreateDynamicObject(19450, 148.03619, 1099.99170, 524.66052, 0.00000, 0.00000, 0.00000);
  19706. CreateDynamicObject(19358, 151.17171, 1105.28809, 524.66052, 0.00000, 0.00000, 90.00000);
  19707. CreateDynamicObject(19450, 148.03619, 1099.99170, 524.66052, 0.00000, 0.00000, 0.00000);
  19708. CreateDynamicObject(19358, 149.56276, 1105.28821, 524.66052, 0.00000, 0.00000, 90.00000);
  19709. CreateDynamicObject(19358, 148.03302, 1103.76416, 524.66052, 0.00000, 0.00000, 0.00000);
  19710. CreateDynamicObject(19358, 143.45268, 1096.16895, 524.66052, 0.00000, 0.00000, 0.00000);
  19711. CreateDynamicObject(19358, 143.45113, 1099.32642, 524.66052, 0.00000, 0.00000, 0.00000);
  19712. CreateDynamicObject(19379, 153.34775, 1090.41516, 522.83350, 0.00000, 90.00000, 0.00000);
  19713. CreateDynamicObject(19377, 148.67390, 1090.22339, 522.82953, 0.00000, 90.00000, 0.00000);
  19714. CreateDynamicObject(19379, 153.37360, 1100.02271, 522.83148, 0.00000, 90.00000, 0.00000);
  19715. CreateDynamicObject(19379, 153.36803, 1107.65918, 522.83350, 0.00000, 90.00000, 0.00000);
  19716. CreateDynamicObject(19379, 163.74850, 1096.60425, 522.83551, 0.00000, 90.00000, 0.00000);
  19717. CreateDynamicObject(19379, 163.76160, 1106.05566, 522.82953, 0.00000, 90.00000, 0.00000);
  19718. CreateDynamicObject(19377, 142.83791, 1099.51770, 522.82550, 0.00000, 90.00000, 0.00000);
  19719. CreateDynamicObject(19377, 145.50880, 1105.20056, 522.82349, 0.00000, 90.00000, 0.00000);
  19720. CreateDynamicObject(14633, 159.39264, 1092.22693, 522.93939, 0.00000, 0.00000, 0.00000);
  19721. CreateDynamicObject(14633, 156.95302, 1092.24011, 522.93939, 0.00000, 0.00000, 0.00000);
  19722. CreateDynamicObject(14633, 154.77795, 1092.19080, 522.93939, 0.00000, 0.00000, 0.00000);
  19723. CreateDynamicObject(2004, 148.26164, 1105.25488, 524.62860, 0.00000, 0.00000, 0.00000);
  19724. CreateDynamicObject(2004, 149.06619, 1105.26880, 524.62860, 0.00000, 0.00000, 0.00000);
  19725. CreateDynamicObject(2004, 149.87918, 1105.25769, 524.62860, 0.00000, 0.00000, 0.00000);
  19726. CreateDynamicObject(2004, 150.65648, 1105.25610, 524.62860, 0.00000, 0.00000, 0.00000);
  19727. CreateDynamicObject(2162, 153.90099, 1105.20703, 524.39233, 0.00000, 0.00000, 0.00000);
  19728. CreateDynamicObject(2164, 152.11411, 1105.12085, 522.96771, 0.00000, 0.00000, 0.00000);
  19729. CreateDynamicObject(1502, 153.84804, 1086.45325, 522.92029, 0.00000, 0.00000, 90.00000);
  19730. CreateDynamicObject(19466, 153.75325, 1090.38513, 524.86115, 0.00000, 0.00000, 0.00000);
  19731. CreateDynamicObject(941, 156.25655, 1089.56860, 523.22882, 0.00000, 0.00000, 0.00000);
  19732. CreateDynamicObject(1810, 157.42293, 1091.03418, 522.92065, 0.00000, 0.00000, 0.00000);
  19733. CreateDynamicObject(1810, 156.35863, 1091.00659, 522.92078, 0.00000, 0.00000, 0.00000);
  19734. CreateDynamicObject(1810, 157.04457, 1088.21655, 522.92059, 0.00000, 0.00000, 180.00000);
  19735. CreateDynamicObject(1810, 155.84166, 1088.19531, 522.92078, 0.00000, 0.00000, 180.00000);
  19736. CreateDynamicObject(2395, 153.92993, 1089.02515, 525.39313, 0.00000, 90.00000, 90.00000);
  19737. CreateDynamicObject(2616, 153.97124, 1090.58081, 524.64349, 0.00000, 0.00000, 90.00000);
  19738. CreateDynamicObject(1502, 151.49146, 1091.96423, 522.92017, 0.00000, 0.00000, 0.00000);
  19739. CreateDynamicObject(19450, 160.05551, 1106.15039, 524.66052, 0.00000, 0.00000, 0.00000);
  19740. CreateDynamicObject(19450, 155.39815, 1108.15234, 524.66052, 0.00000, 0.00000, 90.00000);
  19741. CreateDynamicObject(19450, 152.97398, 1108.15649, 524.66052, 0.00000, 0.00000, 90.00000);
  19742. CreateDynamicObject(19388, 147.13269, 1108.15125, 524.66052, 0.00000, 0.00000, 90.00000);
  19743. CreateDynamicObject(19450, 143.44354, 1105.62732, 524.66052, 0.00000, 0.00000, 0.00000);
  19744. CreateDynamicObject(19358, 144.06485, 1108.13904, 524.66052, 0.00000, 0.00000, 90.00000);
  19745. CreateDynamicObject(2132, 149.62859, 1108.74207, 522.91803, 0.00000, 0.00000, 180.00000);
  19746. CreateDynamicObject(2339, 150.63507, 1108.75708, 522.91827, 0.00000, 0.00000, 180.00000);
  19747. CreateDynamicObject(2341, 151.63144, 1108.75806, 522.91962, 0.00000, 0.00000, 270.00000);
  19748. CreateDynamicObject(2131, 151.65384, 1110.73352, 522.91870, 0.00000, 0.00000, 270.00000);
  19749. CreateDynamicObject(19379, 148.74100, 1112.94019, 522.83148, 0.00000, 90.00000, 0.00000);
  19750. CreateDynamicObject(19450, 152.17758, 1113.07324, 524.66052, 0.00000, 0.00000, 0.00000);
  19751. CreateDynamicObject(19450, 148.49275, 1114.75769, 524.66052, 0.00000, 0.00000, 90.00000);
  19752. CreateDynamicObject(19450, 143.83797, 1112.95959, 524.66052, 0.00000, 0.00000, 0.00000);
  19753. CreateDynamicObject(2357, 145.82921, 1113.27588, 523.31128, 0.00000, 0.00000, 90.00000);
  19754. CreateDynamicObject(1811, 147.55078, 1112.39380, 523.53900, 0.00000, 0.00000, 0.00000);
  19755. CreateDynamicObject(1811, 147.53619, 1113.27075, 523.53900, 0.00000, 0.00000, 0.00000);
  19756. CreateDynamicObject(1811, 147.54543, 1114.17981, 523.53900, 0.00000, 0.00000, 0.00000);
  19757. CreateDynamicObject(1811, 147.55481, 1111.40552, 523.53900, 0.00000, 0.00000, 0.00000);
  19758. CreateDynamicObject(1811, 144.58090, 1114.25549, 523.53900, 0.00000, 0.00000, 180.00000);
  19759. CreateDynamicObject(1811, 144.60440, 1113.33557, 523.53900, 0.00000, 0.00000, 180.00000);
  19760. CreateDynamicObject(1811, 144.63412, 1112.41809, 523.53900, 0.00000, 0.00000, 180.00000);
  19761. CreateDynamicObject(1811, 144.63850, 1111.50366, 523.53900, 0.00000, 0.00000, 180.00000);
  19762. CreateDynamicObject(2011, 151.59322, 1114.35168, 522.91968, 0.00000, 0.00000, 0.00000);
  19763. CreateDynamicObject(2339, 151.63832, 1111.72083, 522.91827, 0.00000, 0.00000, 270.00000);
  19764. CreateDynamicObject(2339, 151.64465, 1112.72668, 522.91827, 0.00000, 0.00000, 270.00000);
  19765. CreateDynamicObject(2171, 153.24712, 1088.99829, 522.96661, 0.00000, 0.00000, 270.00000);
  19766. CreateDynamicObject(1811, 148.88960, 1090.63098, 523.53900, 0.00000, 0.00000, 180.00000);
  19767. CreateDynamicObject(1811, 148.86800, 1089.62524, 523.53900, 0.00000, 0.00000, 180.00000);
  19768. CreateDynamicObject(1811, 148.86447, 1088.70398, 523.53900, 0.00000, 0.00000, 180.00000);
  19769. CreateDynamicObject(2010, 149.00334, 1091.42139, 522.91956, 0.00000, 0.00000, 0.00000);
  19770. CreateDynamicObject(2164, 148.43547, 1086.90527, 522.91937, 0.00000, 0.00000, 89.00000);
  19771. CreateDynamicObject(1235, 148.80070, 1086.06372, 523.42200, 0.00000, 0.00000, 0.00000);
  19772. CreateDynamicObject(1811, 152.00299, 1088.48083, 523.53900, 0.00000, 0.00000, 180.00000);
  19773. CreateDynamicObject(1841, 153.59280, 1085.98755, 525.61072, 0.00000, 0.00000, 315.29449);
  19774. CreateDynamicObject(1841, 148.71240, 1091.65930, 525.61072, 0.00000, 0.00000, 135.00000);
  19775. CreateDynamicObject(2011, 158.21964, 1086.07996, 522.91998, 0.00000, 0.00000, 0.00000);
  19776. CreateDynamicObject(2010, 144.44936, 1108.62146, 522.91840, 0.00000, 0.00000, 0.00000);
  19777. CreateDynamicObject(2258, 159.91444, 1104.97144, 525.14484, 0.00000, 0.00000, 270.00000);
  19778. CreateDynamicObject(2256, 159.93555, 1099.32312, 525.14478, 0.00000, 0.00000, 270.00000);
  19779. CreateDynamicObject(2254, 159.91310, 1093.68604, 525.14478, 0.00000, 0.00000, 270.00000);
  19780. CreateDynamicObject(2010, 147.72517, 1089.30408, 522.91620, 0.00000, 0.00000, 0.00000);
  19781. CreateDynamicObject(1753, 144.00346, 1096.37036, 522.90839, 0.00000, 0.00000, 90.00000);
  19782. CreateDynamicObject(1753, 143.99747, 1100.11182, 522.91278, 0.00000, 0.00000, 90.00000);
  19783. CreateDynamicObject(2011, 144.06058, 1099.22278, 522.91302, 0.00000, 0.00000, 0.00000);
  19784. CreateDynamicObject(1893, 137.27281, 1093.72888, 533.99402, 0.00000, 0.00000, 0.00000);
  19785. CreateDynamicObject(1893, 112.30385, 1093.55640, 533.99402, 0.00000, 0.00000, 0.00000);
  19786. CreateDynamicObject(1893, 112.73598, 1111.78076, 533.99402, 0.00000, 0.00000, 0.00000);
  19787. CreateDynamicObject(1893, 134.01772, 1113.13757, 533.99402, 0.00000, 0.00000, 0.00000);
  19788. CreateDynamicObject(1893, 138.06387, 1108.88831, 533.99402, 0.00000, 0.00000, 0.00000);
  19789. CreateDynamicObject(2002, 144.06509, 1095.40369, 522.91278, 0.00000, 0.00000, 90.00000);
  19790. CreateDynamicObject(2204, 147.86580, 1101.56238, 522.86481, 0.00000, 0.00000, 270.00000);
  19791. CreateDynamicObject(2011, 143.93982, 1107.59778, 522.90900, 0.00000, 0.00000, 0.00000);
  19792. CreateDynamicObject(2202, 147.45024, 1097.82983, 522.91229, 0.00000, 0.00000, 270.00000);
  19793. CreateDynamicObject(19377, 148.68404, 1096.53174, 526.35120, 0.00000, 90.00000, 0.00000);
  19794. CreateDynamicObject(19377, 153.02440, 1087.25476, 526.36121, 0.00000, 90.00000, 0.00000);
  19795. CreateDynamicObject(19377, 155.11079, 1096.62878, 526.35522, 0.00000, 90.00000, 0.00000);
  19796. CreateDynamicObject(19377, 155.12457, 1106.17920, 526.35120, 0.00000, 90.00000, 0.00000);
  19797. CreateDynamicObject(19377, 147.45889, 1106.17224, 526.34918, 0.00000, 90.00000, 0.00000);
  19798. CreateDynamicObject(19377, 147.98711, 1112.87793, 526.35321, 0.00000, 90.00000, 0.00000);
  19799. CreateDynamicObject(19379, 143.17439, 1086.93591, 526.35999, 0.00000, 90.00000, 0.00000);
  19800. CreateDynamicObject(19377, 163.16487, 1087.24902, 526.35120, 0.00000, 90.00000, 0.00000);
  19801. CreateDynamicObject(1753, 136.20561, 1091.93652, 522.91937, 0.00000, 0.00000, 180.00000);
  19802. CreateDynamicObject(1753, 133.12901, 1091.93201, 522.91699, 0.00000, 0.00000, 180.00000);
  19803. CreateDynamicObject(2164, 130.10321, 1091.59192, 522.91302, 0.00000, 0.00000, 180.00000);
  19804. CreateDynamicObject(2161, 128.35020, 1091.58850, 523.40619, 0.00000, 0.00000, 180.00000);
  19805. CreateDynamicObject(2204, 126.99130, 1091.64771, 522.90680, 0.00000, 0.00000, 180.00000);
  19806. CreateDynamicObject(1753, 123.97480, 1091.99524, 522.91107, 0.00000, 0.00000, 180.00000);
  19807. CreateDynamicObject(1753, 120.39085, 1091.99854, 522.91162, 0.00000, 0.00000, 180.00000);
  19808. CreateDynamicObject(2010, 121.13172, 1092.05566, 522.91211, 0.00000, 0.00000, 0.00000);
  19809. CreateDynamicObject(2011, 137.29774, 1092.03491, 522.91406, 0.00000, 0.00000, 0.00000);
  19810. CreateDynamicObject(1775, 117.32044, 1091.99011, 524.02850, 0.00000, 0.00000, 180.00000);
  19811. CreateDynamicObject(2186, 139.67596, 1096.39502, 522.90942, 0.00000, 0.00000, 270.00000);
  19812. CreateDynamicObject(2961, 140.21208, 1094.22070, 524.51532, 0.00000, 0.00000, 90.00000);
  19813. CreateDynamicObject(2961, 131.99838, 1088.88831, 524.46216, 0.00000, 0.00000, 0.00000);
  19814. CreateDynamicObject(2961, 117.21534, 1076.44763, 524.19275, 0.00000, 0.00000, 0.00000);
  19815. CreateDynamicObject(2961, 158.71095, 1108.06311, 524.59766, 0.00000, 0.00000, 0.00000);
  19816. CreateDynamicObject(2961, 140.18350, 1107.41309, 531.76611, 0.00000, 0.00000, 270.00000);
  19817. CreateDynamicObject(2607, 156.48082, 1102.62085, 523.31061, 0.00000, 0.00000, 90.00000);
  19818. // Unity Station
  19819. CreateDynamicObject(970, 1833.556396, -1852.723266, 13.028117, 0.000000, 0.000000, 90.000000);
  19820. CreateDynamicObject(970, 1833.556396, -1856.843872, 13.028117, 0.000000, 0.000000, 90.000000);
  19821. CreateDynamicObject(1346, 1849.468627, -1865.735839, 13.859744, 0.000000, 0.000000, -180.000000);
  19822. CreateDynamicObject(1256, 1852.849853, -1866.003417, 13.212806, 0.000000, 0.000000, -90.000000);
  19823. CreateDynamicObject(19121, 1847.915161, -1866.747680, 13.129741, 0.000000, 0.000000, 178.599319);
  19824. CreateDynamicObject(1258, 1847.487304, -1860.316406, 13.198123, 0.000000, 0.000000, 0.000000);
  19825. CreateDynamicObject(1288, 1848.786743, -1860.206298, 13.125104, 0.000000, 0.000000, 180.000000);
  19826. CreateDynamicObject(1285, 1849.481201, -1860.200317, 13.135103, 0.000000, 0.000000, 180.000000);
  19827. CreateDynamicObject(19121, 1844.551879, -1874.999511, 13.169745, 0.000000, 0.000000, 178.450714);
  19828. CreateDynamicObject(19121, 1841.112548, -1874.906616, 13.169745, 0.000000, 0.000000, 178.450714);
  19829. CreateDynamicObject(19121, 1837.823486, -1874.817749, 13.169745, 0.000000, 0.000000, 178.450714);
  19830. CreateDynamicObject(19121, 1834.584472, -1874.730346, 13.169745, 0.000000, 0.000000, 178.450714);
  19831. CreateDynamicObject(1256, 1852.848266, -1860.393310, 13.212806, 0.000000, 0.000000, 90.000000);
  19832. //palomino bank
  19833. retexture = CreateDynamicObject(19461, 2304.015380, -13.456198, 14.093700, 0.000000, 0.000000, 0.000000, 65005);
  19834. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  19835. retexture = CreateDynamicObject(19461, 2304.015380, -3.824898, 14.093700, 0.000000, 0.000000, 0.000000, 65005);
  19836. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  19837. retexture = CreateDynamicObject(19461, 2308.761718, -18.217369, 14.093700, 0.000000, 0.000000, 90.000000, 65005);
  19838. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  19839. retexture = CreateDynamicObject(19461, 2318.395019, -18.217399, 14.093700, 0.000000, 0.000000, 90.000000, 65005);
  19840. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  19841. retexture = CreateDynamicObject(19461, 2322.743652, -10.143440, 14.093700, 0.000000, 0.000000, 0.000000, 65005);
  19842. SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000);
  19843. retexture = CreateDynamicObject(19461, 2321.097412, -3.824898, 14.093700, 0.000000, 0.000000, 0.000000, 65005);
  19844. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  19845. retexture = CreateDynamicObject(19461, 2309.296386, -7.428558, 14.093700, 0.000000, 0.000000, 90.000000, 65005);
  19846. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  19847. retexture = CreateDynamicObject(19461, 2322.203857, -10.283679, 14.093700, 0.000000, 0.000000, 90.000000, 65005);
  19848. SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000);
  19849. retexture = CreateDynamicObject(19461, 2325.335693, -14.866700, 14.093700, 0.000000, 0.000000, 90.000000, 65005);
  19850. SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000);
  19851. retexture = CreateDynamicObject(19461, 2306.836914, -8.693730, 14.093700, 0.000000, 0.000000, 0.000000, 65005);
  19852. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  19853. retexture = CreateDynamicObject(19461, 2302.108154, -13.425000, 14.093700, 0.000000, 0.000000, 90.000000, 65005);
  19854. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  19855. retexture = CreateDynamicObject(19368, 2309.261230, -10.110300, 12.311800, 0.000000, 90.000000, 90.000000, 65005);
  19856. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFC8C8C8);
  19857. retexture = CreateDynamicObject(18762, 2307.234863, -14.007300, 11.432498, 0.000000, 0.000000, 0.000000, 65005);
  19858. SetDynamicObjectMaterial(retexture, 0, 12855, "cunte_cop", "sw_brick05", 0x00000000);
  19859. retexture = CreateDynamicObject(18762, 2307.234863, -14.989298, 10.772488, 0.000000, 0.000000, 0.000000, 65005);
  19860. SetDynamicObjectMaterial(retexture, 0, 12855, "cunte_cop", "sw_brick05", 0x00000000);
  19861. retexture = CreateDynamicObject(18762, 2307.232910, -15.748398, 10.770500, 0.000000, 0.000000, 0.000000, 65005);
  19862. SetDynamicObjectMaterial(retexture, 0, 12855, "cunte_cop", "sw_brick05", 0x00000000);
  19863. retexture = CreateDynamicObject(19940, 2307.262695, -16.700099, 13.155798, 90.000000, 0.000000, 0.000000, 65005);
  19864. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  19865. retexture = CreateDynamicObject(19940, 2307.262695, -16.698099, 13.674698, 90.000000, 0.000000, 0.000000, 65005);
  19866. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  19867. retexture = CreateDynamicObject(19940, 2307.262695, -17.700099, 13.155798, 90.000000, 0.000000, 0.000000, 65005);
  19868. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  19869. retexture = CreateDynamicObject(19940, 2307.262695, -17.698099, 13.674698, 90.000000, 0.000000, 0.000000, 65005);
  19870. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  19871. retexture = CreateDynamicObject(19939, 2307.260742, -17.191600, 14.659600, 0.000000, 0.000000, 0.000000, 65005);
  19872. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  19873. retexture = CreateDynamicObject(19461, 2313.744140, -10.137398, 11.892378, 0.000000, 0.000000, 0.000000, 65005);
  19874. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  19875. retexture = CreateDynamicObject(19397, 2313.744140, -16.558300, 14.093850, 0.000000, 0.000000, 0.000000, 65005);
  19876. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  19877. retexture = CreateDynamicObject(19442, 2314.460449, -15.039698, 14.093700, 0.000000, 0.000000, 90.000000, 65005);
  19878. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  19879. retexture = CreateDynamicObject(19442, 2314.460449, -13.039698, 14.093700, 0.000000, 0.000000, 90.000000, 65005);
  19880. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  19881. retexture = CreateDynamicObject(19442, 2314.460449, -11.039698, 14.093700, 0.000000, 0.000000, 90.000000, 65005);
  19882. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  19883. retexture = CreateDynamicObject(19461, 2313.742187, -6.310400, 14.093700, 0.000000, 0.000000, 0.000000, 65005);
  19884. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  19885. retexture = CreateDynamicObject(19461, 2317.396728, -10.137398, 14.093700, 0.000000, 0.000000, 0.000000, 65005);
  19886. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  19887. retexture = CreateDynamicObject(19442, 2316.063232, -11.039698, 14.093700, 0.000000, 0.000000, 90.000000, 65005);
  19888. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  19889. retexture = CreateDynamicObject(19442, 2316.583984, -11.041700, 14.093700, 0.000000, 0.000000, 90.000000, 65005);
  19890. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  19891. retexture = CreateDynamicObject(19461, 2314.226562, -10.137398, 11.892398, 0.000000, 0.000000, 0.000000, 65005);
  19892. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  19893. retexture = CreateDynamicObject(19173, 2314.031250, -12.181400, 13.637100, 90.000000, 0.000000, 90.000000, 65005);
  19894. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  19895. SetDynamicObjectMaterial(retexture, 1, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  19896. retexture = CreateDynamicObject(19173, 2314.031250, -13.981498, 13.639100, 90.000000, 0.000000, 90.000000, 65005);
  19897. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  19898. SetDynamicObjectMaterial(retexture, 1, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  19899. retexture = CreateDynamicObject(19461, 2313.744140, -10.137398, 16.960859, 0.000000, 0.000000, 0.000000, 65005);
  19900. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  19901. retexture = CreateDynamicObject(19174, 2309.594970, -7.550260, 14.277540, 0.000000, 0.000000, 0.000000, 65005);
  19902. SetDynamicObjectMaterial(retexture, 0, 15041, "bigsfsave", "windo_blinds", 0x00000000);
  19903. retexture = CreateDynamicObject(19174, 2306.932373, -9.973990, 14.277500, 0.000000, 0.000000, 90.000000, 65005);
  19904. SetDynamicObjectMaterial(retexture, 0, 15041, "bigsfsave", "windo_blinds", 0x00000000);
  19905. retexture = CreateDynamicObject(1502, 2313.752929, -17.306100, 12.336000, 0.000000, 0.000000, 90.000000, 65005);
  19906. SetDynamicObjectMaterial(retexture, 1, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  19907. retexture = CreateDynamicObject(19461, 2321.995605, -19.693540, 14.093700, 0.000000, 0.000000, 0.000000, 65005);
  19908. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  19909. retexture = CreateDynamicObject(19175, 2310.539062, -18.132589, 14.225938, 0.000000, 0.000000, 180.000000, 65005);
  19910. SetDynamicObjectMaterial(retexture, 1, 19297, "matlights", "invisible", 0x00000000);
  19911. SetDynamicObjectMaterialText(retexture, 0, "Bank of Palomino", 40, "Ariel", 15, 1, 0xFF000000, 0x00000000, 1);
  19912. retexture = CreateDynamicObject(19175, 2310.539062, -18.132589, 13.875939, 0.000000, 0.000000, 180.000000, 65005);
  19913. SetDynamicObjectMaterial(retexture, 1, 19297, "matlights", "invisible", 0x00000000);
  19914. SetDynamicObjectMaterialText(retexture, 0, "Serving Los Santos since 1984", 80, "Ariel", 15, 1, 0xFF000000, 0x00000000, 1);
  19915. retexture = CreateDynamicObject(19175, 2310.539062, -18.132589, 14.885942, 0.000000, 0.000000, 180.000000, 65005);
  19916. SetDynamicObjectMaterial(retexture, 1, 19297, "matlights", "invisible", 0x00000000);
  19917. SetDynamicObjectMaterialText(retexture, 0, "____________", 40, "Ariel", 15, 1, 0xFF000000, 0x00000000, 1);
  19918. retexture = CreateDynamicObject(19893, 2307.321777, -15.362000, 13.271288, 0.000000, 0.000000, 64.620010, 65005);
  19919. SetDynamicObjectMaterial(retexture, 1, 3925, "weemap", "skyclouds", 0x00000000);
  19920. retexture = CreateDynamicObject(19893, 2314.061767, -14.599988, 13.645588, 0.000000, 0.000000, 115.499977, 65005);
  19921. SetDynamicObjectMaterial(retexture, 1, 3925, "weemap", "skyclouds", 0x00000000);
  19922. retexture = CreateDynamicObject(19893, 2314.102539, -11.831728, 13.645588, 0.000000, 0.000000, 66.599983, 65005);
  19923. SetDynamicObjectMaterial(retexture, 1, 3925, "weemap", "skyclouds", 0x00000000);
  19924. retexture = CreateDynamicObject(19397, 2318.914306, -14.866700, 14.093898, 0.000000, 0.000000, 90.000000, 65005);
  19925. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  19926. retexture = CreateDynamicObject(19461, 2321.072021, -21.123249, 14.093700, 0.000000, 0.000000, 0.000000, 65005);
  19927. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  19928. retexture = CreateDynamicObject(19461, 2325.801757, -16.393199, 14.093700, 0.000000, 0.000000, 90.000000, 65005);
  19929. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  19930. retexture = CreateDynamicObject(19922, 2321.909179, -14.049817, 12.355939, 0.000000, 0.000000, 360.000000, 65005);
  19931. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  19932. retexture = CreateDynamicObject(19940, 2322.849609, -11.427220, 14.826800, 0.000015, 0.000000, -0.000091, 65005);
  19933. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  19934. retexture = CreateDynamicObject(19940, 2320.109863, -10.161700, 14.826800, 0.000000, 0.000000, 90.000000, 65005);
  19935. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  19936. retexture = CreateDynamicObject(19940, 2322.108398, -10.161700, 14.826800, 0.000000, 0.000000, 90.000000, 65005);
  19937. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  19938. retexture = CreateDynamicObject(19940, 2320.109863, -10.161700, 14.524800, 0.000000, 0.000000, 90.000000, 65005);
  19939. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  19940. retexture = CreateDynamicObject(19940, 2322.108398, -10.161700, 14.524800, 0.000000, 0.000000, 90.000000, 65005);
  19941. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  19942. retexture = CreateDynamicObject(19940, 2322.108398, -10.161700, 14.222800, 0.000000, 0.000000, 90.000000, 65005);
  19943. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  19944. retexture = CreateDynamicObject(19940, 2322.108398, -10.161700, 13.920800, 0.000000, 0.000000, 90.000000, 65005);
  19945. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  19946. retexture = CreateDynamicObject(19940, 2322.108398, -10.161700, 13.618800, 0.000000, 0.000000, 90.000000, 65005);
  19947. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  19948. retexture = CreateDynamicObject(19940, 2322.108398, -10.161700, 13.316800, 0.000000, 0.000000, 90.000000, 65005);
  19949. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  19950. retexture = CreateDynamicObject(19940, 2320.109863, -10.161700, 14.222800, 0.000000, 0.000000, 90.000000, 65005);
  19951. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  19952. retexture = CreateDynamicObject(19940, 2320.109863, -10.161700, 13.920800, 0.000000, 0.000000, 90.000000, 65005);
  19953. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  19954. retexture = CreateDynamicObject(19940, 2320.109863, -10.161700, 13.618800, 0.000000, 0.000000, 90.000000, 65005);
  19955. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  19956. retexture = CreateDynamicObject(19940, 2320.109863, -10.161700, 13.316800, 0.000000, 0.000000, 90.000000, 65005);
  19957. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  19958. retexture = CreateDynamicObject(19940, 2319.126953, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65005);
  19959. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  19960. retexture = CreateDynamicObject(19940, 2322.645507, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65005);
  19961. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  19962. retexture = CreateDynamicObject(19461, 2318.071289, -10.137398, 14.093700, 0.000000, 0.000000, 0.000000, 65005);
  19963. SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000);
  19964. retexture = CreateDynamicObject(19397, 2318.916259, -14.862700, 14.091898, 0.000000, 0.000000, 90.000000, 65005);
  19965. SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000);
  19966. retexture = CreateDynamicObject(19461, 2322.203857, -10.291700, 11.558710, 0.000000, 0.000000, 90.000000, 65005);
  19967. SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000);
  19968. retexture = CreateDynamicObject(19940, 2319.641113, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65005);
  19969. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  19970. retexture = CreateDynamicObject(19940, 2320.155029, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65005);
  19971. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  19972. retexture = CreateDynamicObject(19940, 2320.669189, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65005);
  19973. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  19974. retexture = CreateDynamicObject(19940, 2321.183105, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65005);
  19975. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  19976. retexture = CreateDynamicObject(19940, 2321.697021, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65005);
  19977. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  19978. retexture = CreateDynamicObject(19940, 2322.211181, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65005);
  19979. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  19980. retexture = CreateDynamicObject(19448, 2323.946044, -10.289698, 13.087598, 0.000000, 0.000000, 90.000000, 65005);
  19981. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFEEEEEE);
  19982. retexture = CreateDynamicObject(19940, 2322.849609, -13.425755, 14.826800, 0.000015, 0.000000, -0.000091, 65005);
  19983. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  19984. retexture = CreateDynamicObject(19940, 2322.849609, -11.427220, 14.524800, 0.000015, 0.000000, -0.000091, 65005);
  19985. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  19986. retexture = CreateDynamicObject(19940, 2322.849609, -13.425755, 14.524800, 0.000015, 0.000000, -0.000091, 65005);
  19987. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  19988. retexture = CreateDynamicObject(1210, 2319.374267, -10.209368, 13.526000, 90.000000, 0.000000, 0.000000, 65005);
  19989. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  19990. retexture = CreateDynamicObject(1210, 2319.901367, -10.209400, 13.526000, 90.000000, 0.000000, 0.000000, 65005);
  19991. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  19992. retexture = CreateDynamicObject(1210, 2320.402343, -10.209400, 13.526000, 90.000000, 0.000000, 0.000000, 65005);
  19993. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  19994. retexture = CreateDynamicObject(1210, 2320.922363, -10.209400, 13.526000, 90.000000, 0.000000, 0.000000, 65005);
  19995. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  19996. retexture = CreateDynamicObject(1210, 2321.441406, -10.209400, 13.526000, 90.000000, 0.000000, 0.000000, 65005);
  19997. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  19998. retexture = CreateDynamicObject(1210, 2322.418945, -10.209400, 13.526000, 90.000000, 0.000000, 0.000000, 65005);
  19999. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20000. retexture = CreateDynamicObject(1210, 2322.418945, -10.209400, 13.826998, 90.000000, 0.000000, 0.000000, 65005);
  20001. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20002. retexture = CreateDynamicObject(1210, 2322.418945, -10.209400, 14.128000, 90.000000, 0.000000, 0.000000, 65005);
  20003. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20004. retexture = CreateDynamicObject(1210, 2322.418945, -10.209400, 14.428998, 90.000000, 0.000000, 0.000000, 65005);
  20005. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20006. retexture = CreateDynamicObject(1210, 2322.418945, -10.209400, 14.729998, 90.000000, 0.000000, 0.000000, 65005);
  20007. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20008. retexture = CreateDynamicObject(1210, 2321.959960, -10.209400, 13.826998, 90.000000, 0.000000, 0.000000, 65005);
  20009. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20010. retexture = CreateDynamicObject(1210, 2321.959960, -10.209400, 14.128000, 90.000000, 0.000000, 0.000000, 65005);
  20011. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20012. retexture = CreateDynamicObject(1210, 2321.959960, -10.209400, 14.428998, 90.000000, 0.000000, 0.000000, 65005);
  20013. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20014. retexture = CreateDynamicObject(1210, 2321.959960, -10.209400, 14.729998, 90.000000, 0.000000, 0.000000, 65005);
  20015. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20016. retexture = CreateDynamicObject(1210, 2321.959960, -10.209400, 13.526000, 90.000000, 0.000000, 0.000000, 65005);
  20017. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20018. retexture = CreateDynamicObject(1210, 2319.374267, -10.209400, 13.826998, 90.000000, 0.000000, 0.000000, 65005);
  20019. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20020. retexture = CreateDynamicObject(1210, 2319.374267, -10.209400, 14.128000, 90.000000, 0.000000, 0.000000, 65005);
  20021. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20022. retexture = CreateDynamicObject(1210, 2319.374267, -10.209400, 14.428998, 90.000000, 0.000000, 0.000000, 65005);
  20023. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20024. retexture = CreateDynamicObject(1210, 2319.374267, -10.209400, 14.729998, 90.000000, 0.000000, 0.000000, 65005);
  20025. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20026. retexture = CreateDynamicObject(1210, 2319.901367, -10.209400, 13.826998, 90.000000, 0.000000, 0.000000, 65005);
  20027. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20028. retexture = CreateDynamicObject(1210, 2320.402343, -10.209400, 13.826998, 90.000000, 0.000000, 0.000000, 65005);
  20029. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20030. retexture = CreateDynamicObject(1210, 2320.922363, -10.209400, 13.826998, 90.000000, 0.000000, 0.000000, 65005);
  20031. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20032. retexture = CreateDynamicObject(1210, 2321.441406, -10.209400, 13.826998, 90.000000, 0.000000, 0.000000, 65005);
  20033. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20034. retexture = CreateDynamicObject(1210, 2321.441406, -10.209400, 14.128000, 90.000000, 0.000000, 0.000000, 65005);
  20035. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20036. retexture = CreateDynamicObject(1210, 2321.441406, -10.209400, 14.428998, 90.000000, 0.000000, 0.000000, 65005);
  20037. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20038. retexture = CreateDynamicObject(1210, 2321.441406, -10.209400, 14.729998, 90.000000, 0.000000, 0.000000, 65005);
  20039. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20040. retexture = CreateDynamicObject(1210, 2320.922363, -10.209400, 14.128000, 90.000000, 0.000000, 0.000000, 65005);
  20041. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20042. retexture = CreateDynamicObject(1210, 2320.922363, -10.209400, 14.428998, 90.000000, 0.000000, 0.000000, 65005);
  20043. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20044. retexture = CreateDynamicObject(1210, 2320.922363, -10.209400, 14.729998, 90.000000, 0.000000, 0.000000, 65005);
  20045. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20046. retexture = CreateDynamicObject(1210, 2320.402343, -10.209400, 14.128000, 90.000000, 0.000000, 0.000000, 65005);
  20047. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20048. retexture = CreateDynamicObject(1210, 2320.402343, -10.209400, 14.428998, 90.000000, 0.000000, 0.000000, 65005);
  20049. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20050. retexture = CreateDynamicObject(1210, 2320.402343, -10.209400, 14.729998, 90.000000, 0.000000, 0.000000, 65005);
  20051. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20052. retexture = CreateDynamicObject(1210, 2319.901367, -10.209400, 14.128000, 90.000000, 0.000000, 0.000000, 65005);
  20053. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20054. retexture = CreateDynamicObject(1210, 2319.901367, -10.209400, 14.428998, 90.000000, 0.000000, 0.000000, 65005);
  20055. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20056. retexture = CreateDynamicObject(1210, 2319.901367, -10.209400, 14.729998, 90.000000, 0.000000, 0.000000, 65005);
  20057. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20058. retexture = CreateDynamicObject(19940, 2322.849609, -13.425755, 14.222800, 0.000015, 0.000000, -0.000091, 65005);
  20059. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20060. retexture = CreateDynamicObject(19940, 2322.849609, -13.425755, 13.920800, 0.000015, 0.000000, -0.000091, 65005);
  20061. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20062. retexture = CreateDynamicObject(19940, 2322.849609, -13.425755, 13.618800, 0.000015, 0.000000, -0.000091, 65005);
  20063. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20064. retexture = CreateDynamicObject(18981, 2311.482910, -12.007800, 16.271999, 0.000000, 90.000000, 0.000000, 65005);
  20065. SetDynamicObjectMaterial(retexture, 0, 8396, "sphinx01", "luxorceiling01_128", 0x00000000);
  20066. retexture = CreateDynamicObject(19379, 2322.732666, -10.037758, 12.312000, 0.000000, 90.000000, 0.000000, 65005);
  20067. SetDynamicObjectMaterial(retexture, 0, 16640, "a51", "ws_stationfloor", 0x00000000);
  20068. retexture = CreateDynamicObject(19175, 2310.539062, -18.132589, 13.865940, 0.000000, 0.000000, 180.000000, 65005);
  20069. SetDynamicObjectMaterial(retexture, 1, 19297, "matlights", "invisible", 0x00000000);
  20070. SetDynamicObjectMaterialText(retexture, 0, "____________", 40, "Ariel", 15, 1, 0xFF000000, 0x00000000, 1);
  20071. retexture = CreateDynamicObject(19461, 2325.335693, -14.866700, 14.093700, 0.000000, 0.000000, 90.000000, 65005);
  20072. SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000);
  20073. retexture = CreateDynamicObject(19461, 2325.335693, -14.876697, 14.093700, 0.000000, 0.000000, 90.000000, 65005);
  20074. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20075. retexture = CreateDynamicObject(19379, 2322.732666, -10.037758, 15.851999, 0.000000, 90.000000, 0.000000, 65005);
  20076. SetDynamicObjectMaterial(retexture, 0, 16640, "a51", "ws_stationfloor", 0x00000000);
  20077. retexture = CreateDynamicObject(19940, 2322.849609, -13.425755, 13.316800, 0.000015, 0.000000, -0.000091, 65005);
  20078. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20079. retexture = CreateDynamicObject(19940, 2322.849609, -11.427220, 14.222800, 0.000015, 0.000000, -0.000091, 65005);
  20080. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20081. retexture = CreateDynamicObject(19940, 2322.849609, -11.427220, 13.920800, 0.000015, 0.000000, -0.000091, 65005);
  20082. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20083. retexture = CreateDynamicObject(19940, 2322.849609, -11.427220, 13.618800, 0.000015, 0.000000, -0.000091, 65005);
  20084. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20085. retexture = CreateDynamicObject(19940, 2322.849609, -11.427220, 13.316800, 0.000015, 0.000000, -0.000091, 65005);
  20086. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20087. retexture = CreateDynamicObject(19940, 2322.851562, -10.444310, 13.843000, 89.999992, 135.000000, -135.000045, 65005);
  20088. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20089. retexture = CreateDynamicObject(19940, 2322.851562, -13.962864, 13.843000, 89.999992, 135.000000, -135.000045, 65005);
  20090. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20091. retexture = CreateDynamicObject(19940, 2322.851562, -10.958470, 13.843000, 89.999992, 135.000000, -135.000045, 65005);
  20092. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20093. retexture = CreateDynamicObject(19940, 2322.851562, -11.472386, 13.843000, 89.999992, 135.000000, -135.000045, 65005);
  20094. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20095. retexture = CreateDynamicObject(19940, 2322.851562, -11.986546, 13.843000, 89.999992, 135.000000, -135.000045, 65005);
  20096. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20097. retexture = CreateDynamicObject(19940, 2322.851562, -12.500462, 13.843000, 89.999992, 135.000000, -135.000045, 65005);
  20098. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20099. retexture = CreateDynamicObject(19940, 2322.851562, -13.014378, 13.843000, 89.999992, 135.000000, -135.000045, 65005);
  20100. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20101. retexture = CreateDynamicObject(19940, 2322.851562, -13.528538, 13.843000, 89.999992, 135.000000, -135.000045, 65005);
  20102. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20103. retexture = CreateDynamicObject(19448, 2322.721679, -15.263401, 13.087598, 0.000015, 0.000000, -0.000091, 65005);
  20104. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFEEEEEE);
  20105. retexture = CreateDynamicObject(19461, 2322.704345, -10.291700, 11.558710, 0.000000, 0.000000, 180.000000, 65005);
  20106. SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000);
  20107. retexture = CreateDynamicObject(19461, 2322.705322, -18.780698, 13.108711, 0.000000, 0.000000, 180.000000, 65005);
  20108. SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000);
  20109. retexture = CreateDynamicObject(1210, 2322.796386, -10.691932, 13.526000, 89.999992, 6.774093, -96.773956, 65005);
  20110. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20111. retexture = CreateDynamicObject(1210, 2322.796386, -11.219032, 13.526000, 89.999992, 6.774093, -96.773956, 65005);
  20112. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20113. retexture = CreateDynamicObject(1210, 2322.796386, -11.720008, 13.526000, 89.999992, 6.774093, -96.773956, 65005);
  20114. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20115. retexture = CreateDynamicObject(1210, 2322.796386, -12.240028, 13.526000, 89.999992, 6.774093, -96.773956, 65005);
  20116. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20117. retexture = CreateDynamicObject(1210, 2322.796386, -12.759071, 13.526000, 89.999992, 6.774093, -96.773956, 65005);
  20118. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20119. retexture = CreateDynamicObject(1210, 2322.796386, -13.736610, 13.526000, 89.999992, 6.774093, -96.773956, 65005);
  20120. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20121. retexture = CreateDynamicObject(1210, 2322.796386, -13.736610, 13.826998, 89.999992, 6.774093, -96.773956, 65005);
  20122. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20123. retexture = CreateDynamicObject(1210, 2322.796386, -13.736610, 14.128000, 89.999992, 6.774093, -96.773956, 65005);
  20124. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20125. retexture = CreateDynamicObject(1210, 2322.796386, -13.736610, 14.428998, 89.999992, 6.774093, -96.773956, 65005);
  20126. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20127. retexture = CreateDynamicObject(1210, 2322.796386, -13.736610, 14.729998, 89.999992, 6.774093, -96.773956, 65005);
  20128. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20129. retexture = CreateDynamicObject(1210, 2322.796386, -13.277626, 13.826998, 89.999992, 6.774093, -96.773956, 65005);
  20130. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20131. retexture = CreateDynamicObject(1210, 2322.796386, -13.277626, 14.128000, 89.999992, 6.774093, -96.773956, 65005);
  20132. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20133. retexture = CreateDynamicObject(1210, 2322.796386, -13.277626, 14.428998, 89.999992, 6.774093, -96.773956, 65005);
  20134. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20135. retexture = CreateDynamicObject(1210, 2322.796386, -13.277626, 14.729998, 89.999992, 6.774093, -96.773956, 65005);
  20136. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20137. retexture = CreateDynamicObject(1210, 2322.796386, -13.277626, 13.526000, 89.999992, 6.774093, -96.773956, 65005);
  20138. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20139. retexture = CreateDynamicObject(1210, 2322.796386, -10.691932, 13.826998, 89.999992, 6.774093, -96.773956, 65005);
  20140. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20141. retexture = CreateDynamicObject(1210, 2322.796386, -10.691932, 14.128000, 89.999992, 6.774093, -96.773956, 65005);
  20142. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20143. retexture = CreateDynamicObject(1210, 2322.796386, -10.691932, 14.428998, 89.999992, 6.774093, -96.773956, 65005);
  20144. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20145. retexture = CreateDynamicObject(1210, 2322.796386, -10.691932, 14.729998, 89.999992, 6.774093, -96.773956, 65005);
  20146. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20147. retexture = CreateDynamicObject(1210, 2322.796386, -11.219032, 13.826998, 89.999992, 6.774093, -96.773956, 65005);
  20148. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20149. retexture = CreateDynamicObject(1210, 2322.796386, -11.720008, 13.826998, 89.999992, 6.774093, -96.773956, 65005);
  20150. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20151. retexture = CreateDynamicObject(1210, 2322.796386, -12.240028, 13.826998, 89.999992, 6.774093, -96.773956, 65005);
  20152. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20153. retexture = CreateDynamicObject(1210, 2322.796386, -12.759071, 13.826998, 89.999992, 6.774093, -96.773956, 65005);
  20154. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20155. retexture = CreateDynamicObject(1210, 2322.796386, -12.759071, 14.128000, 89.999992, 6.774093, -96.773956, 65005);
  20156. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20157. retexture = CreateDynamicObject(1210, 2322.796386, -12.759071, 14.428998, 89.999992, 6.774093, -96.773956, 65005);
  20158. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20159. retexture = CreateDynamicObject(1210, 2322.796386, -12.759071, 14.729998, 89.999992, 6.774093, -96.773956, 65005);
  20160. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20161. retexture = CreateDynamicObject(1210, 2322.796386, -12.240028, 14.128000, 89.999992, 6.774093, -96.773956, 65005);
  20162. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20163. retexture = CreateDynamicObject(1210, 2322.796386, -12.240028, 14.428998, 89.999992, 6.774093, -96.773956, 65005);
  20164. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20165. retexture = CreateDynamicObject(1210, 2322.796386, -12.240028, 14.729998, 89.999992, 6.774093, -96.773956, 65005);
  20166. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20167. retexture = CreateDynamicObject(1210, 2322.796386, -11.720008, 14.128000, 89.999992, 6.774093, -96.773956, 65005);
  20168. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20169. retexture = CreateDynamicObject(1210, 2322.796386, -11.720008, 14.428998, 89.999992, 6.774093, -96.773956, 65005);
  20170. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20171. retexture = CreateDynamicObject(1210, 2322.796386, -11.720008, 14.729998, 89.999992, 6.774093, -96.773956, 65005);
  20172. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20173. retexture = CreateDynamicObject(1210, 2322.796386, -11.219032, 14.128000, 89.999992, 6.774093, -96.773956, 65005);
  20174. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20175. retexture = CreateDynamicObject(1210, 2322.796386, -11.219032, 14.428998, 89.999992, 6.774093, -96.773956, 65005);
  20176. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20177. retexture = CreateDynamicObject(1210, 2322.796386, -11.219032, 14.729998, 89.999992, 6.774093, -96.773956, 65005);
  20178. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20179. retexture = CreateDynamicObject(19922, 2323.969726, -14.049817, 12.354939, 0.000000, 0.000000, 360.000000, 65005);
  20180. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20181. CreateDynamicObject(13606, 2310.724365, -19.926231, 11.935937, 0.000000, 0.000000, 0.000000, 65005);
  20182. CreateDynamicObject(19379, 2317.870605, -2.693160, 12.310000, 0.000000, 90.000000, 0.000000, 65005);
  20183. CreateDynamicObject(19379, 2317.870605, -12.324298, 12.310000, 0.000000, 90.000000, 0.000000, 65005);
  20184. CreateDynamicObject(19379, 2317.870605, -21.957300, 12.310000, 0.000000, 90.000000, 0.000000, 65005);
  20185. CreateDynamicObject(19379, 2307.370361, -21.957300, 12.310000, 0.000000, 90.000000, 0.000000, 65005);
  20186. CreateDynamicObject(19379, 2307.370361, -12.324298, 12.310000, 0.000000, 90.000000, 0.000000, 65005);
  20187. CreateDynamicObject(1569, 2304.051025, -17.241100, 12.385298, 0.000000, 0.000000, 90.000000, 65005);
  20188. CreateDynamicObject(1569, 2304.047119, -14.240598, 12.385298, 0.000000, 0.000000, -90.000000, 65005);
  20189. CreateDynamicObject(1726, 2307.623535, -11.034440, 12.395198, 0.000000, 0.000000, 90.000000, 65005);
  20190. CreateDynamicObject(1726, 2308.566894, -8.201950, 12.395198, 0.000000, 0.000000, 0.000000, 65005);
  20191. CreateDynamicObject(1727, 2308.963134, -12.525600, 12.396730, 0.000000, 0.000000, 150.719955, 65005);
  20192. CreateDynamicObject(970, 2307.293212, -18.360799, 11.179100, 0.000000, 90.000000, 90.000000, 65005);
  20193. CreateDynamicObject(970, 2307.293212, -16.061700, 11.179120, 0.000000, 90.000000, -90.000000, 65005);
  20194. CreateDynamicObject(2010, 2307.401855, -13.061030, 12.396068, 0.000000, 0.000000, -25.739999, 65005);
  20195. CreateDynamicObject(2069, 2307.278320, -7.887370, 12.447038, 0.000000, 0.000000, 0.000000, 65005);
  20196. CreateDynamicObject(2069, 2313.256591, -7.887400, 12.446998, 0.000000, 0.000000, 0.000000, 65005);
  20197. CreateDynamicObject(2069, 2320.595458, -17.775049, 12.446998, 0.000000, 0.000000, 0.000000, 65005);
  20198. CreateDynamicObject(2315, 2313.155029, -10.554498, 12.396800, 0.000000, 0.000000, 90.000000, 65005);
  20199. CreateDynamicObject(2257, 2313.626708, -9.788000, 14.419300, 0.000000, 0.000000, -90.000000, 65005);
  20200. CreateDynamicObject(3859, 2313.679931, -12.683818, 16.811540, 0.000000, 0.000000, 17.239999, 65005);
  20201. CreateDynamicObject(2855, 2312.943847, -10.647218, 12.453289, 0.000000, 0.000000, -103.860000, 65005);
  20202. CreateDynamicObject(2854, 2313.014404, -9.262160, 12.891150, 0.000000, 0.000000, -37.619998, 65005);
  20203. CreateDynamicObject(2253, 2313.319824, -10.674360, 13.125280, 0.000000, 0.000000, -44.099990, 65005);
  20204. CreateDynamicObject(11745, 2307.162597, -15.873900, 13.326148, 0.000000, 0.000000, -103.260002, 65005);
  20205. CreateDynamicObject(2253, 2307.050537, -14.793028, 13.521638, 0.000000, 0.000000, -84.839996, 65005);
  20206. CreateDynamicObject(2202, 2319.861572, -17.576759, 12.396400, 0.000000, 0.000000, 180.000000, 65005);
  20207. CreateDynamicObject(2202, 2316.835693, -17.576799, 12.396400, 0.000000, 0.000000, 180.000000, 65005);
  20208. CreateDynamicObject(2007, 2317.843261, -17.663129, 12.366900, 0.000000, 0.000000, 180.000000, 65005);
  20209. CreateDynamicObject(2167, 2317.345947, -12.186658, 12.371560, 0.000000, 0.000000, -90.000000, 65005);
  20210. CreateDynamicObject(2167, 2317.345947, -14.043700, 12.371600, 0.000000, 0.000000, -90.000000, 65005);
  20211. CreateDynamicObject(2069, 2316.930175, -13.091210, 12.446998, 0.000000, 0.000000, 0.000000, 65005);
  20212. CreateDynamicObject(1886, 2316.864013, -11.405098, 15.872598, 10.000000, 0.000000, -76.860000, 65005);
  20213. CreateDynamicObject(1886, 2316.864013, -14.726498, 15.872598, 10.000000, 0.000000, -96.599998, 65005);
  20214. CreateDynamicObject(1886, 2304.690429, -17.776500, 15.955100, 10.000000, 0.000000, 121.379997, 65005);
  20215. CreateDynamicObject(2634, 2320.315917, -15.724633, 13.810798, 0.000000, 0.000000, -59.700019, 65005);
  20216. CreateDynamicObject(11745, 2320.764892, -14.015052, 13.266149, 0.000000, 0.000000, 164.039993, 65005);
  20217. //angel pine bank
  20218. retexture = CreateDynamicObject(19461, 2304.015380, -13.456198, 14.093700, 0.000000, 0.000000, 0.000000, 65003);
  20219. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20220. retexture = CreateDynamicObject(19461, 2304.015380, -3.824898, 14.093700, 0.000000, 0.000000, 0.000000, 65003);
  20221. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20222. retexture = CreateDynamicObject(19461, 2308.761718, -18.217369, 14.093700, 0.000000, 0.000000, 90.000000, 65003);
  20223. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20224. retexture = CreateDynamicObject(19461, 2318.395019, -18.217399, 14.093700, 0.000000, 0.000000, 90.000000, 65003);
  20225. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20226. retexture = CreateDynamicObject(19461, 2322.743652, -10.143440, 14.093700, 0.000000, 0.000000, 0.000000, 65003);
  20227. SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000);
  20228. retexture = CreateDynamicObject(19461, 2321.097412, -3.824898, 14.093700, 0.000000, 0.000000, 0.000000, 65003);
  20229. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20230. retexture = CreateDynamicObject(19461, 2309.296386, -7.428558, 14.093700, 0.000000, 0.000000, 90.000000, 65003);
  20231. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20232. retexture = CreateDynamicObject(19461, 2322.203857, -10.283679, 14.093700, 0.000000, 0.000000, 90.000000, 65003);
  20233. SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000);
  20234. retexture = CreateDynamicObject(19461, 2325.335693, -14.866700, 14.093700, 0.000000, 0.000000, 90.000000, 65003);
  20235. SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000);
  20236. retexture = CreateDynamicObject(19461, 2306.836914, -8.693730, 14.093700, 0.000000, 0.000000, 0.000000, 65003);
  20237. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20238. retexture = CreateDynamicObject(19461, 2302.108154, -13.425000, 14.093700, 0.000000, 0.000000, 90.000000, 65003);
  20239. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20240. retexture = CreateDynamicObject(19368, 2309.261230, -10.110300, 12.311800, 0.000000, 90.000000, 90.000000, 65003);
  20241. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFC8C8C8);
  20242. retexture = CreateDynamicObject(18762, 2307.234863, -14.007300, 11.432498, 0.000000, 0.000000, 0.000000, 65003);
  20243. SetDynamicObjectMaterial(retexture, 0, 12855, "cunte_cop", "sw_brick05", 0x00000000);
  20244. retexture = CreateDynamicObject(18762, 2307.234863, -14.989298, 10.772488, 0.000000, 0.000000, 0.000000, 65003);
  20245. SetDynamicObjectMaterial(retexture, 0, 12855, "cunte_cop", "sw_brick05", 0x00000000);
  20246. retexture = CreateDynamicObject(18762, 2307.232910, -15.748398, 10.770500, 0.000000, 0.000000, 0.000000, 65003);
  20247. SetDynamicObjectMaterial(retexture, 0, 12855, "cunte_cop", "sw_brick05", 0x00000000);
  20248. retexture = CreateDynamicObject(19940, 2307.262695, -16.700099, 13.155798, 90.000000, 0.000000, 0.000000, 65003);
  20249. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20250. retexture = CreateDynamicObject(19940, 2307.262695, -16.698099, 13.674698, 90.000000, 0.000000, 0.000000, 65003);
  20251. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20252. retexture = CreateDynamicObject(19940, 2307.262695, -17.700099, 13.155798, 90.000000, 0.000000, 0.000000, 65003);
  20253. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20254. retexture = CreateDynamicObject(19940, 2307.262695, -17.698099, 13.674698, 90.000000, 0.000000, 0.000000, 65003);
  20255. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20256. retexture = CreateDynamicObject(19939, 2307.260742, -17.191600, 14.659600, 0.000000, 0.000000, 0.000000, 65003);
  20257. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20258. retexture = CreateDynamicObject(19461, 2313.744140, -10.137398, 11.892378, 0.000000, 0.000000, 0.000000, 65003);
  20259. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20260. retexture = CreateDynamicObject(19397, 2313.744140, -16.558300, 14.093850, 0.000000, 0.000000, 0.000000, 65003);
  20261. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20262. retexture = CreateDynamicObject(19442, 2314.460449, -15.039698, 14.093700, 0.000000, 0.000000, 90.000000, 65003);
  20263. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20264. retexture = CreateDynamicObject(19442, 2314.460449, -13.039698, 14.093700, 0.000000, 0.000000, 90.000000, 65003);
  20265. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20266. retexture = CreateDynamicObject(19442, 2314.460449, -11.039698, 14.093700, 0.000000, 0.000000, 90.000000, 65003);
  20267. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20268. retexture = CreateDynamicObject(19461, 2313.742187, -6.310400, 14.093700, 0.000000, 0.000000, 0.000000, 65003);
  20269. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20270. retexture = CreateDynamicObject(19461, 2317.396728, -10.137398, 14.093700, 0.000000, 0.000000, 0.000000, 65003);
  20271. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20272. retexture = CreateDynamicObject(19442, 2316.063232, -11.039698, 14.093700, 0.000000, 0.000000, 90.000000, 65003);
  20273. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20274. retexture = CreateDynamicObject(19442, 2316.583984, -11.041700, 14.093700, 0.000000, 0.000000, 90.000000, 65003);
  20275. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20276. retexture = CreateDynamicObject(19461, 2314.226562, -10.137398, 11.892398, 0.000000, 0.000000, 0.000000, 65003);
  20277. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20278. retexture = CreateDynamicObject(19173, 2314.031250, -12.181400, 13.637100, 90.000000, 0.000000, 90.000000, 65003);
  20279. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20280. SetDynamicObjectMaterial(retexture, 1, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20281. retexture = CreateDynamicObject(19173, 2314.031250, -13.981498, 13.639100, 90.000000, 0.000000, 90.000000, 65003);
  20282. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20283. SetDynamicObjectMaterial(retexture, 1, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20284. retexture = CreateDynamicObject(19461, 2313.744140, -10.137398, 16.960859, 0.000000, 0.000000, 0.000000, 65003);
  20285. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20286. retexture = CreateDynamicObject(19174, 2309.594970, -7.550260, 14.277540, 0.000000, 0.000000, 0.000000, 65003);
  20287. SetDynamicObjectMaterial(retexture, 0, 15041, "bigsfsave", "windo_blinds", 0x00000000);
  20288. retexture = CreateDynamicObject(19174, 2306.932373, -9.973990, 14.277500, 0.000000, 0.000000, 90.000000, 65003);
  20289. SetDynamicObjectMaterial(retexture, 0, 15041, "bigsfsave", "windo_blinds", 0x00000000);
  20290. retexture = CreateDynamicObject(1502, 2313.752929, -17.306100, 12.336000, 0.000000, 0.000000, 90.000000, 65003);
  20291. SetDynamicObjectMaterial(retexture, 1, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20292. retexture = CreateDynamicObject(19461, 2321.995605, -19.693540, 14.093700, 0.000000, 0.000000, 0.000000, 65003);
  20293. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20294. retexture = CreateDynamicObject(19175, 2310.539062, -18.132589, 14.225938, 0.000000, 0.000000, 180.000000, 65003);
  20295. SetDynamicObjectMaterial(retexture, 1, 19297, "matlights", "invisible", 0x00000000);
  20296. SetDynamicObjectMaterialText(retexture, 0, "Bank of Blueberry", 40, "Ariel", 15, 1, 0xFF000000, 0x00000000, 1);
  20297. retexture = CreateDynamicObject(19175, 2310.539062, -18.132589, 13.875939, 0.000000, 0.000000, 180.000000, 65003);
  20298. SetDynamicObjectMaterial(retexture, 1, 19297, "matlights", "invisible", 0x00000000);
  20299. SetDynamicObjectMaterialText(retexture, 0, "Serving Los Santos since 1996", 80, "Ariel", 15, 1, 0xFF000000, 0x00000000, 1);
  20300. retexture = CreateDynamicObject(19175, 2310.539062, -18.132589, 14.885942, 0.000000, 0.000000, 180.000000, 65003);
  20301. SetDynamicObjectMaterial(retexture, 1, 19297, "matlights", "invisible", 0x00000000);
  20302. SetDynamicObjectMaterialText(retexture, 0, "____________", 40, "Ariel", 15, 1, 0xFF000000, 0x00000000, 1);
  20303. retexture = CreateDynamicObject(19893, 2307.321777, -15.362000, 13.271288, 0.000000, 0.000000, 64.620010, 65003);
  20304. SetDynamicObjectMaterial(retexture, 1, 3925, "weemap", "skyclouds", 0x00000000);
  20305. retexture = CreateDynamicObject(19893, 2314.061767, -14.599988, 13.645588, 0.000000, 0.000000, 115.499977, 65003);
  20306. SetDynamicObjectMaterial(retexture, 1, 3925, "weemap", "skyclouds", 0x00000000);
  20307. retexture = CreateDynamicObject(19893, 2314.102539, -11.831728, 13.645588, 0.000000, 0.000000, 66.599983, 65003);
  20308. SetDynamicObjectMaterial(retexture, 1, 3925, "weemap", "skyclouds", 0x00000000);
  20309. retexture = CreateDynamicObject(19397, 2318.914306, -14.866700, 14.093898, 0.000000, 0.000000, 90.000000, 65003);
  20310. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20311. retexture = CreateDynamicObject(19461, 2321.072021, -21.123249, 14.093700, 0.000000, 0.000000, 0.000000, 65003);
  20312. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20313. retexture = CreateDynamicObject(19461, 2325.801757, -16.393199, 14.093700, 0.000000, 0.000000, 90.000000, 65003);
  20314. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20315. retexture = CreateDynamicObject(19922, 2321.909179, -14.049817, 12.355939, 0.000000, 0.000000, 360.000000, 65003);
  20316. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20317. retexture = CreateDynamicObject(19940, 2322.849609, -11.427220, 14.826800, 0.000015, 0.000000, -0.000091, 65003);
  20318. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20319. retexture = CreateDynamicObject(19940, 2320.109863, -10.161700, 14.826800, 0.000000, 0.000000, 90.000000, 65003);
  20320. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20321. retexture = CreateDynamicObject(19940, 2322.108398, -10.161700, 14.826800, 0.000000, 0.000000, 90.000000, 65003);
  20322. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20323. retexture = CreateDynamicObject(19940, 2320.109863, -10.161700, 14.524800, 0.000000, 0.000000, 90.000000, 65003);
  20324. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20325. retexture = CreateDynamicObject(19940, 2322.108398, -10.161700, 14.524800, 0.000000, 0.000000, 90.000000, 65003);
  20326. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20327. retexture = CreateDynamicObject(19940, 2322.108398, -10.161700, 14.222800, 0.000000, 0.000000, 90.000000, 65003);
  20328. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20329. retexture = CreateDynamicObject(19940, 2322.108398, -10.161700, 13.920800, 0.000000, 0.000000, 90.000000, 65003);
  20330. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20331. retexture = CreateDynamicObject(19940, 2322.108398, -10.161700, 13.618800, 0.000000, 0.000000, 90.000000, 65003);
  20332. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20333. retexture = CreateDynamicObject(19940, 2322.108398, -10.161700, 13.316800, 0.000000, 0.000000, 90.000000, 65003);
  20334. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20335. retexture = CreateDynamicObject(19940, 2320.109863, -10.161700, 14.222800, 0.000000, 0.000000, 90.000000, 65003);
  20336. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20337. retexture = CreateDynamicObject(19940, 2320.109863, -10.161700, 13.920800, 0.000000, 0.000000, 90.000000, 65003);
  20338. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20339. retexture = CreateDynamicObject(19940, 2320.109863, -10.161700, 13.618800, 0.000000, 0.000000, 90.000000, 65003);
  20340. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20341. retexture = CreateDynamicObject(19940, 2320.109863, -10.161700, 13.316800, 0.000000, 0.000000, 90.000000, 65003);
  20342. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20343. retexture = CreateDynamicObject(19940, 2319.126953, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65003);
  20344. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20345. retexture = CreateDynamicObject(19940, 2322.645507, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65003);
  20346. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20347. retexture = CreateDynamicObject(19461, 2318.071289, -10.137398, 14.093700, 0.000000, 0.000000, 0.000000, 65003);
  20348. SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000);
  20349. retexture = CreateDynamicObject(19397, 2318.916259, -14.862700, 14.091898, 0.000000, 0.000000, 90.000000, 65003);
  20350. SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000);
  20351. retexture = CreateDynamicObject(19461, 2322.203857, -10.291700, 11.558710, 0.000000, 0.000000, 90.000000, 65003);
  20352. SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000);
  20353. retexture = CreateDynamicObject(19940, 2319.641113, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65003);
  20354. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20355. retexture = CreateDynamicObject(19940, 2320.155029, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65003);
  20356. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20357. retexture = CreateDynamicObject(19940, 2320.669189, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65003);
  20358. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20359. retexture = CreateDynamicObject(19940, 2321.183105, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65003);
  20360. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20361. retexture = CreateDynamicObject(19940, 2321.697021, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65003);
  20362. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20363. retexture = CreateDynamicObject(19940, 2322.211181, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65003);
  20364. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20365. retexture = CreateDynamicObject(19448, 2323.946044, -10.289698, 13.087598, 0.000000, 0.000000, 90.000000, 65003);
  20366. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFEEEEEE);
  20367. retexture = CreateDynamicObject(19940, 2322.849609, -13.425755, 14.826800, 0.000015, 0.000000, -0.000091, 65003);
  20368. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20369. retexture = CreateDynamicObject(19940, 2322.849609, -11.427220, 14.524800, 0.000015, 0.000000, -0.000091, 65003);
  20370. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20371. retexture = CreateDynamicObject(19940, 2322.849609, -13.425755, 14.524800, 0.000015, 0.000000, -0.000091, 65003);
  20372. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20373. retexture = CreateDynamicObject(1210, 2319.374267, -10.209368, 13.526000, 90.000000, 0.000000, 0.000000, 65003);
  20374. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20375. retexture = CreateDynamicObject(1210, 2319.901367, -10.209400, 13.526000, 90.000000, 0.000000, 0.000000, 65003);
  20376. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20377. retexture = CreateDynamicObject(1210, 2320.402343, -10.209400, 13.526000, 90.000000, 0.000000, 0.000000, 65003);
  20378. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20379. retexture = CreateDynamicObject(1210, 2320.922363, -10.209400, 13.526000, 90.000000, 0.000000, 0.000000, 65003);
  20380. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20381. retexture = CreateDynamicObject(1210, 2321.441406, -10.209400, 13.526000, 90.000000, 0.000000, 0.000000, 65003);
  20382. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20383. retexture = CreateDynamicObject(1210, 2322.418945, -10.209400, 13.526000, 90.000000, 0.000000, 0.000000, 65003);
  20384. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20385. retexture = CreateDynamicObject(1210, 2322.418945, -10.209400, 13.826998, 90.000000, 0.000000, 0.000000, 65003);
  20386. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20387. retexture = CreateDynamicObject(1210, 2322.418945, -10.209400, 14.128000, 90.000000, 0.000000, 0.000000, 65003);
  20388. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20389. retexture = CreateDynamicObject(1210, 2322.418945, -10.209400, 14.428998, 90.000000, 0.000000, 0.000000, 65003);
  20390. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20391. retexture = CreateDynamicObject(1210, 2322.418945, -10.209400, 14.729998, 90.000000, 0.000000, 0.000000, 65003);
  20392. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20393. retexture = CreateDynamicObject(1210, 2321.959960, -10.209400, 13.826998, 90.000000, 0.000000, 0.000000, 65003);
  20394. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20395. retexture = CreateDynamicObject(1210, 2321.959960, -10.209400, 14.128000, 90.000000, 0.000000, 0.000000, 65003);
  20396. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20397. retexture = CreateDynamicObject(1210, 2321.959960, -10.209400, 14.428998, 90.000000, 0.000000, 0.000000, 65003);
  20398. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20399. retexture = CreateDynamicObject(1210, 2321.959960, -10.209400, 14.729998, 90.000000, 0.000000, 0.000000, 65003);
  20400. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20401. retexture = CreateDynamicObject(1210, 2321.959960, -10.209400, 13.526000, 90.000000, 0.000000, 0.000000, 65003);
  20402. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20403. retexture = CreateDynamicObject(1210, 2319.374267, -10.209400, 13.826998, 90.000000, 0.000000, 0.000000, 65003);
  20404. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20405. retexture = CreateDynamicObject(1210, 2319.374267, -10.209400, 14.128000, 90.000000, 0.000000, 0.000000, 65003);
  20406. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20407. retexture = CreateDynamicObject(1210, 2319.374267, -10.209400, 14.428998, 90.000000, 0.000000, 0.000000, 65003);
  20408. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20409. retexture = CreateDynamicObject(1210, 2319.374267, -10.209400, 14.729998, 90.000000, 0.000000, 0.000000, 65003);
  20410. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20411. retexture = CreateDynamicObject(1210, 2319.901367, -10.209400, 13.826998, 90.000000, 0.000000, 0.000000, 65003);
  20412. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20413. retexture = CreateDynamicObject(1210, 2320.402343, -10.209400, 13.826998, 90.000000, 0.000000, 0.000000, 65003);
  20414. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20415. retexture = CreateDynamicObject(1210, 2320.922363, -10.209400, 13.826998, 90.000000, 0.000000, 0.000000, 65003);
  20416. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20417. retexture = CreateDynamicObject(1210, 2321.441406, -10.209400, 13.826998, 90.000000, 0.000000, 0.000000, 65003);
  20418. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20419. retexture = CreateDynamicObject(1210, 2321.441406, -10.209400, 14.128000, 90.000000, 0.000000, 0.000000, 65003);
  20420. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20421. retexture = CreateDynamicObject(1210, 2321.441406, -10.209400, 14.428998, 90.000000, 0.000000, 0.000000, 65003);
  20422. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20423. retexture = CreateDynamicObject(1210, 2321.441406, -10.209400, 14.729998, 90.000000, 0.000000, 0.000000, 65003);
  20424. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20425. retexture = CreateDynamicObject(1210, 2320.922363, -10.209400, 14.128000, 90.000000, 0.000000, 0.000000, 65003);
  20426. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20427. retexture = CreateDynamicObject(1210, 2320.922363, -10.209400, 14.428998, 90.000000, 0.000000, 0.000000, 65003);
  20428. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20429. retexture = CreateDynamicObject(1210, 2320.922363, -10.209400, 14.729998, 90.000000, 0.000000, 0.000000, 65003);
  20430. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20431. retexture = CreateDynamicObject(1210, 2320.402343, -10.209400, 14.128000, 90.000000, 0.000000, 0.000000, 65003);
  20432. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20433. retexture = CreateDynamicObject(1210, 2320.402343, -10.209400, 14.428998, 90.000000, 0.000000, 0.000000, 65003);
  20434. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20435. retexture = CreateDynamicObject(1210, 2320.402343, -10.209400, 14.729998, 90.000000, 0.000000, 0.000000, 65003);
  20436. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20437. retexture = CreateDynamicObject(1210, 2319.901367, -10.209400, 14.128000, 90.000000, 0.000000, 0.000000, 65003);
  20438. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20439. retexture = CreateDynamicObject(1210, 2319.901367, -10.209400, 14.428998, 90.000000, 0.000000, 0.000000, 65003);
  20440. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20441. retexture = CreateDynamicObject(1210, 2319.901367, -10.209400, 14.729998, 90.000000, 0.000000, 0.000000, 65003);
  20442. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20443. retexture = CreateDynamicObject(19940, 2322.849609, -13.425755, 14.222800, 0.000015, 0.000000, -0.000091, 65003);
  20444. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20445. retexture = CreateDynamicObject(19940, 2322.849609, -13.425755, 13.920800, 0.000015, 0.000000, -0.000091, 65003);
  20446. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20447. retexture = CreateDynamicObject(19940, 2322.849609, -13.425755, 13.618800, 0.000015, 0.000000, -0.000091, 65003);
  20448. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20449. retexture = CreateDynamicObject(18981, 2311.482910, -12.007800, 16.271999, 0.000000, 90.000000, 0.000000, 65003);
  20450. SetDynamicObjectMaterial(retexture, 0, 8396, "sphinx01", "luxorceiling01_128", 0x00000000);
  20451. retexture = CreateDynamicObject(19379, 2322.732666, -10.037758, 12.312000, 0.000000, 90.000000, 0.000000, 65003);
  20452. SetDynamicObjectMaterial(retexture, 0, 16640, "a51", "ws_stationfloor", 0x00000000);
  20453. retexture = CreateDynamicObject(19175, 2310.539062, -18.132589, 13.865940, 0.000000, 0.000000, 180.000000, 65003);
  20454. SetDynamicObjectMaterial(retexture, 1, 19297, "matlights", "invisible", 0x00000000);
  20455. SetDynamicObjectMaterialText(retexture, 0, "____________", 40, "Ariel", 15, 1, 0xFF000000, 0x00000000, 1);
  20456. retexture = CreateDynamicObject(19461, 2325.335693, -14.866700, 14.093700, 0.000000, 0.000000, 90.000000, 65003);
  20457. SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000);
  20458. retexture = CreateDynamicObject(19461, 2325.335693, -14.876697, 14.093700, 0.000000, 0.000000, 90.000000, 65003);
  20459. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000);
  20460. retexture = CreateDynamicObject(19379, 2322.732666, -10.037758, 15.851999, 0.000000, 90.000000, 0.000000, 65003);
  20461. SetDynamicObjectMaterial(retexture, 0, 16640, "a51", "ws_stationfloor", 0x00000000);
  20462. retexture = CreateDynamicObject(19940, 2322.849609, -13.425755, 13.316800, 0.000015, 0.000000, -0.000091, 65003);
  20463. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20464. retexture = CreateDynamicObject(19940, 2322.849609, -11.427220, 14.222800, 0.000015, 0.000000, -0.000091, 65003);
  20465. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20466. retexture = CreateDynamicObject(19940, 2322.849609, -11.427220, 13.920800, 0.000015, 0.000000, -0.000091, 65003);
  20467. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20468. retexture = CreateDynamicObject(19940, 2322.849609, -11.427220, 13.618800, 0.000015, 0.000000, -0.000091, 65003);
  20469. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20470. retexture = CreateDynamicObject(19940, 2322.849609, -11.427220, 13.316800, 0.000015, 0.000000, -0.000091, 65003);
  20471. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20472. retexture = CreateDynamicObject(19940, 2322.851562, -10.444310, 13.843000, 89.999992, 135.000000, -135.000045, 65003);
  20473. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20474. retexture = CreateDynamicObject(19940, 2322.851562, -13.962864, 13.843000, 89.999992, 135.000000, -135.000045, 65003);
  20475. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20476. retexture = CreateDynamicObject(19940, 2322.851562, -10.958470, 13.843000, 89.999992, 135.000000, -135.000045, 65003);
  20477. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20478. retexture = CreateDynamicObject(19940, 2322.851562, -11.472386, 13.843000, 89.999992, 135.000000, -135.000045, 65003);
  20479. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20480. retexture = CreateDynamicObject(19940, 2322.851562, -11.986546, 13.843000, 89.999992, 135.000000, -135.000045, 65003);
  20481. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20482. retexture = CreateDynamicObject(19940, 2322.851562, -12.500462, 13.843000, 89.999992, 135.000000, -135.000045, 65003);
  20483. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20484. retexture = CreateDynamicObject(19940, 2322.851562, -13.014378, 13.843000, 89.999992, 135.000000, -135.000045, 65003);
  20485. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20486. retexture = CreateDynamicObject(19940, 2322.851562, -13.528538, 13.843000, 89.999992, 135.000000, -135.000045, 65003);
  20487. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333);
  20488. retexture = CreateDynamicObject(19448, 2322.721679, -15.263401, 13.087598, 0.000015, 0.000000, -0.000091, 65003);
  20489. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFEEEEEE);
  20490. retexture = CreateDynamicObject(19461, 2322.704345, -10.291700, 11.558710, 0.000000, 0.000000, 180.000000, 65003);
  20491. SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000);
  20492. retexture = CreateDynamicObject(19461, 2322.705322, -18.780698, 13.108711, 0.000000, 0.000000, 180.000000, 65003);
  20493. SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000);
  20494. retexture = CreateDynamicObject(1210, 2322.796386, -10.691932, 13.526000, 89.999992, 6.774093, -96.773956, 65003);
  20495. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20496. retexture = CreateDynamicObject(1210, 2322.796386, -11.219032, 13.526000, 89.999992, 6.774093, -96.773956, 65003);
  20497. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20498. retexture = CreateDynamicObject(1210, 2322.796386, -11.720008, 13.526000, 89.999992, 6.774093, -96.773956, 65003);
  20499. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20500. retexture = CreateDynamicObject(1210, 2322.796386, -12.240028, 13.526000, 89.999992, 6.774093, -96.773956, 65003);
  20501. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20502. retexture = CreateDynamicObject(1210, 2322.796386, -12.759071, 13.526000, 89.999992, 6.774093, -96.773956, 65003);
  20503. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20504. retexture = CreateDynamicObject(1210, 2322.796386, -13.736610, 13.526000, 89.999992, 6.774093, -96.773956, 65003);
  20505. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20506. retexture = CreateDynamicObject(1210, 2322.796386, -13.736610, 13.826998, 89.999992, 6.774093, -96.773956, 65003);
  20507. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20508. retexture = CreateDynamicObject(1210, 2322.796386, -13.736610, 14.128000, 89.999992, 6.774093, -96.773956, 65003);
  20509. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20510. retexture = CreateDynamicObject(1210, 2322.796386, -13.736610, 14.428998, 89.999992, 6.774093, -96.773956, 65003);
  20511. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20512. retexture = CreateDynamicObject(1210, 2322.796386, -13.736610, 14.729998, 89.999992, 6.774093, -96.773956, 65003);
  20513. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20514. retexture = CreateDynamicObject(1210, 2322.796386, -13.277626, 13.826998, 89.999992, 6.774093, -96.773956, 65003);
  20515. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20516. retexture = CreateDynamicObject(1210, 2322.796386, -13.277626, 14.128000, 89.999992, 6.774093, -96.773956, 65003);
  20517. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20518. retexture = CreateDynamicObject(1210, 2322.796386, -13.277626, 14.428998, 89.999992, 6.774093, -96.773956, 65003);
  20519. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20520. retexture = CreateDynamicObject(1210, 2322.796386, -13.277626, 14.729998, 89.999992, 6.774093, -96.773956, 65003);
  20521. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20522. retexture = CreateDynamicObject(1210, 2322.796386, -13.277626, 13.526000, 89.999992, 6.774093, -96.773956, 65003);
  20523. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20524. retexture = CreateDynamicObject(1210, 2322.796386, -10.691932, 13.826998, 89.999992, 6.774093, -96.773956, 65003);
  20525. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20526. retexture = CreateDynamicObject(1210, 2322.796386, -10.691932, 14.128000, 89.999992, 6.774093, -96.773956, 65003);
  20527. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20528. retexture = CreateDynamicObject(1210, 2322.796386, -10.691932, 14.428998, 89.999992, 6.774093, -96.773956, 65003);
  20529. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20530. retexture = CreateDynamicObject(1210, 2322.796386, -10.691932, 14.729998, 89.999992, 6.774093, -96.773956, 65003);
  20531. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20532. retexture = CreateDynamicObject(1210, 2322.796386, -11.219032, 13.826998, 89.999992, 6.774093, -96.773956, 65003);
  20533. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20534. retexture = CreateDynamicObject(1210, 2322.796386, -11.720008, 13.826998, 89.999992, 6.774093, -96.773956, 65003);
  20535. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20536. retexture = CreateDynamicObject(1210, 2322.796386, -12.240028, 13.826998, 89.999992, 6.774093, -96.773956, 65003);
  20537. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20538. retexture = CreateDynamicObject(1210, 2322.796386, -12.759071, 13.826998, 89.999992, 6.774093, -96.773956, 65003);
  20539. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20540. retexture = CreateDynamicObject(1210, 2322.796386, -12.759071, 14.128000, 89.999992, 6.774093, -96.773956, 65003);
  20541. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20542. retexture = CreateDynamicObject(1210, 2322.796386, -12.759071, 14.428998, 89.999992, 6.774093, -96.773956, 65003);
  20543. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20544. retexture = CreateDynamicObject(1210, 2322.796386, -12.759071, 14.729998, 89.999992, 6.774093, -96.773956, 65003);
  20545. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20546. retexture = CreateDynamicObject(1210, 2322.796386, -12.240028, 14.128000, 89.999992, 6.774093, -96.773956, 65003);
  20547. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20548. retexture = CreateDynamicObject(1210, 2322.796386, -12.240028, 14.428998, 89.999992, 6.774093, -96.773956, 65003);
  20549. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20550. retexture = CreateDynamicObject(1210, 2322.796386, -12.240028, 14.729998, 89.999992, 6.774093, -96.773956, 65003);
  20551. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20552. retexture = CreateDynamicObject(1210, 2322.796386, -11.720008, 14.128000, 89.999992, 6.774093, -96.773956, 65003);
  20553. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20554. retexture = CreateDynamicObject(1210, 2322.796386, -11.720008, 14.428998, 89.999992, 6.774093, -96.773956, 65003);
  20555. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20556. retexture = CreateDynamicObject(1210, 2322.796386, -11.720008, 14.729998, 89.999992, 6.774093, -96.773956, 65003);
  20557. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20558. retexture = CreateDynamicObject(1210, 2322.796386, -11.219032, 14.128000, 89.999992, 6.774093, -96.773956, 65003);
  20559. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20560. retexture = CreateDynamicObject(1210, 2322.796386, -11.219032, 14.428998, 89.999992, 6.774093, -96.773956, 65003);
  20561. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20562. retexture = CreateDynamicObject(1210, 2322.796386, -11.219032, 14.729998, 89.999992, 6.774093, -96.773956, 65003);
  20563. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20564. retexture = CreateDynamicObject(19922, 2323.969726, -14.049817, 12.354939, 0.000000, 0.000000, 360.000000, 65003);
  20565. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20566. CreateDynamicObject(13606, 2310.724365, -19.926231, 11.935937, 0.000000, 0.000000, 0.000000, 65003);
  20567. CreateDynamicObject(19379, 2317.870605, -2.693160, 12.310000, 0.000000, 90.000000, 0.000000, 65003);
  20568. CreateDynamicObject(19379, 2317.870605, -12.324298, 12.310000, 0.000000, 90.000000, 0.000000, 65003);
  20569. CreateDynamicObject(19379, 2317.870605, -21.957300, 12.310000, 0.000000, 90.000000, 0.000000, 65003);
  20570. CreateDynamicObject(19379, 2307.370361, -21.957300, 12.310000, 0.000000, 90.000000, 0.000000, 65003);
  20571. CreateDynamicObject(19379, 2307.370361, -12.324298, 12.310000, 0.000000, 90.000000, 0.000000, 65003);
  20572. CreateDynamicObject(1569, 2304.051025, -17.241100, 12.385298, 0.000000, 0.000000, 90.000000, 65003);
  20573. CreateDynamicObject(1569, 2304.047119, -14.240598, 12.385298, 0.000000, 0.000000, -90.000000, 65003);
  20574. CreateDynamicObject(1726, 2307.623535, -11.034440, 12.395198, 0.000000, 0.000000, 90.000000, 65003);
  20575. CreateDynamicObject(1726, 2308.566894, -8.201950, 12.395198, 0.000000, 0.000000, 0.000000, 65003);
  20576. CreateDynamicObject(1727, 2308.963134, -12.525600, 12.396730, 0.000000, 0.000000, 150.719955, 65003);
  20577. CreateDynamicObject(970, 2307.293212, -18.360799, 11.179100, 0.000000, 90.000000, 90.000000, 65003);
  20578. CreateDynamicObject(970, 2307.293212, -16.061700, 11.179120, 0.000000, 90.000000, -90.000000, 65003);
  20579. CreateDynamicObject(2010, 2307.401855, -13.061030, 12.396068, 0.000000, 0.000000, -25.739999, 65003);
  20580. CreateDynamicObject(2069, 2307.278320, -7.887370, 12.447038, 0.000000, 0.000000, 0.000000, 65003);
  20581. CreateDynamicObject(2069, 2313.256591, -7.887400, 12.446998, 0.000000, 0.000000, 0.000000, 65003);
  20582. CreateDynamicObject(2069, 2320.595458, -17.775049, 12.446998, 0.000000, 0.000000, 0.000000, 65003);
  20583. CreateDynamicObject(2315, 2313.155029, -10.554498, 12.396800, 0.000000, 0.000000, 90.000000, 65003);
  20584. CreateDynamicObject(2257, 2313.626708, -9.788000, 14.419300, 0.000000, 0.000000, -90.000000, 65003);
  20585. CreateDynamicObject(3859, 2313.679931, -12.683818, 16.811540, 0.000000, 0.000000, 17.239999, 65003);
  20586. CreateDynamicObject(2855, 2312.943847, -10.647218, 12.453289, 0.000000, 0.000000, -103.860000, 65003);
  20587. CreateDynamicObject(2854, 2313.014404, -9.262160, 12.891150, 0.000000, 0.000000, -37.619998, 65003);
  20588. CreateDynamicObject(2253, 2313.319824, -10.674360, 13.125280, 0.000000, 0.000000, -44.099990, 65003);
  20589. CreateDynamicObject(11745, 2307.162597, -15.873900, 13.326148, 0.000000, 0.000000, -103.260002, 65003);
  20590. CreateDynamicObject(2253, 2307.050537, -14.793028, 13.521638, 0.000000, 0.000000, -84.839996, 65003);
  20591. CreateDynamicObject(2202, 2319.861572, -17.576759, 12.396400, 0.000000, 0.000000, 180.000000, 65003);
  20592. CreateDynamicObject(2202, 2316.835693, -17.576799, 12.396400, 0.000000, 0.000000, 180.000000, 65003);
  20593. CreateDynamicObject(2007, 2317.843261, -17.663129, 12.366900, 0.000000, 0.000000, 180.000000, 65003);
  20594. CreateDynamicObject(2167, 2317.345947, -12.186658, 12.371560, 0.000000, 0.000000, -90.000000, 65003);
  20595. CreateDynamicObject(2167, 2317.345947, -14.043700, 12.371600, 0.000000, 0.000000, -90.000000, 65003);
  20596. CreateDynamicObject(2069, 2316.930175, -13.091210, 12.446998, 0.000000, 0.000000, 0.000000, 65003);
  20597. CreateDynamicObject(1886, 2316.864013, -11.405098, 15.872598, 10.000000, 0.000000, -76.860000, 65003);
  20598. CreateDynamicObject(1886, 2316.864013, -14.726498, 15.872598, 10.000000, 0.000000, -96.599998, 65003);
  20599. CreateDynamicObject(1886, 2304.690429, -17.776500, 15.955100, 10.000000, 0.000000, 121.379997, 65003);
  20600. CreateDynamicObject(2634, 2320.315917, -15.724633, 13.810798, 0.000000, 0.000000, -59.700019, 65003);
  20601. CreateDynamicObject(11745, 2320.764892, -14.015052, 13.266149, 0.000000, 0.000000, 164.039993, 65003);
  20602. //SMB COMPLEX
  20603. retexture = CreateDynamicObject(19377, 609.362121, -1528.669677, -1.255939, 0.000000, 90.000000, 0.000000, 85001);
  20604. SetDynamicObjectMaterial(retexture, 0, 16640, "a51", "ws_stationfloor", 0x00000000);
  20605. retexture = CreateDynamicObject(19377, 601.231506, -1528.669677, -1.256899, 0.000000, 90.000000, 0.000000, 85001);
  20606. SetDynamicObjectMaterial(retexture, 0, 16640, "a51", "ws_stationfloor", 0x00000000);
  20607. retexture = CreateDynamicObject(19377, 601.231506, -1538.299560, -1.256899, 0.000000, 90.000000, 0.000000, 85001);
  20608. SetDynamicObjectMaterial(retexture, 0, 16640, "a51", "ws_stationfloor", 0x00000000);
  20609. retexture = CreateDynamicObject(19377, 609.362121, -1538.299560, -1.255900, 0.000000, 90.000000, 0.000000, 85001);
  20610. SetDynamicObjectMaterial(retexture, 0, 16640, "a51", "ws_stationfloor", 0x00000000);
  20611. retexture = CreateDynamicObject(19461, 610.543579, -1523.824096, 0.555100, 0.000000, 0.000000, 90.000000, 85001);
  20612. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20613. retexture = CreateDynamicObject(19461, 609.486083, -1535.462524, 0.550000, 0.000000, 0.000000, 90.000000, 85001);
  20614. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20615. retexture = CreateDynamicObject(19461, 596.228210, -1532.013671, 0.550000, 0.000000, 0.000000, 0.000000, 85001);
  20616. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20617. retexture = CreateDynamicObject(19461, 614.316711, -1530.694335, 0.550000, 0.000000, 0.000000, 180.000000, 85001);
  20618. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20619. retexture = CreateDynamicObject(19461, 614.315673, -1521.060546, 0.550000, 0.000000, 0.000000, 180.000000, 85001);
  20620. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20621. retexture = CreateDynamicObject(19461, 599.871887, -1535.464355, 0.550000, 0.000000, 0.000000, 90.000000, 85001);
  20622. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20623. retexture = CreateDynamicObject(19461, 600.909179, -1523.824096, 0.555100, 0.000000, 0.000000, 90.000000, 85001);
  20624. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20625. retexture = CreateDynamicObject(19461, 596.228271, -1522.383422, 0.550000, 0.000000, 0.000000, 0.000000, 85001);
  20626. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20627. retexture = CreateDynamicObject(19461, 614.315673, -1521.060546, 4.048799, 0.000000, 0.000000, 180.000000, 85001);
  20628. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20629. retexture = CreateDynamicObject(19461, 614.316711, -1530.694335, 4.048799, 0.000000, 0.000000, 180.000000, 85001);
  20630. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20631. retexture = CreateDynamicObject(19461, 609.505981, -1535.464355, 4.048799, 0.000000, 0.000000, 90.000000, 85001);
  20632. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20633. retexture = CreateDynamicObject(19461, 599.871887, -1535.464355, 4.048799, 0.000000, 0.000000, 90.000000, 85001);
  20634. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20635. retexture = CreateDynamicObject(19461, 596.282226, -1532.013671, 4.048799, 0.000000, 0.000000, 0.000000, 85001);
  20636. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20637. retexture = CreateDynamicObject(19461, 596.228271, -1522.383422, 4.048799, 0.000000, 0.000000, 0.000000, 85001);
  20638. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20639. retexture = CreateDynamicObject(19461, 600.909179, -1523.824096, 4.048799, 0.000000, 0.000000, 90.000000, 85001);
  20640. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20641. retexture = CreateDynamicObject(19461, 610.543579, -1523.824096, 4.048799, 0.000000, 0.000000, 90.000000, 85001);
  20642. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20643. retexture = CreateDynamicObject(19461, 610.543579, -1523.824096, 4.048799, 0.000000, 0.000000, 90.000000, 85001);
  20644. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20645. retexture = CreateDynamicObject(19461, 610.543579, -1523.824096, 4.048799, 0.000000, 0.000000, 90.000000, 85001);
  20646. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20647. retexture = CreateDynamicObject(2134, 612.073486, -1533.615600, -1.169999, 0.000000, 0.000000, 0.000000, 85001);
  20648. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20649. SetDynamicObjectMaterial(retexture, 1, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20650. SetDynamicObjectMaterial(retexture, 2, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20651. SetDynamicObjectMaterial(retexture, 3, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20652. SetDynamicObjectMaterial(retexture, 4, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20653. SetDynamicObjectMaterial(retexture, 5, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20654. retexture = CreateDynamicObject(2134, 611.073486, -1533.615600, -1.169999, 0.000000, 0.000000, 0.000000, 85001);
  20655. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20656. SetDynamicObjectMaterial(retexture, 1, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20657. SetDynamicObjectMaterial(retexture, 2, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20658. SetDynamicObjectMaterial(retexture, 3, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20659. SetDynamicObjectMaterial(retexture, 4, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20660. SetDynamicObjectMaterial(retexture, 5, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20661. retexture = CreateDynamicObject(2134, 610.093566, -1533.615600, -1.169999, 0.000000, 0.000000, 0.000000, 85001);
  20662. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20663. SetDynamicObjectMaterial(retexture, 1, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20664. SetDynamicObjectMaterial(retexture, 2, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20665. SetDynamicObjectMaterial(retexture, 3, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20666. SetDynamicObjectMaterial(retexture, 4, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20667. SetDynamicObjectMaterial(retexture, 5, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20668. retexture = CreateDynamicObject(2134, 610.103454, -1533.155273, -1.171000, 0.000000, 0.000000, 180.000000, 85001);
  20669. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20670. SetDynamicObjectMaterial(retexture, 1, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20671. SetDynamicObjectMaterial(retexture, 2, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20672. SetDynamicObjectMaterial(retexture, 3, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20673. SetDynamicObjectMaterial(retexture, 4, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20674. SetDynamicObjectMaterial(retexture, 5, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20675. retexture = CreateDynamicObject(2134, 611.083740, -1533.155273, -1.171000, 0.000000, 0.000000, 180.000000, 85001);
  20676. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20677. SetDynamicObjectMaterial(retexture, 1, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20678. SetDynamicObjectMaterial(retexture, 2, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20679. SetDynamicObjectMaterial(retexture, 3, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20680. SetDynamicObjectMaterial(retexture, 4, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20681. SetDynamicObjectMaterial(retexture, 5, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20682. retexture = CreateDynamicObject(2134, 612.083557, -1533.155273, -1.171000, 0.000000, 0.000000, 180.000000, 85001);
  20683. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20684. SetDynamicObjectMaterial(retexture, 1, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20685. SetDynamicObjectMaterial(retexture, 2, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20686. SetDynamicObjectMaterial(retexture, 3, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20687. SetDynamicObjectMaterial(retexture, 4, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20688. SetDynamicObjectMaterial(retexture, 5, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20689. retexture = CreateDynamicObject(19427, 610.399047, -1532.932739, -2.039999, 0.000000, 0.000000, 90.000000, 85001);
  20690. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20691. retexture = CreateDynamicObject(19427, 611.779296, -1532.931762, -2.039999, 0.000000, 0.000000, 90.000000, 85001);
  20692. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20693. retexture = CreateDynamicObject(19427, 611.779296, -1533.842529, -2.039999, 0.000000, 0.000000, 90.000000, 85001);
  20694. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20695. retexture = CreateDynamicObject(19427, 610.399169, -1533.843505, -2.039999, 0.000000, 0.000000, 90.000000, 85001);
  20696. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20697. retexture = CreateDynamicObject(19427, 610.399169, -1533.843505, -2.039999, 0.000000, 0.000000, 90.000000, 85001);
  20698. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20699. retexture = CreateDynamicObject(19427, 610.399169, -1533.843505, -2.039999, 0.000000, 0.000000, 90.000000, 85001);
  20700. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20701. retexture = CreateDynamicObject(19427, 610.399169, -1533.843505, -2.039999, 0.000000, 0.000000, 90.000000, 85001);
  20702. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20703. retexture = CreateDynamicObject(19427, 610.399169, -1533.843505, -2.039999, 0.000000, 0.000000, 90.000000, 85001);
  20704. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20705. SetDynamicObjectMaterial(retexture, 1, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20706. SetDynamicObjectMaterial(retexture, 2, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20707. SetDynamicObjectMaterial(retexture, 3, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20708. retexture = CreateDynamicObject(19579, 609.942932, -1533.407348, -0.259959, 0.000000, 0.000000, 22.399999, 85001);
  20709. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "white", 0x00000000);
  20710. retexture = CreateDynamicObject(19610, 609.942321, -1533.419921, -0.016279, -81.899978, 0.000000, 0.000000, 85001);
  20711. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "white", 0x00000000);
  20712. retexture = CreateDynamicObject(2269, 610.181213, -1533.877441, 0.115290, -13.500000, 0.000000, 30.299999, 85001);
  20713. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20714. SetDynamicObjectMaterial(retexture, 1, 10765, "airportgnd_sfse", "white", 0x00000000);
  20715. retexture = CreateDynamicObject(2269, 609.739074, -1533.077392, -0.103929, 13.600000, 0.000000, 210.300003, 85001);
  20716. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "white", 0x00000000);
  20717. SetDynamicObjectMaterial(retexture, 1, 10765, "airportgnd_sfse", "white", 0x00000000);
  20718. retexture = CreateDynamicObject(2269, 610.186096, -1533.885742, 0.117619, -13.500000, 0.000000, 30.299999, 85001);
  20719. SetDynamicObjectMaterial(retexture, 1, 19297, "matlights", "invisible", 0x00000000);
  20720. SetDynamicObjectMaterialText(retexture, 0, "Santa Maria Apartments", 90, "Ariel", 20, 1, 0xFFFF0000, 0x00000000, 1);
  20721. retexture = CreateDynamicObject(1761, 613.730224, -1528.623779, -1.169999, 0.000000, 0.000000, 270.000000, 85001);
  20722. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20723. SetDynamicObjectMaterial(retexture, 1, 10765, "airportgnd_sfse", "white", 0x00000000);
  20724. retexture = CreateDynamicObject(19461, 614.285644, -1530.694335, -2.799999, 0.000000, 0.000000, 180.000000, 85001);
  20725. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC);
  20726. retexture = CreateDynamicObject(19461, 604.305725, -1533.014038, 0.550000, 0.000000, 0.000000, 180.000000, 85001);
  20727. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20728. retexture = CreateDynamicObject(19461, 614.285644, -1519.754516, -2.799999, 0.000000, 0.000000, 180.000000, 85001);
  20729. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC);
  20730. retexture = CreateDynamicObject(19461, 614.285644, -1523.855468, -2.799999, 0.000000, 0.000000, 270.000000, 85001);
  20731. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC);
  20732. retexture = CreateDynamicObject(19461, 612.715576, -1535.436157, -2.799999, 0.000000, 0.000000, 270.000000, 85001);
  20733. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC);
  20734. retexture = CreateDynamicObject(19461, 603.124633, -1535.436157, -2.799999, 0.000000, 0.000000, 270.000000, 85001);
  20735. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC);
  20736. retexture = CreateDynamicObject(19461, 593.487487, -1535.436157, -2.799999, 0.000000, 0.000000, 270.000000, 85001);
  20737. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC);
  20738. retexture = CreateDynamicObject(19461, 604.649719, -1523.856201, -2.799999, 0.000000, 0.000000, 270.000000, 85001);
  20739. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC);
  20740. retexture = CreateDynamicObject(19461, 595.016174, -1523.856201, -2.799999, 0.000000, 0.000000, 270.000000, 85001);
  20741. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC);
  20742. retexture = CreateDynamicObject(19461, 596.265808, -1523.856201, -2.801000, 0.000000, 0.000000, 360.000000, 85001);
  20743. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC);
  20744. retexture = CreateDynamicObject(19461, 596.265808, -1533.475952, -2.801000, 0.000000, 0.000000, 360.000000, 85001);
  20745. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC);
  20746. retexture = CreateDynamicObject(19461, 604.292480, -1533.003051, -2.789000, 0.000000, 0.000000, 180.000000, 85001);
  20747. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC);
  20748. retexture = CreateDynamicObject(19355, 596.285217, -1526.604370, -0.021999, 0.000000, 0.000000, 0.000000, 85001);
  20749. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20750. retexture = CreateDynamicObject(19355, 596.284179, -1525.694091, -0.020999, 0.000000, 0.000000, 0.000000, 85001);
  20751. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20752. retexture = CreateDynamicObject(18756, 598.159729, -1526.093994, 0.718999, 0.000000, 0.000000, 0.000000, 85001);
  20753. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20754. retexture = CreateDynamicObject(18756, 594.353515, -1526.170043, 0.718999, 0.000000, 0.000000, 180.000000, 85001);
  20755. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20756. retexture = CreateDynamicObject(19461, 597.741577, -1533.198242, 0.550000, 0.000000, 0.000000, 90.000000, 85001);
  20757. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20758. retexture = CreateDynamicObject(19461, 607.805725, -1533.014038, 0.550000, 0.000000, 0.000000, 180.000000, 85001);
  20759. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20760. retexture = CreateDynamicObject(19461, 607.815673, -1533.004028, -2.789999, 0.000000, 0.000000, 180.000000, 85001);
  20761. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC);
  20762. retexture = CreateDynamicObject(19355, 596.284179, -1530.439086, -0.020999, 0.000000, 0.000000, 0.000000, 85001);
  20763. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20764. retexture = CreateDynamicObject(19355, 596.285217, -1531.349365, -0.021999, 0.000000, 0.000000, 0.000000, 85001);
  20765. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20766. retexture = CreateDynamicObject(18756, 594.353515, -1530.915039, 0.718999, 0.000000, 0.000000, 180.000000, 85001);
  20767. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20768. retexture = CreateDynamicObject(18756, 598.159729, -1530.838989, 0.718999, 0.000000, 0.000000, 0.000000, 85001);
  20769. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20770. retexture = CreateDynamicObject(19461, 597.755615, -1533.178222, -2.801000, 0.000000, 0.000000, 90.000000, 85001);
  20771. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC);
  20772. retexture = CreateDynamicObject(19461, 597.753601, -1533.214233, -2.802999, 0.000000, 0.000000, 90.000000, 85001);
  20773. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC);
  20774. retexture = CreateDynamicObject(19369, 605.826599, -1528.284301, 0.550000, 0.000000, 0.000000, 90.000000, 85001);
  20775. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20776. retexture = CreateDynamicObject(19369, 606.287170, -1528.282348, 0.550000, 0.000000, 0.000000, 90.000000, 85001);
  20777. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20778. retexture = CreateDynamicObject(19369, 605.810607, -1528.274291, -2.790999, 0.000000, 0.000000, 90.000000, 85001);
  20779. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC);
  20780. retexture = CreateDynamicObject(19369, 606.297180, -1528.272338, -2.786999, 0.000000, 0.000000, 90.000000, 85001);
  20781. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC);
  20782. retexture = CreateDynamicObject(19579, 596.358276, -1528.733764, 0.133460, 0.000000, -90.000000, 0.000000, 85001);
  20783. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "white", 0x00000000);
  20784. retexture = CreateDynamicObject(19579, 596.358276, -1528.315795, 0.133499, 0.000000, -90.000000, 0.000000, 85001);
  20785. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "white", 0x00000000);
  20786. retexture = CreateDynamicObject(19579, 596.264282, -1526.166137, 1.773499, 0.000000, 0.000000, 90.000000, 85001);
  20787. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "white", 0x00000000);
  20788. retexture = CreateDynamicObject(19579, 596.264282, -1530.897460, 1.773499, 0.000000, 0.000000, 90.000000, 85001);
  20789. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "white", 0x00000000);
  20790. retexture = CreateDynamicObject(1761, 608.397277, -1530.636474, -1.169999, 0.000000, 0.000000, -270.000000, 85001);
  20791. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000);
  20792. SetDynamicObjectMaterial(retexture, 1, 10765, "airportgnd_sfse", "white", 0x00000000);
  20793. retexture = CreateDynamicObject(19377, 601.254394, -1528.469604, 2.199399, 0.000000, 90.000000, 0.000000, 85001);
  20794. SetDynamicObjectMaterial(retexture, 0, 16640, "a51", "ws_stationfloor", 0x00000000);
  20795. retexture = CreateDynamicObject(19377, 611.755004, -1528.469604, 2.199399, 0.000000, 90.000000, 0.000000, 85001);
  20796. SetDynamicObjectMaterial(retexture, 0, 16640, "a51", "ws_stationfloor", 0x00000000);
  20797. retexture = CreateDynamicObject(19377, 611.755004, -1538.101318, 2.201400, 0.000000, 90.000000, 0.000000, 85001);
  20798. SetDynamicObjectMaterial(retexture, 0, 16640, "a51", "ws_stationfloor", 0x00000000);
  20799. retexture = CreateDynamicObject(19461, 604.302612, -1533.033813, 4.048799, 0.000000, 0.000000, 180.000000, 85001);
  20800. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20801. retexture = CreateDynamicObject(19461, 602.545776, -1533.198242, 4.048799, 0.000000, 0.000000, 90.000000, 85001);
  20802. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20803. retexture = CreateDynamicObject(19461, 607.805725, -1533.014038, 4.048799, 0.000000, 0.000000, 180.000000, 85001);
  20804. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20805. retexture = CreateDynamicObject(19369, 606.287170, -1528.282348, 4.048799, 0.000000, 0.000000, 90.000000, 85001);
  20806. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20807. retexture = CreateDynamicObject(19369, 603.082092, -1528.284301, 4.048799, 0.000000, 0.000000, 90.000000, 85001);
  20808. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20809. retexture = CreateDynamicObject(19369, 601.565307, -1529.801513, 4.048799, 0.000000, 0.000000, 0.000000, 85001);
  20810. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20811. retexture = CreateDynamicObject(19369, 601.563293, -1531.662963, 4.048799, 0.000000, 0.000000, 0.000000, 85001);
  20812. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20813. retexture = CreateDynamicObject(19355, 596.285217, -1531.349365, 3.977999, 0.000000, 0.000000, 0.000000, 85001);
  20814. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20815. retexture = CreateDynamicObject(19355, 596.284179, -1530.439086, 3.979000, 0.000000, 0.000000, 0.000000, 85001);
  20816. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20817. retexture = CreateDynamicObject(19579, 596.348327, -1530.897460, 5.273499, 0.000000, 0.000000, 90.000000, 85001);
  20818. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "white", 0x00000000);
  20819. retexture = CreateDynamicObject(19579, 596.384277, -1528.733764, 3.633500, 0.000000, -90.000000, 0.000000, 85001);
  20820. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "white", 0x00000000);
  20821. retexture = CreateDynamicObject(19579, 596.384277, -1528.315795, 3.633500, 0.000000, -90.000000, 0.000000, 85001);
  20822. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "white", 0x00000000);
  20823. retexture = CreateDynamicObject(18756, 594.353515, -1530.915039, 4.218999, 0.000000, 0.000000, 180.000000, 85001);
  20824. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20825. retexture = CreateDynamicObject(18756, 598.159729, -1530.838989, 4.218999, 0.000000, 0.000000, 0.000000, 85001);
  20826. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20827. retexture = CreateDynamicObject(19355, 596.285217, -1526.604370, 3.977999, 0.000000, 0.000000, 0.000000, 85001);
  20828. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20829. retexture = CreateDynamicObject(18756, 598.159729, -1526.093994, 4.218999, 0.000000, 0.000000, 0.000000, 85001);
  20830. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20831. retexture = CreateDynamicObject(18756, 594.353515, -1526.170043, 4.218999, 0.000000, 0.000000, 180.000000, 85001);
  20832. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20833. retexture = CreateDynamicObject(19355, 596.284179, -1525.694091, 3.979000, 0.000000, 0.000000, 0.000000, 85001);
  20834. SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000);
  20835. retexture = CreateDynamicObject(19579, 596.348327, -1526.166137, 5.273499, 0.000000, 0.000000, 90.000000, 85001);
  20836. SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "white", 0x00000000);
  20837. retexture = CreateDynamicObject(19461, 596.288208, -1528.139648, 6.968800, 0.000000, 0.000000, 0.000000, 85001);
  20838. SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC);
  20839. retexture = CreateDynamicObject(19175, 614.235229, -1529.649291, 0.711199, 0.000000, 0.000000, -90.000000, 85001);
  20840. SetDynamicObjectMaterial(retexture, 0, 15041, "bigsfsave", "windo_blinds", 0x00000000);
  20841. retexture = CreateDynamicObject(19174, 611.170593, -1535.375854, 0.688799, 0.000000, 0.000000, 180.000000, 85001);
  20842. SetDynamicObjectMaterialText(retexture, 0, "Santa Maria Beach\nApartment Complex", 40, "Ariel", 15, 1, 0xFF000000, 0x00000000, 1);
  20843. CreateDynamicObject(18981, 604.461608, -1534.509155, -1.702280, 0.000000, 90.000000, 0.000000, 85001);
  20844. CreateDynamicObject(1569, 614.253967, -1527.479858, -1.169999, 0.000000, 0.000000, 90.000000, 85001);
  20845. CreateDynamicObject(1569, 614.243957, -1524.478637, -1.169999, 0.000000, 0.000000, 270.000000, 85001);
  20846. CreateDynamicObject(2000, 608.483703, -1535.360229, 0.039999, 0.000000, 0.000000, 180.000000, 85001);
  20847. CreateDynamicObject(2000, 608.953674, -1535.360229, 0.039999, 0.000000, 0.000000, 180.000000, 85001);
  20848. CreateDynamicObject(2000, 609.423645, -1535.360229, 0.039999, 0.000000, 0.000000, 180.000000, 85001);
  20849. CreateDynamicObject(2000, 613.833618, -1535.360229, 0.039999, 0.000000, 0.000000, 180.000000, 85001);
  20850. CreateDynamicObject(2000, 613.373535, -1535.360229, 0.039999, 0.000000, 0.000000, 180.000000, 85001);
  20851. CreateDynamicObject(2000, 612.903442, -1535.360229, 0.039999, 0.000000, 0.000000, 180.000000, 85001);
  20852. CreateDynamicObject(19808, 610.493896, -1533.598632, -0.109959, 0.000000, 0.000000, 14.500000, 85001);
  20853. CreateDynamicObject(2253, 612.330932, -1533.148925, 0.140000, 0.000000, 0.000000, 0.000000, 85001);
  20854. CreateDynamicObject(2894, 611.673522, -1533.333862, -0.119999, 0.000000, 0.000000, -173.799987, 85001);
  20855. CreateDynamicObject(19792, 611.086486, -1533.293823, -0.109959, 0.000000, 0.000000, -23.299999, 85001);
  20856. CreateDynamicObject(19792, 610.810974, -1533.175292, -0.109959, 0.000000, 0.000000, -112.999992, 85001);
  20857. CreateDynamicObject(19378, 610.079711, -1535.509277, -1.169999, 0.000000, 0.000000, 90.000000, 85001);
  20858. CreateDynamicObject(2270, 613.739013, -1531.452514, 0.310000, 0.000000, 0.000000, 270.000000, 85001);
  20859. CreateDynamicObject(14410, 599.558593, -1535.186767, -0.884299, 0.000000, 0.000000, 90.000000, 85001);
  20860. CreateDynamicObject(19379, 601.254394, -1528.467895, 2.213399, 0.000000, 90.000000, 0.000000, 85001);
  20861. CreateDynamicObject(19379, 611.755004, -1528.467895, 2.213399, 0.000000, 90.000000, 0.000000, 85001);
  20862. CreateDynamicObject(19379, 609.468200, -1538.101318, 2.213399, 0.000000, 90.000000, 0.000000, 85001);
  20863. CreateDynamicObject(1504, 601.829956, -1528.244018, 2.269320, 0.000000, 0.000000, 0.000000, 85001);
  20864. CreateDynamicObject(1504, 607.889770, -1529.920410, 2.269299, 0.000000, 0.000000, 90.000000, 85001);
  20865. CreateDynamicObject(1504, 610.292907, -1535.408569, 2.269299, 0.000000, 0.000000, 0.000000, 85001);
  20866. CreateDynamicObject(1504, 614.260620, -1534.509521, 2.269299, 0.000000, 0.000000, 90.000000, 85001);
  20867. CreateDynamicObject(1504, 612.210815, -1523.908935, 2.269299, 0.000000, 0.000000, 0.000000, 85001);
  20868. CreateDynamicObject(1504, 608.272888, -1523.908935, 2.269299, 0.000000, 0.000000, 0.000000, 85001);
  20869. CreateDynamicObject(1504, 614.260620, -1529.920410, 2.269299, 0.000000, 0.000000, 90.000000, 85001);
  20870. CreateDynamicObject(1504, 607.889770, -1534.509521, 2.269299, 0.000000, 0.000000, 90.000000, 85001);
  20871. CreateDynamicObject(1504, 601.830017, -1523.908935, 2.269299, 0.000000, 0.000000, 0.000000, 85001);
  20872. CreateDynamicObject(18981, 604.461608, -1534.509155, 6.229360, 0.000000, 90.000000, 0.000000, 85001);
  20873. CreateDynamicObject(2270, 608.39471, -1531.40259, 0.31000, 0.00000, 0.00000, 90.00000, 85001);
  20874. CreateDynamicObject(19174, 607.88068, -1529.61597, 0.68880, 0.00000, 0.00000, 90.00000, 85001);
  20875. CreateDynamicObject(2257, 601.13458, -1533.04004, 0.65192, 0.00000, 0.00000, 180.00000, 85001);
  20876. CreateDynamicObject(1726, 600.04333, -1532.53369, 2.29980, 0.00000, 0.00000, 180.00000, 85001);
  20877. CreateDynamicObject(1726, 600.80865, -1529.65161, 2.29980, 0.00000, 0.00000, -90.00000, 85001);
  20878. CreateDynamicObject(2010, 600.96014, -1532.60376, 2.29910, 0.00000, 0.00000, 0.00000, 85001);
  20879. CreateDynamicObject(1827, 598.86340, -1530.68237, 2.30008, 0.00000, 0.00000, 0.00000, 85001);
  20880. CreateDynamicObject(2256, 609.1511, -1535.35425, 4.1013, 0.00000, 0.00000, 180.00000, 85001);
  20881. CreateDynamicObject(2254, 612.94708, -1535.35425, 4.10130, 0.00000, 0.00000, 180.00000, 85001);
  20882. CreateDynamicObject(2260, 608.36841, -1531.47961, 4.14680, 0.00000, 0.00000, 90.00000, 85001);
  20883. CreateDynamicObject(2264, 613.73242, -1531.48535, 4.14680, 0.00000, 0.00000, -90.00000, 85001);
  20884. CreateDynamicObject(2010, 608.48383, -1534.80164, 2.29910, 0.00000, 0.00000, 0.00000, 85001);
  20885. CreateDynamicObject(2010, 613.80621, -1534.91443, 2.29910, 0.00000, 0.00000, 53.46000, 85001);
  20886. CreateDynamicObject(2257, 605.82928, -1528.17200, 4.14700, 0.00000, 0.00000, 180.00000, 85001);
  20887. CreateDynamicObject(2835, 610.55408, -1535.08630, 2.30027, 0.00000, 0.00000, 0.00000, 85001);
  20888. CreateDynamicObject(2835, 609.17139, -1534.14648, 2.30030, 0.00000, 0.00000, 90.00000, 85001);
  20889. CreateDynamicObject(2835, 609.19354, -1529.66650, 2.30030, 0.00000, 0.00000, 90.00000, 85001);
  20890. CreateDynamicObject(2835, 613.94513, -1534.28809, 2.30030, 0.00000, 0.00000, 90.00000, 85001);
  20891. CreateDynamicObject(2835, 613.90796, -1529.72852, 2.30030, 0.00000, 0.00000, 90.00000, 85001);
  20892. CreateDynamicObject(2835, 612.55695, -1525.25928, 2.30027, 0.00000, 0.00000, 0.00000, 85001);
  20893. CreateDynamicObject(2835, 608.73480, -1525.28967, 2.30027, 0.00000, 0.00000, 0.00000, 85001);
  20894. CreateDynamicObject(2835, 602.10596, -1525.19360, 2.30027, 0.00000, 0.00000, 0.00000, 85001);
  20895. CreateDynamicObject(2835, 602.15741, -1527.78870, 2.30027, 0.00000, 0.00000, 0.00000, 85001);
  20896. //admin jail
  20897. retexture = CreateDynamicObject(19370, 217.351898, -157.537399, 1001.065185, 0.000000, 0.000000, 0.000000, 99999);
  20898. SetDynamicObjectMaterial(retexture, 0, 6094, "canalsg_law", "sw_brewbrick01", 0x00000000);
  20899. retexture = CreateDynamicObject(19370, 217.337493, -153.480499, 1001.065185, 0.000000, 0.000000, 0.000000, 99999);
  20900. SetDynamicObjectMaterial(retexture, 0, 6094, "canalsg_law", "sw_brewbrick01", 0x00000000);
  20901. retexture = CreateDynamicObject(19370, 217.334503, -155.677505, 998.143188, 0.000000, 0.000000, 0.000000, 99999);
  20902. SetDynamicObjectMaterial(retexture, 0, 6094, "canalsg_law", "sw_brewbrick01", 0x00000000);
  20903. retexture = CreateDynamicObject(19370, 217.334503, -155.677505, 1003.339172, 0.000000, 0.000000, 0.000000, 99999);
  20904. SetDynamicObjectMaterial(retexture, 0, 6094, "canalsg_law", "sw_brewbrick01", 0x00000000);
  20905. retexture = CreateDynamicObject(19370, 215.903823, -157.592285, 1001.065185, 0.000000, 0.000000, 90.000000, 99999);
  20906. SetDynamicObjectMaterial(retexture, 0, 6094, "canalsg_law", "sw_brewbrick01", 0x00000000);
  20907. retexture = CreateDynamicObject(19370, 215.754928, -154.478637, 1001.065185, 0.000000, 0.000000, 90.000000, 99999);
  20908. SetDynamicObjectMaterial(retexture, 0, 6094, "canalsg_law", "sw_brewbrick01", 0x00000000);
  20909. retexture = CreateDynamicObject(19370, 214.442123, -156.057479, 1001.065185, 0.000000, 0.000000, 0.000000, 99999);
  20910. SetDynamicObjectMaterial(retexture, 0, 6094, "canalsg_law", "sw_brewbrick01", 0x00000000);
  20911. retexture = CreateDynamicObject(19370, 215.558242, -156.146926, 999.455444, 0.000000, 90.000000, 0.000000, 99999);
  20912. SetDynamicObjectMaterial(retexture, 0, 6094, "canalsg_law", "sw_brewbrick01", 0x00000000);
  20913. retexture = CreateDynamicObject(19370, 215.558242, -156.146926, 1002.631713, 0.000000, 90.000000, 0.000000, 99999);
  20914. SetDynamicObjectMaterial(retexture, 0, 6094, "canalsg_law", "sw_brewbrick01", 0x00000000);
  20915. retexture = CreateDynamicObject(19372, 217.420059, -156.136169, 1000.266662, 0.000000, 0.000000, 0.000000, 99999);
  20916. SetDynamicObjectMaterial(retexture, 0, 19297, "matlights", "invisible", 0x00000000);
  20917. // Complex
  20918. CreateDynamicObject(14596, 416.92703, 512.25531, 1000.41016, 0.00000, 0.00000, 0.00000);
  20919. CreateDynamicObject(18765, 411.47760, 517.00049, 987.22772, 0.00000, 0.00000, 0.00000);
  20920. CreateDynamicObject(18765, 401.47760, 517.00049, 987.22772, 0.00000, 0.00000, 0.00000);
  20921. CreateDynamicObject(19447, 416.50781, 517.64398, 991.46301, 0.00000, 0.00000, 0.00000);
  20922. CreateDynamicObject(19447, 411.64780, 522.00403, 991.46301, 0.00000, 0.00000, 90.00000);
  20923. CreateDynamicObject(19447, 402.01199, 522.00403, 991.46301, 0.00000, 0.00000, 90.00000);
  20924. CreateDynamicObject(19447, 397.14780, 517.64398, 991.46301, 0.00000, 0.00000, 0.00000);
  20925. CreateDynamicObject(19447, 408.42999, 513.37372, 991.46301, 0.00000, 0.00000, 90.00000);
  20926. CreateDynamicObject(19447, 398.79401, 513.37372, 991.46301, 0.00000, 0.00000, 90.00000);
  20927. CreateDynamicObject(19377, 411.18051, 518.18579, 993.29871, 0.00000, 90.00000, 0.00000);
  20928. CreateDynamicObject(19377, 400.67899, 518.18579, 993.29871, 0.00000, 90.00000, 0.00000);
  20929. CreateDynamicObject(19378, 406.32169, 516.23523, 995.42938, 0.00000, 90.00000, 0.00000);
  20930. CreateDynamicObject(19378, 395.82001, 516.23523, 995.42938, 0.00000, 90.00000, 0.00000);
  20931. CreateDynamicObject(19389, 410.56879, 516.03308, 997.26978, 0.00000, 0.00000, 0.00000);
  20932. CreateDynamicObject(19451, 406.71121, 512.82239, 997.26978, 0.00000, 0.00000, 90.00000);
  20933. CreateDynamicObject(19432, 411.07379, 513.87018, 997.26978, 0.00000, 0.00000, 40.00000);
  20934. CreateDynamicObject(19432, 411.07379, 518.19019, 997.26978, 0.00000, 0.00000, -40.00000);
  20935. CreateDynamicObject(19359, 411.58099, 512.56390, 997.26978, 0.00000, 0.00000, 0.00000);
  20936. CreateDynamicObject(19359, 411.58099, 519.68390, 997.26978, 0.00000, 0.00000, 0.00000);
  20937. CreateDynamicObject(19451, 406.71121, 519.26239, 997.26978, 0.00000, 0.00000, 90.00000);
  20938. CreateDynamicObject(19451, 397.07690, 519.26239, 997.26978, 0.00000, 0.00000, 90.00000);
  20939. CreateDynamicObject(19451, 397.07690, 512.82239, 997.26978, 0.00000, 0.00000, 90.00000);
  20940. CreateDynamicObject(19451, 393.73929, 516.21240, 997.26978, 0.00000, 0.00000, 0.00000);
  20941. CreateDynamicObject(19377, 406.32169, 516.23523, 999.09869, 0.00000, 90.00000, 0.00000);
  20942. CreateDynamicObject(19377, 395.82001, 516.23523, 999.09869, 0.00000, 90.00000, 0.00000);
  20943. CreateDynamicObject(19379, 406.34091, 515.88342, 1001.22858, 0.00000, 90.00000, 0.00000);
  20944. CreateDynamicObject(19379, 395.83890, 515.88342, 1001.22858, 0.00000, 90.00000, 0.00000);
  20945. CreateDynamicObject(19379, 406.34091, 506.24890, 1001.22858, 0.00000, 90.00000, 0.00000);
  20946. CreateDynamicObject(19379, 395.83890, 506.24890, 1001.22858, 0.00000, 90.00000, 0.00000);
  20947. CreateDynamicObject(19389, 410.56879, 516.03308, 1003.06580, 0.00000, 0.00000, 0.00000);
  20948. CreateDynamicObject(19359, 410.56879, 519.24432, 1003.06580, 0.00000, 0.00000, 0.00000);
  20949. CreateDynamicObject(19451, 403.36816, 518.04144, 1003.06580, 0.00000, 0.00000, 90.00000);
  20950. CreateDynamicObject(19451, 396.06921, 520.71039, 1003.06580, 0.00000, 0.00000, 90.00000);
  20951. CreateDynamicObject(19451, 392.76920, 515.81641, 1003.06580, 0.00000, 0.00000, 0.00000);
  20952. CreateDynamicObject(19451, 392.76920, 506.18188, 1003.06580, 0.00000, 0.00000, 0.00000);
  20953. CreateDynamicObject(19451, 396.06921, 501.39041, 1003.06580, 0.00000, 0.00000, 90.00000);
  20954. CreateDynamicObject(19451, 405.70319, 501.39041, 1003.06580, 0.00000, 0.00000, 90.00000);
  20955. CreateDynamicObject(19451, 410.56879, 509.61041, 1003.06580, 0.00000, 0.00000, 0.00000);
  20956. CreateDynamicObject(19451, 410.56879, 499.97589, 1003.06580, 0.00000, 0.00000, 0.00000);
  20957. CreateDynamicObject(19377, 406.34091, 515.88342, 1004.89673, 0.00000, 90.00000, 0.00000);
  20958. CreateDynamicObject(19377, 406.34091, 506.24890, 1004.89673, 0.00000, 90.00000, 0.00000);
  20959. CreateDynamicObject(19377, 395.83890, 506.24890, 1004.89673, 0.00000, 90.00000, 0.00000);
  20960. CreateDynamicObject(19377, 395.83890, 515.88342, 1004.89673, 0.00000, 90.00000, 0.00000);
  20961. CreateDynamicObject(19376, 406.80481, 515.88330, 1007.02887, 0.00000, 90.00000, 0.00000);
  20962. CreateDynamicObject(19385, 411.25900, 516.02570, 1008.86688, 0.00000, 0.00000, 0.00000);
  20963. CreateDynamicObject(19447, 411.25900, 509.60239, 1008.86688, 0.00000, 0.00000, 0.00000);
  20964. CreateDynamicObject(19447, 411.25900, 522.44843, 1008.86688, 0.00000, 0.00000, 0.00000);
  20965. CreateDynamicObject(19447, 406.38501, 519.48151, 1008.86688, 0.00000, 0.00000, 90.00000);
  20966. CreateDynamicObject(19447, 406.38501, 512.89648, 1008.86688, 0.00000, 0.00000, 90.00000);
  20967. CreateDynamicObject(19447, 401.54810, 515.88989, 1008.86688, 0.00000, 0.00000, 0.00000);
  20968. CreateDynamicObject(19377, 406.80481, 515.88330, 1010.70471, 0.00000, 90.00000, 0.00000);
  20969. CreateDynamicObject(1504, 408.63470, 519.41193, 1007.11139, 0.00000, 0.00000, 0.00000);
  20970. CreateDynamicObject(1504, 404.09869, 519.41193, 1007.11139, 0.00000, 0.00000, 0.00000);
  20971. CreateDynamicObject(1504, 404.09869, 512.93591, 1007.11139, 0.00000, 0.00000, 0.00000);
  20972. CreateDynamicObject(1504, 408.63470, 512.93591, 1007.11139, 0.00000, 0.00000, 0.00000);
  20973. CreateDynamicObject(17969, 401.66559, 516.27002, 1008.97131, 5.00000, 0.00000, 180.00000);
  20974. CreateDynamicObject(1499, 411.25339, 515.28931, 1007.10992, 0.00000, 0.00000, 90.00000);
  20975. CreateDynamicObject(19814, 411.18051, 517.05450, 1007.18518, 0.00000, 0.00000, -90.00000);
  20976. CreateDynamicObject(19829, 411.18451, 517.26178, 1008.47339, 0.00000, 90.00000, -90.00000);
  20977. CreateDynamicObject(19898, 408.32751, 516.39050, 1007.11920, 0.00000, 0.00000, 90.00000);
  20978. CreateDynamicObject(1728, 402.16400, 517.00311, 1007.11230, 0.00000, 0.00000, 80.00000);
  20979. CreateDynamicObject(1810, 404.00381, 515.96259, 1007.10608, 0.00000, 0.00000, 211.99930);
  20980. CreateDynamicObject(2062, 410.70651, 514.50580, 1007.51001, 0.00000, 90.00000, -80.00000);
  20981. CreateDynamicObject(4227, 407.51831, 519.48309, 1008.84589, 0.00000, 4.00000, 0.00000);
  20982. CreateDynamicObject(14840, 406.27219, 512.98218, 1009.02020, 0.00000, 0.00000, 90.00000);
  20983. CreateDynamicObject(2074, 407.61700, 516.54022, 1010.38220, 0.00000, 0.00000, 0.00000);
  20984. CreateDynamicObject(2672, 409.65253, 517.07941, 1007.39661, 0.00000, 0.00000, 80.00000);
  20985. CreateDynamicObject(2670, 409.60251, 515.00006, 1007.19531, 0.00000, 0.00000, 90.00000);
  20986. CreateDynamicObject(926, 410.85550, 518.12372, 1007.36731, 0.00000, 0.00000, 80.00000);
  20987. CreateDynamicObject(853, 402.55347, 513.98633, 1007.29041, 0.00000, 0.00000, 90.00000);
  20988. CreateDynamicObject(2672, 405.60379, 517.65729, 1007.39661, 0.00000, 0.00000, 40.00000);
  20989. CreateDynamicObject(11710, 411.09241, 516.04590, 1010.20062, -30.00000, 0.00000, 90.00000);
  20990. CreateDynamicObject(2961, 411.15659, 514.87860, 1008.55298, 0.00000, 0.00000, 90.00000);
  20991. CreateDynamicObject(2690, 407.03021, 513.14398, 1007.47662, 0.00000, 0.00000, 180.00000);
  20992. CreateDynamicObject(19451, 405.70319, 520.71039, 1003.06580, 0.00000, 0.00000, 90.00000);
  20993. CreateDynamicObject(19432, 408.09760, 517.32678, 1003.06580, 0.00000, 0.00000, 0.00000);
  20994. CreateDynamicObject(19451, 403.36819, 516.61139, 1003.06580, 0.00000, 0.00000, 90.00000);
  20995. CreateDynamicObject(19432, 397.74881, 518.04138, 1003.06580, 0.00000, 0.00000, 90.00000);
  20996. CreateDynamicObject(19451, 398.65219, 511.73941, 1003.06580, 0.00000, 0.00000, 0.00000);
  20997. CreateDynamicObject(19451, 403.36819, 504.03241, 1003.06580, 0.00000, 0.00000, 90.00000);
  20998. CreateDynamicObject(19451, 397.03619, 513.31439, 1003.06580, 0.00000, 0.00000, 0.00000);
  20999. CreateDynamicObject(19432, 408.09760, 504.74780, 1003.06580, 0.00000, 0.00000, 0.00000);
  21000. CreateDynamicObject(19451, 403.36819, 505.46240, 1003.06580, 0.00000, 0.00000, 90.00000);
  21001. CreateDynamicObject(19359, 399.62250, 506.58661, 1003.06580, 0.00000, 0.00000, 40.00000);
  21002. CreateDynamicObject(19432, 397.74881, 504.03241, 1003.06580, 0.00000, 0.00000, 90.00000);
  21003. CreateDynamicObject(19451, 397.03629, 508.80640, 1003.06580, 0.00000, 0.00000, 0.00000);
  21004. CreateDynamicObject(1506, 407.32529, 520.64380, 1001.31018, 0.00000, 0.00000, 0.00000);
  21005. CreateDynamicObject(1506, 404.11929, 520.64380, 1001.31018, 0.00000, 0.00000, 0.00000);
  21006. CreateDynamicObject(1506, 400.90329, 520.64380, 1001.31018, 0.00000, 0.00000, 0.00000);
  21007. CreateDynamicObject(1506, 397.69531, 520.64380, 1001.31018, 0.00000, 0.00000, 0.00000);
  21008. CreateDynamicObject(1506, 394.47531, 520.64380, 1001.31018, 0.00000, 0.00000, 0.00000);
  21009. CreateDynamicObject(1506, 394.47531, 501.43079, 1001.31018, 0.00000, 0.00000, 0.00000);
  21010. CreateDynamicObject(1506, 397.69531, 501.43079, 1001.31018, 0.00000, 0.00000, 0.00000);
  21011. CreateDynamicObject(1506, 400.90329, 501.43079, 1001.31018, 0.00000, 0.00000, 0.00000);
  21012. CreateDynamicObject(1506, 404.11929, 501.43079, 1001.31018, 0.00000, 0.00000, 0.00000);
  21013. CreateDynamicObject(1506, 407.32529, 501.43079, 1001.31018, 0.00000, 0.00000, 0.00000);
  21014. CreateDynamicObject(19451, 408.09760, 511.70441, 1003.06580, 0.00000, 0.00000, 0.00000);
  21015. CreateDynamicObject(19451, 406.66959, 511.70441, 1003.06580, 0.00000, 0.00000, 0.00000);
  21016. CreateDynamicObject(19432, 407.38290, 506.97531, 1003.06580, 0.00000, 0.00000, 90.00000);
  21017. CreateDynamicObject(19432, 408.09579, 505.94171, 1004.61780, 90.00000, 0.00000, 0.00000);
  21018. CreateDynamicObject(1499, 408.12189, 505.42490, 1001.31030, 0.00000, 0.00000, 90.00000);
  21019. CreateDynamicObject(1506, 392.83731, 503.01120, 1001.31018, 0.00000, 0.00000, 90.00000);
  21020. CreateDynamicObject(1506, 392.83731, 506.22519, 1001.31018, 0.00000, 0.00000, 90.00000);
  21021. CreateDynamicObject(1506, 392.83731, 509.43121, 1001.31018, 0.00000, 0.00000, 90.00000);
  21022. CreateDynamicObject(1506, 392.83731, 512.64520, 1001.31018, 0.00000, 0.00000, 90.00000);
  21023. CreateDynamicObject(1506, 392.83731, 515.85321, 1001.31018, 0.00000, 0.00000, 90.00000);
  21024. CreateDynamicObject(16151, 405.51581, 510.57431, 1001.64941, 0.00000, 0.00000, 0.00000);
  21025. CreateDynamicObject(2762, 400.70670, 507.55850, 1001.71649, 0.00000, 0.00000, -45.00000);
  21026. CreateDynamicObject(14820, 400.70041, 507.55209, 1002.19550, 0.00000, 0.00000, -45.00000);
  21027. CreateDynamicObject(2229, 399.67081, 509.41241, 1001.31641, 0.00000, 0.00000, 120.00000);
  21028. CreateDynamicObject(2232, 400.65781, 508.51529, 1001.80243, 0.00000, 0.00000, 135.00000);
  21029. CreateDynamicObject(2232, 401.15381, 508.00131, 1001.80243, 0.00000, 0.00000, 135.00000);
  21030. CreateDynamicObject(2232, 401.65979, 507.49530, 1001.80243, 0.00000, 0.00000, 135.00000);
  21031. CreateDynamicObject(2229, 402.01080, 507.07239, 1001.31641, 0.00000, 0.00000, 140.00000);
  21032. CreateDynamicObject(18653, 400.63800, 506.71500, 1006.80487, 0.00000, 180.00000, 1330.00000);
  21033. CreateDynamicObject(18654, 404.92310, 507.52710, 1006.99420, 0.00000, 180.00000, -59.00000);
  21034. CreateDynamicObject(18655, 406.07391, 515.88019, 1007.00873, 0.00000, 180.00000, 61.00000);
  21035. CreateDynamicObject(1432, 400.78052, 514.84216, 1001.42047, 0.00000, 0.00000, 0.00000);
  21036. CreateDynamicObject(1432, 400.72980, 512.10492, 1001.42047, 0.00000, 0.00000, 34.00000);
  21037. CreateDynamicObject(1510, 400.82150, 514.85168, 1002.04639, 0.00000, 0.00000, 0.00000);
  21038. CreateDynamicObject(1510, 404.61917, 513.57800, 1002.28638, 0.00000, 0.00000, 0.00000);
  21039. CreateDynamicObject(1510, 404.74768, 509.30911, 1002.28638, 0.00000, 0.00000, 0.00000);
  21040. CreateDynamicObject(19620, 399.64621, 506.81580, 1003.21411, -90.00000, 0.00000, -48.71040);
  21041. CreateDynamicObject(18649, 398.74051, 507.78751, 1002.86560, 90.00000, 0.00000, 0.00000);
  21042. CreateDynamicObject(18649, 400.60980, 505.55829, 1002.86560, 90.00000, 0.00000, 0.00000);
  21043. CreateDynamicObject(2690, 406.34009, 509.71600, 1001.64917, 0.00000, 0.00000, 0.00000);
  21044. CreateDynamicObject(4227, 398.71011, 514.89020, 1003.75928, 0.00000, -13.90000, 90.00000);
  21045. CreateDynamicObject(1291, 398.47021, 503.58170, 1001.70148, 0.00000, 90.00000, 0.00000);
  21046. CreateDynamicObject(913, 396.46460, 504.76849, 1002.14722, 0.00000, 0.00000, -90.00000);
  21047. CreateDynamicObject(2672, 403.31158, 515.04059, 1001.59680, 0.00000, 0.00000, 0.00000);
  21048. CreateDynamicObject(18666, 406.57739, 508.26389, 1002.75128, 158.11650, 0.00000, 0.00000);
  21049. CreateDynamicObject(18667, 402.69000, 505.55670, 1003.24530, -8.65760, 0.00000, 90.15460);
  21050. CreateDynamicObject(2676, 408.26181, 519.12140, 1001.41681, 0.00000, 0.00000, -12.36800);
  21051. CreateDynamicObject(2674, 403.01559, 509.83109, 1001.32483, 0.00000, 0.00000, 130.00000);
  21052. CreateDynamicObject(2674, 409.00723, 506.22998, 1001.32483, 0.00000, 0.00000, -3.63310);
  21053. CreateDynamicObject(2671, 409.12289, 508.20239, 1001.31500, 0.00000, 0.00000, 90.00000);
  21054. CreateDynamicObject(2676, 403.05899, 507.11581, 1001.41681, 0.00000, 0.00000, -12.36800);
  21055. CreateDynamicObject(2676, 395.42569, 516.92609, 1001.41681, 0.00000, 0.00000, -45.36800);
  21056. CreateDynamicObject(18665, 403.76810, 516.51990, 1003.28589, -11.98150, 0.00000, 90.00000);
  21057. CreateDynamicObject(18663, 402.18359, 516.51880, 1003.53772, 6.33860, 0.00000, 90.00000);
  21058. CreateDynamicObject(17969, 396.91821, 511.03171, 1003.33350, -3.86500, 0.00000, 0.00000);
  21059. CreateDynamicObject(19896, 404.68481, 509.18900, 1002.28668, 0.00000, 0.00000, 81.34240);
  21060. CreateDynamicObject(1544, 404.70929, 507.99582, 1002.26648, 0.00000, 0.00000, 0.00000);
  21061. CreateDynamicObject(1951, 405.19614, 507.39160, 1002.46082, 0.00000, 0.00000, 70.00000);
  21062. CreateDynamicObject(1543, 404.30530, 510.05170, 1002.32880, 0.00000, 90.00000, 40.00000);
  21063. CreateDynamicObject(1486, 404.86420, 509.43524, 1002.42078, 0.00000, 0.00000, 0.00000);
  21064. CreateDynamicObject(19159, 402.87759, 512.48688, 1004.62311, 0.00000, 0.00000, 0.00000);
  21065. CreateDynamicObject(1951, 406.17670, 514.05157, 1002.46082, 0.00000, 0.00000, 30.00000);
  21066. CreateDynamicObject(1951, 404.68732, 512.58325, 1002.46082, 0.00000, 0.00000, 150.00000);
  21067. CreateDynamicObject(1543, 405.74579, 513.87433, 1002.26678, 0.00000, 0.00000, 0.00000);
  21068. CreateDynamicObject(1543, 405.32166, 514.04639, 1002.26678, 0.00000, 0.00000, 0.00000);
  21069. CreateDynamicObject(1543, 404.35703, 512.29498, 1002.26678, 0.00000, 0.00000, 0.00000);
  21070. CreateDynamicObject(1543, 399.95901, 507.75739, 1002.12280, 0.00000, 0.00000, 0.00000);
  21071. CreateDynamicObject(1543, 404.39279, 511.66971, 1002.26678, 0.00000, 0.00000, 0.00000);
  21072. CreateDynamicObject(1951, 404.85202, 514.01550, 1002.46082, 0.00000, 0.00000, 70.00000);
  21073. CreateDynamicObject(1951, 404.66959, 510.15570, 1002.46082, 0.00000, 0.00000, 140.00000);
  21074. CreateDynamicObject(1486, 405.65170, 513.93793, 1002.42078, 0.00000, 0.00000, 0.00000);
  21075. CreateDynamicObject(1486, 404.62750, 513.94843, 1002.42078, 0.00000, 0.00000, 0.00000);
  21076. CreateDynamicObject(1486, 401.07034, 514.50989, 1002.17877, 0.00000, 0.00000, 140.00000);
  21077. CreateDynamicObject(1486, 404.82040, 512.24548, 1002.42078, 0.00000, 0.00000, 0.00000);
  21078. CreateDynamicObject(1486, 404.36520, 512.09650, 1002.42078, 0.00000, 0.00000, 0.00000);
  21079. CreateDynamicObject(1486, 404.62488, 511.33081, 1002.42078, 0.00000, 0.00000, 0.00000);
  21080. CreateDynamicObject(1486, 404.51953, 510.82529, 1002.42078, 0.00000, 0.00000, 0.00000);
  21081. CreateDynamicObject(1544, 405.95239, 514.11841, 1002.26648, 0.00000, 0.00000, 0.00000);
  21082. CreateDynamicObject(1544, 404.77258, 513.73541, 1002.26648, 0.00000, 0.00000, 0.00000);
  21083. CreateDynamicObject(1544, 404.47021, 511.10751, 1002.26648, 0.00000, 0.00000, 0.00000);
  21084. CreateDynamicObject(1543, 404.69229, 511.82391, 1002.26678, 0.00000, 0.00000, 0.00000);
  21085. CreateDynamicObject(1543, 400.40979, 512.14911, 1002.01678, 0.00000, 0.00000, 0.00000);
  21086. CreateDynamicObject(1486, 404.74179, 513.32715, 1002.42078, 0.00000, 0.00000, 0.00000);
  21087. CreateDynamicObject(1486, 401.19601, 512.08142, 1002.17877, 0.00000, 0.00000, 140.00000);
  21088. CreateDynamicObject(1486, 401.17542, 514.51099, 1002.17877, 0.00000, 0.00000, 14.00000);
  21089. CreateDynamicObject(1486, 401.12140, 514.59900, 1002.17877, 0.00000, 0.00000, 170.00000);
  21090. CreateDynamicObject(1951, 400.96439, 515.21619, 1002.21680, 0.00000, 0.00000, 150.00000);
  21091. CreateDynamicObject(2674, 401.10571, 512.35059, 1001.32483, 0.00000, 0.00000, -3.63310);
  21092. CreateDynamicObject(19424, 400.19650, 507.49161, 1002.15192, -6.26130, 0.00000, 0.00000);
  21093. CreateDynamicObject(1543, 400.69180, 511.54489, 1002.01678, 0.00000, 0.00000, 0.00000);
  21094. CreateDynamicObject(19814, 396.95569, 505.80060, 1002.47498, 0.00000, 0.00000, -90.00000);
  21095. CreateDynamicObject(1709, 395.41519, 512.07440, 1001.30829, 0.00000, 0.00000, -90.00000);
  21096. CreateDynamicObject(2676, 408.68631, 505.55600, 1001.41681, 0.00000, 0.00000, -12.36800);
  21097. CreateDynamicObject(18661, 410.47699, 510.43561, 1003.51990, -8.88950, 0.00000, 0.00000);
  21098. CreateDynamicObject(18660, 402.63281, 518.13330, 1003.48859, 10.74470, 0.00000, -90.00000);
  21099. CreateDynamicObject(18659, 396.94391, 516.05389, 1003.15088, 10.59010, 0.00000, 0.00000);
  21100. CreateDynamicObject(4227, 408.99429, 520.71381, 1003.24792, 0.00000, -1.62330, 0.00000);
  21101. CreateDynamicObject(17969, 401.19089, 501.50681, 1003.37610, 8.19380, 0.00000, -90.00000);
  21102. CreateDynamicObject(18664, 401.29230, 503.94080, 1003.30518, -6.02940, 0.00000, 90.00000);
  21103. CreateDynamicObject(18667, 405.10361, 503.94070, 1003.30762, 0.00000, 0.00000, 90.00000);
  21104. CreateDynamicObject(1710, 416.27310, 518.45117, 995.51593, 0.00000, 0.00000, 0.00000);
  21105. CreateDynamicObject(2961, 410.46091, 514.90833, 1002.89929, 0.00000, 0.00000, 90.00000);
  21106. CreateDynamicObject(2690, 396.50461, 512.77441, 1001.46521, -51.27270, 90.00000, 90.00000);
  21107. CreateDynamicObject(11710, 410.46060, 516.04761, 1004.22522, 0.00000, 0.00000, 90.00000);
  21108. CreateDynamicObject(19829, 410.48901, 517.30548, 1002.95508, 0.00000, 90.00000, -90.00000);
  21109. CreateDynamicObject(2074, 409.27829, 514.12323, 1004.57642, 0.00000, 0.00000, 0.00000);
  21110. CreateDynamicObject(2074, 404.39828, 502.72321, 1004.57642, 0.00000, 0.00000, 0.00000);
  21111. CreateDynamicObject(2074, 395.15829, 510.44321, 1004.57642, 0.00000, 0.00000, 0.00000);
  21112. CreateDynamicObject(2074, 401.79831, 519.52319, 1004.57642, 0.00000, 0.00000, 0.00000);
  21113. CreateDynamicObject(1504, 408.34930, 519.19470, 995.48120, 0.00000, 0.00000, 0.00000);
  21114. CreateDynamicObject(1504, 405.12930, 519.19470, 995.48120, 0.00000, 0.00000, 0.00000);
  21115. CreateDynamicObject(1504, 401.90930, 519.19470, 995.48120, 0.00000, 0.00000, 0.00000);
  21116. CreateDynamicObject(1504, 398.71729, 519.19470, 995.48120, 0.00000, 0.00000, 0.00000);
  21117. CreateDynamicObject(1504, 395.49731, 519.19470, 995.48120, 0.00000, 0.00000, 0.00000);
  21118. CreateDynamicObject(1504, 408.34930, 512.86072, 995.48120, 0.00000, 0.00000, 0.00000);
  21119. CreateDynamicObject(1504, 408.34930, 519.19470, 995.48120, 0.00000, 0.00000, 0.00000);
  21120. CreateDynamicObject(1504, 405.12930, 512.86072, 995.48120, 0.00000, 0.00000, 0.00000);
  21121. CreateDynamicObject(1504, 401.90930, 512.86072, 995.48120, 0.00000, 0.00000, 0.00000);
  21122. CreateDynamicObject(1504, 398.71729, 512.86072, 995.48120, 0.00000, 0.00000, 0.00000);
  21123. CreateDynamicObject(1504, 395.49731, 512.86072, 995.48120, 0.00000, 0.00000, 0.00000);
  21124. CreateDynamicObject(19451, 391.98141, 519.60858, 997.26978, 0.00000, 0.00000, 45.00000);
  21125. CreateDynamicObject(19451, 391.98141, 512.92059, 997.26978, 0.00000, 0.00000, -45.00000);
  21126. CreateDynamicObject(17969, 393.87881, 520.91980, 997.24609, 3.01470, 0.00000, 180.00000);
  21127. CreateDynamicObject(14840, 393.82251, 514.13831, 997.59039, 0.00000, 0.00000, 0.00000);
  21128. CreateDynamicObject(4227, 395.70331, 512.81830, 997.48602, 0.00000, 0.00000, 180.00000);
  21129. CreateDynamicObject(18659, 401.12671, 519.17041, 997.51678, -8.58030, 0.00000, 90.00000);
  21130. CreateDynamicObject(18661, 404.42761, 519.16931, 996.65002, 150.00000, 0.00000, 90.00000);
  21131. CreateDynamicObject(18662, 411.10980, 513.67780, 997.30188, 7.00000, 0.00000, 40.00000);
  21132. CreateDynamicObject(1805, 394.76190, 518.47937, 995.72070, 87.99020, 0.00000, 50.00000);
  21133. CreateDynamicObject(2961, 410.47021, 514.91418, 997.16119, 0.00000, 0.00000, 90.00000);
  21134. CreateDynamicObject(11710, 409.99429, 515.96582, 995.56592, 90.00000, 0.00000, 56.14260);
  21135. CreateDynamicObject(18659, 416.25699, 519.07690, 997.78180, -9.19870, 0.00000, 90.00000);
  21136. CreateDynamicObject(18661, 420.81229, 519.07849, 997.35962, -16.61950, 0.00000, 90.00000);
  21137. CreateDynamicObject(18662, 417.68130, 514.95221, 997.10559, -4.01960, 0.00000, -90.00000);
  21138. CreateDynamicObject(4227, 413.48181, 505.34811, 998.71838, 0.00000, 17.93360, 180.00000);
  21139. CreateDynamicObject(18667, 415.95300, 511.94620, 997.69220, -13.75940, 0.00000, 0.00000);
  21140. CreateDynamicObject(18663, 408.19449, 516.07813, 1003.14441, -11.36310, 0.00000, 0.00000);
  21141. CreateDynamicObject(18660, 423.36890, 506.89120, 995.58862, 0.00000, 0.00000, 0.00000);
  21142. CreateDynamicObject(18664, 417.28101, 514.95319, 1003.19000, -4.48340, 0.00000, -90.00000);
  21143. CreateDynamicObject(18665, 419.75729, 519.07727, 1003.94781, -7.73000, 0.00000, 90.00000);
  21144. CreateDynamicObject(850, 421.30240, 517.27692, 1001.40363, 0.00000, 0.00000, 43.00000);
  21145. CreateDynamicObject(2672, 421.80237, 514.42841, 1001.59729, 0.00000, 0.00000, 60.00000);
  21146. CreateDynamicObject(2672, 414.40991, 517.27753, 1001.59729, 0.00000, 0.00000, 60.00000);
  21147. CreateDynamicObject(2671, 417.69000, 517.01868, 1001.32330, 0.00000, 0.00000, 0.00000);
  21148. CreateDynamicObject(2676, 418.51535, 516.73083, 1001.41931, 0.00000, 0.00000, 0.00000);
  21149. CreateDynamicObject(851, 421.88541, 506.72009, 999.57330, 0.00000, 0.00000, 12.44530);
  21150. CreateDynamicObject(2676, 421.46320, 516.61407, 995.61731, 0.00000, 0.00000, -22.33970);
  21151. CreateDynamicObject(2670, 414.37701, 513.67603, 995.60608, 0.00000, 0.00000, 95.00000);
  21152. CreateDynamicObject(2670, 416.90500, 517.29620, 995.60608, 0.00000, 0.00000, 0.00000);
  21153. CreateDynamicObject(854, 400.97571, 515.89282, 995.72711, 0.00000, 0.00000, 0.00000);
  21154. CreateDynamicObject(2677, 408.66562, 516.35669, 995.78918, 0.00000, 0.00000, -40.00000);
  21155. CreateDynamicObject(2677, 396.71603, 514.94598, 995.78918, 0.00000, 0.00000, 0.00000);
  21156. CreateDynamicObject(2674, 395.63400, 517.54303, 995.52393, 0.00000, 0.00000, -14.76430);
  21157. CreateDynamicObject(2670, 404.82321, 515.42688, 995.60590, 0.00000, 0.00000, 80.00000);
  21158. CreateDynamicObject(2768, 407.65674, 513.17102, 995.56189, 0.00000, 0.00000, 150.00000);
  21159. CreateDynamicObject(2768, 400.96942, 518.84222, 995.56189, 0.00000, 0.00000, 0.00000);
  21160. CreateDynamicObject(2678, 410.09430, 518.90381, 996.57959, -9.89440, 0.00000, 0.00000);
  21161. CreateDynamicObject(2663, 400.87949, 513.20947, 995.59558, 90.00000, 0.00000, 104.45510);
  21162. CreateDynamicObject(1771, 421.43750, 518.48370, 1008.40338, 90.00000, 0.00000, 0.00000);
  21163. CreateDynamicObject(2653, 416.92270, 518.25122, 1004.84991, 180.00000, 0.00000, 0.00000);
  21164. CreateDynamicObject(2653, 417.82269, 518.25122, 1004.84991, 180.00000, 0.00000, 0.00000);
  21165. CreateDynamicObject(2653, 417.82269, 518.25122, 998.84192, 180.00000, 0.00000, 0.00000);
  21166. CreateDynamicObject(2653, 416.92270, 518.25122, 998.84192, 180.00000, 0.00000, 0.00000);
  21167. CreateDynamicObject(2649, 417.53461, 516.58447, 1010.63928, 180.00000, 0.00000, 90.00000);
  21168. CreateDynamicObject(2677, 413.98611, 507.16739, 997.58533, 0.00000, 0.00000, 45.00000);
  21169. CreateDynamicObject(17969, 415.91339, 505.46811, 1005.41602, 14.84160, 0.00000, -90.00000);
  21170. CreateDynamicObject(18660, 416.72449, 508.43689, 1005.84161, 0.00000, 0.00000, 90.00000);
  21171. CreateDynamicObject(1756, 422.28821, 506.79791, 1005.54962, 0.00000, -83.19760, 0.00000);
  21172. CreateDynamicObject(2806, 414.63919, 514.26031, 1007.23816, 0.00000, 0.00000, 0.00000);
  21173. CreateDynamicObject(18698, 414.48749, 514.25513, 1008.15051, 0.00000, 0.00000, 0.00000);
  21174. CreateDynamicObject(18665, 417.80069, 519.07703, 1008.81091, -7.65270, 0.00000, 90.00000);
  21175. CreateDynamicObject(18664, 422.53510, 516.21808, 1009.39288, 50.95210, 0.00000, 0.00000);
  21176. CreateDynamicObject(2676, 418.45969, 517.17908, 1007.21661, 0.00000, 0.00000, -26.90040);
  21177. CreateDynamicObject(2674, 420.75070, 515.08124, 1007.13141, 0.00000, 0.00000, 0.00000);
  21178. CreateDynamicObject(2677, 413.25311, 517.16760, 1007.38538, 0.00000, 0.00000, 0.00000);
  21179. CreateDynamicObject(854, 412.73270, 513.59448, 1007.27472, 0.00000, 0.00000, 0.00000);
  21180. CreateDynamicObject(18667, 419.55121, 510.21320, 1008.04730, -13.75940, 0.00000, 180.00000);
  21181. CreateDynamicObject(849, 413.78470, 506.65329, 1003.38922, 0.00000, 0.00000, 196.81551);
  21182. CreateDynamicObject(2674, 394.69427, 507.20349, 1001.32880, 0.00000, 0.00000, 40.00000);
  21183. CreateDynamicObject(2672, 394.61447, 509.21536, 1001.59332, 0.00000, 0.00000, 0.00000);
  21184. CreateDynamicObject(2670, 395.05731, 503.29129, 1001.41333, 0.00000, 0.00000, -30.00000);
  21185. CreateDynamicObject(2674, 394.05051, 511.87009, 1001.32880, 0.00000, 0.00000, 130.00000);
  21186. CreateDynamicObject(2677, 402.17981, 502.40799, 1001.58832, 0.00000, 0.00000, 50.00000);
  21187. CreateDynamicObject(19385, 414.85291, 513.37372, 991.46301, 0.00000, 0.00000, 90.00000);
  21188. CreateDynamicObject(1238, 399.43137, 518.41571, 989.89679, 109.86610, 0.00000, -24.50410);
  21189. CreateDynamicObject(1291, 405.52841, 517.55688, 989.99683, 90.00000, 0.00000, 47.84870);
  21190. CreateDynamicObject(1338, 406.56921, 518.27582, 990.40082, 0.00000, 0.00000, -12.59990);
  21191. CreateDynamicObject(1441, 397.67880, 514.92963, 990.36481, 0.00000, 0.00000, 90.00000);
  21192. CreateDynamicObject(1735, 415.78888, 514.25519, 989.72888, 0.00000, 0.00000, -120.00000);
  21193. CreateDynamicObject(850, 414.16040, 517.64203, 989.79889, 0.00000, 0.00000, 0.00000);
  21194. CreateDynamicObject(1506, 413.54239, 521.93597, 989.72980, 0.00000, 0.00000, 0.00000);
  21195. CreateDynamicObject(1506, 410.11041, 521.93597, 989.72980, 0.00000, 0.00000, 0.00000);
  21196. CreateDynamicObject(1506, 406.67841, 521.93597, 989.72980, 0.00000, 0.00000, 0.00000);
  21197. CreateDynamicObject(1506, 402.98239, 521.93597, 989.72980, 0.00000, 0.00000, 0.00000);
  21198. CreateDynamicObject(1506, 399.48441, 521.93597, 989.72980, 0.00000, 0.00000, 0.00000);
  21199. CreateDynamicObject(1506, 399.48441, 513.41400, 989.72980, 0.00000, 0.00000, 0.00000);
  21200. CreateDynamicObject(1506, 402.98239, 513.41400, 989.72980, 0.00000, 0.00000, 0.00000);
  21201. CreateDynamicObject(1506, 406.67841, 513.41400, 989.72980, 0.00000, 0.00000, 0.00000);
  21202. CreateDynamicObject(1506, 410.11041, 513.41400, 989.72980, 0.00000, 0.00000, 0.00000);
  21203. CreateDynamicObject(1533, 397.26721, 516.71771, 989.70660, 0.00000, 0.00000, 90.00000);
  21204. CreateDynamicObject(1238, 410.82855, 516.08582, 989.89679, 109.86610, 0.00000, 79.00000);
  21205. CreateDynamicObject(2670, 410.26639, 517.28528, 989.82123, 0.00000, 0.00000, 0.00000);
  21206. CreateDynamicObject(2674, 404.82190, 518.54852, 989.74921, 0.00000, 0.00000, 0.00000);
  21207. CreateDynamicObject(2672, 398.78366, 520.47852, 990.00720, 0.00000, 0.00000, 0.00000);
  21208. CreateDynamicObject(2671, 412.32599, 514.83838, 989.72522, 0.00000, 0.00000, 0.00000);
  21209. CreateDynamicObject(2676, 407.50073, 515.32758, 989.82721, 0.00000, 0.00000, 590.00000);
  21210. CreateDynamicObject(2677, 410.42041, 520.01233, 989.99921, 0.00000, 0.00000, 0.00000);
  21211. CreateDynamicObject(2671, 401.08099, 517.07971, 989.72522, 0.00000, 0.00000, 39.00000);
  21212. CreateDynamicObject(4227, 416.51111, 514.81921, 991.68158, 0.00000, -3.01470, -90.00000);
  21213. CreateDynamicObject(17969, 408.19199, 521.89099, 991.34363, 0.00000, 0.00000, 90.00000);
  21214. CreateDynamicObject(18660, 405.58139, 513.46692, 991.36462, -5.64290, 0.00000, -90.00000);
  21215. CreateDynamicObject(18663, 412.92371, 513.46570, 991.21863, 5.25640, 0.00000, -90.00000);
  21216. CreateDynamicObject(18665, 397.24011, 515.25940, 991.50629, 0.00000, 0.00000, 180.00000);
  21217. CreateDynamicObject(18667, 397.24039, 519.93439, 991.48828, 70.00000, 0.00000, 180.00000);
  21218. CreateDynamicObject(14840, 398.66101, 521.92078, 991.11230, 0.00000, 0.00000, -90.00000);
  21219. CreateDynamicObject(1440, 414.04340, 506.85989, 992.01270, 0.00000, 0.00000, 90.00000);
  21220. CreateDynamicObject(19571, 414.65051, 508.13409, 991.54309, 90.00000, 0.00000, -15.22810);
  21221. CreateDynamicObject(2714, 406.54770, 511.05069, 1003.96051, 0.00000, 0.00000, -90.00000);
  21222. CreateDynamicObject(2411, 416.16891, 513.09448, 990.07141, -17.23790, 0.00000, 0.00000);
  21223. CreateDynamicObject(18659, 416.27151, 505.44241, 993.63269, -8.03920, 0.00000, -90.00000);
  21224. CreateDynamicObject(18666, 418.30069, 508.43640, 994.78650, -7.03430, 0.00000, 90.00000);
  21225. // Inglewood Stacks
  21226. CreateDynamicObject(19121, 2124.371093, -1765.267456, 13.145559, 0.000000, 0.000000, 267.547332);
  21227. CreateDynamicObject(19121, 2124.381347, -1769.873168, 13.145559, 0.000000, 0.000000, 267.547332);
  21228. CreateDynamicObject(19121, 2124.396484, -1774.649047, 13.145559, 0.000000, 0.000000, 267.547332);
  21229. CreateDynamicObject(19121, 2124.419677, -1779.435668, 13.145559, 0.000000, 0.000000, 267.547332);
  21230. CreateDynamicObject(19121, 2124.382568, -1784.029174, 13.145559, 0.000000, 0.000000, 267.547332);
  21231. CreateDynamicObject(1257, 2080.262207, -1769.403686, 13.800909, 0.000000, 0.000000, 165.000000);
  21232. CreateDynamicObject(1346, 2122.608886, -1790.332153, 13.887385, 0.000000, 0.000000, 180.000000);
  21233. CreateDynamicObject(1256, 2119.659667, -1790.556152, 13.200844, 0.000000, 0.000000, -90.000000);
  21234. CreateDynamicObject(1285, 2106.148193, -1790.754638, 13.098064, 0.000000, 0.000000, 0.000000);
  21235. CreateDynamicObject(1287, 2106.840820, -1790.747070, 13.090840, 0.000000, 0.000000, 359.374725);
  21236. CreateDynamicObject(970, 2098.605224, -1784.011840, 13.037828, 0.000000, 0.000000, 80.976753);
  21237. CreateDynamicObject(970, 2099.258789, -1779.893310, 13.037828, 0.000000, 0.000000, 80.976753);
  21238. CreateDynamicObject(970, 2099.906738, -1775.825195, 13.037828, 0.000000, 0.000000, 80.976753);
  21239. CreateDynamicObject(970, 2100.548583, -1771.775146, 13.037828, 0.000000, 0.000000, 80.976753);
  21240. CreateDynamicObject(970, 2101.199462, -1767.676147, 13.037828, 0.000000, 0.000000, 80.976753);
  21241. CreateDynamicObject(970, 2100.351318, -1786.065185, 13.037828, 0.000000, 0.000000, 180.000000);
  21242. CreateDynamicObject(970, 2104.491455, -1786.065185, 13.037828, 0.000000, 0.000000, 180.000000);
  21243. CreateDynamicObject(970, 2108.612792, -1786.065185, 13.037828, 0.000000, 0.000000, 180.000000);
  21244. CreateDynamicObject(970, 2112.732666, -1786.065185, 13.037828, 0.000000, 0.000000, 180.000000);
  21245. CreateDynamicObject(970, 2116.863769, -1786.065185, 13.037828, 0.000000, 0.000000, 180.000000);
  21246. CreateDynamicObject(970, 2120.975830, -1786.065185, 13.037828, 0.000000, 0.000000, 180.000000);
  21247. // Police Station
  21248. CreateDynamicObject(1257, 1522.465332, -1681.823730, 13.770749, 0.000000, 0.000000, 180.000000);
  21249. CreateDynamicObject(970, 1551.633422, -1617.501953, 12.936862, 0.000000, 0.000000, 0.000000);
  21250. CreateDynamicObject(970, 1555.783447, -1617.501953, 12.936862, 0.000000, 0.000000, 0.000000);
  21251. CreateDynamicObject(970, 1559.933471, -1617.501953, 12.936862, 0.000000, 0.000000, 0.000000);
  21252. CreateDynamicObject(970, 1564.074096, -1617.501953, 12.936862, 0.000000, 0.000000, 0.000000);
  21253. CreateDynamicObject(970, 1568.224609, -1617.501953, 12.936862, 0.000000, 0.000000, 0.000000);
  21254. CreateDynamicObject(970, 1572.365112, -1617.501953, 12.936862, 0.000000, 0.000000, 0.000000);
  21255. CreateDynamicObject(970, 1576.505249, -1617.501953, 12.936862, 0.000000, 0.000000, 0.000000);
  21256. CreateDynamicObject(970, 1580.645019, -1617.501953, 12.936862, 0.000000, 0.000000, 0.000000);
  21257. CreateDynamicObject(970, 1582.715698, -1615.421997, 12.936862, 0.000000, 0.000000, 90.000000);
  21258. CreateDynamicObject(970, 1582.715698, -1604.718017, 12.936862, 0.000000, 0.000000, 90.000000);
  21259. CreateDynamicObject(997, 1544.565063, -1617.910156, 12.636869, 0.000000, 0.000000, 269.882934);
  21260. CreateDynamicObject(997, 1544.561523, -1619.519531, 12.636869, 0.000000, 0.000000, 269.882934);
  21261. CreateDynamicObject(19121, 1541.145751, -1616.433227, 12.972808, 0.000000, 0.000000, 86.229026);
  21262. CreateDynamicObject(19121, 1541.965332, -1604.001220, 12.972808, 0.000000, 0.000000, 86.229026);
  21263. // Gym objects
  21264. CreateDynamicObject(2916, 772.496765, 5.770771, 999.879760, 0.000000, 0.000000, -90.000000);
  21265. CreateDynamicObject(2916, 772.527404, 5.051626, 999.879760, 0.000000, 0.000000, -90.000000);
  21266. }
  21267. LoadJobs()
  21268. {
  21269. // Transporter
  21270. JobVehicles[Transporter][0] = SpawnVehicle(554, 2182.5713, -2322.6948, 13.6338, 45.0000, 43, 32, 600); // truck 1
  21271. JobVehicles[Transporter][1] = SpawnVehicle(554, 2185.3015, -2320.1089, 13.6460, 45.0000, 12, 32, 600); // truck 2
  21272. JobVehicles[Transporter][2] = SpawnVehicle(554, 2187.9258, -2317.3552, 13.6310, 45.0000, 14, 32, 600); // truck 3
  21273. JobVehicles[Transporter][3] = SpawnVehicle(554, 2156.8408, -2297.3008, 13.5454, 225.0000, 53, 32, 600); // truck 4
  21274. JobVehicles[Transporter][4] = SpawnVehicle(554, 2159.5317, -2294.3271, 13.5573, 225.0000, 15, 32, 600); // truck 5
  21275. JobVehicles[Transporter][5] = SpawnVehicle(554, 2162.3831, -2291.3997, 13.5747, 225.0000, 45, 32, 600); // truck 6
  21276. JobVehicles[Transporter][6] = SpawnVehicle(554, 2189.1882, -2298.8201, 13.6304, 44.6955, 45, 32, 600);
  21277. JobVehicles[Transporter][7] = SpawnVehicle(554, 2185.9622, -2301.6887, 13.6331, 44.8988, 45, 32, 600);
  21278. JobVehicles[Transporter][8] = SpawnVehicle(554, 2182.6394, -2305.4114, 13.6295, 45.4527, 45, 32, 600);
  21279. JobVehicles[Transporter][9] = SpawnVehicle(554, 2165.9766, -2308.4241, 13.6300, 314.1117, 45, 32, 600);
  21280. JobVehicles[Transporter][10] = SpawnVehicle(554, 2163.0237, -2305.6199, 13.6351, 313.9506, 45, 32, 600);
  21281. CreateDynamicPickup(1318, 23, 2175.3335, -2266.9937, 13.3891);
  21282. CreateDynamic3DTextLabel("Use /load to begin delivery", COLOR_GREY, 2175.3335, -2266.9937, 13.3891, 15.0);
  21283. // Forklifter
  21284. JobVehicles[Forklifter][0] = SpawnVehicle(530, 2778.5310, -2425.0867, 13.3935, 0.0000, 6, 6, 600); // forklift 1
  21285. JobVehicles[Forklifter][1] = SpawnVehicle(530, 2778.6404, -2410.1257, 13.4024, 180.0000, 6, 6, 600); // forklift 2
  21286. JobVehicles[Forklifter][2] = SpawnVehicle(530, 2787.8252, -2425.3438, 13.3990, 0.0000, 6, 6, 600); // forklift 3
  21287. JobVehicles[Forklifter][3] = SpawnVehicle(530, 2788.1560, -2410.3755, 13.3962, 180.0000, 6, 6, 600); // forklift 4
  21288. JobVehicles[Forklifter][4] = SpawnVehicle(530, 2795.1589, -2425.3408, 13.3954, 0.0000, 6, 6, 600); // forklift 5
  21289. JobVehicles[Forklifter][5] = SpawnVehicle(530, 2795.1826, -2409.9617, 13.3972, 180.0000, 6, 6, 600); // forklift 6
  21290. // Miner
  21291. CreateDynamic3DTextLabel("Use /work to begin mining", COLOR_GREY, -1858.5516, -1651.3812, 26.0788, 15.0);
  21292. CreateDynamic3DTextLabel("Use /work to begin mining", COLOR_GREY, -1790.7683, -1649.2581, 32.86813, 15.0);
  21293. CreateDynamic3DTextLabel("Use /work to begin mining", COLOR_GREY, -1775.1649, -1643.3854, 29.5218, 15.0);
  21294. CreateDynamic3DTextLabel("Use /work to begin mining", COLOR_GREY, -1801.5831, -1649.7592, 26.5446, 15.0);
  21295. // Taxi Driver
  21296. /*JobVehicles[TaxiDriver][0] = SpawnVehicle(420, 1777.6617, -1886.1866, 13.1629, 270.0000, 6, 6, 600); // taxi 1
  21297. JobVehicles[TaxiDriver][1] = SpawnVehicle(420, 1777.6617, -1890.7469, 13.1629, 270.0000, 6, 6, 600); // taxi 2
  21298. JobVehicles[TaxiDriver][2] = SpawnVehicle(420, 1777.6617, -1895.3072, 13.1629, 270.0000, 6, 6, 600); // taxi 3
  21299. JobVehicles[TaxiDriver][3] = SpawnVehicle(420, 1777.6617, -1899.8675, 13.1629, 270.0000, 6, 6, 600); // taxi 4
  21300. JobVehicles[TaxiDriver][4] = SpawnVehicle(420, 1777.6617, -1904.4278, 13.1629, 270.0000, 6, 6, 600); // taxi 5
  21301. JobVehicles[TaxiDriver][5] = SpawnVehicle(420, 1777.6617, -1908.9881, 13.1629, 270.0000, 6, 6, 600); // taxi 6*/
  21302. // Pizzaboy
  21303. JobVehicles[Pizzaboy][0] = SpawnVehicle(448, 2097.8745, -1800.4648, 12.9810, 90.0000, 3, 6, 600); // pizza 1
  21304. JobVehicles[Pizzaboy][1] = SpawnVehicle(448, 2097.8745, -1798.5289, 12.9810, 90.0000, 3, 6, 600); // pizza 2
  21305. JobVehicles[Pizzaboy][2] = SpawnVehicle(448, 2097.8745, -1796.5930, 12.9810, 90.0000, 3, 6, 600); // pizza 3
  21306. JobVehicles[Pizzaboy][3] = SpawnVehicle(448, 2097.8745, -1794.6535, 12.9810, 90.0000, 3, 6, 600); // pizza 4
  21307. JobVehicles[Pizzaboy][4] = SpawnVehicle(448, 2097.8745, -1792.7140, 12.9810, 90.0000, 3, 6, 600); // pizza 5
  21308. //2092.8154,-1796.5688,13.3828
  21309. CreateDynamicPickup(1582, 23, 2092.8154,-1796.5688,13.3828);
  21310. CreateDynamic3DTextLabel("Use /work to begin delivering", COLOR_GREY, 2092.8154,-1796.5688,13.3828, 10.0);
  21311. /*CreateDynamicPickup(1582, 23, 2103.0977, -1804.2975, 13.5547);
  21312. CreateDynamic3DTextLabel("Use /work to begin delivering", COLOR_GREY, 2103.0977, -1804.2975, 13.5547, 10.0);*/
  21313. // Trashman
  21314. JobVehicles[Trashman][0] = SpawnVehicle(408, 2189.9836, -1991.2726, 14.0007, 90.0000, 26, 26, 600); // trash 1
  21315. JobVehicles[Trashman][1] = SpawnVehicle(408, 2189.9897, -1986.3273, 14.1235, 90.0000, 26, 26, 600); // trash 2
  21316. JobVehicles[Trashman][2] = SpawnVehicle(408, 2157.7324, -1970.5673, 14.0034, 270.0000, 26, 26, 600); // trash 3
  21317. JobVehicles[Trashman][3] = SpawnVehicle(408, 2146.7019, -1970.3008, 14.1220, 270.0000, 26, 26, 600); // trash 4
  21318. JobVehicles[Trashman][4] = SpawnVehicle(408, 2134.6724, -1969.9525, 14.1239, 270.0000, 26, 26, 600); // trash 5
  21319. /*// Transportation Airline pilot
  21320. JobVehicles[Tairline][0] = SpawnVehicle(553, 1975.0724, -2382.0010, 14.8804, 0.0000, 6, 6, 600); // Airline 1
  21321. JobVehicles[Tairline][1] = SpawnVehicle(553, 1972.8947, -2316.1907, 14.8827, 180.0000, 6, 6, 600); // Airline 2
  21322. JobVehicles[Tairline][2] = SpawnVehicle(553, 1921.6256, -2250.4507, 14.8808, 0.0000, 6, 6, 600); // Airline 3*/
  21323. CreateDynamicPickup(1265, 23, 2184.9795, -1976.9451, 13.5528);
  21324. CreateDynamic3DTextLabel("Use /work to begin trash job", COLOR_GREY, 2184.9795, -1976.9451, 13.5528, 10.0);
  21325. }
  21326. LoadActors()
  21327. {
  21328. new act1;
  21329. // City Hall
  21330. act1 = CreateActor(147, 359.7125, 173.5390, 1008.3828, 270.0000);
  21331. SetActorVirtualWorld(act1, g_StaticBuildings[BUILDING_CITYHALL][e_VirtualWorld]);
  21332. }
  21333. LoadElements() // Pickups, labels and checkpoints
  21334. {
  21335. // Deliver points
  21336. for (new i = 0; i < sizeof(g_HospitalDeliverPoints); i ++) {
  21337. CreateDynamicPickup(1240, 23, g_HospitalDeliverPoints[i][0], g_HospitalDeliverPoints[i][1], g_HospitalDeliverPoints[i][2]);
  21338. CreateDynamic3DTextLabel("Use /deliverpatients to deliver patients.", COLOR_GREY, g_HospitalDeliverPoints[i][0], g_HospitalDeliverPoints[i][1], g_HospitalDeliverPoints[i][2], 15.0);
  21339. }
  21340. //IllegalOrder
  21341. CreateDynamic3DTextLabel("Black Market", COLOR_GREY, 2525.4495,-2221.1128,13.5469, 5.0);
  21342. // Gym Labels
  21343. CreateDynamic3DTextLabel("Press Y to use weights", COLOR_GREY, 772.4859, 5.3462, 999.9802, 10.0);
  21344. CreateDynamic3DTextLabel("Press Y to use treadmill", COLOR_GREY, 773.5106, -2.8392, 1000.1479, 10.0);
  21345. // Impounding
  21346. CreateDynamic3DTextLabel("Impound Yard", COLOR_GREY, 1624.3313,-1819.2130,13.5258, 20.0);
  21347. // City Hall
  21348. CreateDynamic3DTextLabel("Job Employment", COLOR_GREY, 362.2840, 173.6001, 1008.3828, 10.0);
  21349. Checkpoints[cpEmployment] = CreateDynamicCP(363.4342, 173.5729, 1008.3828, 2.0, g_StaticBuildings[BUILDING_CITYHALL][e_VirtualWorld], -1, -1, 10.0);
  21350. // Release impounded vehicles
  21351. CreateDynamic3DTextLabel("Front Desk", -1, 130.0626, 1130.8778, 527.4651, 5.0);
  21352. Checkpoints[cpPolice] = CreateDynamicCP(130.0626, 1130.8778, 527.4651, 1.5, g_StaticBuildings[BUILDING_POLICE][e_VirtualWorld], -1, -1, 10.0);
  21353. //mdc
  21354. CreateDynamic3DTextLabel("MDC",COLOR_GREY,132.1223,1129.2015,527.2257,1.0);
  21355. CreateDynamicCP(132.1223, 1129.2015, 527.2257, 1.5,g_StaticBuildings[BUILDING_POLICE][e_VirtualWorld],-1,-1,1.0);
  21356. // Bank label
  21357. CreateDynamic3DTextLabel("Use /bank to open menu", COLOR_GREY, 196.8612, 1723.2732, 1231.4624, 20.0);
  21358. // Hospital
  21359. CreateDynamic3DTextLabel("Press H to exit hospital", COLOR_GREY, 2501.6003, -1706.2878, 2104.7358, 10.0);
  21360. // Restaurant labels
  21361. CreateDynamic3DTextLabel("Press H to sit down", COLOR_GREY, 373.0000, -181.9000, 1000.5688, 10.0);
  21362. CreateDynamic3DTextLabel("Press H to sit down", COLOR_GREY, 373.0000, -184.9000, 1000.5688, 10.0);
  21363. CreateDynamic3DTextLabel("Press H to sit down", COLOR_GREY, 373.0000, -187.9000, 1000.5688, 10.0);
  21364. CreateDynamic3DTextLabel("Press H to sit down", COLOR_GREY, 373.0000, -190.9000, 1000.5688, 10.0);
  21365. CreateDynamic3DTextLabel("Press H to sit down", COLOR_GREY, 376.1000, -189.1153, 1000.5688, 10.0);
  21366. CreateDynamic3DTextLabel("Press H to sit down", COLOR_GREY, 376.1000, -186.6022, 1000.5688, 10.0);
  21367. CreateDynamic3DTextLabel("Press H to sit down", COLOR_GREY, 376.1000, -184.1463, 1000.5688, 10.0);
  21368. CreateDynamic3DTextLabel("Press H to sit down", COLOR_GREY, 376.1000, -181.7247, 1000.5688, 10.0);
  21369. }
  21370. #undef MAX_OBJECTS
  21371. #define MAX_OBJECTS (80000)
  21372. LoadObjects()
  21373. {
  21374. new
  21375. tmpobjid,
  21376. objects = 0;
  21377. // Destroy the other objects first.
  21378. for (new i = 0; i < MAX_OBJECTS; i ++) {
  21379. if (IsValidObject(i)) DestroyObject(i);
  21380. }
  21381. #include "maps/school.map"
  21382. #include "maps/court.map"
  21383. #include "maps/bahamas.map"
  21384. //WillowField
  21385. tmpobjid = CreateDynamicObjectEx(19544,2451.455,-1886.743,12.543,0.000,0.000,90.900,300.000,300.000);
  21386. SetDynamicObjectMaterial(tmpobjid, 0, 5404, "stormdra1_lae", "lasrmd4_sjm", 0);
  21387. tmpobjid = CreateDynamicObjectEx(19544,2451.695,-1901.739,12.543,0.000,0.000,90.889,300.000,300.000);
  21388. SetDynamicObjectMaterial(tmpobjid, 0, 5404, "stormdra1_lae", "lasrmd4_sjm", 0);
  21389. tmpobjid = CreateDynamicObjectEx(19544,2451.935,-1916.735,12.543,0.000,0.000,90.900,300.000,300.000);
  21390. SetDynamicObjectMaterial(tmpobjid, 0, 5404, "stormdra1_lae", "lasrmd4_sjm", 0);
  21391. tmpobjid = CreateDynamicObjectEx(19544,2431.378,-1970.649,12.543,0.000,0.000,0.000,300.000,300.000);
  21392. SetDynamicObjectMaterial(tmpobjid, 0, 5404, "stormdra1_lae", "lasrmd4_sjm", 0);
  21393. tmpobjid = CreateDynamicObjectEx(19544,2446.378,-1970.648,12.543,0.000,0.000,0.000,300.000,300.000);
  21394. SetDynamicObjectMaterial(tmpobjid, 0, 5404, "stormdra1_lae", "lasrmd4_sjm", 0);
  21395. tmpobjid = CreateDynamicObjectEx(19544,2461.378,-1970.648,12.543,0.000,0.000,0.000,300.000,300.000);
  21396. SetDynamicObjectMaterial(tmpobjid, 0, 5404, "stormdra1_lae", "lasrmd4_sjm", 0);
  21397. tmpobjid = CreateDynamicObjectEx(3661,2460.362,-1905.423,16.016,0.000,0.000,0.000,300.000,300.000);
  21398. tmpobjid = CreateDynamicObjectEx(3651,2433.995,-1888.527,15.300,0.000,0.000,310.000,300.000,300.000);
  21399. tmpobjid = CreateDynamicObjectEx(3651,2446.164,-1915.273,15.300,0.000,0.000,90.000,300.000,300.000);
  21400. tmpobjid = CreateDynamicObjectEx(3651,2428.749,-1915.265,15.300,0.000,0.000,90.000,300.000,300.000);
  21401. tmpobjid = CreateDynamicObjectEx(1412,2423.733,-1875.399,13.821,0.000,0.000,90.000,300.000,300.000);
  21402. tmpobjid = CreateDynamicObjectEx(1412,2423.736,-1880.677,13.821,0.000,0.000,90.000,300.000,300.000);
  21403. tmpobjid = CreateDynamicObjectEx(1412,2423.743,-1885.999,13.821,0.000,0.000,90.000,300.000,300.000);
  21404. tmpobjid = CreateDynamicObjectEx(1412,2423.747,-1891.295,13.821,0.000,0.000,90.000,300.000,300.000);
  21405. tmpobjid = CreateDynamicObjectEx(1412,2423.826,-1900.877,13.817,0.000,0.000,90.000,300.000,300.000);
  21406. tmpobjid = CreateDynamicObjectEx(1412,2434.070,-1922.069,13.817,0.000,0.000,0.000,300.000,300.000);
  21407. tmpobjid = CreateDynamicObjectEx(1412,2439.259,-1922.046,13.817,0.000,0.000,0.000,300.000,300.000);
  21408. tmpobjid = CreateDynamicObjectEx(1412,2452.729,-1922.305,13.817,0.000,0.000,0.000,300.000,300.000);
  21409. tmpobjid = CreateDynamicObjectEx(1422,2425.087,-1879.756,12.954,0.000,0.000,0.000,300.000,300.000);
  21410. tmpobjid = CreateDynamicObjectEx(1422,2427.785,-1879.754,12.954,0.000,0.000,0.000,300.000,300.000);
  21411. tmpobjid = CreateDynamicObjectEx(1422,2430.483,-1879.756,12.954,0.000,0.000,0.000,300.000,300.000);
  21412. tmpobjid = CreateDynamicObjectEx(655,2457.426,-1880.687,12.543,0.000,0.000,0.000,300.000,300.000);
  21413. tmpobjid = CreateDynamicObjectEx(655,2436.995,-1918.267,12.543,0.000,0.000,0.000,300.000,300.000);
  21414. tmpobjid = CreateDynamicObjectEx(655,2424.336,-1880.338,12.543,0.000,0.000,0.000,300.000,300.000);
  21415. tmpobjid = CreateDynamicObjectEx(672,2471.572,-1888.925,14.270,0.000,0.000,0.000,300.000,300.000);
  21416. tmpobjid = CreateDynamicObjectEx(688,2450.304,-1881.215,12.543,0.000,0.000,0.000,300.000,300.000);
  21417. tmpobjid = CreateDynamicObjectEx(727,2446.353,-1892.524,12.543,0.000,0.000,0.000,300.000,300.000);
  21418. tmpobjid = CreateDynamicObjectEx(770,2424.857,-1900.607,12.543,0.000,0.000,0.000,300.000,300.000);
  21419. tmpobjid = CreateDynamicObjectEx(770,2464.594,-1882.541,12.543,0.000,0.000,0.000,300.000,300.000);
  21420. tmpobjid = CreateDynamicObjectEx(631,2440.685,-1892.931,13.442,0.000,0.000,0.000,300.000,300.000);
  21421. tmpobjid = CreateDynamicObjectEx(1712,2436.830,-1895.993,12.543,0.000,0.000,40.000,300.000,300.000);
  21422. tmpobjid = CreateDynamicObjectEx(1712,2450.694,-1912.875,12.543,0.000,0.000,90.000,300.000,300.000);
  21423. tmpobjid = CreateDynamicObjectEx(1712,2451.281,-1910.301,12.543,0.000,0.000,40.000,300.000,300.000);
  21424. tmpobjid = CreateDynamicObjectEx(2821,2452.304,-1915.391,12.543,0.000,0.000,0.000,300.000,300.000);
  21425. tmpobjid = CreateDynamicObjectEx(2840,2454.464,-1914.855,12.543,0.000,0.000,0.000,300.000,300.000);
  21426. tmpobjid = CreateDynamicObjectEx(926,2454.791,-1919.250,12.791,0.000,0.000,0.000,300.000,300.000);
  21427. tmpobjid = CreateDynamicObjectEx(849,2439.883,-1921.037,12.843,0.000,0.000,0.000,300.000,300.000);
  21428. tmpobjid = CreateDynamicObjectEx(1440,2429.037,-1923.233,13.065,0.000,0.000,0.000,300.000,300.000);
  21429. tmpobjid = CreateDynamicObjectEx(1439,2423.314,-1911.681,12.546,0.000,0.000,270.000,300.000,300.000);
  21430. tmpobjid = CreateDynamicObjectEx(1369,2454.288,-1896.446,13.164,0.000,0.000,0.000,300.000,300.000);
  21431. tmpobjid = CreateDynamicObjectEx(2675,2453.497,-1918.357,12.607,0.000,0.000,0.000,300.000,300.000);
  21432. tmpobjid = CreateDynamicObjectEx(2675,2441.690,-1885.826,12.607,0.000,0.000,0.000,300.000,300.000);
  21433. tmpobjid = CreateDynamicObjectEx(2675,2439.747,-1917.211,12.607,0.000,0.000,0.000,300.000,300.000);
  21434. tmpobjid = CreateDynamicObjectEx(947,2447.366,-1907.248,14.746,0.000,0.000,0.000,300.000,300.000);
  21435. tmpobjid = CreateDynamicObjectEx(1433,2452.222,-1912.177,12.722,0.000,0.000,0.000,300.000,300.000);
  21436. tmpobjid = CreateDynamicObjectEx(1670,2452.145,-1912.144,13.230,0.000,0.000,0.000,300.000,300.000);
  21437. tmpobjid = CreateDynamicObjectEx(1429,2454.208,-1913.202,13.746,0.000,0.000,230.000,300.000,300.000);
  21438. tmpobjid = CreateDynamicObjectEx(941,2454.027,-1913.826,13.017,0.000,0.000,56.000,300.000,300.000);
  21439. tmpobjid = CreateDynamicObjectEx(1647,2454.941,-1890.692,12.784,0.000,0.000,0.000,300.000,300.000);
  21440. tmpobjid = CreateDynamicObjectEx(1741,2440.377,-1885.131,12.543,350.000,0.000,0.000,300.000,300.000);
  21441. tmpobjid = CreateDynamicObjectEx(1820,2440.643,-1883.598,12.609,350.000,0.000,0.000,300.000,300.000);
  21442. tmpobjid = CreateDynamicObjectEx(1765,2436.966,-1882.478,12.543,0.000,0.000,45.000,300.000,300.000);
  21443. tmpobjid = CreateDynamicObjectEx(1712,2438.312,-1885.292,12.543,0.000,0.000,130.000,300.000,300.000);
  21444. tmpobjid = CreateDynamicObjectEx(18691,2440.944,-1883.432,10.142,0.000,0.000,0.000,300.000,300.000);
  21445. tmpobjid = CreateDynamicObjectEx(18689,2440.606,-1883.272,10.977,0.000,0.000,0.000,300.000,300.000);
  21446. tmpobjid = CreateDynamicObjectEx(1946,2448.097,-1907.780,12.748,0.000,0.000,0.000,300.000,300.000);
  21447. tmpobjid = CreateDynamicObjectEx(1946,2452.089,-1919.083,12.748,0.000,0.000,0.000,300.000,300.000);
  21448. tmpobjid = CreateDynamicObjectEx(1946,2438.293,-1894.656,12.748,0.000,0.000,0.000,300.000,300.000);
  21449. tmpobjid = CreateDynamicObjectEx(3588,2437.725,-1964.106,15.217,0.000,0.000,270.000,300.000,300.000);
  21450. tmpobjid = CreateDynamicObjectEx(3651,2455.408,-1959.230,15.199,0.000,0.000,90.000,300.000,300.000);
  21451. tmpobjid = CreateDynamicObjectEx(1412,2453.264,-1942.376,13.817,0.000,0.000,0.000,300.000,300.000);
  21452. tmpobjid = CreateDynamicObjectEx(1412,2423.903,-1950.362,13.817,0.000,0.000,90.000,300.000,300.000);
  21453. tmpobjid = CreateDynamicObjectEx(1412,2423.931,-1964.076,13.817,0.000,0.000,90.000,300.000,300.000);
  21454. tmpobjid = CreateDynamicObjectEx(1412,2423.912,-1975.567,13.817,0.000,0.000,90.000,300.000,300.000);
  21455. tmpobjid = CreateDynamicObjectEx(1412,2423.912,-1980.857,13.817,0.000,0.000,90.000,300.000,300.000);
  21456. tmpobjid = CreateDynamicObjectEx(1412,2423.899,-1986.157,13.817,0.000,0.000,90.000,300.000,300.000);
  21457. tmpobjid = CreateDynamicObjectEx(1412,2423.865,-1997.016,13.826,0.000,0.000,90.000,300.000,300.000);
  21458. tmpobjid = CreateDynamicObjectEx(1412,2426.483,-1999.682,13.821,0.000,0.000,0.000,300.000,300.000);
  21459. tmpobjid = CreateDynamicObjectEx(1412,2431.690,-1999.645,13.821,0.000,0.000,0.000,300.000,300.000);
  21460. tmpobjid = CreateDynamicObjectEx(1412,2469.058,-1978.692,13.722,0.000,0.000,90.000,300.000,300.000);
  21461. tmpobjid = CreateDynamicObjectEx(1412,2458.415,-1999.665,13.821,0.000,0.000,0.000,300.000,300.000);
  21462. tmpobjid = CreateDynamicObjectEx(1412,2453.850,-1981.270,13.817,0.000,0.000,0.000,300.000,300.000);
  21463. tmpobjid = CreateDynamicObjectEx(3655,2445.280,-1992.708,15.145,0.000,0.000,90.000,300.000,300.000);
  21464. tmpobjid = CreateDynamicObjectEx(12957,2453.153,-1985.020,13.432,0.000,0.000,0.000,300.000,300.000);
  21465. tmpobjid = CreateDynamicObjectEx(12957,2444.229,-1882.291,13.420,0.000,0.000,0.000,300.000,300.000);
  21466. tmpobjid = CreateDynamicObjectEx(1358,2456.635,-1967.371,13.746,0.000,0.000,0.000,300.000,300.000);
  21467. tmpobjid = CreateDynamicObjectEx(703,2455.746,-1976.293,12.543,0.000,0.000,0.000,300.000,300.000);
  21468. tmpobjid = CreateDynamicObjectEx(729,2425.461,-1996.676,12.543,0.000,0.000,0.000,300.000,300.000);
  21469. tmpobjid = CreateDynamicObjectEx(770,2444.539,-1943.457,12.543,0.000,0.000,0.000,300.000,300.000);
  21470. tmpobjid = CreateDynamicObjectEx(647,2426.565,-1944.443,13.975,0.000,0.000,0.000,300.000,300.000);
  21471. tmpobjid = CreateDynamicObjectEx(698,2433.614,-1992.828,12.543,0.000,0.000,0.000,300.000,300.000);
  21472. tmpobjid = CreateDynamicObjectEx(669,2453.215,-1943.494,12.543,0.000,0.000,0.000,300.000,300.000);
  21473. tmpobjid = CreateDynamicObjectEx(1712,2448.949,-1966.838,12.543,0.000,0.000,0.000,300.000,300.000);
  21474. tmpobjid = CreateDynamicObjectEx(1712,2451.657,-1969.112,12.543,0.000,0.000,240.000,300.000,300.000);
  21475. tmpobjid = CreateDynamicObjectEx(2031,2449.295,-1968.713,12.442,0.000,0.000,0.000,300.000,300.000);
  21476. tmpobjid = CreateDynamicObjectEx(2821,2445.509,-1966.418,12.543,0.000,0.000,0.000,300.000,300.000);
  21477. tmpobjid = CreateDynamicObjectEx(928,2445.445,-1972.142,12.802,0.000,0.000,0.000,300.000,300.000);
  21478. tmpobjid = CreateDynamicObjectEx(928,2444.783,-1972.275,12.802,0.000,0.000,0.000,300.000,300.000);
  21479. tmpobjid = CreateDynamicObjectEx(928,2445.017,-1971.663,12.802,0.000,0.000,0.000,300.000,300.000);
  21480. tmpobjid = CreateDynamicObjectEx(851,2451.382,-1973.362,12.855,0.000,0.000,0.000,300.000,300.000);
  21481. tmpobjid = CreateDynamicObjectEx(851,2449.212,-1973.756,12.855,0.000,0.000,0.000,300.000,300.000);
  21482. tmpobjid = CreateDynamicObjectEx(851,2450.468,-1972.761,12.855,0.000,0.000,0.000,300.000,300.000);
  21483. tmpobjid = CreateDynamicObjectEx(3005,2442.060,-1949.951,12.543,0.000,0.000,0.000,300.000,300.000);
  21484. tmpobjid = CreateDynamicObjectEx(1355,2450.371,-1973.392,12.739,0.000,0.000,0.000,300.000,300.000);
  21485. tmpobjid = CreateDynamicObjectEx(18689,2451.188,-1974.332,11.192,0.000,0.000,0.000,300.000,300.000);
  21486. tmpobjid = CreateDynamicObjectEx(2843,2450.043,-1971.779,12.543,0.000,0.000,0.000,300.000,300.000);
  21487. tmpobjid = CreateDynamicObjectEx(1412,2423.889,-1945.113,13.817,0.000,0.000,90.000,300.000,300.000);
  21488. tmpobjid = CreateDynamicObjectEx(1412,2447.957,-1942.395,13.817,0.000,0.000,0.000,300.000,300.000);
  21489. tmpobjid = CreateDynamicObjectEx(1412,2442.698,-1942.391,13.821,0.000,0.000,0.000,300.000,300.000);
  21490. tmpobjid = CreateDynamicObjectEx(1412,2430.990,-1942.345,13.821,0.000,0.000,0.000,300.000,300.000);
  21491. tmpobjid = CreateDynamicObjectEx(1412,2426.436,-1942.338,13.821,0.000,0.000,0.000,300.000,300.000);
  21492. tmpobjid = CreateDynamicObjectEx(2856,2428.429,-1975.350,12.543,0.000,0.000,0.000,300.000,300.000);
  21493. tmpobjid = CreateDynamicObjectEx(2859,2429.224,-1967.760,12.543,0.000,0.000,0.000,300.000,300.000);
  21494. tmpobjid = CreateDynamicObjectEx(2859,2428.520,-1968.489,12.543,0.000,0.000,0.000,300.000,300.000);
  21495. tmpobjid = CreateDynamicObjectEx(2859,2427.545,-1968.166,12.543,0.000,0.000,0.000,300.000,300.000);
  21496. tmpobjid = CreateDynamicObjectEx(2859,2428.375,-1967.541,12.543,0.000,0.000,0.000,300.000,300.000);
  21497. tmpobjid = CreateDynamicObjectEx(2859,2450.145,-1968.761,13.241,0.000,0.000,0.000,300.000,300.000);
  21498. tmpobjid = CreateDynamicObjectEx(2859,2442.457,-1949.905,12.543,0.000,0.000,0.000,300.000,300.000);
  21499. tmpobjid = CreateDynamicObjectEx(2859,2442.180,-1948.855,12.543,0.000,0.000,0.000,300.000,300.000);
  21500. tmpobjid = CreateDynamicObjectEx(3860,2441.641,-1943.937,13.715,0.000,0.000,0.000,300.000,300.000);
  21501. tmpobjid = CreateDynamicObjectEx(1526,2443.415,-1951.246,15.715,0.000,0.000,0.000,300.000,300.000);
  21502. tmpobjid = CreateDynamicObjectEx(1528,2443.415,-1951.284,15.727,0.000,0.000,0.000,300.000,300.000);
  21503. tmpobjid = CreateDynamicObjectEx(874,2479.928,-1892.337,14.140,0.000,0.000,0.000,300.000,300.000);
  21504. tmpobjid = CreateDynamicObjectEx(1712,2442.815,-1953.172,12.543,0.000,0.000,270.000,300.000,300.000);
  21505. // Pay 'n' Spray Custom Map
  21506. CreateDynamicObject(5532, 1779.065795, -2305.489501, 910.238525, 0.000000, 0.000000, 0.000000);
  21507. CreateDynamicObject(3055, 1793.636230, -2306.422119, 903.954589, 0.000000, 0.000000, 270.000000);
  21508. // Blocks for Pay 'n' Sprays, Bomb Shops and Tuning Shops
  21509. CreateDynamicObject(3055,2071.4614250,-1831.1199950,13.6828150,0.0000000,0.0000000,90.0000000); //
  21510. CreateDynamicObject(3055,1843.3538810,-1855.8150630,13.0935230,0.0000000,0.0000000,90.0000000); //
  21511. CreateDynamicObject(3055,1025.1224360,-1029.3433830,32.2767100,0.0000000,0.0000000,0.0000000); //
  21512. CreateDynamicObject(3055,719.8192130,-462.4778740,16.3437040,0.0000000,0.0000000,0.0000000); //
  21513. CreateDynamicObject(3055,-99.9452740,1111.4724120,16.6241970,0.0000000,0.0000000,0.0000000); //
  21514. CreateDynamicObject(3055,-99.9452740,1111.4724120,21.6441910,0.0000000,0.0000000,0.0000000); //
  21515. CreateDynamicObject(3055,-1420.7982170,2591.2302240,52.7928000,0.0000000,0.0000000,0.0000000); //
  21516. CreateDynamicObject(3055,-1420.7982170,2591.2302240,57.7727810,0.0000000,0.0000000,0.0000000); //
  21517. CreateDynamicObject(3055,-2425.9394530,1028.2551260,47.4976840,0.0000000,0.0000000,0.0000000); //
  21518. CreateDynamicObject(3055,-2425.9394530,1028.2551260,52.4776870,0.0000000,0.0000000,0.0000000); //
  21519. CreateDynamicObject(3055,-1904.7259520,277.8039850,38.0199620,0.0000000,0.0000000,0.0000000); //
  21520. CreateDynamicObject(3055,-1904.7259520,277.8039850,43.0199500,0.0000000,0.0000000,0.0000000); //
  21521. CreateDynamicObject(3055,1968.2154540,2162.3403320,11.3503170,0.0000000,0.0000000,90.0000000); //
  21522. CreateDynamicObject(3055,2386.8173820,1043.4774160,10.5473860,0.0000000,0.0000000,0.0000000); //
  21523. CreateDynamicObject(3055,488.7078240,-1735.2413330,11.6313780,0.0000000,0.0000000,170.0000000); //
  21524. CreateDynamicObject(3055,2004.6600340,2303.5166010,10.8203120,0.0000000,0.0000000,0.0000000); //
  21525. CreateDynamicObject(3055,2004.6600340,2317.9389640,10.8203120,0.0000000,0.0000000,0.0000000); //
  21526. // Pay 'n' Spray Custom Map
  21527. CreateDynamicObject(5532, 1779.065795, -2305.489501, 910.238525, 0.000000, 0.000000, 0.000000);
  21528. CreateDynamicObject(3055, 1793.636230, -2306.422119, 903.954589, 0.000000, 0.000000, 270.000000);
  21529. // Blocks for Pay 'n' Sprays, Bomb Shops and Tuning Shops
  21530. CreateDynamicObject(3055,2071.4614250,-1831.1199950,13.6828150,0.0000000,0.0000000,90.0000000); //
  21531. CreateDynamicObject(3055,1843.3538810,-1855.8150630,13.0935230,0.0000000,0.0000000,90.0000000); //
  21532. CreateDynamicObject(3055,1025.1224360,-1029.3433830,32.2767100,0.0000000,0.0000000,0.0000000); //
  21533. CreateDynamicObject(3055,719.8192130,-462.4778740,16.3437040,0.0000000,0.0000000,0.0000000); //
  21534. CreateDynamicObject(3055,-99.9452740,1111.4724120,16.6241970,0.0000000,0.0000000,0.0000000); //
  21535. CreateDynamicObject(3055,-99.9452740,1111.4724120,21.6441910,0.0000000,0.0000000,0.0000000); //
  21536. CreateDynamicObject(3055,-1420.7982170,2591.2302240,52.7928000,0.0000000,0.0000000,0.0000000); //
  21537. CreateDynamicObject(3055,-1420.7982170,2591.2302240,57.7727810,0.0000000,0.0000000,0.0000000); //
  21538. CreateDynamicObject(3055,-2425.9394530,1028.2551260,47.4976840,0.0000000,0.0000000,0.0000000); //
  21539. CreateDynamicObject(3055,-2425.9394530,1028.2551260,52.4776870,0.0000000,0.0000000,0.0000000); //
  21540. CreateDynamicObject(3055,-1904.7259520,277.8039850,38.0199620,0.0000000,0.0000000,0.0000000); //
  21541. CreateDynamicObject(3055,-1904.7259520,277.8039850,43.0199500,0.0000000,0.0000000,0.0000000); //
  21542. CreateDynamicObject(3055,1968.2154540,2162.3403320,11.3503170,0.0000000,0.0000000,90.0000000); //
  21543. CreateDynamicObject(3055,2386.8173820,1043.4774160,10.5473860,0.0000000,0.0000000,0.0000000); //
  21544. CreateDynamicObject(3055,488.7078240,-1735.2413330,11.6313780,0.0000000,0.0000000,170.0000000); //
  21545. CreateDynamicObject(3055,2004.6600340,2303.5166010,10.8203120,0.0000000,0.0000000,0.0000000); //
  21546. CreateDynamicObject(3055,2004.6600340,2317.9389640,10.8203120,0.0000000,0.0000000,0.0000000); //
  21547. // Housing maps
  21548. CreateDynamicObject(14748,1365.3616940,-2141.6516110,1051.5886230,0.0000000,0.0000000,270.0000000); // 1
  21549. CreateDynamicObject(1506,1364.5468750,-2146.7316890,1049.6186520,0.0000000,0.0000000,180.0000000); // 1
  21550. CreateDynamicObject(14750,1752.9875480,-1814.0000000,1005.8405150,0.0000000,0.0000000,0.0000000); // 2
  21551. CreateDynamicObject(1506,1750.4439690,-1823.3640130,999.3404540,0.0000000,0.0000000,180.0000000); // 2
  21552. CreateDynamicObject(14754,1284.7003170,-1132.0966790,982.9908440,0.0000000,0.0000000,0.0000000); // 3
  21553. CreateDynamicObject(1506,1282.7630610,-1141.2866210,979.0519400,0.0000000,0.0000000,180.0000000); // 3
  21554. CreateDynamicObject(14718,2005.2022700,-1701.8310540,1164.6922600,0.0000000,0.0000000,90.0000000); // 4
  21555. CreateDynamicObject(1506,2010.1152340,-1698.0543210,1164.7016600,0.0000000,0.0000000,-90.0000000); // 4
  21556. CreateDynamicObject(14713,1183.4338370,-422.9811400,1235.5091550,0.0000000,0.0000000,180.0000000); // 5
  21557. CreateDynamicObject(1506,1177.5120840,-418.1002500,1233.7343750,0.0000000,0.0000000,0.0000000); // 5
  21558. CreateDynamicObject(14712,2190.7031250,-1127.3596190,1129.3358150,0.0000000,0.0000000,270.0000000); // 6
  21559. CreateDynamicObject(1506,2183.2023920,-1131.0895990,1127.7854000,0.0000000,0.0000000,90.0000000); // 6
  21560. CreateDynamicObject(14700,1437.1691890,-1832.8457030,1314.0572500,0.0000000,0.0000000,270.0000000); // 7
  21561. CreateDynamicObject(1506,1433.0982660,-1833.5679930,1312.5968010,0.0000000,0.0000000,90.0000000); // 7
  21562. CreateDynamicObject(14707,911.3341060,-484.4251700,847.4813840,0.0000000,0.0000000,90.0000000); // 8
  21563. CreateDynamicObject(14710,836.9762570,-1017.0670770,800.4819940,0.0000000,0.0000000,180.0000000); // 9
  21564. CreateDynamicObject(1506,827.4833370,-1014.6065060,798.9961540,0.0000000,0.0000000,90.0000000); // 9
  21565. CreateDynamicObject(14711,1312.1368400,-175.0750730,1088.6756590,0.0000000,0.0000000,0.0000000); // 10
  21566. CreateDynamicObject(1506,1321.4031980,-166.8761740,1087.1315910,0.0000000,0.0000000,270.0000000); // 10
  21567. CreateDynamicObject(14706,1834.5144040,-1290.1430660,834.3630370,0.0000000,0.0000000,180.0000000); // 11
  21568. CreateDynamicObject(14701,2654.0761710,-1032.9993890,930.9969480,0.0000000,0.0000000,180.0000000); // 12
  21569. CreateDynamicObject(1506,2653.6835930,-1022.5356440,928.9262690,0.0000000,0.0000000,0.0000000); // 12
  21570. // Prison Interior
  21571. CreateDynamicObject(19377,2604.6955600,-1479.2165500,-50.0000000,0.0000000,90.0000000,0.0000000); //
  21572. CreateDynamicObject(19377,2594.2417000,-1479.1915300,-50.0000000,0.0000000,90.0000000,0.0000000); //
  21573. CreateDynamicObject(19377,2583.7534200,-1479.2049600,-50.0000000,0.0000000,90.0000000,0.0000000); //
  21574. CreateDynamicObject(19377,2573.2517100,-1479.2049600,-50.0000000,0.0000000,90.0000000,0.0000000); //
  21575. CreateDynamicObject(19377,2604.7365700,-1488.8303200,-50.0000000,0.0000000,90.0000000,0.0000000); //
  21576. CreateDynamicObject(19377,2604.7365700,-1498.4482400,-50.0000000,0.0000000,90.0000000,0.0000000); //
  21577. CreateDynamicObject(19377,2604.7341300,-1508.0662800,-50.0000000,0.0000000,90.0000000,0.0000000); //
  21578. CreateDynamicObject(19377,2604.7365700,-1517.6828600,-50.0000000,0.0000000,90.0000000,0.0000000); //
  21579. CreateDynamicObject(19377,2604.7165500,-1527.3006600,-50.0000000,0.0000000,90.0000000,0.0000000); //
  21580. CreateDynamicObject(19377,2594.2375500,-1488.8303200,-50.0000000,0.0000000,90.0000000,0.0000000); //
  21581. CreateDynamicObject(19377,2594.2375500,-1498.4482400,-50.0000000,0.0000000,90.0000000,0.0000000); //
  21582. CreateDynamicObject(19377,2594.2375500,-1508.0759300,-50.0000000,0.0000000,90.0000000,0.0000000); //
  21583. CreateDynamicObject(19377,2594.2375500,-1517.7028800,-50.0000000,0.0000000,90.0000000,0.0000000); //
  21584. CreateDynamicObject(19377,2594.2214400,-1527.3326400,-50.0000000,0.0000000,90.0000000,0.0000000); //
  21585. CreateDynamicObject(19377,2583.7534200,-1488.8303200,-50.0000000,0.0000000,90.0000000,0.0000000); //
  21586. CreateDynamicObject(19377,2583.7534200,-1498.4482400,-50.0000000,0.0000000,90.0000000,0.0000000); //
  21587. CreateDynamicObject(19377,2583.7534200,-1508.0759300,-50.0000000,0.0000000,90.0000000,0.0000000); //
  21588. CreateDynamicObject(19377,2583.7534200,-1517.7028800,-50.0000000,0.0000000,90.0000000,0.0000000); //
  21589. CreateDynamicObject(19377,2583.7534200,-1527.3187300,-50.0000000,0.0000000,90.0000000,0.0000000); //
  21590. CreateDynamicObject(19377,2573.2517100,-1488.8303200,-50.0000000,0.0000000,90.0000000,0.0000000); //
  21591. CreateDynamicObject(19377,2573.2517100,-1498.4482400,-50.0000000,0.0000000,90.0000000,0.0000000); //
  21592. CreateDynamicObject(19377,2573.2517100,-1508.0759300,-50.0000000,0.0000000,90.0000000,0.0000000); //
  21593. CreateDynamicObject(19377,2573.2517100,-1517.7028800,-50.0000000,0.0000000,90.0000000,0.0000000); //
  21594. CreateDynamicObject(19377,2573.2517100,-1527.3206800,-50.0000000,0.0000000,90.0000000,0.0000000); //
  21595. CreateDynamicObject(19457,2567.9824200,-1488.8475300,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21596. CreateDynamicObject(19457,2567.9824200,-1498.4682600,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21597. CreateDynamicObject(19457,2567.9824200,-1508.0865500,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21598. CreateDynamicObject(19457,2567.9824200,-1517.7161900,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21599. CreateDynamicObject(19457,2567.9824200,-1527.3437500,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21600. CreateDynamicObject(19377,2573.2382800,-1536.9274900,-50.0000000,0.0000000,90.0000000,0.0000000); //
  21601. CreateDynamicObject(19377,2583.7534200,-1536.9422600,-50.0000000,0.0000000,90.0000000,0.0000000); //
  21602. CreateDynamicObject(19377,2594.2375500,-1536.9422600,-50.0000000,0.0000000,90.0000000,0.0000000); //
  21603. CreateDynamicObject(19377,2604.7365700,-1536.9222400,-50.0000000,0.0000000,90.0000000,0.0000000); //
  21604. CreateDynamicObject(19457,2567.9824200,-1536.9768100,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21605. CreateDynamicObject(19457,2572.7351100,-1541.6134000,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21606. CreateDynamicObject(19457,2582.3513200,-1541.6134000,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21607. CreateDynamicObject(19457,2591.9802200,-1541.6134000,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21608. CreateDynamicObject(19457,2601.5991200,-1541.6134000,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21609. CreateDynamicObject(19457,2611.2236300,-1541.6134000,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21610. CreateDynamicObject(19457,2609.6467300,-1536.9768100,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21611. CreateDynamicObject(19457,2609.6467300,-1527.3437500,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21612. CreateDynamicObject(19457,2609.6467300,-1517.7161900,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21613. CreateDynamicObject(19457,2609.6467300,-1508.0865500,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21614. CreateDynamicObject(19457,2609.6467300,-1498.4682600,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21615. CreateDynamicObject(19457,2609.6467300,-1488.8475300,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21616. CreateDynamicObject(19394,2577.5341800,-1485.6203600,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21617. CreateDynamicObject(19438,2578.3332500,-1491.9337200,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21618. CreateDynamicObject(19411,2580.7294900,-1491.9337200,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21619. CreateDynamicObject(19394,2582.3925800,-1487.1534400,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21620. CreateDynamicObject(19457,2588.8015100,-1487.1534400,-48.1570000,0.0000000,0.0000000,-90.0000000); //
  21621. CreateDynamicObject(19365,2579.2011700,-1487.1534400,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21622. CreateDynamicObject(19394,2595.2063000,-1487.1534400,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21623. CreateDynamicObject(19457,2601.6276900,-1487.1534400,-48.1570000,0.0000000,0.0000000,-90.0000000); //
  21624. CreateDynamicObject(19457,2585.5222200,-1491.9006300,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21625. CreateDynamicObject(19457,2596.7343800,-1491.9605700,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21626. CreateDynamicObject(19457,2585.5361300,-1483.9497100,-48.1570000,0.0000000,0.0000000,-90.0000000); //
  21627. CreateDynamicObject(19394,2579.1298800,-1483.9497100,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21628. CreateDynamicObject(19394,2591.9558100,-1483.9497100,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21629. CreateDynamicObject(19457,2598.3610800,-1483.9497100,-48.1570000,0.0000000,0.0000000,-90.0000000); //
  21630. CreateDynamicObject(19394,2607.9790000,-1483.9497100,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21631. CreateDynamicObject(19365,2604.7751500,-1483.9497100,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21632. CreateDynamicObject(19457,2606.3679200,-1491.8909900,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21633. CreateDynamicObject(19457,2596.7343800,-1501.5871600,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21634. CreateDynamicObject(19365,2583.9421400,-1491.9337200,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21635. CreateDynamicObject(19411,2575.9389600,-1491.9337200,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21636. CreateDynamicObject(19438,2573.5485800,-1491.9337200,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21637. CreateDynamicObject(19411,2571.1586900,-1491.9337200,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21638. CreateDynamicObject(19438,2568.7641600,-1491.9337200,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21639. CreateDynamicObject(19394,2588.7111800,-1496.6490500,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21640. CreateDynamicObject(19394,2606.3679200,-1498.3006600,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21641. CreateDynamicObject(19365,2595.1235400,-1496.6490500,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21642. CreateDynamicObject(19394,2593.5007300,-1498.2564700,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21643. CreateDynamicObject(19365,2591.9223600,-1496.6490500,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21644. CreateDynamicObject(19394,2579.1084000,-1496.6490500,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21645. CreateDynamicObject(19457,2572.6975100,-1496.6490500,-48.1570000,0.0000000,0.0000000,-90.0000000); //
  21646. CreateDynamicObject(19457,2593.5007300,-1504.6635700,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21647. CreateDynamicObject(19457,2606.3679200,-1504.7165500,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21648. CreateDynamicObject(19457,2596.7343800,-1536.8515600,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21649. CreateDynamicObject(19394,2596.7343800,-1511.1977500,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21650. CreateDynamicObject(19457,2579.1049800,-1532.1666300,-48.1570000,0.0000000,0.0000000,-90.0000000); //
  21651. CreateDynamicObject(19394,2572.6879900,-1532.1666300,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21652. CreateDynamicObject(19457,2593.5007300,-1514.2963900,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21653. CreateDynamicObject(19457,2593.5007300,-1523.9256600,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21654. CreateDynamicObject(19457,2580.1787100,-1537.0216100,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21655. CreateDynamicObject(19394,2592.8403300,-1533.5225800,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21656. CreateDynamicObject(19457,2588.7324200,-1532.1666300,-48.1570000,0.0000000,0.0000000,-90.0000000); //
  21657. CreateDynamicObject(19365,2569.4929200,-1532.1666300,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21658. CreateDynamicObject(19365,2593.5007300,-1530.3308100,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21659. CreateDynamicObject(19365,2592.8405800,-1536.7275400,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21660. CreateDynamicObject(19365,2592.8405800,-1539.9294400,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21661. CreateDynamicObject(19457,2606.3679200,-1514.3342300,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21662. CreateDynamicObject(19394,2581.7158200,-1535.0980200,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21663. CreateDynamicObject(19394,2588.1276900,-1535.0980200,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21664. CreateDynamicObject(19365,2591.3181200,-1535.1016800,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21665. CreateDynamicObject(19457,2586.5991200,-1539.9289600,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21666. CreateDynamicObject(19457,2596.7343800,-1527.2297400,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21667. CreateDynamicObject(19457,2596.7343800,-1517.6079100,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21668. CreateDynamicObject(19365,2596.7343800,-1508.0009800,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21669. CreateDynamicObject(19457,2601.6232900,-1538.2376700,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21670. CreateDynamicObject(19394,2606.3679200,-1523.9216300,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21671. CreateDynamicObject(14410,2603.1806600,-1540.2266800,-49.4211000,0.0000000,0.0000000,90.0000000); //
  21672. CreateDynamicObject(19457,2606.3679200,-1533.5040300,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21673. CreateDynamicObject(19457,2601.4643600,-1522.8201900,-48.1570000,0.0000000,0.0000000,-90.0000000); //
  21674. CreateDynamicObject(19365,2606.3679200,-1527.1081500,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21675. CreateDynamicObject(19365,2606.3679200,-1520.7421900,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21676. CreateDynamicObject(19377,2580.9077100,-1537.0592000,-46.3228000,0.0000000,90.0000000,0.0000000); //
  21677. CreateDynamicObject(19457,2567.9824200,-1527.3437500,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21678. CreateDynamicObject(19457,2567.9824200,-1517.7161900,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21679. CreateDynamicObject(19457,2567.9824200,-1508.0865500,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21680. CreateDynamicObject(19457,2567.9824200,-1498.4682600,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21681. CreateDynamicObject(19457,2579.1049800,-1532.1666300,-44.6656000,0.0000000,0.0000000,-90.0000000); //
  21682. CreateDynamicObject(19457,2588.7324200,-1532.1666300,-44.6656000,0.0000000,0.0000000,-90.0000000); //
  21683. CreateDynamicObject(19365,2569.4929200,-1532.1666300,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21684. CreateDynamicObject(19457,2569.5012200,-1496.6490500,-44.6656000,0.0000000,0.0000000,-90.0000000); //
  21685. CreateDynamicObject(19365,2591.9223600,-1496.6490500,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21686. CreateDynamicObject(19365,2588.7211900,-1496.6490500,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21687. CreateDynamicObject(19365,2575.8852500,-1496.6490500,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21688. CreateDynamicObject(19365,2572.6774900,-1532.1666300,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21689. CreateDynamicObject(19457,2611.2236300,-1541.6134000,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21690. CreateDynamicObject(19457,2601.5991200,-1541.6134000,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21691. CreateDynamicObject(19457,2591.9802200,-1541.6134000,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21692. CreateDynamicObject(19457,2609.6467300,-1536.9768100,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21693. CreateDynamicObject(19457,2601.4633800,-1538.2376700,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21694. CreateDynamicObject(19457,2593.4606900,-1536.8286100,-44.6456000,0.0000000,0.0000000,0.0000000); //
  21695. CreateDynamicObject(19303,2588.8239700,-1518.8553500,-48.6639000,0.0000000,0.0000000,-90.0000000); //
  21696. CreateDynamicObject(14410,2574.2595200,-1498.6186500,-49.4211000,0.0000000,0.0000000,90.0000000); //
  21697. CreateDynamicObject(19457,2572.7238800,-1504.1412400,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21698. CreateDynamicObject(19365,2585.5117200,-1496.6490500,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21699. CreateDynamicObject(19365,2582.3090800,-1496.6490500,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21700. CreateDynamicObject(14410,2591.6364700,-1525.8955100,-49.4211000,0.0000000,0.0000000,180.0000000); //
  21701. CreateDynamicObject(19457,2589.6608900,-1527.4282200,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21702. CreateDynamicObject(19365,2590.3869600,-1519.8120100,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21703. CreateDynamicObject(19438,2592.7836900,-1519.8120100,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21704. CreateDynamicObject(19365,2590.3869600,-1516.1462400,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21705. CreateDynamicObject(19303,2588.8239700,-1515.1954300,-48.6639000,0.0000000,0.0000000,-90.0000000); //
  21706. CreateDynamicObject(19365,2590.3869600,-1512.4995100,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21707. CreateDynamicObject(19303,2588.8239700,-1511.5518800,-48.6639000,0.0000000,0.0000000,-90.0000000); //
  21708. CreateDynamicObject(19365,2590.3869600,-1508.8383800,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21709. CreateDynamicObject(19303,2588.8239700,-1507.8676800,-48.6639000,0.0000000,0.0000000,-90.0000000); //
  21710. CreateDynamicObject(19365,2590.3869600,-1505.1771200,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21711. CreateDynamicObject(19303,2588.8239700,-1504.2251000,-48.6639000,0.0000000,0.0000000,-90.0000000); //
  21712. CreateDynamicObject(19365,2590.3869600,-1501.5087900,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21713. CreateDynamicObject(19438,2592.7836900,-1516.1462400,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21714. CreateDynamicObject(19438,2592.7836900,-1508.8383800,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21715. CreateDynamicObject(19438,2592.7836900,-1512.4995100,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21716. CreateDynamicObject(19438,2592.7836900,-1505.1771200,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21717. CreateDynamicObject(19438,2592.7836900,-1501.5087900,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21718. CreateDynamicObject(19438,2592.7836900,-1501.5087900,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21719. CreateDynamicObject(19365,2590.3869600,-1501.5087900,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21720. CreateDynamicObject(19365,2590.3869600,-1519.8120100,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21721. CreateDynamicObject(19438,2592.7836900,-1519.8120100,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21722. CreateDynamicObject(19303,2577.4909700,-1501.4527600,-48.6639000,0.0000000,0.0000000,90.0000000); //
  21723. CreateDynamicObject(19457,2572.7238800,-1500.4847400,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21724. CreateDynamicObject(19303,2577.4909700,-1505.0980200,-48.6639000,0.0000000,0.0000000,90.0000000); //
  21725. CreateDynamicObject(19457,2572.7238800,-1507.7819800,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21726. CreateDynamicObject(19303,2577.4909700,-1508.7457300,-48.6639000,0.0000000,0.0000000,90.0000000); //
  21727. CreateDynamicObject(19457,2572.7238800,-1511.4622800,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21728. CreateDynamicObject(19303,2577.4909700,-1512.4062500,-48.6639000,0.0000000,0.0000000,90.0000000); //
  21729. CreateDynamicObject(19457,2572.7238800,-1515.1044900,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21730. CreateDynamicObject(19303,2577.4909700,-1516.0721400,-48.6639000,0.0000000,0.0000000,90.0000000); //
  21731. CreateDynamicObject(19457,2572.7238800,-1518.7784400,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21732. CreateDynamicObject(19303,2586.9597200,-1522.6436800,-48.6639000,0.0000000,0.0000000,180.0000000); //
  21733. CreateDynamicObject(19457,2585.9934100,-1527.4282200,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21734. CreateDynamicObject(19303,2583.2768600,-1522.6436800,-48.6639000,0.0000000,0.0000000,180.0000000); //
  21735. CreateDynamicObject(19457,2582.3120100,-1527.4282200,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21736. CreateDynamicObject(19303,2579.6264600,-1522.6436800,-48.6639000,0.0000000,0.0000000,180.0000000); //
  21737. CreateDynamicObject(19365,2584.9216300,-1535.0980200,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21738. CreateDynamicObject(19457,2578.6672400,-1527.4282200,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21739. CreateDynamicObject(19457,2583.4438500,-1529.0803200,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21740. CreateDynamicObject(19365,2589.8520500,-1529.0803200,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21741. CreateDynamicObject(19457,2571.3576700,-1513.9243200,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21742. CreateDynamicObject(19457,2571.3576700,-1504.3065200,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21743. CreateDynamicObject(1533,2596.3134800,-1541.4964600,-49.9154000,0.0000000,0.0000000,180.0000000); //
  21744. CreateDynamicObject(1537,2593.3034700,-1541.5025600,-49.9152000,0.0000000,0.0000000,180.0000000); //
  21745. CreateDynamicObject(19365,2593.4990200,-1530.6500200,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21746. CreateDynamicObject(19273,2587.6838400,-1496.7015400,-48.5737000,0.0000000,0.0000000,0.0000000); //
  21747. CreateDynamicObject(2635,2591.5705600,-1500.7053200,-49.5159000,0.0000000,0.0000000,0.0000000); //
  21748. CreateDynamicObject(1810,2592.6901900,-1500.9884000,-49.9166000,0.0000000,0.0000000,-120.0000000); //
  21749. CreateDynamicObject(2202,2568.6152300,-1485.0954600,-49.9186000,0.0000000,0.0000000,90.0000000); //
  21750. CreateDynamicObject(2602,2572.8051800,-1503.6680900,-49.3503000,0.0000000,0.0000000,180.0000000); //
  21751. CreateDynamicObject(2718,2583.2966300,-1496.8648700,-47.3391000,0.0000000,0.0000000,0.0000000); //
  21752. CreateDynamicObject(2713,2586.6293900,-1496.7429200,-47.0757900,0.0000000,0.0000000,0.0000000); //
  21753. CreateDynamicObject(19394,2604.7678200,-1530.6458700,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21754. CreateDynamicObject(19457,2596.7329100,-1501.5073200,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21755. CreateDynamicObject(19438,2593.5007300,-1500.7863800,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21756. CreateDynamicObject(19438,2593.5007300,-1496.6726100,-44.6456000,0.0000000,0.0000000,0.0000000); //
  21757. CreateDynamicObject(19438,2588.8679200,-1503.1925000,-46.6081000,90.0000000,0.0000000,0.0000000); //
  21758. CreateDynamicObject(3278,-1502.8717000,-44.7334000,-44.7334000,0.0000000,0.0000000,90.0000000); //
  21759. CreateDynamicObject(19457,2578.6672400,-1527.4278600,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21760. CreateDynamicObject(19457,2572.7238800,-1518.7784400,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21761. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  21762. CreateDynamicObject(1649,2580.8847700,-1491.9346900,-48.0739000,0.0000000,0.0000000,0.0000000); //
  21763. CreateDynamicObject(1649,2575.9939000,-1491.9556900,-48.0739000,0.0000000,0.0000000,0.0000000); //
  21764. CreateDynamicObject(1649,2571.2666000,-1491.9328600,-48.0739000,0.0000000,0.0000000,0.0000000); //
  21765. CreateDynamicObject(1649,2571.2666000,-1491.9328600,-48.0739000,0.0000000,0.0000000,180.0000000); //
  21766. CreateDynamicObject(1649,2575.9939000,-1491.9556900,-48.0739000,0.0000000,0.0000000,180.0000000); //
  21767. CreateDynamicObject(1649,2580.8847700,-1491.9346900,-48.0739000,0.0000000,0.0000000,180.0000000); //
  21768. CreateDynamicObject(19438,2578.3186000,-1492.6512500,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21769. CreateDynamicObject(19438,2573.6147500,-1492.6512500,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21770. CreateDynamicObject(19438,2597.5397900,-1530.6458700,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21771. CreateDynamicObject(19438,2602.3591300,-1530.6450200,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21772. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,180.0000000); //
  21773. CreateDynamicObject(19365,2599.9484900,-1530.6450200,-50.7967000,0.0000000,180.0000000,90.0000000); //
  21774. CreateDynamicObject(19450,2572.7417000,-1487.1138900,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21775. CreateDynamicObject(19388,2577.5210000,-1485.6270800,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21776. CreateDynamicObject(19450,2577.5210000,-1479.2235100,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21777. CreateDynamicObject(19450,2568.0485800,-1482.2811300,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21778. CreateDynamicObject(19450,2568.0485800,-1472.6855500,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21779. CreateDynamicObject(19450,2572.7021500,-1474.3736600,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21780. CreateDynamicObject(19376,2572.3090800,-1482.2480500,-49.9854000,0.0000000,90.0000000,0.0000000); //
  21781. CreateDynamicObject(19376,2572.2968800,-1472.6307400,-49.9854000,0.0000000,90.0000000,0.0000000); //
  21782. CreateDynamicObject(19376,2585.4975600,-1479.1419700,-49.9854000,0.0000000,90.0000000,0.0000000); //
  21783. CreateDynamicObject(19376,2582.8513200,-1479.1435500,-49.9860000,0.0000000,90.0000000,0.0000000); //
  21784. CreateDynamicObject(1491,2581.6093800,-1487.1654100,-49.9291500,0.0000000,0.0000000,0.0000000); //
  21785. CreateDynamicObject(1491,2578.3442400,-1483.9614300,-49.9291500,0.0000000,0.0000000,0.0000000); //
  21786. CreateDynamicObject(1491,2591.1740700,-1483.9705800,-49.9291500,0.0000000,0.0000000,0.0000000); //
  21787. CreateDynamicObject(1491,2607.1940900,-1483.9592300,-49.9291500,0.0000000,0.0000000,0.0000000); //
  21788. CreateDynamicObject(1491,2606.3859900,-1499.0465100,-49.9291000,0.0000000,0.0000000,90.0000000); //
  21789. CreateDynamicObject(1491,2606.3671900,-1524.6527100,-49.9291000,0.0000000,0.0000000,90.0000000); //
  21790. CreateDynamicObject(1491,2596.7407200,-1511.9392100,-49.9291000,0.0000000,0.0000000,90.0000000); //
  21791. CreateDynamicObject(19394,2596.7343800,-1535.1143800,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21792. CreateDynamicObject(19438,2596.7343800,-1537.5069600,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21793. CreateDynamicObject(19457,2596.7150900,-1528.7030000,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21794. CreateDynamicObject(19394,2596.7343800,-1522.2900400,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21795. CreateDynamicObject(19457,2596.7343800,-1515.8817100,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21796. CreateDynamicObject(19394,2596.7343800,-1507.9480000,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21797. CreateDynamicObject(19438,2596.7363300,-1510.2811300,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21798. CreateDynamicObject(1491,2596.7463400,-1508.7010500,-46.4122000,0.0000000,0.0000000,90.0000000); //
  21799. CreateDynamicObject(1491,2596.7426800,-1523.0285600,-46.3922000,0.0000000,0.0000000,90.0000000); //
  21800. CreateDynamicObject(1491,2596.7385300,-1535.8548600,-46.4122000,0.0000000,0.0000000,90.0000000); //
  21801. CreateDynamicObject(19383,2596.7424300,-1511.1893300,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21802. CreateDynamicObject(19389,2607.9851100,-1483.9314000,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21803. CreateDynamicObject(19451,2600.0488300,-1479.1715100,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21804. CreateDynamicObject(19459,2568.0004900,-1487.0660400,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21805. CreateDynamicObject(19413,2580.7287600,-1491.9178500,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21806. CreateDynamicObject(19395,2582.3989300,-1487.1638200,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21807. CreateDynamicObject(19440,2578.3371600,-1491.9178500,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21808. CreateDynamicObject(19445,2601.6257300,-1519.3200700,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21809. CreateDynamicObject(19390,2596.7451200,-1522.2963900,-44.6456000,0.0000000,0.0000000,0.0000000); //
  21810. CreateDynamicObject(19453,2596.7451200,-1515.8820800,-44.6456000,0.0000000,0.0000000,0.0000000); //
  21811. CreateDynamicObject(19446,2601.5786100,-1503.6179200,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21812. CreateDynamicObject(19384,2606.3642600,-1498.3037100,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21813. CreateDynamicObject(19453,2577.6452600,-1479.1212200,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21814. CreateDynamicObject(19390,2579.1315900,-1483.9487300,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21815. CreateDynamicObject(19453,2590.3767100,-1479.1684600,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21816. CreateDynamicObject(19451,2590.7097200,-1479.0387000,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21817. CreateDynamicObject(19451,2595.5939900,-1474.4404300,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21818. CreateDynamicObject(19451,2604.8786600,-1476.2733200,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21819. CreateDynamicObject(19451,2609.6379400,-1479.1217000,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21820. CreateDynamicObject(19453,2585.5358900,-1483.9487300,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21821. CreateDynamicObject(19453,2586.3601100,-1474.3365500,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21822. CreateDynamicObject(19453,2576.7392600,-1474.3365500,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21823. CreateDynamicObject(19445,2606.3122600,-1514.4314000,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21824. CreateDynamicObject(19445,2601.5261200,-1509.5289300,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21825. CreateDynamicObject(19445,2596.7424300,-1517.6065700,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21826. CreateDynamicObject(19451,2601.5695800,-1483.9314000,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21827. CreateDynamicObject(19446,2606.3642600,-1491.8995400,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21828. CreateDynamicObject(19446,2601.5065900,-1487.1972700,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21829. CreateDynamicObject(19446,2596.8144500,-1492.0570100,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21830. CreateDynamicObject(19446,2596.8139600,-1501.6905500,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21831. CreateDynamicObject(19446,2606.3642600,-1504.7126500,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21832. CreateDynamicObject(19460,2605.1777300,-1523.8084700,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21833. CreateDynamicObject(19396,2596.7424300,-1507.9394500,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21834. CreateDynamicObject(19441,2596.7522000,-1537.4886500,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21835. CreateDynamicObject(19459,2575.9934100,-1487.1638200,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21836. CreateDynamicObject(19459,2566.3720700,-1487.1638200,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21837. CreateDynamicObject(19367,2585.5217300,-1490.3896500,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21838. CreateDynamicObject(19440,2584.7812500,-1487.1698000,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21839. CreateDynamicObject(19440,2585.5217300,-1488.0059800,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21840. CreateDynamicObject(19367,2583.9301800,-1491.9178500,-48.1570000,0.0000000,0.0000000,990.0000000); //
  21841. CreateDynamicObject(19413,2575.9465300,-1491.9178500,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21842. CreateDynamicObject(19440,2573.5397900,-1491.9178500,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21843. CreateDynamicObject(19413,2571.1557600,-1491.9178500,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21844. CreateDynamicObject(19440,2568.7524400,-1491.9178500,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21845. CreateDynamicObject(19440,2573.6147500,-1491.2341300,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21846. CreateDynamicObject(19440,2578.3186000,-1491.2341300,-48.1570000,0.0000000,0.0000000,0.0000000); //
  21847. CreateDynamicObject(19453,2601.4990200,-1523.9281000,-44.6456000,0.0000000,0.0000000,90.0000000); //
  21848. CreateDynamicObject(19453,2604.4018600,-1519.2180200,-44.6456000,0.0000000,0.0000000,0.0000000); //
  21849. CreateDynamicObject(19453,2604.4072300,-1514.3641400,-44.6456000,0.0000000,0.0000000,0.0000000); //
  21850. CreateDynamicObject(19453,2601.5288100,-1509.5534700,-44.6456000,0.0000000,0.0000000,90.0000000); //
  21851. CreateDynamicObject(19460,2605.1835900,-1533.4110100,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21852. CreateDynamicObject(19460,2601.5468800,-1538.2264400,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21853. CreateDynamicObject(19460,2606.3493700,-1504.7169200,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21854. CreateDynamicObject(19460,2601.6123000,-1499.8158000,-44.6456000,0.0000000,0.0000000,90.0000000); //
  21855. CreateDynamicObject(19460,2601.5661600,-1509.5328400,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21856. CreateDynamicObject(19460,2596.7424300,-1501.5295400,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21857. CreateDynamicObject(19460,2596.7522000,-1528.6767600,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21858. CreateDynamicObject(19396,2596.7522000,-1535.0933800,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21859. CreateDynamicObject(19460,2601.5805700,-1524.0114700,-44.6456000,0.0000000,0.0000000,90.0000000); //
  21860. CreateDynamicObject(19434,2596.7451200,-1510.2794200,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21861. CreateDynamicObject(19389,2591.9553200,-1483.9314000,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21862. CreateDynamicObject(19359,2595.1445300,-1483.9314000,-48.1570000,0.0000000,0.0000000,90.0000000); //
  21863. CreateDynamicObject(19457,2583.4099100,-1522.6989700,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21864. CreateDynamicObject(19438,2588.9470200,-1522.6994600,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21865. CreateDynamicObject(19457,2577.4726600,-1505.2242400,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21866. CreateDynamicObject(19365,2589.6608900,-1527.4061300,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21867. CreateDynamicObject(19365,2589.6608900,-1524.2182600,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21868. CreateDynamicObject(19365,2585.9934100,-1527.4061300,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21869. CreateDynamicObject(19365,2585.9934100,-1524.2182600,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21870. CreateDynamicObject(19365,2582.3120100,-1524.2182600,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21871. CreateDynamicObject(19365,2582.3120100,-1527.4061300,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21872. CreateDynamicObject(19365,2575.9494600,-1500.4847400,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21873. CreateDynamicObject(19365,2572.7597700,-1500.4847400,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21874. CreateDynamicObject(19365,2572.7597700,-1504.1412400,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21875. CreateDynamicObject(19365,2575.9494600,-1504.1412400,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21876. CreateDynamicObject(19365,2572.7597700,-1507.7819800,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21877. CreateDynamicObject(19365,2575.9494600,-1507.7819800,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21878. CreateDynamicObject(19365,2572.7597700,-1511.4622800,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21879. CreateDynamicObject(19365,2575.9494600,-1511.4622800,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21880. CreateDynamicObject(19365,2572.7597700,-1515.1044900,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21881. CreateDynamicObject(19365,2575.9494600,-1515.1044900,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21882. CreateDynamicObject(19457,2583.4099100,-1522.6999500,-45.6656000,0.0000000,0.0000000,90.0000000); //
  21883. CreateDynamicObject(19438,2588.9470200,-1522.7002000,-45.6656000,0.0000000,0.0000000,90.0000000); //
  21884. CreateDynamicObject(19457,2577.4668000,-1514.0482200,-45.6656000,0.0000000,0.0000000,0.0000000); //
  21885. CreateDynamicObject(19457,2577.4628900,-1505.2241200,-45.6656000,0.0000000,0.0000000,0.0000000); //
  21886. CreateDynamicObject(19377,2584.4929200,-1527.4469000,-46.3228000,0.0000000,90.0000000,0.0000000); //
  21887. CreateDynamicObject(19377,2583.9729000,-1527.4469000,-46.3232000,0.0000000,90.0000000,0.0000000); //
  21888. CreateDynamicObject(19377,2604.3952600,-1533.4248000,-46.3432000,0.0000000,90.0000000,0.0000000); //
  21889. CreateDynamicObject(19377,2604.3762200,-1523.7962600,-46.3432000,0.0000000,90.0000000,0.0000000); //
  21890. CreateDynamicObject(19377,2604.3762200,-1514.2016600,-46.3232000,0.0000000,90.0000000,0.0000000); //
  21891. CreateDynamicObject(19377,2604.3762200,-1504.5864300,-46.3232000,0.0000000,90.0000000,0.0000000); //
  21892. CreateDynamicObject(19377,2591.3874500,-1536.8941700,-46.3232000,0.0000000,90.0000000,0.0000000); //
  21893. CreateDynamicObject(19457,2611.0893600,-1538.2376700,-44.6656000,0.0000000,0.0000000,90.0000000); //
  21894. CreateDynamicObject(19377,2572.1840800,-1513.9453100,-46.3232000,0.0000000,90.0000000,0.0000000); //
  21895. CreateDynamicObject(19377,2572.1840800,-1505.2279100,-46.3228000,0.0000000,90.0000000,0.0000000); //
  21896. CreateDynamicObject(19303,2571.1882300,-1503.1977500,-44.9858000,0.0000000,0.0000000,-90.0000000); //
  21897. CreateDynamicObject(19303,2571.1882300,-1506.8543700,-44.9858000,0.0000000,0.0000000,-90.0000000); //
  21898. CreateDynamicObject(19303,2571.1882300,-1510.4953600,-44.9858000,0.0000000,0.0000000,-90.0000000); //
  21899. CreateDynamicObject(19303,2571.1882300,-1514.1390400,-44.9858000,0.0000000,0.0000000,-90.0000000); //
  21900. CreateDynamicObject(19303,2571.1882300,-1517.8060300,-44.9858000,0.0000000,0.0000000,-90.0000000); //
  21901. CreateDynamicObject(19457,2571.2272900,-1505.2242400,-41.9868000,0.0000000,0.0000000,0.0000000); //
  21902. CreateDynamicObject(19457,2571.2275400,-1514.0482200,-41.9868000,0.0000000,0.0000000,0.0000000); //
  21903. CreateDynamicObject(19303,2581.3505900,-1528.9715600,-44.9858000,0.0000000,0.0000000,0.0000000); //
  21904. CreateDynamicObject(19457,2583.4099100,-1528.9423800,-41.9868000,0.0000000,0.0000000,90.0000000); //
  21905. CreateDynamicObject(19303,2585.0329600,-1528.9715600,-44.9858000,0.0000000,0.0000000,0.0000000); //
  21906. CreateDynamicObject(19303,2588.6933600,-1528.9715600,-44.9858000,0.0000000,0.0000000,0.0000000); //
  21907. CreateDynamicObject(19438,2588.9470200,-1528.9420200,-41.9868000,0.0000000,0.0000000,90.0000000); //
  21908. CreateDynamicObject(19438,2588.8664600,-1506.4571500,-46.6081000,90.0000000,0.0000000,0.0000000); //
  21909. CreateDynamicObject(19438,2588.8659700,-1509.7370600,-46.6081000,90.0000000,0.0000000,0.0000000); //
  21910. CreateDynamicObject(19438,2588.8654800,-1513.0338100,-46.6081000,90.0000000,0.0000000,0.0000000); //
  21911. CreateDynamicObject(19438,2588.8649900,-1516.3359400,-46.6081000,90.0000000,0.0000000,0.0000000); //
  21912. CreateDynamicObject(19438,2588.8654800,-1518.1480700,-46.6081000,90.0000000,0.0000000,180.0000000); //
  21913. CreateDynamicObject(19438,2588.8664600,-1516.4140600,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21914. CreateDynamicObject(19438,2588.8813500,-1504.9034400,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21915. CreateDynamicObject(19438,2588.8664600,-1508.9973100,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21916. CreateDynamicObject(19438,2588.8701200,-1512.3344700,-44.6656000,0.0000000,0.0000000,0.0000000); //
  21917. CreateDynamicObject(1810,2590.4292000,-1500.5133100,-49.9166000,0.0000000,0.0000000,90.0000000); //
  21918. CreateDynamicObject(1810,2586.6823700,-1497.3075000,-49.9166000,0.0000000,0.0000000,0.0000000); //
  21919. CreateDynamicObject(2602,2572.1464800,-1504.5993700,-49.3503000,0.0000000,0.0000000,0.0000000); //
  21920. CreateDynamicObject(2602,2573.2241200,-1511.0128200,-49.3503000,0.0000000,0.0000000,180.0000000); //
  21921. CreateDynamicObject(2602,2573.2226600,-1511.9268800,-49.3503000,0.0000000,0.0000000,0.0000000); //
  21922. CreateDynamicObject(2602,2572.7985800,-1515.5651900,-49.3503000,0.0000000,0.0000000,0.0000000); //
  21923. CreateDynamicObject(2602,2591.2797900,-1516.6300000,-49.3503000,0.0000000,0.0000000,0.0000000); //
  21924. CreateDynamicObject(2602,2591.7448700,-1512.9747300,-49.3503000,0.0000000,0.0000000,0.0000000); //
  21925. CreateDynamicObject(2602,2592.3857400,-1512.0372300,-49.3503000,0.0000000,0.0000000,180.0000000); //
  21926. CreateDynamicObject(2602,2591.8483900,-1505.6694300,-49.3503000,0.0000000,0.0000000,0.0000000); //
  21927. CreateDynamicObject(2602,2591.3774400,-1504.7100800,-49.3503000,0.0000000,0.0000000,180.0000000); //
  21928. CreateDynamicObject(2602,2582.7678200,-1527.4909700,-49.3503000,0.0000000,0.0000000,90.0000000); //
  21929. CreateDynamicObject(2602,2589.1862800,-1526.1425800,-49.3503000,0.0000000,0.0000000,-90.0000000); //
  21930. CreateDynamicObject(2602,2581.8627900,-1526.6735800,-49.3503000,0.0000000,0.0000000,-90.0000000); //
  21931. CreateDynamicObject(2602,2581.8606000,-1523.8981900,-45.6161000,0.0000000,0.0000000,-90.0000000); //
  21932. CreateDynamicObject(2602,2585.5263700,-1524.7492700,-45.6161000,0.0000000,0.0000000,-90.0000000); //
  21933. CreateDynamicObject(2602,2586.4472700,-1524.8424100,-45.6161000,0.0000000,0.0000000,90.0000000); //
  21934. CreateDynamicObject(2602,2576.5747100,-1518.3262900,-45.6161000,0.0000000,0.0000000,180.0000000); //
  21935. CreateDynamicObject(2602,2576.4353000,-1514.6389200,-45.6161000,0.0000000,0.0000000,180.0000000); //
  21936. CreateDynamicObject(2602,2575.4777800,-1508.2396200,-45.6161000,0.0000000,0.0000000,0.0000000); //
  21937. CreateDynamicObject(2602,2576.3315400,-1507.3170200,-45.6161000,0.0000000,0.0000000,180.0000000); //
  21938. CreateDynamicObject(2602,2576.1120600,-1503.6669900,-45.6161000,0.0000000,0.0000000,180.0000000); //
  21939. CreateDynamicObject(2718,2568.1943400,-1527.0000000,-47.3391000,0.0000000,0.0000000,90.0000000); //
  21940. CreateDynamicObject(2635,2569.7751500,-1530.2347400,-49.5159000,0.0000000,0.0000000,0.0000000); //
  21941. CreateDynamicObject(1810,2569.9243200,-1529.1588100,-49.9166000,0.0000000,0.0000000,0.0000000); //
  21942. CreateDynamicObject(1810,2569.3713400,-1531.2939500,-49.9166000,0.0000000,0.0000000,180.0000000); //
  21943. CreateDynamicObject(1810,2568.6267100,-1530.0194100,-49.9166000,0.0000000,0.0000000,90.0000000); //
  21944. CreateDynamicObject(1810,2570.7819800,-1530.4863300,-49.9166000,0.0000000,0.0000000,-90.0000000); //
  21945. CreateDynamicObject(19273,2594.0835000,-1487.1978800,-48.5737000,0.0000000,0.0000000,0.0000000); //
  21946. CreateDynamicObject(19273,2594.1801800,-1487.1099900,-48.5737000,0.0000000,0.0000000,180.0000000); //
  21947. CreateDynamicObject(19273,2589.6960400,-1496.6012000,-48.5737000,0.0000000,0.0000000,180.0000000); //
  21948. CreateDynamicObject(19273,2573.7114300,-1532.0683600,-48.5737000,0.0000000,0.0000000,180.0000000); //
  21949. CreateDynamicObject(19273,2571.6086400,-1532.2152100,-48.5737000,0.0000000,0.0000000,0.0000000); //
  21950. CreateDynamicObject(19273,2593.4191900,-1497.2303500,-48.5737000,0.0000000,0.0000000,-90.0000000); //
  21951. CreateDynamicObject(19273,2593.5554200,-1499.2341300,-48.5737000,0.0000000,0.0000000,90.0000000); //
  21952. CreateDynamicObject(19273,2577.5898400,-1486.5747100,-48.5737000,0.0000000,0.0000000,90.0000000); //
  21953. CreateDynamicObject(19273,2577.4421400,-1484.6507600,-48.5737000,0.0000000,0.0000000,-90.0000000); //
  21954. CreateDynamicObject(2602,2587.0730000,-1539.9328600,-49.3503000,0.0000000,0.0000000,90.0000000); //
  21955. CreateDynamicObject(2602,2580.6462400,-1539.8723100,-49.3503000,0.0000000,0.0000000,90.0000000); //
  21956. CreateDynamicObject(19377,2598.6626000,-1533.3522900,-46.3227000,0.0000000,90.0000000,0.0000000); //
  21957. CreateDynamicObject(19377,2598.6626000,-1523.7504900,-46.3227000,0.0000000,90.0000000,0.0000000); //
  21958. CreateDynamicObject(19377,2598.6626000,-1514.1256100,-46.3227000,0.0000000,90.0000000,0.0000000); //
  21959. CreateDynamicObject(19377,2598.6626000,-1504.5008500,-46.3227000,0.0000000,90.0000000,0.0000000); //
  21960. CreateDynamicObject(19377,2598.6626000,-1494.8833000,-46.3227000,0.0000000,90.0000000,0.0000000); //
  21961. CreateDynamicObject(19377,2593.6318400,-1506.6837200,-46.3232000,0.0000000,90.0000000,90.0000000); //
  21962. CreateDynamicObject(19377,2593.6318400,-1514.6474600,-46.3223000,0.0000000,90.0000000,90.0000000); //
  21963. CreateDynamicObject(638,2568.4836400,-1477.8515600,-49.1983000,0.0000000,0.0000000,0.0000000); //
  21964. CreateDynamicObject(2245,2572.4194300,-1481.8790300,-48.6835000,0.0000000,0.0000000,0.0000000); //
  21965. CreateDynamicObject(2252,2572.4213900,-1485.1136500,-48.6835000,0.0000000,0.0000000,0.0000000); //
  21966. CreateDynamicObject(2253,2568.6240200,-1481.6076700,-48.7235000,0.0000000,0.0000000,0.0000000); //
  21967. CreateDynamicObject(19175,2585.8527800,-1474.4294400,-47.3535000,0.0000000,0.0000000,0.0000000); //
  21968. CreateDynamicObject(19174,2574.5610400,-1487.0332000,-47.6135000,0.0000000,0.0000000,180.0000000); //
  21969. CreateDynamicObject(19173,2570.7285200,-1474.4753400,-47.6028000,0.0000000,0.0000000,0.0000000); //
  21970. CreateDynamicObject(19172,2568.1372100,-1479.8991700,-47.6135000,0.0000000,0.0000000,90.0000000); //
  21971. CreateDynamicObject(18070,2569.5061000,-1483.4416500,-49.4718600,0.0000000,0.0000000,180.0000000); //
  21972. CreateDynamicObject(1806,2586.9096700,-1488.7535400,-49.9170400,0.0000000,0.0000000,0.0000000); //
  21973. CreateDynamicObject(2161,2596.9821800,-1492.3110400,-49.9170000,0.0000000,0.0000000,90.0000000); //
  21974. CreateDynamicObject(2162,2596.8776900,-1490.8690200,-48.7218000,0.0000000,0.0000000,90.0000000); //
  21975. CreateDynamicObject(2163,2606.3737800,-1499.9134500,-48.5220300,0.0000000,0.0000000,-90.0000000); //
  21976. CreateDynamicObject(2164,2602.2189900,-1487.3179900,-49.9170400,0.0000000,0.0000000,0.0000000); //
  21977. CreateDynamicObject(2165,2605.7746600,-1496.2883300,-49.9170000,0.0000000,0.0000000,180.0000000); //
  21978. CreateDynamicObject(2167,2596.9567900,-1493.4010000,-49.9170000,0.0000000,0.0000000,90.0000000); //
  21979. CreateDynamicObject(2169,2597.3354500,-1490.9279800,-49.9170000,0.0000000,0.0000000,90.0000000); //
  21980. CreateDynamicObject(2172,2597.4206500,-1500.9627700,-49.9170000,0.0000000,0.0000000,90.0000000); //
  21981. CreateDynamicObject(2174,2599.3772000,-1487.7653800,-49.9170400,0.0000000,0.0000000,0.0000000); //
  21982. CreateDynamicObject(2181,2603.7265600,-1502.9697300,-49.9170000,0.0000000,0.0000000,180.0000000); //
  21983. CreateDynamicObject(2182,2605.7280300,-1502.0267300,-49.9170000,0.0000000,0.0000000,180.0000000); //
  21984. CreateDynamicObject(2183,2601.3540000,-1497.8933100,-49.9170000,0.0000000,0.0000000,90.0000000); //
  21985. CreateDynamicObject(2184,2599.8276400,-1527.0439500,-46.2566000,0.0000000,0.0000000,0.0000000); //
  21986. CreateDynamicObject(2185,2602.9746100,-1531.8485100,-46.2366000,0.0000000,0.0000000,180.0000000); //
  21987. CreateDynamicObject(2193,2598.4145500,-1503.0168500,-49.9170000,0.0000000,0.0000000,90.0000000); //
  21988. CreateDynamicObject(2198,2601.6931200,-1503.0426000,-49.9170000,0.0000000,0.0000000,180.0000000); //
  21989. CreateDynamicObject(2199,2597.5620100,-1524.1832300,-46.2566000,0.0000000,0.0000000,0.0000000); //
  21990. CreateDynamicObject(2200,2604.1384300,-1487.3872100,-49.9170400,0.0000000,0.0000000,0.0000000); //
  21991. CreateDynamicObject(2204,2604.6284200,-1509.3776900,-46.2566000,0.0000000,0.0000000,180.0000000); //
  21992. CreateDynamicObject(2205,2597.3642600,-1502.9668000,-46.2566000,0.0000000,0.0000000,90.0000000); //
  21993. CreateDynamicObject(2206,2603.7165500,-1505.1082800,-46.2566000,0.0000000,0.0000000,90.0000000); //
  21994. CreateDynamicObject(2308,2597.3955100,-1488.7730700,-49.9170400,0.0000000,0.0000000,0.0000000); //
  21995. CreateDynamicObject(1714,2605.2094700,-1504.2469500,-46.2165000,0.0000000,0.0000000,-90.0000000); //
  21996. CreateDynamicObject(1721,2569.6325700,-1474.6068100,-49.9059000,0.0000000,0.0000000,180.0000000); //
  21997. CreateDynamicObject(2611,2591.4240700,-1487.2963900,-48.2687000,0.0000000,0.0000000,0.0000000); //
  21998. CreateDynamicObject(2606,2591.7890600,-1496.3067600,-47.6941000,0.0000000,0.0000000,180.0000000); //
  21999. CreateDynamicObject(2604,2596.1335400,-1494.6384300,-49.1135000,0.0000000,0.0000000,-90.0000000); //
  22000. CreateDynamicObject(2616,2574.7910200,-1518.9211400,-48.6063500,0.0000000,0.0000000,0.0000000); //
  22001. CreateDynamicObject(1742,2598.4848600,-1538.2462200,-46.2566000,0.0000000,0.0000000,180.0000000); //
  22002. CreateDynamicObject(1671,2600.9877900,-1524.8969700,-45.7923500,0.0000000,0.0000000,0.0000000); //
  22003. CreateDynamicObject(2894,2591.6357400,-1500.6967800,-49.0887000,0.0000000,0.0000000,90.0000000); //
  22004. CreateDynamicObject(1998,2586.0878900,-1488.7437700,-49.9187500,0.0000000,0.0000000,0.0000000); //
  22005. CreateDynamicObject(1523,2600.1047400,-1479.1350100,-49.9295200,0.0000000,0.0000000,0.0000000); //
  22006. CreateDynamicObject(2742,2600.3142100,-1482.1848100,-48.6037000,0.0000000,0.0000000,90.0000000); //
  22007. CreateDynamicObject(2741,2605.6401400,-1483.7628200,-48.4637000,0.0000000,0.0000000,180.0000000); //
  22008. CreateDynamicObject(1775,2579.5859400,-1474.8783000,-48.8251300,0.0000000,0.0000000,0.0000000); //
  22009. CreateDynamicObject(956,2580.9555700,-1474.8044400,-49.4968500,0.0000000,0.0000000,0.0000000); //
  22010. CreateDynamicObject(1789,2588.8095700,-1486.7639200,-49.3512000,0.0000000,0.0000000,180.0000000); //
  22011. CreateDynamicObject(1363,2583.8710900,-1493.3021200,-49.0842100,0.0000000,0.0000000,0.0000000); //
  22012. CreateDynamicObject(2596,2568.3549800,-1525.7310800,-47.3702000,0.0000000,0.0000000,90.0000000); //
  22013. CreateDynamicObject(1713,2584.9064900,-1481.5022000,-49.9045800,0.0000000,0.0000000,0.0000000); //
  22014. CreateDynamicObject(2000,2586.1176800,-1494.9056400,-49.9142000,0.0000000,0.0000000,90.0000000); //
  22015. CreateDynamicObject(2523,2601.5485800,-1483.3241000,-49.8146000,0.0000000,0.0000000,180.0000000); //
  22016. CreateDynamicObject(2525,2607.5393100,-1476.8806200,-49.9146000,0.0000000,0.0000000,0.0000000); //
  22017. CreateDynamicObject(14401,2587.7666000,-1469.1503900,-49.6243000,0.0000000,0.0000000,180.0000000); //
  22018. CreateDynamicObject(1363,2582.2939500,-1495.1070600,-49.0842100,0.0000000,0.0000000,0.0000000); //
  22019. CreateDynamicObject(14455,2577.3176300,-1481.9769300,-48.3849900,0.0000000,0.0000000,90.0000000); //
  22020. CreateDynamicObject(14455,2590.1669900,-1481.4779100,-48.3849900,0.0000000,0.0000000,90.0000000); //
  22021. CreateDynamicObject(2611,2603.2045900,-1524.1508800,-44.8705900,0.0000000,0.0000000,0.0000000); //
  22022. CreateDynamicObject(14455,2604.0329600,-1509.7628200,-48.2850000,0.0000000,0.0000000,180.0000000); //
  22023. CreateDynamicObject(2165,2569.6740700,-1481.6840800,-49.7570000,0.0000000,0.0000000,0.0000000); //
  22024. CreateDynamicObject(14455,2598.9716800,-1535.7523200,-48.2850000,0.0000000,0.0000000,0.0000000); //
  22025. CreateDynamicObject(14455,2598.6355000,-1523.7868700,-44.6818000,0.0000000,0.0000000,0.0000000); //
  22026. CreateDynamicObject(14455,2603.7163100,-1500.0107400,-44.7018000,0.0000000,0.0000000,180.0000000); //
  22027. CreateDynamicObject(1806,2600.4116200,-1488.7002000,-49.9170400,0.0000000,0.0000000,0.0000000); //
  22028. CreateDynamicObject(2010,2568.5241700,-1486.6673600,-49.9010000,0.0000000,0.0000000,0.0000000); //
  22029. CreateDynamicObject(2010,2577.0793500,-1474.7706300,-49.9010000,0.0000000,0.0000000,0.0000000); //
  22030. CreateDynamicObject(2946,2576.4492200,-1474.4408000,-49.9004000,0.0000000,0.0000000,90.0000000); //
  22031. CreateDynamicObject(2946,2573.2705100,-1474.4172400,-49.9004000,0.0000000,0.0000000,-90.0000000); //
  22032. CreateDynamicObject(2614,2570.6667500,-1486.9841300,-47.6304000,0.0000000,0.0000000,180.0000000); //
  22033. CreateDynamicObject(2010,2568.4746100,-1474.8962400,-49.9010000,0.0000000,0.0000000,0.0000000); //
  22034. CreateDynamicObject(1721,2570.2485400,-1474.6068100,-49.9059000,0.0000000,0.0000000,180.0000000); //
  22035. CreateDynamicObject(1721,2570.8606000,-1474.6068100,-49.9059000,0.0000000,0.0000000,180.0000000); //
  22036. CreateDynamicObject(1721,2571.4729000,-1474.6068100,-49.9059000,0.0000000,0.0000000,180.0000000); //
  22037. CreateDynamicObject(1721,2583.8786600,-1474.5422400,-49.9059000,0.0000000,0.0000000,180.0000000); //
  22038. CreateDynamicObject(1721,2585.2509800,-1488.8809800,-49.9059000,0.0000000,0.0000000,90.0000000); //
  22039. CreateDynamicObject(1806,2570.8227500,-1490.8732900,-49.9170000,0.0000000,0.0000000,200.0000000); //
  22040. CreateDynamicObject(14455,2596.4338400,-1517.4725300,-44.7218000,0.0000000,0.0000000,90.0000000); //
  22041. CreateDynamicObject(2606,2578.6794400,-1490.7675800,-43.6139000,0.0000000,0.0000000,0.0000000); //
  22042. CreateDynamicObject(2606,2597.1027800,-1505.0880100,-44.0526000,0.0000000,0.0000000,90.0000000); //
  22043. CreateDynamicObject(2819,2599.0327100,-1480.3831800,-49.2967000,0.0000000,0.0000000,-90.0000000); //
  22044. CreateDynamicObject(2596,2585.7766100,-1483.5604200,-47.8843000,0.0000000,0.0000000,180.0000000); //
  22045. CreateDynamicObject(1806,2594.9531300,-1495.6949500,-49.9170000,0.0000000,0.0000000,-90.0000000); //
  22046. CreateDynamicObject(1806,2580.7763700,-1490.7659900,-49.9170000,0.0000000,0.0000000,180.0000000); //
  22047. CreateDynamicObject(1806,2576.0896000,-1490.7462200,-49.9170000,0.0000000,0.0000000,170.0000000); //
  22048. CreateDynamicObject(14401,2613.7136200,-1470.6944600,-49.6243000,0.0000000,0.0000000,90.0000000); //
  22049. CreateDynamicObject(14401,2596.1933600,-1474.9610600,-49.6243000,0.0000000,0.0000000,-90.0000000); //
  22050. CreateDynamicObject(14782,2591.1206100,-1478.6848100,-48.9104000,0.0000000,0.0000000,90.0000000); //
  22051. CreateDynamicObject(19359,2601.7041000,-1477.5789800,-48.1570000,0.0000000,0.0000000,0.0000000); //
  22052. CreateDynamicObject(1523,2601.7658700,-1479.1350100,-49.9295000,0.0000000,0.0000000,0.0000000); //
  22053. CreateDynamicObject(19359,2603.3667000,-1477.5789800,-48.1570000,0.0000000,0.0000000,0.0000000); //
  22054. CreateDynamicObject(1523,2603.4340800,-1479.1350100,-49.9295000,0.0000000,0.0000000,0.0000000); //
  22055. CreateDynamicObject(19359,2605.0510300,-1477.5789800,-48.1570000,0.0000000,0.0000000,0.0000000); //
  22056. CreateDynamicObject(1523,2605.1118200,-1479.1350100,-49.9295000,0.0000000,0.0000000,0.0000000); //
  22057. CreateDynamicObject(19359,2606.7207000,-1477.5789800,-48.1570000,0.0000000,0.0000000,0.0000000); //
  22058. CreateDynamicObject(1523,2606.7800300,-1479.1350100,-49.9295000,0.0000000,0.0000000,0.0000000); //
  22059. CreateDynamicObject(19359,2608.3811000,-1477.5789800,-48.1570000,0.0000000,0.0000000,0.0000000); //
  22060. CreateDynamicObject(19359,2609.9060100,-1479.1053500,-48.1570000,0.0000000,0.0000000,90.0000000); //
  22061. CreateDynamicObject(19379,2605.3469200,-1479.1879900,-49.9138000,0.0000000,90.0000000,0.0000000); //
  22062. CreateDynamicObject(2525,2605.9138200,-1476.8806200,-49.9146000,0.0000000,0.0000000,0.0000000); //
  22063. CreateDynamicObject(2525,2604.1682100,-1476.8806200,-49.9146000,0.0000000,0.0000000,0.0000000); //
  22064. CreateDynamicObject(2525,2602.5439500,-1476.8806200,-49.9146000,0.0000000,0.0000000,0.0000000); //
  22065. CreateDynamicObject(2525,2600.8977100,-1476.8806200,-49.9146000,0.0000000,0.0000000,0.0000000); //
  22066. CreateDynamicObject(2523,2603.1684600,-1483.3241000,-49.8146000,0.0000000,0.0000000,180.0000000); //
  22067. CreateDynamicObject(2523,2606.6323200,-1483.3241000,-49.8146000,0.0000000,0.0000000,180.0000000); //
  22068. CreateDynamicObject(2523,2604.8488800,-1483.3241000,-49.8146000,0.0000000,0.0000000,180.0000000); //
  22069. CreateDynamicObject(2741,2603.8586400,-1483.7628200,-48.4637000,0.0000000,0.0000000,180.0000000); //
  22070. CreateDynamicObject(2741,2600.6052200,-1483.7628200,-48.4637000,0.0000000,0.0000000,180.0000000); //
  22071. CreateDynamicObject(2741,2602.2099600,-1483.7628200,-48.4637000,0.0000000,0.0000000,180.0000000); //
  22072. CreateDynamicObject(2742,2600.3142100,-1480.6223100,-48.6037000,0.0000000,0.0000000,90.0000000); //
  22073. CreateDynamicObject(2742,2609.4304200,-1480.5280800,-48.6037000,0.0000000,0.0000000,-90.0000000); //
  22074. CreateDynamicObject(2742,2609.4304200,-1482.3486300,-48.6037000,0.0000000,0.0000000,-90.0000000); //
  22075. CreateDynamicObject(1789,2609.2482900,-1492.5957000,-49.3512000,0.0000000,0.0000000,-90.0000000); //
  22076. CreateDynamicObject(1789,2609.2446300,-1510.8991700,-49.3512000,0.0000000,0.0000000,-90.0000000); //
  22077. CreateDynamicObject(2185,2598.7150900,-1529.3413100,-46.2366000,0.0000000,0.0000000,180.0000000); //
  22078. CreateDynamicObject(2185,2598.6997100,-1531.7718500,-46.2366000,0.0000000,0.0000000,180.0000000); //
  22079. CreateDynamicObject(2185,2604.9284700,-1529.3912400,-46.2366000,0.0000000,0.0000000,180.0000000); //
  22080. CreateDynamicObject(2185,2604.9284700,-1534.4104000,-46.2366000,0.0000000,0.0000000,180.0000000); //
  22081. CreateDynamicObject(2180,2604.5805700,-1526.7252200,-46.2366000,0.0000000,0.0000000,90.0000000); //
  22082. CreateDynamicObject(2185,2604.9284700,-1531.8485100,-46.2366000,0.0000000,0.0000000,180.0000000); //
  22083. CreateDynamicObject(2185,2602.9746100,-1534.4104000,-46.2366000,0.0000000,0.0000000,180.0000000); //
  22084. CreateDynamicObject(2185,2602.9746100,-1529.3929400,-46.2366000,0.0000000,0.0000000,180.0000000); //
  22085. CreateDynamicObject(2844,2594.8034700,-1475.4740000,-49.2963000,0.0000000,0.0000000,90.0000000); //
  22086. CreateDynamicObject(2843,2593.6518600,-1483.9461700,-49.2765000,0.0000000,0.0000000,0.0000000); //
  22087. CreateDynamicObject(2852,2599.4382300,-1483.1309800,-49.9160000,0.0000000,0.0000000,0.0000000); //
  22088. CreateDynamicObject(2855,2593.1616200,-1474.9517800,-49.9158000,0.0000000,0.0000000,0.0000000); //
  22089. CreateDynamicObject(1789,2593.9035600,-1529.3818400,-49.3512000,0.0000000,0.0000000,90.0000000); //
  22090. CreateDynamicObject(2635,2590.4077100,-1535.8212900,-49.5159000,0.0000000,0.0000000,0.0000000); //
  22091. CreateDynamicObject(1810,2580.6840800,-1536.7833300,-49.9166000,0.0000000,0.0000000,90.0000000); //
  22092. CreateDynamicObject(1810,2588.7021500,-1541.0133100,-49.9166000,0.0000000,0.0000000,180.0000000); //
  22093. CreateDynamicObject(1810,2591.7172900,-1536.1645500,-49.9166000,0.0000000,0.0000000,-100.0000000); //
  22094. CreateDynamicObject(1713,2600.7138700,-1508.9155300,-46.2867000,0.0000000,0.0000000,180.0000000); //
  22095. CreateDynamicObject(2010,2578.3303200,-1475.0185500,-49.9010000,0.0000000,0.0000000,0.0000000); //
  22096. CreateDynamicObject(2010,2589.8076200,-1475.0542000,-49.9010000,0.0000000,0.0000000,0.0000000); //
  22097. CreateDynamicObject(2010,2589.8147000,-1483.4173600,-49.9010000,0.0000000,0.0000000,0.0000000); //
  22098. CreateDynamicObject(2010,2580.6652800,-1483.3403300,-49.9010000,0.0000000,0.0000000,0.0000000); //
  22099. CreateDynamicObject(1721,2584.4821800,-1474.5422400,-49.9059000,0.0000000,0.0000000,180.0000000); //
  22100. CreateDynamicObject(1721,2585.0856900,-1474.5422400,-49.9059000,0.0000000,0.0000000,180.0000000); //
  22101. CreateDynamicObject(1721,2585.7009300,-1474.5422400,-49.9059000,0.0000000,0.0000000,180.0000000); //
  22102. CreateDynamicObject(1721,2586.3110400,-1474.5422400,-49.9059000,0.0000000,0.0000000,180.0000000); //
  22103. CreateDynamicObject(1721,2586.9326200,-1474.5422400,-49.9059000,0.0000000,0.0000000,180.0000000); //
  22104. CreateDynamicObject(1721,2587.5380900,-1474.5422400,-49.9059000,0.0000000,0.0000000,180.0000000); //
  22105. CreateDynamicObject(1721,2587.5380900,-1478.0679900,-49.9059000,0.0000000,0.0000000,180.0000000); //
  22106. CreateDynamicObject(1721,2586.9326200,-1478.0679900,-49.9059000,0.0000000,0.0000000,180.0000000); //
  22107. CreateDynamicObject(1721,2586.3110400,-1478.0679900,-49.9059000,0.0000000,0.0000000,180.0000000); //
  22108. CreateDynamicObject(1721,2585.7009300,-1478.0679900,-49.9059000,0.0000000,0.0000000,180.0000000); //
  22109. CreateDynamicObject(1721,2585.0856900,-1478.0679900,-49.9059000,0.0000000,0.0000000,180.0000000); //
  22110. CreateDynamicObject(1721,2584.4821800,-1478.0679900,-49.9059000,0.0000000,0.0000000,180.0000000); //
  22111. CreateDynamicObject(1721,2583.8786600,-1478.0679900,-49.9059000,0.0000000,0.0000000,180.0000000); //
  22112. CreateDynamicObject(1721,2587.5380900,-1477.8079800,-49.9059000,0.0000000,0.0000000,0.0000000); //
  22113. CreateDynamicObject(1721,2586.9326200,-1477.8079800,-49.9059000,0.0000000,0.0000000,0.0000000); //
  22114. CreateDynamicObject(1721,2586.3110400,-1477.8079800,-49.9059000,0.0000000,0.0000000,0.0000000); //
  22115. CreateDynamicObject(1721,2585.7009300,-1477.8079800,-49.9059000,0.0000000,0.0000000,0.0000000); //
  22116. CreateDynamicObject(1721,2585.0856900,-1477.8079800,-49.9059000,0.0000000,0.0000000,0.0000000); //
  22117. CreateDynamicObject(1721,2584.4821800,-1477.8079800,-49.9059000,0.0000000,0.0000000,0.0000000); //
  22118. CreateDynamicObject(1721,2583.8786600,-1477.8079800,-49.9059000,0.0000000,0.0000000,0.0000000); //
  22119. CreateDynamicObject(1721,2577.8586400,-1477.0039100,-49.9059000,0.0000000,0.0000000,-90.0000000); //
  22120. CreateDynamicObject(1721,2577.8586400,-1477.6159700,-49.9059000,0.0000000,0.0000000,-90.0000000); //
  22121. CreateDynamicObject(1721,2577.8586400,-1478.2240000,-49.9059000,0.0000000,0.0000000,-90.0000000); //
  22122. CreateDynamicObject(1721,2577.8586400,-1478.8396000,-49.9059000,0.0000000,0.0000000,-90.0000000); //
  22123. CreateDynamicObject(1721,2577.8586400,-1479.4498300,-49.9059000,0.0000000,0.0000000,-90.0000000); //
  22124. CreateDynamicObject(1721,2577.8586400,-1480.0535900,-49.9059000,0.0000000,0.0000000,-90.0000000); //
  22125. CreateDynamicObject(1721,2577.8586400,-1480.6656500,-49.9059000,0.0000000,0.0000000,-90.0000000); //
  22126. CreateDynamicObject(19173,2577.7417000,-1478.7891800,-47.3428000,0.0000000,0.0000000,90.0000000); //
  22127. CreateDynamicObject(1721,2568.2429200,-1488.4895000,-49.9059000,0.0000000,0.0000000,-90.0000000); //
  22128. CreateDynamicObject(1721,2568.2580600,-1489.1009500,-49.9059000,0.0000000,0.0000000,-90.0000000); //
  22129. CreateDynamicObject(1721,2572.5534700,-1487.3387500,-49.9059000,0.0000000,0.0000000,180.0000000); //
  22130. CreateDynamicObject(1721,2573.1618700,-1487.3460700,-49.9059000,0.0000000,0.0000000,180.0000000); //
  22131. CreateDynamicObject(1721,2573.7697800,-1487.3536400,-49.9059000,0.0000000,0.0000000,180.0000000); //
  22132. CreateDynamicObject(1721,2577.8925800,-1487.3885500,-49.9059000,0.0000000,0.0000000,180.0000000); //
  22133. CreateDynamicObject(1721,2578.4934100,-1487.3758500,-49.9059000,0.0000000,0.0000000,180.0000000); //
  22134. CreateDynamicObject(1721,2579.0942400,-1487.3631600,-49.9059000,0.0000000,0.0000000,180.0000000); //
  22135. CreateDynamicObject(1721,2585.2509800,-1489.4814500,-49.9059000,0.0000000,0.0000000,90.0000000); //
  22136. CreateDynamicObject(1721,2585.2509800,-1490.0819100,-49.9059000,0.0000000,0.0000000,90.0000000); //
  22137. CreateDynamicObject(1810,2580.5219700,-1492.9643600,-49.9166000,0.0000000,0.0000000,190.0000000); //
  22138. CreateDynamicObject(1810,2575.7763700,-1492.7585400,-49.9166000,0.0000000,0.0000000,180.0000000); //
  22139. CreateDynamicObject(1810,2570.6904300,-1492.8303200,-49.9166000,0.0000000,0.0000000,160.0000000); //
  22140. CreateDynamicObject(1363,2569.6970200,-1494.9207800,-49.0842100,0.0000000,0.0000000,0.0000000); //
  22141. CreateDynamicObject(2000,2586.1176800,-1494.3918500,-49.9142000,0.0000000,0.0000000,90.0000000); //
  22142. CreateDynamicObject(2000,2586.1176800,-1493.8665800,-49.9142000,0.0000000,0.0000000,90.0000000); //
  22143. CreateDynamicObject(2000,2605.4843800,-1518.7618400,-49.9142000,0.0000000,0.0000000,180.0000000); //
  22144. CreateDynamicObject(2000,2605.0043900,-1518.7506100,-49.9142000,0.0000000,0.0000000,180.0000000); //
  22145. CreateDynamicObject(2615,2588.2688000,-1487.2829600,-48.5264000,0.0000000,0.0000000,0.0000000); //
  22146. CreateDynamicObject(2615,2574.3835400,-1518.9327400,-48.4471000,0.0000000,0.0000000,0.0000000); //
  22147. CreateDynamicObject(2615,2601.3872100,-1538.0926500,-44.9337000,0.0000000,0.0000000,180.0000000); //
  22148. CreateDynamicObject(2184,2599.5585900,-1512.5191700,-46.2566000,0.0000000,0.0000000,0.0000000); //
  22149. CreateDynamicObject(1810,2573.2365700,-1503.4947500,-46.2409000,0.0000000,0.0000000,180.0000000); //
  22150. CreateDynamicObject(1810,2585.3693800,-1526.9633800,-46.2409000,0.0000000,0.0000000,-90.0000000); //
  22151. CreateDynamicObject(2165,2605.7790500,-1493.6700400,-49.9170000,0.0000000,0.0000000,180.0000000); //
  22152. CreateDynamicObject(2165,2605.8168900,-1491.1554000,-49.9170000,0.0000000,0.0000000,180.0000000); //
  22153. CreateDynamicObject(2183,2601.3535200,-1493.9669200,-49.9170000,0.0000000,0.0000000,90.0000000); //
  22154. CreateDynamicObject(1806,2598.3850100,-1488.6002200,-49.9170400,0.0000000,0.0000000,0.0000000); //
  22155. CreateDynamicObject(1806,2600.8967300,-1502.0003700,-49.9170000,0.0000000,0.0000000,180.0000000); //
  22156. CreateDynamicObject(1806,2603.2055700,-1502.2303500,-49.9170000,0.0000000,0.0000000,180.0000000); //
  22157. CreateDynamicObject(1806,2598.5227100,-1502.0858200,-49.9170000,0.0000000,0.0000000,90.0000000); //
  22158. CreateDynamicObject(1806,2598.1582000,-1500.1571000,-49.9170000,0.0000000,0.0000000,90.0000000); //
  22159. CreateDynamicObject(1806,2605.0200200,-1502.1398900,-49.9170000,0.0000000,0.0000000,-90.0000000); //
  22160. CreateDynamicObject(1806,2604.9179700,-1495.1814000,-49.9170000,0.0000000,0.0000000,190.0000000); //
  22161. CreateDynamicObject(1806,2605.1430700,-1492.2131300,-49.9170000,0.0000000,0.0000000,180.0000000); //
  22162. CreateDynamicObject(1806,2605.4191900,-1490.0889900,-49.9170000,0.0000000,0.0000000,160.0000000); //
  22163. CreateDynamicObject(1806,2601.6726100,-1497.3433800,-49.9170000,0.0000000,0.0000000,90.0000000); //
  22164. CreateDynamicObject(1806,2602.0322300,-1491.7270500,-49.9170000,0.0000000,0.0000000,100.0000000); //
  22165. CreateDynamicObject(1806,2601.8017600,-1495.7104500,-49.9170000,0.0000000,0.0000000,100.0000000); //
  22166. CreateDynamicObject(1806,2601.7348600,-1493.2697800,-49.9170000,0.0000000,0.0000000,80.0000000); //
  22167. CreateDynamicObject(1806,2599.1750500,-1491.6322000,-49.9170000,0.0000000,0.0000000,-90.0000000); //
  22168. CreateDynamicObject(1806,2599.1113300,-1497.3595000,-49.9170000,0.0000000,0.0000000,-90.0000000); //
  22169. CreateDynamicObject(1806,2599.2121600,-1493.3472900,-49.9170000,0.0000000,0.0000000,-80.0000000); //
  22170. CreateDynamicObject(1806,2599.1191400,-1494.9537400,-49.9170000,0.0000000,0.0000000,-860.0000000); //
  22171. CreateDynamicObject(2202,2597.3864700,-1497.2932100,-49.9186000,0.0000000,0.0000000,90.0000000); //
  22172. CreateDynamicObject(2202,2605.8469200,-1501.2639200,-46.2566000,0.0000000,0.0000000,-90.0000000); //
  22173. CreateDynamicObject(2202,2604.2683100,-1537.7445100,-46.2566000,0.0000000,0.0000000,180.0000000); //
  22174. CreateDynamicObject(2635,2601.4875500,-1515.6564900,-45.8177000,0.0000000,0.0000000,0.0000000); //
  22175. CreateDynamicObject(2199,2599.0681200,-1509.6723600,-46.2566000,0.0000000,0.0000000,0.0000000); //
  22176. CreateDynamicObject(1742,2597.6015600,-1509.6586900,-46.2566000,0.0000000,0.0000000,0.0000000); //
  22177. CreateDynamicObject(2611,2602.5202600,-1509.7048300,-44.8705900,0.0000000,0.0000000,0.0000000); //
  22178. CreateDynamicObject(1714,2600.6855500,-1510.3908700,-46.2165000,0.0000000,0.0000000,0.0000000); //
  22179. CreateDynamicObject(2635,2600.5988800,-1515.6569800,-45.8177000,0.0000000,0.0000000,0.0000000); //
  22180. CreateDynamicObject(2635,2599.7106900,-1515.6579600,-45.8177000,0.0000000,0.0000000,0.0000000); //
  22181. CreateDynamicObject(2635,2599.7124000,-1516.5822800,-45.8177000,0.0000000,0.0000000,0.0000000); //
  22182. CreateDynamicObject(2635,2599.7180200,-1517.5152600,-45.8177000,0.0000000,0.0000000,0.0000000); //
  22183. CreateDynamicObject(2635,2599.7138700,-1518.4399400,-45.8177000,0.0000000,0.0000000,0.0000000); //
  22184. CreateDynamicObject(2635,2599.7111800,-1519.3651100,-45.8177000,0.0000000,0.0000000,0.0000000); //
  22185. CreateDynamicObject(2635,2599.7085000,-1520.2902800,-45.8177000,0.0000000,0.0000000,0.0000000); //
  22186. CreateDynamicObject(2635,2600.5883800,-1520.2825900,-45.8177000,0.0000000,0.0000000,0.0000000); //
  22187. CreateDynamicObject(2635,2601.4772900,-1520.2891800,-45.8177000,0.0000000,0.0000000,0.0000000); //
  22188. CreateDynamicObject(2635,2601.4797400,-1519.3676800,-45.8177000,0.0000000,0.0000000,0.0000000); //
  22189. CreateDynamicObject(2635,2601.4755900,-1518.4410400,-45.8177000,0.0000000,0.0000000,0.0000000); //
  22190. CreateDynamicObject(2635,2601.4755900,-1517.5152600,-45.8177000,0.0000000,0.0000000,0.0000000); //
  22191. CreateDynamicObject(2635,2601.4755900,-1516.5822800,-45.8177000,0.0000000,0.0000000,0.0000000); //
  22192. CreateDynamicObject(2635,2600.5988800,-1516.5822800,-45.8177000,0.0000000,0.0000000,0.0000000); //
  22193. CreateDynamicObject(2635,2600.5988800,-1517.5152600,-45.8177000,0.0000000,0.0000000,0.0000000); //
  22194. CreateDynamicObject(2635,2600.5988800,-1518.4399400,-45.8177000,0.0000000,0.0000000,0.0000000); //
  22195. CreateDynamicObject(2635,2600.5988800,-1519.3651100,-45.8177000,0.0000000,0.0000000,0.0000000); //
  22196. CreateDynamicObject(1806,2601.1892100,-1521.7436500,-46.2379000,0.0000000,0.0000000,10.0000000); //
  22197. CreateDynamicObject(1806,2604.1508800,-1530.7949200,-46.2379000,0.0000000,0.0000000,15.0000000); //
  22198. CreateDynamicObject(1806,2604.0944800,-1535.7404800,-46.2379000,0.0000000,0.0000000,15.0000000); //
  22199. CreateDynamicObject(1806,2603.9375000,-1533.2757600,-46.2379000,0.0000000,0.0000000,0.0000000); //
  22200. CreateDynamicObject(1806,2602.1814000,-1530.7065400,-46.2379000,0.0000000,0.0000000,0.0000000); //
  22201. CreateDynamicObject(1806,2601.8159200,-1535.8094500,-46.2379000,0.0000000,0.0000000,0.0000000); //
  22202. CreateDynamicObject(1806,2602.2214400,-1533.1846900,-46.2379000,0.0000000,0.0000000,0.0000000); //
  22203. CreateDynamicObject(1806,2598.3608400,-1530.7644000,-46.2379000,0.0000000,0.0000000,15.0000000); //
  22204. CreateDynamicObject(1806,2597.8642600,-1533.2653800,-46.2379000,0.0000000,0.0000000,0.0000000); //
  22205. CreateDynamicObject(1806,2599.8586400,-1521.5395500,-46.2379000,0.0000000,0.0000000,0.0000000); //
  22206. CreateDynamicObject(1806,2602.9240700,-1518.6063200,-46.2379000,0.0000000,0.0000000,90.0000000); //
  22207. CreateDynamicObject(1806,2602.8144500,-1516.0059800,-46.2379000,0.0000000,0.0000000,90.0000000); //
  22208. CreateDynamicObject(1806,2602.8195800,-1517.3098100,-46.2379000,0.0000000,0.0000000,100.0000000); //
  22209. CreateDynamicObject(1806,2602.7719700,-1520.1145000,-46.2379000,0.0000000,0.0000000,80.0000000); //
  22210. CreateDynamicObject(1806,2598.4768100,-1517.2092300,-46.2379000,0.0000000,0.0000000,270.0000000); //
  22211. CreateDynamicObject(1806,2598.5957000,-1520.4061300,-46.2379000,0.0000000,0.0000000,290.0000000); //
  22212. CreateDynamicObject(1806,2598.3249500,-1515.8558300,-46.2379000,0.0000000,0.0000000,260.0000000); //
  22213. CreateDynamicObject(1806,2598.4614300,-1518.5614000,-46.2379000,0.0000000,0.0000000,270.0000000); //
  22214. CreateDynamicObject(2894,2600.3703600,-1512.1228000,-45.4858000,0.0000000,0.0000000,-10.0000000); //
  22215. CreateDynamicObject(2894,2603.7981000,-1504.2194800,-45.3255000,0.0000000,0.0000000,90.0000000); //
  22216. CreateDynamicObject(2894,2598.1040000,-1529.4681400,-45.4278100,0.0000000,0.0000000,0.0000000); //
  22217. CreateDynamicObject(2894,2604.3789100,-1531.9533700,-45.4307300,0.0000000,0.0000000,0.0000000); //
  22218. CreateDynamicObject(2894,2602.4685100,-1534.5537100,-45.4303300,0.0000000,0.0000000,0.0000000); //
  22219. CreateDynamicObject(2001,2597.2937000,-1500.3668200,-46.2361300,0.0000000,0.0000000,0.0000000); //
  22220. CreateDynamicObject(2001,2605.6723600,-1500.4362800,-46.2371300,0.0000000,0.0000000,0.0000000); //
  22221. CreateDynamicObject(2001,2605.8635300,-1509.0075700,-46.2371900,0.0000000,0.0000000,0.0000000); //
  22222. CreateDynamicObject(2001,2597.5178200,-1509.2005600,-46.2385300,0.0000000,0.0000000,0.0000000); //
  22223. CreateDynamicObject(2245,2597.2915000,-1501.5553000,-45.1054000,0.0000000,0.0000000,0.0000000); //
  22224. CreateDynamicObject(2252,2600.5856900,-1519.0944800,-45.1054000,0.0000000,0.0000000,0.0000000); //
  22225. CreateDynamicObject(2252,2600.6355000,-1516.6296400,-45.1054000,0.0000000,0.0000000,0.0000000); //
  22226. CreateDynamicObject(2253,2601.6511200,-1512.4017300,-45.1254000,0.0000000,0.0000000,0.0000000); //
  22227. CreateDynamicObject(2894,2600.8615700,-1526.7185100,-45.4858000,0.0000000,0.0000000,0.0000000); //
  22228. CreateDynamicObject(2008,2605.7390100,-1512.5202600,-49.9147000,0.0000000,0.0000000,-90.0000000); //
  22229. CreateDynamicObject(2009,2598.3503400,-1518.6682100,-49.9138000,0.0000000,0.0000000,18090.0000000); //
  22230. CreateDynamicObject(1806,2598.5595700,-1517.7027600,-49.9133000,0.0000000,0.0000000,90.0000000); //
  22231. CreateDynamicObject(1806,2604.5385700,-1513.0424800,-49.9133000,0.0000000,0.0000000,-120.0000000); //
  22232. CreateDynamicObject(1999,2597.3371600,-1516.6875000,-49.9133000,0.0000000,0.0000000,90.0000000); //
  22233. CreateDynamicObject(1806,2598.6662600,-1515.9505600,-49.9133000,0.0000000,0.0000000,80.0000000); //
  22234. CreateDynamicObject(1806,2601.0986300,-1529.5788600,-49.9133000,0.0000000,0.0000000,170.0000000); //
  22235. CreateDynamicObject(1806,2599.1257300,-1529.5543200,-49.9133000,0.0000000,0.0000000,210.0000000); //
  22236. CreateDynamicObject(2635,2599.4648400,-1532.5314900,-49.5330000,0.0000000,0.0000000,0.0000000); //
  22237. CreateDynamicObject(2635,2600.3393600,-1532.5319800,-49.5330000,0.0000000,0.0000000,0.0000000); //
  22238. CreateDynamicObject(2635,2599.4626500,-1533.4585000,-49.5330000,0.0000000,0.0000000,0.0000000); //
  22239. CreateDynamicObject(2635,2600.3471700,-1533.4628900,-49.5330000,0.0000000,0.0000000,0.0000000); //
  22240. CreateDynamicObject(2635,2601.2180200,-1533.4627700,-49.5330000,0.0000000,0.0000000,0.0000000); //
  22241. CreateDynamicObject(2635,2601.2282700,-1532.5290500,-49.5330000,0.0000000,0.0000000,0.0000000); //
  22242. CreateDynamicObject(19457,2601.5039100,-1535.9614300,-48.1570000,0.0000000,0.0000000,90.0000000); //
  22243. CreateDynamicObject(1806,2602.6416000,-1532.9386000,-49.9133000,0.0000000,0.0000000,90.0000000); //
  22244. CreateDynamicObject(1806,2597.9692400,-1532.9288300,-49.9133000,0.0000000,0.0000000,-90.0000000); //
  22245. CreateDynamicObject(1808,2606.1430700,-1532.0273400,-49.9139000,0.0000000,0.0000000,-90.0000000); //
  22246. CreateDynamicObject(2611,2606.2165500,-1534.0605500,-48.5011000,0.0000000,0.0000000,-90.0000000); //
  22247. CreateDynamicObject(2615,2596.8742700,-1534.1274400,-48.2696900,0.0000000,0.0000000,90.0000000); //
  22248. CreateDynamicObject(2604,2598.7758800,-1523.3715800,-49.1603900,0.0000000,0.0000000,0.0000000); //
  22249. CreateDynamicObject(1742,2606.3889200,-1527.5459000,-49.9140000,0.0000000,0.0000000,-90.0000000); //
  22250. CreateDynamicObject(2894,2601.3823200,-1533.0022000,-49.0992000,0.0000000,0.0000000,90.0000000); //
  22251. CreateDynamicObject(2245,2600.2897900,-1532.9880400,-48.9283000,0.0000000,0.0000000,0.0000000); //
  22252. CreateDynamicObject(1806,2599.8776900,-1524.6007100,-49.9133000,0.0000000,0.0000000,0.0000000); //
  22253. CreateDynamicObject(2008,2601.1918900,-1523.5106200,-49.9136900,0.0000000,0.0000000,0.0000000); //
  22254. CreateDynamicObject(1806,2602.0930200,-1524.6508800,-49.9133000,0.0000000,0.0000000,0.0000000); //
  22255. CreateDynamicObject(2289,2602.7368200,-1530.5147700,-48.1921800,0.0000000,0.0000000,180.0000000); //
  22256. CreateDynamicObject(2287,2597.3271500,-1528.7041000,-48.4945000,0.0000000,0.0000000,90.0000000); //
  22257. CreateDynamicObject(19173,2606.2644000,-1505.4093000,-44.3331000,0.0000000,0.0000000,90.0000000); //
  22258. CreateDynamicObject(19174,2604.3193400,-1516.8465600,-44.2091000,0.0000000,0.0000000,-90.0000000); //
  22259. CreateDynamicObject(19377,2570.4843800,-1536.9881600,-46.3228000,0.0000000,90.0000000,0.0000000); //
  22260. CreateDynamicObject(19377,2609.0515100,-1495.0102500,-46.3228000,0.0000000,90.0000000,0.0000000); //
  22261. CreateDynamicObject(19377,2588.2619600,-1491.9165000,-46.3228000,0.0000000,90.0000000,0.0000000); //
  22262. CreateDynamicObject(19377,2577.7651400,-1491.9165000,-46.3228000,0.0000000,90.0000000,0.0000000); //
  22263. CreateDynamicObject(19377,2567.3024900,-1491.8570600,-46.3228000,0.0000000,90.0000000,0.0000000); //
  22264. CreateDynamicObject(19377,2609.0488300,-1485.3820800,-46.3228000,0.0000000,90.0000000,0.0000000); //
  22265. CreateDynamicObject(19377,2609.0537100,-1475.8142100,-46.3228000,0.0000000,90.0000000,0.0000000); //
  22266. CreateDynamicObject(19377,2598.5903300,-1485.2595200,-46.3228000,0.0000000,90.0000000,0.0000000); //
  22267. CreateDynamicObject(19377,2598.6052200,-1475.7821000,-46.3228000,0.0000000,90.0000000,0.0000000); //
  22268. CreateDynamicObject(19377,2588.2255900,-1482.3092000,-46.3228000,0.0000000,90.0000000,0.0000000); //
  22269. CreateDynamicObject(19377,2577.7500000,-1482.2838100,-46.3228000,0.0000000,90.0000000,0.0000000); //
  22270. CreateDynamicObject(19377,2567.3049300,-1482.2768600,-46.3228000,0.0000000,90.0000000,0.0000000); //
  22271. CreateDynamicObject(19377,2588.3283700,-1472.8222700,-46.3228000,0.0000000,90.0000000,0.0000000); //
  22272. CreateDynamicObject(19377,2577.9736300,-1472.7617200,-46.3228000,0.0000000,90.0000000,0.0000000); //
  22273. CreateDynamicObject(19377,2567.4975600,-1472.7314500,-46.3228000,0.0000000,90.0000000,0.0000000); //
  22274. CreateDynamicObject(19377,2573.0664100,-1501.3026100,-43.1414000,0.0000000,90.0000000,0.0000000); //
  22275. CreateDynamicObject(19377,2583.5532200,-1501.2769800,-43.1414000,0.0000000,90.0000000,0.0000000); //
  22276. CreateDynamicObject(19377,2593.9868200,-1501.2622100,-43.1414000,0.0000000,90.0000000,0.0000000); //
  22277. CreateDynamicObject(19377,2604.4689900,-1501.2351100,-43.1414000,0.0000000,90.0000000,0.0000000); //
  22278. CreateDynamicObject(19377,2573.2128900,-1510.9345700,-43.1414000,0.0000000,90.0000000,0.0000000); //
  22279. CreateDynamicObject(19377,2573.1948200,-1520.4831500,-43.1414000,0.0000000,90.0000000,0.0000000); //
  22280. CreateDynamicObject(19377,2573.1726100,-1530.0907000,-43.1414000,0.0000000,90.0000000,0.0000000); //
  22281. CreateDynamicObject(19377,2604.7856400,-1539.1341600,-43.1414000,0.0000000,90.0000000,0.0000000); //
  22282. CreateDynamicObject(19377,2594.3378900,-1539.1627200,-43.1414000,0.0000000,90.0000000,0.0000000); //
  22283. CreateDynamicObject(19377,2583.6110800,-1527.3887900,-43.1414000,0.0000000,90.0000000,0.0000000); //
  22284. CreateDynamicObject(19377,2583.5959500,-1517.8198200,-43.1414000,0.0000000,90.0000000,0.0000000); //
  22285. CreateDynamicObject(19377,2583.5747100,-1508.3823200,-43.1410000,0.0000000,90.0000000,0.0000000); //
  22286. CreateDynamicObject(19377,2594.0112300,-1510.6833500,-43.1410000,0.0000000,90.0000000,0.0000000); //
  22287. CreateDynamicObject(19377,2604.4348100,-1510.6649200,-43.1410000,0.0000000,90.0000000,0.0000000); //
  22288. CreateDynamicObject(19377,2593.8420400,-1520.2587900,-43.1410000,0.0000000,90.0000000,0.0000000); //
  22289. CreateDynamicObject(19377,2593.9189500,-1529.7855200,-43.1410000,0.0000000,90.0000000,0.0000000); //
  22290. CreateDynamicObject(19377,2604.2793000,-1520.2287600,-43.1410000,0.0000000,90.0000000,0.0000000); //
  22291. CreateDynamicObject(19377,2604.2434100,-1529.5528600,-43.1410000,0.0000000,90.0000000,0.0000000); //
  22292. CreateDynamicObject(16779,2573.0314900,-1480.8862300,-46.4124700,0.0000000,0.0000000,0.0000000); //
  22293. CreateDynamicObject(16779,2583.5673800,-1479.2124000,-46.4126600,0.0000000,0.0000000,0.0000000); //
  22294. CreateDynamicObject(16779,2602.0376000,-1504.9757100,-43.2316100,0.0000000,0.0000000,0.0000000); //
  22295. CreateDynamicObject(16779,2600.7199700,-1519.1566200,-43.2310900,0.0000000,0.0000000,0.0000000); //
  22296. CreateDynamicObject(16779,2600.7434100,-1513.9146700,-43.2324000,0.0000000,0.0000000,0.0000000); //
  22297. CreateDynamicObject(14680,2597.8898900,-1481.6718800,-48.0116200,0.0000000,0.0000000,0.0000000); //
  22298. CreateDynamicObject(14680,2607.0622600,-1479.5544400,-48.0116000,0.0000000,0.0000000,90.0000000); //
  22299. CreateDynamicObject(14680,2587.0349100,-1483.6640600,-48.0116000,0.0000000,0.0000000,90.0000000); //
  22300. CreateDynamicObject(14680,2606.7116700,-1483.4869400,-48.0116000,0.0000000,0.0000000,90.0000000); //
  22301. CreateDynamicObject(14680,2594.3361800,-1494.3674300,-48.0116000,0.0000000,0.0000000,0.0000000); //
  22302. CreateDynamicObject(14680,2590.1740700,-1494.0651900,-48.0116000,0.0000000,0.0000000,0.0000000); //
  22303. CreateDynamicObject(14680,2602.6525900,-1530.0367400,-44.7783900,0.0000000,0.0000000,0.0000000); //
  22304. CreateDynamicObject(14680,2602.6538100,-1536.2995600,-44.7784000,0.0000000,0.0000000,0.0000000); //
  22305. CreateDynamicObject(14680,2594.7836900,-1517.2777100,-44.7784000,0.0000000,0.0000000,0.0000000); //
  22306. CreateDynamicObject(14680,2594.7326700,-1510.1825000,-44.7784000,0.0000000,0.0000000,0.0000000); //
  22307. CreateDynamicObject(14680,2576.1723600,-1487.5322300,-48.0116000,0.0000000,0.0000000,90.0000000); //
  22308. CreateDynamicObject(14680,2580.8786600,-1487.4672900,-48.0116000,0.0000000,0.0000000,90.0000000); //
  22309. CreateDynamicObject(14680,2580.8437500,-1492.3625500,-48.0116000,0.0000000,0.0000000,90.0000000); //
  22310. CreateDynamicObject(14680,2576.2780800,-1492.7199700,-48.0116000,0.0000000,0.0000000,90.0000000); //
  22311. CreateDynamicObject(14680,2578.0752000,-1539.4305400,-48.0116000,0.0000000,0.0000000,0.0000000); //
  22312. CreateDynamicObject(14680,2585.7050800,-1536.4309100,-48.0116000,0.0000000,0.0000000,90.0000000); //
  22313. CreateDynamicObject(14680,2591.8112800,-1536.1340300,-48.0116000,0.0000000,0.0000000,90.0000000); //
  22314. CreateDynamicObject(14680,2587.9064900,-1531.5764200,-48.0116000,0.0000000,0.0000000,90.0000000); //
  22315. CreateDynamicObject(14680,2596.6257300,-1538.7545200,-48.0116000,0.0000000,0.0000000,0.0000000); //
  22316. CreateDynamicObject(14680,2596.8950200,-1525.8818400,-48.0116000,0.0000000,0.0000000,0.0000000); //
  22317. CreateDynamicObject(14680,2596.8776900,-1517.5083000,-48.0116000,0.0000000,0.0000000,0.0000000); //
  22318. CreateDynamicObject(14680,2596.8820800,-1508.7966300,-48.0116000,0.0000000,0.0000000,0.0000000); //
  22319. CreateDynamicObject(14680,2602.6577100,-1516.5947300,-48.0116000,0.0000000,0.0000000,0.0000000); //
  22320. CreateDynamicObject(14680,2603.0200200,-1529.1019300,-48.0116000,0.0000000,0.0000000,0.0000000); //
  22321. CreateDynamicObject(14680,2603.2465800,-1535.4953600,-48.0116000,0.0000000,0.0000000,0.0000000); //
  22322. CreateDynamicObject(14680,2602.7775900,-1501.3593800,-48.0116000,0.0000000,0.0000000,0.0000000); //
  22323. CreateDynamicObject(14680,2602.9150400,-1494.9841300,-48.0116000,0.0000000,0.0000000,0.0000000); //
  22324. CreateDynamicObject(14680,2609.9011200,-1492.4538600,-48.0116000,0.0000000,0.0000000,0.0000000); //
  22325. CreateDynamicObject(14680,2597.3073700,-1483.5406500,-48.0116000,0.0000000,0.0000000,90.0000000); //
  22326. CreateDynamicObject(14680,2597.3073700,-1483.5406500,-48.0116000,0.0000000,0.0000000,90.0000000); //
  22327. CreateDynamicObject(14680,2610.0634800,-1504.1438000,-48.0116000,0.0000000,0.0000000,0.0000000); //
  22328. CreateDynamicObject(14680,2609.7841800,-1530.5344200,-48.0116000,0.0000000,0.0000000,0.0000000); //
  22329. CreateDynamicObject(14680,2609.7812500,-1516.3975800,-48.0116000,0.0000000,0.0000000,0.0000000); //
  22330. CreateDynamicObject(14680,2603.1699200,-1542.3142100,-44.7784000,0.0000000,0.0000000,0.0000000); //
  22331. CreateDynamicObject(14680,2596.6804200,-1535.3389900,-44.7784000,0.0000000,0.0000000,0.0000000); //
  22332. CreateDynamicObject(14438,2582.8979500,-1509.6868900,-41.5591400,0.0000000,0.0000000,90.0000000); //
  22333. CreateDynamicObject(14680,2574.8679200,-1527.9997600,-44.8502000,0.0000000,0.0000000,0.0000000); //
  22334. CreateDynamicObject(2615,2591.4856000,-1501.6391600,-44.8764000,0.0000000,0.0000000,0.0000000); //
  22335. CreateDynamicObject(2604,2596.1655300,-1503.9307900,-45.4877000,0.0000000,0.0000000,-90.0000000); //
  22336. CreateDynamicObject(19394,2595.0214800,-1495.9495800,-44.6456000,0.0000000,0.0000000,90.0000000); //
  22337. CreateDynamicObject(19365,2596.7329100,-1495.0878900,-44.6456000,0.0000000,0.0000000,0.0000000); //
  22338. CreateDynamicObject(19365,2579.0932600,-1496.6490500,-44.6656000,0.0000000,0.0000000,90.0000000); //
  22339. CreateDynamicObject(19365,2595.2004400,-1493.5389400,-44.6456000,0.0000000,0.0000000,90.0000000); //
  22340. CreateDynamicObject(19457,2588.9255400,-1490.4744900,-44.6456000,0.0000000,0.0000000,90.0000000); //
  22341. CreateDynamicObject(19365,2593.6689500,-1492.0153800,-44.6456000,0.0000000,0.0000000,0.0000000); //
  22342. CreateDynamicObject(19457,2579.2919900,-1490.4744900,-44.6456000,0.0000000,0.0000000,90.0000000); //
  22343. CreateDynamicObject(19457,2574.5461400,-1491.7663600,-44.6456000,0.0000000,0.0000000,0.0000000); //
  22344. CreateDynamicObject(3394,2591.6040000,-1491.1533200,-46.2364000,0.0000000,0.0000000,90.0000000); //
  22345. CreateDynamicObject(3395,2578.1774900,-1496.0119600,-46.2363000,0.0000000,0.0000000,-90.0000000); //
  22346. CreateDynamicObject(3389,2575.1106000,-1492.3238500,-46.2384000,0.0000000,0.0000000,180.0000000); //
  22347. CreateDynamicObject(3388,2575.1106000,-1491.2801500,-46.2384000,0.0000000,0.0000000,180.0000000); //
  22348. CreateDynamicObject(3387,2575.1106000,-1493.3591300,-46.2384000,0.0000000,0.0000000,180.0000000); //
  22349. CreateDynamicObject(3386,2575.1106000,-1494.4021000,-46.2384000,0.0000000,0.0000000,180.0000000); //
  22350. CreateDynamicObject(2606,2578.6794400,-1490.7675800,-44.0636000,0.0000000,0.0000000,0.0000000); //
  22351. CreateDynamicObject(2606,2578.6794400,-1490.7675800,-44.5139000,0.0000000,0.0000000,0.0000000); //
  22352. CreateDynamicObject(14391,2583.9582500,-1491.3961200,-45.2827000,0.0000000,0.0000000,-90.0000000); //
  22353. CreateDynamicObject(1671,2585.7983400,-1493.3293500,-45.7924000,0.0000000,0.0000000,200.0000000); //
  22354. CreateDynamicObject(1671,2583.0380900,-1493.3790300,-45.7924000,0.0000000,0.0000000,170.0000000); //
  22355. CreateDynamicObject(1671,2591.2573200,-1491.8951400,-45.7924000,0.0000000,0.0000000,180.0000000); //
  22356. CreateDynamicObject(1671,2578.3745100,-1495.5946000,-45.7924000,0.0000000,0.0000000,0.0000000); //
  22357. CreateDynamicObject(2606,2589.8054200,-1496.3299600,-43.8191000,0.0000000,0.0000000,180.0000000); //
  22358. CreateDynamicObject(2606,2589.8054200,-1496.3299600,-44.2591000,0.0000000,0.0000000,180.0000000); //
  22359. CreateDynamicObject(19377,2592.1425800,-1491.7126500,-43.1414000,0.0000000,90.0000000,0.0000000); //
  22360. CreateDynamicObject(19377,2581.7634300,-1491.6795700,-43.1414000,0.0000000,90.0000000,0.0000000); //
  22361. CreateDynamicObject(19377,2571.3378900,-1491.6276900,-43.1414000,0.0000000,90.0000000,0.0000000); //
  22362. CreateDynamicObject(14680,2590.6557600,-1496.5316200,-44.7784000,0.0000000,0.0000000,0.0000000); //
  22363. CreateDynamicObject(14680,2583.7631800,-1496.5090300,-44.7784000,0.0000000,0.0000000,0.0000000); //
  22364. CreateDynamicObject(19438,2593.4606900,-1523.8531500,-44.6656000,0.0000000,0.0000000,0.0000000); //
  22365. CreateDynamicObject(19438,2593.4606900,-1528.1684600,-44.6656000,0.0000000,0.0000000,0.0000000); //
  22366. CreateDynamicObject(19438,2593.4606900,-1526.5645800,-44.6656000,0.0000000,0.0000000,0.0000000); //
  22367. CreateDynamicObject(19438,2593.4599600,-1525.1040000,-44.6656000,0.0000000,0.0000000,0.0000000); //
  22368. CreateDynamicObject(19325,2583.9807100,-1496.6344000,-44.2213000,0.0000000,0.0000000,90.0000000); //
  22369. CreateDynamicObject(19325,2593.4733900,-1521.8675500,-43.0151300,90.0000000,0.0000000,0.0000000); //
  22370. CreateDynamicObject(19325,2593.5068400,-1530.3964800,-42.9704400,90.0000000,0.0000000,0.0000000); //
  22371. CreateDynamicObject(19325,2588.8864700,-1517.6917700,-42.5072000,90.0000000,0.0000000,0.0000000); //
  22372. CreateDynamicObject(19325,2588.8864700,-1514.4276100,-42.5072000,90.0000000,0.0000000,0.0000000); //
  22373. CreateDynamicObject(19325,2588.8864700,-1510.7181400,-42.5072000,90.0000000,0.0000000,0.0000000); //
  22374. CreateDynamicObject(19325,2588.8864700,-1506.7559800,-42.5072000,90.0000000,0.0000000,0.0000000); //
  22375. CreateDynamicObject(19325,2588.8864700,-1503.5051300,-42.5072000,90.0000000,0.0000000,0.0000000); //
  22376. CreateDynamicObject(19325,2593.4528800,-1499.0168500,-43.1128800,90.0000000,0.0000000,0.0000000); //
  22377. CreateDynamicObject(19457,2577.4826700,-1514.0682400,-44.6656000,0.0000000,0.0000000,0.0000000); //
  22378. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22379. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22380. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22381. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22382. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22383. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22384. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22385. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22386. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22387. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22388. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22389. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22390. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22391. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22392. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22393. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22394. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22395. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22396. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22397. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22398. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22399. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22400. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22401. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22402. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22403. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22404. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22405. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22406. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22407. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22408. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22409. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22410. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22411. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22412. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22413. CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); //
  22414. CreateDynamicObject(2886,2593.9692400,-1495.8798800,-44.9318000,0.0000000,0.0000000,180.0000000); //
  22415. CreateDynamicObject(2886,2596.1491700,-1496.0199000,-44.9318000,0.0000000,0.0000000,0.0000000); //
  22416. CreateDynamicObject(2603,2576.2270500,-1515.7629400,-45.7963000,0.0000000,0.0000000,90.0000000); //
  22417. CreateDynamicObject(2603,2576.2270500,-1515.7629400,-44.8963000,0.0000000,0.0000000,90.0000000); //
  22418. CreateDynamicObject(2603,2576.2270500,-1512.1229200,-45.7963000,0.0000000,0.0000000,90.0000000); //
  22419. CreateDynamicObject(2603,2576.2270500,-1510.8228800,-45.7963000,0.0000000,0.0000000,90.0000000); //
  22420. CreateDynamicObject(2603,2576.2270500,-1504.8028600,-45.7963000,0.0000000,0.0000000,90.0000000); //
  22421. CreateDynamicObject(2603,2576.2270500,-1501.1429400,-45.7963000,0.0000000,0.0000000,90.0000000); //
  22422. CreateDynamicObject(2603,2576.2270500,-1512.1229200,-44.8963000,0.0000000,0.0000000,90.0000000); //
  22423. CreateDynamicObject(2603,2576.2270500,-1510.8228800,-44.8963000,0.0000000,0.0000000,90.0000000); //
  22424. CreateDynamicObject(2603,2576.2270500,-1504.8028600,-44.8963000,0.0000000,0.0000000,90.0000000); //
  22425. CreateDynamicObject(2603,2576.2270500,-1501.1429400,-44.8963000,0.0000000,0.0000000,90.0000000); //
  22426. CreateDynamicObject(19623,2590.8703600,-1491.5803200,-48.5721000,0.0000000,0.0000000,270.0000000); //
  22427. CreateDynamicObject(19611,2590.8898900,-1491.5876500,-50.2325000,0.0000000,0.0000000,0.0000000); //
  22428. CreateDynamicObject(19805,2585.5915500,-1491.6254900,-48.2970000,0.0000000,90.0000000,90.0000000); //
  22429. CreateDynamicObject(2603,2572.6291500,-1501.1352500,-49.4719000,0.0000000,0.0000000,90.0000000); //
  22430. CreateDynamicObject(2603,2572.6291500,-1501.1352500,-48.5719000,0.0000000,0.0000000,90.0000000); //
  22431. CreateDynamicObject(2603,2572.6291500,-1507.1552700,-49.4719000,0.0000000,0.0000000,90.0000000); //
  22432. CreateDynamicObject(2603,2572.6291500,-1508.4553200,-49.4719000,0.0000000,0.0000000,90.0000000); //
  22433. CreateDynamicObject(2603,2572.6291500,-1514.4753400,-49.4719000,0.0000000,0.0000000,90.0000000); //
  22434. CreateDynamicObject(2603,2572.6291500,-1518.1352500,-49.4719000,0.0000000,0.0000000,90.0000000); //
  22435. CreateDynamicObject(2603,2572.6291500,-1507.1552700,-48.5719000,0.0000000,0.0000000,90.0000000); //
  22436. CreateDynamicObject(2603,2572.6291500,-1508.4553200,-48.5719000,0.0000000,0.0000000,90.0000000); //
  22437. CreateDynamicObject(2603,2572.6291500,-1514.4753400,-48.5719000,0.0000000,0.0000000,90.0000000); //
  22438. CreateDynamicObject(2603,2572.6291500,-1518.1352500,-48.5719000,0.0000000,0.0000000,90.0000000); //
  22439. CreateDynamicObject(2603,2579.3000500,-1527.8254400,-49.4719000,0.0000000,0.0000000,0.0000000); //
  22440. CreateDynamicObject(2603,2585.3400900,-1527.8254400,-49.4719000,0.0000000,0.0000000,0.0000000); //
  22441. CreateDynamicObject(2603,2586.6401400,-1527.8254400,-49.4719000,0.0000000,0.0000000,0.0000000); //
  22442. CreateDynamicObject(2603,2579.3000500,-1527.8254400,-48.5719000,0.0000000,0.0000000,0.0000000); //
  22443. CreateDynamicObject(2603,2585.3400900,-1527.8254400,-48.5719000,0.0000000,0.0000000,0.0000000); //
  22444. CreateDynamicObject(2603,2586.6401400,-1527.8254400,-48.5719000,0.0000000,0.0000000,0.0000000); //
  22445. CreateDynamicObject(2603,2592.2568400,-1519.1870100,-49.4720000,0.0000000,0.0000000,90.0000000); //
  22446. CreateDynamicObject(2603,2592.2568400,-1515.5069600,-49.4720000,0.0000000,0.0000000,90.0000000); //
  22447. CreateDynamicObject(2603,2592.2568400,-1509.5069600,-49.4720000,0.0000000,0.0000000,90.0000000); //
  22448. CreateDynamicObject(2603,2592.2568400,-1508.2070300,-49.4720000,0.0000000,0.0000000,90.0000000); //
  22449. CreateDynamicObject(2603,2592.2568400,-1502.1669900,-49.4720000,0.0000000,0.0000000,90.0000000); //
  22450. CreateDynamicObject(2603,2592.2568400,-1519.1870100,-48.5720000,0.0000000,0.0000000,90.0000000); //
  22451. CreateDynamicObject(2603,2592.2568400,-1515.5069600,-48.5720000,0.0000000,0.0000000,90.0000000); //
  22452. CreateDynamicObject(2603,2592.2568400,-1509.5069600,-48.5720000,0.0000000,0.0000000,90.0000000); //
  22453. CreateDynamicObject(2603,2592.2568400,-1508.2070300,-48.5720000,0.0000000,0.0000000,90.0000000); //
  22454. CreateDynamicObject(2603,2592.2568400,-1502.1669900,-48.5720000,0.0000000,0.0000000,90.0000000); //
  22455. CreateDynamicObject(2603,2589.0036600,-1523.9759500,-45.7953000,0.0000000,0.0000000,0.0000000); //
  22456. CreateDynamicObject(2603,2582.9436000,-1523.9759500,-45.7953000,0.0000000,0.0000000,0.0000000); //
  22457. CreateDynamicObject(2603,2579.3037100,-1523.9759500,-45.7953000,0.0000000,0.0000000,0.0000000); //
  22458. CreateDynamicObject(2603,2589.0036600,-1523.9759500,-44.8953000,0.0000000,0.0000000,0.0000000); //
  22459. CreateDynamicObject(2603,2582.9436000,-1523.9759500,-44.8953000,0.0000000,0.0000000,0.0000000); //
  22460. CreateDynamicObject(2603,2579.3037100,-1523.9759500,-44.8953000,0.0000000,0.0000000,0.0000000); //
  22461. CreateDynamicObject(2603,2592.1731000,-1540.3665800,-49.4725000,0.0000000,0.0000000,0.0000000); //
  22462. CreateDynamicObject(2603,2585.9340800,-1540.3540000,-49.4720000,0.0000000,0.0000000,0.0000000); //
  22463. CreateDynamicObject(2603,2600.5983900,-1518.0709200,-49.4730000,0.0000000,0.0000000,0.0000000); //
  22464. CreateDynamicObject(2603,2603.5983900,-1518.0709200,-49.4730000,0.0000000,0.0000000,0.0000000); //
  22465. CreateDynamicObject(19903,2602.3610800,-1518.9064900,-49.9127000,0.0000000,0.0000000,90.0000000); //
  22466. CreateDynamicObject(19903,2599.4411600,-1518.9064900,-49.9127000,0.0000000,0.0000000,90.0000000); //
  22467. CreateDynamicObject(2635,2574.9751000,-1530.2347400,-49.5159000,0.0000000,0.0000000,0.0000000); //
  22468. CreateDynamicObject(2424,2574.1289100,-1522.0684800,-50.0126000,0.0000000,0.0000000,0.0000000); //
  22469. CreateDynamicObject(2423,2575.0581100,-1522.0683600,-50.0125000,0.0000000,0.0000000,0.0000000); //
  22470. CreateDynamicObject(2424,2573.1977500,-1522.0684800,-50.0126000,0.0000000,0.0000000,0.0000000); //
  22471. CreateDynamicObject(2424,2572.2678200,-1522.0684800,-50.0126000,0.0000000,0.0000000,0.0000000); //
  22472. CreateDynamicObject(2424,2571.3378900,-1522.0684800,-50.0126000,0.0000000,0.0000000,0.0000000); //
  22473. CreateDynamicObject(2424,2570.4082000,-1522.0684800,-50.0126000,0.0000000,0.0000000,0.0000000); //
  22474. CreateDynamicObject(2424,2569.4780300,-1522.0684800,-50.0126000,0.0000000,0.0000000,0.0000000); //
  22475. CreateDynamicObject(2424,2568.5481000,-1522.0684800,-50.0126000,0.0000000,0.0000000,0.0000000); //
  22476. CreateDynamicObject(2424,2575.1394000,-1521.0246600,-50.0126000,0.0000000,0.0000000,90.0000000); //
  22477. CreateDynamicObject(19916,2572.4670400,-1519.2710000,-49.9330000,0.0000000,0.0000000,0.0000000); //
  22478. CreateDynamicObject(19927,2570.9765600,-1519.2983400,-49.9120000,0.0000000,0.0000000,90.0000000); //
  22479. CreateDynamicObject(19923,2569.0290500,-1519.4265100,-49.9707000,0.0000000,0.0000000,0.0000000); //
  22480. CreateDynamicObject(19924,2569.0524900,-1519.4639900,-46.6631000,0.0000000,0.0000000,0.0000000); //
  22481. CreateDynamicObject(19584,2569.3942900,-1519.5428500,-48.8379000,0.0000000,0.0000000,270.0000000); //
  22482. CreateDynamicObject(1810,2573.9121100,-1530.0063500,-49.9166000,0.0000000,0.0000000,90.0000000); //
  22483. CreateDynamicObject(1810,2574.7519500,-1531.4062500,-49.9166000,0.0000000,0.0000000,180.0000000); //
  22484. CreateDynamicObject(1810,2575.2319300,-1529.1263400,-49.9166000,0.0000000,0.0000000,0.0000000); //
  22485. CreateDynamicObject(1810,2576.0319800,-1530.4863300,-49.9166000,0.0000000,0.0000000,-90.0000000); //
  22486. CreateDynamicObject(2635,2569.7751500,-1526.2827100,-49.5159000,0.0000000,0.0000000,0.0000000); //
  22487. CreateDynamicObject(1810,2569.3713400,-1527.4459200,-49.9166000,0.0000000,0.0000000,180.0000000); //
  22488. CreateDynamicObject(1810,2570.7819800,-1526.4303000,-49.9166000,0.0000000,0.0000000,-90.0000000); //
  22489. CreateDynamicObject(1810,2569.9243200,-1525.1027800,-49.9166000,0.0000000,0.0000000,0.0000000); //
  22490. CreateDynamicObject(1810,2568.6267100,-1525.9633800,-49.9166000,0.0000000,0.0000000,90.0000000); //
  22491. CreateDynamicObject(2635,2574.9751000,-1526.2827100,-49.5159000,0.0000000,0.0000000,0.0000000); //
  22492. CreateDynamicObject(1810,2575.2319300,-1525.1743200,-49.9166000,0.0000000,0.0000000,0.0000000); //
  22493. CreateDynamicObject(1810,2574.7519500,-1527.4543500,-49.9166000,0.0000000,0.0000000,180.0000000); //
  22494. CreateDynamicObject(1810,2573.9121100,-1526.0543200,-49.9166000,0.0000000,0.0000000,90.0000000); //
  22495. CreateDynamicObject(1810,2576.0319800,-1526.4303000,-49.9166000,0.0000000,0.0000000,-90.0000000); //
  22496. CreateDynamicObject(1997,2605.2043500,-1515.3354500,-49.9202000,0.0000000,0.0000000,-90.0000000); //
  22497. CreateDynamicObject(1997,2596.1901900,-1508.9066200,-49.9137000,0.0000000,0.0000000,0.0000000); //
  22498. CreateDynamicObject(14842,2578.5271000,-1533.1315900,-48.2976000,0.0000000,0.0000000,270.0000000); //
  22499. CreateDynamicObject(19365,2578.4846200,-1535.1501500,-48.1570000,0.0000000,0.0000000,90.0000000); //
  22500. CreateDynamicObject(14842,2578.5271000,-1536.1125500,-48.2976000,0.0000000,0.0000000,270.0000000); //
  22501. CreateDynamicObject(19365,2578.4846200,-1538.5042700,-48.1570000,0.0000000,0.0000000,90.0000000); //
  22502. CreateDynamicObject(14842,2578.5271000,-1539.4676500,-48.2976000,0.0000000,0.0000000,270.0000000); //
  22503. CreateDynamicObject(14680,2573.2351100,-1539.4305400,-48.0116000,0.0000000,0.0000000,0.0000000); //
  22504. CreateDynamicObject(19365,2569.6765100,-1538.5042700,-48.1570000,0.0000000,0.0000000,90.0000000); //
  22505. CreateDynamicObject(19365,2569.6765100,-1535.1501500,-48.1570000,0.0000000,0.0000000,90.0000000); //
  22506. CreateDynamicObject(14842,2569.6191400,-1537.5405300,-48.2976000,0.0000000,0.0000000,90.0000000); //
  22507. CreateDynamicObject(14842,2569.6191400,-1540.6505100,-48.2976000,0.0000000,0.0000000,90.0000000); //
  22508. CreateDynamicObject(14842,2569.6191400,-1534.1865200,-48.2976000,0.0000000,0.0000000,90.0000000); //
  22509. // Prison Exterior
  22510. CreateDynamicObject(8409,1051.6384300,-305.1238100,75.6597000,0.0000000,0.0000000,0.0000000); //
  22511. CreateDynamicObject(987,1006.7338300,-281.1673000,72.0763000,0.0000000,0.0000000,-90.0000000); //
  22512. CreateDynamicObject(987,1006.7509200,-293.1014100,72.0763000,0.0000000,0.0000000,-90.0000000); //
  22513. CreateDynamicObject(987,1006.7512800,-305.0224900,72.0763000,0.0000000,0.0000000,-90.0000000); //
  22514. CreateDynamicObject(987,1006.7883900,-316.9641100,72.0763000,0.0000000,0.0000000,-90.0000000); //
  22515. CreateDynamicObject(987,1006.7653800,-328.9065900,72.0763000,0.0000000,0.0000000,-90.0000000); //
  22516. CreateDynamicObject(987,1006.7589700,-340.8125900,72.0763000,0.0000000,0.0000000,-90.0000000); //
  22517. CreateDynamicObject(987,1006.7280900,-351.4917900,72.0763000,0.0000000,0.0000000,-90.0000000); //
  22518. CreateDynamicObject(987,1018.6674200,-281.2257100,72.0763000,0.0000000,0.0000000,180.0000000); //
  22519. CreateDynamicObject(987,1030.6190200,-281.2063900,72.0763000,0.0000000,0.0000000,180.0000000); //
  22520. CreateDynamicObject(987,1042.5738500,-281.2612900,72.0763000,0.0000000,0.0000000,180.0000000); //
  22521. CreateDynamicObject(987,1054.5336900,-281.2466100,72.0763000,0.0000000,0.0000000,180.0000000); //
  22522. CreateDynamicObject(987,1066.4863300,-281.2507000,72.0763000,0.0000000,0.0000000,180.0000000); //
  22523. CreateDynamicObject(987,1078.4506800,-281.2804900,72.0763000,0.0000000,0.0000000,180.0000000); //
  22524. CreateDynamicObject(987,1090.3525400,-281.2598000,72.0763000,0.0000000,0.0000000,180.0000000); //
  22525. CreateDynamicObject(987,1102.2935800,-281.2839100,72.0763000,0.0000000,0.0000000,180.0000000); //
  22526. CreateDynamicObject(987,1114.2308300,-281.2777100,72.0763000,0.0000000,0.0000000,180.0000000); //
  22527. CreateDynamicObject(987,1126.1154800,-281.2632100,72.0763000,0.0000000,0.0000000,180.0000000); //
  22528. CreateDynamicObject(987,1126.0527300,-293.1776100,72.0763000,0.0000000,0.0000000,90.0000000); //
  22529. CreateDynamicObject(987,1126.0731200,-305.0831000,72.0763000,0.0000000,0.0000000,90.0000000); //
  22530. CreateDynamicObject(987,1114.1897000,-324.9497100,72.0763000,0.0000000,0.0000000,0.0000000); //
  22531. CreateDynamicObject(987,1126.0559100,-328.9296000,72.0763000,0.0000000,0.0000000,90.0000000); //
  22532. CreateDynamicObject(987,1126.0184300,-340.8891900,72.0763000,0.0000000,0.0000000,90.0000000); //
  22533. CreateDynamicObject(987,1125.9973100,-352.8109100,72.0763000,0.0000000,0.0000000,90.0000000); //
  22534. CreateDynamicObject(987,1125.9708300,-364.7377000,72.0763000,0.0000000,0.0000000,90.0000000); //
  22535. CreateDynamicObject(987,1117.5273400,-373.1181900,72.0763000,0.0000000,0.0000000,45.0000000); //
  22536. CreateDynamicObject(987,1105.6164600,-373.1328100,72.0763000,0.0000000,0.0000000,0.0000000); //
  22537. CreateDynamicObject(987,1093.6861600,-373.1198100,72.0763000,0.0000000,0.0000000,0.0000000); //
  22538. CreateDynamicObject(987,1081.7950400,-373.0947000,72.0763000,0.0000000,0.0000000,0.0000000); //
  22539. CreateDynamicObject(987,1070.0300300,-371.0546000,72.0763000,0.0000000,0.0000000,-10.0000000); //
  22540. CreateDynamicObject(987,1058.2489000,-369.0120800,72.0763000,0.0000000,0.0000000,-10.0000000); //
  22541. CreateDynamicObject(987,1046.5335700,-366.9283100,72.0763000,0.0000000,0.0000000,-10.0000000); //
  22542. CreateDynamicObject(987,1034.6412400,-365.8577900,72.0763000,0.0000000,0.0000000,-5.0000000); //
  22543. CreateDynamicObject(987,1006.4794900,-363.3366100,72.0763000,0.0000000,0.0000000,-5.0000000); //
  22544. CreateDynamicObject(3279,1051.5618900,-359.9487900,72.7722000,0.0000000,0.0000000,0.0000000); //
  22545. CreateDynamicObject(3279,1011.7888800,-358.8762200,72.7298100,0.0000000,0.0000000,87.1200000); //
  22546. CreateDynamicObject(3279,1118.2645300,-365.7728600,72.7722000,0.0000000,0.0000000,-136.2002100); //
  22547. CreateDynamicObject(3279,1011.4205300,-285.6388200,72.7124400,0.0000000,0.0000000,0.0000000); //
  22548. CreateDynamicObject(16093,1039.5813000,-359.9994500,72.8645100,0.0000000,0.0000000,-361.6197500); //
  22549. CreateDynamicObject(19355,1043.5573700,-320.0099800,74.3098000,0.0000000,0.0000000,90.0000000); //
  22550. CreateDynamicObject(19355,1046.7154500,-320.0057700,74.3098000,0.0000000,0.0000000,90.0000000); //
  22551. CreateDynamicObject(19355,1049.8767100,-319.9982000,74.3098000,0.0000000,0.0000000,90.0000000); //
  22552. CreateDynamicObject(19355,1053.0660400,-319.9687800,74.3098000,0.0000000,0.0000000,90.0000000); //
  22553. CreateDynamicObject(19355,1056.2421900,-319.9711000,74.3098000,0.0000000,0.0000000,90.0000000); //
  22554. CreateDynamicObject(19355,1059.4404300,-319.9816900,74.3098000,0.0000000,0.0000000,90.0000000); //
  22555. CreateDynamicObject(19355,1062.6545400,-320.0116300,74.3098000,0.0000000,0.0000000,90.0000000); //
  22556. CreateDynamicObject(19355,1060.0958300,-290.2352000,74.3098000,0.0000000,0.0000000,90.0000000); //
  22557. CreateDynamicObject(19355,1056.9331100,-290.2487800,74.3098000,0.0000000,0.0000000,90.0000000); //
  22558. CreateDynamicObject(19355,1053.7752700,-290.2612900,74.3098000,0.0000000,0.0000000,90.0000000); //
  22559. CreateDynamicObject(19355,1050.1574700,-290.2242400,74.3098000,0.0000000,0.0000000,90.0000000); //
  22560. CreateDynamicObject(19355,1046.9608200,-290.2124000,74.3098000,0.0000000,0.0000000,90.0000000); //
  22561. CreateDynamicObject(19355,1043.7858900,-290.2101700,74.3098000,0.0000000,0.0000000,90.0000000); //
  22562. CreateDynamicObject(1622,1019.8917800,-320.5111400,78.6747000,0.0000000,0.0000000,90.0000000); //
  22563. CreateDynamicObject(1622,1038.0201400,-321.6866500,78.6747000,0.0000000,0.0000000,90.0000000); //
  22564. CreateDynamicObject(1622,1036.8071300,-321.4718600,78.6747000,0.0000000,0.0000000,30.0000000); //
  22565. CreateDynamicObject(16101,1037.0231900,-321.1698300,72.9906800,0.0000000,0.0000000,0.0000000); //
  22566. CreateDynamicObject(16101,1037.9133300,-321.2878400,72.9906800,0.0000000,0.0000000,0.0000000); //
  22567. CreateDynamicObject(16101,1056.1444100,-321.2292200,72.9906800,0.0000000,0.0000000,0.0000000); //
  22568. CreateDynamicObject(16101,1057.2806400,-321.1459400,72.9906800,0.0000000,0.0000000,0.0000000); //
  22569. CreateDynamicObject(1622,1055.9282200,-321.4786400,78.6747000,0.0000000,0.0000000,30.0000000); //
  22570. CreateDynamicObject(1622,1057.4071000,-321.4988700,78.6747000,0.0000000,0.0000000,90.0000000); //
  22571. CreateDynamicObject(16101,1074.4205300,-324.6236600,72.9906800,0.0000000,0.0000000,0.0000000); //
  22572. CreateDynamicObject(16101,1083.7751500,-324.7861900,72.9906800,0.0000000,0.0000000,0.0000000); //
  22573. CreateDynamicObject(1622,1074.1602800,-324.8924900,78.6747000,0.0000000,0.0000000,30.0000000); //
  22574. CreateDynamicObject(1622,1083.9221200,-325.0259100,78.6547000,0.0000000,0.0000000,90.0000000); //
  22575. CreateDynamicObject(16101,1075.0775100,-324.6909200,72.9906800,0.0000000,0.0000000,0.0000000); //
  22576. CreateDynamicObject(1622,1075.1510000,-325.0651900,78.6547000,0.0000000,0.0000000,90.0000000); //
  22577. CreateDynamicObject(16101,1088.1776100,-321.3161000,72.9906800,0.0000000,0.0000000,0.0000000); //
  22578. CreateDynamicObject(16101,1088.2324200,-320.5411100,72.9906800,0.0000000,0.0000000,0.0000000); //
  22579. CreateDynamicObject(1622,1088.4893800,-321.4796100,78.6547000,0.0000000,0.0000000,135.0000000); //
  22580. CreateDynamicObject(1622,1088.6467300,-320.3887300,78.6547000,0.0000000,0.0000000,180.0000000); //
  22581. CreateDynamicObject(16101,1084.7561000,-309.4369200,72.9906800,0.0000000,0.0000000,0.0000000); //
  22582. CreateDynamicObject(16101,1084.6909200,-301.2693800,72.9906800,0.0000000,0.0000000,0.0000000); //
  22583. CreateDynamicObject(1622,1085.1862800,-309.2865300,78.6547000,0.0000000,0.0000000,180.0000000); //
  22584. CreateDynamicObject(1622,1085.0564000,-301.4556900,78.6547000,0.0000000,0.0000000,135.0000000); //
  22585. CreateDynamicObject(16093,1045.8453400,-323.8139300,72.9379500,0.0000000,0.0000000,0.0000000); //
  22586. CreateDynamicObject(16638,1045.9252900,-324.7939100,71.1780000,0.0000000,0.0000000,0.0000000); //
  22587. CreateDynamicObject(1671,1045.8418000,-321.6994000,73.5106000,0.0000000,0.0000000,180.0000000); //
  22588. CreateDynamicObject(1999,1047.3835400,-324.9479100,73.0670000,0.0000000,0.0000000,180.0000000); //
  22589. CreateDynamicObject(1999,1045.2065400,-324.9479100,73.0670000,0.0000000,0.0000000,180.0000000); //
  22590. CreateDynamicObject(1714,1046.5422400,-323.9178800,73.0669300,0.0000000,0.0000000,0.0000000); //
  22591. CreateDynamicObject(1714,1044.4267600,-323.7554600,73.0669300,0.0000000,0.0000000,0.0000000); //
  22592. CreateDynamicObject(19513,1045.2143600,-324.7684600,73.8791000,0.0000000,0.0000000,180.0000000); //
  22593. CreateDynamicObject(19513,1047.0964400,-324.7039800,73.8791000,0.0000000,0.0000000,180.0000000); //
  22594. CreateDynamicObject(2606,1045.8776900,-320.1041900,75.0676000,0.0000000,0.0000000,0.0000000); //
  22595. CreateDynamicObject(2606,1045.8728000,-320.1041900,74.6076000,0.0000000,0.0000000,0.0000000); //
  22596. CreateDynamicObject(987,1126.0813000,-317.0194100,72.0763000,0.0000000,0.0000000,90.0000000); //
  22597. CreateDynamicObject(987,1082.4907200,-281.2186900,72.0763000,0.0000000,0.0000000,270.0000000); //
  22598. CreateDynamicObject(1508,1084.1590600,-306.0553600,74.4104000,0.0000000,0.0000000,0.0000000); //
  22599. CreateDynamicObject(19355,1085.2603800,-310.6680900,74.7081000,0.0000000,0.0000000,0.0000000); //
  22600. CreateDynamicObject(19355,1083.7463400,-309.1201200,74.7081000,0.0000000,0.0000000,90.0000000); //
  22601. CreateDynamicObject(19355,1085.2489000,-313.8921500,74.7081000,0.0000000,0.0000000,0.0000000); //
  22602. CreateDynamicObject(19355,1085.0794700,-301.4071400,74.7081000,0.0000000,0.0000000,0.0000000); //
  22603. CreateDynamicObject(19355,1083.5406500,-302.9167500,74.7081000,0.0000000,0.0000000,90.0000000); //
  22604. CreateDynamicObject(19355,1083.5673800,-299.8870500,74.7081000,0.0000000,0.0000000,90.0000000); //
  22605. CreateDynamicObject(2181,1039.7152100,-361.1472800,72.9334800,0.0000000,0.0000000,180.0000000); //
  22606. CreateDynamicObject(18868,1039.8808600,-360.9388100,73.7275000,0.0000000,0.0000000,180.0000000); //
  22607. CreateDynamicObject(1714,1039.1252400,-359.7112400,73.0676700,0.0000000,0.0000000,0.0000000); //
  22608. CreateDynamicObject(2961,1038.4023400,-361.5658900,73.9285000,180.0000000,0.0000000,0.0000000); //
  22609. CreateDynamicObject(2961,1038.6230500,-361.5685100,73.9285000,180.0000000,0.0000000,0.0000000); //
  22610. CreateDynamicObject(2629,1106.2559800,-321.0431800,72.9843000,0.0000000,0.0000000,180.0000000); //
  22611. CreateDynamicObject(2629,1097.1146200,-320.8481800,72.9843000,0.0000000,0.0000000,180.0000000); //
  22612. CreateDynamicObject(2628,1101.4129600,-321.0011600,72.9845000,0.0000000,0.0000000,180.0000000); //
  22613. CreateDynamicObject(2628,1093.1590600,-321.0201700,72.9845000,0.0000000,0.0000000,180.0000000); //
  22614. CreateDynamicObject(2627,1088.3604700,-318.7762100,72.9858000,0.0000000,0.0000000,90.0000000); //
  22615. CreateDynamicObject(2627,1088.3114000,-316.6084600,72.9858000,0.0000000,0.0000000,90.0000000); //
  22616. CreateDynamicObject(2627,1088.3093300,-314.2240600,72.9858000,0.0000000,0.0000000,90.0000000); //
  22617. CreateDynamicObject(946,1119.5811800,-301.8781400,75.1646000,0.0000000,0.0000000,90.0000000); //
  22618. CreateDynamicObject(1946,1117.3304400,-301.8545200,73.1657000,0.0000000,0.0000000,0.0000000); //
  22619. CreateDynamicObject(8417,1101.5238000,-305.1337300,73.0240900,0.0000000,0.0000000,0.0000000); //
  22620. CreateDynamicObject(987,1102.2214400,-324.9497100,72.0763000,0.0000000,0.0000000,0.0000000); //
  22621. CreateDynamicObject(987,1090.2802700,-324.9497100,72.0763000,0.0000000,0.0000000,0.0000000); //
  22622. CreateDynamicObject(987,1078.3151900,-324.9497100,72.0763000,0.0000000,0.0000000,0.0000000); //
  22623. CreateDynamicObject(987,1066.3739000,-324.9497100,72.0763000,0.0000000,0.0000000,0.0000000); //
  22624. CreateDynamicObject(987,1066.4185800,-313.0105900,72.0763000,0.0000000,0.0000000,-90.0000000); //
  22625. CreateDynamicObject(946,1119.7354700,-310.8417100,75.1646000,0.0000000,0.0000000,90.0000000); //
  22626. CreateDynamicObject(946,1119.5004900,-321.8526900,75.1646000,0.0000000,0.0000000,90.0000000); //
  22627. CreateDynamicObject(1946,1117.5816700,-310.8921500,73.1657000,0.0000000,0.0000000,0.0000000); //
  22628. CreateDynamicObject(1946,1117.3553500,-321.8556500,73.1657000,0.0000000,0.0000000,0.0000000); //
  22629. CreateDynamicObject(16638,1039.6213400,-360.9595000,71.1045000,0.0000000,0.0000000,-361.6198100); //
  22630. CreateDynamicObject(987,1028.6655300,-365.3374900,72.0763000,0.0000000,0.0000000,-5.0000000); //
  22631. CreateDynamicObject(19444,1084.2685500,-282.0979900,77.0468000,0.0000000,90.0000000,0.0000000); //
  22632. CreateDynamicObject(19444,1087.7685500,-282.0979900,77.0468000,0.0000000,90.0000000,0.0000000); //
  22633. CreateDynamicObject(19444,1091.2685500,-282.0979900,77.0468000,0.0000000,90.0000000,0.0000000); //
  22634. CreateDynamicObject(19444,1094.7685500,-282.0979900,77.0468000,0.0000000,90.0000000,0.0000000); //
  22635. CreateDynamicObject(19444,1098.2685500,-282.0979900,77.0468000,0.0000000,90.0000000,0.0000000); //
  22636. CreateDynamicObject(19444,1101.7685500,-282.0979900,77.0468000,0.0000000,90.0000000,0.0000000); //
  22637. CreateDynamicObject(19444,1105.2685500,-282.0979900,77.0468000,0.0000000,90.0000000,0.0000000); //
  22638. CreateDynamicObject(19444,1108.7685500,-282.0979900,77.0468000,0.0000000,90.0000000,0.0000000); //
  22639. CreateDynamicObject(19444,1112.2685500,-282.0979900,77.0468000,0.0000000,90.0000000,0.0000000); //
  22640. CreateDynamicObject(19444,1115.7685500,-282.0979900,77.0468000,0.0000000,90.0000000,0.0000000); //
  22641. CreateDynamicObject(19444,1119.2685500,-282.0979900,77.0468000,0.0000000,90.0000000,0.0000000); //
  22642. CreateDynamicObject(19444,1122.7685500,-282.0979900,77.0468000,0.0000000,90.0000000,0.0000000); //
  22643. CreateDynamicObject(19444,1125.3226300,-283.0463900,77.0468000,0.0000000,90.0000000,90.0000000); //
  22644. CreateDynamicObject(19444,1125.3226300,-286.5463900,77.0468000,0.0000000,90.0000000,90.0000000); //
  22645. CreateDynamicObject(19444,1125.3226300,-290.0454100,77.0468000,0.0000000,90.0000000,90.0000000); //
  22646. CreateDynamicObject(19444,1125.3226300,-293.5404100,77.0468000,0.0000000,90.0000000,90.0000000); //
  22647. CreateDynamicObject(19444,1125.3226300,-297.0354000,77.0468000,0.0000000,90.0000000,90.0000000); //
  22648. CreateDynamicObject(19444,1125.3226300,-300.5304000,77.0468000,0.0000000,90.0000000,90.0000000); //
  22649. CreateDynamicObject(19444,1125.3226300,-304.0253900,77.0468000,0.0000000,90.0000000,90.0000000); //
  22650. CreateDynamicObject(19444,1125.3226300,-307.5203900,77.0468000,0.0000000,90.0000000,90.0000000); //
  22651. CreateDynamicObject(19444,1125.3226300,-311.0154100,77.0468000,0.0000000,90.0000000,90.0000000); //
  22652. CreateDynamicObject(19444,1125.3226300,-314.5104100,77.0468000,0.0000000,90.0000000,90.0000000); //
  22653. CreateDynamicObject(19444,1125.3226300,-318.0054000,77.0468000,0.0000000,90.0000000,90.0000000); //
  22654. CreateDynamicObject(19444,1125.3226300,-321.5004000,77.0468000,0.0000000,90.0000000,90.0000000); //
  22655. CreateDynamicObject(19444,1124.3736600,-324.0541100,77.0468000,0.0000000,90.0000000,0.0000000); //
  22656. CreateDynamicObject(19444,1120.8786600,-324.0541100,77.0468000,0.0000000,90.0000000,0.0000000); //
  22657. CreateDynamicObject(19444,1117.3836700,-324.0541100,77.0468000,0.0000000,90.0000000,0.0000000); //
  22658. CreateDynamicObject(19444,1113.8886700,-324.0541100,77.0468000,0.0000000,90.0000000,0.0000000); //
  22659. CreateDynamicObject(19444,1110.3936800,-324.0541100,77.0468000,0.0000000,90.0000000,0.0000000); //
  22660. CreateDynamicObject(19444,1106.8986800,-324.0541100,77.0468000,0.0000000,90.0000000,0.0000000); //
  22661. CreateDynamicObject(19444,1103.4036900,-324.0541100,77.0468000,0.0000000,90.0000000,0.0000000); //
  22662. CreateDynamicObject(19444,1099.9086900,-324.0541100,77.0468000,0.0000000,90.0000000,0.0000000); //
  22663. CreateDynamicObject(19444,1096.4137000,-324.0541100,77.0468000,0.0000000,90.0000000,0.0000000); //
  22664. CreateDynamicObject(19444,1092.9187000,-324.0541100,77.0468000,0.0000000,90.0000000,0.0000000); //
  22665. CreateDynamicObject(19444,1089.4237100,-324.0541100,77.0468000,0.0000000,90.0000000,0.0000000); //
  22666. CreateDynamicObject(19444,1085.9287100,-324.0541100,77.0468000,0.0000000,90.0000000,0.0000000); //
  22667. CreateDynamicObject(19444,1084.9783900,-321.5020100,77.0468000,0.0000000,90.0000000,90.0000000); //
  22668. CreateDynamicObject(19444,1086.2164300,-321.5020100,77.0468000,0.0000000,90.0000000,90.0000000); //
  22669. CreateDynamicObject(970,1084.7116700,-282.8826900,77.5987000,0.0000000,0.0000000,0.0000000); //
  22670. CreateDynamicObject(970,1088.8817100,-282.8826900,77.5987000,0.0000000,0.0000000,0.0000000); //
  22671. CreateDynamicObject(970,1093.0517600,-282.8826900,77.5987000,0.0000000,0.0000000,0.0000000); //
  22672. CreateDynamicObject(970,1097.2218000,-282.8826900,77.5987000,0.0000000,0.0000000,0.0000000); //
  22673. CreateDynamicObject(970,1101.3918500,-282.8826900,77.5987000,0.0000000,0.0000000,0.0000000); //
  22674. CreateDynamicObject(970,1105.5617700,-282.8826900,77.5987000,0.0000000,0.0000000,0.0000000); //
  22675. CreateDynamicObject(970,1109.7318100,-282.8826900,77.5987000,0.0000000,0.0000000,0.0000000); //
  22676. CreateDynamicObject(970,1113.9018600,-282.8826900,77.5987000,0.0000000,0.0000000,0.0000000); //
  22677. CreateDynamicObject(970,1118.0719000,-282.8826900,77.5987000,0.0000000,0.0000000,0.0000000); //
  22678. CreateDynamicObject(970,1122.2419400,-282.8826900,77.5987000,0.0000000,0.0000000,0.0000000); //
  22679. CreateDynamicObject(1214,1124.6804200,-282.7643100,76.9547000,0.0000000,0.0000000,43.2600000); //
  22680. CreateDynamicObject(970,1124.5468800,-285.1465100,77.5987000,0.0000000,0.0000000,90.0000000); //
  22681. CreateDynamicObject(970,1124.5468800,-289.3165000,77.5987000,0.0000000,0.0000000,90.0000000); //
  22682. CreateDynamicObject(970,1124.5468800,-293.4865100,77.5987000,0.0000000,0.0000000,90.0000000); //
  22683. CreateDynamicObject(970,1124.5468800,-297.6564900,77.5987000,0.0000000,0.0000000,90.0000000); //
  22684. CreateDynamicObject(970,1124.5468800,-301.8265100,77.5987000,0.0000000,0.0000000,90.0000000); //
  22685. CreateDynamicObject(970,1124.5468800,-305.9964900,77.5987000,0.0000000,0.0000000,90.0000000); //
  22686. CreateDynamicObject(970,1124.5468800,-310.1665000,77.5987000,0.0000000,0.0000000,90.0000000); //
  22687. CreateDynamicObject(970,1124.5468800,-314.3364900,77.5987000,0.0000000,0.0000000,90.0000000); //
  22688. CreateDynamicObject(970,1124.5468800,-318.5065000,77.5987000,0.0000000,0.0000000,90.0000000); //
  22689. CreateDynamicObject(970,1124.5468800,-321.0795000,77.5987000,0.0000000,0.0000000,90.0000000); //
  22690. CreateDynamicObject(970,1122.3023700,-323.2746000,77.5987000,0.0000000,0.0000000,0.0000000); //
  22691. CreateDynamicObject(1214,1124.6374500,-323.4166600,76.9547000,0.0000000,0.0000000,43.2600000); //
  22692. CreateDynamicObject(970,1118.1324500,-323.2746000,77.5987000,0.0000000,0.0000000,0.0000000); //
  22693. CreateDynamicObject(970,1113.9624000,-323.2746000,77.5987000,0.0000000,0.0000000,0.0000000); //
  22694. CreateDynamicObject(970,1109.7923600,-323.2746000,77.5987000,0.0000000,0.0000000,0.0000000); //
  22695. CreateDynamicObject(970,1105.6224400,-323.2746000,77.5987000,0.0000000,0.0000000,0.0000000); //
  22696. CreateDynamicObject(970,1101.4523900,-323.2746000,77.5987000,0.0000000,0.0000000,0.0000000); //
  22697. CreateDynamicObject(970,1097.2823500,-323.2746000,77.5987000,0.0000000,0.0000000,0.0000000); //
  22698. CreateDynamicObject(970,1093.1123000,-323.2746000,77.5987000,0.0000000,0.0000000,0.0000000); //
  22699. CreateDynamicObject(970,1089.0323500,-323.2746000,77.5987000,0.0000000,0.0000000,0.0000000); //
  22700. CreateDynamicObject(970,1086.9610600,-321.1805100,77.5987000,0.0000000,0.0000000,90.0000000); //
  22701. CreateDynamicObject(19859,1084.1761500,-320.1037900,78.3887000,0.0000000,0.0000000,0.0000000); //
  22702. CreateDynamicObject(19859,1087.0178200,-320.1012000,78.3887000,0.0000000,0.0000000,180.0600000); //
  22703. // Bank map
  22704. CreateDynamicObject(19379,201.5671380,1722.7216790,1230.3764640,0.0000000,90.0000000,90.0000000); //
  22705. CreateDynamicObject(19379,201.5671380,1712.2412100,1230.3764640,0.0000000,90.0000000,90.0000000); //
  22706. CreateDynamicObject(19379,191.9769890,1712.2412100,1230.3764640,0.0000000,90.0000000,90.0000000); //
  22707. CreateDynamicObject(19379,191.9769890,1722.7235100,1230.3764640,0.0000000,90.0000000,90.0000000); //
  22708. CreateDynamicObject(19367,206.2837060,1726.3665770,1232.2023920,0.0000000,0.0000000,-180.0000000); //
  22709. CreateDynamicObject(19367,206.2837060,1723.1772460,1232.2023920,0.0000000,0.0000000,-180.0000000); //
  22710. CreateDynamicObject(19367,206.2837060,1719.9880370,1232.2023920,0.0000000,0.0000000,-180.0000000); //
  22711. CreateDynamicObject(19367,206.2837060,1716.7983390,1232.2023920,0.0000000,0.0000000,-180.0000000); //
  22712. CreateDynamicObject(19367,206.2837060,1713.6093750,1232.2023920,0.0000000,0.0000000,-180.0000000); //
  22713. CreateDynamicObject(19379,201.5671380,1701.8016350,1230.3764640,0.0000000,90.0000000,90.0000000); //
  22714. CreateDynamicObject(19367,198.2953940,1711.9692380,1232.2023920,0.0000000,0.0000000,90.0000000); //
  22715. CreateDynamicObject(19379,182.3769370,1722.7235100,1230.3764640,0.0000000,90.0000000,90.0000000); //
  22716. CreateDynamicObject(19379,182.3772580,1712.2412100,1230.3764640,0.0000000,90.0000000,90.0000000); //
  22717. CreateDynamicObject(19367,204.6253810,1727.8085930,1232.2023920,0.0000000,0.0000000,90.0000000); //
  22718. CreateDynamicObject(19367,201.4453120,1727.8085930,1232.2023920,0.0000000,0.0000000,90.0000000); //
  22719. CreateDynamicObject(19367,198.2652740,1727.8085930,1232.2023920,0.0000000,0.0000000,90.0000000); //
  22720. CreateDynamicObject(14877,195.4231260,1728.8912350,1228.2916250,0.0000000,0.0000000,-90.0000000); //
  22721. CreateDynamicObject(19367,191.8951720,1727.8085930,1232.2023920,0.0000000,0.0000000,90.0000000); //
  22722. CreateDynamicObject(19367,188.7351220,1727.8085930,1232.2023920,0.0000000,0.0000000,90.0000000); //
  22723. CreateDynamicObject(19367,185.5650930,1727.8085930,1232.2023920,0.0000000,0.0000000,90.0000000); //
  22724. CreateDynamicObject(19367,186.5137320,1723.1080320,1232.2023920,0.0000000,0.0000000,-180.0000000); //
  22725. CreateDynamicObject(19367,186.5137320,1719.9381100,1232.2023920,0.0000000,0.0000000,-180.0000000); //
  22726. CreateDynamicObject(19367,186.5137320,1716.8582760,1232.2023920,0.0000000,0.0000000,-180.0000000); //
  22727. CreateDynamicObject(19367,186.5137320,1713.7176510,1232.2023920,0.0000000,0.0000000,-180.0000000); //
  22728. CreateDynamicObject(19367,191.4236600,1710.4572750,1232.2023920,0.0000000,0.0000000,-180.0000000); //
  22729. CreateDynamicObject(19367,191.4236600,1707.2773430,1232.2023920,0.0000000,0.0000000,-180.0000000); //
  22730. CreateDynamicObject(19367,195.1654050,1711.9692380,1232.2023920,0.0000000,0.0000000,90.0000000); //
  22731. CreateDynamicObject(19367,189.1352690,1711.9692380,1232.2023920,0.0000000,0.0000000,90.0000000); //
  22732. CreateDynamicObject(19367,186.5137320,1726.2784420,1232.2023920,0.0000000,0.0000000,-180.0000000); //
  22733. CreateDynamicObject(19367,204.6253810,1711.9692380,1232.2023920,0.0000000,0.0000000,90.0000000); //
  22734. CreateDynamicObject(19367,193.0653990,1705.7086180,1232.2023920,0.0000000,0.0000000,90.0000000); //
  22735. CreateDynamicObject(19367,185.9752960,1711.9692380,1232.2023920,0.0000000,0.0000000,90.0000000); //
  22736. CreateDynamicObject(19395,201.4829550,1711.9741210,1232.2232660,0.0000000,0.0000000,90.0000000); //
  22737. CreateDynamicObject(19379,191.9769890,1701.7900390,1230.3764640,0.0000000,90.0000000,90.0000000); //
  22738. CreateDynamicObject(19367,206.2836910,1710.3790280,1232.2023920,0.0000000,0.0000000,-180.0000000); //
  22739. CreateDynamicObject(19367,196.2054290,1705.7086180,1232.2023920,0.0000000,0.0000000,90.0000000); //
  22740. CreateDynamicObject(19367,206.2837060,1707.2091060,1232.2023920,0.0000000,0.0000000,-180.0000000); //
  22741. CreateDynamicObject(19367,204.6253810,1705.7086180,1232.2023920,0.0000000,0.0000000,90.0000000); //
  22742. CreateDynamicObject(19367,201.4453430,1705.7086180,1232.2023920,0.0000000,0.0000000,90.0000000); //
  22743. CreateDynamicObject(19379,201.5671380,1712.2412100,1233.7687980,0.0000000,90.0000000,90.0000000); //
  22744. CreateDynamicObject(19379,192.0170280,1712.2412100,1233.7687980,0.0000000,90.0000000,90.0000000); //
  22745. CreateDynamicObject(19379,182.4767600,1712.2412100,1233.7687980,0.0000000,90.0000000,90.0000000); //
  22746. CreateDynamicObject(19379,182.4767600,1722.6208490,1233.7687980,0.0000000,90.0000000,90.0000000); //
  22747. CreateDynamicObject(19379,191.8568720,1722.6208490,1233.7687980,0.0000000,90.0000000,90.0000000); //
  22748. CreateDynamicObject(19379,201.4269400,1722.6208490,1233.7687980,0.0000000,90.0000000,90.0000000); //
  22749. CreateDynamicObject(1569,206.2316580,1720.7021480,1230.4020990,0.0000000,0.0000000,270.0000000); //
  22750. CreateDynamicObject(1569,206.2316580,1717.7319330,1230.4020990,0.0000000,0.0000000,90.0000000); //
  22751. CreateDynamicObject(2435,200.9705200,1724.1082760,1230.4215080,0.0000000,0.0000000,0.0000000); //
  22752. CreateDynamicObject(2434,201.8877250,1724.1008300,1230.4222410,0.0000000,0.0000000,0.0000000); //
  22753. CreateDynamicObject(2435,202.0570980,1725.2229000,1230.4221190,0.0000000,0.0000000,90.0000000); //
  22754. CreateDynamicObject(2435,202.0570980,1726.1228020,1230.4221190,0.0000000,0.0000000,90.0000000); //
  22755. CreateDynamicObject(2435,200.0505370,1724.1082760,1230.4215080,0.0000000,0.0000000,0.0000000); //
  22756. CreateDynamicObject(19325,199.0018610,1724.3676750,1234.2432860,0.0000000,0.0000000,90.0000000); //
  22757. CreateDynamicObject(2435,199.1504970,1724.1082760,1230.4215080,0.0000000,0.0000000,0.0000000); //
  22758. CreateDynamicObject(2435,198.2404630,1724.1082760,1230.4215080,0.0000000,0.0000000,0.0000000); //
  22759. CreateDynamicObject(2435,197.3404380,1724.1082760,1230.4215080,0.0000000,0.0000000,0.0000000); //
  22760. CreateDynamicObject(2435,196.4403530,1724.1082760,1230.4215080,0.0000000,0.0000000,0.0000000); //
  22761. CreateDynamicObject(2435,195.5403280,1724.1082760,1230.4215080,0.0000000,0.0000000,0.0000000); //
  22762. CreateDynamicObject(19325,192.3717650,1724.3676750,1234.2432860,0.0000000,0.0000000,90.0000000); //
  22763. CreateDynamicObject(2435,194.6203000,1724.1082760,1230.4215080,0.0000000,0.0000000,0.0000000); //
  22764. CreateDynamicObject(2435,193.7102810,1724.1082760,1230.4215080,0.0000000,0.0000000,0.0000000); //
  22765. CreateDynamicObject(2435,192.7902670,1724.1082760,1230.4215080,0.0000000,0.0000000,0.0000000); //
  22766. CreateDynamicObject(2435,191.8702230,1724.1082760,1230.4215080,0.0000000,0.0000000,0.0000000); //
  22767. CreateDynamicObject(2435,190.9701840,1724.1082760,1230.4215080,0.0000000,0.0000000,0.0000000); //
  22768. CreateDynamicObject(2435,190.0701590,1724.1082760,1230.4215080,0.0000000,0.0000000,0.0000000); //
  22769. CreateDynamicObject(2434,188.9477080,1724.2709960,1230.4222410,0.0000000,0.0000000,270.0000000); //
  22770. CreateDynamicObject(2435,188.9472350,1725.2020260,1230.4221190,0.0000000,0.0000000,-90.0000000); //
  22771. CreateDynamicObject(2435,188.9472350,1726.1018060,1230.4221190,0.0000000,0.0000000,-90.0000000); //
  22772. CreateDynamicObject(2198,200.7633360,1725.2581780,1230.5422360,0.0000000,0.0000000,-180.0000000); //
  22773. CreateDynamicObject(2198,197.7233120,1725.2581780,1230.5422360,0.0000000,0.0000000,-180.0000000); //
  22774. CreateDynamicObject(2198,194.8033290,1725.2581780,1230.5422360,0.0000000,0.0000000,-180.0000000); //
  22775. CreateDynamicObject(2198,191.9735260,1725.2581780,1230.5422360,0.0000000,0.0000000,-180.0000000); //
  22776. CreateDynamicObject(1671,200.1740570,1726.2779540,1230.9121090,0.0000000,0.0000000,1.0178450); //
  22777. CreateDynamicObject(1671,197.1845390,1726.2244870,1230.9121090,0.0000000,0.0000000,1.0178450); //
  22778. CreateDynamicObject(1671,194.2648920,1726.1738280,1230.9121090,0.0000000,0.0000000,1.0178450); //
  22779. CreateDynamicObject(1671,191.3053740,1726.1213370,1230.9121090,0.0000000,0.0000000,1.0178450); //
  22780. CreateDynamicObject(2773,201.2277670,1722.4520260,1230.9719230,0.0000000,0.0000000,0.0000000); //
  22781. CreateDynamicObject(2773,199.6277610,1722.4520260,1230.9719230,0.0000000,0.0000000,0.0000000); //
  22782. CreateDynamicObject(2773,197.7978210,1722.4520260,1230.9719230,0.0000000,0.0000000,0.0000000); //
  22783. CreateDynamicObject(2773,195.9278710,1722.4520260,1230.9719230,0.0000000,0.0000000,0.0000000); //
  22784. CreateDynamicObject(2773,193.8578640,1722.4520260,1230.9719230,0.0000000,0.0000000,0.0000000); //
  22785. CreateDynamicObject(2773,191.8778990,1722.4520260,1230.9719230,0.0000000,0.0000000,0.0000000); //
  22786. CreateDynamicObject(2773,189.8679650,1722.4520260,1230.9719230,0.0000000,0.0000000,0.0000000); //
  22787. CreateDynamicObject(1704,205.6363370,1715.8189690,1230.4421380,0.0000000,0.0000000,-90.0000000); //
  22788. CreateDynamicObject(1704,205.6363370,1714.0794670,1230.4421380,0.0000000,0.0000000,-90.0000000); //
  22789. CreateDynamicObject(2346,204.1364130,1714.8452140,1230.4616690,0.0000000,0.0000000,270.0000000); //
  22790. CreateDynamicObject(2852,204.1497340,1714.3817130,1230.9722900,0.0000000,0.0000000,-5.3020940); //
  22791. CreateDynamicObject(19466,189.0863490,1725.4837640,1233.1520990,0.0000000,0.0000000,178.4300680); //
  22792. CreateDynamicObject(19466,202.3514090,1725.4803460,1233.1520990,0.0000000,0.0000000,178.4300680); //
  22793. CreateDynamicObject(19367,196.7736960,1732.6473380,1225.9726560,0.0000000,0.0000000,-180.0000000); //
  22794. CreateDynamicObject(19367,196.7437280,1729.4769280,1232.2023920,0.0000000,0.0000000,-180.0000000); //
  22795. CreateDynamicObject(19367,196.7637320,1729.4769280,1229.0927730,0.0000000,0.0000000,-180.0000000); //
  22796. CreateDynamicObject(19367,196.7637320,1732.6473380,1228.9826660,0.0000000,0.0000000,-180.0000000); //
  22797. CreateDynamicObject(19367,196.7437280,1732.6470940,1232.2023920,0.0000000,0.0000000,-180.0000000); //
  22798. CreateDynamicObject(19367,193.8237450,1732.6473380,1226.5524900,0.0000000,0.0000000,-180.0000000); //
  22799. CreateDynamicObject(19367,193.8337860,1732.6473380,1228.9826660,0.0000000,0.0000000,180.0000000); //
  22800. CreateDynamicObject(19367,193.8436730,1732.6470940,1232.2023920,0.0000000,0.0000000,-180.0000000); //
  22801. CreateDynamicObject(19367,193.8636770,1729.4769280,1232.2023920,0.0000000,0.0000000,-180.0000000); //
  22802. CreateDynamicObject(19367,193.8537750,1729.4769280,1229.0927730,0.0000000,0.0000000,-180.0000000); //
  22803. CreateDynamicObject(19367,192.3452600,1727.8286130,1232.2023920,0.0000000,0.0000000,90.0000000); //
  22804. CreateDynamicObject(2634,194.9219360,1734.8510740,1227.8919670,0.0000000,0.0000000,-122.2431560); //
  22805. CreateDynamicObject(19379,191.8568720,1733.0714110,1233.7686760,0.0000000,90.0000000,90.0000000); //
  22806. CreateDynamicObject(19367,195.2351680,1734.1983640,1231.1102290,0.0000000,0.0000000,90.0000000); //
  22807. CreateDynamicObject(19379,194.0768890,1737.5737300,1226.3156730,0.0000000,90.0000000,90.0000000); //
  22808. CreateDynamicObject(19367,196.7537380,1735.8372800,1228.1414790,0.0000000,0.0000000,-180.0000000); //
  22809. CreateDynamicObject(19367,198.2437890,1739.0070800,1228.1414790,0.0000000,0.0000000,-180.0000000); //
  22810. CreateDynamicObject(19367,198.2438500,1742.1669920,1228.1414790,0.0000000,0.0000000,-180.0000000); //
  22811. CreateDynamicObject(19367,193.7637020,1735.8372800,1228.1414790,0.0000000,0.0000000,-180.0000000); //
  22812. CreateDynamicObject(19367,192.2252500,1737.3492430,1228.1414790,0.0000000,0.0000000,90.0000000); //
  22813. CreateDynamicObject(19379,194.0768890,1747.9835200,1226.3156730,0.0000000,90.0000000,90.0000000); //
  22814. CreateDynamicObject(19379,194.0768890,1749.4938960,1229.8155510,0.0000000,90.0000000,90.0000000); //
  22815. CreateDynamicObject(19379,194.0768890,1739.5352780,1229.8155510,0.0000000,90.0000000,90.0000000); //
  22816. CreateDynamicObject(19367,195.2351680,1734.1978750,1232.2523190,0.0000000,0.0000000,90.0000000); //
  22817. CreateDynamicObject(19367,192.7851400,1734.2684320,1228.1414790,0.0000000,0.0000000,90.0000000); //
  22818. CreateDynamicObject(19367,197.9752340,1734.2684320,1228.1414790,0.0000000,0.0000000,90.0000000); //
  22819. CreateDynamicObject(19367,198.4252310,1737.3492430,1228.1414790,0.0000000,0.0000000,90.0000000); //
  22820. CreateDynamicObject(19367,192.2637480,1739.0070800,1228.1414790,0.0000000,0.0000000,-180.0000000); //
  22821. CreateDynamicObject(19367,192.2637480,1742.1866450,1228.1414790,0.0000000,0.0000000,-180.0000000); //
  22822. CreateDynamicObject(19367,192.2637480,1745.3469230,1228.1414790,0.0000000,0.0000000,-180.0000000); //
  22823. CreateDynamicObject(19367,198.2438500,1745.2769770,1228.1414790,0.0000000,0.0000000,-180.0000000); //
  22824. CreateDynamicObject(19367,196.7151480,1746.7908930,1228.1414790,0.0000000,0.0000000,90.0000000); //
  22825. CreateDynamicObject(19367,193.5450430,1746.7908930,1228.1414790,0.0000000,0.0000000,90.0000000); //
  22826. CreateDynamicObject(2007,197.7419580,1738.3524160,1226.4010000,0.0000000,0.0000000,270.0000000); //
  22827. CreateDynamicObject(2007,197.7419890,1738.3524160,1227.7905270,0.0000000,0.0000000,270.0000000); //
  22828. CreateDynamicObject(2007,197.7523650,1739.3117670,1227.7905270,0.0000000,0.0000000,270.0000000); //
  22829. CreateDynamicObject(2007,197.7523040,1739.3123770,1226.3909910,0.0000000,0.0000000,270.0000000); //
  22830. CreateDynamicObject(2007,197.7524870,1740.2917480,1227.7905270,0.0000000,0.0000000,270.0000000); //
  22831. CreateDynamicObject(2007,197.7626340,1740.2924800,1226.4010000,0.0000000,0.0000000,270.0000000); //
  22832. CreateDynamicObject(2007,197.7527310,1741.2718500,1227.7905270,0.0000000,0.0000000,270.0000000); //
  22833. CreateDynamicObject(2007,197.7629390,1741.2717280,1226.4003900,0.0000000,0.0000000,270.0000000); //
  22834. CreateDynamicObject(2007,197.7731930,1742.2617180,1226.3903800,0.0000000,0.0000000,270.0000000); //
  22835. CreateDynamicObject(2007,197.7732840,1743.2514640,1226.3903800,0.0000000,0.0000000,270.0000000); //
  22836. CreateDynamicObject(2007,197.7734830,1744.2216790,1226.3903800,0.0000000,0.0000000,270.0000000); //
  22837. CreateDynamicObject(2007,197.7738340,1745.2022700,1226.3903800,0.0000000,0.0000000,270.0000000); //
  22838. CreateDynamicObject(2007,197.7630310,1742.2618400,1227.7902830,0.0000000,0.0000000,270.0000000); //
  22839. CreateDynamicObject(2007,197.7633660,1743.2514640,1227.7902830,0.0000000,0.0000000,270.0000000); //
  22840. CreateDynamicObject(2007,197.7634880,1744.2218010,1227.7905270,0.0000000,0.0000000,270.0000000); //
  22841. CreateDynamicObject(2007,197.7638850,1745.1922600,1227.7904050,0.0000000,0.0000000,270.0000000); //
  22842. CreateDynamicObject(2007,192.8427120,1738.3803710,1226.4010000,0.0000000,0.0000000,90.0000000); //
  22843. CreateDynamicObject(2007,192.8427120,1739.3707270,1226.4010000,0.0000000,0.0000000,90.0000000); //
  22844. CreateDynamicObject(2007,192.8427120,1740.3509520,1226.4010000,0.0000000,0.0000000,90.0000000); //
  22845. CreateDynamicObject(2007,192.8427120,1741.3306880,1226.4010000,0.0000000,0.0000000,90.0000000); //
  22846. CreateDynamicObject(2007,192.8427120,1742.3107910,1226.4010000,0.0000000,0.0000000,90.0000000); //
  22847. CreateDynamicObject(2007,192.8427120,1743.2810050,1226.4010000,0.0000000,0.0000000,90.0000000); //
  22848. CreateDynamicObject(2007,192.8427120,1744.2506100,1226.4010000,0.0000000,0.0000000,90.0000000); //
  22849. CreateDynamicObject(2007,192.8427120,1745.2006830,1226.4010000,0.0000000,0.0000000,90.0000000); //
  22850. CreateDynamicObject(2007,192.8427120,1738.3803710,1227.8017570,0.0000000,0.0000000,90.0000000); //
  22851. CreateDynamicObject(2007,192.8427120,1739.3702390,1227.8017570,0.0000000,0.0000000,90.0000000); //
  22852. CreateDynamicObject(2007,192.8427120,1740.3503410,1227.8017570,0.0000000,0.0000000,90.0000000); //
  22853. CreateDynamicObject(2007,192.8427120,1741.3303220,1227.8017570,0.0000000,0.0000000,90.0000000); //
  22854. CreateDynamicObject(2007,192.8427120,1742.3101800,1227.8017570,0.0000000,0.0000000,90.0000000); //
  22855. CreateDynamicObject(2007,192.8427120,1743.2902830,1227.8017570,0.0000000,0.0000000,90.0000000); //
  22856. CreateDynamicObject(2007,192.8427120,1744.2401120,1227.8017570,0.0000000,0.0000000,90.0000000); //
  22857. CreateDynamicObject(2007,192.8427120,1745.2005610,1227.8017570,0.0000000,0.0000000,90.0000000); //
  22858. CreateDynamicObject(2007,193.3572080,1745.6674800,1226.4010000,0.0000000,0.0000000,0.0000000); //
  22859. CreateDynamicObject(2007,194.3371580,1745.6774900,1226.4010000,0.0000000,0.0000000,0.0000000); //
  22860. CreateDynamicObject(2007,195.3271020,1745.6676020,1226.4010000,0.0000000,0.0000000,0.0000000); //
  22861. CreateDynamicObject(2007,196.2971030,1745.6674800,1226.4010000,0.0000000,0.0000000,0.0000000); //
  22862. CreateDynamicObject(2007,197.2871550,1745.6574700,1226.4010000,0.0000000,0.0000000,0.0000000); //
  22863. CreateDynamicObject(2007,197.2871550,1745.6574700,1227.7912590,0.0000000,0.0000000,0.0000000); //
  22864. CreateDynamicObject(2007,196.2971640,1745.6574700,1227.7912590,0.0000000,0.0000000,0.0000000); //
  22865. CreateDynamicObject(2007,195.3271630,1745.6574700,1227.7912590,0.0000000,0.0000000,0.0000000); //
  22866. CreateDynamicObject(2007,194.3472130,1745.6574700,1227.7912590,0.0000000,0.0000000,0.0000000); //
  22867. CreateDynamicObject(2007,193.3671720,1745.6574700,1227.7912590,0.0000000,0.0000000,0.0000000); //
  22868. CreateDynamicObject(2007,192.3772270,1745.6674800,1226.4010000,0.0000000,0.0000000,0.0000000); //
  22869. CreateDynamicObject(2007,192.3871300,1745.6574700,1227.7912590,0.0000000,0.0000000,0.0000000); //
  22870. CreateDynamicObject(1550,193.2837820,1745.2631830,1226.7711180,0.0000000,0.0000000,1.4982850); //
  22871. CreateDynamicObject(1550,193.9535060,1745.2802730,1226.7711180,0.0000000,0.0000000,1.4982850); //
  22872. CreateDynamicObject(1550,193.3020470,1744.5629880,1226.7711180,0.0000000,0.0000000,1.4982850); //
  22873. CreateDynamicObject(1550,193.9696040,1744.6596670,1226.7711180,0.0000000,0.0000000,1.4982850); //
  22874. CreateDynamicObject(1550,194.6631770,1745.2980950,1226.7711180,0.0000000,0.0000000,1.4982850); //
  22875. CreateDynamicObject(1550,194.6593620,1744.6776120,1226.7711180,0.0000000,0.0000000,1.4982850); //
  22876. CreateDynamicObject(1550,195.3812250,1744.6164550,1226.7711180,0.0000000,0.0000000,1.4982850); //
  22877. CreateDynamicObject(1550,195.3630060,1745.3171380,1226.7711180,-23.0999940,0.5000000,1.4982850); //
  22878. CreateDynamicObject(19379,201.5671380,1701.8817130,1233.7687980,0.0000000,90.0000000,90.0000000); //
  22879. CreateDynamicObject(19379,191.9868160,1701.8803710,1233.7687980,0.0000000,90.0000000,90.0000000); //
  22880. CreateDynamicObject(19367,197.7936850,1707.2773430,1232.2023920,0.0000000,0.0000000,-180.0000000); //
  22881. CreateDynamicObject(19367,200.6237790,1710.4472650,1232.2023920,0.0000000,0.0000000,-180.0000000); //
  22882. CreateDynamicObject(19367,200.6237790,1707.3071280,1232.2023920,0.0000000,0.0000000,-180.0000000); //
  22883. CreateDynamicObject(2165,204.4668120,1708.0975340,1230.4715570,0.0000000,0.0000000,90.0000000); //
  22884. CreateDynamicObject(1671,205.4828180,1708.5615230,1230.9018550,0.0000000,0.0000000,-90.0000000); //
  22885. CreateDynamicObject(1811,203.1873320,1708.6151120,1230.9218750,0.0000000,0.0000000,179.6782070); //
  22886. CreateDynamicObject(1502,202.2334440,1711.9927970,1230.4715570,0.0000000,0.0000000,179.2057340); //
  22887. CreateDynamicObject(2007,205.8848410,1710.1146240,1230.4616690,0.0000000,0.0000000,270.0000000); //
  22888. CreateDynamicObject(2007,205.8848410,1709.1243890,1230.4616690,0.0000000,0.0000000,270.0000000); //
  22889. CreateDynamicObject(2007,205.8848410,1708.1436760,1230.4616690,0.0000000,0.0000000,270.0000000); //
  22890. CreateDynamicObject(2007,205.8848410,1707.1638180,1230.4616690,0.0000000,0.0000000,270.0000000); //
  22891. CreateDynamicObject(2608,202.3477020,1705.9230950,1231.9626460,0.0000000,0.0000000,180.0000000); //
  22892. CreateDynamicObject(2608,204.7976530,1705.9230950,1231.9626460,0.0000000,0.0000000,180.0000000); //
  22893. CreateDynamicObject(1742,200.6117850,1707.8582760,1230.4420160,0.0000000,0.0000000,90.0000000); //
  22894. CreateDynamicObject(1886,205.7757720,1712.4664300,1233.9833980,0.0000000,0.0000000,235.3553310); //
  22895. CreateDynamicObject(1742,200.6117850,1709.2985830,1230.4420160,0.0000000,0.0000000,90.0000000); //
  22896. CreateDynamicObject(1886,205.8392790,1727.3499750,1234.0135490,0.0000000,0.0000000,-28.9344120); //
  22897. CreateDynamicObject(2961,206.1583090,1717.3371580,1232.1329340,0.0000000,0.0000000,-90.0000000); //
  22898. CreateDynamicObject(2690,200.2171630,1712.1156000,1231.7927240,0.0000000,0.0000000,178.7670890); //
  22899. CreateDynamicObject(1713,199.2151940,1712.5573730,1230.4720450,0.0000000,0.0000000,180.0000000); //
  22900. CreateDynamicObject(19395,192.2829430,1711.9741210,1232.2232660,0.0000000,0.0000000,90.0000000); //
  22901. CreateDynamicObject(19367,197.7936850,1710.4378660,1232.2023920,0.0000000,0.0000000,-180.0000000); //
  22902. CreateDynamicObject(1742,191.4119110,1709.2985830,1230.4420160,0.0000000,0.0000000,90.0000000); //
  22903. CreateDynamicObject(1742,191.4018240,1707.8582760,1230.4420160,0.0000000,0.0000000,90.0000000); //
  22904. CreateDynamicObject(2608,193.3277430,1705.9230950,1231.9626460,0.0000000,0.0000000,180.0000000); //
  22905. CreateDynamicObject(2608,195.8977500,1705.9230950,1231.9626460,0.0000000,0.0000000,180.0000000); //
  22906. CreateDynamicObject(2165,195.6570890,1708.0975340,1230.4715570,0.0000000,0.0000000,90.0000000); //
  22907. CreateDynamicObject(2007,197.3048850,1710.1146240,1230.4616690,0.0000000,0.0000000,270.0000000); //
  22908. CreateDynamicObject(2007,197.3048850,1709.1243890,1230.4616690,0.0000000,0.0000000,270.0000000); //
  22909. CreateDynamicObject(2007,197.3048850,1708.1241450,1230.4616690,0.0000000,0.0000000,270.0000000); //
  22910. CreateDynamicObject(2007,197.3048850,1707.1439200,1230.4616690,0.0000000,0.0000000,270.0000000); //
  22911. CreateDynamicObject(1671,196.6629180,1708.5615230,1230.9018550,0.0000000,0.0000000,-90.0000000); //
  22912. CreateDynamicObject(1811,194.5475460,1708.6640620,1230.9218750,0.0000000,0.0000000,179.6782070); //
  22913. CreateDynamicObject(1502,193.0331260,1712.0292960,1230.4715570,0.0000000,0.0000000,179.2057340); //
  22914. CreateDynamicObject(1704,196.2358850,1712.4985350,1230.4313960,0.0000000,0.0000000,180.0000000); //
  22915. CreateDynamicObject(1704,194.6858060,1712.4985350,1230.4313960,0.0000000,0.0000000,180.0000000); //
  22916. CreateDynamicObject(1742,204.1006310,1711.9713130,1230.4420160,0.0000000,0.0000000,180.0000000); //
  22917. CreateDynamicObject(1704,190.4158320,1712.4985350,1230.4313960,0.0000000,0.0000000,180.0000000); //
  22918. CreateDynamicObject(1704,188.5358120,1712.4985350,1230.4313960,0.0000000,0.0000000,180.0000000); //
  22919. CreateDynamicObject(1713,187.0903470,1717.4448240,1230.4720450,0.0000000,0.0000000,90.0000000); //
  22920. CreateDynamicObject(963,186.5992430,1720.8250730,1231.4919430,90.0000000,0.0000000,90.0000000); //
  22921. // Hospital map
  22922. CreateDynamicObject(19379,2516.6882320,-1711.1119380,2103.6499020,0.0000000,90.0000000,0.0000000); //
  22923. CreateDynamicObject(19379,2516.6882320,-1701.5023190,2103.6499020,0.0000000,90.0000000,0.0000000); //
  22924. CreateDynamicObject(19379,2506.2287590,-1711.1119380,2103.6499020,0.0000000,90.0000000,0.0000000); //
  22925. CreateDynamicObject(19379,2506.2341300,-1701.5023190,2103.6499020,0.0000000,90.0000000,0.0000000); //
  22926. CreateDynamicObject(19358,2501.1433100,-1698.3096920,2105.4165030,0.0000000,0.0000000,0.0000000); //
  22927. CreateDynamicObject(19358,2501.1433100,-1701.4598380,2105.4165030,0.0000000,0.0000000,0.0000000); //
  22928. CreateDynamicObject(19358,2501.1433100,-1707.7290030,2105.4165030,0.0000000,0.0000000,0.0000000); //
  22929. CreateDynamicObject(19358,2501.1433100,-1704.5781250,2105.4165030,0.0000000,0.0000000,0.0000000); //
  22930. CreateDynamicObject(19358,2501.1433100,-1710.8990470,2105.4165030,0.0000000,0.0000000,0.0000000); //
  22931. CreateDynamicObject(19358,2501.1433100,-1714.0694580,2105.4165030,0.0000000,0.0000000,0.0000000); //
  22932. CreateDynamicObject(1569,2501.1892080,-1707.7211910,2103.7248530,0.0000000,0.0000000,90.0000000); //
  22933. CreateDynamicObject(1569,2501.1892080,-1704.7503660,2103.7248530,0.0000000,0.0000000,-90.0000000); //
  22934. CreateDynamicObject(19379,2506.2341300,-1701.5023190,2107.1826170,0.0000000,90.0000000,0.0000000); //
  22935. CreateDynamicObject(19379,2506.2341300,-1711.0618890,2107.1826170,0.0000000,90.0000000,0.0000000); //
  22936. CreateDynamicObject(19379,2516.6469720,-1711.0618890,2107.1826170,0.0000000,90.0000000,0.0000000); //
  22937. CreateDynamicObject(19379,2516.6469720,-1701.4824210,2107.1826170,0.0000000,90.0000000,0.0000000); //
  22938. CreateDynamicObject(19358,2506.6308590,-1699.0745840,2105.4160150,0.0000000,0.0000000,90.0000000); //
  22939. CreateDynamicObject(19358,2503.4597160,-1699.0745840,2105.4160150,0.0000000,0.0000000,90.0000000); //
  22940. CreateDynamicObject(19450,2503.4250480,-1713.4067380,2105.4165030,0.0000000,0.0000000,90.0000000); //
  22941. CreateDynamicObject(19388,2509.8281250,-1713.3765860,2105.4169920,0.0000000,0.0000000,90.0000000); //
  22942. CreateDynamicObject(19450,2517.7238760,-1720.6984860,2105.4165030,0.0000000,0.0000000,0.0000000); //
  22943. CreateDynamicObject(19450,2512.0747070,-1718.2618400,2105.4165030,0.0000000,0.0000000,0.0000000); //
  22944. CreateDynamicObject(19450,2517.7224120,-1701.4890130,2105.4165030,0.0000000,0.0000000,0.0000000); //
  22945. CreateDynamicObject(19450,2517.7238760,-1711.1087640,2105.4165030,0.0000000,0.0000000,0.0000000); //
  22946. CreateDynamicObject(1704,2501.7597650,-1703.8385000,2103.6748040,0.0000000,0.0000000,90.0000000); //
  22947. CreateDynamicObject(1704,2501.7597650,-1701.5883780,2103.6748040,0.0000000,0.0000000,90.0000000); //
  22948. CreateDynamicObject(1704,2501.7597650,-1709.5299070,2103.6748040,0.0000000,0.0000000,90.0000000); //
  22949. CreateDynamicObject(1704,2501.7597650,-1711.8608390,2103.6748040,0.0000000,0.0000000,90.0000000); //
  22950. CreateDynamicObject(19388,2508.1528320,-1711.7366940,2105.4165030,0.0000000,0.0000000,0.0000000); //
  22951. CreateDynamicObject(19388,2508.1628410,-1700.7659910,2105.4165030,0.0000000,0.0000000,0.0000000); //
  22952. CreateDynamicObject(19358,2509.8408200,-1702.2832030,2105.4160150,0.0000000,0.0000000,90.0000000); //
  22953. CreateDynamicObject(19358,2509.8408200,-1710.2252190,2105.4160150,0.0000000,0.0000000,90.0000000); //
  22954. CreateDynamicObject(19388,2516.0520010,-1702.2851560,2105.4169920,0.0000000,0.0000000,90.0000000); //
  22955. CreateDynamicObject(19358,2513.0317380,-1702.2832030,2105.4160150,0.0000000,0.0000000,90.0000000); //
  22956. CreateDynamicObject(19358,2513.0317380,-1710.2226560,2105.4160150,0.0000000,0.0000000,90.0000000); //
  22957. CreateDynamicObject(19388,2516.0520010,-1710.2246090,2105.4169920,0.0000000,0.0000000,90.0000000); //
  22958. CreateDynamicObject(1671,2510.4946280,-1707.6137690,2104.1655270,0.0000000,0.0000000,-90.4175560); //
  22959. CreateDynamicObject(1671,2510.4946280,-1706.2337640,2104.1655270,0.0000000,0.0000000,-90.4175560); //
  22960. CreateDynamicObject(1671,2510.5239250,-1704.9739990,2104.1655270,0.0000000,0.0000000,-90.4175560); //
  22961. CreateDynamicObject(2190,2508.8859860,-1704.7230220,2104.7358390,0.0000000,0.0000000,90.0000000); //
  22962. CreateDynamicObject(2190,2508.8859860,-1705.9930410,2104.7358390,0.0000000,0.0000000,90.0000000); //
  22963. CreateDynamicObject(18070,2510.9077140,-1706.2512200,2104.2355950,0.0000000,0.0000000,270.0000000); //
  22964. CreateDynamicObject(2190,2508.8859860,-1707.4334710,2104.7358390,0.0000000,0.0000000,90.0000000); //
  22965. CreateDynamicObject(2066,2517.0820310,-1703.4481200,2103.7231440,0.0000000,0.0000000,-90.0000000); //
  22966. CreateDynamicObject(2066,2517.0820310,-1702.8876950,2103.7231440,0.0000000,0.0000000,-90.0000000); //
  22967. CreateDynamicObject(2066,2517.0820310,-1704.0086660,2103.7231440,0.0000000,0.0000000,-90.0000000); //
  22968. CreateDynamicObject(2066,2517.0820310,-1704.5487060,2103.7231440,0.0000000,0.0000000,-90.0000000); //
  22969. CreateDynamicObject(2066,2517.0820310,-1709.7690420,2103.7231440,0.0000000,0.0000000,-90.0000000); //
  22970. CreateDynamicObject(2066,2517.0820310,-1709.2186270,2103.7231440,0.0000000,0.0000000,-90.0000000); //
  22971. CreateDynamicObject(2066,2517.0820310,-1708.6585690,2103.7231440,0.0000000,0.0000000,-90.0000000); //
  22972. CreateDynamicObject(2066,2517.0820310,-1708.0994870,2103.7231440,0.0000000,0.0000000,-90.0000000); //
  22973. CreateDynamicObject(2199,2517.3588860,-1706.1834710,2103.7451170,0.0000000,0.0000000,270.0000000); //
  22974. CreateDynamicObject(19388,2509.8281250,-1699.0742180,2105.4169920,0.0000000,0.0000000,90.0000000); //
  22975. CreateDynamicObject(19358,2500.2807610,-1699.0745840,2105.4160150,0.0000000,0.0000000,90.0000000); //
  22976. CreateDynamicObject(19358,2513.0202630,-1699.0745840,2105.4160150,0.0000000,0.0000000,90.0000000); //
  22977. CreateDynamicObject(19388,2516.0476070,-1699.0742180,2105.4169920,0.0000000,0.0000000,90.0000000); //
  22978. CreateDynamicObject(19379,2506.2341300,-1691.9427490,2103.6499020,0.0000000,90.0000000,0.0000000); //
  22979. CreateDynamicObject(19379,2516.6882320,-1691.9420160,2103.6499020,0.0000000,90.0000000,0.0000000); //
  22980. CreateDynamicObject(19450,2517.7224120,-1691.9107660,2105.4165030,0.0000000,0.0000000,0.0000000); //
  22981. CreateDynamicObject(19450,2501.1418450,-1691.9107660,2105.4165030,0.0000000,0.0000000,0.0000000); //
  22982. CreateDynamicObject(19379,2506.2341300,-1691.9223630,2107.1826170,0.0000000,90.0000000,0.0000000); //
  22983. CreateDynamicObject(19379,2516.6469720,-1691.9200430,2107.1826170,0.0000000,90.0000000,0.0000000); //
  22984. CreateDynamicObject(19450,2505.9541010,-1687.1076660,2105.4165030,0.0000000,0.0000000,90.0000000); //
  22985. CreateDynamicObject(19450,2515.5532220,-1687.1075430,2105.4165030,0.0000000,0.0000000,90.0000000); //
  22986. CreateDynamicObject(19450,2512.0747070,-1694.2009270,2105.4165030,0.0000000,0.0000000,0.0000000); //
  22987. CreateDynamicObject(19450,2506.2338860,-1694.2009270,2105.4165030,0.0000000,0.0000000,0.0000000); //
  22988. CreateDynamicObject(1800,2505.4172360,-1690.1856680,2103.6447750,0.0000000,0.0000000,-90.0000000); //
  22989. CreateDynamicObject(1800,2505.3771970,-1692.6860350,2103.6447750,0.0000000,0.0000000,-90.0000000); //
  22990. CreateDynamicObject(1800,2505.3471670,-1695.2764890,2103.6447750,0.0000000,0.0000000,-90.0000000); //
  22991. CreateDynamicObject(1800,2505.3571770,-1698.0367430,2103.6447750,0.0000000,0.0000000,-90.0000000); //
  22992. CreateDynamicObject(2845,2508.1633300,-1697.2145990,2103.7348630,0.0000000,0.0000000,97.2192760); //
  22993. CreateDynamicObject(2846,2508.0500480,-1694.8189690,2103.7648920,0.0000000,0.0000000,89.7618780); //
  22994. CreateDynamicObject(2843,2508.0983880,-1692.1384270,2103.7448730,0.0000000,0.0000000,89.7618780); //
  22995. CreateDynamicObject(2132,2509.2404780,-1687.6722410,2103.7248530,0.0000000,0.0000000,0.0000000); //
  22996. CreateDynamicObject(19450,2512.0747070,-1684.6018060,2105.4165030,0.0000000,0.0000000,0.0000000); //
  22997. CreateDynamicObject(19450,2506.2338860,-1684.5908200,2105.4165030,0.0000000,0.0000000,0.0000000); //
  22998. CreateDynamicObject(1417,2509.7429190,-1687.4229730,2105.4062500,0.0000000,0.0000000,0.2321950); //
  22999. CreateDynamicObject(2131,2507.0119620,-1687.5440670,2103.6647940,0.0000000,0.0000000,0.0000000); //
  23000. CreateDynamicObject(1337,2511.3764640,-1687.7445060,2104.3754880,0.0000000,0.0000000,-0.2307840); //
  23001. CreateDynamicObject(1800,2511.3286130,-1698.0367430,2103.6447750,0.0000000,0.0000000,-90.0000000); //
  23002. CreateDynamicObject(1800,2511.2888180,-1695.2764890,2103.6447750,0.0000000,0.0000000,-90.0000000); //
  23003. CreateDynamicObject(1800,2511.2783200,-1692.6860350,2103.6447750,0.0000000,0.0000000,-90.0000000); //
  23004. CreateDynamicObject(1800,2511.2880850,-1690.1856680,2103.6447750,0.0000000,0.0000000,-90.0000000); //
  23005. CreateDynamicObject(2131,2512.8122550,-1687.5440670,2103.6647940,0.0000000,0.0000000,0.0000000); //
  23006. CreateDynamicObject(2132,2515.0815420,-1687.6722410,2103.7248530,0.0000000,0.0000000,0.0000000); //
  23007. CreateDynamicObject(1417,2515.5742180,-1687.3999020,2105.4062500,0.0000000,0.0000000,0.2321950); //
  23008. CreateDynamicObject(1337,2517.2189940,-1687.7680660,2104.3754880,0.0000000,0.0000000,-0.2307840); //
  23009. CreateDynamicObject(2845,2514.1508780,-1697.1512450,2103.7348630,0.0000000,0.0000000,97.2192760); //
  23010. CreateDynamicObject(2846,2514.0202630,-1694.6436760,2103.7648920,0.0000000,0.0000000,89.7618780); //
  23011. CreateDynamicObject(2843,2514.0402830,-1692.1029050,2103.7448730,0.0000000,0.0000000,89.7618780); //
  23012. CreateDynamicObject(19358,2513.0317380,-1713.3729240,2105.4160150,0.0000000,0.0000000,90.0000000); //
  23013. CreateDynamicObject(19388,2516.1013180,-1713.3762200,2105.4169920,0.0000000,0.0000000,90.0000000); //
  23014. CreateDynamicObject(19379,2506.2287590,-1720.7119140,2103.6499020,0.0000000,90.0000000,0.0000000); //
  23015. CreateDynamicObject(19379,2516.6469720,-1720.6434320,2107.1826170,0.0000000,90.0000000,0.0000000); //
  23016. CreateDynamicObject(19379,2506.2553710,-1720.6434320,2107.1826170,0.0000000,90.0000000,0.0000000); //
  23017. CreateDynamicObject(19379,2516.6882320,-1720.7131340,2103.6499020,0.0000000,90.0000000,0.0000000); //
  23018. CreateDynamicObject(19450,2512.0725090,-1727.8636470,2105.4165030,0.0000000,0.0000000,0.0000000); //
  23019. CreateDynamicObject(19450,2501.1428220,-1720.4716790,2105.4165030,0.0000000,0.0000000,0.0000000); //
  23020. CreateDynamicObject(1800,2511.2084960,-1714.4691160,2103.6447750,0.0000000,0.0000000,-90.0000000); //
  23021. CreateDynamicObject(1800,2511.2084960,-1717.0183100,2103.6447750,0.0000000,0.0000000,-90.0000000); //
  23022. CreateDynamicObject(1800,2511.2084960,-1719.6589350,2103.6447750,0.0000000,0.0000000,-90.0000000); //
  23023. CreateDynamicObject(1800,2511.2084960,-1722.2691650,2103.6447750,0.0000000,0.0000000,-90.0000000); //
  23024. CreateDynamicObject(19450,2515.5532220,-1725.5183100,2105.4165030,0.0000000,0.0000000,90.0000000); //
  23025. CreateDynamicObject(1337,2517.0710440,-1724.9570310,2104.3754880,0.0000000,0.0000000,-180.0000000); //
  23026. CreateDynamicObject(2132,2515.9624020,-1724.9178460,2103.7248530,0.0000000,0.0000000,-180.0000000); //
  23027. CreateDynamicObject(1417,2515.5300290,-1725.3859860,2105.4062500,0.0000000,0.0000000,180.0000000); //
  23028. CreateDynamicObject(2131,2513.8022460,-1724.9726560,2103.6647940,0.0000000,0.0000000,180.0000000); //
  23029. CreateDynamicObject(19450,2505.9526360,-1725.5183100,2105.4165030,0.0000000,0.0000000,90.0000000); //
  23030. CreateDynamicObject(19450,2506.0388180,-1718.2618400,2105.4165030,0.0000000,0.0000000,0.0000000); //
  23031. CreateDynamicObject(19450,2506.0388180,-1727.8914790,2105.4165030,0.0000000,0.0000000,0.0000000); //
  23032. CreateDynamicObject(1800,2505.1352530,-1714.4691160,2103.6447750,0.0000000,0.0000000,-90.0000000); //
  23033. CreateDynamicObject(1800,2505.1650390,-1717.0183100,2103.6447750,0.0000000,0.0000000,-90.0000000); //
  23034. CreateDynamicObject(1800,2505.1860350,-1719.6589350,2103.6447750,0.0000000,0.0000000,-90.0000000); //
  23035. CreateDynamicObject(1800,2505.1965330,-1722.2691650,2103.6447750,0.0000000,0.0000000,-90.0000000); //
  23036. CreateDynamicObject(2131,2508.1398920,-1724.9726560,2103.6647940,0.0000000,0.0000000,180.0000000); //
  23037. CreateDynamicObject(2132,2510.3410640,-1724.9178460,2103.7248530,0.0000000,0.0000000,-180.0000000); //
  23038. CreateDynamicObject(1337,2511.4008780,-1724.9570310,2104.3754880,0.0000000,0.0000000,-180.0000000); //
  23039. CreateDynamicObject(1417,2509.8701170,-1725.3859860,2105.4062500,0.0000000,0.0000000,180.0000000); //
  23040. CreateDynamicObject(1523,2510.5837400,-1713.3168940,2103.6347650,0.0000000,0.0000000,180.0000000); //
  23041. CreateDynamicObject(1523,2516.8366690,-1713.3669430,2103.6347650,0.0000000,0.0000000,180.0000000); //
  23042. CreateDynamicObject(1523,2515.2414550,-1699.0969230,2103.6347650,0.0000000,0.0000000,0.0000000); //
  23043. CreateDynamicObject(1523,2509.0278320,-1699.0969230,2103.6347650,0.0000000,0.0000000,0.0000000); //
  23044. CreateDynamicObject(1523,2508.0637200,-1710.9403070,2103.6848140,0.0000000,0.0000000,-90.0000000); //
  23045. CreateDynamicObject(1523,2508.0732420,-1699.9881590,2103.6848140,0.0000000,0.0000000,-90.0000000); //
  23046. CreateDynamicObject(1704,2503.3427730,-1699.7674560,2103.6748040,0.0000000,0.0000000,0.0000000); //
  23047. CreateDynamicObject(1704,2505.3842770,-1699.7705070,2103.6748040,0.0000000,0.0000000,0.0000000); //
  23048. CreateDynamicObject(1704,2505.9648430,-1712.8300780,2103.6748040,0.0000000,0.0000000,180.0000000); //
  23049. CreateDynamicObject(1704,2504.0146480,-1712.8300780,2103.6748040,0.0000000,0.0000000,180.0000000); //
  23050. CreateDynamicObject(2961,2501.2487790,-1704.4854730,2105.2763670,0.0000000,0.0000000,90.0000000); //
  23051. CreateDynamicObject(2690,2504.8154290,-1699.2531730,2105.3662100,0.0000000,0.0000000,0.0000000); //
  23052. CreateDynamicObject(1997,2511.5332030,-1721.0379630,2103.6948240,0.0000000,0.0000000,180.0000000); //
  23053. CreateDynamicObject(1997,2511.5332030,-1718.0487060,2103.6948240,0.0000000,0.0000000,180.0000000); //
  23054. CreateDynamicObject(1997,2517.1733390,-1695.1639400,2103.6948240,0.0000000,0.0000000,180.0000000); //
  23055. CreateDynamicObject(1997,2517.1833490,-1691.7325430,2103.6948240,0.0000000,0.0000000,180.0000000); //
  23056. CreateDynamicObject(1997,2511.4997550,-1695.1639400,2103.6948240,0.0000000,0.0000000,180.0000000); //
  23057. CreateDynamicObject(1997,2511.4685050,-1691.7325430,2103.6948240,0.0000000,0.0000000,180.0000000); //
  23058. CreateDynamicObject(1997,2517.1564940,-1718.0487060,2103.6948240,0.0000000,0.0000000,180.0000000); //
  23059. CreateDynamicObject(1997,2517.0854490,-1721.0379630,2103.6948240,0.0000000,0.0000000,180.0000000); //
  23060. //lannister LSPD interior
  23061. //Objects////////////////////////////////////////////////////////////////////////////////////////////////////////
  23062. tmpobjid = CreateDynamicObject(19448,1625.552,1596.649,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23063. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23064. tmpobjid = CreateDynamicObject(19448,1624.012,1587.018,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23065. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23066. tmpobjid = CreateDynamicObject(19448,1620.512,1587.018,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23067. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23068. tmpobjid = CreateDynamicObject(19448,1617.013,1587.018,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23069. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23070. tmpobjid = CreateDynamicObject(19448,1627.503,1587.018,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23071. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23072. tmpobjid = CreateDynamicObject(19448,1622.052,1596.649,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23073. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23074. tmpobjid = CreateDynamicObject(19448,1618.553,1596.649,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23075. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23076. tmpobjid = CreateDynamicObject(19448,1625.552,1577.385,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23077. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23078. tmpobjid = CreateDynamicObject(19448,1622.052,1577.399,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23079. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23080. tmpobjid = CreateDynamicObject(19448,1618.553,1577.390,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23081. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23082. tmpobjid = CreateDynamicObject(19459,1629.311,1587.010,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23083. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23084. tmpobjid = CreateDynamicObject(948,1628.776,1589.037,9.816,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23085. SetDynamicObjectMaterial(tmpobjid, 1, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23086. SetDynamicObjectMaterial(tmpobjid, 3, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23087. tmpobjid = CreateDynamicObject(948,1628.776,1584.995,9.816,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23088. SetDynamicObjectMaterial(tmpobjid, 0, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23089. SetDynamicObjectMaterial(tmpobjid, 1, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23090. SetDynamicObjectMaterial(tmpobjid, 3, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23091. tmpobjid = CreateDynamicObject(2818,1628.014,1587.561,9.826,0.000,0.000,-90.199,-1,-1,-1,300.000,300.000);
  23092. SetDynamicObjectMaterial(tmpobjid, 0, 19352, "classy", "moustache01", 0x00000000);
  23093. tmpobjid = CreateDynamicObject(19482,1629.309,1589.078,9.849,0.000,-90.199,0.000,-1,-1,-1,300.000,300.000);
  23094. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23095. SetDynamicObjectMaterialText(tmpobjid, 0, "WELCOME", 90, "Calibri", 20, 0, 0xFFFFFFFF, 0x00000000, 0);
  23096. tmpobjid = CreateDynamicObject(19482,1629.537,1589.359,9.838,0.000,-89.400,0.000,-1,-1,-1,300.000,300.000);
  23097. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23098. SetDynamicObjectMaterialText(tmpobjid, 0, "L.S.P.D", 80, "Calibri", 20, 0, 0xFFFFFFFF, 0x00000000, 0);
  23099. tmpobjid = CreateDynamicObject(19459,1627.371,1596.651,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23100. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23101. tmpobjid = CreateDynamicObject(19459,1632.100,1591.890,11.546,0.000,0.000,-90.299,-1,-1,-1,300.000,300.000);
  23102. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23103. tmpobjid = CreateDynamicObject(19459,1632.100,1582.118,11.546,0.000,0.000,-90.099,-1,-1,-1,300.000,300.000);
  23104. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23105. tmpobjid = CreateDynamicObject(19459,1627.371,1577.380,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23106. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23107. tmpobjid = CreateDynamicObject(19459,1616.729,1577.380,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23108. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23109. tmpobjid = CreateDynamicObject(19459,1616.729,1596.651,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23110. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23111. tmpobjid = CreateDynamicObject(19459,1612.776,1591.872,11.546,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000);
  23112. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23113. tmpobjid = CreateDynamicObject(19459,1612.794,1582.270,11.546,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000);
  23114. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23115. tmpobjid = CreateDynamicObject(19459,1615.538,1586.981,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23116. SetDynamicObjectMaterial(tmpobjid, 0, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23117. tmpobjid = CreateDynamicObject(19930,1617.362,1582.634,9.836,0.000,0.000,-89.799,-1,-1,-1,300.000,300.000);
  23118. SetDynamicObjectMaterial(tmpobjid, 1, 18641, "flashlight1", "metalblack1-2", 0x00000000);
  23119. tmpobjid = CreateDynamicObject(19930,1619.369,1582.551,9.836,0.000,0.000,90.099,-1,-1,-1,300.000,300.000);
  23120. SetDynamicObjectMaterial(tmpobjid, 1, 18641, "flashlight1", "metalblack1-2", 0x00000000);
  23121. tmpobjid = CreateDynamicObject(19930,1616.181,1582.630,9.836,0.000,0.000,-89.799,-1,-1,-1,300.000,300.000);
  23122. SetDynamicObjectMaterial(tmpobjid, 1, 18641, "flashlight1", "metalblack1-2", 0x00000000);
  23123. tmpobjid = CreateDynamicObject(19925,1620.389,1582.559,9.836,0.000,0.000,90.200,-1,-1,-1,300.000,300.000);
  23124. SetDynamicObjectMaterial(tmpobjid, 1, 18641, "flashlight1", "metalblack1-2", 0x00000000);
  23125. tmpobjid = CreateDynamicObject(19929,1620.384,1584.419,9.836,0.000,0.000,179.999,-1,-1,-1,300.000,300.000);
  23126. SetDynamicObjectMaterial(tmpobjid, 1, 18641, "flashlight1", "metalblack1-2", 0x00000000);
  23127. tmpobjid = CreateDynamicObject(19929,1620.384,1587.269,9.836,0.000,0.000,179.999,-1,-1,-1,300.000,300.000);
  23128. SetDynamicObjectMaterial(tmpobjid, 1, 18641, "flashlight1", "metalblack1-2", 0x00000000);
  23129. tmpobjid = CreateDynamicObject(19930,1620.391,1590.468,9.836,0.000,0.000,179.699,-1,-1,-1,300.000,300.000);
  23130. SetDynamicObjectMaterial(tmpobjid, 1, 18641, "flashlight1", "metalblack1-2", 0x00000000);
  23131. tmpobjid = CreateDynamicObject(19930,1617.343,1591.526,9.836,0.000,0.000,89.600,-1,-1,-1,300.000,300.000);
  23132. SetDynamicObjectMaterial(tmpobjid, 1, 18641, "flashlight1", "metalblack1-2", 0x00000000);
  23133. tmpobjid = CreateDynamicObject(19925,1620.394,1591.488,9.836,0.000,0.000,179.799,-1,-1,-1,300.000,300.000);
  23134. SetDynamicObjectMaterial(tmpobjid, 1, 18641, "flashlight1", "metalblack1-2", 0x00000000);
  23135. tmpobjid = CreateDynamicObject(19930,1619.375,1591.493,9.836,0.000,0.000,-90.399,-1,-1,-1,300.000,300.000);
  23136. SetDynamicObjectMaterial(tmpobjid, 1, 18641, "flashlight1", "metalblack1-2", 0x00000000);
  23137. tmpobjid = CreateDynamicObject(19930,1620.386,1589.287,9.836,0.000,0.000,179.699,-1,-1,-1,300.000,300.000);
  23138. SetDynamicObjectMaterial(tmpobjid, 1, 18641, "flashlight1", "metalblack1-2", 0x00000000);
  23139. tmpobjid = CreateDynamicObject(19930,1616.172,1591.536,9.836,0.000,0.000,89.600,-1,-1,-1,300.000,300.000);
  23140. SetDynamicObjectMaterial(tmpobjid, 1, 18641, "flashlight1", "metalblack1-2", 0x00000000);
  23141. tmpobjid = CreateDynamicObject(19482,1620.748,1587.221,10.276,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23142. SetDynamicObjectMaterial(tmpobjid, 0, 12853, "cunte_gas01", "postcards_law", 0x00000000);
  23143. SetDynamicObjectMaterialText(tmpobjid, 0, "RECEPTION", 80, "Calibri", 20, 0, 0xFFFFFFFF, 0x00000000, 1);
  23144. tmpobjid = CreateDynamicObject(2048,1615.631,1585.605,11.836,0.000,0.000,90.000,-1,-1,-1,300.000,300.000);
  23145. SetDynamicObjectMaterial(tmpobjid, 0, 12853, "cunte_gas01", "starspangban1_256", 0x00000000);
  23146. tmpobjid = CreateDynamicObject(19482,1615.638,1587.467,11.686,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23147. SetDynamicObjectMaterialText(tmpobjid, 0, "Los Santos", 50, "Calibri", 20, 0, 0xFFFFFFFF, 0x00000000, 0);
  23148. tmpobjid = CreateDynamicObject(19482,1615.636,1589.422,11.166,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23149. SetDynamicObjectMaterialText(tmpobjid, 0, "Police Department", 80, "Calibri", 20, 0, 0xFFFFFFFF, 0x00000000, 0);
  23150. tmpobjid = CreateDynamicObject(2190,1620.731,1589.372,10.756,0.000,0.000,-89.199,-1,-1,-1,300.000,300.000);
  23151. SetDynamicObjectMaterial(tmpobjid, 0, 19627, "wrench1", "wrench1", 0x00000000);
  23152. tmpobjid = CreateDynamicObject(2190,1620.678,1585.991,10.756,0.000,0.000,-90.699,-1,-1,-1,300.000,300.000);
  23153. SetDynamicObjectMaterial(tmpobjid, 0, 19627, "wrench1", "wrench1", 0x00000000);
  23154. tmpobjid = CreateDynamicObject(19807,1620.348,1589.997,10.816,0.000,0.000,-80.299,-1,-1,-1,300.000,300.000);
  23155. SetDynamicObjectMaterial(tmpobjid, 0, 19627, "wrench1", "wrench1", 0x00000000);
  23156. SetDynamicObjectMaterial(tmpobjid, 1, 19627, "wrench1", "wrench1", 0x00000000);
  23157. tmpobjid = CreateDynamicObject(19807,1620.230,1586.650,10.816,0.000,0.000,-62.999,-1,-1,-1,300.000,300.000);
  23158. SetDynamicObjectMaterial(tmpobjid, 0, 19627, "wrench1", "wrench1", 0x00000000);
  23159. SetDynamicObjectMaterial(tmpobjid, 1, 19627, "wrench1", "wrench1", 0x00000000);
  23160. tmpobjid = CreateDynamicObject(19386,1618.416,1594.695,11.536,0.000,0.000,-90.099,-1,-1,-1,300.000,300.000);
  23161. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23162. tmpobjid = CreateDynamicObject(19459,1624.802,1594.694,11.536,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000);
  23163. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23164. tmpobjid = CreateDynamicObject(2605,1625.155,1595.835,10.226,0.000,0.000,90.399,-1,-1,-1,300.000,300.000);
  23165. SetDynamicObjectMaterial(tmpobjid, 2, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23166. SetDynamicObjectMaterial(tmpobjid, 4, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23167. SetDynamicObjectMaterial(tmpobjid, 5, 19627, "wrench1", "wrench1", 0x00000000);
  23168. tmpobjid = CreateDynamicObject(2356,1626.651,1595.634,9.836,0.000,0.000,73.300,-1,-1,-1,300.000,300.000);
  23169. SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23170. tmpobjid = CreateDynamicObject(1722,1624.368,1596.795,9.836,0.000,0.000,-179.499,-1,-1,-1,300.000,300.000);
  23171. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23172. tmpobjid = CreateDynamicObject(2605,1625.123,1600.368,10.226,0.000,0.000,90.399,-1,-1,-1,300.000,300.000);
  23173. SetDynamicObjectMaterial(tmpobjid, 2, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23174. SetDynamicObjectMaterial(tmpobjid, 4, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23175. SetDynamicObjectMaterial(tmpobjid, 5, 19627, "wrench1", "wrench1", 0x00000000);
  23176. tmpobjid = CreateDynamicObject(2356,1626.619,1600.417,9.836,0.000,0.000,98.200,-1,-1,-1,300.000,300.000);
  23177. SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23178. tmpobjid = CreateDynamicObject(1722,1624.312,1599.463,9.836,0.000,0.000,0.500,-1,-1,-1,300.000,300.000);
  23179. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23180. tmpobjid = CreateDynamicObject(19459,1624.789,1601.515,11.536,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000);
  23181. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23182. tmpobjid = CreateDynamicObject(2610,1626.910,1598.290,10.666,0.000,0.000,-90.299,-1,-1,-1,300.000,300.000);
  23183. SetDynamicObjectMaterial(tmpobjid, 0, 19627, "wrench1", "wrench1", 0x00000000);
  23184. SetDynamicObjectMaterial(tmpobjid, 1, 19627, "wrench1", "wrench1", 0x00000000);
  23185. SetDynamicObjectMaterial(tmpobjid, 2, 19513, "whitephone", "whitephone", 0x00000000);
  23186. tmpobjid = CreateDynamicObject(2610,1626.907,1597.770,10.666,0.000,0.000,-90.299,-1,-1,-1,300.000,300.000);
  23187. SetDynamicObjectMaterial(tmpobjid, 0, 19627, "wrench1", "wrench1", 0x00000000);
  23188. SetDynamicObjectMaterial(tmpobjid, 1, 19627, "wrench1", "wrench1", 0x00000000);
  23189. SetDynamicObjectMaterial(tmpobjid, 2, 19513, "whitephone", "whitephone", 0x00000000);
  23190. tmpobjid = CreateDynamicObject(2192,1626.505,1597.619,11.496,0.000,0.000,149.800,-1,-1,-1,300.000,300.000);
  23191. SetDynamicObjectMaterial(tmpobjid, 0, 19627, "wrench1", "wrench1", 0x00000000);
  23192. tmpobjid = CreateDynamicObject(2191,1621.650,1600.496,9.816,0.000,0.000,90.000,-1,-1,-1,300.000,300.000);
  23193. SetDynamicObjectMaterial(tmpobjid, 2, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23194. tmpobjid = CreateDynamicObject(2191,1621.650,1595.235,9.816,0.000,0.000,90.000,-1,-1,-1,300.000,300.000);
  23195. SetDynamicObjectMaterial(tmpobjid, 2, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23196. tmpobjid = CreateDynamicObject(2191,1621.650,1597.865,9.816,0.000,0.000,90.000,-1,-1,-1,300.000,300.000);
  23197. SetDynamicObjectMaterial(tmpobjid, 2, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23198. tmpobjid = CreateDynamicObject(19386,1618.429,1601.506,11.536,0.000,0.000,-90.099,-1,-1,-1,300.000,300.000);
  23199. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23200. tmpobjid = CreateDynamicObject(19448,1618.553,1606.274,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23201. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23202. tmpobjid = CreateDynamicObject(19448,1615.052,1606.274,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23203. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23204. tmpobjid = CreateDynamicObject(19448,1611.560,1606.274,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23205. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23206. tmpobjid = CreateDynamicObject(19459,1619.514,1604.335,11.536,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000);
  23207. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23208. tmpobjid = CreateDynamicObject(19459,1612.017,1601.500,11.536,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000);
  23209. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23210. tmpobjid = CreateDynamicObject(19459,1620.080,1606.412,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23211. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23212. tmpobjid = CreateDynamicObject(19386,1614.806,1602.809,11.536,0.000,0.000,0.499,-1,-1,-1,300.000,300.000);
  23213. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23214. tmpobjid = CreateDynamicObject(19459,1611.336,1599.464,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23215. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23216. tmpobjid = CreateDynamicObject(19448,1618.553,1615.906,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23217. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23218. tmpobjid = CreateDynamicObject(19448,1615.071,1615.906,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23219. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23220. tmpobjid = CreateDynamicObject(19448,1611.571,1615.906,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23221. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23222. tmpobjid = CreateDynamicObject(19459,1614.788,1609.212,11.566,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23223. SetDynamicObjectMaterial(tmpobjid, 0, 14842, "genintintpolicea", "copcell_bars", 0x00000000);
  23224. tmpobjid = CreateDynamicObject(19459,1614.668,1609.222,14.016,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23225. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23226. tmpobjid = CreateDynamicObject(19459,1614.839,1609.222,14.016,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23227. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23228. tmpobjid = CreateDynamicObject(19459,1620.080,1616.041,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23229. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23230. tmpobjid = CreateDynamicObject(19459,1610.066,1613.957,11.536,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000);
  23231. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23232. tmpobjid = CreateDynamicObject(19459,1611.336,1609.084,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23233. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23234. tmpobjid = CreateDynamicObject(19459,1615.721,1617.686,11.536,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000);
  23235. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23236. tmpobjid = CreateDynamicObject(19459,1614.796,1618.712,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23237. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23238. tmpobjid = CreateDynamicObject(19459,1613.545,1614.371,9.186,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000);
  23239. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23240. tmpobjid = CreateDynamicObject(19459,1617.368,1619.272,8.136,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23241. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23242. tmpobjid = CreateDynamicObject(19448,1608.068,1606.274,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23243. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23244. tmpobjid = CreateDynamicObject(948,1617.204,1593.346,9.816,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23245. SetDynamicObjectMaterial(tmpobjid, 0, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23246. SetDynamicObjectMaterial(tmpobjid, 1, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23247. SetDynamicObjectMaterial(tmpobjid, 3, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23248. tmpobjid = CreateDynamicObject(948,1617.204,1580.754,9.816,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23249. SetDynamicObjectMaterial(tmpobjid, 0, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23250. SetDynamicObjectMaterial(tmpobjid, 1, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23251. SetDynamicObjectMaterial(tmpobjid, 3, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23252. tmpobjid = CreateDynamicObject(948,1626.864,1594.157,9.766,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23253. SetDynamicObjectMaterial(tmpobjid, 0, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23254. SetDynamicObjectMaterial(tmpobjid, 1, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23255. SetDynamicObjectMaterial(tmpobjid, 3, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23256. tmpobjid = CreateDynamicObject(1722,1626.040,1594.430,9.836,0.000,0.000,-179.499,-1,-1,-1,300.000,300.000);
  23257. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23258. tmpobjid = CreateDynamicObject(1722,1625.159,1594.452,9.836,0.000,0.000,-179.499,-1,-1,-1,300.000,300.000);
  23259. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23260. tmpobjid = CreateDynamicObject(1722,1624.278,1594.474,9.836,0.000,0.000,-179.499,-1,-1,-1,300.000,300.000);
  23261. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23262. tmpobjid = CreateDynamicObject(1722,1623.396,1594.526,9.836,0.000,0.000,-179.499,-1,-1,-1,300.000,300.000);
  23263. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23264. tmpobjid = CreateDynamicObject(1722,1622.526,1594.519,9.836,0.000,0.000,-179.499,-1,-1,-1,300.000,300.000);
  23265. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23266. tmpobjid = CreateDynamicObject(1722,1627.152,1593.118,9.836,0.000,0.000,90.500,-1,-1,-1,300.000,300.000);
  23267. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23268. tmpobjid = CreateDynamicObject(1722,1627.160,1592.208,9.836,0.000,0.000,88.000,-1,-1,-1,300.000,300.000);
  23269. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23270. tmpobjid = CreateDynamicObject(19386,1622.492,1565.924,11.536,0.000,0.000,-90.099,-1,-1,-1,300.000,300.000);
  23271. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23272. tmpobjid = CreateDynamicObject(19459,1624.787,1579.303,11.536,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000);
  23273. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23274. tmpobjid = CreateDynamicObject(948,1626.864,1579.776,9.786,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23275. SetDynamicObjectMaterial(tmpobjid, 0, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23276. SetDynamicObjectMaterial(tmpobjid, 1, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23277. SetDynamicObjectMaterial(tmpobjid, 3, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23278. tmpobjid = CreateDynamicObject(1722,1627.152,1580.510,9.836,0.000,0.000,91.600,-1,-1,-1,300.000,300.000);
  23279. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23280. tmpobjid = CreateDynamicObject(1722,1627.135,1581.480,9.836,0.000,0.000,88.900,-1,-1,-1,300.000,300.000);
  23281. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23282. tmpobjid = CreateDynamicObject(1722,1625.909,1579.486,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000);
  23283. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23284. tmpobjid = CreateDynamicObject(1722,1624.918,1579.491,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000);
  23285. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23286. tmpobjid = CreateDynamicObject(1722,1623.968,1579.495,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000);
  23287. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23288. tmpobjid = CreateDynamicObject(1722,1623.007,1579.500,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000);
  23289. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23290. tmpobjid = CreateDynamicObject(1722,1622.077,1579.504,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000);
  23291. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23292. tmpobjid = CreateDynamicObject(19329,1618.468,1594.598,12.816,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23293. SetDynamicObjectMaterialText(tmpobjid, 0, "PROCESSING", 40, "Calibri", 20, 0, 0xFFFFFFFF, 0x00000500, 1);
  23294. tmpobjid = CreateDynamicObject(19329,1618.468,1579.384,12.816,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23295. SetDynamicObjectMaterialText(tmpobjid, 0, "ADMINISTRATION", 40, "Calibri", 20, 0, 0xFFFFFFFF, 0x00000500, 1);
  23296. tmpobjid = CreateDynamicObject(19448,1625.552,1567.752,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23297. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23298. tmpobjid = CreateDynamicObject(19448,1622.062,1567.772,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23299. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23300. tmpobjid = CreateDynamicObject(19448,1618.571,1567.772,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23301. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23302. tmpobjid = CreateDynamicObject(19459,1627.371,1567.751,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23303. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23304. tmpobjid = CreateDynamicObject(2198,1626.772,1572.945,9.836,0.000,0.000,179.599,-1,-1,-1,300.000,300.000);
  23305. SetDynamicObjectMaterial(tmpobjid, 2, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23306. SetDynamicObjectMaterial(tmpobjid, 4, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23307. tmpobjid = CreateDynamicObject(2193,1620.447,1577.689,9.826,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23308. SetDynamicObjectMaterial(tmpobjid, 3, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23309. SetDynamicObjectMaterial(tmpobjid, 5, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23310. tmpobjid = CreateDynamicObject(2172,1622.437,1578.680,9.836,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23311. SetDynamicObjectMaterial(tmpobjid, 6, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23312. tmpobjid = CreateDynamicObject(2172,1624.438,1578.680,9.836,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23313. SetDynamicObjectMaterial(tmpobjid, 6, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23314. tmpobjid = CreateDynamicObject(2172,1626.756,1577.541,9.836,0.000,0.000,-89.499,-1,-1,-1,300.000,300.000);
  23315. SetDynamicObjectMaterial(tmpobjid, 6, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23316. tmpobjid = CreateDynamicObject(2193,1621.461,1574.490,9.826,0.000,0.000,89.499,-1,-1,-1,300.000,300.000);
  23317. SetDynamicObjectMaterial(tmpobjid, 3, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23318. SetDynamicObjectMaterial(tmpobjid, 5, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23319. tmpobjid = CreateDynamicObject(2198,1622.459,1573.452,9.836,0.000,0.000,-0.200,-1,-1,-1,300.000,300.000);
  23320. SetDynamicObjectMaterial(tmpobjid, 2, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23321. SetDynamicObjectMaterial(tmpobjid, 4, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23322. tmpobjid = CreateDynamicObject(2193,1620.428,1572.498,9.826,0.000,0.000,-1.000,-1,-1,-1,300.000,300.000);
  23323. SetDynamicObjectMaterial(tmpobjid, 3, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23324. SetDynamicObjectMaterial(tmpobjid, 5, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23325. tmpobjid = CreateDynamicObject(2193,1621.414,1569.099,9.826,0.000,0.000,89.499,-1,-1,-1,300.000,300.000);
  23326. SetDynamicObjectMaterial(tmpobjid, 3, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23327. SetDynamicObjectMaterial(tmpobjid, 5, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23328. tmpobjid = CreateDynamicObject(2172,1623.402,1569.076,9.836,0.000,0.000,179.600,-1,-1,-1,300.000,300.000);
  23329. SetDynamicObjectMaterial(tmpobjid, 6, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23330. tmpobjid = CreateDynamicObject(2172,1626.734,1569.051,9.836,0.000,0.000,179.600,-1,-1,-1,300.000,300.000);
  23331. SetDynamicObjectMaterial(tmpobjid, 6, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23332. tmpobjid = CreateDynamicObject(2198,1625.745,1571.911,9.836,0.000,0.000,-0.200,-1,-1,-1,300.000,300.000);
  23333. SetDynamicObjectMaterial(tmpobjid, 2, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23334. SetDynamicObjectMaterial(tmpobjid, 4, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23335. tmpobjid = CreateDynamicObject(2198,1623.472,1574.499,9.836,0.000,0.000,179.599,-1,-1,-1,300.000,300.000);
  23336. SetDynamicObjectMaterial(tmpobjid, 2, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23337. SetDynamicObjectMaterial(tmpobjid, 4, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23338. tmpobjid = CreateDynamicObject(2610,1626.398,1578.479,10.666,0.000,0.000,-40.899,-1,-1,-1,300.000,300.000);
  23339. SetDynamicObjectMaterial(tmpobjid, 0, 19627, "wrench1", "wrench1", 0x00000000);
  23340. SetDynamicObjectMaterial(tmpobjid, 1, 19627, "wrench1", "wrench1", 0x00000000);
  23341. SetDynamicObjectMaterial(tmpobjid, 2, 19513, "whitephone", "whitephone", 0x00000000);
  23342. tmpobjid = CreateDynamicObject(2356,1620.902,1575.061,9.836,0.000,0.000,73.300,-1,-1,-1,300.000,300.000);
  23343. SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23344. tmpobjid = CreateDynamicObject(2356,1620.963,1578.285,9.836,0.000,0.000,-5.999,-1,-1,-1,300.000,300.000);
  23345. SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23346. tmpobjid = CreateDynamicObject(2356,1622.887,1578.163,9.836,0.000,0.000,22.300,-1,-1,-1,300.000,300.000);
  23347. SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23348. tmpobjid = CreateDynamicObject(2356,1624.977,1578.283,9.836,0.000,0.000,-4.799,-1,-1,-1,300.000,300.000);
  23349. SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23350. tmpobjid = CreateDynamicObject(2356,1626.401,1577.069,9.836,0.000,0.000,-89.199,-1,-1,-1,300.000,300.000);
  23351. SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23352. tmpobjid = CreateDynamicObject(2356,1625.794,1573.754,9.836,0.000,0.000,-132.800,-1,-1,-1,300.000,300.000);
  23353. SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23354. tmpobjid = CreateDynamicObject(2356,1622.285,1575.149,9.836,0.000,0.000,-64.399,-1,-1,-1,300.000,300.000);
  23355. SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23356. tmpobjid = CreateDynamicObject(2356,1622.875,1572.973,9.836,0.000,0.000,-7.799,-1,-1,-1,300.000,300.000);
  23357. SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23358. tmpobjid = CreateDynamicObject(2356,1620.917,1572.658,9.836,0.000,0.000,-26.299,-1,-1,-1,300.000,300.000);
  23359. SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23360. tmpobjid = CreateDynamicObject(2356,1622.391,1569.541,9.836,0.000,0.000,-157.600,-1,-1,-1,300.000,300.000);
  23361. SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23362. tmpobjid = CreateDynamicObject(2356,1620.937,1569.509,9.836,0.000,0.000,84.400,-1,-1,-1,300.000,300.000);
  23363. SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23364. tmpobjid = CreateDynamicObject(2356,1626.176,1569.490,9.836,0.000,0.000,-157.600,-1,-1,-1,300.000,300.000);
  23365. SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23366. tmpobjid = CreateDynamicObject(2356,1627.028,1571.150,9.836,0.000,0.000,87.199,-1,-1,-1,300.000,300.000);
  23367. SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23368. tmpobjid = CreateDynamicObject(19329,1622.387,1574.422,10.706,0.000,0.000,79.499,-1,-1,-1,300.000,300.000);
  23369. SetDynamicObjectMaterialText(tmpobjid, 0, "Sgt. McDuffy", 120, "Ariel", 15, 1, 0xFFF70000, 0x00000000, 1);
  23370. tmpobjid = CreateDynamicObject(19386,1616.734,1570.971,11.536,0.000,0.000,0.499,-1,-1,-1,300.000,300.000);
  23371. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23372. tmpobjid = CreateDynamicObject(19448,1615.078,1567.772,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23373. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23374. tmpobjid = CreateDynamicObject(19448,1611.578,1567.772,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23375. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23376. tmpobjid = CreateDynamicObject(19459,1616.080,1565.915,11.536,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000);
  23377. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23378. tmpobjid = CreateDynamicObject(19411,1625.694,1565.912,11.536,0.000,0.000,89.999,-1,-1,-1,300.000,300.000);
  23379. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23380. tmpobjid = CreateDynamicObject(19448,1625.552,1558.119,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23381. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23382. tmpobjid = CreateDynamicObject(19448,1622.069,1558.150,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23383. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23384. tmpobjid = CreateDynamicObject(19459,1620.389,1561.019,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23385. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23386. tmpobjid = CreateDynamicObject(19459,1625.274,1558.970,11.536,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000);
  23387. SetDynamicObjectMaterial(tmpobjid, 0, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23388. tmpobjid = CreateDynamicObject(19459,1627.371,1558.140,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23389. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23390. tmpobjid = CreateDynamicObject(19482,1622.308,1559.071,11.536,0.000,0.000,90.099,-1,-1,-1,300.000,300.000);
  23391. SetDynamicObjectMaterialText(tmpobjid, 0, "To serve and protect.", 120, "Calibri", 30, 1, 0xFFFFFFFF, 0x00000000, 0);
  23392. tmpobjid = CreateDynamicObject(19386,1618.390,1579.294,11.536,0.000,0.000,-90.099,-1,-1,-1,300.000,300.000);
  23393. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23394. tmpobjid = CreateDynamicObject(19459,1616.749,1564.550,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23395. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23396. tmpobjid = CreateDynamicObject(19448,1611.578,1577.403,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23397. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23398. tmpobjid = CreateDynamicObject(19448,1615.078,1577.392,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23399. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23400. tmpobjid = CreateDynamicObject(19448,1608.097,1577.403,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23401. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23402. tmpobjid = CreateDynamicObject(19448,1608.085,1567.772,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23403. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23404. tmpobjid = CreateDynamicObject(19459,1611.844,1582.150,11.546,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000);
  23405. SetDynamicObjectMaterial(tmpobjid, 0, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23406. tmpobjid = CreateDynamicObject(19386,1615.046,1572.649,11.536,0.000,0.000,-90.099,-1,-1,-1,300.000,300.000);
  23407. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23408. tmpobjid = CreateDynamicObject(19411,1611.861,1572.653,11.536,0.000,0.000,89.999,-1,-1,-1,300.000,300.000);
  23409. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23410. tmpobjid = CreateDynamicObject(19459,1610.217,1577.380,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23411. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23412. tmpobjid = CreateDynamicObject(2491,1613.896,1580.439,9.336,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23413. SetDynamicObjectMaterial(tmpobjid, 0, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23414. SetDynamicObjectMaterial(tmpobjid, 1, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23415. tmpobjid = CreateDynamicObject(1722,1610.680,1572.844,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000);
  23416. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23417. tmpobjid = CreateDynamicObject(1722,1611.381,1572.841,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000);
  23418. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23419. tmpobjid = CreateDynamicObject(1722,1612.072,1572.838,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000);
  23420. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23421. tmpobjid = CreateDynamicObject(1722,1612.802,1572.835,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000);
  23422. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23423. tmpobjid = CreateDynamicObject(1722,1613.523,1572.832,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000);
  23424. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23425. tmpobjid = CreateDynamicObject(1722,1613.532,1574.583,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000);
  23426. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23427. tmpobjid = CreateDynamicObject(1722,1613.539,1576.234,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000);
  23428. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23429. tmpobjid = CreateDynamicObject(1722,1613.546,1577.985,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000);
  23430. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23431. tmpobjid = CreateDynamicObject(1722,1612.906,1577.988,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000);
  23432. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23433. tmpobjid = CreateDynamicObject(1722,1612.897,1576.237,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000);
  23434. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23435. tmpobjid = CreateDynamicObject(1722,1612.889,1574.576,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000);
  23436. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23437. tmpobjid = CreateDynamicObject(1722,1610.628,1574.585,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000);
  23438. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23439. tmpobjid = CreateDynamicObject(1722,1610.635,1576.287,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000);
  23440. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23441. tmpobjid = CreateDynamicObject(1722,1610.614,1578.058,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000);
  23442. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23443. tmpobjid = CreateDynamicObject(1722,1611.245,1578.055,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000);
  23444. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23445. tmpobjid = CreateDynamicObject(1722,1611.236,1576.285,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000);
  23446. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23447. tmpobjid = CreateDynamicObject(1722,1611.227,1574.594,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000);
  23448. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23449. tmpobjid = CreateDynamicObject(1722,1616.248,1577.972,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000);
  23450. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23451. tmpobjid = CreateDynamicObject(1722,1616.241,1576.160,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000);
  23452. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23453. tmpobjid = CreateDynamicObject(1722,1616.233,1574.529,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000);
  23454. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23455. tmpobjid = CreateDynamicObject(1722,1616.225,1572.839,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000);
  23456. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23457. tmpobjid = CreateDynamicObject(19482,1614.074,1582.040,11.726,0.000,0.000,-90.100,-1,-1,-1,300.000,300.000);
  23458. SetDynamicObjectMaterialText(tmpobjid, 0, "The Los Santos", 80, "Ariel", 20, 1, 0xFFFFFFFF, 0x00000000, 0);
  23459. tmpobjid = CreateDynamicObject(19482,1615.134,1582.038,11.226,0.000,0.000,-90.100,-1,-1,-1,300.000,300.000);
  23460. SetDynamicObjectMaterialText(tmpobjid, 0, "Police Department", 80, "Ariel", 15, 1, 0xFFFFFFFF, 0x00000000, 0);
  23461. tmpobjid = CreateDynamicObject(19482,1616.966,1582.055,11.506,0.000,0.000,-90.100,-1,-1,-1,300.000,300.000);
  23462. SetDynamicObjectMaterialText(tmpobjid, 0, "To serve and protect.", 90, "Calibri", 15, 1, 0xFFFFFFFF, 0x00000000, 0);
  23463. tmpobjid = CreateDynamicObject(19448,1608.085,1558.152,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23464. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23465. tmpobjid = CreateDynamicObject(19448,1611.566,1558.152,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23466. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23467. tmpobjid = CreateDynamicObject(19386,1609.664,1565.898,11.536,0.000,0.000,-90.099,-1,-1,-1,300.000,300.000);
  23468. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23469. tmpobjid = CreateDynamicObject(19459,1613.378,1561.030,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23470. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23471. tmpobjid = CreateDynamicObject(19411,1608.140,1564.228,11.536,0.000,0.000,179.699,-1,-1,-1,300.000,300.000);
  23472. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23473. tmpobjid = CreateDynamicObject(19459,1612.732,1557.728,11.536,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000);
  23474. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23475. tmpobjid = CreateDynamicObject(19411,1608.123,1561.017,11.536,0.000,0.000,179.699,-1,-1,-1,300.000,300.000);
  23476. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23477. tmpobjid = CreateDynamicObject(19459,1608.116,1554.601,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23478. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23479. tmpobjid = CreateDynamicObject(19386,1606.464,1565.904,11.536,0.000,0.000,-90.099,-1,-1,-1,300.000,300.000);
  23480. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23481. tmpobjid = CreateDynamicObject(19448,1604.584,1562.434,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23482. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23483. tmpobjid = CreateDynamicObject(19459,1604.765,1561.023,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23484. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23485. tmpobjid = CreateDynamicObject(19459,1603.123,1557.711,11.536,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000);
  23486. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23487. tmpobjid = CreateDynamicObject(1722,1610.667,1559.954,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000);
  23488. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23489. tmpobjid = CreateDynamicObject(1722,1610.714,1563.517,9.836,0.000,0.000,179.200,-1,-1,-1,300.000,300.000);
  23490. SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000);
  23491. tmpobjid = CreateDynamicObject(19366,1615.212,1568.892,11.536,0.000,0.000,-72.500,-1,-1,-1,300.000,300.000);
  23492. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23493. tmpobjid = CreateDynamicObject(19366,1612.780,1567.158,11.536,0.000,0.000,-36.400,-1,-1,-1,300.000,300.000);
  23494. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23495. tmpobjid = CreateDynamicObject(19448,1604.604,1572.045,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23496. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23497. tmpobjid = CreateDynamicObject(19366,1604.830,1567.293,11.536,0.000,0.000,-0.800,-1,-1,-1,300.000,300.000);
  23498. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23499. tmpobjid = CreateDynamicObject(19386,1608.535,1572.660,11.536,0.000,0.000,-90.099,-1,-1,-1,300.000,300.000);
  23500. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23501. tmpobjid = CreateDynamicObject(19366,1606.158,1573.982,11.536,0.000,0.000,31.899,-1,-1,-1,300.000,300.000);
  23502. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23503. tmpobjid = CreateDynamicObject(19459,1605.315,1580.111,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23504. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23505. tmpobjid = CreateDynamicObject(19448,1604.596,1581.674,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
  23506. SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);
  23507. tmpobjid = CreateDynamicObject(19366,1606.981,1582.113,11.536,0.000,0.000,90.199,-1,-1,-1,300.000,300.000);
  23508. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23509. tmpobjid = CreateDynamicObject(19366,1608.561,1582.138,11.536,0.000,0.000,90.199,-1,-1,-1,300.000,300.000);
  23510. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23511. tmpobjid = CreateDynamicObject(2319,1609.808,1580.955,9.666,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000);
  23512. SetDynamicObjectMaterial(tmpobjid, 0, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23513. tmpobjid = CreateDynamicObject(2319,1609.812,1578.495,9.666,0.000,0.000,-90.599,-1,-1,-1,300.000,300.000);
  23514. SetDynamicObjectMaterial(tmpobjid, 0, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23515. tmpobjid = CreateDynamicObject(2319,1609.786,1576.065,9.666,0.000,0.000,-90.599,-1,-1,-1,300.000,300.000);
  23516. SetDynamicObjectMaterial(tmpobjid, 0, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23517. tmpobjid = CreateDynamicObject(19366,1606.107,1571.332,11.536,0.000,0.000,-30.500,-1,-1,-1,300.000,300.000);
  23518. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23519. tmpobjid = CreateDynamicObject(19366,1605.127,1569.215,11.536,0.000,0.000,-16.900,-1,-1,-1,300.000,300.000);
  23520. SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000);
  23521. tmpobjid = CreateDynamicObject(1502,1607.785,1572.616,9.776,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23522. SetDynamicObjectMaterial(tmpobjid, 1, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23523. tmpobjid = CreateDynamicObject(1502,1614.296,1572.616,9.776,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23524. SetDynamicObjectMaterial(tmpobjid, 1, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23525. tmpobjid = CreateDynamicObject(1502,1605.714,1565.895,9.776,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23526. SetDynamicObjectMaterial(tmpobjid, 1, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23527. tmpobjid = CreateDynamicObject(1502,1610.458,1565.929,9.776,0.000,0.000,179.400,-1,-1,-1,300.000,300.000);
  23528. SetDynamicObjectMaterial(tmpobjid, 1, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23529. tmpobjid = CreateDynamicObject(1502,1623.281,1565.954,9.776,0.000,0.000,179.400,-1,-1,-1,300.000,300.000);
  23530. SetDynamicObjectMaterial(tmpobjid, 1, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000);
  23531. ///////////////////////////////////////////////////////////////////////////////////////////////////////////xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  23532. ///////////////////////////////////////////////////////////////////////////////////////////////////////////
  23533. tmpobjid = CreateDynamicObject(1495,1617.676,1594.660,9.776,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23534. SetDynamicObjectMaterial(tmpobjid, 0, 1560, "7_11_door", "cj_sheetmetal2", 0x00000000);
  23535. SetDynamicObjectMaterial(tmpobjid, 2, 1560, "7_11_door", "cj_sheetmetal2", 0x00000000);
  23536. ///////////////////////////////////////////////////////////////////////////////////////////////////////////
  23537. ///////////////////////////////////////////////////////////////////////////////////////////////////////////
  23538. tmpobjid = CreateDynamicObject(1495,1617.656,1579.298,9.776,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23539. SetDynamicObjectMaterial(tmpobjid, 0, 1560, "7_11_door", "cj_sheetmetal2", 0x00000000);
  23540. SetDynamicObjectMaterial(tmpobjid, 2, 1560, "7_11_door", "cj_sheetmetal2", 0x00000000);
  23541. ///////////////////////////////////////////////////////////////////////////////////////////////////////////
  23542. tmpobjid = CreateDynamicObject(18981,1615.890,1569.804,13.777,0.000,90.000,-0.499,-1,-1,-1,300.000,300.000);
  23543. SetDynamicObjectMaterial(tmpobjid, 0, 16639, "a51_labs", "dam_terazzo", 0x00000000);
  23544. tmpobjid = CreateDynamicObject(18981,1617.100,1594.782,13.777,0.000,90.000,-0.499,-1,-1,-1,300.000,300.000);
  23545. SetDynamicObjectMaterial(tmpobjid, 0, 16639, "a51_labs", "dam_terazzo", 0x00000000);
  23546. tmpobjid = CreateDynamicObject(18981,1617.318,1619.781,13.777,0.000,90.000,-0.499,-1,-1,-1,300.000,300.000);
  23547. SetDynamicObjectMaterial(tmpobjid, 0, 16639, "a51_labs", "dam_terazzo", 0x00000000);
  23548. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  23549. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  23550. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  23551. tmpobjid = CreateDynamicObject(1569,1629.274,1588.549,9.836,0.000,0.000,-90.199,-1,-1,-1,300.000,300.000);
  23552. tmpobjid = CreateDynamicObject(1569,1629.269,1585.548,9.836,0.000,0.000,89.900,-1,-1,-1,300.000,300.000);
  23553. tmpobjid = CreateDynamicObject(19808,1620.127,1585.654,10.776,0.000,0.000,-80.699,-1,-1,-1,300.000,300.000);
  23554. tmpobjid = CreateDynamicObject(19808,1620.117,1589.260,10.776,0.000,0.000,-80.699,-1,-1,-1,300.000,300.000);
  23555. tmpobjid = CreateDynamicObject(2604,1616.074,1584.160,10.406,0.000,0.000,90.400,-1,-1,-1,300.000,300.000);
  23556. tmpobjid = CreateDynamicObject(2186,1616.153,1589.718,9.806,0.000,0.000,90.600,-1,-1,-1,300.000,300.000);
  23557. tmpobjid = CreateDynamicObject(2616,1623.136,1594.826,11.336,0.000,0.000,-179.900,-1,-1,-1,300.000,300.000);
  23558. tmpobjid = CreateDynamicObject(2616,1623.365,1601.377,11.336,0.000,0.000,0.299,-1,-1,-1,300.000,300.000);
  23559. tmpobjid = CreateDynamicObject(14842,1615.765,1616.525,11.686,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23560. tmpobjid = CreateDynamicObject(1800,1621.080,1604.883,9.616,0.000,0.000,89.199,-1,-1,-1,300.000,300.000);
  23561. tmpobjid = CreateDynamicObject(10444,1610.187,1629.515,9.866,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23562. tmpobjid = CreateDynamicObject(1800,1621.080,1604.883,10.626,0.000,0.000,89.199,-1,-1,-1,300.000,300.000);
  23563. tmpobjid = CreateDynamicObject(1800,1621.077,1607.655,9.616,0.000,0.000,89.199,-1,-1,-1,300.000,300.000);
  23564. tmpobjid = CreateDynamicObject(1800,1621.076,1610.507,9.616,0.000,0.000,89.199,-1,-1,-1,300.000,300.000);
  23565. tmpobjid = CreateDynamicObject(1800,1621.078,1607.653,10.626,0.000,0.000,89.199,-1,-1,-1,300.000,300.000);
  23566. tmpobjid = CreateDynamicObject(1800,1621.076,1610.505,10.626,0.000,0.000,89.199,-1,-1,-1,300.000,300.000);
  23567. tmpobjid = CreateDynamicObject(1808,1627.009,1575.532,9.836,0.000,0.000,-88.699,-1,-1,-1,300.000,300.000);
  23568. tmpobjid = CreateDynamicObject(2737,1627.242,1573.973,11.466,0.000,0.000,-90.099,-1,-1,-1,300.000,300.000);
  23569. tmpobjid = CreateDynamicObject(2611,1627.243,1570.377,11.256,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000);
  23570. tmpobjid = CreateDynamicObject(19780,1627.265,1574.931,12.034,89.500,0.299,-89.599,-1,-1,-1,300.000,300.000);
  23571. tmpobjid = CreateDynamicObject(2186,1625.729,1567.991,9.836,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23572. tmpobjid = CreateDynamicObject(19521,1623.054,1574.356,10.674,-4.300,-87.300,22.300,-1,-1,-1,300.000,300.000);
  23573. tmpobjid = CreateDynamicObject(19942,1626.667,1572.056,10.726,0.000,0.000,-33.699,-1,-1,-1,300.000,300.000);
  23574. tmpobjid = CreateDynamicObject(11749,1626.506,1572.018,10.626,0.000,0.000,-28.400,-1,-1,-1,300.000,300.000);
  23575. tmpobjid = CreateDynamicObject(2342,1622.811,1574.601,10.736,0.000,0.000,-7.799,-1,-1,-1,300.000,300.000);
  23576. tmpobjid = CreateDynamicObject(2769,1623.455,1574.631,10.636,0.000,0.000,-35.199,-1,-1,-1,300.000,300.000);
  23577. tmpobjid = CreateDynamicObject(2206,1622.749,1561.922,9.796,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23578. tmpobjid = CreateDynamicObject(19999,1623.584,1560.328,9.816,0.000,0.000,176.800,-1,-1,-1,300.000,300.000);
  23579. tmpobjid = CreateDynamicObject(19893,1624.466,1561.958,10.716,0.000,0.000,-23.299,-1,-1,-1,300.000,300.000);
  23580. tmpobjid = CreateDynamicObject(2161,1626.761,1559.028,9.826,0.000,0.000,179.799,-1,-1,-1,300.000,300.000);
  23581. tmpobjid = CreateDynamicObject(14532,1626.660,1565.211,10.806,0.000,0.000,132.900,-1,-1,-1,300.000,300.000);
  23582. tmpobjid = CreateDynamicObject(19466,1625.616,1565.983,11.786,0.000,0.000,-90.099,-1,-1,-1,300.000,300.000);
  23583. tmpobjid = CreateDynamicObject(19466,1625.616,1565.833,11.786,0.000,0.000,-90.099,-1,-1,-1,300.000,300.000);
  23584. tmpobjid = CreateDynamicObject(19942,1622.924,1562.068,10.826,0.000,0.000,26.399,-1,-1,-1,300.000,300.000);
  23585. tmpobjid = CreateDynamicObject(19807,1622.862,1561.863,10.776,0.000,0.000,30.500,-1,-1,-1,300.000,300.000);
  23586. tmpobjid = CreateDynamicObject(2267,1623.834,1559.088,11.746,0.000,0.000,179.800,-1,-1,-1,300.000,300.000);
  23587. tmpobjid = CreateDynamicObject(2258,1620.486,1561.208,11.926,0.000,0.000,89.799,-1,-1,-1,300.000,300.000);
  23588. tmpobjid = CreateDynamicObject(2259,1620.947,1563.758,11.106,0.000,0.000,90.500,-1,-1,-1,300.000,300.000);
  23589. tmpobjid = CreateDynamicObject(19167,1623.443,1561.771,10.736,0.000,0.000,-28.100,-1,-1,-1,300.000,300.000);
  23590. tmpobjid = CreateDynamicObject(1727,1624.956,1565.217,9.796,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23591. tmpobjid = CreateDynamicObject(1727,1623.745,1565.217,9.796,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23592. tmpobjid = CreateDynamicObject(19466,1611.762,1572.605,11.596,0.000,0.000,-90.599,-1,-1,-1,300.000,300.000);
  23593. tmpobjid = CreateDynamicObject(19466,1611.764,1572.725,11.596,0.000,0.000,-90.599,-1,-1,-1,300.000,300.000);
  23594. tmpobjid = CreateDynamicObject(19466,1608.036,1561.041,11.596,0.000,0.000,179.600,-1,-1,-1,300.000,300.000);
  23595. tmpobjid = CreateDynamicObject(19466,1608.059,1564.281,11.596,0.000,0.000,179.600,-1,-1,-1,300.000,300.000);
  23596. tmpobjid = CreateDynamicObject(2616,1608.253,1561.232,11.476,0.000,0.000,89.900,-1,-1,-1,300.000,300.000);
  23597. tmpobjid = CreateDynamicObject(2616,1608.279,1564.444,11.476,0.000,0.000,89.800,-1,-1,-1,300.000,300.000);
  23598. tmpobjid = CreateDynamicObject(1963,1610.729,1561.718,10.216,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23599. tmpobjid = CreateDynamicObject(2607,1606.352,1558.243,10.196,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23600. tmpobjid = CreateDynamicObject(19805,1604.819,1559.942,11.556,0.000,0.000,90.000,-1,-1,-1,300.000,300.000);
  23601. tmpobjid = CreateDynamicObject(19805,1604.819,1563.511,11.556,0.000,0.000,90.000,-1,-1,-1,300.000,300.000);
  23602. tmpobjid = CreateDynamicObject(11729,1606.303,1581.710,9.836,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23603. tmpobjid = CreateDynamicObject(11729,1605.737,1580.427,9.836,0.000,0.000,90.199,-1,-1,-1,300.000,300.000);
  23604. tmpobjid = CreateDynamicObject(11729,1606.974,1581.710,9.836,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23605. tmpobjid = CreateDynamicObject(11729,1607.654,1581.710,9.836,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23606. tmpobjid = CreateDynamicObject(11729,1608.335,1581.710,9.836,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23607. tmpobjid = CreateDynamicObject(11729,1608.995,1581.710,9.836,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  23608. tmpobjid = CreateDynamicObject(11729,1605.735,1581.107,9.836,0.000,0.000,90.199,-1,-1,-1,300.000,300.000);
  23609. tmpobjid = CreateDynamicObject(11729,1605.739,1579.756,9.836,0.000,0.000,90.199,-1,-1,-1,300.000,300.000);
  23610. tmpobjid = CreateDynamicObject(11729,1605.741,1579.095,9.836,0.000,0.000,90.199,-1,-1,-1,300.000,300.000);
  23611. tmpobjid = CreateDynamicObject(11729,1605.744,1578.425,9.836,0.000,0.000,90.199,-1,-1,-1,300.000,300.000);
  23612. tmpobjid = CreateDynamicObject(11729,1605.746,1577.744,9.836,0.000,0.000,90.199,-1,-1,-1,300.000,300.000);
  23613. tmpobjid = CreateDynamicObject(11729,1605.748,1577.064,9.836,0.000,0.000,90.199,-1,-1,-1,300.000,300.000);
  23614. tmpobjid = CreateDynamicObject(11729,1605.751,1576.393,9.836,0.000,0.000,90.199,-1,-1,-1,300.000,300.000);
  23615. tmpobjid = CreateDynamicObject(11729,1605.753,1575.713,9.836,0.000,0.000,90.199,-1,-1,-1,300.000,300.000);
  23616. tmpobjid = CreateDynamicObject(18757,1607.008,1569.159,11.736,0.000,0.000,-30.600,-1,-1,-1,300.000,300.000);
  23617. tmpobjid = CreateDynamicObject(18756,1607.218,1569.644,11.736,0.000,0.000,-16.799,-1,-1,-1,300.000,300.000);
  23618. // quvin's shitty LSPD map
  23619. CreateDynamicObject(19375,-55.4991000,-859.6187700,1034.8949000,0.0000000,90.0000000,0.0000000); //
  23620. CreateDynamicObject(19375,-55.4991000,-869.2407800,1034.8949000,0.0000000,90.0000000,0.0000000); //
  23621. CreateDynamicObject(19375,-65.9854000,-869.2407800,1034.8949000,0.0000000,90.0000000,0.0000000); //
  23622. CreateDynamicObject(19375,-65.9854000,-859.6187700,1034.8949000,0.0000000,90.0000000,0.0000000); //
  23623. CreateDynamicObject(19375,-65.9854000,-850.0120800,1034.8949000,0.0000000,90.0000000,0.0000000); //
  23624. CreateDynamicObject(19375,-55.4991000,-850.0120800,1034.8949000,0.0000000,90.0000000,0.0000000); //
  23625. CreateDynamicObject(19358,-50.4067000,-862.6350700,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23626. CreateDynamicObject(19388,-50.4067000,-859.4309100,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23627. CreateDynamicObject(19358,-50.4067000,-856.2363300,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23628. CreateDynamicObject(19358,-52.0865000,-854.7153900,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23629. CreateDynamicObject(19358,-52.0865000,-864.1629000,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23630. CreateDynamicObject(19388,-53.7159000,-859.4309100,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23631. CreateDynamicObject(19404,-53.7159000,-862.6350700,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23632. CreateDynamicObject(19404,-53.7159000,-856.2363300,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23633. CreateDynamicObject(19358,-53.7159000,-853.0357100,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23634. CreateDynamicObject(19358,-53.7159000,-865.8270900,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23635. CreateDynamicObject(19404,-55.3771400,-867.3451500,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23636. CreateDynamicObject(19358,-55.3795000,-851.5246000,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23637. CreateDynamicObject(19358,-58.5742000,-851.5246000,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23638. CreateDynamicObject(19358,-58.5748000,-867.3452100,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23639. CreateDynamicObject(19358,-61.7580000,-851.5246000,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23640. CreateDynamicObject(19358,-60.1388700,-853.1887800,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23641. CreateDynamicObject(19404,-60.1389000,-856.3840900,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23642. CreateDynamicObject(19404,-60.1389000,-859.5734300,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23643. CreateDynamicObject(19404,-60.1389000,-862.7564100,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23644. CreateDynamicObject(19358,-61.7793000,-867.3452100,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23645. CreateDynamicObject(19358,-61.7783400,-864.2678800,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23646. CreateDynamicObject(19388,-61.6251000,-865.8040200,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23647. CreateDynamicObject(19375,-55.4991000,-840.3895300,1034.8949000,0.0000000,90.0000000,0.0000000); //
  23648. CreateDynamicObject(19375,-65.9854000,-840.3895300,1034.8949000,0.0000000,90.0000000,0.0000000); //
  23649. CreateDynamicObject(19358,-55.5029000,-845.1937900,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23650. CreateDynamicObject(19358,-61.8013000,-845.1937900,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23651. CreateDynamicObject(19358,-53.7154800,-849.8743900,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23652. CreateDynamicObject(19358,-53.7155000,-846.7511000,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23653. CreateDynamicObject(19388,-63.4032000,-849.8555900,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23654. CreateDynamicObject(19358,-63.4032000,-846.7036100,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23655. CreateDynamicObject(19388,-64.9464000,-851.5246000,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23656. CreateDynamicObject(19388,-64.9464000,-845.1937900,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23657. CreateDynamicObject(19358,-58.6595000,-845.1937900,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23658. CreateDynamicObject(19358,-66.5758000,-846.7036100,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23659. CreateDynamicObject(19358,-66.5758000,-849.9157100,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23660. CreateDynamicObject(19358,-66.5758000,-853.1630900,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23661. CreateDynamicObject(19388,-64.8959000,-854.6749300,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23662. CreateDynamicObject(19358,-61.7742000,-854.6749300,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23663. CreateDynamicObject(19358,-66.5758000,-856.3463700,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23664. CreateDynamicObject(19358,-66.5758000,-862.7531100,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23665. CreateDynamicObject(19358,-64.9721000,-864.2678800,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23666. CreateDynamicObject(19358,-68.1711000,-851.5246000,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23667. CreateDynamicObject(19358,-71.3646000,-851.5246000,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23668. CreateDynamicObject(19358,-72.8805000,-853.1472200,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23669. CreateDynamicObject(19375,-76.4492000,-850.0120800,1034.8949000,0.0000000,90.0000000,0.0000000); //
  23670. CreateDynamicObject(19358,-64.9721000,-867.3452100,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23671. CreateDynamicObject(19388,-66.5758000,-868.8665200,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23672. CreateDynamicObject(19358,-66.5758000,-872.0509000,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23673. CreateDynamicObject(19358,-65.0581000,-873.7241200,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23674. CreateDynamicObject(19358,-61.8742000,-873.7241200,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23675. CreateDynamicObject(19358,-58.6941000,-873.7241200,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23676. CreateDynamicObject(19358,-55.4891000,-873.7241200,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23677. CreateDynamicObject(19358,-52.3060000,-873.7241200,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23678. CreateDynamicObject(19358,-53.7159000,-868.9809000,1036.7172900,0.0000000,0.0000000,0.0600000); //
  23679. CreateDynamicObject(19358,-53.7159000,-872.1502100,1036.7172900,0.0000000,0.0000000,0.0600000); //
  23680. CreateDynamicObject(19358,-53.7155000,-843.6253100,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23681. CreateDynamicObject(19358,-53.7155000,-840.4467200,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23682. CreateDynamicObject(19358,-55.3590000,-838.9138200,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23683. CreateDynamicObject(19358,-58.5471000,-838.9138200,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23684. CreateDynamicObject(19388,-66.5758000,-843.6428200,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23685. CreateDynamicObject(19358,-66.5758000,-840.4404300,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23686. CreateDynamicObject(19358,-61.7472000,-838.9138200,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23687. CreateDynamicObject(19358,-64.9317000,-838.9138200,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23688. CreateDynamicObject(19388,-68.2264000,-845.1937900,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23689. CreateDynamicObject(19388,-68.2264000,-838.9138200,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23690. CreateDynamicObject(19358,-69.8834000,-840.5034200,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23691. CreateDynamicObject(19358,-69.8834000,-843.6851200,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23692. CreateDynamicObject(19375,-76.4492000,-869.2407800,1034.8949000,0.0000000,90.0000000,0.0000000); //
  23693. CreateDynamicObject(19375,-76.4492000,-859.6187700,1034.8949000,0.0000000,90.0000000,0.0000000); //
  23694. CreateDynamicObject(19388,-70.0828000,-867.3452100,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23695. CreateDynamicObject(19388,-68.5665000,-870.6110800,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23696. CreateDynamicObject(19431,-68.5665000,-868.2218000,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23697. CreateDynamicObject(19358,-70.1980100,-872.1177400,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23698. CreateDynamicObject(19375,-65.9854000,-878.8668200,1034.8949000,0.0000000,90.0000000,0.0000000); //
  23699. CreateDynamicObject(19375,-76.4492000,-878.8668200,1034.8949000,0.0000000,90.0000000,0.0000000); //
  23700. CreateDynamicObject(19375,-55.4991000,-878.8668200,1034.8949000,0.0000000,90.0000000,0.0000000); //
  23701. CreateDynamicObject(19388,-68.2204000,-864.2678800,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23702. CreateDynamicObject(19358,-72.8805000,-856.3516800,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23703. CreateDynamicObject(19388,-72.8805000,-859.5463900,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23704. CreateDynamicObject(19358,-72.8805000,-862.7338900,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23705. CreateDynamicObject(19358,-71.3661000,-864.2678800,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23706. CreateDynamicObject(19388,-76.3091700,-853.1917100,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23707. CreateDynamicObject(19358,-77.8276000,-851.5246000,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23708. CreateDynamicObject(19388,-80.9757000,-851.5246000,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23709. CreateDynamicObject(19375,-86.9047000,-850.0120800,1034.8949000,0.0000000,90.0000000,0.0000000); //
  23710. CreateDynamicObject(19375,-86.9047000,-859.6187700,1034.8949000,0.0000000,90.0000000,0.0000000); //
  23711. CreateDynamicObject(19358,-82.4969000,-853.1989100,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23712. CreateDynamicObject(19358,-82.4969000,-856.3911100,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23713. CreateDynamicObject(19358,-82.4969000,-859.5875200,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23714. CreateDynamicObject(19358,-76.3092000,-856.3828700,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23715. CreateDynamicObject(19358,-76.3092000,-859.5571900,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23716. CreateDynamicObject(19358,-78.4213600,-849.8753700,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23717. CreateDynamicObject(19358,-82.4969000,-849.8900800,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23718. CreateDynamicObject(19358,-81.1198000,-848.2882100,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23719. CreateDynamicObject(19358,-76.3092000,-862.7381000,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23720. CreateDynamicObject(19358,-82.4969000,-862.7334000,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23721. CreateDynamicObject(19358,-77.9849000,-864.2548800,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23722. CreateDynamicObject(19358,-81.1514000,-864.2548800,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23723. CreateDynamicObject(19388,-77.8952900,-860.7139900,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23724. CreateDynamicObject(19358,-81.0266000,-860.7139900,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23725. CreateDynamicObject(19358,-73.2722000,-867.3452100,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23726. CreateDynamicObject(19358,-74.7944900,-868.9923700,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23727. CreateDynamicObject(19388,-76.4556000,-867.3452100,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23728. CreateDynamicObject(19358,-74.7945000,-872.1652800,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23729. CreateDynamicObject(19358,-76.4403500,-873.6803600,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23730. CreateDynamicObject(19358,-79.6019000,-873.6804200,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23731. CreateDynamicObject(19388,-82.7388000,-865.7885700,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23732. CreateDynamicObject(19358,-82.7388000,-868.9622800,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23733. CreateDynamicObject(19375,-86.9047000,-869.2407800,1034.8949000,0.0000000,90.0000000,0.0000000); //
  23734. CreateDynamicObject(19358,-81.9922900,-871.9318200,1036.7172900,0.0000000,0.0000000,28.1999200); //
  23735. CreateDynamicObject(19358,-80.4896900,-874.7400500,1036.7172900,0.0000000,0.0000000,28.1999200); //
  23736. CreateDynamicObject(19358,-73.1990000,-872.1176800,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23737. CreateDynamicObject(19358,-79.6219000,-867.3452100,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23738. CreateDynamicObject(19431,-68.5665000,-873.0000000,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23739. CreateDynamicObject(19388,-67.5522000,-873.8595000,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23740. CreateDynamicObject(19358,-70.6959000,-873.8595000,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23741. CreateDynamicObject(19358,-73.8556000,-873.8595000,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23742. CreateDynamicObject(19358,-65.8972000,-875.4549000,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23743. CreateDynamicObject(19358,-75.5093000,-875.4549000,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23744. CreateDynamicObject(19358,-75.5052000,-878.6154800,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23745. CreateDynamicObject(19358,-65.8972000,-878.6143800,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23746. CreateDynamicObject(19358,-67.5091000,-880.2332800,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23747. CreateDynamicObject(19358,-70.6868000,-880.2332800,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23748. CreateDynamicObject(19358,-73.8646200,-880.2333400,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23749. CreateDynamicObject(19358,-52.3525000,-845.1937900,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23750. CreateDynamicObject(19358,-71.5768000,-848.2882100,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23751. CreateDynamicObject(19358,-69.8834000,-846.7659300,1036.7172900,0.0000000,0.0000000,0.0000000); //
  23752. CreateDynamicObject(19358,-74.7497000,-848.2882100,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23753. CreateDynamicObject(19358,-77.9523000,-848.2882100,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23754. CreateDynamicObject(19358,-82.8037000,-867.3452100,1036.7172900,0.0000000,0.0000000,90.0000000); //
  23755. CreateDynamicObject(1566,-50.3711700,-860.2108800,1036.1434300,0.0000000,0.0000000,90.0000000); //
  23756. CreateDynamicObject(19375,-55.4991000,-840.3895300,1038.4967000,0.0000000,90.0000000,0.0000000); //
  23757. CreateDynamicObject(19375,-55.4991000,-850.0120800,1038.4967000,0.0000000,90.0000000,0.0000000); //
  23758. CreateDynamicObject(19375,-55.4991000,-859.6187700,1038.4967000,0.0000000,90.0000000,0.0000000); //
  23759. CreateDynamicObject(19375,-55.4991000,-869.2407800,1038.4967000,0.0000000,90.0000000,0.0000000); //
  23760. CreateDynamicObject(19375,-65.9854000,-869.2407800,1038.4967000,0.0000000,90.0000000,0.0000000); //
  23761. CreateDynamicObject(19375,-65.9854000,-878.8668200,1038.4967000,0.0000000,90.0000000,0.0000000); //
  23762. CreateDynamicObject(19375,-76.4492000,-878.8668200,1038.4967000,0.0000000,90.0000000,0.0000000); //
  23763. CreateDynamicObject(19375,-76.4492000,-869.2407800,1038.4967000,0.0000000,90.0000000,0.0000000); //
  23764. CreateDynamicObject(19375,-76.4492000,-859.6187700,1038.4967000,0.0000000,90.0000000,0.0000000); //
  23765. CreateDynamicObject(19375,-65.9854000,-859.6187700,1038.4967000,0.0000000,90.0000000,0.0000000); //
  23766. CreateDynamicObject(19375,-86.9047000,-859.6187700,1038.4967000,0.0000000,90.0000000,0.0000000); //
  23767. CreateDynamicObject(19375,-86.9047000,-869.2407800,1038.4967000,0.0000000,90.0000000,0.0000000); //
  23768. CreateDynamicObject(19375,-65.9854000,-850.0120800,1038.4967000,0.0000000,90.0000000,0.0000000); //
  23769. CreateDynamicObject(19375,-76.4492000,-850.0120800,1038.4967000,0.0000000,90.0000000,0.0000000); //
  23770. CreateDynamicObject(19375,-65.9854000,-840.3895300,1038.4967000,0.0000000,90.0000000,0.0000000); //
  23771. CreateDynamicObject(19375,-86.9047000,-850.0120800,1038.4967000,0.0000000,90.0000000,0.0000000); //
  23772. // Apartment complexes
  23773. CreateDynamicObject(19456,1286.8387450,-1970.9818110,1858.3143310,0.0000000,0.0000000,0.0000000); //
  23774. CreateDynamicObject(19456,1286.8387450,-1961.3817130,1858.3143310,0.0000000,0.0000000,0.0000000); //
  23775. CreateDynamicObject(19378,1291.5527340,-1961.8082270,1856.5080560,0.0000000,90.0000000,90.0000000); //
  23776. CreateDynamicObject(19378,1291.5527340,-1972.3103020,1856.5080560,0.0000000,90.0000000,90.0000000); //
  23777. CreateDynamicObject(19456,1296.2694090,-1955.4439690,1858.3243400,0.0000000,0.0000000,0.0000000); //
  23778. CreateDynamicObject(19456,1296.2694090,-1965.0627440,1858.3243400,0.0000000,0.0000000,0.0000000); //
  23779. CreateDynamicObject(19456,1291.4799800,-1956.6035150,1858.3143310,0.0000000,0.0000000,90.0000000); //
  23780. CreateDynamicObject(19456,1281.8898920,-1956.6035150,1858.3143310,0.0000000,0.0000000,90.0000000); //
  23781. CreateDynamicObject(19377,1291.3582760,-1955.4737540,1859.7727050,0.0000000,90.0000000,180.1341700); //
  23782. CreateDynamicObject(19377,1291.3815910,-1965.0534660,1859.7727050,0.0000000,90.0000000,180.1341700); //
  23783. CreateDynamicObject(1569,1290.0749510,-1956.6640620,1856.5233150,0.0000000,0.0000000,0.0000000); //
  23784. CreateDynamicObject(1569,1293.0756830,-1956.6530760,1856.5233150,0.0000000,0.0000000,180.0000000); //
  23785. CreateDynamicObject(14596,1293.5512690,-1970.9888910,1867.2731930,0.0000000,0.0000000,0.0000000); //
  23786. CreateDynamicObject(19456,1285.1213370,-1969.8734130,1858.3143310,0.0000000,0.0000000,90.0000000); //
  23787. CreateDynamicObject(19456,1297.7989500,-1969.8446040,1858.3143310,0.0000000,0.0000000,90.0000000); //
  23788. CreateDynamicObject(1300,1287.7456050,-1957.3218990,1856.9833980,0.0000000,0.0000000,-1.8891780); //
  23789. CreateDynamicObject(2000,1286.9505610,-1959.9287100,1857.5635980,0.0000000,0.0000000,90.0000000); //
  23790. CreateDynamicObject(2000,1286.9505610,-1960.4095450,1857.5635980,0.0000000,0.0000000,90.0000000); //
  23791. CreateDynamicObject(2000,1286.9505610,-1960.8896480,1857.5635980,0.0000000,0.0000000,90.0000000); //
  23792. CreateDynamicObject(2000,1286.9505610,-1961.3704830,1857.5635980,0.0000000,0.0000000,90.0000000); //
  23793. CreateDynamicObject(2000,1286.9505610,-1961.8511960,1857.5635980,0.0000000,0.0000000,90.0000000); //
  23794. CreateDynamicObject(2000,1286.9505610,-1962.3305660,1857.5635980,0.0000000,0.0000000,90.0000000); //
  23795. CreateDynamicObject(2000,1286.9505610,-1962.8105460,1857.5635980,0.0000000,0.0000000,90.0000000); //
  23796. CreateDynamicObject(2000,1286.9505610,-1963.2911370,1857.5635980,0.0000000,0.0000000,90.0000000); //
  23797. CreateDynamicObject(2000,1286.9505610,-1963.7708740,1857.5635980,0.0000000,0.0000000,90.0000000); //
  23798. CreateDynamicObject(2000,1286.9505610,-1964.2510980,1857.5635980,0.0000000,0.0000000,90.0000000); //
  23799. CreateDynamicObject(1756,1295.7011710,-1958.6499020,1856.5433340,0.0000000,0.0000000,-90.0000000); //
  23800. CreateDynamicObject(1756,1295.7011710,-1962.0902090,1856.5433340,0.0000000,0.0000000,-90.0000000); //
  23801. CreateDynamicObject(2289,1296.1312250,-1961.2714840,1858.6140130,0.0000000,0.0000000,270.0000000); //
  23802. CreateDynamicObject(1738,1296.0211180,-1965.7048330,1857.1837150,0.0000000,0.0000000,90.0000000); //
  23803. CreateDynamicObject(1767,1287.3675530,-1968.8149410,1856.6032710,0.0000000,0.0000000,90.0000000); //
  23804. CreateDynamicObject(1767,1287.3675530,-1967.0848380,1856.6032710,0.0000000,0.0000000,90.0000000); //
  23805. CreateDynamicObject(1209,1295.8861080,-1967.5371090,1856.5839840,0.0000000,0.0000000,270.0000000); //
  23806. CreateDynamicObject(1775,1296.0007320,-1968.8223870,1857.6740720,0.0000000,0.0000000,271.9678340); //
  23807. CreateDynamicObject(19456,1275.0395500,-1964.4108880,1864.0137930,0.0000000,0.0000000,90.0000000); //
  23808. CreateDynamicObject(19378,1282.3737790,-1968.8480220,1862.3002920,0.0000000,90.0000000,90.0000000); //
  23809. CreateDynamicObject(19456,1284.6390380,-1970.1315910,1864.0137930,0.0000000,0.0000000,90.0000000); //
  23810. CreateDynamicObject(19456,1287.1677240,-1973.1013180,1864.0137930,0.0000000,0.0000000,179.9999840); //
  23811. CreateDynamicObject(19456,1287.1677240,-1961.4114990,1864.0137930,0.0000000,0.0000000,179.9999840); //
  23812. CreateDynamicObject(19378,1272.7440180,-1968.8480220,1862.3002920,0.0000000,90.0000000,90.0000000); //
  23813. CreateDynamicObject(19456,1284.6290280,-1964.4108880,1864.0137930,0.0000000,0.0000000,90.0000000); //
  23814. CreateDynamicObject(19377,1283.0627440,-1966.0638420,1865.7432860,0.0000000,90.0000000,180.1341700); //
  23815. CreateDynamicObject(19377,1272.5823970,-1966.0887450,1865.7432860,0.0000000,90.0000000,180.1341700); //
  23816. CreateDynamicObject(19456,1275.0781250,-1970.1315910,1864.0137930,0.0000000,0.0000000,90.0000000); //
  23817. CreateDynamicObject(19456,1265.4680170,-1970.1315910,1864.0137930,0.0000000,0.0000000,90.0000000); //
  23818. CreateDynamicObject(19456,1265.4298090,-1964.4108880,1864.0137930,0.0000000,0.0000000,90.0000000); //
  23819. CreateDynamicObject(19378,1263.1448970,-1968.8480220,1862.3002920,0.0000000,90.0000000,90.0000000); //
  23820. CreateDynamicObject(19377,1262.1016840,-1966.1123040,1865.7432860,0.0000000,90.0000000,180.1341700); //
  23821. CreateDynamicObject(1555,1283.5422360,-1970.1070550,1862.3760980,0.0000000,0.0000000,0.0000000); //
  23822. CreateDynamicObject(1555,1278.7216790,-1970.1070550,1862.3760980,0.0000000,0.0000000,0.0000000); //
  23823. CreateDynamicObject(1555,1274.6210930,-1970.1070550,1862.3760980,0.0000000,0.0000000,0.0000000); //
  23824. CreateDynamicObject(1555,1270.0102530,-1970.1070550,1862.3760980,0.0000000,0.0000000,0.0000000); //
  23825. CreateDynamicObject(1555,1265.3599850,-1970.1070550,1862.3760980,0.0000000,0.0000000,0.0000000); //
  23826. CreateDynamicObject(1555,1261.6092520,-1970.1070550,1862.3760980,0.0000000,0.0000000,0.0000000); //
  23827. CreateDynamicObject(1555,1285.1723630,-1964.4666740,1862.3760980,0.0000000,0.0000000,180.0000000); //
  23828. CreateDynamicObject(1555,1280.1916500,-1964.4666740,1862.3760980,0.0000000,0.0000000,180.0000000); //
  23829. CreateDynamicObject(1555,1276.0716550,-1964.4666740,1862.3760980,0.0000000,0.0000000,180.0000000); //
  23830. CreateDynamicObject(1555,1271.6309810,-1964.4666740,1862.3760980,0.0000000,0.0000000,180.0000000); //
  23831. CreateDynamicObject(1555,1266.9803460,-1964.4666740,1862.3760980,0.0000000,0.0000000,180.0000000); //
  23832. CreateDynamicObject(1555,1263.1999510,-1964.4666740,1862.3760980,0.0000000,0.0000000,180.0000000); //
  23833. CreateDynamicObject(19456,1255.8470450,-1970.1315910,1864.0137930,0.0000000,0.0000000,90.0000000); //
  23834. CreateDynamicObject(19456,1255.8470450,-1964.4204100,1864.0137930,0.0000000,0.0000000,90.0000000); //
  23835. CreateDynamicObject(19456,1259.6102290,-1968.6601560,1864.0137930,0.0000000,0.0000000,179.9999840); //
  23836. CreateDynamicObject(2949,1259.7264400,-1967.9449460,1862.3663330,0.0000000,0.0000000,-180.0000000); //
  23837. CreateDynamicObject(19456,1287.1677240,-1973.1013180,1869.8757320,0.0000000,0.0000000,179.9999840); //
  23838. CreateDynamicObject(19378,1282.3737790,-1968.8480220,1868.1317130,0.0000000,90.0000000,90.0000000); //
  23839. CreateDynamicObject(19456,1287.1677240,-1961.3811030,1869.8757320,0.0000000,0.0000000,179.9999840); //
  23840. CreateDynamicObject(19377,1283.0142820,-1966.0660400,1871.4656980,0.0000000,90.0000000,180.1341700); //
  23841. CreateDynamicObject(19456,1284.1285400,-1964.4108880,1869.9355460,0.0000000,0.0000000,90.0000000); //
  23842. CreateDynamicObject(19456,1274.5085440,-1964.4108880,1869.9355460,0.0000000,0.0000000,90.0000000); //
  23843. CreateDynamicObject(19456,1259.6102290,-1968.6601560,1869.9051510,0.0000000,0.0000000,179.9999840); //
  23844. CreateDynamicObject(19378,1272.7752680,-1968.8480220,1868.1417230,0.0000000,90.0000000,90.0000000); //
  23845. CreateDynamicObject(19378,1263.2152090,-1968.8480220,1868.1417230,0.0000000,90.0000000,90.0000000); //
  23846. CreateDynamicObject(19456,1264.8972160,-1964.4108880,1869.9355460,0.0000000,0.0000000,90.0000000); //
  23847. CreateDynamicObject(19456,1255.2874750,-1964.4108880,1869.9355460,0.0000000,0.0000000,90.0000000); //
  23848. CreateDynamicObject(19456,1284.6390380,-1970.1315910,1869.9257810,0.0000000,0.0000000,90.0000000); //
  23849. CreateDynamicObject(19456,1275.0290520,-1970.1315910,1869.9257810,0.0000000,0.0000000,90.0000000); //
  23850. CreateDynamicObject(19456,1265.4396970,-1970.1315910,1869.9257810,0.0000000,0.0000000,90.0000000); //
  23851. CreateDynamicObject(19456,1255.8597410,-1970.1315910,1869.9257810,0.0000000,0.0000000,90.0000000); //
  23852. CreateDynamicObject(19377,1272.5142820,-1966.0913080,1871.4656980,0.0000000,90.0000000,180.1341700); //
  23853. CreateDynamicObject(19377,1262.0538330,-1966.1158440,1871.4656980,0.0000000,90.0000000,180.1341700); //
  23854. CreateDynamicObject(1555,1285.1723630,-1964.4666740,1868.1966550,0.0000000,0.0000000,180.0000000); //
  23855. CreateDynamicObject(1555,1280.1916500,-1964.4666740,1868.2158200,0.0000000,0.0000000,180.0000000); //
  23856. CreateDynamicObject(1555,1276.0716550,-1964.4666740,1868.2263180,0.0000000,0.0000000,180.0000000); //
  23857. CreateDynamicObject(1555,1271.6309810,-1964.4666740,1868.2257080,0.0000000,0.0000000,180.0000000); //
  23858. CreateDynamicObject(1555,1266.9803460,-1964.4666740,1868.2265620,0.0000000,0.0000000,180.0000000); //
  23859. CreateDynamicObject(1555,1263.1999510,-1964.4666740,1868.2261960,0.0000000,0.0000000,180.0000000); //
  23860. CreateDynamicObject(1555,1261.6092520,-1970.1070550,1868.2260740,0.0000000,0.0000000,0.0000000); //
  23861. CreateDynamicObject(1555,1265.3599850,-1970.1070550,1868.2161860,0.0000000,0.0000000,0.0000000); //
  23862. CreateDynamicObject(1555,1270.0102530,-1970.1070550,1868.2264400,0.0000000,0.0000000,0.0000000); //
  23863. CreateDynamicObject(1555,1274.6210930,-1970.1070550,1868.2166740,0.0000000,0.0000000,0.0000000); //
  23864. CreateDynamicObject(1555,1278.7216790,-1970.1070550,1868.2058100,0.0000000,0.0000000,0.0000000); //
  23865. CreateDynamicObject(1555,1283.5422360,-1970.1070550,1868.1956780,0.0000000,0.0000000,0.0000000); //
  23866. CreateDynamicObject(2949,1259.7264400,-1967.9449460,1868.2369380,0.0000000,0.0000000,-180.0000000); //
  23867. CreateDynamicObject(18756,1290.4686270,-1967.3747550,1875.9339590,0.0000000,0.0000000,0.0000000); //
  23868. CreateDynamicObject(18757,1290.4708250,-1967.4128410,1875.9340820,0.0000000,0.0000000,0.0000000); //
  23869. for (new i = 0; i < MAX_OBJECTS; i ++) {
  23870. if (IsValidObject(i)) objects++;
  23871. }
  23872. printf("(INFO) %i objects loaded.", objects);
  23873. }
  23874. IsVehicleInRangeOfPoint(vehicleid, Float:range, Float:x, Float:y, Float:z)
  23875. {
  23876. new
  23877. Float:fX,
  23878. Float:fY,
  23879. Float:fZ;
  23880. GetVehiclePos(vehicleid, fX, fY, fZ);
  23881. return IsPointInRangeOfPoint(range, fX, fY, fZ, x, y, z);
  23882. }
  23883. IsPointInRangeOfPoint(Float:range, Float:fX, Float:fY, Float:fZ, Float:x, Float:y, Float:z)
  23884. {
  23885. fX -= x;
  23886. fY -= y;
  23887. fZ -= z;
  23888. return ((fX * fX) + (fY * fY) + (fZ * fZ)) < (range * range);
  23889. }
  23890. SetPlayerRecord(amount)
  23891. {
  23892. new
  23893. date[3];
  23894. getdate(date[2], date[1], date[0]);
  23895. Server[PlayerRecord] = amount;
  23896. format(Server[RecordDate], 24, "%02d/%02d/%i", date[0], date[1], date[2]);
  23897. SaveInformation();
  23898. }
  23899. stock CreateLog(file[], string[])
  23900. {
  23901. new time[6];
  23902. gettime(time[0], time[1], time[2]);
  23903. getdate(time[3], time[4], time[5]);
  23904. new timestr[32], data[512];
  23905. format(timestr, 32, "[%02d.%02d|%02d:%02d] ", time[5], time[4], time[0], time[1]);
  23906. format(data, sizeof(data), "%s%s\r\n", timestr, string);
  23907. new File:hFile, thefile[32];
  23908. format(thefile, sizeof(thefile), "/Server/log_%s.log", file);
  23909. hFile = fopen(thefile, io_append);
  23910. fwrite(hFile, data);
  23911. fclose(hFile);
  23912. return 1;
  23913. }
  23914. SaveInformation()
  23915. {
  23916. new File:file = fopen("Server/info.ini", io_write);
  23917. if (file)
  23918. {
  23919. INI_WriteInt(file, "Accounts", Server[Accounts]);
  23920. INI_WriteInt(file, "PlayerRecord", Server[PlayerRecord]);
  23921. INI_WriteValue(file, "RecordDate", Server[RecordDate]);
  23922. INI_WriteInt(file, "TaxRate", Server[TaxRate]);
  23923. INI_WriteInt(file, "TaxVault", Server[TaxVault]);
  23924. INI_WriteValue(file, "Motd", Server[Motd]);
  23925. fclose(file);
  23926. }
  23927. }
  23928. LoadInformation()
  23929. {
  23930. new File:file = fopen("Server/info.ini", io_read);
  23931. if (file)
  23932. {
  23933. INI_GetValue(file, "RecordDate", Server[RecordDate], 24);
  23934. Server[Accounts] = INI_GetInteger(file, "Accounts");
  23935. Server[PlayerRecord] = INI_GetInteger(file, "PlayerRecord");
  23936. Server[TaxRate] = INI_GetInteger(file, "TaxRate");
  23937. Server[TaxVault] = INI_GetInteger(file, "TaxVault");
  23938. INI_GetValue(file, "Motd", Server[Motd], 128);
  23939. if (!Server[TaxRate])
  23940. {
  23941. Server[TaxRate] = 5;
  23942. }
  23943. fclose(file);
  23944. }
  23945. }
  23946. /*strcpy(dest[], const src[], maxlength = sizeof(dest))
  23947. {
  23948. dest[0] = 0;
  23949. return strcat(dest, src, maxlength);
  23950. }*/
  23951. cache_fetch_string(row, field_name[])
  23952. {
  23953. new
  23954. retString[128];
  23955. cache_get_field_content(row, field_name, retString, gConnection, sizeof(retString));
  23956. return retString;
  23957. }
  23958. GetSkinGender(skin)
  23959. {
  23960. switch (skin)
  23961. {
  23962. case 0..8, 14..30, 32..37, 42..52, 57..62, 66..68, 70..74, 78..84, 86, 94..128, 132..137, 142..144, 146, 147, 149, 153..156, 158..168, 170, 171, 173..177, 179..189, 200, 202..204, 206, 208..210, 212, 213, 217, 220..223, 227..230, 234..236, 239..242, 247..250, 252..255, 258..262, 264..297, 299:
  23963. return 1;
  23964. default:
  23965. return 2;
  23966. }
  23967. return 0;
  23968. }
  23969. ClearProducts(company)
  23970. {
  23971. switch (Companies[company][cType])
  23972. {
  23973. case COMPANY_RESTAURANT:
  23974. {
  23975. for (new i = 0; i < MAX_RESTAURANT_ITEMS; i ++)
  23976. {
  23977. if (RestaurantItems[company][i][rtExists])
  23978. {
  23979. RestaurantItems[company][i][rtExists] = 0;
  23980. }
  23981. }
  23982. format(gExecute, sizeof(gExecute), "DELETE FROM rp_fooditems WHERE cID = %i", Companies[company][cID]);
  23983. mysql_tquery(gConnection, gExecute);
  23984. }
  23985. case COMPANY_RENTALS:
  23986. {
  23987. for (new i = 0; i < MAX_CARS; i ++)
  23988. {
  23989. if (Vehicles[i][vExists] && Vehicles[i][vRentable] && Vehicles[i][vCompany] == Companies[company][cID])
  23990. {
  23991. DestroyVehicleEx(Vehicles[i][vVehicle]);
  23992. DestroyDynamic3DTextLabel(Vehicles[i][vText]);
  23993. Vehicles[i][vExists] = 0;
  23994. Vehicles[i][vCompany] = 0;
  23995. Vehicles[i][vRentable] = 0;
  23996. Vehicles[i][vRenter] = INVALID_PLAYER_ID;
  23997. Vehicles[i][vVehicle] = INVALID_VEHICLE_ID;
  23998. }
  23999. }
  24000. format(gExecute, sizeof(gExecute), "DELETE FROM rp_vehicles WHERE vCompany = %i", Companies[company][cID]);
  24001. mysql_tquery(gConnection, gExecute);
  24002. }
  24003. case COMPANY_DEALERSHIP:
  24004. {
  24005. for (new i = 0; i < MAX_DEALERSHIP_CARS; i ++)
  24006. {
  24007. if (DealershipCars[i][dcExists] && DealershipCars[i][dcCompany] == Companies[company][cID])
  24008. {
  24009. DealershipCars[i][dcExists] = 0;
  24010. }
  24011. }
  24012. format(gExecute, sizeof(gExecute), "DELETE FROM rp_dealercars WHERE Company = %i", Companies[company][cID]);
  24013. mysql_tquery(gConnection, gExecute);
  24014. }
  24015. }
  24016. }
  24017. ClearListedItems(playerid)
  24018. {
  24019. for (new i = 0; i < sizeof(gListedItems[]); i ++)
  24020. {
  24021. gListedItems[playerid][i] = INVALID_ID;
  24022. }
  24023. }
  24024. ClearReports(playerid)
  24025. {
  24026. for (new i = 0; i < MAX_REPORTS; i ++)
  24027. {
  24028. if (Reports[i][rExists] && Reports[i][rReporter] == playerid)
  24029. {
  24030. Reports[i][rExists] = 0;
  24031. }
  24032. }
  24033. }
  24034. ResetNameChange(playerid)
  24035. {
  24036. strcpy(Players[playerid][pNameChange], "Not Specified", MAX_PLAYER_NAME);
  24037. }
  24038. ClearData(playerid)
  24039. {
  24040. for(new i = 0; i < MAX_PLAYERS; i ++)
  24041. {
  24042. BlockedPM[playerid][i] = false;
  24043. }
  24044. currentQuestion[playerid] = 0;
  24045. gPlayerKicked[playerid] = 0;
  24046. pSpecLimit[playerid] = 0;
  24047. ClearListedItems(playerid);
  24048. for (new i = 0; i < MAX_BANK_ACCOUNTS; i ++)
  24049. {
  24050. BankAccounts[playerid][i][bankExists] = 0;
  24051. BankAccounts[playerid][i][bankID] = 0;
  24052. BankAccounts[playerid][i][bankBalance] = 0;
  24053. }
  24054. for (new i = 0; i < MAX_ACCESSORIES; i ++)
  24055. {
  24056. Accessories[playerid][i][aExists] = 0;
  24057. Accessories[playerid][i][aModel] = 0;
  24058. Accessories[playerid][i][aBone] = 0;
  24059. Accessories[playerid][i][aAttached] = 0;
  24060. }
  24061. for (new i = 0; i < MAX_INVENTORY_ITEMS; i ++)
  24062. {
  24063. Inventory[playerid][i][invExists] = 0;
  24064. Inventory[playerid][i][invID] = 0;
  24065. }
  24066. for (new i = 0; i < sizeof(g_TrashPickups); i ++)
  24067. {
  24068. gTrashObjects[playerid][i] = INVALID_OBJECT_ID;
  24069. }
  24070. strcpy(Players[playerid][pCallsign], "None", 128);
  24071. strcpy(Players[playerid][pGPCI], "None", 41);
  24072. Players[playerid][pID] = INVALID_ID;
  24073. Players[playerid][pIgnoreTD] = 0;
  24074. Players[playerid][pLoggedIn] = 0;
  24075. Players[playerid][pSetupInfo] = 0;
  24076. Players[playerid][pOrigin] = 0;
  24077. Players[playerid][pGender] = 0;
  24078. Players[playerid][pAge] = 18;
  24079. Players[playerid][pSkin] = 1;
  24080. Players[playerid][pUniform] = INVALID_ID;
  24081. Players[playerid][pOutfitIndex] = INVALID_ID;
  24082. Players[playerid][pHealth] = 100.0;
  24083. Players[playerid][pArmor] = 0.0;
  24084. Players[playerid][pTraveled] = 0.0;
  24085. Players[playerid][pPocketMoney] = 3000;
  24086. Players[playerid][pSendText] = 0;
  24087. Players[playerid][pSelected] = INVALID_ID;
  24088. Players[playerid][pEditUniform] = INVALID_ID;
  24089. Players[playerid][pProduct] = INVALID_ID;
  24090. Players[playerid][pAdmin] = 0;
  24091. Players[playerid][pMapper] = 0;
  24092. Players[playerid][pJailType] = 0;
  24093. Players[playerid][pJailTime] = 0;
  24094. Players[playerid][pMuted] = 0;
  24095. Players[playerid][pFitness] = 0;
  24096. Players[playerid][pMinutes] = 0;
  24097. Players[playerid][pHoursOnline] = 0;
  24098. Players[playerid][pJob] = JOB_NONE;
  24099. Players[playerid][pJobPaycheck] = 0;
  24100. Players[playerid][pPaycheck] = 0;
  24101. Players[playerid][pWorkoutTime] = 0;
  24102. Players[playerid][pGymMembership] = 0;
  24103. Players[playerid][pPhone] = 0;
  24104. Players[playerid][pPhoneOff] = 0;
  24105. Players[playerid][pDeathState] = DEATH_STATE_NONE;
  24106. Players[playerid][pDeathTime] = 0;
  24107. Players[playerid][pHospital] = HOSPITAL_NONE;
  24108. Players[playerid][pShowPM] = 1;
  24109. Players[playerid][pShowSpeed] = 1;
  24110. Players[playerid][pShowFuel] = 1;
  24111. Players[playerid][pShowTime] = 1;
  24112. Players[playerid][pShowOOC] = 1;
  24113. Players[playerid][pShowReports] = 1;
  24114. Players[playerid][pShowAdmin] = 1;
  24115. Players[playerid][pShowSupporter] = 1;
  24116. Players[playerid][pBleeding] = 0;
  24117. Players[playerid][pBleedingTime] = 0;
  24118. Players[playerid][pPaymentType] = PAYMENT_TYPE_CASH;
  24119. Players[playerid][pBankAccount] = 0;
  24120. Players[playerid][pSupporter] = 0;
  24121. Players[playerid][pVeteran] = 0;
  24122. Players[playerid][pFactionMod] = 0;
  24123. Players[playerid][pAdminName] = 0;
  24124. Players[playerid][pHideAdmin] = 0;
  24125. Players[playerid][pBrokenLeg] = 0;
  24126. Players[playerid][pChatStyle] = 1;
  24127. Players[playerid][pChannel] = 0;
  24128. Players[playerid][pDonator] = 0;
  24129. Players[playerid][pExpiryDate] = 0;
  24130. Players[playerid][pNameChanges] = 0;
  24131. Players[playerid][pSpawnType] = SPAWN_TYPE_LAST;
  24132. Players[playerid][pBadge] = 0;
  24133. Players[playerid][pModPreview] = 0;
  24134. Players[playerid][pActivated] = 0;
  24135. Players[playerid][pBeingReported] = 0;
  24136. strcpy(Players[playerid][pReportReason], "None", 64);
  24137. Players[playerid][pBankMoney] = 0;
  24138. Players[playerid][pSavingsMoney] = 0;
  24139. Players[playerid][pFurnitureMenu] = 0;
  24140. Players[playerid][pAccessoryMenu] = 0;
  24141. Players[playerid][pHotwireTime] = 0;
  24142. Players[playerid][pStartEngine] = 0;
  24143. Players[playerid][pLastReport] = 0;
  24144. Players[playerid][pSupportTime] = 0;
  24145. Players[playerid][pBanPage] = 0;
  24146. Players[playerid][pLights] = 0;
  24147. Players[playerid][pPaused] = 0;
  24148. Players[playerid][pLastUpdate] = 0;
  24149. Players[playerid][pFireTime] = 0;
  24150. Players[playerid][pWeight] = 0;
  24151. Players[playerid][pReps] = 0;
  24152. Players[playerid][pSpeedLevel] = 0;
  24153. Players[playerid][pDistanceRan] = 0;
  24154. Players[playerid][pJobStage] = 0;
  24155. Players[playerid][pMining] = 0;
  24156. Players[playerid][pWorking] = 0;
  24157. Players[playerid][pGoods] = 0;
  24158. Players[playerid][pSetPosition] = 0;
  24159. Players[playerid][pFlashOn] = 0;
  24160. Players[playerid][pSitting] = 0;
  24161. Players[playerid][pStatsPage] = 0;
  24162. Players[playerid][pParkTime] = 0;
  24163. Players[playerid][pCalling] = 0;
  24164. Players[playerid][pTaxiTime] = 0;
  24165. Players[playerid][pTaxiFare] = 0;
  24166. Players[playerid][pTaxiDuty] = false;
  24167. Players[playerid][pTaxiMeter] = 0;
  24168. Players[playerid][pPassenger] = 0;
  24169. Players[playerid][pGasPrice] = 0;
  24170. Players[playerid][pMedicKit] = 0;
  24171. Players[playerid][pPainkillers] = 0;
  24172. Players[playerid][pPickTime] = 0;
  24173. Players[playerid][pFainted] = 0;
  24174. Players[playerid][pUnfairDeath] = 0;
  24175. Players[playerid][pAdminDuty] = 0;
  24176. Players[playerid][pSupporterDuty] = 0;
  24177. Players[playerid][pMapperDuty] = 0;
  24178. Players[playerid][pCheatFlags] = 0;
  24179. Players[playerid][pTazer] = 0;
  24180. Players[playerid][pTazed] = 0;
  24181. Players[playerid][pHandcuffed] = 0;
  24182. Players[playerid][pWarrants] = 0;
  24183. Players[playerid][pCharges] = 0;
  24184. Players[playerid][pAnticheat] = 0;
  24185. Players[playerid][pDuty] = 0;
  24186. Players[playerid][pAnimation] = 0;
  24187. Players[playerid][pSelectUniform] = 0;
  24188. Players[playerid][pUniformIndex] = 0;
  24189. Players[playerid][pDispatch] = 0;
  24190. Players[playerid][pVehicleColor] = INVALID_ID;
  24191. Players[playerid][pEmergency] = 0;
  24192. Players[playerid][pCallTaxi] = 0;
  24193. Players[playerid][pStoned] = STONED_TYPE_NONE;
  24194. Players[playerid][pStonedTime] = 0;
  24195. Players[playerid][pPackageGrams] = 0;
  24196. Players[playerid][pPackageTime] = 0;
  24197. Players[playerid][pCarLicense] = 0;
  24198. Players[playerid][pGunLicense] = 0;
  24199. Players[playerid][pAdTime] = 0;
  24200. Players[playerid][pDrivingTest] = 0;
  24201. Players[playerid][pDrivingCP] = 0;
  24202. Players[playerid][pTestTime] = 0;
  24203. Players[playerid][pRentHouse] = 0;
  24204. Players[playerid][pMaskID] = 0;
  24205. Players[playerid][pRepairCar] = 0;
  24206. Players[playerid][pRepairShop] = -1;
  24207. Players[playerid][pRepairTime] = 0;
  24208. Players[playerid][pTrashPickup] = 0;
  24209. Players[playerid][pTrash] = 0;
  24210. Players[playerid][pModShop] = 0;
  24211. Players[playerid][pChatting] = 0;
  24212. Players[playerid][pEnterTime] = 0;
  24213. Players[playerid][pCommandSpam] = 0;
  24214. Players[playerid][pCommandMuted] = 0;
  24215. Players[playerid][pBackdoorType] = 0;
  24216. Players[playerid][pPausedText] = INVALID_3DTEXT_ID;
  24217. Players[playerid][pInjuredText] = INVALID_3DTEXT_ID;
  24218. Players[playerid][pCheckpoint] = CHECKPOINT_NONE;
  24219. Players[playerid][pWorkout] = WORKOUT_NONE;
  24220. Players[playerid][pBuyOutfit] = INVALID_ID;
  24221. Players[playerid][pHouseInfo] = INVALID_ID;
  24222. Players[playerid][pCompanyInfo] = INVALID_ID;
  24223. Players[playerid][pBuildingInfo] = INVALID_ID;
  24224. Players[playerid][pCompany] = INVALID_ID;
  24225. Players[playerid][pHouse] = INVALID_ID;
  24226. Players[playerid][pSpectate] = INVALID_PLAYER_ID;
  24227. Players[playerid][pHotwire] = INVALID_VEHICLE_ID;
  24228. Players[playerid][pTarget] = INVALID_PLAYER_ID;
  24229. Players[playerid][pSetStaff] = INVALID_PLAYER_ID;
  24230. Players[playerid][pObject] = INVALID_OBJECT_ID;
  24231. Players[playerid][pCarConfirm] = INVALID_ID;
  24232. Players[playerid][pAdjustSpawn] = INVALID_ID;
  24233. Players[playerid][pRental] = INVALID_ID;
  24234. Players[playerid][pViewStats] = INVALID_PLAYER_ID;
  24235. Players[playerid][pEdit] = EDIT_TYPE_NONE;
  24236. Players[playerid][pEditID] = INVALID_ID;
  24237. Players[playerid][pHouseEdit] = INVALID_ID;
  24238. Players[playerid][pCaller] = INVALID_PLAYER_ID;
  24239. Players[playerid][pPayphone] = INVALID_ID;
  24240. Players[playerid][pInsideTaxi] = INVALID_PLAYER_ID;
  24241. Players[playerid][pSafeMenu] = INVALID_ID;
  24242. Players[playerid][pTrashbin] = INVALID_ID;
  24243. Players[playerid][pChoose] = CHOOSE_TYPE_NONE;
  24244. Players[playerid][pRefuel] = INVALID_ID;
  24245. Players[playerid][pPicking] = PICK_LOCK_NONE;
  24246. Players[playerid][pPickID] = INVALID_ID;
  24247. Players[playerid][pHelpRequest] = INVALID_PLAYER_ID;
  24248. Players[playerid][pCuffedBy] = INVALID_PLAYER_ID;
  24249. Players[playerid][pFactionOffer] = INVALID_PLAYER_ID;
  24250. Players[playerid][pFriskOffer] = INVALID_PLAYER_ID;
  24251. Players[playerid][pDealershipMenu] = INVALID_ID;
  24252. Players[playerid][pPackageOrder] = PACKAGE_TYPE_NONE;
  24253. Players[playerid][pPackageType] = PACKAGE_TYPE_NONE;
  24254. Players[playerid][pPackage] = INVALID_OBJECT_ID;
  24255. Players[playerid][pSetBank] = INVALID_PLAYER_ID;
  24256. Players[playerid][pGiveDrugs] = INVALID_PLAYER_ID;
  24257. Players[playerid][pWorkVehicle] = INVALID_VEHICLE_ID;
  24258. Players[playerid][pHouseOffer] = INVALID_PLAYER_ID;
  24259. Players[playerid][pCompanyOffer] = INVALID_PLAYER_ID;
  24260. Players[playerid][pCarOffer] = INVALID_PLAYER_ID;
  24261. Players[playerid][pShakeOffer] = INVALID_PLAYER_ID;
  24262. Players[playerid][pBigEars] = 0;
  24263. Players[playerid][pSprayTag] = INVALID_ID;
  24264. Players[playerid][pStereoPlayerID] = INVALID_PLAYER_ID;
  24265. Players[playerid][pVehicleStream] = INVALID_VEHICLE_ID;
  24266. Players[playerid][pAddVehicle] = INVALID_VEHICLE_ID;
  24267. Players[playerid][pAutoShop] = INVALID_ID;
  24268. Players[playerid][pConfirmBackdoor] = INVALID_ID;
  24269. Players[playerid][pFurniturePerms] = INVALID_ID;
  24270. g_Callsigns[ Players[playerid][pFactionCallsign] ][e_CallsignTakenBy] = INVALID_ID;
  24271. Players[playerid][pFactionCallsign] = 0;
  24272. Players[playerid][pWarnTimer] = 0;
  24273. Players[playerid][pWarnWeapon] = 0;
  24274. Players[playerid][pWarnHealth] = 0;
  24275. Players[playerid][pWarnArmor] = 0;
  24276. Players[playerid][pWarnAirbreak] = 0;
  24277. Players[playerid][pWarnSpeedhack] = 0;
  24278. Players[playerid][pWarnMoneyHack] = 0;
  24279. Players[playerid][pWarnAmmoHack] = 0;
  24280. Players[playerid][pWarnFlyHack] = 0;
  24281. Players[playerid][pWarnDialogHack] = 0;
  24282. Players[playerid][pWarnGodMode] = 0;
  24283. Players[playerid][pWarnRapidFire] = 0;
  24284. Players[playerid][pWarnTeleport] = 0;
  24285. /*
  24286. pWarnTimer,
  24287. pWarnWeapon,
  24288. pWarnHealth,
  24289. pWarnArmor,
  24290. pWarnAirbreak,
  24291. pWarnSpeedhack,
  24292. pWarnMoneyHack,
  24293. pWarnAmmoHack,
  24294. pWarnFlyHack,
  24295. pWarnDialogHack,
  24296. pWarnGodMode,
  24297. pWarnRapidFire,
  24298. pWarnTeleport
  24299. */
  24300. Statistics[playerid][sHotwired] = 0;
  24301. Statistics[playerid][sRentals] = 0;
  24302. Statistics[playerid][sHospitalFees] = 0;
  24303. Statistics[playerid][sItemsUsed] = 0;
  24304. Statistics[playerid][sItemsDropped] = 0;
  24305. Statistics[playerid][sItemsPicked] = 0;
  24306. Statistics[playerid][sDistanceRan] = 0;
  24307. Statistics[playerid][sTotalReps] = 0;
  24308. Statistics[playerid][sHouses] = 0;
  24309. Statistics[playerid][sCompanies] = 0;
  24310. Statistics[playerid][sVehicles] = 0;
  24311. Statistics[playerid][sFurnitureFees] = 0;
  24312. Statistics[playerid][sTotalWarrants] = 0;
  24313. Statistics[playerid][sReports] = 0;
  24314. Statistics[playerid][sHelpRequests] = 0;
  24315. ResetSpawnInfo(playerid);
  24316. ResetWeapons(playerid);
  24317. ResetTaxi(playerid);
  24318. ResetHelpRequest(playerid);
  24319. ResetFactionInfo(playerid);
  24320. ResetLastShots(playerid);
  24321. ResetAdvertisement(playerid);
  24322. ResetStereo(playerid);
  24323. ResetNameChange(playerid);
  24324. }
  24325. /*
  24326. pWarnSpeed,
  24327. pWarnWeapon,
  24328. pWarnHealth,
  24329. pWarnArmor,
  24330. pWarnAirbreak,
  24331. pWarnSpeedhack,
  24332. pWarnMoneyHack,
  24333. pWarnAmmoHack,
  24334. pWarnFlyHack
  24335. */
  24336. SavePositionAndHealth(playerid)
  24337. {
  24338. if (Players[playerid][pAutoShop] != INVALID_ID || IsPlayerInRangeOfPoint(playerid, 20.0, 1903.4791, 1353.9811, 24.5537))
  24339. {
  24340. Players[playerid][pSpawn][0] = Players[playerid][pAutoX];
  24341. Players[playerid][pSpawn][1] = Players[playerid][pAutoY];
  24342. Players[playerid][pSpawn][2] = Players[playerid][pAutoZ];
  24343. Players[playerid][pSpawn][3] = Players[playerid][pAutoA];
  24344. Players[playerid][pInterior] = 0;
  24345. Players[playerid][pWorld] = 0;
  24346. }
  24347. else
  24348. {
  24349. GetPlayerPos(playerid, Players[playerid][pSpawn][0], Players[playerid][pSpawn][1], Players[playerid][pSpawn][2]);
  24350. GetPlayerFacingAngle(playerid, Players[playerid][pSpawn][3]);
  24351. if (Players[playerid][pBuyOutfit] != INVALID_ID)
  24352. {
  24353. Players[playerid][pInterior] = Companies[Players[playerid][pBuyOutfit]][cInterior];
  24354. Players[playerid][pWorld] = Companies[Players[playerid][pBuyOutfit]][cWorld];
  24355. }
  24356. else
  24357. {
  24358. Players[playerid][pInterior] = GetPlayerInterior(playerid);
  24359. Players[playerid][pWorld] = GetPlayerVirtualWorld(playerid);
  24360. }
  24361. }
  24362. GetPlayerHealth(playerid, Players[playerid][pHealth]);
  24363. GetPlayerArmour(playerid, Players[playerid][pArmor]);
  24364. }
  24365. SaveStatistics(playerid)
  24366. {
  24367. new
  24368. queryString[512];
  24369. format(queryString, sizeof(queryString), "UPDATE rp_accounts SET `TotalHotwired` = %i, `TotalRentals` = %i, `HospitalFees` = %i, `ItemsUsed` = %i, `ItemsDropped` = %i, `ItemsPicked` = %i, `DistanceRan` = %i, `TotalReps` = %i, `TotalHouses` = %i, `TotalCompanies` = %i, `TotalVehicles` = %i, `FurnitureFees` = %i, `TotalWarrants` = %i, `Reports` = %i, `HelpRequests` = %i WHERE `ID` = %i",
  24370. Statistics[playerid][sHotwired],
  24371. Statistics[playerid][sRentals],
  24372. Statistics[playerid][sHospitalFees],
  24373. Statistics[playerid][sItemsUsed],
  24374. Statistics[playerid][sItemsDropped],
  24375. Statistics[playerid][sItemsPicked],
  24376. Statistics[playerid][sDistanceRan],
  24377. Statistics[playerid][sTotalReps],
  24378. Statistics[playerid][sHouses],
  24379. Statistics[playerid][sCompanies],
  24380. Statistics[playerid][sVehicles],
  24381. Statistics[playerid][sFurnitureFees],
  24382. Statistics[playerid][sTotalWarrants],
  24383. Statistics[playerid][sReports],
  24384. Statistics[playerid][sHelpRequests],
  24385. Players[playerid][pID]
  24386. );
  24387. return mysql_tquery(gConnection, queryString);
  24388. }
  24389. SaveAccount(playerid)
  24390. {
  24391. if (Players[playerid][pLoggedIn] && !IsPlayerNPC(playerid))
  24392. {
  24393. new
  24394. queryString[2048];
  24395. if (!IsPlayerSpectating(playerid) && !IsPlayerBugged(playerid) && Players[playerid][pBuyOutfit] == INVALID_ID)
  24396. {
  24397. SavePositionAndHealth(playerid);
  24398. }
  24399. format(queryString, sizeof(queryString), "UPDATE rp_accounts SET `SetupInfo` = %i, `Origin` = '%s', `Gender` = %i, `Age` = %i, `Skin` = %i, `Uniform` = %i, `SpawnX` = %.4f, `SpawnY` = %.4f, `SpawnZ` = %.4f, `SpawnA` = %.4f, `Health` = %.4f, `Armor` = %.4f, `Interior` = %i, `World` = %i, `Traveled` = %.4f, `PocketMoney` = %i, `Admin` = %i",
  24400. Players[playerid][pSetupInfo],
  24401. Players[playerid][pOrigin],
  24402. Players[playerid][pGender],
  24403. Players[playerid][pAge],
  24404. Players[playerid][pSkin],
  24405. Players[playerid][pUniform],
  24406. Players[playerid][pSpawn][0],
  24407. Players[playerid][pSpawn][1],
  24408. Players[playerid][pSpawn][2],
  24409. Players[playerid][pSpawn][3],
  24410. Players[playerid][pHealth],
  24411. Players[playerid][pArmor],
  24412. Players[playerid][pInterior],
  24413. Players[playerid][pWorld],
  24414. Players[playerid][pTraveled],
  24415. Players[playerid][pPocketMoney],
  24416. Players[playerid][pAdmin]
  24417. );
  24418. format(queryString, sizeof(queryString), "%s, `JailType` = %i, `JailTime` = %i, `Muted` = %i, `Fitness` = %i, `Minutes` = %i, `HoursOnline` = %i, `Melee` = %i, `PrimaryGun` = %i, `PrimaryAmmo` = %i, `PrimarySerial` = %i, `SecondaryGun` = %i, `SecondaryAmmo` = %i, `SecondarySerial` = %i",
  24419. queryString,
  24420. Players[playerid][pJailType],
  24421. Players[playerid][pJailTime],
  24422. Players[playerid][pMuted],
  24423. Players[playerid][pFitness],
  24424. Players[playerid][pMinutes],
  24425. Players[playerid][pHoursOnline],
  24426. Weapons[playerid][wMelee],
  24427. Weapons[playerid][wPrimary],
  24428. Weapons[playerid][wPrimaryAmmo],
  24429. Weapons[playerid][wPrimarySerial],
  24430. Weapons[playerid][wSecondary],
  24431. Weapons[playerid][wSecondaryAmmo],
  24432. Weapons[playerid][wSecondarySerial]
  24433. );
  24434. format(queryString, sizeof(queryString), "%s, `Job` = %i, `JobPaycheck` = %i, `Paycheck` = %i, `WorkoutTime` = %i, `GymMembership` = %i, `Phone` = %i, `PhoneOff` = %i, `DeathState` = %i, `Hospital` = %i, `ShowPM` = %i, `ShowSpeed` = %i, `ShowFuel` = %i, `ShowTime` = %i, `ShowOOC` = %i, `ShowReports` = %i, `ShowAdmin` = %i, `ShowSupporter` = %i",
  24435. queryString,
  24436. Players[playerid][pJob],
  24437. Players[playerid][pJobPaycheck],
  24438. Players[playerid][pPaycheck],
  24439. Players[playerid][pWorkoutTime],
  24440. Players[playerid][pGymMembership],
  24441. Players[playerid][pPhone],
  24442. Players[playerid][pPhoneOff],
  24443. Players[playerid][pDeathState],
  24444. Players[playerid][pHospital],
  24445. Players[playerid][pShowPM],
  24446. Players[playerid][pShowSpeed],
  24447. Players[playerid][pShowFuel],
  24448. Players[playerid][pShowTime],
  24449. Players[playerid][pShowOOC],
  24450. Players[playerid][pShowReports],
  24451. Players[playerid][pShowAdmin],
  24452. Players[playerid][pShowSupporter]
  24453. );
  24454. format(queryString, sizeof(queryString), "%s, `Bleeding` = %i, `PaymentType` = %i, `BankAccount` = %i, `Supporter` = %i, `Veteran` = %i, `FactionMod` = %i, `FactionID` = %i, `FactionRank` = %i, `FactionLeader` = %i, `Warrants` = %i, `AdminName` = '%s', `PackageOrder` = %i, `PackageType` = %i, `PackageGrams` = %i, `PackageTime` = %i, `CarLicense` = %i, `GunLicense` = %i, `AdTime` = %i",
  24455. queryString,
  24456. Players[playerid][pBleeding],
  24457. Players[playerid][pPaymentType],
  24458. Players[playerid][pBankAccount],
  24459. Players[playerid][pSupporter],
  24460. Players[playerid][pVeteran],
  24461. Players[playerid][pFactionMod],
  24462. Players[playerid][pFactionID],
  24463. Players[playerid][pFactionRank],
  24464. Players[playerid][pFactionLeader],
  24465. Players[playerid][pWarrants],
  24466. Players[playerid][pAdminName],
  24467. Players[playerid][pPackageOrder],
  24468. Players[playerid][pPackageType],
  24469. Players[playerid][pPackageGrams],
  24470. Players[playerid][pPackageTime],
  24471. Players[playerid][pCarLicense],
  24472. Players[playerid][pGunLicense],
  24473. Players[playerid][pAdTime]
  24474. );
  24475. format(queryString, sizeof(queryString), "%s, `RentHouse` = %i, `MaskID` = %i, `HideAdmin` = %i, `BrokenLeg` = %i, `ChatStyle` = %i, `WalkStyle` = %i, `Channel` = %i, `Donator` = %i, `ExpiryDate` = %i, `NameChanges` = %i, `Badge` = %i, `BankMoney` = %i, `SavingsMoney` = %i, `Mapper` = %i, `Charges` = %i, `PhoneLastKnown` = %i, `AdminTitle` = '%s', `GPCI` = '%s', `pActivated`='%i', `BeingReported`='%i', `ReportReason`='%s'",
  24476. queryString,
  24477. Players[playerid][pRentHouse],
  24478. Players[playerid][pMaskID],
  24479. Players[playerid][pHideAdmin],
  24480. Players[playerid][pBrokenLeg],
  24481. Players[playerid][pChatStyle],
  24482. Players[playerid][pWalkStyle],
  24483. Players[playerid][pChannel],
  24484. Players[playerid][pDonator],
  24485. Players[playerid][pExpiryDate],
  24486. Players[playerid][pNameChanges],
  24487. Players[playerid][pBadge],
  24488. Players[playerid][pBankMoney],
  24489. Players[playerid][pSavingsMoney],
  24490. Players[playerid][pMapper],
  24491. Players[playerid][pCharges],
  24492. Players[playerid][pPhoneLastKnown],
  24493. Players[playerid][pAdminTitle],
  24494. Players[playerid][pGPCI],
  24495. Players[playerid][pActivated],
  24496. Players[playerid][pBeingReported],
  24497. Players[playerid][pReportReason]
  24498. );
  24499. format(queryString, sizeof(queryString), "%s, SpawnType = %i, SpawnExtra = %i, Crashed = %i, Duty = %i WHERE ID = %i",
  24500. queryString,
  24501. Players[playerid][pSpawnType],
  24502. Players[playerid][pSpawnExtra],
  24503. Players[playerid][pCrashed],
  24504. Players[playerid][pDuty],
  24505. Players[playerid][pID]
  24506. );
  24507. mysql_tquery(gConnection, queryString);
  24508. SaveStatistics(playerid);
  24509. }
  24510. }
  24511. GetInventoryMaxWeight(playerid)
  24512. {
  24513. new extra;
  24514. if (Players[playerid][pFitness] > 0) {
  24515. extra += (Players[playerid][pFitness] / 10);
  24516. }
  24517. switch (Players[playerid][pDonator]) {
  24518. case DONATOR_BASIC:
  24519. extra = extra + 10;
  24520. case DONATOR_STANDARD:
  24521. extra = extra + 20;
  24522. case DONATOR_INVESTOR:
  24523. extra = extra + 30;
  24524. case DONATOR_PREMIUM:
  24525. extra = extra + 40;
  24526. }
  24527. return MAX_POCKET_WEIGHT + extra;
  24528. }
  24529. GetInventoryTotalWeight(playerid)
  24530. {
  24531. new total;
  24532. for (new i = 0; i < MAX_INVENTORY_ITEMS; i ++)
  24533. {
  24534. if (Inventory[playerid][i][invExists])
  24535. {
  24536. total = total + GetItemInformation(Inventory[playerid][i][invName], ITEM_INFO_WEIGHT);
  24537. }
  24538. }
  24539. return total;
  24540. }
  24541. SelectTextDrawEx(playerid, hovercolor)
  24542. {
  24543. Players[playerid][pIgnoreTD] = 1;
  24544. SetTimerEx("ResetIgnoreTD", 300, false, "i", playerid);
  24545. return SelectTextDraw(playerid, hovercolor);
  24546. }
  24547. ShowItemsForPlayer(playerid, targetid)
  24548. {
  24549. gListString[0] = 0;
  24550. if (Players[playerid][pPocketMoney] > 0) {
  24551. format(gListString, sizeof(gListString), "Wallet (%s)", FormatNumber(Players[targetid][pPocketMoney]));
  24552. } else {
  24553. format(gListString, sizeof(gListString), "Wallet (Empty)");
  24554. }
  24555. if (1 <= Weapons[targetid][wMelee] <= 15) {
  24556. format(gListString, sizeof(gListString), "%s\n%s", gListString, GetWeapon(Weapons[targetid][wMelee]));
  24557. }
  24558. if (Weapons[targetid][wPrimary] > 0) {
  24559. format(gListString, sizeof(gListString), "%s\n%s (%i ammo)", gListString, GetWeapon(Weapons[targetid][wPrimary]), Weapons[targetid][wPrimaryAmmo]);
  24560. }
  24561. if (Weapons[targetid][wSecondary] > 0) {
  24562. format(gListString, sizeof(gListString), "%s\n%s (%i ammo)", gListString, GetWeapon(Weapons[targetid][wSecondary]), Weapons[targetid][wSecondaryAmmo]);
  24563. }
  24564. if (Weapons[targetid][wTertiary] > 0) {
  24565. format(gListString, sizeof(gListString), "%s\n%s (%i ammo)", gListString, GetWeapon(Weapons[targetid][wTertiary]), Weapons[targetid][wTertiaryAmmo]);
  24566. }
  24567. for (new i = 0; i < MAX_INVENTORY_ITEMS; i ++)
  24568. {
  24569. if (Inventory[targetid][i][invExists])
  24570. {
  24571. format(gListString, sizeof(gListString), "%s\n%s", gListString, GetFullItemName(targetid, i));
  24572. }
  24573. }
  24574. if (!isnull(gListString))
  24575. {
  24576. return Dialog_Show(playerid, Frisk, DIALOG_STYLE_LIST, "{FFFFFF}Frisk Menu", gListString, "Close", "");
  24577. }
  24578. return 0;
  24579. }
  24580. DisplayInventory(playerid)
  24581. {
  24582. static
  24583. displayString[MAX_ITEM_NAME * MAX_INVENTORY_ITEMS],
  24584. titleString[128]
  24585. ;
  24586. new
  24587. index = 0
  24588. ;
  24589. displayString = "{33AA33}Item\t{33AA33}lbs";
  24590. if (Weapons[playerid][wMelee] > 0 || Weapons[playerid][wPrimary] > 0 || Weapons[playerid][wSecondary] > 0)
  24591. {
  24592. strcat(displayString, "\nWeapon Menu");
  24593. }
  24594. for (new i = 0; i < MAX_INVENTORY_ITEMS; i ++)
  24595. {
  24596. if (Inventory[playerid][i][invExists])
  24597. {
  24598. format(displayString, sizeof(displayString), "%s\n%s\t%i lbs", displayString, GetFullItemName(playerid, i), GetItemInformation(Inventory[playerid][i][invName], ITEM_INFO_WEIGHT));
  24599. gListedItems[playerid][index++] = i;
  24600. }
  24601. }
  24602. if ((index) || (strlen(displayString) > 15))
  24603. {
  24604. format(titleString, sizeof(titleString), "{33AA33}Capacity: [%i/%i]", GetInventoryTotalWeight(playerid), GetInventoryMaxWeight(playerid));
  24605. return Dialog_Show(playerid, MyInventory, DIALOG_STYLE_TABLIST_HEADERS, titleString, displayString, "Select", "Cancel");
  24606. }
  24607. return 0;
  24608. }
  24609. GetStoredItemName(id)
  24610. {
  24611. new string[MAX_ITEM_NAME + 12];
  24612. if (StoredItems[id][stExists])
  24613. {
  24614. strunpack(string, StoredItems[id][stName]);
  24615. if (GetItemInformation(StoredItems[id][stName], ITEM_INFO_VALUE) && StoredItems[id][stValue] > 0)
  24616. {
  24617. format(string, sizeof(string), "{33AA33}%s (%i)", string, StoredItems[id][stValue]);
  24618. }
  24619. }
  24620. return string;
  24621. }
  24622. GetDropItemName(id)
  24623. {
  24624. new string[MAX_ITEM_NAME + 12];
  24625. if (DropItems[id][dExists])
  24626. {
  24627. if (GetItemInformation(DropItems[id][dName], ITEM_INFO_VALUE) && DropItems[id][dValue] > 0)
  24628. {
  24629. format(string, sizeof(string), "%s (%i)", DropItems[id][dName], DropItems[id][dValue]);
  24630. }
  24631. else
  24632. {
  24633. strcpy(string, DropItems[id][dName]);
  24634. }
  24635. }
  24636. return string;
  24637. }
  24638. GetFullItemName(playerid, itemid)
  24639. {
  24640. new string[MAX_ITEM_NAME + 12];
  24641. if (Inventory[playerid][itemid][invExists])
  24642. {
  24643. if (GetItemInformation(Inventory[playerid][itemid][invName], ITEM_INFO_VALUE) && Inventory[playerid][itemid][invValue] > 0)
  24644. {
  24645. format(string, sizeof(string), "%s (%i)", Inventory[playerid][itemid][invName], Inventory[playerid][itemid][invValue]);
  24646. if(Inventory[playerid][itemid][invSerial] != 0)
  24647. {
  24648. format(string,sizeof(string),"%s (%i) (#%i)", Inventory[playerid][itemid][invName], Inventory[playerid][itemid][invValue], Inventory[playerid][itemid][invSerial]);
  24649. }
  24650. }
  24651. else
  24652. {
  24653. strcpy(string, Inventory[playerid][itemid][invName]);
  24654. }
  24655. }
  24656. return string;
  24657. }
  24658. IsValidInput(const text[])
  24659. {
  24660. /*
  24661. Checks if an input string is valid. Invalid inputs include:
  24662. - Empty or null string.
  24663. - Text consisting of only spaces.
  24664. */
  24665. new
  24666. length = 0,
  24667. spaces = 0
  24668. ;
  24669. if ((length = strlen(text)) == 0 || isnull(text))
  24670. {
  24671. return 0;
  24672. }
  24673. else
  24674. {
  24675. for (new i = 0; i < length; i ++)
  24676. {
  24677. if (text[i] == ' ' || text[i] == 255)
  24678. {
  24679. spaces++;
  24680. }
  24681. }
  24682. if (length == spaces)
  24683. {
  24684. return 0;
  24685. }
  24686. }
  24687. return 1;
  24688. }
  24689. IsPlayerInRangeOfVehicle(playerid, vehicleid, Float:range = 4.0)
  24690. {
  24691. new
  24692. Float:x,
  24693. Float:y,
  24694. Float:z;
  24695. GetVehiclePos(vehicleid, x, y, z);
  24696. if (GetPlayerVirtualWorld(playerid) == GetVehicleVirtualWorld(vehicleid) && IsPlayerInRangeOfPoint(playerid, range, x, y, z))
  24697. return 1;
  24698. else
  24699. return 0;
  24700. }
  24701. IsPlayerInRangeOfPlayer(playerid, targetid, Float:range = 4.0)
  24702. {
  24703. new
  24704. Float:x,
  24705. Float:y,
  24706. Float:z;
  24707. GetPlayerPos(targetid, x, y, z);
  24708. if (GetPlayerInterior(playerid) == GetPlayerInterior(targetid) && GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(targetid) && IsPlayerInRangeOfPoint(playerid, range, x, y, z))
  24709. return 1;
  24710. else
  24711. return 0;
  24712. }
  24713. PlayNearbySound(playerid, soundid)
  24714. {
  24715. new
  24716. Float:x,
  24717. Float:y,
  24718. Float:z;
  24719. GetPlayerPos(playerid, x, y, z);
  24720. foreach (new i : Player)
  24721. {
  24722. if (i == playerid || IsPlayerStreamedIn(playerid, i))
  24723. {
  24724. PlayerPlaySound(i, soundid, x, y, z);
  24725. }
  24726. }
  24727. }
  24728. SetupTextdraws(playerid)
  24729. {
  24730. Players[playerid][pText][0] = CreatePlayerTextDraw(playerid, 330.000000, 398.000000, "1 ~<~ ~g~~h~2~w~ ~>~ 3");
  24731. PlayerTextDrawAlignment(playerid, Players[playerid][pText][0], 2);
  24732. PlayerTextDrawFont(playerid, Players[playerid][pText][0], 2);
  24733. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][0], 0.470000, 1.600000);
  24734. PlayerTextDrawColor(playerid, Players[playerid][pText][0], -1);
  24735. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][0], 1);
  24736. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][0], 1);
  24737. Players[playerid][pText][5] = CreatePlayerTextDraw(playerid, 359.000000, 370.000000, "Text");
  24738. PlayerTextDrawAlignment(playerid, Players[playerid][pText][5], 2);
  24739. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][5], 255);
  24740. PlayerTextDrawFont(playerid, Players[playerid][pText][5], 1);
  24741. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][5], 0.339999, 1.300000);
  24742. PlayerTextDrawColor(playerid, Players[playerid][pText][5], -1);
  24743. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][5], 1);
  24744. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][5], 1);
  24745. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][5], 0);
  24746. Players[playerid][pText][6] = CreatePlayerTextDraw(playerid, 439.000000, 147.000000, "_");
  24747. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][6], 255);
  24748. PlayerTextDrawFont(playerid, Players[playerid][pText][6], 1);
  24749. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][6], 0.500000, 1.000000);
  24750. PlayerTextDrawColor(playerid, Players[playerid][pText][6], -1);
  24751. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][6], 0);
  24752. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][6], 1);
  24753. PlayerTextDrawSetShadow(playerid, Players[playerid][pText][6], 1);
  24754. PlayerTextDrawUseBox(playerid, Players[playerid][pText][6], 1);
  24755. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][6], 85);
  24756. PlayerTextDrawTextSize(playerid, Players[playerid][pText][6], 210.000000, 0.000000);
  24757. Players[playerid][pText][7] = CreatePlayerTextDraw(playerid, 439.000000, 147.000000, "_");
  24758. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][7], 255);
  24759. PlayerTextDrawFont(playerid, Players[playerid][pText][7], 1);
  24760. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][7], 0.500000, 17.600006);
  24761. PlayerTextDrawColor(playerid, Players[playerid][pText][7], -1);
  24762. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][7], 0);
  24763. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][7], 1);
  24764. PlayerTextDrawSetShadow(playerid, Players[playerid][pText][7], 1);
  24765. PlayerTextDrawUseBox(playerid, Players[playerid][pText][7], 1);
  24766. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][7], 85);
  24767. PlayerTextDrawTextSize(playerid, Players[playerid][pText][7], 210.000000, 0.000000);
  24768. Players[playerid][pText][8] = CreatePlayerTextDraw(playerid, 216.000000, 145.000000, "My Items");
  24769. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][8], 255);
  24770. PlayerTextDrawFont(playerid, Players[playerid][pText][8], 2);
  24771. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][8], 0.319999, 1.200000);
  24772. PlayerTextDrawColor(playerid, Players[playerid][pText][8], -1);
  24773. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][8], 1);
  24774. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][8], 1);
  24775. Players[playerid][pText][9] = CreatePlayerTextDraw(playerid, 217.000000, 162.000000, "_");
  24776. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][9], 85);
  24777. PlayerTextDrawFont(playerid, Players[playerid][pText][9], 5);
  24778. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][9], 0.500000, 6.299999);
  24779. PlayerTextDrawColor(playerid, Players[playerid][pText][9], -1);
  24780. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][9], 0);
  24781. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][9], 1);
  24782. PlayerTextDrawSetShadow(playerid, Players[playerid][pText][9], 1);
  24783. PlayerTextDrawUseBox(playerid, Players[playerid][pText][9], 1);
  24784. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][9], 0);
  24785. PlayerTextDrawTextSize(playerid, Players[playerid][pText][9], 61.000000, 49.000000);
  24786. PlayerTextDrawSetPreviewModel(playerid, Players[playerid][pText][9], 3026);
  24787. PlayerTextDrawSetPreviewRot(playerid, Players[playerid][pText][9], 0.0000, 0.0000, 0.0000, 1.0000);
  24788. Players[playerid][pText][10] = CreatePlayerTextDraw(playerid, 248.000000, 212.000000, "Backpack");
  24789. PlayerTextDrawAlignment(playerid, Players[playerid][pText][10], 2);
  24790. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][10], 255);
  24791. PlayerTextDrawFont(playerid, Players[playerid][pText][10], 2);
  24792. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][10], 0.209999, 0.899999);
  24793. PlayerTextDrawColor(playerid, Players[playerid][pText][10], -1);
  24794. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][10], 1);
  24795. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][10], 1);
  24796. Players[playerid][pText][11] = CreatePlayerTextDraw(playerid, 217.000000, 232.000000, "_");
  24797. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][11], 85);
  24798. PlayerTextDrawFont(playerid, Players[playerid][pText][11], 5);
  24799. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][11], 0.500000, 6.199998);
  24800. PlayerTextDrawColor(playerid, Players[playerid][pText][11], -1);
  24801. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][11], 0);
  24802. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][11], 1);
  24803. PlayerTextDrawSetShadow(playerid, Players[playerid][pText][11], 1);
  24804. PlayerTextDrawUseBox(playerid, Players[playerid][pText][11], 1);
  24805. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][11], 0);
  24806. PlayerTextDrawTextSize(playerid, Players[playerid][pText][11], 61.000000, 49.000000);
  24807. PlayerTextDrawSetPreviewModel(playerid, Players[playerid][pText][11], 2916);
  24808. PlayerTextDrawSetPreviewRot(playerid, Players[playerid][pText][11], 0.0000, 0.0000, 0.0000, 1.0000);
  24809. Players[playerid][pText][12] = CreatePlayerTextDraw(playerid, 247.000000, 283.000000, "Weight: 0/10");
  24810. PlayerTextDrawAlignment(playerid, Players[playerid][pText][12], 2);
  24811. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][12], 255);
  24812. PlayerTextDrawFont(playerid, Players[playerid][pText][12], 2);
  24813. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][12], 0.200000, 0.899999);
  24814. PlayerTextDrawColor(playerid, Players[playerid][pText][12], -1);
  24815. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][12], 1);
  24816. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][12], 1);
  24817. Players[playerid][pText][13] = CreatePlayerTextDraw(playerid, 288.000000, 164.000000, "_");
  24818. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][13], 255);
  24819. PlayerTextDrawFont(playerid, Players[playerid][pText][13], 2);
  24820. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][13], 0.209998, 13.599993);
  24821. PlayerTextDrawColor(playerid, Players[playerid][pText][13], -1);
  24822. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][13], 1);
  24823. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][13], 1);
  24824. PlayerTextDrawUseBox(playerid, Players[playerid][pText][13], 1);
  24825. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][13], 68);
  24826. PlayerTextDrawTextSize(playerid, Players[playerid][pText][13], 430.000000, 40.000000);
  24827. Players[playerid][pText][14] = CreatePlayerTextDraw(playerid, 290.000000, 165.000000, "Empty Slot");
  24828. PlayerTextDrawTextSize(playerid, Players[playerid][pText][14], 428.000000, 10.000000);
  24829. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][14], 255);
  24830. PlayerTextDrawFont(playerid, Players[playerid][pText][14], 2);
  24831. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][14], 0.209999, 1.000000);
  24832. PlayerTextDrawColor(playerid, Players[playerid][pText][14], -1);
  24833. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][14], 1);
  24834. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][14], 1);
  24835. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][14], 1);
  24836. Players[playerid][pText][15] = CreatePlayerTextDraw(playerid, 290.000000, 177.000000, "Empty Slot");
  24837. PlayerTextDrawTextSize(playerid, Players[playerid][pText][15], 428.000000, 10.000000);
  24838. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][15], 255);
  24839. PlayerTextDrawFont(playerid, Players[playerid][pText][15], 2);
  24840. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][15], 0.209999, 1.000000);
  24841. PlayerTextDrawColor(playerid, Players[playerid][pText][15], -1);
  24842. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][15], 1);
  24843. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][15], 1);
  24844. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][15], 1);
  24845. Players[playerid][pText][16] = CreatePlayerTextDraw(playerid, 290.000000, 189.000000, "Empty Slot");
  24846. PlayerTextDrawTextSize(playerid, Players[playerid][pText][16], 428.000000, 10.000000);
  24847. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][16], 255);
  24848. PlayerTextDrawFont(playerid, Players[playerid][pText][16], 2);
  24849. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][16], 0.209999, 1.000000);
  24850. PlayerTextDrawColor(playerid, Players[playerid][pText][16], -1);
  24851. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][16], 1);
  24852. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][16], 1);
  24853. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][16], 1);
  24854. Players[playerid][pText][17] = CreatePlayerTextDraw(playerid, 290.000000, 201.000000, "Empty Slot");
  24855. PlayerTextDrawTextSize(playerid, Players[playerid][pText][17], 428.000000, 10.000000);
  24856. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][17], 255);
  24857. PlayerTextDrawFont(playerid, Players[playerid][pText][17], 2);
  24858. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][17], 0.209999, 1.000000);
  24859. PlayerTextDrawColor(playerid, Players[playerid][pText][17], -1);
  24860. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][17], 1);
  24861. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][17], 1);
  24862. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][17], 1);
  24863. Players[playerid][pText][18] = CreatePlayerTextDraw(playerid, 290.000000, 213.000000, "Empty Slot");
  24864. PlayerTextDrawTextSize(playerid, Players[playerid][pText][18], 428.000000, 10.000000);
  24865. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][18], 255);
  24866. PlayerTextDrawFont(playerid, Players[playerid][pText][18], 2);
  24867. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][18], 0.209999, 1.000000);
  24868. PlayerTextDrawColor(playerid, Players[playerid][pText][18], -1);
  24869. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][18], 1);
  24870. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][18], 1);
  24871. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][18], 1);
  24872. Players[playerid][pText][19] = CreatePlayerTextDraw(playerid, 290.000000, 225.000000, "Empty Slot");
  24873. PlayerTextDrawTextSize(playerid, Players[playerid][pText][19], 428.000000, 10.000000);
  24874. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][19], 255);
  24875. PlayerTextDrawFont(playerid, Players[playerid][pText][19], 2);
  24876. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][19], 0.209999, 1.000000);
  24877. PlayerTextDrawColor(playerid, Players[playerid][pText][19], -1);
  24878. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][19], 1);
  24879. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][19], 1);
  24880. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][19], 1);
  24881. Players[playerid][pText][20] = CreatePlayerTextDraw(playerid, 290.000000, 237.000000, "Empty Slot");
  24882. PlayerTextDrawTextSize(playerid, Players[playerid][pText][20], 428.000000, 10.000000);
  24883. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][20], 255);
  24884. PlayerTextDrawFont(playerid, Players[playerid][pText][20], 2);
  24885. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][20], 0.209999, 1.000000);
  24886. PlayerTextDrawColor(playerid, Players[playerid][pText][20], -1);
  24887. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][20], 1);
  24888. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][20], 1);
  24889. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][20], 1);
  24890. Players[playerid][pText][21] = CreatePlayerTextDraw(playerid, 290.000000, 249.000000, "Empty Slot");
  24891. PlayerTextDrawTextSize(playerid, Players[playerid][pText][21], 428.000000, 10.000000);
  24892. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][21], 255);
  24893. PlayerTextDrawFont(playerid, Players[playerid][pText][21], 2);
  24894. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][21], 0.209999, 1.000000);
  24895. PlayerTextDrawColor(playerid, Players[playerid][pText][21], -1);
  24896. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][21], 1);
  24897. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][21], 1);
  24898. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][21], 1);
  24899. Players[playerid][pText][22] = CreatePlayerTextDraw(playerid, 290.000000, 261.000000, "Empty Slot");
  24900. PlayerTextDrawTextSize(playerid, Players[playerid][pText][22], 428.000000, 10.000000);
  24901. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][22], 255);
  24902. PlayerTextDrawFont(playerid, Players[playerid][pText][22], 2);
  24903. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][22], 0.209999, 1.000000);
  24904. PlayerTextDrawColor(playerid, Players[playerid][pText][22], -1);
  24905. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][22], 1);
  24906. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][22], 1);
  24907. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][22], 1);
  24908. Players[playerid][pText][23] = CreatePlayerTextDraw(playerid, 290.000000, 273.000000, "Empty Slot");
  24909. PlayerTextDrawTextSize(playerid, Players[playerid][pText][23], 428.000000, 10.000000);
  24910. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][23], 255);
  24911. PlayerTextDrawFont(playerid, Players[playerid][pText][23], 2);
  24912. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][23], 0.209999, 1.000000);
  24913. PlayerTextDrawColor(playerid, Players[playerid][pText][23], -1);
  24914. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][23], 1);
  24915. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][23], 1);
  24916. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][23], 1);
  24917. Players[playerid][pText][24] = CreatePlayerTextDraw(playerid, 392.000000, 292.000000, "<<");
  24918. PlayerTextDrawAlignment(playerid, Players[playerid][pText][24], 2);
  24919. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][24], 255);
  24920. PlayerTextDrawFont(playerid, Players[playerid][pText][24], 2);
  24921. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][24], 0.230000, 1.299998);
  24922. PlayerTextDrawColor(playerid, Players[playerid][pText][24], -1);
  24923. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][24], 1);
  24924. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][24], 1);
  24925. PlayerTextDrawUseBox(playerid, Players[playerid][pText][24], 1);
  24926. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][24], 85);
  24927. PlayerTextDrawTextSize(playerid, Players[playerid][pText][24], 15.000000, 21.000000);
  24928. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][24], 1);
  24929. Players[playerid][pText][25] = CreatePlayerTextDraw(playerid, 419.000000, 292.000000, ">>");
  24930. PlayerTextDrawAlignment(playerid, Players[playerid][pText][25], 2);
  24931. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][25], 255);
  24932. PlayerTextDrawFont(playerid, Players[playerid][pText][25], 2);
  24933. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][25], 0.230000, 1.299998);
  24934. PlayerTextDrawColor(playerid, Players[playerid][pText][25], -1);
  24935. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][25], 1);
  24936. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][25], 1);
  24937. PlayerTextDrawUseBox(playerid, Players[playerid][pText][25], 1);
  24938. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][25], 85);
  24939. PlayerTextDrawTextSize(playerid, Players[playerid][pText][25], 15.000000, 21.000000);
  24940. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][25], 1);
  24941. Players[playerid][pText][26] = CreatePlayerTextDraw(playerid, 323.0, 412.0, "0 KMH");
  24942. PlayerTextDrawAlignment(playerid, Players[playerid][pText][26], 2);
  24943. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][26], 255);
  24944. PlayerTextDrawFont(playerid, Players[playerid][pText][26], 2);
  24945. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][26], 0.559998, 2.099999);
  24946. PlayerTextDrawColor(playerid, Players[playerid][pText][26], -1);
  24947. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][26], 1);
  24948. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][26], 1);
  24949. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][26], 0);
  24950. Players[playerid][pText][27] = CreatePlayerTextDraw(playerid, 509.000000, 103.000000, "_");
  24951. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][27], 255);
  24952. PlayerTextDrawFont(playerid, Players[playerid][pText][27], 1);
  24953. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][27], 0.500000, 3.099999);
  24954. PlayerTextDrawColor(playerid, Players[playerid][pText][27], -1);
  24955. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][27], 0);
  24956. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][27], 1);
  24957. PlayerTextDrawSetShadow(playerid, Players[playerid][pText][27], 1);
  24958. PlayerTextDrawUseBox(playerid, Players[playerid][pText][27], 1);
  24959. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][27], 102);
  24960. PlayerTextDrawTextSize(playerid, Players[playerid][pText][27], 606.000000, 10.000000);
  24961. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][27], 0);
  24962. Players[playerid][pText][28] = CreatePlayerTextDraw(playerid, 522.000000, 106.000000, "E");
  24963. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][28], 255);
  24964. PlayerTextDrawFont(playerid, Players[playerid][pText][28], 1);
  24965. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][28], 0.509999, 1.200000);
  24966. PlayerTextDrawColor(playerid, Players[playerid][pText][28], -16776961);
  24967. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][28], 1);
  24968. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][28], 1);
  24969. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][28], 0);
  24970. Players[playerid][pText][29] = CreatePlayerTextDraw(playerid, 579.000000, 106.000000, "F");
  24971. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][29], 255);
  24972. PlayerTextDrawFont(playerid, Players[playerid][pText][29], 1);
  24973. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][29], 0.509999, 1.200000);
  24974. PlayerTextDrawColor(playerid, Players[playerid][pText][29], 16711935);
  24975. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][29], 1);
  24976. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][29], 1);
  24977. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][29], 0);
  24978. Players[playerid][pText][30] = CreatePlayerTextDraw(playerid, 531.000000, 106.000000, "-");
  24979. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][30], 255);
  24980. PlayerTextDrawFont(playerid, Players[playerid][pText][30], 1);
  24981. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][30], 3.419998, 1.000000);
  24982. PlayerTextDrawColor(playerid, Players[playerid][pText][30], -1);
  24983. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][30], 0);
  24984. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][30], 1);
  24985. PlayerTextDrawSetShadow(playerid, Players[playerid][pText][30], 1);
  24986. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][30], 0);
  24987. Players[playerid][pText][31] = CreatePlayerTextDraw(playerid, 572.000000, 102.000000, ".");
  24988. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][31], 255);
  24989. PlayerTextDrawFont(playerid, Players[playerid][pText][31], 1);
  24990. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][31], 0.470000, 1.400000);
  24991. PlayerTextDrawColor(playerid, Players[playerid][pText][31], -1);
  24992. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][31], 1);
  24993. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][31], 1);
  24994. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][31], 0);
  24995. Players[playerid][pText][32] = CreatePlayerTextDraw(playerid, 558.000000, 118.000000, "100%");
  24996. PlayerTextDrawAlignment(playerid, Players[playerid][pText][32], 2);
  24997. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][32], 255);
  24998. PlayerTextDrawFont(playerid, Players[playerid][pText][32], 2);
  24999. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][32], 0.319999, 1.100000);
  25000. PlayerTextDrawColor(playerid, Players[playerid][pText][32], -1);
  25001. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][32], 1);
  25002. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][32], 1);
  25003. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][32], 0);
  25004. Players[playerid][pText][33] = CreatePlayerTextDraw(playerid, 34.500000, 277.000000, "hud:radar_burgershot");
  25005. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][33], 255);
  25006. PlayerTextDrawFont(playerid, Players[playerid][pText][33], 4);
  25007. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][33], 0.500000, 0.899999);
  25008. PlayerTextDrawColor(playerid, Players[playerid][pText][33], -1);
  25009. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][33], 0);
  25010. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][33], 1);
  25011. PlayerTextDrawSetShadow(playerid, Players[playerid][pText][33], 1);
  25012. PlayerTextDrawUseBox(playerid, Players[playerid][pText][33], 1);
  25013. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][33], 255);
  25014. PlayerTextDrawTextSize(playerid, Players[playerid][pText][33], 21.000000, 17.000000);
  25015. Players[playerid][pText][34] = CreatePlayerTextDraw(playerid, 35.500000, 298.000000, "hud:radar_datedrink");
  25016. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][34], 255);
  25017. PlayerTextDrawFont(playerid, Players[playerid][pText][34], 4);
  25018. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][34], 0.500000, 0.899999);
  25019. PlayerTextDrawColor(playerid, Players[playerid][pText][34], -1);
  25020. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][34], 0);
  25021. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][34], 1);
  25022. PlayerTextDrawSetShadow(playerid, Players[playerid][pText][34], 1);
  25023. PlayerTextDrawUseBox(playerid, Players[playerid][pText][34], 1);
  25024. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][34], 255);
  25025. PlayerTextDrawTextSize(playerid, Players[playerid][pText][34], 20.000000, 17.000000);
  25026. Players[playerid][pText][37] = CreatePlayerTextDraw(playerid, -10.000000, 435.000000, "_");
  25027. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][37], 255);
  25028. PlayerTextDrawFont(playerid, Players[playerid][pText][37], 1);
  25029. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][37], 0.500000, 1.399999);
  25030. PlayerTextDrawColor(playerid, Players[playerid][pText][37], -1);
  25031. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][37], 0);
  25032. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][37], 1);
  25033. PlayerTextDrawSetShadow(playerid, Players[playerid][pText][37], 1);
  25034. PlayerTextDrawUseBox(playerid, Players[playerid][pText][37], 1);
  25035. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][37], 286331221);
  25036. PlayerTextDrawTextSize(playerid, Players[playerid][pText][37], 650.000000, 10.000000);
  25037. Players[playerid][pText][38] = CreatePlayerTextDraw(playerid, 320.000000, 435.000000, "Accounts: ~y~0~w~ - Player Record: ~y~N/A");
  25038. PlayerTextDrawAlignment(playerid, Players[playerid][pText][38], 2);
  25039. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][38], 255);
  25040. PlayerTextDrawFont(playerid, Players[playerid][pText][38], 2);
  25041. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][38], 0.259999, 1.100000);
  25042. PlayerTextDrawColor(playerid, Players[playerid][pText][38], -1);
  25043. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][38], 1);
  25044. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][38], 1);
  25045. Players[playerid][pText][39] = CreatePlayerTextDraw(playerid, 426.000000, 171.000000, "_");
  25046. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][39], 255);
  25047. PlayerTextDrawFont(playerid, Players[playerid][pText][39], 1);
  25048. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][39], 0.500000, 1.000000);
  25049. PlayerTextDrawColor(playerid, Players[playerid][pText][39], -1);
  25050. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][39], 0);
  25051. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][39], 1);
  25052. PlayerTextDrawSetShadow(playerid, Players[playerid][pText][39], 1);
  25053. PlayerTextDrawUseBox(playerid, Players[playerid][pText][39], 1);
  25054. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][39], 119);
  25055. PlayerTextDrawTextSize(playerid, Players[playerid][pText][39], 217.000000, 0.000000);
  25056. Players[playerid][pText][40] = CreatePlayerTextDraw(playerid, 426.000000, 171.000000, "_");
  25057. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][40], 255);
  25058. PlayerTextDrawFont(playerid, Players[playerid][pText][40], 1);
  25059. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][40], 0.509998, 14.399996);
  25060. PlayerTextDrawColor(playerid, Players[playerid][pText][40], -1);
  25061. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][40], 0);
  25062. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][40], 1);
  25063. PlayerTextDrawSetShadow(playerid, Players[playerid][pText][40], 1);
  25064. PlayerTextDrawUseBox(playerid, Players[playerid][pText][40], 1);
  25065. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][40], 85);
  25066. PlayerTextDrawTextSize(playerid, Players[playerid][pText][40], 217.000000, 0.000000);
  25067. Players[playerid][pText][41] = CreatePlayerTextDraw(playerid, 222.000000, 170.000000, "My Weapons");
  25068. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][41], 255);
  25069. PlayerTextDrawFont(playerid, Players[playerid][pText][41], 2);
  25070. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][41], 0.280000, 1.100000);
  25071. PlayerTextDrawColor(playerid, Players[playerid][pText][41], -1);
  25072. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][41], 1);
  25073. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][41], 1);
  25074. Players[playerid][pText][42] = CreatePlayerTextDraw(playerid, 229.000000, 188.000000, "_");
  25075. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][42], 255);
  25076. PlayerTextDrawFont(playerid, Players[playerid][pText][42], 1);
  25077. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][42], 0.500000, 3.299998);
  25078. PlayerTextDrawColor(playerid, Players[playerid][pText][42], -1);
  25079. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][42], 0);
  25080. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][42], 1);
  25081. PlayerTextDrawSetShadow(playerid, Players[playerid][pText][42], 1);
  25082. PlayerTextDrawUseBox(playerid, Players[playerid][pText][42], 1);
  25083. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][42], 34);
  25084. PlayerTextDrawTextSize(playerid, Players[playerid][pText][42], 413.000000, 0.000000);
  25085. Players[playerid][pText][43] = CreatePlayerTextDraw(playerid, 232.000000, 191.000000, "~y~Melee~w~~n~No Weapon");
  25086. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][43], 255);
  25087. PlayerTextDrawFont(playerid, Players[playerid][pText][43], 2);
  25088. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][43], 0.250000, 1.100000);
  25089. PlayerTextDrawColor(playerid, Players[playerid][pText][43], -1);
  25090. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][43], 1);
  25091. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][43], 1);
  25092. Players[playerid][pText][44] = CreatePlayerTextDraw(playerid, 386.000000, 190.000000, "Unequip");
  25093. PlayerTextDrawAlignment(playerid, Players[playerid][pText][44], 2);
  25094. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][44], 255);
  25095. PlayerTextDrawFont(playerid, Players[playerid][pText][44], 2);
  25096. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][44], 0.230000, 1.099998);
  25097. PlayerTextDrawColor(playerid, Players[playerid][pText][44], -1);
  25098. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][44], 1);
  25099. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][44], 1);
  25100. PlayerTextDrawUseBox(playerid, Players[playerid][pText][44], 1);
  25101. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][44], -205);
  25102. PlayerTextDrawTextSize(playerid, Players[playerid][pText][44], 18.000000, 48.000000);
  25103. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][44], 1);
  25104. Players[playerid][pText][45] = CreatePlayerTextDraw(playerid, 386.000000, 205.000000, "Discard");
  25105. PlayerTextDrawAlignment(playerid, Players[playerid][pText][45], 2);
  25106. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][45], 255);
  25107. PlayerTextDrawFont(playerid, Players[playerid][pText][45], 2);
  25108. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][45], 0.230000, 1.099998);
  25109. PlayerTextDrawColor(playerid, Players[playerid][pText][45], -1);
  25110. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][45], 1);
  25111. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][45], 1);
  25112. PlayerTextDrawUseBox(playerid, Players[playerid][pText][45], 1);
  25113. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][45], -205);
  25114. PlayerTextDrawTextSize(playerid, Players[playerid][pText][45], 18.000000, 48.000000);
  25115. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][45], 1);
  25116. Players[playerid][pText][46] = CreatePlayerTextDraw(playerid, 229.000000, 226.000000, "_");
  25117. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][46], 255);
  25118. PlayerTextDrawFont(playerid, Players[playerid][pText][46], 1);
  25119. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][46], 0.500000, 3.299998);
  25120. PlayerTextDrawColor(playerid, Players[playerid][pText][46], -1);
  25121. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][46], 0);
  25122. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][46], 1);
  25123. PlayerTextDrawSetShadow(playerid, Players[playerid][pText][46], 1);
  25124. PlayerTextDrawUseBox(playerid, Players[playerid][pText][46], 1);
  25125. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][46], 51);
  25126. PlayerTextDrawTextSize(playerid, Players[playerid][pText][46], 413.000000, 0.000000);
  25127. Players[playerid][pText][47] = CreatePlayerTextDraw(playerid, 232.000000, 229.000000, "~y~Primary~w~~n~No Weapon");
  25128. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][47], 255);
  25129. PlayerTextDrawFont(playerid, Players[playerid][pText][47], 2);
  25130. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][47], 0.250000, 1.100000);
  25131. PlayerTextDrawColor(playerid, Players[playerid][pText][47], -1);
  25132. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][47], 1);
  25133. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][47], 1);
  25134. Players[playerid][pText][48] = CreatePlayerTextDraw(playerid, 386.000000, 228.000000, "Unequip");
  25135. PlayerTextDrawAlignment(playerid, Players[playerid][pText][48], 2);
  25136. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][48], 255);
  25137. PlayerTextDrawFont(playerid, Players[playerid][pText][48], 2);
  25138. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][48], 0.230000, 1.099998);
  25139. PlayerTextDrawColor(playerid, Players[playerid][pText][48], -1);
  25140. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][48], 1);
  25141. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][48], 1);
  25142. PlayerTextDrawUseBox(playerid, Players[playerid][pText][48], 1);
  25143. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][48], -205);
  25144. PlayerTextDrawTextSize(playerid, Players[playerid][pText][48], 18.000000, 48.000000);
  25145. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][48], 1);
  25146. Players[playerid][pText][49] = CreatePlayerTextDraw(playerid, 386.000000, 243.000000, "Discard");
  25147. PlayerTextDrawAlignment(playerid, Players[playerid][pText][49], 2);
  25148. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][49], 255);
  25149. PlayerTextDrawFont(playerid, Players[playerid][pText][49], 2);
  25150. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][49], 0.230000, 1.099998);
  25151. PlayerTextDrawColor(playerid, Players[playerid][pText][49], -1);
  25152. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][49], 1);
  25153. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][49], 1);
  25154. PlayerTextDrawUseBox(playerid, Players[playerid][pText][49], 1);
  25155. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][49], -205);
  25156. PlayerTextDrawTextSize(playerid, Players[playerid][pText][49], 18.000000, 48.000000);
  25157. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][49], 1);
  25158. Players[playerid][pText][50] = CreatePlayerTextDraw(playerid, 229.000000, 264.000000, "_");
  25159. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][50], 255);
  25160. PlayerTextDrawFont(playerid, Players[playerid][pText][50], 1);
  25161. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][50], 0.500000, 3.299998);
  25162. PlayerTextDrawColor(playerid, Players[playerid][pText][50], -1);
  25163. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][50], 0);
  25164. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][50], 1);
  25165. PlayerTextDrawSetShadow(playerid, Players[playerid][pText][50], 1);
  25166. PlayerTextDrawUseBox(playerid, Players[playerid][pText][50], 1);
  25167. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][50], 51);
  25168. PlayerTextDrawTextSize(playerid, Players[playerid][pText][50], 413.000000, 0.000000);
  25169. Players[playerid][pText][51] = CreatePlayerTextDraw(playerid, 232.000000, 267.000000, "~y~Secondary~w~~n~No Weapon");
  25170. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][51], 255);
  25171. PlayerTextDrawFont(playerid, Players[playerid][pText][51], 2);
  25172. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][51], 0.250000, 1.100000);
  25173. PlayerTextDrawColor(playerid, Players[playerid][pText][51], -1);
  25174. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][51], 1);
  25175. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][51], 1);
  25176. Players[playerid][pText][52] = CreatePlayerTextDraw(playerid, 386.000000, 266.000000, "Unequip");
  25177. PlayerTextDrawAlignment(playerid, Players[playerid][pText][52], 2);
  25178. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][52], 255);
  25179. PlayerTextDrawFont(playerid, Players[playerid][pText][52], 2);
  25180. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][52], 0.230000, 1.099998);
  25181. PlayerTextDrawColor(playerid, Players[playerid][pText][52], -1);
  25182. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][52], 1);
  25183. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][52], 1);
  25184. PlayerTextDrawUseBox(playerid, Players[playerid][pText][52], 1);
  25185. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][52], -205);
  25186. PlayerTextDrawTextSize(playerid, Players[playerid][pText][52], 18.000000, 48.000000);
  25187. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][52], 1);
  25188. Players[playerid][pText][53] = CreatePlayerTextDraw(playerid, 386.000000, 281.000000, "Discard");
  25189. PlayerTextDrawAlignment(playerid, Players[playerid][pText][53], 2);
  25190. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][53], 255);
  25191. PlayerTextDrawFont(playerid, Players[playerid][pText][53], 2);
  25192. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][53], 0.230000, 1.099998);
  25193. PlayerTextDrawColor(playerid, Players[playerid][pText][53], -1);
  25194. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][53], 1);
  25195. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][53], 1);
  25196. PlayerTextDrawUseBox(playerid, Players[playerid][pText][53], 1);
  25197. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][53], -205);
  25198. PlayerTextDrawTextSize(playerid, Players[playerid][pText][53], 18.000000, 48.000000);
  25199. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][53], 1);
  25200. Players[playerid][pText][54] = CreatePlayerTextDraw(playerid, 34.000000, 319.000000, "hud:radar_gym");
  25201. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][54], 255);
  25202. PlayerTextDrawFont(playerid, Players[playerid][pText][54], 4);
  25203. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][54], 0.500000, 0.899999);
  25204. PlayerTextDrawColor(playerid, Players[playerid][pText][54], -1);
  25205. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][54], 0);
  25206. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][54], 1);
  25207. PlayerTextDrawSetShadow(playerid, Players[playerid][pText][54], 1);
  25208. PlayerTextDrawUseBox(playerid, Players[playerid][pText][54], 1);
  25209. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][54], 255);
  25210. PlayerTextDrawTextSize(playerid, Players[playerid][pText][54], 22.000000, 17.000000);
  25211. Players[playerid][pText][55] = CreatePlayerTextDraw(playerid, 630.000000, 182.000000, "_");
  25212. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][55], 255);
  25213. PlayerTextDrawFont(playerid, Players[playerid][pText][55], 1);
  25214. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][55], 0.500000, 12.800000);
  25215. PlayerTextDrawColor(playerid, Players[playerid][pText][55], -1);
  25216. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][55], 0);
  25217. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][55], 1);
  25218. PlayerTextDrawSetShadow(playerid, Players[playerid][pText][55], 1);
  25219. PlayerTextDrawUseBox(playerid, Players[playerid][pText][55], 1);
  25220. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][55], 102);
  25221. PlayerTextDrawTextSize(playerid, Players[playerid][pText][55], 492.000000, 0.000000);
  25222. Players[playerid][pText][56] = CreatePlayerTextDraw(playerid, 492.000000, 171.000000, "Property");
  25223. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][56], 255);
  25224. PlayerTextDrawFont(playerid, Players[playerid][pText][56], 0);
  25225. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][56], 0.659999, 1.899999);
  25226. PlayerTextDrawColor(playerid, Players[playerid][pText][56], -1);
  25227. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][56], 1);
  25228. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][56], 1);
  25229. Players[playerid][pText][57] = CreatePlayerTextDraw(playerid, 499.000000, 193.000000, "~g~Price~w~~n~$10,000~n~~n~~g~Address:~w~~n~32 Ganton Street~n~~n~~g~Location:~w~~n~Mulholland");
  25230. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][57], 255);
  25231. PlayerTextDrawFont(playerid, Players[playerid][pText][57], 2);
  25232. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][57], 0.210000, 1.000000);
  25233. PlayerTextDrawColor(playerid, Players[playerid][pText][57], -1);
  25234. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][57], 1);
  25235. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][57], 1);
  25236. Players[playerid][pText][58] = CreatePlayerTextDraw(playerid, 484.000000, 123.000000, "Power");
  25237. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][58], 255);
  25238. PlayerTextDrawFont(playerid, Players[playerid][pText][58], 2);
  25239. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][58], 0.360000, 1.700000);
  25240. PlayerTextDrawColor(playerid, Players[playerid][pText][58], -1429936641);
  25241. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][58], 1);
  25242. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][58], 1);
  25243. Players[playerid][pText][59] = CreatePlayerTextDraw(playerid, 497.000000, 139.000000, "Reps");
  25244. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][59], 255);
  25245. PlayerTextDrawFont(playerid, Players[playerid][pText][59], 2);
  25246. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][59], 0.360000, 1.700000);
  25247. PlayerTextDrawColor(playerid, Players[playerid][pText][59], -1429936641);
  25248. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][59], 1);
  25249. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][59], 1);
  25250. Players[playerid][pText][60] = CreatePlayerTextDraw(playerid, 608.000000, 139.000000, "0");
  25251. PlayerTextDrawAlignment(playerid, Players[playerid][pText][60], 3);
  25252. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][60], 255);
  25253. PlayerTextDrawFont(playerid, Players[playerid][pText][60], 2);
  25254. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][60], 0.360000, 1.700000);
  25255. PlayerTextDrawColor(playerid, Players[playerid][pText][60], -1429936641);
  25256. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][60], 1);
  25257. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][60], 1);
  25258. Players[playerid][pText][61] = CreatePlayerTextDraw(playerid, 469.000000, 156.000000, "Distance");
  25259. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][61], 255);
  25260. PlayerTextDrawFont(playerid, Players[playerid][pText][61], 2);
  25261. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][61], 0.360000, 1.700000);
  25262. PlayerTextDrawColor(playerid, Players[playerid][pText][61], -1429936641);
  25263. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][61], 1);
  25264. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][61], 1);
  25265. Players[playerid][pText][62] = CreatePlayerTextDraw(playerid, 608.000000, 156.000000, "0");
  25266. PlayerTextDrawAlignment(playerid, Players[playerid][pText][62], 3);
  25267. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][62], 255);
  25268. PlayerTextDrawFont(playerid, Players[playerid][pText][62], 2);
  25269. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][62], 0.360000, 1.700000);
  25270. PlayerTextDrawColor(playerid, Players[playerid][pText][62], -1429936641);
  25271. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][62], 1);
  25272. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][62], 1);
  25273. Players[playerid][pText][63] = CreatePlayerTextDraw(playerid, 629.000000, 183.000000, "_");
  25274. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][63], 255);
  25275. PlayerTextDrawFont(playerid, Players[playerid][pText][63], 1);
  25276. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][63], 0.500000, 1.000000);
  25277. PlayerTextDrawColor(playerid, Players[playerid][pText][63], -1);
  25278. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][63], 0);
  25279. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][63], 1);
  25280. PlayerTextDrawSetShadow(playerid, Players[playerid][pText][63], 1);
  25281. PlayerTextDrawUseBox(playerid, Players[playerid][pText][63], 1);
  25282. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][63], 102);
  25283. PlayerTextDrawTextSize(playerid, Players[playerid][pText][63], 487.000000, 1.000000);
  25284. Players[playerid][pText][64] = CreatePlayerTextDraw(playerid, 629.000000, 183.000000, "_");
  25285. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][64], 255);
  25286. PlayerTextDrawFont(playerid, Players[playerid][pText][64], 1);
  25287. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][64], 0.500000, 9.799998);
  25288. PlayerTextDrawColor(playerid, Players[playerid][pText][64], -1);
  25289. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][64], 0);
  25290. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][64], 1);
  25291. PlayerTextDrawSetShadow(playerid, Players[playerid][pText][64], 1);
  25292. PlayerTextDrawUseBox(playerid, Players[playerid][pText][64], 1);
  25293. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][64], 68);
  25294. PlayerTextDrawTextSize(playerid, Players[playerid][pText][64], 487.000000, 1.000000);
  25295. Players[playerid][pText][65] = CreatePlayerTextDraw(playerid, 492.000000, 182.000000, "Glasses");
  25296. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][65], 255);
  25297. PlayerTextDrawFont(playerid, Players[playerid][pText][65], 2);
  25298. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][65], 0.270000, 1.100000);
  25299. PlayerTextDrawColor(playerid, Players[playerid][pText][65], -1);
  25300. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][65], 1);
  25301. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][65], 1);
  25302. Players[playerid][pText][66] = CreatePlayerTextDraw(playerid, 526.000000, 198.000000, "Preview");
  25303. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][66], 85);
  25304. PlayerTextDrawFont(playerid, Players[playerid][pText][66], 5);
  25305. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][66], 0.500000, 1.000000);
  25306. PlayerTextDrawColor(playerid, Players[playerid][pText][66], -1);
  25307. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][66], 0);
  25308. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][66], 1);
  25309. PlayerTextDrawSetShadow(playerid, Players[playerid][pText][66], 1);
  25310. PlayerTextDrawUseBox(playerid, Players[playerid][pText][66], 1);
  25311. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][66], 0);
  25312. PlayerTextDrawTextSize(playerid, Players[playerid][pText][66], 60.000000, 50.000000);
  25313. PlayerTextDrawSetPreviewModel(playerid, Players[playerid][pText][66], 19006);
  25314. PlayerTextDrawSetPreviewRot(playerid, Players[playerid][pText][66], 0.0000, 0.0000, 90.0000, 1.0000);
  25315. Players[playerid][pText][67] = CreatePlayerTextDraw(playerid, 513.000000, 255.000000, "<<");
  25316. PlayerTextDrawAlignment(playerid, Players[playerid][pText][67], 2);
  25317. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][67], 102);
  25318. PlayerTextDrawFont(playerid, Players[playerid][pText][67], 2);
  25319. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][67], 0.230000, 1.200000);
  25320. PlayerTextDrawColor(playerid, Players[playerid][pText][67], -1);
  25321. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][67], 1);
  25322. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][67], 1);
  25323. PlayerTextDrawUseBox(playerid, Players[playerid][pText][67], 1);
  25324. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][67], 119);
  25325. PlayerTextDrawTextSize(playerid, Players[playerid][pText][67], 18.000000, 22.000000);
  25326. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][67], 1);
  25327. Players[playerid][pText][68] = CreatePlayerTextDraw(playerid, 604.000000, 255.000000, ">>");
  25328. PlayerTextDrawAlignment(playerid, Players[playerid][pText][68], 2);
  25329. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][68], 102);
  25330. PlayerTextDrawFont(playerid, Players[playerid][pText][68], 2);
  25331. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][68], 0.230000, 1.200000);
  25332. PlayerTextDrawColor(playerid, Players[playerid][pText][68], -1);
  25333. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][68], 1);
  25334. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][68], 1);
  25335. PlayerTextDrawUseBox(playerid, Players[playerid][pText][68], 1);
  25336. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][68], 119);
  25337. PlayerTextDrawTextSize(playerid, Players[playerid][pText][68], 18.000000, 22.000000);
  25338. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][68], 1);
  25339. Players[playerid][pText][69] = CreatePlayerTextDraw(playerid, 558.000000, 255.000000, "Preview");
  25340. PlayerTextDrawAlignment(playerid, Players[playerid][pText][69], 2);
  25341. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][69], 102);
  25342. PlayerTextDrawFont(playerid, Players[playerid][pText][69], 2);
  25343. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][69], 0.209999, 1.200000);
  25344. PlayerTextDrawColor(playerid, Players[playerid][pText][69], -1);
  25345. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][69], 1);
  25346. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][69], 1);
  25347. PlayerTextDrawUseBox(playerid, Players[playerid][pText][69], 1);
  25348. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][69], 119);
  25349. PlayerTextDrawTextSize(playerid, Players[playerid][pText][69], 18.000000, 54.000000);
  25350. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][69], 1);
  25351. Players[playerid][pText][70] = CreatePlayerTextDraw(playerid, 630.000000, 170.000000, "_");
  25352. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][70], 255);
  25353. PlayerTextDrawFont(playerid, Players[playerid][pText][70], 1);
  25354. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][70], 0.500000, 1.000000);
  25355. PlayerTextDrawColor(playerid, Players[playerid][pText][70], -1);
  25356. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][70], 0);
  25357. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][70], 1);
  25358. PlayerTextDrawSetShadow(playerid, Players[playerid][pText][70], 1);
  25359. PlayerTextDrawUseBox(playerid, Players[playerid][pText][70], 1);
  25360. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][70], 85);
  25361. PlayerTextDrawTextSize(playerid, Players[playerid][pText][70], 447.000000, 0.000000);
  25362. Players[playerid][pText][71] = CreatePlayerTextDraw(playerid, 630.000000, 170.000000, "_");
  25363. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][71], 255);
  25364. PlayerTextDrawFont(playerid, Players[playerid][pText][71], 1);
  25365. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][71], 0.509999, 11.000000);
  25366. PlayerTextDrawColor(playerid, Players[playerid][pText][71], -1);
  25367. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][71], 0);
  25368. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][71], 1);
  25369. PlayerTextDrawSetShadow(playerid, Players[playerid][pText][71], 1);
  25370. PlayerTextDrawUseBox(playerid, Players[playerid][pText][71], 1);
  25371. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][71], 51);
  25372. PlayerTextDrawTextSize(playerid, Players[playerid][pText][71], 447.000000, 0.000000);
  25373. Players[playerid][pText][72] = CreatePlayerTextDraw(playerid, 452.000000, 168.000000, "Kitchen - 1/12");
  25374. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][72], 255);
  25375. PlayerTextDrawFont(playerid, Players[playerid][pText][72], 2);
  25376. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][72], 0.280000, 1.300000);
  25377. PlayerTextDrawColor(playerid, Players[playerid][pText][72], -1);
  25378. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][72], 1);
  25379. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][72], 1);
  25380. Players[playerid][pText][73] = CreatePlayerTextDraw(playerid, 518.000000, 253.000000, "<<");
  25381. PlayerTextDrawAlignment(playerid, Players[playerid][pText][73], 2);
  25382. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][73], 255);
  25383. PlayerTextDrawFont(playerid, Players[playerid][pText][73], 2);
  25384. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][73], 0.260000, 1.400000);
  25385. PlayerTextDrawColor(playerid, Players[playerid][pText][73], -1);
  25386. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][73], 1);
  25387. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][73], 1);
  25388. PlayerTextDrawUseBox(playerid, Players[playerid][pText][73], 1);
  25389. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][73], 85);
  25390. PlayerTextDrawTextSize(playerid, Players[playerid][pText][73], 18.000000, 25.000000);
  25391. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][73], 1);
  25392. Players[playerid][pText][74] = CreatePlayerTextDraw(playerid, 564.000000, 253.000000, "Preview");
  25393. PlayerTextDrawAlignment(playerid, Players[playerid][pText][74], 2);
  25394. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][74], 255);
  25395. PlayerTextDrawFont(playerid, Players[playerid][pText][74], 2);
  25396. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][74], 0.260000, 1.400000);
  25397. PlayerTextDrawColor(playerid, Players[playerid][pText][74], -1);
  25398. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][74], 1);
  25399. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][74], 1);
  25400. PlayerTextDrawUseBox(playerid, Players[playerid][pText][74], 1);
  25401. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][74], 85);
  25402. PlayerTextDrawTextSize(playerid, Players[playerid][pText][74], 18.000000, 54.000000);
  25403. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][74], 1);
  25404. Players[playerid][pText][75] = CreatePlayerTextDraw(playerid, 610.000000, 253.000000, ">>");
  25405. PlayerTextDrawAlignment(playerid, Players[playerid][pText][75], 2);
  25406. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][75], 255);
  25407. PlayerTextDrawFont(playerid, Players[playerid][pText][75], 2);
  25408. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][75], 0.260000, 1.400000);
  25409. PlayerTextDrawColor(playerid, Players[playerid][pText][75], -1);
  25410. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][75], 1);
  25411. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][75], 1);
  25412. PlayerTextDrawUseBox(playerid, Players[playerid][pText][75], 1);
  25413. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][75], 85);
  25414. PlayerTextDrawTextSize(playerid, Players[playerid][pText][75], 18.000000, 25.000000);
  25415. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][75], 1);
  25416. Players[playerid][pText][76] = CreatePlayerTextDraw(playerid, 455.000000, 184.000000, "_");
  25417. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][76], 119);
  25418. PlayerTextDrawFont(playerid, Players[playerid][pText][76], 5);
  25419. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][76], 0.800000, 5.000000);
  25420. PlayerTextDrawColor(playerid, Players[playerid][pText][76], -1);
  25421. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][76], 0);
  25422. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][76], 1);
  25423. PlayerTextDrawSetShadow(playerid, Players[playerid][pText][76], 1);
  25424. PlayerTextDrawUseBox(playerid, Players[playerid][pText][76], 1);
  25425. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][76], 0);
  25426. PlayerTextDrawTextSize(playerid, Players[playerid][pText][76], 70.000000, 59.000000);
  25427. PlayerTextDrawSetPreviewModel(playerid, Players[playerid][pText][76], 2131);
  25428. PlayerTextDrawSetPreviewRot(playerid, Players[playerid][pText][76], 0.0000, 0.0000, 0.0000, 1.0000);
  25429. Players[playerid][pText][77] = CreatePlayerTextDraw(playerid, 532.000000, 184.000000, "~g~Model:~w~~n~CJ_KITCH2_MID~n~~n~~g~Price:~w~~n~$25");
  25430. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][77], 255);
  25431. PlayerTextDrawFont(playerid, Players[playerid][pText][77], 2);
  25432. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][77], 0.230000, 1.200000);
  25433. PlayerTextDrawColor(playerid, Players[playerid][pText][77], -1);
  25434. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][77], 1);
  25435. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][77], 1);
  25436. Players[playerid][pText][78] = CreatePlayerTextDraw(playerid, 633.000000, 168.000000, "_");
  25437. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][78], 255);
  25438. PlayerTextDrawFont(playerid, Players[playerid][pText][78], 1);
  25439. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][78], 0.500000, 1.000000);
  25440. PlayerTextDrawColor(playerid, Players[playerid][pText][78], -1);
  25441. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][78], 0);
  25442. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][78], 1);
  25443. PlayerTextDrawSetShadow(playerid, Players[playerid][pText][78], 1);
  25444. PlayerTextDrawUseBox(playerid, Players[playerid][pText][78], 1);
  25445. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][78], 85);
  25446. PlayerTextDrawTextSize(playerid, Players[playerid][pText][78], 492.000000, 40.000000);
  25447. Players[playerid][pText][79] = CreatePlayerTextDraw(playerid, 633.000000, 168.000000, "_");
  25448. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][79], 255);
  25449. PlayerTextDrawFont(playerid, Players[playerid][pText][79], 1);
  25450. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][79], 0.500000, 16.200000);
  25451. PlayerTextDrawColor(playerid, Players[playerid][pText][79], -1);
  25452. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][79], 0);
  25453. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][79], 1);
  25454. PlayerTextDrawSetShadow(playerid, Players[playerid][pText][79], 1);
  25455. PlayerTextDrawUseBox(playerid, Players[playerid][pText][79], 1);
  25456. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][79], 85);
  25457. PlayerTextDrawTextSize(playerid, Players[playerid][pText][79], 492.000000, 40.000000);
  25458. Players[playerid][pText][80] = CreatePlayerTextDraw(playerid, 496.000000, 167.000000, "Dealership");
  25459. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][80], 255);
  25460. PlayerTextDrawFont(playerid, Players[playerid][pText][80], 2);
  25461. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][80], 0.290000, 1.100000);
  25462. PlayerTextDrawColor(playerid, Players[playerid][pText][80], -1);
  25463. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][80], 1);
  25464. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][80], 1);
  25465. Players[playerid][pText][81] = CreatePlayerTextDraw(playerid, 507.000000, 151.000000, "_");
  25466. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][81], 0);
  25467. PlayerTextDrawFont(playerid, Players[playerid][pText][81], 5);
  25468. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][81], 0.500000, 1.000000);
  25469. PlayerTextDrawColor(playerid, Players[playerid][pText][81], -1);
  25470. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][81], 0);
  25471. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][81], 1);
  25472. PlayerTextDrawSetShadow(playerid, Players[playerid][pText][81], 1);
  25473. PlayerTextDrawUseBox(playerid, Players[playerid][pText][81], 1);
  25474. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][81], 0);
  25475. PlayerTextDrawTextSize(playerid, Players[playerid][pText][81], 106.000000, 101.000000);
  25476. PlayerTextDrawSetPreviewModel(playerid, Players[playerid][pText][81], 400);
  25477. PlayerTextDrawSetPreviewRot(playerid, Players[playerid][pText][81], -16.0000, 0.0000, -55.0000, 1.0000);
  25478. Players[playerid][pText][82] = CreatePlayerTextDraw(playerid, 500.000000, 234.000000, "~g~Vehicle:~n~~w~Bravura~n~~n~~g~Price:~n~~w~$15,000");
  25479. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][82], 255);
  25480. PlayerTextDrawFont(playerid, Players[playerid][pText][82], 2);
  25481. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][82], 0.230000, 1.100000);
  25482. PlayerTextDrawColor(playerid, Players[playerid][pText][82], -1);
  25483. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][82], 1);
  25484. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][82], 1);
  25485. Players[playerid][pText][83] = CreatePlayerTextDraw(playerid, 514.000000, 297.000000, "<<");
  25486. PlayerTextDrawAlignment(playerid, Players[playerid][pText][83], 2);
  25487. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][83], 255);
  25488. PlayerTextDrawFont(playerid, Players[playerid][pText][83], 2);
  25489. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][83], 0.280000, 1.400000);
  25490. PlayerTextDrawColor(playerid, Players[playerid][pText][83], -1);
  25491. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][83], 1);
  25492. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][83], 1);
  25493. PlayerTextDrawUseBox(playerid, Players[playerid][pText][83], 1);
  25494. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][83], 85);
  25495. PlayerTextDrawTextSize(playerid, Players[playerid][pText][83], 60.000000, 22.000000);
  25496. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][83], 1);
  25497. Players[playerid][pText][84] = CreatePlayerTextDraw(playerid, 562.000000, 297.000000, "Confirm");
  25498. PlayerTextDrawAlignment(playerid, Players[playerid][pText][84], 2);
  25499. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][84], 255);
  25500. PlayerTextDrawFont(playerid, Players[playerid][pText][84], 2);
  25501. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][84], 0.290000, 1.400000);
  25502. PlayerTextDrawColor(playerid, Players[playerid][pText][84], -1);
  25503. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][84], 1);
  25504. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][84], 1);
  25505. PlayerTextDrawUseBox(playerid, Players[playerid][pText][84], 1);
  25506. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][84], 85);
  25507. PlayerTextDrawTextSize(playerid, Players[playerid][pText][84], 60.000000, 60.000000);
  25508. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][84], 1);
  25509. Players[playerid][pText][85] = CreatePlayerTextDraw(playerid, 610.000000, 297.000000, ">>");
  25510. PlayerTextDrawAlignment(playerid, Players[playerid][pText][85], 2);
  25511. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][85], 255);
  25512. PlayerTextDrawFont(playerid, Players[playerid][pText][85], 2);
  25513. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][85], 0.280000, 1.400000);
  25514. PlayerTextDrawColor(playerid, Players[playerid][pText][85], -1);
  25515. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][85], 1);
  25516. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][85], 1);
  25517. PlayerTextDrawUseBox(playerid, Players[playerid][pText][85], 1);
  25518. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][85], 85);
  25519. PlayerTextDrawTextSize(playerid, Players[playerid][pText][85], 60.000000, 22.000000);
  25520. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][85], 1);
  25521. Players[playerid][pText][86] = CreatePlayerTextDraw(playerid, 160.000000, 173.000000, "_");
  25522. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][86], 255);
  25523. PlayerTextDrawFont(playerid, Players[playerid][pText][86], 1);
  25524. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][86], 0.500000, 14.599998);
  25525. PlayerTextDrawColor(playerid, Players[playerid][pText][86], -1);
  25526. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][86], 0);
  25527. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][86], 1);
  25528. PlayerTextDrawSetShadow(playerid, Players[playerid][pText][86], 1);
  25529. PlayerTextDrawUseBox(playerid, Players[playerid][pText][86], 1);
  25530. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][86], 119);
  25531. PlayerTextDrawTextSize(playerid, Players[playerid][pText][86], 10.000000, 20.000000);
  25532. Players[playerid][pText][87] = CreatePlayerTextDraw(playerid, 9.000000, 162.000000, "Character Setup");
  25533. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][87], 255);
  25534. PlayerTextDrawFont(playerid, Players[playerid][pText][87], 0);
  25535. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][87], 0.569999, 1.799998);
  25536. PlayerTextDrawColor(playerid, Players[playerid][pText][87], -1);
  25537. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][87], 1);
  25538. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][87], 1);
  25539. Players[playerid][pText][88] = CreatePlayerTextDraw(playerid, 18.000000, 184.000000, "~g~~h~Gender:");
  25540. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][88], 255);
  25541. PlayerTextDrawFont(playerid, Players[playerid][pText][88], 2);
  25542. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][88], 0.239999, 1.200000);
  25543. PlayerTextDrawColor(playerid, Players[playerid][pText][88], -1);
  25544. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][88], 1);
  25545. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][88], 1);
  25546. Players[playerid][pText][89] = CreatePlayerTextDraw(playerid, 19.000000, 195.000000, "Male");
  25547. PlayerTextDrawTextSize(playerid, Players[playerid][pText][89], 100.000000, 10.000000);
  25548. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][89], 255);
  25549. PlayerTextDrawFont(playerid, Players[playerid][pText][89], 2);
  25550. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][89], 0.239999, 1.100000);
  25551. PlayerTextDrawColor(playerid, Players[playerid][pText][89], -1);
  25552. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][89], 1);
  25553. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][89], 1);
  25554. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][89], true);
  25555. Players[playerid][pText][90] = CreatePlayerTextDraw(playerid, 19.000000, 205.000000, "Female");
  25556. PlayerTextDrawTextSize(playerid, Players[playerid][pText][90], 100.000000, 10.000000);
  25557. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][90], 255);
  25558. PlayerTextDrawFont(playerid, Players[playerid][pText][90], 2);
  25559. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][90], 0.240000, 1.100000);
  25560. PlayerTextDrawColor(playerid, Players[playerid][pText][90], -1);
  25561. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][90], 1);
  25562. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][90], 1);
  25563. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][90], true);
  25564. Players[playerid][pText][91] = CreatePlayerTextDraw(playerid, 18.000000, 225.000000, "~g~~h~Age:");
  25565. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][91], 255);
  25566. PlayerTextDrawFont(playerid, Players[playerid][pText][91], 2);
  25567. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][91], 0.239999, 1.100000);
  25568. PlayerTextDrawColor(playerid, Players[playerid][pText][91], -1);
  25569. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][91], 1);
  25570. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][91], 1);
  25571. Players[playerid][pText][92] = CreatePlayerTextDraw(playerid, 19.000000, 235.000000, "13 years old");
  25572. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][92], 255);
  25573. PlayerTextDrawFont(playerid, Players[playerid][pText][92], 2);
  25574. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][92], 0.230000, 1.100000);
  25575. PlayerTextDrawColor(playerid, Players[playerid][pText][92], -1);
  25576. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][92], 1);
  25577. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][92], 1);
  25578. Players[playerid][pText][93] = CreatePlayerTextDraw(playerid, 123.000000, 235.000000, "-");
  25579. PlayerTextDrawAlignment(playerid, Players[playerid][pText][93], 2);
  25580. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][93], 255);
  25581. PlayerTextDrawFont(playerid, Players[playerid][pText][93], 0);
  25582. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][93], 0.589999, 1.200000);
  25583. PlayerTextDrawColor(playerid, Players[playerid][pText][93], -1);
  25584. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][93], 1);
  25585. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][93], 1);
  25586. PlayerTextDrawUseBox(playerid, Players[playerid][pText][93], 1);
  25587. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][93], 68);
  25588. PlayerTextDrawTextSize(playerid, Players[playerid][pText][93], 20.000000, 15.000000);
  25589. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][93], true);
  25590. Players[playerid][pText][94] = CreatePlayerTextDraw(playerid, 143.000000, 235.000000, "+");
  25591. PlayerTextDrawAlignment(playerid, Players[playerid][pText][94], 2);
  25592. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][94], 255);
  25593. PlayerTextDrawFont(playerid, Players[playerid][pText][94], 0);
  25594. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][94], 0.389999, 1.200000);
  25595. PlayerTextDrawColor(playerid, Players[playerid][pText][94], -1);
  25596. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][94], 1);
  25597. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][94], 1);
  25598. PlayerTextDrawUseBox(playerid, Players[playerid][pText][94], 1);
  25599. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][94], 68);
  25600. PlayerTextDrawTextSize(playerid, Players[playerid][pText][94], 20.000000, 15.000000);
  25601. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][94], true);
  25602. Players[playerid][pText][95] = CreatePlayerTextDraw(playerid, 18.000000, 256.000000, "~g~~h~Outfit:");
  25603. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][95], 255);
  25604. PlayerTextDrawFont(playerid, Players[playerid][pText][95], 2);
  25605. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][95], 0.239999, 1.100000);
  25606. PlayerTextDrawColor(playerid, Players[playerid][pText][95], -1);
  25607. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][95], 1);
  25608. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][95], 1);
  25609. Players[playerid][pText][96] = CreatePlayerTextDraw(playerid, 19.000000, 266.000000, "Skin: 299");
  25610. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][96], 255);
  25611. PlayerTextDrawFont(playerid, Players[playerid][pText][96], 2);
  25612. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][96], 0.230000, 1.100000);
  25613. PlayerTextDrawColor(playerid, Players[playerid][pText][96], -1);
  25614. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][96], 1);
  25615. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][96], 1);
  25616. Players[playerid][pText][97] = CreatePlayerTextDraw(playerid, 123.000000, 267.000000, "<<");
  25617. PlayerTextDrawAlignment(playerid, Players[playerid][pText][97], 2);
  25618. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][97], 255);
  25619. PlayerTextDrawFont(playerid, Players[playerid][pText][97], 0);
  25620. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][97], 0.219999, 1.200000);
  25621. PlayerTextDrawColor(playerid, Players[playerid][pText][97], -1);
  25622. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][97], 1);
  25623. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][97], 1);
  25624. PlayerTextDrawUseBox(playerid, Players[playerid][pText][97], 1);
  25625. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][97], 68);
  25626. PlayerTextDrawTextSize(playerid, Players[playerid][pText][97], 20.000000, 15.000000);
  25627. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][97], true);
  25628. Players[playerid][pText][98] = CreatePlayerTextDraw(playerid, 143.000000, 267.000000, ">>");
  25629. PlayerTextDrawAlignment(playerid, Players[playerid][pText][98], 2);
  25630. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][98], 255);
  25631. PlayerTextDrawFont(playerid, Players[playerid][pText][98], 0);
  25632. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][98], 0.219999, 1.200000);
  25633. PlayerTextDrawColor(playerid, Players[playerid][pText][98], -1);
  25634. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][98], 1);
  25635. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][98], 1);
  25636. PlayerTextDrawUseBox(playerid, Players[playerid][pText][98], 1);
  25637. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][98], 68);
  25638. PlayerTextDrawTextSize(playerid, Players[playerid][pText][98], 20.000000, 15.000000);
  25639. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][98], true);
  25640. Players[playerid][pText][99] = CreatePlayerTextDraw(playerid, 37.000000, 290.000000, "Reset");
  25641. PlayerTextDrawAlignment(playerid, Players[playerid][pText][99], 2);
  25642. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][99], 255);
  25643. PlayerTextDrawFont(playerid, Players[playerid][pText][99], 2);
  25644. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][99], 0.230000, 1.200000);
  25645. PlayerTextDrawColor(playerid, Players[playerid][pText][99], -1);
  25646. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][99], 1);
  25647. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][99], 1);
  25648. PlayerTextDrawUseBox(playerid, Players[playerid][pText][99], 1);
  25649. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][99], 68);
  25650. PlayerTextDrawTextSize(playerid, Players[playerid][pText][99], 20.000000, 37.000000);
  25651. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][99], true);
  25652. Players[playerid][pText][100] = CreatePlayerTextDraw(playerid, 85.000000, 290.000000, "Confirm");
  25653. PlayerTextDrawAlignment(playerid, Players[playerid][pText][100], 2);
  25654. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][100], 255);
  25655. PlayerTextDrawFont(playerid, Players[playerid][pText][100], 2);
  25656. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][100], 0.230000, 1.200000);
  25657. PlayerTextDrawColor(playerid, Players[playerid][pText][100], -1);
  25658. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][100], 1);
  25659. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][100], 1);
  25660. PlayerTextDrawUseBox(playerid, Players[playerid][pText][100], 1);
  25661. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][100], 68);
  25662. PlayerTextDrawTextSize(playerid, Players[playerid][pText][100], 20.000000, 46.000000);
  25663. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][100], true);
  25664. Players[playerid][pText][101] = CreatePlayerTextDraw(playerid, 133.000000, 290.000000, "Help");
  25665. PlayerTextDrawAlignment(playerid, Players[playerid][pText][101], 2);
  25666. PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][101], 255);
  25667. PlayerTextDrawFont(playerid, Players[playerid][pText][101], 2);
  25668. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][101], 0.230000, 1.200000);
  25669. PlayerTextDrawColor(playerid, Players[playerid][pText][101], -1);
  25670. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][101], 1);
  25671. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][101], 1);
  25672. PlayerTextDrawUseBox(playerid, Players[playerid][pText][101], 1);
  25673. PlayerTextDrawBoxColor(playerid, Players[playerid][pText][101], 68);
  25674. PlayerTextDrawTextSize(playerid, Players[playerid][pText][101], 20.000000, 37.000000);
  25675. PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][101], true);
  25676. }
  25677. GetNextDealershipCar(company, index)
  25678. {
  25679. index++;
  25680. if (index >= MAX_DEALERSHIP_CARS) {
  25681. index = 0;
  25682. }
  25683. for (new i = index; i < MAX_DEALERSHIP_CARS; i ++)
  25684. {
  25685. if (DealershipCars[i][dcCompany] == Companies[company][cID] && DealershipCars[i][dcModel] > 0) {
  25686. return i;
  25687. }
  25688. }
  25689. return GetFirstDealershipCar(company);
  25690. }
  25691. GetPreviousDealershipCar(company, index)
  25692. {
  25693. if (index - 1 < 0) {
  25694. index = MAX_DEALERSHIP_CARS;
  25695. }
  25696. for (new i = index; --i >= 0; )
  25697. {
  25698. if (DealershipCars[i][dcCompany] == Companies[company][cID] && DealershipCars[i][dcModel] > 0) {
  25699. return i;
  25700. }
  25701. }
  25702. return GetLastDealershipCar(company);
  25703. }
  25704. GetFirstDealershipCar(company)
  25705. {
  25706. for (new i = 0; i < MAX_DEALERSHIP_CARS; i ++)
  25707. {
  25708. if (DealershipCars[i][dcCompany] == Companies[company][cID] && DealershipCars[i][dcModel] > 0)
  25709. {
  25710. return i;
  25711. }
  25712. }
  25713. return INVALID_ID;
  25714. }
  25715. GetLastDealershipCar(company)
  25716. {
  25717. for (new i = MAX_DEALERSHIP_CARS; --i >= 0; )
  25718. {
  25719. if (DealershipCars[i][dcCompany] == Companies[company][cID] && DealershipCars[i][dcModel] > 0)
  25720. {
  25721. return i;
  25722. }
  25723. }
  25724. return INVALID_ID;
  25725. }
  25726. ShowDealershipPreviewMenu(playerid, company)
  25727. {
  25728. if (IsValidCompanyID(company) && Companies[company][cType] == COMPANY_DEALERSHIP)
  25729. {
  25730. new index = GetFirstDealershipCar(company);
  25731. if (index == INVALID_ID)
  25732. {
  25733. return 0;
  25734. }
  25735. else
  25736. {
  25737. Players[playerid][pDealershipMenu] = company;
  25738. Players[playerid][pDealershipIndex] = index;
  25739. ShowPlayerTextDraws(playerid, 78, 85);
  25740. UpdateDealershipPreview(playerid);
  25741. SelectTextDrawEx(playerid, -1);
  25742. }
  25743. }
  25744. return 1;
  25745. }
  25746. HideDealershipPreview(playerid)
  25747. {
  25748. HidePlayerTextDraws(playerid, 78, 85);
  25749. CancelSelectTextDraw(playerid);
  25750. Players[playerid][pDealershipMenu] = INVALID_ID;
  25751. Players[playerid][pDealershipIndex] = INVALID_ID;
  25752. }
  25753. UpdateDealershipPreview(playerid)
  25754. {
  25755. new index = Players[playerid][pDealershipIndex];
  25756. PlayerTextDrawSetPreviewModel(playerid, Players[playerid][pText][81], DealershipCars[index][dcModel]);
  25757. PlayerTextDrawSetPreviewVehCol(playerid, Players[playerid][pText][81], 11, 11);
  25758. PlayerTextDrawHide(playerid, Players[playerid][pText][81]);
  25759. PlayerTextDrawShow(playerid, Players[playerid][pText][81]);
  25760. PlayerTextDrawFormatString(playerid, Players[playerid][pText][82], "~g~Vehicle:~w~~n~%s~n~~n~~g~Price:~w~~n~%s", GetVehicleModelName(DealershipCars[index][dcModel]), FormatNumber(DealershipCars[index][dcPrice]));
  25761. }
  25762. ShowInfoForHouse(playerid, house)
  25763. {
  25764. if (Players[playerid][pFurnitureMenu])
  25765. {
  25766. return 0;
  25767. }
  25768. if (IsValidHouseID(house))
  25769. {
  25770. new string[128];
  25771. new string2[128];
  25772. if (!Houses[house][hOwner])
  25773. {
  25774. format(string2, sizeof(string2), "~g~ /house buy ~n~ ~g~Price:~w~~n~%s~n~~n~~g~Address:~w~~n~%s~n~~n~~g~Location:~w~~n~%s", FormatNumber(Houses[house][hValue]), Houses[house][hAddress], GetZoneName(Houses[house][hSpawn][0], Houses[house][hSpawn][1], Houses[house][hSpawn][2]));
  25775. ShowFooterText(playerid, string2, 10000);
  25776. }
  25777. else
  25778. {
  25779. if (Houses[house][hRentPrice] > 0)
  25780. {
  25781. format(string, sizeof(string), "~g~For Rent:~w~~n~%s~n~~n~~g~Address:~w~~n~%s~n~~n~~g~Location:~w~~n~%s", FormatNumber(Houses[house][hRentPrice]), Houses[house][hAddress], GetZoneName(Houses[house][hSpawn][0], Houses[house][hSpawn][1], Houses[house][hSpawn][2]));
  25782. }
  25783. else
  25784. {
  25785. format(string, sizeof(string), "~g~For Rent:~w~~n~No~n~~n~~g~Address:~w~~n~%s~n~~n~~g~Location:~w~~n~%s", Houses[house][hAddress], GetZoneName(Houses[house][hSpawn][0], Houses[house][hSpawn][1], Houses[house][hSpawn][2]));
  25786. }
  25787. if (!IsFooterTextShown(playerid) && !Players[playerid][pPicking])
  25788. {
  25789. ShowFooterText(playerid, "Press ~g~H~w~ to enter this property.", 10000);
  25790. }
  25791. }
  25792. Players[playerid][pHouseInfo] = house;
  25793. PlayerTextDrawSetString(playerid, Players[playerid][pText][57], string);
  25794. //ShowPlayerTextDraws(playerid, 55, 57);
  25795. }
  25796. return 1;
  25797. }
  25798. ShowInfoForCompany(playerid, company)
  25799. {
  25800. if (Players[playerid][pFurnitureMenu])
  25801. {
  25802. return 0;
  25803. }
  25804. if (IsValidCompanyID(company))
  25805. {
  25806. new string[128];
  25807. new string2[128];
  25808. if (!Companies[company][cOwner])
  25809. {
  25810. format(string2, sizeof(string2), "Use ~g~'/company buy'~w~ to purchase ~n~ ~g~Price:~w~ %s~n~~n~~g~Name:~w~ %s~n~~n~~g~Fee:~w~ %s", FormatNumber(Companies[company][cValue]), Companies[company][cName], FormatNumber(Companies[company][cFee]));
  25811. ShowFooterText(playerid, string2, 10000);
  25812. }
  25813. else
  25814. {
  25815. format(string, sizeof(string), "~g~Name:~w~~n~%s~n~~n~~g~Location:~w~~n~%s~n~~n~~g~Status:~w~~n~%s~n~~n~~g~Fee:~w~~n~%s", Companies[company][cName], GetZoneName(Companies[company][cSpawn][0], Companies[company][cSpawn][1], Companies[company][cSpawn][2]), (Companies[company][cLocked]) ? ("Closed") : ("Opened"), FormatNumber(Companies[company][cFee]));
  25816. if (!IsFooterTextShown(playerid) && !Players[playerid][pPicking])
  25817. {
  25818. ShowFooterText(playerid, "Press ~g~H~w~ to enter this property.", 10000);
  25819. }
  25820. }
  25821. Players[playerid][pCompanyInfo] = company;
  25822. PlayerTextDrawSetString(playerid, Players[playerid][pText][57], string);
  25823. //ShowPlayerTextDraws(playerid, 55, 57);
  25824. }
  25825. return 1;
  25826. }
  25827. ShowWeaponMenu(playerid)
  25828. {
  25829. new
  25830. string[200];
  25831. if (Weapons[playerid][wMelee] > 0)
  25832. format(string, sizeof(string), "%s", GetWeapon(Weapons[playerid][wMelee]));
  25833. else
  25834. format(string, sizeof(string), "Empty Slot");
  25835. if (Weapons[playerid][wPrimary] > 0)
  25836. format(string, sizeof(string), "%s\n%s (%i) (#%i)", string, GetWeapon(Weapons[playerid][wPrimary]), Weapons[playerid][wPrimaryAmmo], Weapons[playerid][wPrimarySerial]);
  25837. else
  25838. format(string, sizeof(string), "%s\nEmpty Slot", string);
  25839. if (Weapons[playerid][wSecondary] > 0)
  25840. format(string, sizeof(string), "%s\n%s (%i) (#%i)", string, GetWeapon(Weapons[playerid][wSecondary]), Weapons[playerid][wSecondaryAmmo], Weapons[playerid][wSecondarySerial]);
  25841. else
  25842. format(string, sizeof(string), "%s\nEmpty Slot", string);
  25843. if (Players[playerid][pDonator] >= DONATOR_STANDARD)
  25844. {
  25845. if (Weapons[playerid][wTertiary] > 0)
  25846. format(string, sizeof(string), "%s\n%s (%i) (#%i)", string, GetWeapon(Weapons[playerid][wTertiary]), Weapons[playerid][wTertiaryAmmo], Weapons[playerid][wTertiarySerial]);
  25847. else
  25848. format(string, sizeof(string), "%s\nEmpty Slot", string);
  25849. }
  25850. Dialog_Show(playerid, WeaponList, DIALOG_STYLE_LIST, "{FFFFFF}My Weapons", string, "Select", "Cancel");
  25851. return 1;
  25852. }
  25853. /*UpdateLoginTextDraws(playerid)
  25854. {
  25855. new
  25856. string[128];
  25857. if (Server[PlayerRecord] > 0)
  25858. {
  25859. format(string, sizeof(string), "Accounts: ~y~%i~w~ - Player Record: ~y~%i (%s)~w~", Server[Accounts], Server[PlayerRecord], Server[RecordDate]);
  25860. }
  25861. else
  25862. {
  25863. format(string, sizeof(string), "Accounts: ~y~%i~w~ - Player Record: ~y~0", Server[Accounts]);
  25864. }
  25865. PlayerTextDrawSetString(playerid, Players[playerid][pText][38], string);
  25866. }
  25867. ShowLoginTextDraws(playerid, show)
  25868. {
  25869. if (show)
  25870. {
  25871. UpdateLoginTextDraws(playerid);
  25872. ShowPlayerTextDraws(playerid, 37, 38);
  25873. }
  25874. else
  25875. {
  25876. HidePlayerTextDraws(playerid, 37, 38);
  25877. }
  25878. return 1;
  25879. }*/
  25880. IsFooterTextShown(playerid)
  25881. {
  25882. return Players[playerid][pFooter];
  25883. }
  25884. ShowFooterText(playerid, text[], time = 5000)
  25885. {
  25886. if (Players[playerid][pFooter])
  25887. {
  25888. KillTimer(Timers[playerid][tFooter]);
  25889. }
  25890. Players[playerid][pFooter] = 1;
  25891. Timers[playerid][tFooter] = SetTimerEx("HideFooterText", time, false, "i", playerid);
  25892. PlayerTextDrawSetString(playerid, Players[playerid][pText][5], text);
  25893. return PlayerTextDrawShow(playerid, Players[playerid][pText][5]);
  25894. }
  25895. SendPlayerSplitMessage(playerid, color, const text[])
  25896. {
  25897. new
  25898. string[192],
  25899. parse[12],
  25900. length
  25901. ;
  25902. length = strlen(text);
  25903. if (length < 100)
  25904. {
  25905. SendClientMessage(playerid, color, text);
  25906. }
  25907. else
  25908. {
  25909. for (new i = 0; i < 100; i ++)
  25910. {
  25911. if ((i + 7 < length) && (text[i] == '{' && text[i + 7] == '}'))
  25912. {
  25913. strmid(parse, text, i, i + 8);
  25914. }
  25915. }
  25916. strmid(string, text, 0, 100);
  25917. SendClientMessage(playerid, color, string);
  25918. strmid(string, text, 100, length);
  25919. strins(string, "...", 0);
  25920. if (strlen(parse) > 0)
  25921. {
  25922. strins(string, parse, 0);
  25923. }
  25924. SendClientMessage(playerid, color, string);
  25925. }
  25926. }
  25927. SendSplitMessage(playerid, color, const text[], {Float, _}:...)
  25928. {
  25929. static
  25930. args,
  25931. str[192];
  25932. /*
  25933. * Custom function that uses #emit to format variables into a string.
  25934. * This code is very fragile; touching any code here will cause crashing!
  25935. */
  25936. if ((args = numargs()) <= 3)
  25937. {
  25938. SendPlayerSplitMessage(playerid, color, text);
  25939. }
  25940. else
  25941. {
  25942. while (--args >= 3)
  25943. {
  25944. #emit LCTRL 5
  25945. #emit LOAD.alt args
  25946. #emit SHL.C.alt 2
  25947. #emit ADD.C 12
  25948. #emit ADD
  25949. #emit LOAD.I
  25950. #emit PUSH.pri
  25951. }
  25952. #emit PUSH.S text
  25953. #emit PUSH.C 192
  25954. #emit PUSH.C str
  25955. #emit PUSH.S 8
  25956. #emit SYSREQ.C format
  25957. #emit LCTRL 5
  25958. #emit SCTRL 4
  25959. SendPlayerSplitMessage(playerid, color, str);
  25960. #emit RETN
  25961. }
  25962. return 1;
  25963. }
  25964. SendVehicleMessage(vehicleid, color, text[], {Float, _}:...)
  25965. {
  25966. static
  25967. args,
  25968. str[192];
  25969. /*
  25970. * Custom function that uses #emit to format variables into a string.
  25971. * This code is very fragile; touching any code here will cause crashing!
  25972. */
  25973. if ((args = numargs()) <= 3)
  25974. {
  25975. foreach (new i : Player) {
  25976. if (IsPlayerInVehicle(i, vehicleid)) SendSplitMessage(i, color, text);
  25977. }
  25978. }
  25979. else
  25980. {
  25981. while (--args >= 3)
  25982. {
  25983. #emit LCTRL 5
  25984. #emit LOAD.alt args
  25985. #emit SHL.C.alt 2
  25986. #emit ADD.C 12
  25987. #emit ADD
  25988. #emit LOAD.I
  25989. #emit PUSH.pri
  25990. }
  25991. #emit PUSH.S text
  25992. #emit PUSH.C 192
  25993. #emit PUSH.C str
  25994. #emit PUSH.S 8
  25995. #emit SYSREQ.C format
  25996. #emit LCTRL 5
  25997. #emit SCTRL 4
  25998. foreach (new i : Player) {
  25999. if (IsPlayerInVehicle(i, vehicleid)) SendSplitMessage(i, color, str);
  26000. }
  26001. #emit RETN
  26002. }
  26003. return 1;
  26004. }
  26005. ShowActionBubble(playerid, text[], {Float, _}:...)
  26006. {
  26007. static
  26008. args,
  26009. str[192];
  26010. /*
  26011. * Custom function that uses #emit to format variables into a string.
  26012. * This code is very fragile; touching any code here will cause crashing!
  26013. */
  26014. if ((args = numargs()) <= 2)
  26015. {
  26016. SetPlayerChatBubble(playerid, text, COLOR_PURPLE, 25.0, 6000);
  26017. }
  26018. else
  26019. {
  26020. while (--args >= 2)
  26021. {
  26022. #emit LCTRL 5
  26023. #emit LOAD.alt args
  26024. #emit SHL.C.alt 2
  26025. #emit ADD.C 12
  26026. #emit ADD
  26027. #emit LOAD.I
  26028. #emit PUSH.pri
  26029. }
  26030. #emit PUSH.S text
  26031. #emit PUSH.C 192
  26032. #emit PUSH.C str
  26033. #emit LOAD.S.pri 8
  26034. #emit ADD.C 4
  26035. #emit PUSH.pri
  26036. #emit SYSREQ.C format
  26037. #emit LCTRL 5
  26038. #emit SCTRL 4
  26039. SetPlayerChatBubble(playerid, str, COLOR_PURPLE, 25.0, 6000);
  26040. #emit RETN
  26041. }
  26042. return 1;
  26043. }
  26044. /*ShowFormatBubble(playerid, color, text[], {Float, _}:...)
  26045. {
  26046. static
  26047. args,
  26048. str[192];*/
  26049. /*
  26050. * Custom function that uses #emit to format variables into a string.
  26051. * This code is very fragile; touching any code here will cause crashing!
  26052. */
  26053. /*if ((args = numargs()) <= 3)
  26054. {
  26055. SetPlayerChatBubble(playerid, text, color, 25.0, 6000);
  26056. }
  26057. else
  26058. {
  26059. while (--args >= 3)
  26060. {
  26061. #emit LCTRL 5
  26062. #emit LOAD.alt args
  26063. #emit SHL.C.alt 2
  26064. #emit ADD.C 12
  26065. #emit ADD
  26066. #emit LOAD.I
  26067. #emit PUSH.pri
  26068. }
  26069. #emit PUSH.S text
  26070. #emit PUSH.C 192
  26071. #emit PUSH.C str
  26072. #emit PUSH.S 8
  26073. #emit SYSREQ.C format
  26074. #emit LCTRL 5
  26075. #emit SCTRL 4
  26076. SetPlayerChatBubble(playerid, str, color, 25.0, 6000);
  26077. #emit RETN
  26078. }
  26079. return 1;
  26080. }*/
  26081. SendDistanceMessage(playerid, Float:distance, color, const text[], {Float, _}:...)
  26082. {
  26083. static
  26084. args,
  26085. str[192];
  26086. /*
  26087. * Custom function that uses #emit to format variables into a string.
  26088. * This code is very fragile; touching any code here will cause crashing!
  26089. */
  26090. if ((args = numargs()) <= 4)
  26091. {
  26092. foreach (new i : Player)
  26093. {
  26094. if (IsPlayerInRangeOfPlayer(i, playerid, distance))
  26095. {
  26096. SendSplitMessage(i, color, text);
  26097. }
  26098. }
  26099. }
  26100. else
  26101. {
  26102. while (--args >= 4)
  26103. {
  26104. #emit LCTRL 5
  26105. #emit LOAD.alt args
  26106. #emit SHL.C.alt 2
  26107. #emit ADD.C 12
  26108. #emit ADD
  26109. #emit LOAD.I
  26110. #emit PUSH.pri
  26111. }
  26112. #emit PUSH.S text
  26113. #emit PUSH.C 192
  26114. #emit PUSH.C str
  26115. #emit LOAD.S.pri 8
  26116. #emit CONST.alt 4
  26117. #emit SUB
  26118. #emit PUSH.pri
  26119. #emit SYSREQ.C format
  26120. #emit LCTRL 5
  26121. #emit SCTRL 4
  26122. foreach (new i : Player)
  26123. {
  26124. if (IsPlayerInRangeOfPlayer(i, playerid, distance))
  26125. {
  26126. SendSplitMessage(i, color, str);
  26127. }
  26128. }
  26129. #emit RETN
  26130. }
  26131. return 1;
  26132. }
  26133. ShowErrorToPlayer(playerid, text[], {Float, _}:...)
  26134. {
  26135. static
  26136. args,
  26137. str[192];
  26138. /*
  26139. * Custom function that uses #emit to format variables into a string.
  26140. * This code is very fragile; touching any code here will cause crashing!
  26141. */
  26142. if (Players[playerid][pFooter])
  26143. {
  26144. HideFooterText(playerid);
  26145. }
  26146. if ((args = numargs()) <= 2)
  26147. {
  26148. PlayerPlaySound(playerid, 1084, 0.0, 0.0, 0.0);
  26149. ShowFooterText(playerid, text, 5000);
  26150. }
  26151. else
  26152. {
  26153. while (--args >= 2)
  26154. {
  26155. #emit LCTRL 5
  26156. #emit LOAD.alt args
  26157. #emit SHL.C.alt 2
  26158. #emit ADD.C 12
  26159. #emit ADD
  26160. #emit LOAD.I
  26161. #emit PUSH.pri
  26162. }
  26163. #emit PUSH.S text
  26164. #emit PUSH.C 192
  26165. #emit PUSH.C str
  26166. #emit LOAD.S.pri 8
  26167. #emit CONST.alt 4
  26168. #emit ADD
  26169. #emit PUSH.pri
  26170. #emit SYSREQ.C format
  26171. #emit LCTRL 5
  26172. #emit SCTRL 4
  26173. PlayerPlaySound(playerid, 1084, 0.0, 0.0, 0.0);
  26174. ShowFooterText(playerid, str, 5000);
  26175. #emit RETN
  26176. }
  26177. return 1;
  26178. }
  26179. SendFormatMessage(playerid, color, const text[], {Float, _}:...)//neger
  26180. {
  26181. static
  26182. args,
  26183. str[192];
  26184. /*
  26185. * Custom function that uses #emit to format variables into a string.
  26186. * This code is very fragile; touching any code here will cause crashing!
  26187. */
  26188. if ((args = numargs()) <= 3)
  26189. {
  26190. SendClientMessage(playerid, color, text);
  26191. }
  26192. else
  26193. {
  26194. while (--args >= 3)
  26195. {
  26196. #emit LCTRL 5
  26197. #emit LOAD.alt args
  26198. #emit SHL.C.alt 2
  26199. #emit ADD.C 12
  26200. #emit ADD
  26201. #emit LOAD.I
  26202. #emit PUSH.pri
  26203. }
  26204. #emit PUSH.S text
  26205. #emit PUSH.C 192
  26206. #emit PUSH.C str
  26207. #emit PUSH.S 8
  26208. #emit SYSREQ.C format
  26209. #emit LCTRL 5
  26210. #emit SCTRL 4
  26211. SendClientMessage(playerid, color, str);
  26212. #emit RETN
  26213. }
  26214. return 1;
  26215. }
  26216. SendFormatMessageToAll(color, const text[], {Float, _}:...)
  26217. {
  26218. static
  26219. args,
  26220. str[192];
  26221. /*
  26222. * Custom function that uses #emit to format variables into a string.
  26223. * This code is very fragile; touching any code here will cause crashing!
  26224. */
  26225. if ((args = numargs()) <= 2)
  26226. {
  26227. SendClientMessageToAll(color, text);
  26228. }
  26229. else
  26230. {
  26231. while (--args >= 2)
  26232. {
  26233. #emit LCTRL 5
  26234. #emit LOAD.alt args
  26235. #emit SHL.C.alt 2
  26236. #emit ADD.C 12
  26237. #emit ADD
  26238. #emit LOAD.I
  26239. #emit PUSH.pri
  26240. }
  26241. #emit PUSH.S text
  26242. #emit PUSH.C 192
  26243. #emit PUSH.C str
  26244. #emit LOAD.S.pri 8
  26245. #emit CONST.alt 4
  26246. #emit ADD
  26247. #emit PUSH.pri
  26248. #emit SYSREQ.C format
  26249. #emit LCTRL 5
  26250. #emit SCTRL 4
  26251. SendClientMessageToAll(color, str);
  26252. #emit RETN
  26253. }
  26254. return 1;
  26255. }
  26256. AdminDutyMessage(color, const text[], {Float, _}:...)
  26257. {
  26258. static
  26259. args,
  26260. str[192];
  26261. /*
  26262. * Custom function that uses #emit to format variables into a string.
  26263. * This code is very fragile; touching any code here will cause crashing!
  26264. */
  26265. if ((args = numargs()) <= 2)
  26266. {
  26267. foreach (new i : Player) {
  26268. if(CheckAdmin(i, 1)) SendClientMessage(i, color, text);
  26269. }
  26270. print(text);
  26271. }
  26272. else
  26273. {
  26274. while (--args >= 2)
  26275. {
  26276. #emit LCTRL 5
  26277. #emit LOAD.alt args
  26278. #emit SHL.C.alt 2
  26279. #emit ADD.C 12
  26280. #emit ADD
  26281. #emit LOAD.I
  26282. #emit PUSH.pri
  26283. }
  26284. #emit PUSH.S text
  26285. #emit PUSH.C 192
  26286. #emit PUSH.C str
  26287. #emit LOAD.S.pri 8
  26288. #emit CONST.alt 4
  26289. #emit ADD
  26290. #emit PUSH.pri
  26291. #emit SYSREQ.C format
  26292. #emit LCTRL 5
  26293. #emit SCTRL 4
  26294. foreach (new i : Player) {
  26295. if(CheckAdmin(i, 1) && Players[i][pAdminDuty]) SendClientMessage(i, color, str);
  26296. }
  26297. print(str);
  26298. #emit RETN
  26299. }
  26300. return 1;
  26301. }
  26302. SendAdminMessage(color, const text[], {Float, _}:...)
  26303. {
  26304. static
  26305. args,
  26306. str[192];
  26307. /*
  26308. * Custom function that uses #emit to format variables into a string.
  26309. * This code is very fragile; touching any code here will cause crashing!
  26310. */
  26311. if ((args = numargs()) <= 2)
  26312. {
  26313. foreach (new i : Player) {
  26314. if(CheckAdmin(i, 1)) SendClientMessage(i, color, text);
  26315. }
  26316. print(text);
  26317. }
  26318. else
  26319. {
  26320. while (--args >= 2)
  26321. {
  26322. #emit LCTRL 5
  26323. #emit LOAD.alt args
  26324. #emit SHL.C.alt 2
  26325. #emit ADD.C 12
  26326. #emit ADD
  26327. #emit LOAD.I
  26328. #emit PUSH.pri
  26329. }
  26330. #emit PUSH.S text
  26331. #emit PUSH.C 192
  26332. #emit PUSH.C str
  26333. #emit LOAD.S.pri 8
  26334. #emit CONST.alt 4
  26335. #emit ADD
  26336. #emit PUSH.pri
  26337. #emit SYSREQ.C format
  26338. #emit LCTRL 5
  26339. #emit SCTRL 4
  26340. foreach (new i : Player) {
  26341. if(CheckAdmin(i, 1)) SendClientMessage(i, color, str);
  26342. }
  26343. print(str);
  26344. #emit RETN
  26345. }
  26346. return 1;
  26347. }
  26348. SendVeteranMessage(color, const text[], {Float, _}:...)
  26349. {
  26350. static
  26351. args,
  26352. str[192];
  26353. /*
  26354. * Custom function that uses #emit to format variables into a string.
  26355. * This code is very fragile; touching any code here will cause crashing!
  26356. */
  26357. if ((args = numargs()) <= 2)
  26358. {
  26359. foreach (new i : Player) {
  26360. if(Players[i][pVeteran]) SendClientMessage(i, color, text);
  26361. }
  26362. print(text);
  26363. }
  26364. else
  26365. {
  26366. while (--args >= 2)
  26367. {
  26368. #emit LCTRL 5
  26369. #emit LOAD.alt args
  26370. #emit SHL.C.alt 2
  26371. #emit ADD.C 12
  26372. #emit ADD
  26373. #emit LOAD.I
  26374. #emit PUSH.pri
  26375. }
  26376. #emit PUSH.S text
  26377. #emit PUSH.C 192
  26378. #emit PUSH.C str
  26379. #emit LOAD.S.pri 8
  26380. #emit CONST.alt 4
  26381. #emit ADD
  26382. #emit PUSH.pri
  26383. #emit SYSREQ.C format
  26384. #emit LCTRL 5
  26385. #emit SCTRL 4
  26386. foreach (new i : Player) {
  26387. if(Players[i][pVeteran]) SendClientMessage(i, color, str);
  26388. }
  26389. print(str);
  26390. #emit RETN
  26391. }
  26392. return 1;
  26393. }
  26394. SendFactionMessage(faction, color, const text[], {Float, _}:...)
  26395. {
  26396. static
  26397. args,
  26398. str[192];
  26399. /*
  26400. * Custom function that uses #emit to format variables into a string.
  26401. * This code is very fragile; touching any code here will cause crashing!
  26402. */
  26403. if ((args = numargs()) <= 3)
  26404. {
  26405. foreach (new i : Player) {
  26406. if (Players[i][pFaction] == faction) SendSplitMessage(i, color, text);
  26407. }
  26408. }
  26409. else
  26410. {
  26411. while (--args >= 3)
  26412. {
  26413. #emit LCTRL 5
  26414. #emit LOAD.alt args
  26415. #emit SHL.C.alt 2
  26416. #emit ADD.C 12
  26417. #emit ADD
  26418. #emit LOAD.I
  26419. #emit PUSH.pri
  26420. }
  26421. #emit PUSH.S text
  26422. #emit PUSH.C 192
  26423. #emit PUSH.C str
  26424. #emit PUSH.S 8
  26425. #emit SYSREQ.C format
  26426. #emit LCTRL 5
  26427. #emit SCTRL 4
  26428. foreach (new i : Player) {
  26429. if (Players[i][pFaction] == faction) SendSplitMessage(i, color, str);
  26430. }
  26431. #emit RETN
  26432. }
  26433. return 1;
  26434. }
  26435. SendSupporterMessage(color, const text[], {Float, _}:...)
  26436. {
  26437. static
  26438. args,
  26439. str[192];
  26440. /*
  26441. * Custom function that uses #emit to format variables into a string.
  26442. * This code is very fragile; touching any code here will cause crashing!
  26443. */
  26444. if ((args = numargs()) <= 2)
  26445. {
  26446. foreach (new i : Player) {
  26447. if (Players[i][pSupporter] > 0) SendSplitMessage(i, color, text);
  26448. }
  26449. print(text);
  26450. }
  26451. else
  26452. {
  26453. while (--args >= 2)
  26454. {
  26455. #emit LCTRL 5
  26456. #emit LOAD.alt args
  26457. #emit SHL.C.alt 2
  26458. #emit ADD.C 12
  26459. #emit ADD
  26460. #emit LOAD.I
  26461. #emit PUSH.pri
  26462. }
  26463. #emit PUSH.S text
  26464. #emit PUSH.C 192
  26465. #emit PUSH.C str
  26466. #emit LOAD.S.pri 8
  26467. #emit CONST.alt 4
  26468. #emit ADD
  26469. #emit PUSH.pri
  26470. #emit SYSREQ.C format
  26471. #emit LCTRL 5
  26472. #emit SCTRL 4
  26473. foreach (new i : Player) {
  26474. if (Players[i][pSupporter] > 0) SendSplitMessage(i, color, str);
  26475. }
  26476. print(str);
  26477. #emit RETN
  26478. }
  26479. return 1;
  26480. }
  26481. SendDepartmentMessage(color, const text[], {Float, _}:...)
  26482. {
  26483. static
  26484. args,
  26485. str[192];
  26486. /*
  26487. * Custom function that uses #emit to format variables into a string.
  26488. * This code is very fragile; touching any code here will cause crashing!
  26489. */
  26490. if ((args = numargs()) <= 2)
  26491. {
  26492. foreach (new i : Player) {
  26493. if (FACTION_LEO <= GetPlayerFactionType(i) <= FACTION_GOVERNMENT) SendSplitMessage(i, color, text);
  26494. }
  26495. }
  26496. else
  26497. {
  26498. while (--args >= 2)
  26499. {
  26500. #emit LCTRL 5
  26501. #emit LOAD.alt args
  26502. #emit SHL.C.alt 2
  26503. #emit ADD.C 12
  26504. #emit ADD
  26505. #emit LOAD.I
  26506. #emit PUSH.pri
  26507. }
  26508. #emit PUSH.S text
  26509. #emit PUSH.C 192
  26510. #emit PUSH.C str
  26511. #emit LOAD.S.pri 8
  26512. #emit CONST.alt 4
  26513. #emit ADD
  26514. #emit PUSH.pri
  26515. #emit SYSREQ.C format
  26516. #emit LCTRL 5
  26517. #emit SCTRL 4
  26518. foreach (new i : Player) {
  26519. if (FACTION_LEO <= GetPlayerFactionType(i) <= FACTION_GOVERNMENT) SendSplitMessage(i, color, str);
  26520. }
  26521. #emit RETN
  26522. }
  26523. return 1;
  26524. }
  26525. PlayerTextDrawFormatString(playerid, PlayerText:playertextid, text[], {Float, _}:...)
  26526. {
  26527. static
  26528. args,
  26529. str[192];
  26530. /*
  26531. * Custom function that uses #emit to format variables into a string.
  26532. * This code is very fragile; touching any code here will cause crashing!
  26533. */
  26534. if ((args = numargs()) <= 3)
  26535. {
  26536. PlayerTextDrawSetString(playerid, playertextid, text);
  26537. }
  26538. else
  26539. {
  26540. while (--args >= 3)
  26541. {
  26542. #emit LCTRL 5
  26543. #emit LOAD.alt args
  26544. #emit SHL.C.alt 2
  26545. #emit ADD.C 12
  26546. #emit ADD
  26547. #emit LOAD.I
  26548. #emit PUSH.pri
  26549. }
  26550. #emit PUSH.S text
  26551. #emit PUSH.C 192
  26552. #emit PUSH.C str
  26553. #emit PUSH.S 8
  26554. #emit SYSREQ.C format
  26555. #emit LCTRL 5
  26556. #emit SCTRL 4
  26557. PlayerTextDrawSetString(playerid, playertextid, str);
  26558. #emit RETN
  26559. }
  26560. return 1;
  26561. }
  26562. PlayerAttemptLogin(playerid, pass[])
  26563. {
  26564. new
  26565. queryString[255];
  26566. WP_Hash(queryString, sizeof(queryString), pass);
  26567. format(queryString, sizeof(queryString), "SELECT * FROM rp_accounts WHERE Username = '%s' AND Pass = '%s'", ReturnName(playerid), queryString);
  26568. mysql_tquery(gConnection, queryString, "OnPlayerAttemptLogin", "i", playerid);
  26569. }
  26570. CreatePlayerAccount(playerid, pass[])
  26571. {
  26572. new
  26573. queryString[255];
  26574. WP_Hash(queryString, sizeof(queryString), pass);
  26575. format(queryString, sizeof(queryString), "INSERT INTO rp_accounts (Username, Pass, Registered) VALUES('%s', '%s', NOW())", ReturnName(playerid), queryString);
  26576. mysql_tquery(gConnection, queryString, "OnPlayerRegister", "i", playerid);
  26577. }
  26578. FlushChatForPlayer(playerid)
  26579. {
  26580. for (new i = 0; i < 30; i ++)
  26581. {
  26582. SendClientMessage(playerid, COLOR_GREY, " ");
  26583. }
  26584. }
  26585. ReturnIP(playerid)
  26586. {
  26587. new
  26588. playerIP[16];
  26589. GetPlayerIp(playerid, playerIP,sizeof(playerIP));
  26590. return playerIP;
  26591. }
  26592. ReturnName(playerid) // Returns the player's name (underscore included).
  26593. {
  26594. new
  26595. playerName[MAX_PLAYER_NAME];
  26596. GetPlayerName(playerid, playerName, sizeof(playerName));
  26597. return playerName;
  26598. }
  26599. ReturnAdminRank(playerid)
  26600. {
  26601. new
  26602. adminRank[16];
  26603. if (Players[playerid][pAdmin] == 0 && Players[playerid][pVeteran] > 0) {
  26604. adminRank = "Veteran";
  26605. } else if (Players[playerid][pAdmin] == 1) {
  26606. adminRank = "Moderator";
  26607. } else if (Players[playerid][pAdmin] == 2) {
  26608. adminRank = "Game Admin";
  26609. } else if (Players[playerid][pAdmin] == 3) {
  26610. adminRank = "Game Admin";
  26611. } else if (Players[playerid][pAdmin] == 4) {
  26612. adminRank = "Senior Admin";
  26613. } else if (Players[playerid][pAdmin] == 5) {
  26614. adminRank = "Lead Admin";
  26615. } else if (Players[playerid][pAdmin] >= 6) {
  26616. adminRank = "Management";
  26617. }
  26618. return adminRank;
  26619. }
  26620. ReturnAdminName(playerid)
  26621. {
  26622. new
  26623. playerName[MAX_PLAYER_NAME];
  26624. if(CheckAdmin(playerid, 1) && IsAdminNameSetup(playerid)) {
  26625. strcpy(playerName, Players[playerid][pAdminName]);
  26626. } else {
  26627. strcpy(playerName, ReturnNameEx(playerid, 0));
  26628. }
  26629. return playerName;
  26630. }
  26631. ReturnAdminTitle(playerid)
  26632. {
  26633. new
  26634. playerName[MAX_PLAYER_NAME];
  26635. if(CheckAdmin(playerid, 1) && IsAdminTitleSetup(playerid)) {
  26636. strcpy(playerName, Players[playerid][pAdminTitle]);
  26637. } else {
  26638. strcpy(playerName, ReturnNameEx(playerid, 0));
  26639. }
  26640. return playerName;
  26641. }
  26642. ReturnNameEx(playerid, maskcheck=1) // Returns the player's name (underscore removed).
  26643. {
  26644. new
  26645. playerName[MAX_PLAYER_NAME];
  26646. if (maskcheck > 0 && Players[playerid][pMaskID] > 0)
  26647. {
  26648. format(playerName, sizeof(playerName), "[Mask_%d_%d]", Players[playerid][pMaskID], Players[playerid][pAge]);
  26649. }
  26650. else
  26651. {
  26652. GetPlayerName(playerid, playerName, sizeof(playerName));
  26653. for (new i = 0, l = strlen(playerName); i < l; i ++)
  26654. {
  26655. if (playerName[i] == '_')
  26656. {
  26657. playerName[i] = ' ';
  26658. }
  26659. }
  26660. }
  26661. return playerName;
  26662. }
  26663. AdjustMenuCamera(playerid)
  26664. {
  26665. /*
  26666. * Spectating must be enabled to hide class selection controls.
  26667. * Due to a bug in SA-MP, a timer is required to apply the camera settings after spectating.
  26668. */
  26669. TogglePlayerSpectating(playerid, true);
  26670. SetTimerEx("DelayMenuCamera", 300, false, "i", playerid);
  26671. }
  26672. GetNextArrayValue(array[], index, size = sizeof(array))
  26673. {
  26674. if (index + 1 >= size)
  26675. return array[0];
  26676. else
  26677. return array[++index];
  26678. }
  26679. GetPreviousArrayValue(array[], index, size = sizeof(array))
  26680. {
  26681. if (index == 0)
  26682. return array[size - 1];
  26683. else
  26684. return array[--index];
  26685. }
  26686. CancelOutfitSelection(playerid)
  26687. {
  26688. Players[playerid][pOutfitIndex] = INVALID_ID;
  26689. SetPlayerPos(playerid, Players[playerid][pSpawn][0], Players[playerid][pSpawn][1], Players[playerid][pSpawn][2]);
  26690. SetPlayerFacingAngle(playerid, Players[playerid][pSpawn][3]);
  26691. SetPlayerInterior(playerid, Players[playerid][pInterior]);
  26692. SetPlayerVirtualWorld(playerid, Players[playerid][pWorld]);
  26693. SetPlayerSkin(playerid, Players[playerid][pSkin]);
  26694. SetCameraBehindPlayer(playerid);
  26695. PlayerTextDrawHide(playerid, Players[playerid][pText][0]);
  26696. TogglePlayerControllable(playerid, 1);
  26697. AttachObjectsToPlayer(playerid);
  26698. }
  26699. SetupOutfitSelection(playerid)
  26700. {
  26701. Players[playerid][pOutfitIndex] = 1;
  26702. Players[playerid][pOutfitTick] = 0;
  26703. SetPlayerSkin(playerid, g_ValidSkinModels[Players[playerid][pOutfitIndex]]);
  26704. UpdateOutfitSelection(playerid);
  26705. SetPlayerInterior(playerid, 18);
  26706. SetPlayerPos(playerid, 176.1029, -72.3869, 1001.8047);
  26707. SetPlayerFacingAngle(playerid, 90.0000);
  26708. SetPlayerCameraPos(playerid, 172.684814, -72.349136, 1002.249450);
  26709. SetPlayerCameraLookAt(playerid, 175.603042, -72.376945, 1002.004699);
  26710. SetPlayerVirtualWorld(playerid, (playerid + 2000));
  26711. PlayerTextDrawShow(playerid, Players[playerid][pText][0]);
  26712. TogglePlayerControllable(playerid, 0);
  26713. }
  26714. UpdateOutfitSelection(playerid)
  26715. {
  26716. new
  26717. string[48];
  26718. SetPlayerSkin(playerid, g_ValidSkinModels[Players[playerid][pOutfitIndex]]);
  26719. format(string, sizeof(string), "%i ~<~ ~g~~h~%i~w~ ~>~ %i", GetPreviousArrayValue(g_ValidSkinModels, Players[playerid][pOutfitIndex]), g_ValidSkinModels[Players[playerid][pOutfitIndex]], GetNextArrayValue(g_ValidSkinModels, Players[playerid][pOutfitIndex]));
  26720. PlayerTextDrawSetString(playerid, Players[playerid][pText][0], string);
  26721. }
  26722. SetFreezePos(playerid, Float:x, Float:y, Float:z, delay)
  26723. {
  26724. SetPlayerPos(playerid, x, y, z);
  26725. TogglePlayerControllable(playerid, 0);
  26726. SetTimerEx("UnfreezePlayer", delay, false, "i", playerid);
  26727. }
  26728. SetTeleportPos(playerid, Float:x, Float:y, Float:z, Float:angle, interior, world)
  26729. {
  26730. new vehicleid = GetPlayerVehicleID(playerid);
  26731. if (GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  26732. {
  26733. SetVehiclePos(vehicleid, x, y, z);
  26734. SetVehicleZAngle(vehicleid, angle);
  26735. LinkVehicleToInterior(vehicleid, interior);
  26736. SetVehicleVirtualWorld(vehicleid, world);
  26737. }
  26738. else
  26739. {
  26740. SetPlayerPos(playerid, x, y, z);
  26741. SetPlayerFacingAngle(playerid, angle);
  26742. }
  26743. SetPlayerInterior(playerid, interior);
  26744. SetPlayerVirtualWorld(playerid, world);
  26745. SetCameraBehindPlayer(playerid);
  26746. }
  26747. SetPlayerFadePos(playerid, Float:x, Float:y, Float:z, Float:angle, interior, world, bool:freeze = true)
  26748. {
  26749. FadeScreenForPlayer(playerid, FADE_SET_POSITION);
  26750. TogglePlayerControllable(playerid, 0);
  26751. Players[playerid][pSetPosition] = 1;
  26752. SetTimerEx("SetPosition", 1000, false, "iffffiii", playerid, x, y, z, angle, interior, world, freeze);
  26753. return 1;
  26754. }
  26755. SetPlayerPosEx(playerid, Float:x, Float:y, Float:z, Float:angle = -1.0, interior = -1, world = -1)
  26756. {
  26757. SetPlayerPos(playerid, x, y, z);
  26758. if (angle != -1.0)
  26759. SetPlayerFacingAngle(playerid, angle);
  26760. if (interior >= 0)
  26761. SetPlayerInterior(playerid, interior);
  26762. if (world >= 0)
  26763. SetPlayerVirtualWorld(playerid, world);
  26764. Players[playerid][pDistance][0] = x;
  26765. Players[playerid][pDistance][1] = y;
  26766. Players[playerid][pDistance][2] = z;
  26767. return SetCameraBehindPlayer(playerid);
  26768. }
  26769. SyncTimeForPlayer(playerid)
  26770. {
  26771. new hour, minute;
  26772. gettime(hour, minute);
  26773. if (GetPlayerInterior(playerid) > 0 || Players[playerid][pStoned] == STONED_TYPE_HEROIN) {
  26774. SetPlayerTime(playerid, 12, 12);
  26775. } else if (!IsPlayerLoggedIn(playerid)) {
  26776. SetPlayerTime(playerid, 0, 0);
  26777. } else {
  26778. SetPlayerTime(playerid, hour, minute);
  26779. }
  26780. }
  26781. GetDateAndTime()
  26782. {
  26783. // Returns the date as exactly as it appears in MySQL DATETIME.
  26784. new
  26785. string[32],
  26786. date[6];
  26787. getdate(date[2], date[1], date[0]);
  26788. gettime(date[3], date[4], date[5]);
  26789. format(string, sizeof(string), "%i-%02d-%02d %02d:%02d:%02d", date[2], date[1], date[0], date[3], date[4], date[5]);
  26790. return string;
  26791. }
  26792. GetVehicleDriver(vehicleid)
  26793. {
  26794. foreach (new i : Player)
  26795. {
  26796. if (GetPlayerVehicleID(i) == vehicleid && GetPlayerState(i) == PLAYER_STATE_DRIVER)
  26797. {
  26798. return i;
  26799. }
  26800. }
  26801. return INVALID_PLAYER_ID;
  26802. }
  26803. UpdateFuelGauge(vehicleid)
  26804. {
  26805. new
  26806. playerid = INVALID_PLAYER_ID,
  26807. string[12];
  26808. if (IsPoweredVehicle(vehicleid))
  26809. {
  26810. if ((playerid = GetVehicleDriver(vehicleid)) != INVALID_PLAYER_ID && Players[playerid][pShowFuel])
  26811. {
  26812. new
  26813. fuel = VehicleInformation[vehicleid][vFuel];
  26814. format(string, sizeof(string), "%i%%", fuel);
  26815. PlayerTextDrawSetString(playerid, Players[playerid][pText][32], string);
  26816. PlayerTextDrawDestroy(playerid, Players[playerid][pText][31]);
  26817. Players[playerid][pText][31] = CreatePlayerTextDraw(playerid, (fuel / 2.56) + 534.0, 102.000000, ".");
  26818. PlayerTextDrawFont(playerid, Players[playerid][pText][31], 1);
  26819. PlayerTextDrawLetterSize(playerid, Players[playerid][pText][31], 0.470000, 1.400000);
  26820. PlayerTextDrawColor(playerid, Players[playerid][pText][31], -1);
  26821. PlayerTextDrawSetOutline(playerid, Players[playerid][pText][31], 1);
  26822. PlayerTextDrawSetProportional(playerid, Players[playerid][pText][31], 1);
  26823. PlayerTextDrawShow(playerid, Players[playerid][pText][31]);
  26824. }
  26825. }
  26826. return 1;
  26827. }
  26828. ShowBanList(playerid, page = 1)
  26829. {
  26830. Players[playerid][pBanPage] = page;
  26831. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_blacklist ORDER BY ID DESC LIMIT %i, %i", (page - 1) * MAX_LISTED_BANS, MAX_LISTED_BANS);
  26832. mysql_tquery(gConnection, gExecute, "OnViewBanList", "i", playerid);
  26833. }
  26834. ChangeName(playerid, name[])
  26835. {
  26836. new
  26837. oldname[MAX_PLAYER_NAME];
  26838. GetPlayerName(playerid, oldname, MAX_PLAYER_NAME);
  26839. SetPlayerName(playerid, name);
  26840. for (new i = 0; i < MAX_HOUSES; i ++)
  26841. {
  26842. if (IsValidHouseID(i) && IsHouseOwner(playerid, i))
  26843. {
  26844. SetHouseOwner(i, playerid);
  26845. }
  26846. }
  26847. for (new i = 0; i < MAX_COMPANIES; i ++)
  26848. {
  26849. if (IsValidCompanyID(i) && IsCompanyOwner(playerid, i))
  26850. {
  26851. SetCompanyOwner(i, playerid);
  26852. }
  26853. }
  26854. format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Username = '%s' WHERE Username = '%s'", name, oldname);
  26855. mysql_tquery(gConnection, gExecute);
  26856. format(gExecute, sizeof(gExecute), "INSERT INTO rp_namechanges (Player, OldName, NewName, Date) VALUES(%i, '%s', '%s', NOW())", Players[playerid][pID], oldname, name);
  26857. mysql_tquery(gConnection, gExecute);
  26858. }
  26859. GetClosestCompanyID(playerid, type)
  26860. {
  26861. new
  26862. index = INVALID_ID,
  26863. Float:fX,
  26864. Float:fY,
  26865. Float:fZ,
  26866. Float:fDist = 0.0,
  26867. Float:fCurrent = 6000.0
  26868. ;
  26869. GetPlayerPos(playerid, fX, fY, fZ);
  26870. for (new i = 0; i < MAX_COMPANIES; i ++)
  26871. {
  26872. if (IsValidCompanyID(i) && Companies[i][cType] == type && (fDist = GetPlayerDistanceFromPoint(playerid, Companies[i][cSpawn][0], Companies[i][cSpawn][1], Companies[i][cSpawn][2])) < fCurrent)
  26873. {
  26874. fCurrent = fDist;
  26875. index = i;
  26876. }
  26877. }
  26878. return index;
  26879. }
  26880. GetClosestAutoShopID(playerid)
  26881. {
  26882. new
  26883. index = INVALID_ID,
  26884. Float:fX,
  26885. Float:fY,
  26886. Float:fZ,
  26887. Float:fDist = 0.0,
  26888. Float:fCurrent = 6000.0
  26889. ;
  26890. GetPlayerPos(playerid, fX, fY, fZ);
  26891. for (new i = 0; i < MAX_AUTO_SHOPS; i ++)
  26892. {
  26893. if (IsValidAutoShopID(i) && (fDist = GetPlayerDistanceFromPoint(playerid, AutoShops[i][asX], AutoShops[i][asY], AutoShops[i][asZ])) < fCurrent)
  26894. {
  26895. fCurrent = fDist;
  26896. index = i;
  26897. }
  26898. }
  26899. return index;
  26900. }
  26901. GetClosestHospital(playerid)
  26902. {
  26903. /*
  26904. Determines the closest hospital from the player's position.
  26905. Example: If the player died near Angel Pine, they will spawn at Angel Pine hospital.
  26906. */
  26907. new
  26908. index,
  26909. Float:fX,
  26910. Float:fY,
  26911. Float:fZ,
  26912. Float:fDist = 0.0,
  26913. Float:fCurrent = 6000.0
  26914. ;
  26915. GetPlayerPosEx(playerid, fX, fY, fZ);
  26916. for (new i = 0; i < sizeof(g_HospitalLocations); i ++)
  26917. {
  26918. if ((fDist = GetPlayerDistanceFromPoint(playerid, g_HospitalLocations[i][0], g_HospitalLocations[i][1], g_HospitalLocations[i][2])) < fCurrent)
  26919. {
  26920. fCurrent = fDist;
  26921. index = i;
  26922. }
  26923. }
  26924. return index;
  26925. }
  26926. GetFurnitureListStart(category)
  26927. {
  26928. for (new i = 0; i < sizeof(g_FurnitureList); i ++)
  26929. {
  26930. if (g_FurnitureList[i][e_ModelCategory] == category)
  26931. {
  26932. return i;
  26933. }
  26934. }
  26935. return INVALID_ID;
  26936. }
  26937. GetFurnitureListEnd(category)
  26938. {
  26939. new
  26940. start = GetFurnitureListStart(category);
  26941. for (new i = start; i < sizeof(g_FurnitureList); i ++)
  26942. {
  26943. if (i + 1 == sizeof(g_FurnitureList) || g_FurnitureList[i + 1][e_ModelCategory] != category)
  26944. {
  26945. return i;
  26946. }
  26947. }
  26948. return INVALID_ID;
  26949. }
  26950. IsValidModelID(modelid)
  26951. {
  26952. for (new i = 0; i < sizeof(g_ValidObjectModels); i ++)
  26953. {
  26954. if (g_ValidObjectModels[i] == modelid)
  26955. {
  26956. return 1;
  26957. }
  26958. }
  26959. return 0;
  26960. }
  26961. PreviewFurniture(playerid, index)
  26962. {
  26963. if(!IsPlayerInside(playerid)) return SendErrorMessage(playerid, "You can not place the furniture outside.");
  26964. new
  26965. Float:x,
  26966. Float:y,
  26967. Float:z,
  26968. Float:angle;
  26969. GetPlayerPos(playerid, x, y, z);
  26970. GetPlayerFacingAngle(playerid, angle);
  26971. x += 2.0 * floatsin(-angle, degrees);
  26972. y += 2.0 * floatcos(-angle, degrees);
  26973. if (IsValidDynamicObject(gPreviewFurniture[playerid]))
  26974. {
  26975. DestroyDynamicObject(gPreviewFurniture[playerid]);
  26976. }
  26977. gPreviewFurniture[playerid] = CreateDynamicObject(g_FurnitureList[index][e_ModelID], x, y, z, 0.0, 0.0, angle, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid));
  26978. EditDynamicObjectEx(playerid, EDIT_TYPE_PREVIEW, gPreviewFurniture[playerid]);
  26979. //EditDynamicObjectEx(playerid, EDIT_TYPE_FURNITURE, Furniture[furniture][fObject], furniture);
  26980. SendInfoMessage(playerid, "Press ESC to cancel. Click the disk icon to save changes.");
  26981. return 1;
  26982. }
  26983. UpdateFurniturePreviewer(playerid)
  26984. {
  26985. new
  26986. index = Players[playerid][pPreviewIndex];
  26987. PlayerTextDrawFormatString(playerid, Players[playerid][pText][77], "~g~Model:~w~~n~%s~n~~n~~g~Price:~w~~n~%s", g_FurnitureList[index][e_ModelName], FormatNumber(g_FurnitureList[index][e_ModelPrice]));
  26988. PlayerTextDrawSetPreviewModel(playerid, Players[playerid][pText][76], g_FurnitureList[index][e_ModelID]);
  26989. PlayerTextDrawHide(playerid, Players[playerid][pText][76]);
  26990. PlayerTextDrawShow(playerid, Players[playerid][pText][76]);
  26991. }
  26992. ShowFurniturePreviewer(playerid, category)
  26993. {
  26994. for (new i = 0; i < sizeof(g_FurnitureList); i ++)
  26995. {
  26996. if (g_FurnitureList[i][e_ModelCategory] == category)
  26997. {
  26998. Players[playerid][pFurnitureMenu] = 1;
  26999. Players[playerid][pCategory] = category;
  27000. Players[playerid][pPreviewIndex] = i;
  27001. PlayerTextDrawSetString(playerid, Players[playerid][pText][72], g_FurnitureTypes[category]);
  27002. PlayerTextDrawFormatString(playerid, Players[playerid][pText][77], "~g~Model:~w~~n~%s~n~~n~~g~Price:~w~~n~%s", g_FurnitureList[i][e_ModelName], FormatNumber(g_FurnitureList[i][e_ModelPrice]));
  27003. PlayerTextDrawSetPreviewModel(playerid, Players[playerid][pText][76], g_FurnitureList[i][e_ModelID]);
  27004. if (category == FURNITURE_KITCHEN)
  27005. {
  27006. PlayerTextDrawSetPreviewRot(playerid, Players[playerid][pText][76], 0.0, 0.0, 180.0, 1.0);
  27007. }
  27008. HidePlayerTextDraws(playerid, 55, 57);
  27009. ShowPlayerTextDraws(playerid, 70, 77);
  27010. SelectTextDrawEx(playerid, -1);
  27011. return 1;
  27012. }
  27013. }
  27014. return 0;
  27015. }
  27016. HideFurniturePreviewer(playerid)
  27017. {
  27018. Players[playerid][pFurnitureMenu] = 0;
  27019. HidePlayerTextDraws(playerid, 70, 77);
  27020. CancelSelectTextDraw(playerid);
  27021. }
  27022. GetHouseOwner(house)
  27023. {
  27024. new playername[MAX_PLAYER_NAME];
  27025. if (Houses[house][hOwner])
  27026. strcpy(playername, Houses[house][hOwnerName]);
  27027. else
  27028. playername = "Nobody";
  27029. return playername;
  27030. }
  27031. SetHouseOwner(house, playerid)
  27032. {
  27033. if (playerid == INVALID_PLAYER_ID)
  27034. {
  27035. strcpy(Houses[house][hOwnerName], "Nobody", MAX_PLAYER_NAME);
  27036. Houses[house][hOwner] = 0;
  27037. }
  27038. else if (IsPlayerLoggedIn(playerid))
  27039. {
  27040. GetPlayerName(playerid, Houses[house][hOwnerName], MAX_PLAYER_NAME);
  27041. Houses[house][hOwner] = Players[playerid][pID];
  27042. }
  27043. UpdateHouse(house);
  27044. SaveHouse(house);
  27045. }
  27046. IsBackdoorSetup(house)
  27047. {
  27048. return (IsValidHouseID(house) && Houses[house][hBackdoor][0] != 0.0 && Houses[house][hBackdoor][1] != 0.0 && Houses[house][hBackdoor][2] != 0.0);
  27049. }
  27050. IsBackdoorExitSetup(house)
  27051. {
  27052. return (IsValidHouseID(house) && Houses[house][hBackdoorInt][0] != 0.0 && Houses[house][hBackdoorInt][1] != 0.0 && Houses[house][hBackdoorInt][2] != 0.0);
  27053. }
  27054. UpdateHouse(house)
  27055. {
  27056. new
  27057. string[128];
  27058. if (!Houses[house][hExists]) return 0;
  27059. DestroyDynamicCP(Houses[house][hCheckpoint]);
  27060. //DestroyDynamic3DTextLabel(Houses[house][hText]);
  27061. DestroyDynamic3DTextLabel(Houses[house][hBackdoorText][0]);
  27062. DestroyDynamic3DTextLabel(Houses[house][hBackdoorText][1]);
  27063. if (Houses[house][hOwner])
  27064. {
  27065. if (Houses[house][hRentPrice] > 0)
  27066. format(string, sizeof(string), "Rent: {33CC33}%s{AFAFAF}\n%s\n(( /rent ))", FormatNumber(Houses[house][hRentPrice]), Houses[house][hAddress]);
  27067. else
  27068. format(string, sizeof(string), "%s", Houses[house][hAddress]);
  27069. }
  27070. else
  27071. {
  27072. format(string, sizeof(string), "Price: {33CC33}%s{AFAFAF}\n%s", FormatNumber(Houses[house][hValue]), Houses[house][hAddress]);
  27073. }
  27074. Houses[house][hCheckpoint] = CreateDynamicCP(Houses[house][hSpawn][0], Houses[house][hSpawn][1], Houses[house][hSpawn][2], 2.0, Houses[house][hExteriorWorld], Houses[house][hExterior], .streamdistance = 15.0);
  27075. //Houses[house][hText] = CreateDynamic3DTextLabel(string, COLOR_GREY, Houses[house][hSpawn][0], Houses[house][hSpawn][1], Houses[house][hSpawn][2], 10.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Houses[house][hExteriorWorld], Houses[house][hExterior]);
  27076. if (IsBackdoorSetup(house))
  27077. {
  27078. Houses[house][hBackdoorText][0] = CreateDynamic3DTextLabel("House Backdoor\nEntrance Point", -1, Houses[house][hBackdoor][0], Houses[house][hBackdoor][1], Houses[house][hBackdoor][2], 10.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Houses[house][hExteriorWorld], Houses[house][hExterior]);
  27079. Houses[house][hBackdoorText][1] = CreateDynamic3DTextLabel("House Backdoor\nExit Point", -1, Houses[house][hBackdoorInt][0], Houses[house][hBackdoorInt][1], Houses[house][hBackdoorInt][2], 10.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Houses[house][hWorld], Houses[house][hInterior]);
  27080. }
  27081. return 1;
  27082. }
  27083. SaveHouse(house)
  27084. {
  27085. static
  27086. queryString[1024];
  27087. if (!Houses[house][hExists]) return 0;
  27088. format(queryString, sizeof(queryString), "UPDATE rp_houses SET `hOwner` = %i, `hOwnerName` = '%s', `hValue` = %i, `hAddress` = '%s', `hSpawnX` = %.4f, `hSpawnY` = %.4f, `hSpawnZ` = %.4f, `hSpawnA` = %.4f, `hIntX` = %.4f, `hIntY` = %.4f, `hIntZ` = %.4f, `hIntA` = %.4f, `hBackdoorX` = %.4f, `hBackdoorY` = %.4f, `hBackdoorZ` = %.4f",
  27089. Houses[house][hOwner],
  27090. Houses[house][hOwnerName],
  27091. Houses[house][hValue],
  27092. mysql_escaped(Houses[house][hAddress]),
  27093. Houses[house][hSpawn][0],
  27094. Houses[house][hSpawn][1],
  27095. Houses[house][hSpawn][2],
  27096. Houses[house][hSpawn][3],
  27097. Houses[house][hInt][0],
  27098. Houses[house][hInt][1],
  27099. Houses[house][hInt][2],
  27100. Houses[house][hInt][3],
  27101. Houses[house][hBackdoor][0],
  27102. Houses[house][hBackdoor][1],
  27103. Houses[house][hBackdoor][2]
  27104. );
  27105. format(queryString, sizeof(queryString), "%s, `hBackdoorIntX` = %.4f, `hBackdoorIntY` = %.4f, `hBackdoorIntZ` = %.4f, `hExterior` = %i, `hExteriorWorld` = %i, `hInterior` = %i, `hWorld` = %i, `hLocked` = %i, `hAlarm` = %i, `hRentPrice` = %i WHERE `hID` = %i",
  27106. queryString,
  27107. Houses[house][hBackdoorInt][0],
  27108. Houses[house][hBackdoorInt][1],
  27109. Houses[house][hBackdoorInt][2],
  27110. Houses[house][hExterior],
  27111. Houses[house][hExteriorWorld],
  27112. Houses[house][hInterior],
  27113. Houses[house][hWorld],
  27114. Houses[house][hLocked],
  27115. Houses[house][hAlarm],
  27116. Houses[house][hRentPrice],
  27117. Houses[house][hID]
  27118. );
  27119. return mysql_tquery(gConnection, queryString);
  27120. }
  27121. UpdateTimeTextDraw()
  27122. {
  27123. new
  27124. string[8],
  27125. hour,
  27126. minute;
  27127. gettime(hour, minute);
  27128. format(string, sizeof(string), "%02d:%02d", hour, minute);
  27129. TextDrawSetString(gGlobalTextdraws[1], string);
  27130. }
  27131. /*---------------------------------------------------------------------------
  27132. Callbacks
  27133. These are the callbacks called by the SA-MP server.
  27134. Make sure you add checks for NPCs also!
  27135. ---------------------------------------------------------------------------*/
  27136. /*
  27137. pWarnWeapon,
  27138. pWarnHealth,
  27139. pWarnArmor,
  27140. pWarnAirbreak,
  27141. pWarnSpeedhack,
  27142. pWarnMoneyHack,
  27143. pWarnAmmoHack,
  27144. pWarnFlyHack
  27145. */
  27146. forward IsAPlane(vehicle);
  27147. public IsAPlane(vehicle)
  27148. {
  27149. new model = GetVehicleModel(vehicle);
  27150. if(model == 592 || model == 577 || model == 511 || model == 512 || model == 593 || model == 520 || model == 553 ||
  27151. model == 476 || model == 519 || model == 460 || model == 513 || model == 548 || model == 417 || model == 487 ||
  27152. model == 488 || model == 497 || model == 563 || model == 447 || model == 469 )
  27153. {
  27154. return 1;
  27155. }
  27156. return 0;
  27157. }
  27158. forward IsAHelicopter(vehicle);
  27159. public IsAHelicopter(vehicle)
  27160. {
  27161. new model = GetVehicleModel(vehicle);
  27162. if(model == 548 || model == 425 || model == 417 || model == 487 || model == 488 || model == 497 || model == 563 || model == 447 || model == 469)
  27163. {
  27164. return 1;
  27165. }
  27166. return 0;
  27167. }
  27168. forward UnFreezePlayer(playerid);
  27169. public UnFreezePlayer(playerid)
  27170. {
  27171. TogglePlayerControllable(playerid, 1);
  27172. return 1;
  27173. }
  27174. forward OnCheatDetected(playerid, ip_address[], type, code);
  27175. public OnCheatDetected(playerid, ip_address[], type, code)
  27176. {
  27177. switch (code)
  27178. {
  27179. case 0 .. 1:
  27180. {
  27181. if(CheckAdmin(playerid, 5))
  27182. return 1;
  27183. Players[playerid][pWarnAirbreak]++;
  27184. if (Players[playerid][pWarnAirbreak] > 2)
  27185. {
  27186. SendAdminMessage(COLOR_RED, "Admin: %s might be airbreaking.", ReturnNameEx(playerid, 0));
  27187. Players[playerid][pWarnAirbreak] = 0;
  27188. }
  27189. }
  27190. case 2 .. 6:
  27191. {
  27192. if(CheckAdmin(playerid, 5))
  27193. return 1;
  27194. Players[playerid][pWarnTeleport]++;
  27195. if (Players[playerid][pWarnTeleport] > 2)
  27196. {
  27197. SendAdminMessage(COLOR_RED, "Admin: %s might be teleport hacking.", ReturnNameEx(playerid, 0));
  27198. Players[playerid][pWarnTeleport] = 0;
  27199. }
  27200. }
  27201. case 7 .. 8:
  27202. {
  27203. if(CheckAdmin(playerid, 5))
  27204. return 1;
  27205. Players[playerid][pWarnFlyHack]++;
  27206. if (Players[playerid][pWarnFlyHack] > 2)
  27207. {
  27208. SendAdminMessage(COLOR_RED, "Admin: %s might be flying.", ReturnNameEx(playerid, 0));
  27209. Players[playerid][pWarnFlyHack] = 0;
  27210. }
  27211. }
  27212. case 9 .. 10:
  27213. {
  27214. if(CheckAdmin(playerid, 5))
  27215. return 1;
  27216. Players[playerid][pWarnSpeedhack]++;
  27217. if (Players[playerid][pWarnSpeedhack] > 3)
  27218. {
  27219. SendAdminMessage(COLOR_RED, "Admin: %s might be speed hacking.", ReturnNameEx(playerid, 0));
  27220. Players[playerid][pWarnSpeedhack] = 0;
  27221. }
  27222. }
  27223. case 11 .. 12:
  27224. {
  27225. if(CheckAdmin(playerid, 5))
  27226. return 1;
  27227. Players[playerid][pWarnHealth]++;
  27228. if (Players[playerid][pWarnHealth] > 2)
  27229. {
  27230. SendAdminMessage(COLOR_RED, "Admin: %s might be health hacking.", ReturnNameEx(playerid, 0));
  27231. Players[playerid][pWarnHealth] = 0;
  27232. }
  27233. }
  27234. case 13:
  27235. {
  27236. if(CheckAdmin(playerid, 5))
  27237. return 1;
  27238. Players[playerid][pWarnArmor]++;
  27239. if (Players[playerid][pWarnArmor] > 2)
  27240. {
  27241. SendAdminMessage(COLOR_RED, "Admin: %s might be armor hacking.", ReturnNameEx(playerid, 0));
  27242. Players[playerid][pWarnArmor] = 0;
  27243. }
  27244. }
  27245. case 14:
  27246. {
  27247. if(CheckAdmin(playerid, 5))
  27248. return 1;
  27249. Players[playerid][pWarnMoneyHack]++;
  27250. if (Players[playerid][pWarnMoneyHack] > 3)
  27251. {
  27252. SendAdminMessage(COLOR_RED, "Admin: %s might be money hacking.", ReturnNameEx(playerid, 0));
  27253. Players[playerid][pWarnMoneyHack] = 0;
  27254. }
  27255. }
  27256. case 15:
  27257. {
  27258. if(CheckAdmin(playerid, 5))
  27259. return 1;
  27260. Players[playerid][pWarnWeapon]++;
  27261. if (Players[playerid][pWarnWeapon] > 2)
  27262. {
  27263. SendAdminMessage(COLOR_RED, "Admin: %s might be weapon hacking.", ReturnNameEx(playerid, 0));
  27264. Players[playerid][pWarnWeapon] = 0;
  27265. }
  27266. }
  27267. case 16 .. 17:
  27268. {
  27269. if(CheckAdmin(playerid, 5))
  27270. return 1;
  27271. Players[playerid][pWarnAmmoHack]++;
  27272. if (Players[playerid][pWarnAmmoHack] > 2)
  27273. {
  27274. SendAdminMessage(COLOR_RED, "Admin: %s might be ammo hacking.", ReturnNameEx(playerid, 0));
  27275. Players[playerid][pWarnAmmoHack] = 0;
  27276. }
  27277. }
  27278. case 19 .. 20:
  27279. {
  27280. if(CheckAdmin(playerid, 5))
  27281. return 1;
  27282. Players[playerid][pWarnGodMode]++;
  27283. if (Players[playerid][pWarnGodMode] > 1)
  27284. {
  27285. SendAdminMessage(COLOR_RED, "Admin: %s might be godmode hacking.", ReturnNameEx(playerid, 0));
  27286. Players[playerid][pWarnGodMode] = 0;
  27287. }
  27288. }
  27289. case 26:
  27290. {
  27291. if(CheckAdmin(playerid, 5))
  27292. return 1;
  27293. Players[playerid][pWarnRapidFire]++;
  27294. if (Players[playerid][pWarnRapidFire] > 2)
  27295. {
  27296. SendAdminMessage(COLOR_RED, "Admin: %s might be rapidfiring.", ReturnNameEx(playerid, 0));
  27297. Players[playerid][pWarnRapidFire] = 0;
  27298. }
  27299. }
  27300. /*case 39:
  27301. {
  27302. Players[playerid][pWarnDialogHack]++;
  27303. if (Players[playerid][pWarnDialogHack] > 10)
  27304. {
  27305. SendAdminMessage(COLOR_RED, "Admin: %s might be dialog hacking.", ReturnNameEx(playerid, 0));
  27306. Players[playerid][pWarnDialogHack] = 0;
  27307. }
  27308. }
  27309. default:
  27310. {
  27311. SendAdminMessage(COLOR_RED, "Admin: %s is hacking (code: %i).", ReturnNameEx(playerid, 0), code);
  27312. }*/
  27313. }
  27314. return 1;
  27315. }
  27316. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  27317. {
  27318. new
  27319. vehicle = GetVehicleID(vehicleid);
  27320. if (IsValidVehicleID(vehicle) && !Vehicles[vehicle][vRentable])
  27321. {
  27322. Vehicles[vehicle][vColor1] = color1;
  27323. Vehicles[vehicle][vColor2] = color2;
  27324. SaveVehicle(vehicle);
  27325. }
  27326. return 1;
  27327. }
  27328. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  27329. {
  27330. new
  27331. vehicle = GetVehicleID(vehicleid);
  27332. if (IsValidVehicleID(vehicle) && !Vehicles[vehicle][vRentable])
  27333. {
  27334. Vehicles[vehicle][vPaintjob] = paintjobid;
  27335. SaveVehicle(vehicle);
  27336. }
  27337. return 1;
  27338. }
  27339. public OnVehicleMod(playerid, vehicleid, componentid)
  27340. {
  27341. //new slot = GetVehicleComponentType(componentid);
  27342. if (!Players[playerid][pModShop])
  27343. {
  27344. SendAdminMessage(COLOR_RED, "Admin: %s tried to tune a vehicle without being in a mod shop.", ReturnNameEx(playerid));
  27345. return 0;
  27346. }
  27347. /*else
  27348. {
  27349. new
  27350. vehicle = GetVehicleID(vehicleid);
  27351. if (IsValidVehicleID(vehicle) && !Vehicles[vehicle][vRentable])
  27352. {
  27353. Vehicles[vehicle][vMods][slot] = componentid;
  27354. SaveComponent(vehicle, slot);
  27355. }
  27356. }*/
  27357. return 1;
  27358. }
  27359. public OnVehicleDeath(vehicleid, killerid)
  27360. {
  27361. ClearVehicleObjects(vehicleid);
  27362. if (VehicleInformation[vehicleid][vAdmin])
  27363. {
  27364. VehicleInformation[vehicleid][vAdmin] = 0;
  27365. DestroyVehicleEx(vehicleid);
  27366. }
  27367. return 1;
  27368. }
  27369. public OnVehicleSpawn(vehicleid)
  27370. {
  27371. new id;
  27372. ClearVehicleObjects(vehicleid);
  27373. ResetVehicleStream(vehicleid);
  27374. if (!IsPoweredVehicle(vehicleid))
  27375. {
  27376. SetVehicleParamsEx(vehicleid, 1, 1, 0, 0, 0, 0, 0);
  27377. }
  27378. switch (GetVehicleModel(vehicleid))
  27379. {
  27380. case 407, 416, 427, 428, 432, 433, 528, 544, 601:
  27381. {
  27382. SetVehicleHealth(vehicleid, 4000.0);
  27383. }
  27384. }
  27385. VehicleInformation[vehicleid][vFuel] = 100;
  27386. if ((id = GetVehicleID(vehicleid)) != INVALID_ID)
  27387. {
  27388. if (Vehicles[id][vRenter] != INVALID_PLAYER_ID)
  27389. {
  27390. Players[Vehicles[id][vRenter]][pRental] = INVALID_ID;
  27391. Vehicles[id][vRenter] = INVALID_PLAYER_ID;
  27392. UpdateVehicle(id);
  27393. }
  27394. else
  27395. {
  27396. ApplyModifications(id);
  27397. }
  27398. }
  27399. return 1;
  27400. }
  27401. /*public OnPlayerAirbreak(playerid)
  27402. {
  27403. if (!Players[playerid][pAdmin])
  27404. {
  27405. SendAdminMessage(COLOR_RED, "Admin: %s may be using airbreak hacks.", ReturnNameEx(playerid));
  27406. }
  27407. return 1;
  27408. }*/
  27409. public OnPlayerStreamIn(playerid, forplayerid)
  27410. {
  27411. UpdateNameTag(playerid, 2);
  27412. /*if (Players[forplayerid][pMaskID] > 0)
  27413. ShowPlayerNameTagForPlayer(playerid, forplayerid, 0);
  27414. else
  27415. ShowPlayerNameTagForPlayer(playerid, forplayerid, 1);*/
  27416. return 1;
  27417. }
  27418. public OnVehicleStreamIn(vehicleid, forplayerid)
  27419. {
  27420. return 1;
  27421. }
  27422. public OnVehicleStreamOut(vehicleid, forplayerid)
  27423. {
  27424. return 1;
  27425. }
  27426. public OnRconLoginAttempt(ip[], password[], success)
  27427. {
  27428. foreach (new i : Player)
  27429. {
  27430. if (!strcmp(ReturnIP(i), ip))
  27431. {
  27432. if (!success)
  27433. {
  27434. SendAdminMessage(COLOR_RED, "AdmCmd: %s has attempted to log into RCON.", ReturnNameEx(i, 0));
  27435. }
  27436. else
  27437. {
  27438. if (Players[i][pAdmin] < 6)
  27439. {
  27440. SendAdminMessage(COLOR_RED, "Admin: %s has been banned for an unauthorized RCON login.", ReturnNameEx(i, 0));
  27441. AddToBlacklist(i, "Anticheat", "Unauthorized RCON login");
  27442. }
  27443. }
  27444. }
  27445. }
  27446. return 1;
  27447. }
  27448. public OnPlayerDeath(playerid, killerid, reason)
  27449. {
  27450. UpdateNameTag(playerid, 2);
  27451. if (killerid != INVALID_PLAYER_ID)
  27452. {
  27453. if (IsWeaponCheater(killerid))
  27454. {
  27455. Players[playerid][pUnfairDeath] = 1;
  27456. SavePositionAndHealth(playerid);
  27457. SendInfoMessage(playerid, "You have been killed by a cheater. Your items will be restored.");
  27458. }
  27459. format(gExecute, sizeof(gExecute), "INSERT INTO rp_deathlogs (Killer, Target, Reason, Date) VALUES('%s', '%s', '%s', NOW())", ReturnName(killerid), ReturnName(playerid), GetDeathReason(reason));
  27460. mysql_tquery(gConnection, gExecute);
  27461. AdminDutyMessage(COLOR_RED, "Admin: %s (%i) has killed %s (%s).", ReturnNameEx(killerid, 0), killerid, ReturnNameEx(playerid, 0), GetDeathReason(reason));
  27462. }
  27463. if (!Players[playerid][pUnfairDeath])
  27464. {
  27465. SetPlayerValidArmor(playerid, 0.0);
  27466. /*if (Players[playerid][pDeathState] == DEATH_STATE_NONE)
  27467. {
  27468. if ( (0 <= reason <= 3) && (5 <= reason <= 7) )
  27469. {
  27470. SavePositionAndHealth(playerid);
  27471. Players[playerid][pDeathState] = DEATH_STATE_MELEE;
  27472. }
  27473. else
  27474. {
  27475. SavePositionAndHealth(playerid);
  27476. Players[playerid][pDeathState] = DEATH_STATE_INJURED;
  27477. Players[playerid][pHospital] = HOSPITAL_ALL_SAINTS;
  27478. }
  27479. }
  27480. else if (Players[playerid][pDeathState] == DEATH_STATE_MELEE)
  27481. {
  27482. SavePositionAndHealth(playerid);
  27483. Players[playerid][pDeathState] = DEATH_STATE_INJURED;
  27484. Players[playerid][pHospital] = HOSPITAL_ALL_SAINTS;
  27485. }
  27486. else if (Players[playerid][pDeathState] == DEATH_STATE_INJURED)
  27487. {
  27488. Players[playerid][pDeathState] = DEATH_STATE_HOSPITAL;
  27489. ResetLastShots(playerid);
  27490. }*/
  27491. /*if ( (0 <= reason <= 3) && (5 <= reason <= 7) )
  27492. {
  27493. }*/
  27494. if (Players[playerid][pDeathState] == DEATH_STATE_NONE)
  27495. {
  27496. SavePositionAndHealth(playerid);
  27497. Players[playerid][pDeathState] = DEATH_STATE_INJURED;
  27498. //Players[playerid][pHospital] = GetClosestHospital(playerid);
  27499. Players[playerid][pHospital] = HOSPITAL_ALL_SAINTS;
  27500. }
  27501. else if (Players[playerid][pDeathState] == DEATH_STATE_INJURED)
  27502. {
  27503. DestroyDynamic3DTextLabel(Players[playerid][pInjuredText]);
  27504. Players[playerid][pInjuredText] = INVALID_3DTEXT_ID;
  27505. Players[playerid][pDeathState] = DEATH_STATE_HOSPITAL;
  27506. //Players[playerid][pDeathState] = DEATH_STATE_NONE;
  27507. SendToDefaultSpawn(playerid);
  27508. ResetPlayer(playerid);
  27509. ResetLastShots(playerid);
  27510. }
  27511. }
  27512. return 1;
  27513. }
  27514. public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
  27515. {
  27516. newAmmo[playerid] = GetPlayerAmmo(playerid);
  27517. /*if (!(22 <= weaponid <= 38))
  27518. {
  27519. SendAdminMessage(COLOR_RED, "Admin: %s may be using a weapon CLEO (invalid weapon ID).", ReturnNameEx(playerid));
  27520. return 0;
  27521. }*/
  27522. if (IsPlayerInAnyVehicle(playerid) && !IsDrivebyWeapon(weaponid))
  27523. {
  27524. return 0;
  27525. }
  27526. if (IsWeaponCheater(playerid) && (hittype == BULLET_HIT_TYPE_PLAYER && hitid != INVALID_PLAYER_ID))
  27527. {
  27528. // Prevent hackers from damaging other players.
  27529. return 0;
  27530. }
  27531. if(newAmmo[playerid] < oldAmmo[playerid])
  27532. {
  27533. oldAmmo[playerid] = GetPlayerAmmo(playerid);
  27534. return 1;
  27535. }
  27536. else if(newAmmo[playerid] > oldAmmo[playerid]) //Was a simple mistake. xD
  27537. {
  27538. SendAdminMessage(COLOR_RED, "Admin: %s might be ammo-hacking.", ReturnNameEx(playerid, 0));
  27539. }
  27540. new rand = Random(0,10);
  27541. foreach (new i : Player)
  27542. {
  27543. if (rand == 0 && !Players[playerid][pAdminDuty] && i != playerid && IsPlayerInRangeOfPlayer(i, playerid, 200.0) && !IsPlayerInRangeOfPlayer(i, playerid, 70.0))
  27544. {
  27545. SendFormatMessage(i, COLOR_PURPLE, "* You hear a gun shot go off in the distance.");
  27546. }
  27547. }
  27548. if (GetPlayerWeaponState(playerid) == WEAPONSTATE_LAST_BULLET && GetPlayerAmmo(playerid) == 1 && !IsPlayerHoldingTazer(playerid))
  27549. {
  27550. if (Weapons[playerid][wPrimary] == weaponid)
  27551. {
  27552. Weapons[playerid][wPrimaryAmmo] = 0;
  27553. }
  27554. if (Weapons[playerid][wSecondary] == weaponid)
  27555. {
  27556. Weapons[playerid][wSecondaryAmmo] = 0;
  27557. }
  27558. }
  27559. if (22 <= weaponid <= 34)
  27560. {
  27561. if (weaponid == 23 && Players[playerid][pTazer])
  27562. {
  27563. PlayNearbySound(playerid, 6003);
  27564. SetPlayerAttachedObject(playerid, ATTACHED_SLOT_MISC, 347, 6);
  27565. SetTimerEx("RechargeTazer", 2000, false, "i", playerid);
  27566. ShowFooterText(playerid, "Recharging tazer, please wait...", 2000);
  27567. }
  27568. else
  27569. {
  27570. // We don't want on-duty admins to drop shells, do we?
  27571. if (!Players[playerid][pAdminDuty] && !IsPlayerInAnyVehicle(playerid))
  27572. {
  27573. if ((gettime() - Players[playerid][pFireTime]) > 3)
  27574. {
  27575. new
  27576. Float:x,
  27577. Float:y,
  27578. Float:z,
  27579. Float:angle;
  27580. GetPlayerPos(playerid, x, y, z);
  27581. GetPlayerFacingAngle(playerid, angle);
  27582. x += (0.6 * floatsin(-angle, degrees)) + random(2);
  27583. y += (0.6 * floatcos(-angle, degrees)) - random(2);
  27584. //AddShellCasing(GetCurrentWeaponSerial(playerid), weaponid, x, y, z, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid));
  27585. Players[playerid][pFireTime] = gettime();
  27586. }
  27587. }
  27588. }
  27589. }
  27590. return 1;
  27591. }
  27592. /*public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart)
  27593. {
  27594. if ((22 <= weaponid <= 38) && (amount <= 3.0)) { // Most damage scripts don't check for pistol whips... discard any script calls.
  27595. return 1;
  27596. }
  27597. return 1;
  27598. }*/
  27599. public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)
  27600. {
  27601. if(Players[playerid][pDeathState] != DEATH_STATE_INJURED)
  27602. {
  27603. new hpp = floatround(amount, floatround_round), formatHP[128];
  27604. format(formatHP, sizeof(formatHP), "{f70000}-%d", hpp);
  27605. SetPlayerChatBubble(playerid, formatHP, -1, 10.0, 1000);
  27606. UpdateNameTag(playerid, 2);
  27607. }
  27608. if (Players[playerid][pAdminDuty] > 0)
  27609. {
  27610. SetPlayerHealth(playerid, 100);
  27611. return 1;
  27612. }
  27613. if ((22 <= weaponid <= 38) && (amount <= 3.0)) { // Most damage scripts don't check for pistol whips... discard any script calls.
  27614. return 1;
  27615. }
  27616. if ((0 <= weaponid <= 34) && (BODY_PART_TORSO <= bodypart <= BODY_PART_HEAD))
  27617. {
  27618. LastShots[playerid][bodypart][lWeaponID] = weaponid;
  27619. LastShots[playerid][bodypart][lWeaponShots]++;
  27620. }
  27621. if (IsValidDamageWeapon(weaponid) && WeaponDamages[weaponid] != 0.0 && !IsPlayerHoldingTazer(playerid)) {
  27622. ProcessDamage(playerid, weaponid);
  27623. }
  27624. if ((22 <= weaponid <= 38) && (!Players[playerid][pBrokenLeg]) && (bodypart == BODY_PART_LEFT_LEG || bodypart == BODY_PART_RIGHT_LEG))
  27625. {
  27626. SendInfoMessage(playerid, "You have been shot in your leg. You will be unable to jump or sprint.");
  27627. Players[playerid][pBrokenLeg] = 1;
  27628. }
  27629. if (issuerid != INVALID_PLAYER_ID && weaponid <= 1) // Fitness damage.
  27630. {
  27631. new
  27632. Float:health,
  27633. Float:armor,
  27634. Float:damage;
  27635. GetPlayerHealth(playerid, health);
  27636. GetPlayerArmour(playerid, armor);
  27637. damage = amount + (0.02 * Players[issuerid][pFitness]);
  27638. if (armor > 0.0)
  27639. {
  27640. armor -= damage;
  27641. if (armor <= 0.0)
  27642. SetPlayerValidArmor(playerid, 0.0);
  27643. else
  27644. SetPlayerValidArmor(playerid, armor);
  27645. }
  27646. else
  27647. {
  27648. SetPlayerHealth(playerid, health - damage);
  27649. }
  27650. }
  27651. if (issuerid != INVALID_PLAYER_ID && Players[issuerid][pTazer] && weaponid == 23)
  27652. {
  27653. if (!Players[playerid][pTazed] && !Players[playerid][pAdminDuty])
  27654. {
  27655. Players[playerid][pTazed] = 10;
  27656. TogglePlayerControllable(playerid, false);
  27657. ApplyAnimation(playerid, "CRACK", "crckdeth4", 4.1, 0, 0, 0, 1, 0, 1);
  27658. ShowActionBubble(issuerid, "* %s charges his stungun at %s.", ReturnNameEx(issuerid), ReturnNameEx(playerid));
  27659. ShowActionBubble(playerid, "* %s falls down after being stunned.", ReturnNameEx(playerid));
  27660. SendInfoMessage(issuerid, "You have stunned %s with your taser.", ReturnNameEx(playerid));
  27661. GameTextForPlayer(playerid, "~r~Stunned", 10000, 3);
  27662. }
  27663. }
  27664. if (issuerid != INVALID_PLAYER_ID && weaponid == 41)
  27665. {
  27666. SetPlayerDrunkLevel(playerid, 4000);
  27667. ShowActionBubble(issuerid, "* %s hits %s with their pepper spray.", ReturnNameEx(issuerid), ReturnNameEx(playerid));
  27668. ShowActionBubble(playerid, "* %s gets hit by %s's pepper spray.", ReturnNameEx(playerid), ReturnNameEx(issuerid));
  27669. }
  27670. if (!Players[playerid][pBleeding])
  27671. {
  27672. switch (weaponid)
  27673. {
  27674. case 4, 8, 9, 22..34, 38:
  27675. {
  27676. if (!IsPlayerLoggedIn(playerid) || IsPlayerJailed(playerid) || !Players[playerid][pSetupInfo] || GetPlayerArmourEx(playerid) > 0.0)
  27677. {
  27678. return 1;
  27679. }
  27680. if (weaponid == 23 && Players[issuerid][pTazer])
  27681. {
  27682. return 1;
  27683. }
  27684. Players[playerid][pBleeding] = 1;
  27685. Players[playerid][pBleedingTime] = 0;
  27686. new
  27687. Float:x,
  27688. Float:y,
  27689. Float:z,
  27690. Float:angle;
  27691. GetPlayerPos(playerid, x, y, z);
  27692. GetPlayerFacingAngle(playerid, angle);
  27693. //SpawnBloodObject(playerid);
  27694. //AddBlood(playerid, x, y, z, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid));
  27695. }
  27696. }
  27697. }
  27698. return 1;
  27699. }
  27700. Float:DistanceBP(Float:x, Float:y, Float:z, Float:tx, Float:ty, Float:tz)
  27701. {
  27702. new Float:temp1, Float:temp2 , Float:temp3;
  27703. temp1 = x-tx;temp2 = y-ty;
  27704. temp3 = z-tz;
  27705. return floatsqroot(temp1*temp1+temp2*temp2+temp3*temp3);
  27706. }
  27707. public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
  27708. {
  27709. if (response == EDIT_RESPONSE_CANCEL)
  27710. {
  27711. switch (Players[playerid][pEdit])
  27712. {
  27713. case EDIT_TYPE_PREVIEW:
  27714. {
  27715. DestroyDynamicObject(gPreviewFurniture[playerid]);
  27716. gPreviewFurniture[playerid] = INVALID_OBJECT_ID;
  27717. }
  27718. case EDIT_TYPE_FURNITURE:
  27719. {
  27720. UpdateFurniture(Players[playerid][pEditID]);
  27721. }
  27722. case EDIT_TYPE_PUMP:
  27723. {
  27724. UpdateGasPump(Players[playerid][pEditID]);
  27725. }
  27726. case EDIT_TYPE_ATM:
  27727. {
  27728. UpdateATM(Players[playerid][pEditID]);
  27729. }
  27730. case EDIT_TYPE_GATE, EDIT_TYPE_GATE_MOVE:
  27731. {
  27732. UpdateGate(Players[playerid][pEditID]);
  27733. }
  27734. case EDIT_TYPE_OBJECT:
  27735. {
  27736. UpdateObject(Players[playerid][pEditID]);
  27737. }
  27738. case EDIT_TYPE_TRASHBIN:
  27739. {
  27740. UpdateTrashbin(Players[playerid][pEditID]);
  27741. }
  27742. case EDIT_TYPE_TAG:
  27743. {
  27744. UpdateTag(Players[playerid][pEditID]);
  27745. }
  27746. case EDIT_TYPE_SPRAY:
  27747. {
  27748. UpdateSprayTag(Players[playerid][pEditID]);
  27749. }
  27750. case EDIT_TYPE_PAYPHONE:
  27751. {
  27752. UpdatePayphone(Players[playerid][pEditID]);
  27753. }
  27754. case EDIT_TYPE_DEPLOY:
  27755. {
  27756. SendInfoMessage(playerid, "Cancelled.");
  27757. DestroyDynamicObject( gPreviewDeploy[playerid] );
  27758. }
  27759. case EDIT_TYPE_TRUNK:
  27760. {
  27761. new dataid = Players[playerid][pEditID];
  27762. AttachDynamicObjectToVehicle(StoredItems[ dataid ][vehicleItem], GetPVarInt(playerid, "tempVehicle"), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  27763. StoredItems[ dataid ][vehicleOffset][0] = 0.0;
  27764. StoredItems[ dataid ][vehicleOffset][1] = 0.0;
  27765. StoredItems[ dataid ][vehicleOffset][2] = 0.0;
  27766. StoredItems[ dataid ][vehicleOffset][3] = 0.0;
  27767. StoredItems[ dataid ][vehicleOffset][4] = 0.0;
  27768. StoredItems[ dataid ][vehicleOffset][5] = 0.0;
  27769. format(gExecute, sizeof(gExecute), "UPDATE rp_items SET vehOffsetX = 0.0, vehOffsetY = 0.0, vehOffsetZ = 0.0, vehRotX = 0.0, vehRotY = 0.0, vehRotZ = 0.0 WHERE itemID = %i", StoredItems[ dataid ][stID]);
  27770. mysql_tquery(gConnection, gExecute);
  27771. DeletePVar(playerid, "tempVehicle");
  27772. }
  27773. }
  27774. Players[playerid][pEdit] = EDIT_TYPE_NONE;
  27775. }
  27776. else if (response == EDIT_RESPONSE_FINAL)
  27777. {
  27778. switch (Players[playerid][pEdit])
  27779. {
  27780. case EDIT_TYPE_DEPLOY:
  27781. {
  27782. SendInfoMessage(playerid, "Saved.");
  27783. DeployedItems[ gPreviewDeployID[playerid] ][dpX] = x;
  27784. DeployedItems[ gPreviewDeployID[playerid] ][dpY] = y;
  27785. DeployedItems[ gPreviewDeployID[playerid] ][dpZ] = z;
  27786. DeployedItems[ gPreviewDeployID[playerid] ][dpA] = rz;
  27787. SetDynamicObjectPos(objectid, x, y, z);
  27788. SetDynamicObjectRot(objectid, rx, ry, rz);
  27789. }
  27790. case EDIT_TYPE_PREVIEW: // Furniture preview
  27791. {
  27792. //if (!IsPointInRangeOfPoint(20.0, x, y, z, Houses[Players[playerid][pHouse]][hSpawn][0], Houses[Players[playerid][pHouse]][hSpawn][1], Houses[Players[playerid][pHouse]][hSpawn][2]) && !IsPointInRangeOfPoint(100.0, x, y, z, Houses[Players[playerid][pHouse]][hInt][0], Houses[Players[playerid][pHouse]][hInt][1], Houses[Players[playerid][pHouse]][hInt][2]))
  27793. if (GetCurrentHouse(playerid) != Players[playerid][pHouse] && !IsPlayerNearPoint(playerid, 30.0, Houses[Players[playerid][pHouse]][hSpawn][0], Houses[Players[playerid][pHouse]][hSpawn][1], Houses[Players[playerid][pHouse]][hSpawn][2]))
  27794. {
  27795. SendErrorMessage(playerid, "The object is out of range from your house.");
  27796. }
  27797. else if (!PlayerCanAfford(playerid, g_FurnitureList[Players[playerid][pPreviewIndex]][e_ModelPrice]))
  27798. {
  27799. SendErrorMessage(playerid, "You don't have enough money.");
  27800. }
  27801. else
  27802. {
  27803. new id = AddFurniture(Players[playerid][pHouse], g_FurnitureList[Players[playerid][pPreviewIndex]][e_ModelID], x, y, z, rx, ry, rz, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid));
  27804. if (id == INVALID_ID)
  27805. {
  27806. SendErrorMessage(playerid, "There are no available furniture slots.");
  27807. SendAdminMessage(COLOR_RED, "Admin: %s has failed to add furniture! \"MAX_FURNITURE\" needs to be adjusted.", ReturnNameEx(playerid, 0));
  27808. }
  27809. else
  27810. {
  27811. RemoveMoney(playerid, g_FurnitureList[Players[playerid][pPreviewIndex]][e_ModelPrice]);
  27812. Statistics[playerid][sFurnitureFees] += g_FurnitureList[Players[playerid][pPreviewIndex]][e_ModelPrice];
  27813. ShowFurnitureCategories(playerid);
  27814. SendInfoMessage(playerid, "Furniture purchased for {33CC33}%s{FFFFFF}. Use /house to manage your furniture.", FormatNumber(g_FurnitureList[Players[playerid][pPreviewIndex]][e_ModelPrice]));
  27815. }
  27816. }
  27817. DestroyDynamicObject(gPreviewFurniture[playerid]);
  27818. gPreviewFurniture[playerid] = INVALID_OBJECT_ID;
  27819. }
  27820. case EDIT_TYPE_FURNITURE: // House furniture
  27821. {
  27822. Furniture[Players[playerid][pEditID]][fSpawn][0] = x;
  27823. Furniture[Players[playerid][pEditID]][fSpawn][1] = y;
  27824. Furniture[Players[playerid][pEditID]][fSpawn][2] = z;
  27825. Furniture[Players[playerid][pEditID]][fSpawn][3] = rx;
  27826. Furniture[Players[playerid][pEditID]][fSpawn][4] = ry;
  27827. Furniture[Players[playerid][pEditID]][fSpawn][5] = rz;
  27828. UpdateFurniture(Players[playerid][pEditID]);
  27829. SaveFurniture(Players[playerid][pEditID]);
  27830. SendInfoMessage(playerid, "You have edited furniture ID: %i.", Players[playerid][pEditID]);
  27831. }
  27832. case EDIT_TYPE_PUMP: // Gas pumps
  27833. {
  27834. GasPumps[Players[playerid][pEditID]][gpSpawn][0] = x;
  27835. GasPumps[Players[playerid][pEditID]][gpSpawn][1] = y;
  27836. GasPumps[Players[playerid][pEditID]][gpSpawn][2] = z;
  27837. GasPumps[Players[playerid][pEditID]][gpSpawn][3] = rz;
  27838. UpdateGasPump(Players[playerid][pEditID]);
  27839. SaveGasPump(Players[playerid][pEditID]);
  27840. SendInfoMessage(playerid, "You have edited gas pump ID: %i.", Players[playerid][pEditID]);
  27841. }
  27842. case EDIT_TYPE_ATM: // ATM machines
  27843. {
  27844. ATM[Players[playerid][pEditID]][atmSpawn][0] = x;
  27845. ATM[Players[playerid][pEditID]][atmSpawn][1] = y;
  27846. ATM[Players[playerid][pEditID]][atmSpawn][2] = z;
  27847. ATM[Players[playerid][pEditID]][atmSpawn][3] = rz;
  27848. UpdateATM(Players[playerid][pEditID]);
  27849. SaveATM(Players[playerid][pEditID]);
  27850. SendInfoMessage(playerid, "You have edited ATM machine ID: %i.", Players[playerid][pEditID]);
  27851. }
  27852. case EDIT_TYPE_GATE: // Gates
  27853. {
  27854. Gates[Players[playerid][pEditID]][gSpawn][0] = x;
  27855. Gates[Players[playerid][pEditID]][gSpawn][1] = y;
  27856. Gates[Players[playerid][pEditID]][gSpawn][2] = z;
  27857. Gates[Players[playerid][pEditID]][gSpawn][3] = rx;
  27858. Gates[Players[playerid][pEditID]][gSpawn][4] = ry;
  27859. Gates[Players[playerid][pEditID]][gSpawn][5] = rz;
  27860. UpdateGate(Players[playerid][pEditID]);
  27861. SaveGate(Players[playerid][pEditID]);
  27862. SendInfoMessage(playerid, "You have edited gate ID: %i.", Players[playerid][pEditID]);
  27863. }
  27864. case EDIT_TYPE_GATE_MOVE: // Gate destination
  27865. {
  27866. Gates[Players[playerid][pEditID]][gMove][0] = x;
  27867. Gates[Players[playerid][pEditID]][gMove][1] = y;
  27868. Gates[Players[playerid][pEditID]][gMove][2] = z;
  27869. Gates[Players[playerid][pEditID]][gMove][3] = rx;
  27870. Gates[Players[playerid][pEditID]][gMove][4] = ry;
  27871. Gates[Players[playerid][pEditID]][gMove][5] = rz;
  27872. UpdateGate(Players[playerid][pEditID]);
  27873. SaveGate(Players[playerid][pEditID]);
  27874. SendInfoMessage(playerid, "You have edited the moving destination for gate ID: %i.", Players[playerid][pEditID]);
  27875. }
  27876. case EDIT_TYPE_OBJECT: // Script objects
  27877. {
  27878. Objects[Players[playerid][pEditID]][oX] = x;
  27879. Objects[Players[playerid][pEditID]][oY] = y;
  27880. Objects[Players[playerid][pEditID]][oZ] = z;
  27881. Objects[Players[playerid][pEditID]][oRX] = rx;
  27882. Objects[Players[playerid][pEditID]][oRY] = ry;
  27883. Objects[Players[playerid][pEditID]][oRZ] = rz;
  27884. UpdateObject(Players[playerid][pEditID]);
  27885. SaveObject(Players[playerid][pEditID]);
  27886. SendInfoMessage(playerid, "You have edited object ID: %i.", Players[playerid][pEditID]);
  27887. }
  27888. case EDIT_TYPE_TRASHBIN: // Trashbins
  27889. {
  27890. Trashbins[Players[playerid][pEditID]][tX] = x;
  27891. Trashbins[Players[playerid][pEditID]][tY] = y;
  27892. Trashbins[Players[playerid][pEditID]][tZ] = z;
  27893. Trashbins[Players[playerid][pEditID]][tA] = rz;
  27894. UpdateTrashbin(Players[playerid][pEditID]);
  27895. SaveTrashbin(Players[playerid][pEditID]);
  27896. SendInfoMessage(playerid, "You have edited trashbin ID: %i.", Players[playerid][pEditID]);
  27897. }
  27898. case EDIT_TYPE_TAG: // Spray tags
  27899. {
  27900. Tags[Players[playerid][pEditID]][tagX] = x;
  27901. Tags[Players[playerid][pEditID]][tagY] = y;
  27902. Tags[Players[playerid][pEditID]][tagZ] = z;
  27903. Tags[Players[playerid][pEditID]][tagA] = rz;
  27904. UpdateTag(Players[playerid][pEditID]);
  27905. SaveTag(Players[playerid][pEditID]);
  27906. SendInfoMessage(playerid, "You have edited tag ID: %i.", Players[playerid][pEditID]);
  27907. }
  27908. case EDIT_TYPE_SPRAY: // Spray tags
  27909. {
  27910. SprayTags[Players[playerid][pEditID]][sX] = x;
  27911. SprayTags[Players[playerid][pEditID]][sY] = y;
  27912. SprayTags[Players[playerid][pEditID]][sZ] = z;
  27913. SprayTags[Players[playerid][pEditID]][sA] = rz;
  27914. UpdateSprayTag(Players[playerid][pEditID]);
  27915. SaveSprayTag(Players[playerid][pEditID]);
  27916. SendInfoMessage(playerid, "You have edited spray tag ID: %i.", Players[playerid][pEditID]);
  27917. }
  27918. case EDIT_TYPE_PAYPHONE: // Payphones
  27919. {
  27920. Payphones[Players[playerid][pEditID]][phX] = x;
  27921. Payphones[Players[playerid][pEditID]][phY] = y;
  27922. Payphones[Players[playerid][pEditID]][phZ] = z;
  27923. Payphones[Players[playerid][pEditID]][phA] = rz;
  27924. UpdatePayphone(Players[playerid][pEditID]);
  27925. SavePayphone(Players[playerid][pEditID]);
  27926. SendInfoMessage(playerid, "You have edited payphone ID: %i.", Players[playerid][pEditID]);
  27927. }
  27928. case EDIT_TYPE_TRUNK:
  27929. {
  27930. new
  27931. vehicle = GetPVarInt(playerid, "tempVehicle"),
  27932. dataid = Players[playerid][pEditID],
  27933. Float:ofx, Float:ofy,
  27934. Float:ofz, Float:ofaz,
  27935. Float:finalx, Float:finaly,
  27936. Float:px, Float:py,
  27937. Float:pz, Float:roz;
  27938. new Float: oldPos[3];
  27939. GetXYZOfVehiclePart(vehicle, VEHICLE_PART_HOOD, oldPos[0], oldPos[1], oldPos[2]);
  27940. new Float: limit = DistanceBP(x, y, z, oldPos[0], oldPos[1], oldPos[2]);
  27941. GetVehiclePos(vehicle, px, py, pz);
  27942. GetVehicleZAngle(vehicle, roz);
  27943. ofx = x-px;
  27944. ofy = y-py;
  27945. ofz = z-pz;
  27946. ofaz = rz-roz;
  27947. finalx = ofx*floatcos(roz, degrees)+ofy*floatsin(roz, degrees);
  27948. finaly = -ofx*floatsin(roz, degrees)+ofy*floatcos(roz, degrees);
  27949. if(limit > 1.8) // over the limit
  27950. {
  27951. AttachDynamicObjectToVehicle(StoredItems[ dataid ][vehicleItem], vehicle, 0, 0, 0, 0, 0, 0);
  27952. StoredItems[ dataid ][vehicleOffset][0] = 0.0;
  27953. StoredItems[ dataid ][vehicleOffset][1] = 0.0;
  27954. StoredItems[ dataid ][vehicleOffset][2] = 0.0;
  27955. StoredItems[ dataid ][vehicleOffset][3] = 0.0;
  27956. StoredItems[ dataid ][vehicleOffset][4] = 0.0;
  27957. StoredItems[ dataid ][vehicleOffset][5] = 0.0;
  27958. format(gExecute, sizeof(gExecute), "UPDATE rp_items SET vehOffsetX = 0.0, vehOffsetY = 0.0, vehOffsetZ = 0.0, vehRotX = 0.0, vehRotY = 0.0, vehRotZ = 0.0 WHERE itemID = %i", StoredItems[ dataid ][stID]);
  27959. mysql_tquery(gConnection, gExecute);
  27960. DeletePVar(playerid, "tempVehicle");
  27961. }
  27962. else
  27963. {
  27964. AttachDynamicObjectToVehicle(StoredItems[ dataid ][vehicleItem], vehicle, finalx, finaly, ofz, rx, ry, ofaz);
  27965. StoredItems[ dataid ][vehicleOffset][0] = finalx;
  27966. StoredItems[ dataid ][vehicleOffset][1] = finaly;
  27967. StoredItems[ dataid ][vehicleOffset][2] = ofz;
  27968. StoredItems[ dataid ][vehicleOffset][3] = rx;
  27969. StoredItems[ dataid ][vehicleOffset][4] = ry;
  27970. StoredItems[ dataid ][vehicleOffset][5] = ofaz;
  27971. format(gExecute, sizeof(gExecute), "UPDATE rp_items SET vehOffsetX = %f, vehOffsetY = %f, vehOffsetZ = %f, vehRotX = %f, vehRotY = %f, vehRotZ = %f WHERE itemID = %i",
  27972. finalx,
  27973. finaly,
  27974. ofz,
  27975. rx,
  27976. ry,
  27977. ofaz,
  27978. StoredItems[ dataid ][stID]);
  27979. mysql_tquery(gConnection, gExecute);
  27980. DeletePVar(playerid, "tempVehicle");
  27981. }
  27982. }
  27983. }
  27984. if(response == EDIT_RESPONSE_UPDATE)
  27985. {
  27986. switch (Players[playerid][pEdit])
  27987. {
  27988. case EDIT_TYPE_TRUNK:
  27989. {
  27990. new Float: oldPos[3];
  27991. GetXYZOfVehiclePart(GetPVarInt(playerid, "tempVehicle"), VEHICLE_PART_HOOD, oldPos[0], oldPos[1], oldPos[2]);
  27992. new Float: limit = DistanceBP(x, y, z, oldPos[0], oldPos[1], oldPos[2]);
  27993. if(limit > 1.8) // over the limit
  27994. {
  27995. SendClientMessage(playerid, COLOR_LIGHTRED, "Please adjust your position it's over the vehicle size!");
  27996. }
  27997. }
  27998. }
  27999. }
  28000. Players[playerid][pEdit] = EDIT_TYPE_NONE;
  28001. Players[playerid][pEditID] = INVALID_ID;
  28002. }
  28003. return 1;
  28004. }
  28005. public OnPlayerEditAttachedObject(playerid, response, index, modelid, boneid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ)
  28006. {
  28007. if (fScaleX > 3.0000) fScaleX = 3.0;
  28008. if (fScaleY > 3.0000) fScaleY = 3.0;
  28009. if (fScaleZ > 3.0000) fScaleZ = 3.0;
  28010. if (!response)
  28011. {
  28012. switch (Players[playerid][pEdit])
  28013. {
  28014. case EDIT_TYPE_PREVIEW:
  28015. {
  28016. RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_MISC);
  28017. }
  28018. case EDIT_TYPE_ACCESSORY:
  28019. {
  28020. AttachObjectsToPlayer(playerid);
  28021. }
  28022. case EDIT_TYPE_WEAPON:
  28023. {
  28024. UpdateWeaponOffset(playerid, Players[playerid][pSelected]);
  28025. }
  28026. }
  28027. Players[playerid][pEdit] = EDIT_TYPE_NONE;
  28028. }
  28029. else
  28030. {
  28031. switch (Players[playerid][pEdit])
  28032. {
  28033. case EDIT_TYPE_PREVIEW:
  28034. {
  28035. new
  28036. company = GetCurrentCompany(playerid);
  28037. if (IsValidCompanyID(company) && Companies[company][cType] == COMPANY_CLOTHES)
  28038. {
  28039. if (!PlayerCanAfford(playerid, Products[company][Players[playerid][pSelected]][prPrice]))
  28040. {
  28041. SendErrorMessage(playerid, "You don't have enough money.");
  28042. }
  28043. else
  28044. {
  28045. new
  28046. id = AddAccessory(playerid, GetAccessoryNameFromModel(modelid), modelid, boneid, fOffsetX, fOffsetY, fOffsetZ, fRotX, fRotY, fRotZ, fScaleX, fScaleY, fScaleZ);
  28047. if (id == INVALID_ID)
  28048. {
  28049. return SendErrorMessage(playerid, "You can't have more than %i accessories.", MAX_ACCESSORIES);
  28050. }
  28051. else
  28052. {
  28053. RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_MISC);
  28054. AttachObjectsToPlayer(playerid);
  28055. //RemoveMoney(playerid, Products[company][Players[playerid][pSelected]][prPrice]);
  28056. PurchaseProduct(playerid, company, Players[playerid][pSelected]);
  28057. SendInfoMessage(playerid, "Accessory purchased for {33CC33}%s{FFFFFF}. Use /accessories to edit it.", FormatNumber(Products[company][Players[playerid][pSelected]][prPrice]));
  28058. SaveAccessory(playerid);
  28059. }
  28060. }
  28061. }
  28062. }
  28063. case EDIT_TYPE_ACCESSORY:
  28064. {
  28065. Accessories[playerid][Players[playerid][pEditID]][aOffset][0] = fOffsetX;
  28066. Accessories[playerid][Players[playerid][pEditID]][aOffset][1] = fOffsetY;
  28067. Accessories[playerid][Players[playerid][pEditID]][aOffset][2] = fOffsetZ;
  28068. Accessories[playerid][Players[playerid][pEditID]][aOffset][3] = fRotX;
  28069. Accessories[playerid][Players[playerid][pEditID]][aOffset][4] = fRotY;
  28070. Accessories[playerid][Players[playerid][pEditID]][aOffset][5] = fRotZ;
  28071. Accessories[playerid][Players[playerid][pEditID]][aOffset][6] = fScaleX;
  28072. Accessories[playerid][Players[playerid][pEditID]][aOffset][7] = fScaleY;
  28073. Accessories[playerid][Players[playerid][pEditID]][aOffset][8] = fScaleZ;
  28074. SaveAccessory(playerid, Players[playerid][pEditID]);
  28075. SendInfoMessage(playerid, "Your changes have been saved.");
  28076. }
  28077. case EDIT_TYPE_WEAPON:
  28078. {
  28079. if (index == ATTACHED_SLOT_MELEE) {
  28080. SetWeaponOffset(playerid, GetWeaponOffsetType(Weapons[playerid][wMelee]), boneid, fOffsetX, fOffsetY, fOffsetZ, fRotX, fRotY, fRotZ);
  28081. UpdateWeaponOffset(playerid, WEAPON_MELEE);
  28082. } else if (index == ATTACHED_SLOT_PRIMARY) {
  28083. SetWeaponOffset(playerid, GetWeaponOffsetType(Weapons[playerid][wPrimary]), boneid, fOffsetX, fOffsetY, fOffsetZ, fRotX, fRotY, fRotZ);
  28084. UpdateWeaponOffset(playerid, WEAPON_PRIMARY);
  28085. } else if (index == ATTACHED_SLOT_SECONDARY) {
  28086. SetWeaponOffset(playerid, GetWeaponOffsetType(Weapons[playerid][wSecondary]), boneid, fOffsetX, fOffsetY, fOffsetZ, fRotX, fRotY, fRotZ);
  28087. UpdateWeaponOffset(playerid, WEAPON_SECONDARY);
  28088. } else if (index == ATTACHED_SLOT_TERTIARY) {
  28089. SetWeaponOffset(playerid, GetWeaponOffsetType(Weapons[playerid][wTertiary]), boneid, fOffsetX, fOffsetY, fOffsetZ, fRotX, fRotY, fRotZ);
  28090. UpdateWeaponOffset(playerid, WEAPON_TERTIARY);
  28091. }
  28092. SendInfoMessage(playerid, "Your changes have been saved.");
  28093. }
  28094. }
  28095. Players[playerid][pEdit] = EDIT_TYPE_NONE;
  28096. }
  28097. return 1;
  28098. }
  28099. public OnPlayerEnterDynamicCP(playerid, checkpointid)
  28100. {
  28101. if (IsPlayerSpectating(playerid)) return 1;
  28102. if (checkpointid == Checkpoints[cpEmployment])
  28103. {
  28104. if (Players[playerid][pWorking])
  28105. {
  28106. return SendErrorMessage(playerid, "You must stop working first - use /stop to do this.");
  28107. }
  28108. else
  28109. {
  28110. Dialog_Show(playerid, Employment, DIALOG_STYLE_LIST, "{FFFFFF}Select Employment", "Transporter\nForklifter\nMiner\nTaxi Driver\nPizzaboy\nTrashman\nMechanic", "Choose", "Cancel");
  28111. }
  28112. }
  28113. else if (checkpointid == Checkpoints[cpPolice])
  28114. {
  28115. Dialog_Show(playerid, VehicleMenu, DIALOG_STYLE_LIST, "{FFFFFF}Tickets/Impounding", "Pay Tickets\nRelease Vehicle", "Select", "Cancel");
  28116. }
  28117. for (new i = 0; i < MAX_HOUSES; i ++)
  28118. {
  28119. if (Houses[i][hExists] && Houses[i][hCheckpoint] == checkpointid && Players[playerid][pHouseInfo] != i)
  28120. {
  28121. ShowInfoForHouse(playerid, i);
  28122. if(CheckAdmin(playerid, 5))
  28123. {
  28124. SendInfoMessage(playerid, "The house ID is: %i. Use /edithouse to edit it.", i);
  28125. }
  28126. else if (IsHouseOwner(playerid, i))
  28127. {
  28128. SendInfoMessage(playerid, "Use /house to access the house menu.");
  28129. }
  28130. }
  28131. }
  28132. for (new i = 0; i < MAX_COMPANIES; i ++)
  28133. {
  28134. if ((Companies[i][cExists] && Companies[i][cCheckpoint] == checkpointid) && Players[playerid][pCompanyInfo] != i)
  28135. {
  28136. ShowInfoForCompany(playerid, i);
  28137. if(CheckAdmin(playerid, 5))
  28138. {
  28139. SendInfoMessage(playerid, "The company ID is: %i. Use /editcompany to edit it.", i);
  28140. }
  28141. else if (IsCompanyOwner(playerid, i))
  28142. {
  28143. SendInfoMessage(playerid, "Use /company to access the company menu.");
  28144. }
  28145. }
  28146. }
  28147. return 1;
  28148. }
  28149. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  28150. {
  28151. if (Players[playerid][pTazed] || (Players[playerid][pHandcuffed] && !ispassenger) || GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_CARRY)
  28152. {
  28153. ClearAnimations(playerid);
  28154. return 0;
  28155. }
  28156. if(ispassenger == 0) {
  28157. EnteringVehicle[playerid] = 1;
  28158. EnteringVeh_Timer[playerid] = SetTimerEx("EnteringVehicleTim", 3000, false, "ii", playerid, vehicleid);
  28159. }
  28160. return 1;
  28161. }
  28162. forward EnteringVehicleTim(playerid, vehicleid);
  28163. public EnteringVehicleTim(playerid, vehicleid)
  28164. {
  28165. EnteringVehicle[playerid] = 0;
  28166. GetVehicleHealth(vehicleid, vehicleStartingHealth[playerid]);
  28167. return 1;
  28168. }
  28169. public OnPlayerEnterCheckpoint(playerid)
  28170. {
  28171. new
  28172. vehicleid = GetPlayerVehicleID(playerid);
  28173. if (IsPlayerSpectating(playerid)) return 1;
  28174. if (Players[playerid][pDrivingTest])
  28175. {
  28176. Players[playerid][pDrivingCP]++;
  28177. if (Players[playerid][pDrivingCP] >= sizeof(g_TestCheckpoints))
  28178. {
  28179. SetVehicleToRespawn(vehicleid);
  28180. DisablePlayerCheckpoint(playerid);
  28181. if (GetVehicleHealthEx(vehicleid) < 980.0)
  28182. {
  28183. SendErrorMessage(playerid, "The vehicle has been damaged too much.");
  28184. }
  28185. else
  28186. {
  28187. Players[playerid][pCarLicense] = 1;
  28188. SendInfoMessage(playerid, "You have passed the driving test and received your license (time: %s).", ReturnElapsed(Players[playerid][pTestTime]));
  28189. }
  28190. Players[playerid][pDrivingTest] = 0;
  28191. Players[playerid][pDrivingCP] = 0;
  28192. Players[playerid][pTestTime] = 0;
  28193. }
  28194. else
  28195. {
  28196. SetPlayerCheckpoint(playerid, g_TestCheckpoints[Players[playerid][pDrivingCP]][0], g_TestCheckpoints[Players[playerid][pDrivingCP]][1], g_TestCheckpoints[Players[playerid][pDrivingCP]][2], 3.0);
  28197. }
  28198. }
  28199. else
  28200. {
  28201. switch (Players[playerid][pCheckpoint])
  28202. {
  28203. case CHECKPOINT_GPS:
  28204. {
  28205. ResetCheckpoint(playerid);
  28206. }
  28207. case CHECKPOINT_PACKAGE:
  28208. {
  28209. switch (Players[playerid][pPackageType])
  28210. {
  28211. case PACKAGE_TYPE_MELEE:
  28212. {
  28213. if (!IsSufficientSpace(playerid, "Melee Package"))
  28214. {
  28215. return SendErrorMessage(playerid, "You need to clear some room in your inventory.");
  28216. }
  28217. else
  28218. {
  28219. AddItemToInventory(playerid, "Melee Package");
  28220. }
  28221. }
  28222. case PACKAGE_TYPE_PISTOLS:
  28223. {
  28224. if (!IsSufficientSpace(playerid, "Pistol Package"))
  28225. {
  28226. return SendErrorMessage(playerid, "You need to clear some room in your inventory.");
  28227. }
  28228. else
  28229. {
  28230. AddItemToInventory(playerid, "Pistol Package");
  28231. }
  28232. }
  28233. case PACKAGE_TYPE_SHOTGUNS:
  28234. {
  28235. if (!IsSufficientSpace(playerid, "Shotgun Package"))
  28236. {
  28237. return SendErrorMessage(playerid, "You need to clear some room in your inventory.");
  28238. }
  28239. else
  28240. {
  28241. AddItemToInventory(playerid, "Shotgun Package");
  28242. }
  28243. }
  28244. case PACKAGE_TYPE_SMGS:
  28245. {
  28246. if (!IsSufficientSpace(playerid, "SMG Package"))
  28247. {
  28248. return SendErrorMessage(playerid, "You need to clear some room in your inventory.");
  28249. }
  28250. else
  28251. {
  28252. AddItemToInventory(playerid, "SMG Package");
  28253. }
  28254. }
  28255. case PACKAGE_TYPE_RIFLES:
  28256. {
  28257. if (!IsSufficientSpace(playerid, "Rifle Package"))
  28258. {
  28259. return SendErrorMessage(playerid, "You need to clear some room in your inventory.");
  28260. }
  28261. else
  28262. {
  28263. AddItemToInventory(playerid, "Rifle Package");
  28264. }
  28265. }
  28266. case PACKAGE_TYPE_STEROIDS:
  28267. {
  28268. if (!IsSufficientSpace(playerid, "Steroids"))
  28269. {
  28270. return SendErrorMessage(playerid, "You need to clear some room in your inventory.");
  28271. }
  28272. else
  28273. {
  28274. AddItemToInventory(playerid, "Steroids", Players[playerid][pPackageGrams]);
  28275. }
  28276. }
  28277. case PACKAGE_TYPE_HEROIN:
  28278. {
  28279. if (!IsSufficientSpace(playerid, "Heroin"))
  28280. {
  28281. return SendErrorMessage(playerid, "You need to clear some room in your inventory.");
  28282. }
  28283. else
  28284. {
  28285. AddItemToInventory(playerid, "Opium Poppies", Players[playerid][pPackageGrams]);
  28286. }
  28287. }
  28288. case PACKAGE_TYPE_LSD:
  28289. {
  28290. if (!IsSufficientSpace(playerid, "LSD"))
  28291. {
  28292. return SendErrorMessage(playerid, "You need to clear some room in your inventory.");
  28293. }
  28294. else
  28295. {
  28296. AddItemToInventory(playerid, "LSD", Players[playerid][pPackageGrams]);
  28297. }
  28298. }
  28299. case PACKAGE_TYPE_ECSTASY:
  28300. {
  28301. if (!IsSufficientSpace(playerid, "Ecstasy"))
  28302. {
  28303. return SendErrorMessage(playerid, "You need to clear some room in your inventory.");
  28304. }
  28305. else
  28306. {
  28307. AddItemToInventory(playerid, "Ecstasy", Players[playerid][pPackageGrams]);
  28308. }
  28309. }
  28310. case PACKAGE_TYPE_MARIJUANA:
  28311. {
  28312. if (!IsSufficientSpace(playerid, "Marijuana"))
  28313. {
  28314. return SendErrorMessage(playerid, "You need to clear some room in your inventory.");
  28315. }
  28316. else
  28317. {
  28318. AddItemToInventory(playerid, "Marijuana Seeds", Players[playerid][pPackageGrams]);
  28319. }
  28320. }
  28321. case PACKAGE_TYPE_CRACK:
  28322. {
  28323. if (!IsSufficientSpace(playerid, "Crack"))
  28324. {
  28325. return SendErrorMessage(playerid, "You need to clear some room in your inventory.");
  28326. }
  28327. else
  28328. {
  28329. AddItemToInventory(playerid, "Crack", Players[playerid][pPackageGrams]);
  28330. }
  28331. }
  28332. case PACKAGE_TYPE_COCAINE:
  28333. {
  28334. if (!IsSufficientSpace(playerid, "Cocaine"))
  28335. {
  28336. return SendErrorMessage(playerid, "You need to clear some room in your inventory.");
  28337. }
  28338. else
  28339. {
  28340. AddItemToInventory(playerid, "Cocaine", Players[playerid][pPackageGrams]);
  28341. AddItemToInventory(playerid, "Baking Soda", Players[playerid][pPackageGrams]);
  28342. }
  28343. }
  28344. case PACKAGE_TYPE_METH:
  28345. {
  28346. if (!IsSufficientSpace(playerid, "Methamphetamine"))
  28347. {
  28348. return SendErrorMessage(playerid, "You need to clear some room in your inventory.");
  28349. }
  28350. else
  28351. {
  28352. AddItemToInventory(playerid, "Methamphetamine", Players[playerid][pPackageGrams]);
  28353. }
  28354. }
  28355. case PACKAGE_TYPE_PCP:
  28356. {
  28357. if (!IsSufficientSpace(playerid, "PCP"))
  28358. {
  28359. return SendErrorMessage(playerid, "You need to clear some room in your inventory.");
  28360. }
  28361. else
  28362. {
  28363. AddItemToInventory(playerid, "PCP", Players[playerid][pPackageGrams]);
  28364. }
  28365. }
  28366. case PACKAGE_TYPE_AMMO_1:
  28367. {
  28368. if ( !IsSufficientSpace(playerid, "9x19mm Ammo") )
  28369. {
  28370. return SendErrorMessage(playerid, "You need to clear some room in your inventory.");
  28371. }
  28372. else
  28373. {
  28374. AddItemToInventory(playerid, "9x19mm Ammo", 500);
  28375. }
  28376. }
  28377. case PACKAGE_TYPE_AMMO_2:
  28378. {
  28379. if ( !IsSufficientSpace(playerid, ".50cal Ammo") )
  28380. {
  28381. return SendErrorMessage(playerid, "You need to clear some room in your inventory.");
  28382. }
  28383. else
  28384. {
  28385. AddItemToInventory(playerid, ".50cal Ammo", 500);
  28386. }
  28387. }
  28388. case PACKAGE_TYPE_AMMO_3:
  28389. {
  28390. if ( !IsSufficientSpace(playerid, "12 Gauge Ammo") )
  28391. {
  28392. return SendErrorMessage(playerid, "You need to clear some room in your inventory.");
  28393. }
  28394. else
  28395. {
  28396. AddItemToInventory(playerid, "12 Gauge Ammo", 500);
  28397. }
  28398. }
  28399. case PACKAGE_TYPE_AMMO_4:
  28400. {
  28401. if ( !IsSufficientSpace(playerid, "5.56x45mm Ammo") )
  28402. {
  28403. return SendErrorMessage(playerid, "You need to clear some room in your inventory.");
  28404. }
  28405. else
  28406. {
  28407. AddItemToInventory(playerid, "5.56x45mm Ammo", 500);
  28408. }
  28409. }
  28410. case PACKAGE_TYPE_AMMO_5:
  28411. {
  28412. if ( !IsSufficientSpace(playerid, "7.62x39mm Ammo") )
  28413. {
  28414. return SendErrorMessage(playerid, "You need to clear some room in your inventory.");
  28415. }
  28416. else
  28417. {
  28418. AddItemToInventory(playerid, "7.62x39mm Ammo", 500);
  28419. }
  28420. }
  28421. case PACKAGE_TYPE_AMMO_6:
  28422. {
  28423. if ( !IsSufficientSpace(playerid, "7.62x51mm Ammo") )
  28424. {
  28425. return SendErrorMessage(playerid, "You need to clear some room in your inventory.");
  28426. }
  28427. else
  28428. {
  28429. AddItemToInventory(playerid, "7.62x51mm Ammo", 500);
  28430. }
  28431. }
  28432. }
  28433. Players[playerid][pPackageOrder] = PACKAGE_TYPE_NONE;
  28434. Players[playerid][pPackageType] = PACKAGE_TYPE_NONE;
  28435. DestroyPlayerObject(playerid, Players[playerid][pPackage]);
  28436. ResetCheckpoint(playerid);
  28437. SendInfoMessage(playerid, "The package has been added to your inventory.");
  28438. ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0);
  28439. }
  28440. case CHECKPOINT_JOB:
  28441. {
  28442. if (!Players[playerid][pWorking])
  28443. {
  28444. return 0;
  28445. }
  28446. if (Players[playerid][pJob] == JOB_FORKLIFTER)
  28447. {
  28448. switch (Players[playerid][pJobStage])
  28449. {
  28450. case 0:
  28451. {
  28452. if (GetVehicleModel(vehicleid) == 530 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  28453. {
  28454. Players[playerid][pJobStage] = 1;
  28455. SendInfoMessage(playerid, "You have picked up the crate. Drive to the {FF0000}checkpoint{FFFFFF} for further instructions.");
  28456. SetCheckpoint(playerid, CHECKPOINT_JOB, 2783.6682, -2417.8679, 13.6347, 3.0);
  28457. VehicleInformation[vehicleid][vObject] = CreateDynamicObject(1220, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  28458. AttachDynamicObjectToVehicle(VehicleInformation[vehicleid][vObject], vehicleid, 0.0, 0.6, 0.28, 0.0, 0.0, 0.0);
  28459. }
  28460. }
  28461. case 1:
  28462. {
  28463. if (GetVehicleModel(vehicleid) == 530 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  28464. {
  28465. switch (random(2))
  28466. {
  28467. case 0: SetCheckpoint(playerid, CHECKPOINT_JOB, 2790.8264, -2410.4639, 13.6329, 3.0);
  28468. case 1: SetCheckpoint(playerid, CHECKPOINT_JOB, 2790.8264, -2410.4639, 13.6329, 3.0);
  28469. }
  28470. Players[playerid][pJobStage] = 2;
  28471. SendInfoMessage(playerid, "Stack the cargo on the shelf.");
  28472. RemovePlayerFromVehicle(playerid);
  28473. DestroyDynamicObject(VehicleInformation[vehicleid][vObject]);
  28474. VehicleInformation[vehicleid][vObject] = INVALID_OBJECT_ID;
  28475. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY);
  28476. SetPlayerAttachedObject(playerid, ATTACHED_SLOT_MISC, 1220, 5, 0.184000, 0.330999, 0.112999, -84.099983, -9.500001, 20.700000);
  28477. }
  28478. }
  28479. case 2:
  28480. {
  28481. new price = Random(90, 150);
  28482. Players[playerid][pJobPaycheck] += price;
  28483. SendInfoMessage(playerid, "You have received {33CC33}$%i{FFFFFF} on your paycheck. You can continue working or use /stop to quit.", price);
  28484. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE);
  28485. RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_MISC);
  28486. ApplyAnimation(playerid, "CARRY", "putdwn", 4.1, 0, 0, 0, 0, 0, 1);
  28487. StartWorking(playerid);
  28488. }
  28489. }
  28490. }
  28491. else if (Players[playerid][pJob] == JOB_MINER)
  28492. {
  28493. if (GetPlayerState(playerid) != PLAYER_STATE_ONFOOT)
  28494. {
  28495. return SendErrorMessage(playerid, "You need to be onfoot to enter the checkpoint.");
  28496. }
  28497. else
  28498. {
  28499. new price = Random(950, 1100);
  28500. Players[playerid][pJobPaycheck] += price;
  28501. Players[playerid][pWorking] = 0;
  28502. SendInfoMessage(playerid, "You have received {33CC33}$%i{FFFFFF} on your paycheck.", price);
  28503. ApplyAnimation(playerid, "CARRY", "putdwn", 4.1, 0, 0, 0, 0, 0, 1);
  28504. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE);
  28505. RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_MISC);
  28506. ResetCheckpoint(playerid);
  28507. }
  28508. }
  28509. else if (Players[playerid][pJob] == JOB_PIZZA)
  28510. {
  28511. new price = floatround(GetPlayerDistanceFromPoint(playerid, 2097.8745, -1800.4648, 12.9810)) / 2;
  28512. Players[playerid][pJobPaycheck] += price;
  28513. Players[playerid][pWorking] = 0;
  28514. SendInfoMessage(playerid, "You have received $%i on your paycheck.", price);
  28515. ApplyAnimation(playerid, "CARRY", "putdwn", 4.1, 0, 0, 0, 0, 0, 1);
  28516. ResetCheckpoint(playerid);
  28517. }
  28518. else if (Players[playerid][pJob] == JOB_TRASHMAN)
  28519. {
  28520. if (Players[playerid][pTrashPickup] + 1 <= sizeof(g_TrashPickups) && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  28521. {
  28522. DestroyPlayerObject(playerid, gTrashObjects[playerid][Players[playerid][pTrashPickup]]);
  28523. gTrashObjects[playerid][Players[playerid][pTrashPickup]] = INVALID_OBJECT_ID;
  28524. Players[playerid][pTrash] = 1;
  28525. Players[playerid][pTrashPickup]++;
  28526. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY);
  28527. SetPlayerAttachedObject(playerid, ATTACHED_SLOT_MISC, 1265, 1, 0.344999, 0.557000, 0.032999, 0.000000, 83.599990, -81.899963);
  28528. ApplyAnimation(playerid, "CARRY", "liftup", 4.1, 0, 0, 0, 0, 0, 1);
  28529. SendInfoMessage(playerid, "Press Y to load the trash bag in the truck.");
  28530. ResetCheckpoint(playerid);
  28531. new trash = GetClosestTrashbin(playerid);
  28532. ClearTrashbinItems(trash);
  28533. }
  28534. else if (Players[playerid][pTrashPickup] >= sizeof(g_TrashPickups) && GetVehicleModel(GetPlayerVehicleID(playerid)) == 408)
  28535. {
  28536. StopWorking(playerid);
  28537. Players[playerid][pJobPaycheck] += 250;
  28538. Players[playerid][pWorking] = 0;
  28539. SendInfoMessage(playerid, "You have received $250 on your paycheck.");
  28540. ResetCheckpoint(playerid);
  28541. }
  28542. }
  28543. }
  28544. }
  28545. }
  28546. return 1;
  28547. }
  28548. public OnPlayerExitVehicle(playerid, vehicleid)
  28549. {
  28550. if (IsTestVehicle(vehicleid) && Players[playerid][pDrivingTest])
  28551. {
  28552. Players[playerid][pDrivingTest] = 0;
  28553. DisablePlayerCheckpoint(playerid);
  28554. SetVehicleToRespawn(vehicleid);
  28555. SendInfoMessage(playerid, "You have failed the driving test for leaving the car.");
  28556. }
  28557. ResetHotwiring(playerid);
  28558. return 1;
  28559. }
  28560. public OnQueryError(errorid, error[], callback[], query[], connectionHandle)
  28561. {
  28562. printf("\a(SQL) %s", error);
  28563. SendAdminMessage(COLOR_RED, "Admin: A MySQL error has occurred, please check the error logs (error: %i).", errorid);
  28564. return 1;
  28565. }
  28566. #if defined CHEMICAL_SYSTEM
  28567. #include "script/drug_def.pwn"
  28568. #include "script/drugs_stock.pwn"
  28569. #include "script/chemical_stock.pwn"
  28570. #include "script/interface.pwn"
  28571. #include "script/chemical_part.pwn"
  28572. #pragma unused AddChemical
  28573. #pragma unused GetDistanceBetweenPoints
  28574. #pragma unused MulStringHandler
  28575. #pragma unused RemoveDrugs
  28576. #pragma unused SaveChemical
  28577. #pragma unused SaveDrugs
  28578. #endif
  28579. new grove;
  28580. new ballas2;
  28581. new FYB;
  28582. new FYB2;
  28583. new SBF;
  28584. new SBF2;
  28585. new VLA;
  28586. new VLA2;
  28587. new VAGOS;
  28588. new VAGOS2;
  28589. //Actors
  28590. new MyActor;
  28591. public OnGameModeInit()
  28592. {
  28593. // Create an actor (CJ) at Blueberry Acres (Center of SA map)
  28594. MyActor = CreateActor(6,2474.4016,-1974.4674,13.4467,173.6708); // Actor as salesperson in Ammunation
  28595. ApplyActorAnimation(MyActor, "DEALER", "dealer_idle", 4.1, 0, 0, 0, 0, 0);
  28596. //Gang Turfs
  28597. grove = GangZoneCreate(2212.404, -1831.876, 2539.448, -1606.855);
  28598. ballas2 = GangZoneCreate(1866.346, -1508.161, 2254.235, -1077.857);
  28599. FYB = GangZoneCreate(1843.529, -1630.541, 2204.798, -1535.795);
  28600. FYB2 = GangZoneCreate(1953.811, -1768.712, 2193.39, -1622.646);
  28601. SBF = GangZoneCreate(2391.137, -2056.897, 2805.646, -1887.144);
  28602. SBF2 = GangZoneCreate(2204.798, -1942.413, 2311.278, -1879.249);
  28603. VLA = GangZoneCreate(1828.318, -2187.173, 1972.825, -1768.712);
  28604. VLA2 = GangZoneCreate(1664.796, -2171.382, 1828.318, -2104.27);
  28605. VAGOS = GangZoneCreate(2364.517, -1444.997, 2691.561, -1192.342);
  28606. VAGOS2 = GangZoneCreate(2334.095, -1160.76, 2611.702, -939.6865);
  28607. //Mapping
  28608. //MapAndreas_Init(MAP_ANDREAS_MODE_MINIMAL);
  28609. /*EnableAntiCheat(039, 0);
  28610. EnableAntiCheat(010, 0);
  28611. EnableAntiCheat(012, 0);*/
  28612. // Hoodrats
  28613. AddPlayerClass(29,2383.7700,-1467.6337,24.0026,270.6843,0,0,0,0,0,0); // HoodRatSpawn1
  28614. AddPlayerClass(23,2383.7700,-1467.6337,24.0026,270.6843,0,0,0,0,0,0); // HoodRatSpawn1
  28615. AddPlayerClass(25,2383.7700,-1467.6337,24.0026,270.6843,0,0,0,0,0,0); // HoodRatSpawn1
  28616. AddPlayerClass(105,2475.4915,-1694.9734,13.5183,22.2914,0,0,0,0,0,0); // GSFPos1
  28617. AddPlayerClass(106,2475.4915,-1694.9734,13.5183,22.2914,0,0,0,0,0,0); // GSFPos1
  28618. AddPlayerClass(107,2475.4915,-1694.9734,13.5183,22.2914,0,0,0,0,0,0); // GSFPos1
  28619. AddPlayerClass(270,2475.4915,-1694.9734,13.5183,22.2914,0,0,0,0,0,0); // Sweet
  28620. AddPlayerClass(269,2475.4915,-1694.9734,13.5183,22.2914,0,0,0,0,0,0); // Ryder
  28621. AddPlayerClass(271,2475.4915,-1694.9734,13.5183,22.2914,0,0,0,0,0,0); // Big_Smoke
  28622. AddPlayerClass(0,2475.4915,-1694.9734,13.5183,22.2914,0,0,0,0,0,0); // CJ
  28623. // SBF
  28624. AddPlayerClass(105,2766.4897,-2011.0477,13.5620,227.6935,0,0,0,0,0,0); // camSBF1
  28625. AddPlayerClass(106,2766.4897,-2011.0477,13.5620,227.6935,0,0,0,0,0,0); // camSBF2
  28626. AddPlayerClass(107,2766.4897,-2011.0477,13.5620,227.6935,0,0,0,0,0,0); // camSBF3
  28627. // Temple Drive Families
  28628. AddPlayerClass(105,915.2412,-1104.8180,24.2969,180.8262,0,0,0,0,0,0); // camTDF1
  28629. AddPlayerClass(106,915.2412,-1104.8180,24.2969,180.8262,0,0,0,0,0,0); // camTDF1
  28630. AddPlayerClass(107,915.2412,-1104.8180,24.2969,180.8262,0,0,0,0,0,0); // camTDF1
  28631. // Front Yard Ballas
  28632. AddPlayerClass(102,2175.5786,-1732.3136,13.5339,271.4185,0,0,0,0,0,0); // camFYB2
  28633. AddPlayerClass(103,2175.5786,-1732.3136,13.5339,271.4185,0,0,0,0,0,0); // camFYB2
  28634. AddPlayerClass(104,2175.5786,-1732.3136,13.5339,271.4185,0,0,0,0,0,0); // camFYB2
  28635. //Rollin Heights Ballas
  28636. AddPlayerClass(103,2136.1011,-1391.1796,23.9992,39.3045,0,0,0,0,0,0); // CamRHB2
  28637. AddPlayerClass(102,2136.1011,-1391.1796,23.9992,39.3045,0,0,0,0,0,0); // CamRHB2
  28638. AddPlayerClass(104,2136.1011,-1391.1796,23.9992,39.3045,0,0,0,0,0,0); // CamRHB2
  28639. //Kilo Tray Ballas
  28640. AddPlayerClass(104,1979.7319,-1157.1125,20.9351,269.4461,0,0,0,0,0,0); // CamKTB2
  28641. AddPlayerClass(103,1979.7319,-1157.1125,20.9351,269.4461,0,0,0,0,0,0); // CamKTB2
  28642. AddPlayerClass(102,1979.7319,-1157.1125,20.9351,269.4461,0,0,0,0,0,0); // CamKTB2
  28643. //Temple Drive Ballas
  28644. AddPlayerClass(103,1183.7802,-1258.4663,18.8984,181.0539,0,0,0,0,0,0); // TDB2
  28645. AddPlayerClass(102,1183.7802,-1258.4663,18.8984,181.0539,0,0,0,0,0,0); // TDB2
  28646. AddPlayerClass(103,1183.7802,-1258.4663,18.8984,181.0539,0,0,0,0,0,0); // TDB2
  28647. AddPlayerClass(272,2686.6853,-2126.4114,13.5597,267.6120,0,0,0,0,0,0); // GDSpawn
  28648. // Varios Los Aztecas
  28649. AddPlayerClass(114,1879.4531,-2038.6274,13.3906,44.1390,0,0,0,0,0,0); // VLAPOS2
  28650. AddPlayerClass(115,1879.4531,-2038.6274,13.3906,44.1390,0,0,0,0,0,0); // VLAPOS2
  28651. AddPlayerClass(116,1879.4531,-2038.6274,13.3906,44.1390,0,0,0,0,0,0); // VLAPOS2
  28652. AddPlayerClass(292,1802.1151,-2139.5603,13.5469,89.8728,0,0,0,0,0,0); // caesar
  28653. AddPlayerClass(108,2434.3467,-1325.1730,25.0269,267.8017,0,0,0,0,0,0); // vagospos1
  28654. AddPlayerClass(109,2434.3467,-1325.1730,25.0269,267.8017,0,0,0,0,0,0); // vagospos1
  28655. AddPlayerClass(110,2434.3467,-1325.1730,25.0269,267.8017,0,0,0,0,0,0); // vagospos1
  28656. AddPlayerClass(48,276.4123,-1160.3118,80.9141,131.4480,0,0,0,0,0,0); // ddspawn
  28657. // Los Santos Police Department
  28658. AddPlayerClass(300,1580.5890,-1634.8744,13.5610,91.8254,0,0,0,0,0,0); // lsspdspawn
  28659. AddPlayerClass(284,1580.5890,-1634.8744,13.5610,91.8254,0,0,0,0,0,0); // lsspdspawn
  28660. if (!fexist("Server/"))
  28661. {
  28662. print("\aWarning! The \"Server\" folder doesn't exist in scriptfiles.");
  28663. return GameModeExit();
  28664. }
  28665. gConnection = mysql_connect(SQL_HOSTNAME, SQL_USERNAME, SQL_DATABASE, SQL_PASSWORD, 3306);
  28666. if (!mysql_errno(gConnection))
  28667. {
  28668. printf("(SQL) Successfully connected to \"%s\".", SQL_HOSTNAME);
  28669. // Gamemode setup
  28670. SetWeather(gWeatherID);
  28671. SetGameModeText("SA92 "#SERVER_REVISION"");
  28672. ShowNameTags(0);
  28673. //SetNameTagDrawDistance(15.0);
  28674. LimitGlobalChatRadius(0.0);
  28675. DisableInteriorEnterExits();
  28676. ManualVehicleEngineAndLights();
  28677. EnableStuntBonusForAll(0);
  28678. ShowPlayerMarkers(PLAYER_MARKERS_MODE_OFF);
  28679. LoadInformation();
  28680. for(new i = 0; i < sizeof(g_RepairShops); i ++)
  28681. {
  28682. CreateDynamicPickup(1239, 1, g_RepairShops[i][0], g_RepairShops[i][1], g_RepairShops[i][2]);
  28683. CreateDynamic3DTextLabel("Repair Shop\nCost: $500\n/enter to repair your vehicle.", COLOR_GREY, g_RepairShops[i][0], g_RepairShops[i][1], g_RepairShops[i][2], 10.0);
  28684. }
  28685. CreateDynamicPickup(1239, 2, 1041.2220, -1028.3320, 32.1016);
  28686. CreateDynamic3DTextLabel("{6DB4F1}[Tune Shop]\n/tune to mod your vehicle.", -1, 1041.2220, -1028.3320, 32.1016, 10.0);
  28687. Create3DTextLabel("{6DB4F1}[DMV]\nUse /start to get your Driver Licenses", -1, 1490.2839, 1305.6837, 1093.2964, 10.0, 3, 0);
  28688. CreateDynamicPickup(1239, 23, 1490.2839, 1305.6837, 1093.2964, 3);
  28689. gTestVehicles[0] = SpawnVehicle(405, 1245.0278, -1834.5586, 13.1675, 0.0000, 1, 1, 20); // car 1
  28690. gTestVehicles[1] = SpawnVehicle(405, 1248.8597, -1834.4784, 13.1672, 0.0000, 1, 1, 20); // car 2
  28691. gTestVehicles[2] = SpawnVehicle(405, 1252.6323, -1834.2869, 13.1675, 0.0000, 1, 1, 20); // car 3
  28692. gTestVehicles[3] = SpawnVehicle(405, 1257.0115, -1834.2378, 13.1673, 0.0000, 1, 1, 20); // car 4
  28693. mysql_tquery(gConnection, "UPDATE rp_accounts SET Online = 0");
  28694. mysql_tquery(gConnection, "SELECT * FROM rp_items WHERE itemDropped = 1", "OnLoadDropItems");
  28695. mysql_tquery(gConnection, "SELECT * FROM rp_items WHERE itemOwner = 0 AND itemDropped = 0", "OnLoadStoredItems");
  28696. mysql_tquery(gConnection, "SELECT * FROM rp_gundamages", "OnLoadGunDamages");
  28697. mysql_tquery(gConnection, "SELECT * FROM rp_carblacklist", "OnLoadCarBlacklist");
  28698. mysql_tquery(gConnection, "SELECT * FROM rp_vehicles", "OnLoadVehicles");
  28699. mysql_tquery(gConnection, "SELECT * FROM rp_houses", "OnLoadHouses");
  28700. mysql_tquery(gConnection, "SELECT * FROM rp_companies", "OnLoadCompanies");
  28701. mysql_tquery(gConnection, "SELECT * FROM rp_buildings", "OnLoadBuildings");
  28702. mysql_tquery(gConnection, "SELECT * FROM rp_furniture", "OnLoadFurniture");
  28703. mysql_tquery(gConnection, "SELECT * FROM rp_gaspumps", "OnLoadGasPumps");
  28704. mysql_tquery(gConnection, "SELECT * FROM rp_atms", "OnLoadATMMachines");
  28705. mysql_tquery(gConnection, "SELECT * FROM rp_dealercars", "OnLoadDealershipCars");
  28706. mysql_tquery(gConnection, "SELECT * FROM rp_casings", "OnLoadShellCasings");
  28707. mysql_tquery(gConnection, "SELECT * FROM rp_weedplants", "OnLoadWeedPlants");
  28708. mysql_tquery(gConnection, "SELECT * FROM rp_factions", "OnLoadFactions");
  28709. mysql_tquery(gConnection, "SELECT * FROM rp_arrestpoints", "OnLoadArrestPoints");
  28710. mysql_tquery(gConnection, "SELECT * FROM rp_teleports", "OnLoadTeleports");
  28711. mysql_tquery(gConnection, "SELECT * FROM rp_dynamiclabels", "OnLoadLabels");
  28712. mysql_tquery(gConnection, "SELECT * FROM rp_gates", "OnLoadGates");
  28713. //mysql_tquery(gConnection, "SELECT * FROM rp_autoshops", "OnLoadAutoShops");
  28714. mysql_tquery(gConnection, "SELECT * FROM rp_objects", "OnLoadObjects");
  28715. mysql_tquery(gConnection, "SELECT * FROM rp_trashbins", "OnLoadTrashbins");
  28716. mysql_tquery(gConnection, "SELECT * FROM rp_spraytags", "OnLoadSprayTags");
  28717. mysql_tquery(gConnection, "SELECT * FROM rp_tags", "OnLoadTags");
  28718. mysql_tquery(gConnection, "SELECT * FROM rp_payphones", "OnLoadPayphones");
  28719. //SetTimer("PublishAds", 20000, true);
  28720. SetTimer("MinuteSync", 60000, true);
  28721. SetTimer("SecondSync", 1000, true);
  28722. SetTimer("DistanceCycle", 2000, true);
  28723. SetTimer("FuelCycle", (FUEL_TIME_INTERVAL * 1000), true);
  28724. //PayNSpray
  28725. CreateDynamicObject(11315,1903.277,1354.053,26.909,0.000,0.000,0.000,-1,-1,-1,1000.000,1000.000);
  28726. CreateDynamicObject(11319,1903.246,1360.305,26.659,0.000,0.000,90.799,-1,-1,-1,1000.000,1000.000);
  28727. CreateDynamicObject(19380,1907.744,1356.175,23.718,0.000,0.000,0.000,-1,-1,-1,1000.000,1000.000);
  28728. CreateDynamicObject(19380,1907.744,1348.125,23.718,0.000,0.000,0.000,-1,-1,-1,1000.000,1000.000);
  28729. CreateDynamicObject(19380,1898.804,1348.125,23.718,0.000,0.000,0.000,-1,-1,-1,1000.000,1000.000);
  28730. CreateDynamicObject(19380,1898.804,1356.796,23.718,0.000,0.000,0.000,-1,-1,-1,1000.000,1000.000);
  28731. CreateDynamicObject(19380,1897.689,1360.572,23.718,0.000,0.000,-91.200,-1,-1,-1,1000.000,1000.000);
  28732. CreateDynamicObject(19380,1911.347,1360.286,23.718,0.000,0.000,-91.599,-1,-1,-1,1000.000,1000.000);
  28733. //EndPayNSpray
  28734. LoadObjects();
  28735. LoadActors();
  28736. LoadElements();
  28737. LoadJobs();
  28738. LoadDynamicObjects();
  28739. LoadTextDraws();
  28740. LoadStaticBuildings();
  28741. UpdateTimeTextDraw();
  28742. }
  28743. else
  28744. {
  28745. printf("\a(SQL) Failed to connect to \"%s\"!", SQL_HOSTNAME);
  28746. GameModeExit();
  28747. }
  28748. return 1;
  28749. }
  28750. public OnGameModeExit()
  28751. {
  28752. return 1;
  28753. }
  28754. forward StopChatting(playerid);
  28755. public StopChatting(playerid)
  28756. {
  28757. if (IsPlayerLoggedIn(playerid) && Players[playerid][pChatting] && !Players[playerid][pAnimation])
  28758. {
  28759. ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.0, 0, 0, 0, 0, 0, 1);
  28760. ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.0, 0, 0, 0, 0, 0, 1);
  28761. }
  28762. Players[playerid][pChatting] = 0;
  28763. }
  28764. forward HandlePhoneRing(playerid);
  28765. public HandlePhoneRing(playerid)
  28766. {
  28767. if (Players[playerid][pCalling] != 1)
  28768. {
  28769. return 0;
  28770. }
  28771. PlayNearbySound(playerid, 20600);
  28772. SetTimerEx("HandlePhoneRing", 4000, false, "i", playerid);
  28773. return 1;
  28774. }
  28775. forward HandlePhoneDial(playerid);
  28776. public HandlePhoneDial(playerid)
  28777. {
  28778. if (Players[playerid][pCalling] != 1)
  28779. {
  28780. return 0;
  28781. }
  28782. PlayerPlaySound(playerid, 16001, 0.0, 0.0, 0.0);
  28783. SetTimerEx("HandlePhoneDial", 4000, false, "i", playerid);
  28784. return 1;
  28785. }
  28786. forward OnPhoneResponse(playerid, number);
  28787. public OnPhoneResponse(playerid, number)
  28788. {
  28789. if ((Players[playerid][pPayphone] != INVALID_ID && GetClosestPayphone(playerid) != Players[playerid][pPayphone]) || Players[playerid][pPhoneOff] || !Players[playerid][pCalling])
  28790. {
  28791. return 0;
  28792. }
  28793. switch (number)
  28794. {
  28795. case 444:
  28796. {
  28797. if (Players[playerid][pAdTime] > gettime())
  28798. {
  28799. SendFormatMessage(playerid, COLOR_YELLOW, "(Phone) Agency: You may publish another advertisement in %i seconds.", Players[playerid][pAdTime] - gettime());
  28800. HangupCall(playerid);
  28801. }
  28802. else if (IsAdvertisementActive(playerid))
  28803. {
  28804. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Agency: You already have an advertisement queued in our system.");
  28805. HangupCall(playerid);
  28806. }
  28807. else
  28808. {
  28809. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Agency: An advertisement costs $200. Please say what you wish to advertise.");
  28810. Players[playerid][pCalling] = number;
  28811. }
  28812. }
  28813. case 555:
  28814. {
  28815. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Taxi: Would you like to request a taxi? Say 'yes' or 'no'.");
  28816. Players[playerid][pCalling] = number;
  28817. }
  28818. case 911:
  28819. {
  28820. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Dispatch: Which service do you require?");
  28821. Players[playerid][pCalling] = number;
  28822. }
  28823. case 991:
  28824. {
  28825. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Dispatch: This is the police non-emergency line, what can we help you with?");
  28826. Players[playerid][pCalling] = number;
  28827. }
  28828. /*case 991:
  28829. {
  28830. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) John Doe: This is the police non-emergency line, what can we help you with?");
  28831. Players[playerid][pCalling] = number;
  28832. }
  28833. case 992:
  28834. {
  28835. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) John Doe: This is the medical non-emergency line, what can we help you with?");
  28836. Players[playerid][pCalling] = number;
  28837. }
  28838. case 993:
  28839. {
  28840. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) John Doe: This is the government landline, what can we help you with?");
  28841. Players[playerid][pCalling] = number;
  28842. }*/
  28843. default:
  28844. {
  28845. new targetid = GetPhonePlayerID(number);
  28846. if (targetid == INVALID_PLAYER_ID)
  28847. {
  28848. SendClientMessage(playerid, COLOR_LIGHTGREY, "** This cellphone number is currently not in service. **");
  28849. HangupCall(playerid);
  28850. }
  28851. else if (IsPhoneBusy(number))
  28852. {
  28853. SendClientMessage(playerid, COLOR_LIGHTGREY, "** You would hear a busy tone. **");
  28854. HangupCall(playerid);
  28855. }
  28856. }
  28857. }
  28858. return 1;
  28859. }
  28860. forward TagSprayed(playerid, spray);
  28861. public TagSprayed(playerid, spray)
  28862. {
  28863. if (Players[playerid][pSprayTag] == spray && IsValidSprayTagID(spray) && GetPlayerFactionType(playerid) == FACTION_ILLEGAL)
  28864. {
  28865. strunpack(SprayTags[spray][sText], gTemporaryText[playerid], 64);
  28866. //SprayTags[spray][sColor] = RGBAToARGB(Factions[Players[playerid][pFaction]][fcColor]);
  28867. SprayTags[spray][sColor] = Factions[Players[playerid][pFaction]][fcColor];
  28868. UpdateSprayTag(spray);
  28869. SaveSprayTag(spray);
  28870. PlayAnimation(playerid, "GANGS", "Invite_Yes", 4.1, 0, 0, 0, 0, 0, 1);
  28871. ShowActionBubble(playerid, "* %s puts the spraycan down and looks at their work.", ReturnNameEx(playerid));
  28872. SendInfoMessage(playerid, "You have sprayed the tag! Leave the area before a rival gang shows up.");
  28873. }
  28874. ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.0, 0, 0, 0, 0, 0);
  28875. Players[playerid][pSprayTag] = INVALID_ID;
  28876. }
  28877. forward MiningFinished(playerid);
  28878. public MiningFinished(playerid)
  28879. {
  28880. if (Players[playerid][pJob] == JOB_MINER && Players[playerid][pWorking] && Players[playerid][pMining])
  28881. {
  28882. if (GetPlayerState(playerid) != PLAYER_STATE_ONFOOT)
  28883. {
  28884. Players[playerid][pWorking] = 0;
  28885. Players[playerid][pMining] = 0;
  28886. ClearAnimations(playerid);
  28887. SendInfoMessage(playerid, "Mining job failed. You entered a vehicle during the process.");
  28888. }
  28889. else if (!IsPlayerInRangeOfPoint(playerid, 3.0, -1858.5516, -1651.3812, 26.5788) && !IsPlayerInRangeOfPoint(playerid, 3.0, -1790.7683, -1649.2581, 33.3813) && !IsPlayerInRangeOfPoint(playerid, 3.0, -1775.1649, -1643.3854, 29.5218) && !IsPlayerInRangeOfPoint(playerid, 3.0, -1801.5831, -1649.7592, 26.5446))
  28890. {
  28891. Players[playerid][pWorking] = 0;
  28892. Players[playerid][pMining] = 0;
  28893. ClearAnimations(playerid);
  28894. SendInfoMessage(playerid, "Mining job failed. You are not in range of the rocks.");
  28895. }
  28896. else
  28897. {
  28898. Players[playerid][pMining] = 0;
  28899. ApplyAnimation(playerid, "CARRY", "liftup", 4.1, 0, 0, 0, 0, 0, 1);
  28900. SetCheckpoint(playerid, CHECKPOINT_JOB, -1853.7217, -1606.2709, 21.7578, 2.0);
  28901. SendInfoMessage(playerid, "Deliver this rock to the {FF0000}checkpoint{FFFFFF}.");
  28902. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY);
  28903. SetPlayerAttachedObject(playerid, ATTACHED_SLOT_MISC, 3930, 6, 0.154000, 0.189999, -0.284999, -86.200103, 165.400009, -15.999998);
  28904. }
  28905. }
  28906. TogglePlayerControllable(playerid, true);
  28907. }
  28908. forward SetupConfirmed(playerid);
  28909. public SetupConfirmed(playerid)
  28910. {
  28911. if (Players[playerid][pSetupInfo])
  28912. {
  28913. for (new i = 86; i < 102; i ++) {
  28914. PlayerTextDrawHide(playerid, Players[playerid][pText][i]);
  28915. }
  28916. SendToDefaultSpawn(playerid);
  28917. TogglePlayerControllable(playerid, 1);
  28918. CancelSelectTextDraw(playerid);
  28919. SendInfoMessage(playerid, " You have spawned at the default starter spawn. Please type {33AA33}'/spawntype'{FFFFFF} to adjust your spawn location.");
  28920. SendInfoMessage(playerid, " If you wish to spawn the your desired faction, please re-log after used {33AA33}'/spawntype'");
  28921. SendInfoMessage(playerid, " There is rental vehicles nearby you if it's needed.");
  28922. }
  28923. }
  28924. forward RepairEngine(playerid, vehicleid);
  28925. public RepairEngine(playerid, vehicleid)
  28926. {
  28927. new Float:health;
  28928. if (GetClosestVehicle(playerid) != vehicleid)
  28929. {
  28930. StopRepairing(playerid);
  28931. }
  28932. else
  28933. {
  28934. GetVehicleHealth(vehicleid, health);
  28935. health += 50.0;
  28936. if (health >= 1000.0)
  28937. {
  28938. StopRepairing(playerid);
  28939. SetVehicleHealth(vehicleid, 1000.0);
  28940. SendInfoMessage(playerid, "The engine has been fully repaired.");
  28941. }
  28942. else
  28943. {
  28944. SetVehicleHealth(vehicleid, health);
  28945. ShowFooterText(playerid, "Repairing the engine, please wait...");
  28946. }
  28947. }
  28948. return 1;
  28949. }
  28950. forward OnPlayerRequestNameChange(playerid, name[]);
  28951. public OnPlayerRequestNameChange(playerid, name[])
  28952. {
  28953. if (cache_get_row_count(gConnection))
  28954. {
  28955. SendErrorMessage(playerid, "The specified name is already in use.");
  28956. }
  28957. else
  28958. {
  28959. strcpy(Players[playerid][pNameChange], name, MAX_PLAYER_NAME);
  28960. SendAdminMessage(COLOR_RED, "Admin: %s has requested a name change to %s (/approvename %i or /denyname %i).", ReturnNameEx(playerid), name, playerid, playerid);
  28961. SendInfoMessage(playerid, "You have requested a name change to %s. It will be accepted shortly.", name);
  28962. }
  28963. }
  28964. forward OnPlayerFactionKick(playerid, player[]);
  28965. public OnPlayerFactionKick(playerid, player[])
  28966. {
  28967. if (!cache_get_row_count(gConnection))
  28968. {
  28969. SendErrorMessage(playerid, "That player doesn't exist or has a higher rank.");
  28970. }
  28971. else
  28972. {
  28973. format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET FactionID = 0, FactionRank = 0 WHERE Username = '%s'", player);
  28974. mysql_tquery(gConnection, gExecute);
  28975. SendInfoMessage(playerid, "You have removed %s from the faction.", player);
  28976. }
  28977. }
  28978. forward OnPlayerPayTicket(playerid, ticket);
  28979. public OnPlayerPayTicket(playerid, ticket)
  28980. {
  28981. if (!cache_get_row_count(gConnection))
  28982. {
  28983. SendErrorMessage(playerid, "There was an error processing this ticket.");
  28984. }
  28985. else
  28986. {
  28987. new amount, date[32], reason[128];
  28988. amount = cache_get_field_content_int(0, "Amount");
  28989. cache_get_field_content(0, "Date", date);
  28990. cache_get_field_content(0, "Reason", reason);
  28991. if (!PlayerCanAfford(playerid, amount))
  28992. {
  28993. SendErrorMessage(playerid, "You don't have enough money to pay this ticket.");
  28994. }
  28995. else
  28996. {
  28997. format(gExecute, sizeof(gExecute), "DELETE FROM rp_tickets WHERE ID = %i", ticket);
  28998. mysql_tquery(gConnection, gExecute);
  28999. SendInfoMessage(playerid, "You have paid a ticket costing %s for \"%s\" (issued on %s).", FormatNumber(amount), reason, date);
  29000. RemoveMoney(playerid, amount);
  29001. Server[TaxVault] += amount;
  29002. SaveInformation();
  29003. ShowTicketList(playerid);
  29004. }
  29005. }
  29006. }
  29007. forward OnPlayerRemoveAnote(playerid, anote);
  29008. public OnPlayerRemoveAnote(playerid, anote)
  29009. {
  29010. if (!cache_get_row_count(gConnection))
  29011. {
  29012. SendErrorMessage(playerid, "There was an error processing this anote.");
  29013. }
  29014. else
  29015. {
  29016. new issuer[32], date[32], reason[128];
  29017. cache_get_field_content(0, "Issuer", issuer);
  29018. cache_get_field_content(0, "Date", date);
  29019. cache_get_field_content(0, "Reason", reason);
  29020. format(gExecute, sizeof(gExecute), "DELETE FROM rp_anotes WHERE ID = %i", anote);
  29021. mysql_tquery(gConnection, gExecute);
  29022. SendInfoMessage(playerid, "You have removed anote ID: %i (issued on %s).", anote, date);
  29023. SendInfoMessage(playerid, "Anote: \"%s\"", reason);
  29024. }
  29025. }
  29026. forward OnPlayerShowTickets(playerid);
  29027. public OnPlayerShowTickets(playerid)
  29028. {
  29029. new
  29030. rows = cache_get_row_count(gConnection);
  29031. if (!rows)
  29032. {
  29033. SendErrorMessage(playerid, "You don't have any tickets to pay.");
  29034. }
  29035. else
  29036. {
  29037. static
  29038. reason[128],
  29039. date[32];
  29040. gListString = "Amount\tReason\tDate";
  29041. for (new i = 0; i < rows; i ++)
  29042. {
  29043. cache_get_field_content(i, "Date", date);
  29044. cache_get_field_content(i, "Reason", reason);
  29045. format(gListString, sizeof(gListString), "%s\n%s\t%s\t%s", gListString, FormatNumber(cache_get_field_content_int(i, "Amount")), reason, date);
  29046. gListedItems[playerid][i] = cache_get_field_content_int(i, "ID");
  29047. }
  29048. Dialog_Show(playerid, PayTickets, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Tickets to Pay", gListString, "Pay", "Cancel");
  29049. }
  29050. }
  29051. forward OnPlayerShowFines(playerid);
  29052. public OnPlayerShowFines(playerid)
  29053. {
  29054. new rows = cache_get_row_count(gConnection);
  29055. if (!rows)
  29056. {
  29057. SendErrorMessage(playerid, "You don't have any tickets.");
  29058. }
  29059. else
  29060. {
  29061. static
  29062. reason[128],
  29063. date[32];
  29064. gListString = "Amount\tReason\tDate";
  29065. for (new i = 0; i < rows; i ++)
  29066. {
  29067. cache_get_field_content(i, "Date", date);
  29068. cache_get_field_content(i, "Reason", reason);
  29069. format(gListString, sizeof(gListString), "%s\n%s\t%s\t%s", gListString, FormatNumber(cache_get_field_content_int(i, "Amount")), reason, date);
  29070. gListedItems[playerid][i] = cache_get_field_content_int(i, "ID");
  29071. }
  29072. Dialog_Show(playerid, ShowFines, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Tickets", gListString, "Select", "Cancel");
  29073. }
  29074. }
  29075. forward OnPlayerShowANotes(playerid, targetid);
  29076. public OnPlayerShowANotes(playerid, targetid)
  29077. {
  29078. new
  29079. rows = cache_get_row_count(gConnection);
  29080. if (!rows)
  29081. {
  29082. SendErrorMessage(targetid, "That player does not have any admin notes.");
  29083. }
  29084. else
  29085. {
  29086. static
  29087. reason[128],
  29088. date[32],
  29089. issuer[32];
  29090. gListString = "Issuer\tReason\tDate";
  29091. for (new i = 0; i < rows; i ++)
  29092. {
  29093. cache_get_field_content(i, "Date", date);
  29094. cache_get_field_content(i, "Reason", reason);
  29095. cache_get_field_content(i, "Issuer", issuer);
  29096. format(gListString, sizeof(gListString), "%s\n%s\t%s\t%s", gListString, issuer, reason, date);
  29097. gListedItems[playerid][i] = cache_get_field_content_int(i, "ID");
  29098. }
  29099. Dialog_Show(targetid, RemoveAnote, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Admin Notes", gListString, "Remove", "Exit");
  29100. }
  29101. }
  29102. forward OnPlayerShowDeathLogs(playerid);
  29103. public OnPlayerShowDeathLogs(playerid)
  29104. {
  29105. new
  29106. rows = cache_get_row_count(gConnection);
  29107. if (!rows)
  29108. {
  29109. SendErrorMessage(playerid, "There are no death logs to show.");
  29110. }
  29111. else
  29112. {
  29113. static
  29114. killer[24],
  29115. target[24],
  29116. reason[24],
  29117. date[32];
  29118. gListString = "Killer\tTarget\tReason\tDate";
  29119. for (new i = 0; i < rows; i ++)
  29120. {
  29121. cache_get_field_content(i, "Killer", killer);
  29122. cache_get_field_content(i, "Target", target);
  29123. cache_get_field_content(i, "Reason", reason);
  29124. cache_get_field_content(i, "Date", date);
  29125. format(gListString, sizeof(gListString), "%s\n%s\t%s\t%s\t%s", gListString, killer, target, reason, date);
  29126. gListedItems[playerid][i] = cache_get_field_content_int(i, "ID");
  29127. }
  29128. Dialog_Show(playerid, DeathLogs, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Death Logs", gListString, "Select", "Exit");
  29129. }
  29130. }
  29131. forward OnPlayerShowBanLogs(playerid);
  29132. public OnPlayerShowBanLogs(playerid)
  29133. {
  29134. new
  29135. rows = cache_get_row_count(gConnection);
  29136. if (!rows)
  29137. {
  29138. SendErrorMessage(playerid, "There are no ban logs to be shown.");
  29139. }
  29140. else
  29141. {
  29142. static
  29143. admin[24],
  29144. player[24],
  29145. reason[128],
  29146. date[32];
  29147. gListString = "Admin\tPlayer\tReason\tDate";
  29148. for (new i = 0; i < rows; i ++)
  29149. {
  29150. cache_get_field_content(i, "Admin", admin);
  29151. cache_get_field_content(i, "Player", player);
  29152. cache_get_field_content(i, "Reason", reason);
  29153. cache_get_field_content(i, "Date", date);
  29154. format(gListString, sizeof(gListString), "%s\n%s\t%s\t%s\t%s", gListString, admin, player, reason, date);
  29155. gListedItems[playerid][i] = cache_get_field_content_int(i, "ID");
  29156. }
  29157. Dialog_Show(playerid, BanLogs, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Ban Logs", gListString, "Select", "Exit");
  29158. }
  29159. }
  29160. forward OnPlayerListAliases(playerid, ip[]);
  29161. public OnPlayerListAliases(playerid, ip[])
  29162. {
  29163. new rows = cache_get_row_count(gConnection);
  29164. if (!rows)
  29165. {
  29166. SendErrorMessage(playerid, "There are no accounts listed under this IP.");
  29167. }
  29168. else
  29169. {
  29170. new username[MAX_PLAYER_NAME], date[32];
  29171. SendClientMessage(playerid, COLOR_WHITE, "-----------------------------------------------");
  29172. SendFormatMessage(playerid, COLOR_YELLOW, "Accounts (%s):", ip);
  29173. for (new i = 0; i < rows; i ++)
  29174. {
  29175. cache_get_field_content(i, "Username", username);
  29176. cache_get_field_content(i, "LoginDate", date);
  29177. SendInfoMessage(playerid, " * %s (last login: %s)", username, date);
  29178. }
  29179. SendClientMessage(playerid, COLOR_WHITE, "-----------------------------------------------");
  29180. }
  29181. }
  29182. forward OnPlayerListGPCI(playerid, gpci[]);
  29183. public OnPlayerListGPCI(playerid, gpci[])
  29184. {
  29185. new rows = cache_get_row_count(gConnection);
  29186. if (!rows)
  29187. {
  29188. SendErrorMessage(playerid, "There are no accounts listed under this GPCI.");
  29189. }
  29190. else
  29191. {
  29192. new username[MAX_PLAYER_NAME], date[32];
  29193. SendClientMessage(playerid, COLOR_WHITE, "-----------------------------------------------");
  29194. SendFormatMessage(playerid, COLOR_YELLOW, "Accounts (%s):", gpci);
  29195. for (new i = 0; i < rows; i ++)
  29196. {
  29197. cache_get_field_content(i, "Username", username);
  29198. cache_get_field_content(i, "LoginDate", date);
  29199. SendInfoMessage(playerid, " * %s (last login: %s)", username, date);
  29200. }
  29201. SendClientMessage(playerid, COLOR_WHITE, "-----------------------------------------------");
  29202. }
  29203. }
  29204. forward OnPlayerSetSupporter(playerid, player[], level);
  29205. public OnPlayerSetSupporter(playerid, player[], level)
  29206. {
  29207. if (!cache_get_row_count(gConnection))
  29208. {
  29209. SendErrorMessage(playerid, "The specified player doesn't exist.");
  29210. }
  29211. else
  29212. {
  29213. format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Supporter = %i WHERE Username = '%s'", level, mysql_escaped(player));
  29214. mysql_tquery(gConnection, gExecute);
  29215. SendSupporterMessage(COLOR_SAMP, "(Supporter) %s has offline set %s's Supporter level to %s.", ReturnNameEx(playerid, 0), player, GetSupporterLevel(level));
  29216. SendAdminMessage(COLOR_RED, "Admin: %s has offline set %s's Supporter level to %s.", ReturnNameEx(playerid, 0), player, GetSupporterLevel(level));
  29217. }
  29218. }
  29219. forward OnPlayerSetAdmin(playerid, player[], level);
  29220. public OnPlayerSetAdmin(playerid, player[], level)
  29221. {
  29222. if (!cache_get_row_count(gConnection))
  29223. {
  29224. SendErrorMessage(playerid, "The specified player doesn't exist.");
  29225. }
  29226. else
  29227. {
  29228. format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Admin = %i WHERE Username = '%s'", level, mysql_escaped(player));
  29229. mysql_tquery(gConnection, gExecute);
  29230. SendAdminMessage(COLOR_RED, "Admin: %s has offline set %s's admin level to %i.", ReturnNameEx(playerid, 0), player, level);
  29231. }
  29232. }
  29233. forward OnPlayerVehicleInfo(playerid, id);
  29234. public OnPlayerVehicleInfo(playerid, id)
  29235. {
  29236. new
  29237. owner[MAX_PLAYER_NAME];
  29238. if (!cache_get_row_count(gConnection))
  29239. {
  29240. owner = "Nobody";
  29241. }
  29242. else
  29243. {
  29244. cache_get_field_content(0, "Username", owner);
  29245. }
  29246. SendClientMessage(playerid, COLOR_WHITE, "----------------------------------------------------------------------------------------------");
  29247. SendFormatMessage(playerid, COLOR_YELLOW, "%s (ID: %i)", GetVehicleModelName(Vehicles[id][vModel]), Vehicles[id][vVehicle]);
  29248. SendFormatMessage(playerid, COLOR_WHITE, "Model: %s - Owner: %s - Faction: %s - Color 1: %i - Color 2: %i", GetVehicleModelName(Vehicles[id][vModel]), owner, GetFactionIDName(Vehicles[id][vFaction]), Vehicles[id][vColor1], Vehicles[id][vColor2]);
  29249. SendFormatMessage(playerid, COLOR_WHITE, "Plate: %s - Registered: %s - Rental: %s - Siren: %s - Alarm: %s", Vehicles[id][vPlate], Vehicles[id][vRegistered], (Vehicles[id][vRentable]) ? ("Yes") : ("No"), (Vehicles[id][vSiren]) ? ("Yes") : ("No"), (Vehicles[id][vAlarm]) ? ("Yes") : ("No"));
  29250. SendClientMessage(playerid, COLOR_WHITE, "----------------------------------------------------------------------------------------------");
  29251. }
  29252. forward OnPlayerGetOfflineIP(playerid, player[]);
  29253. public OnPlayerGetOfflineIP(playerid, player[])
  29254. {
  29255. new ip[16];
  29256. if (!cache_get_row_count(gConnection))
  29257. {
  29258. SendErrorMessage(playerid, "That specified account doesn't exist.");
  29259. }
  29260. else
  29261. {
  29262. cache_get_field_content(0, "IP", ip);
  29263. SendInfoMessage(playerid, "%s's IP address is: %s.", player, ip);
  29264. }
  29265. }
  29266. forward OnPlayerJailCheck(playerid, player[], reason[], minutes);
  29267. public OnPlayerJailCheck(playerid, player[], reason[], minutes)
  29268. {
  29269. if (!cache_get_row_count(gConnection))
  29270. {
  29271. SendErrorMessage(playerid, "That player doesn't exist or has a higher admin level.");
  29272. }
  29273. else
  29274. {
  29275. format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET JailType = 1, JailTime = %i WHERE Username = '%s'", minutes * 60, player);
  29276. mysql_tquery(gConnection, gExecute);
  29277. SendAdminMessage(COLOR_RED, "Admin: %s has offline jailed %s for %i minutes, reason: %s", ReturnNameEx(playerid, 0), player, minutes, reason);
  29278. }
  29279. }
  29280. forward OnPlayerBanCheck(playerid, player[], reason[]);
  29281. public OnPlayerBanCheck(playerid, player[], reason[])
  29282. {
  29283. new ip[16];
  29284. if (!cache_get_row_count(gConnection))
  29285. {
  29286. SendErrorMessage(playerid, "That player doesn't exist or has a higher admin level.");
  29287. }
  29288. else
  29289. {
  29290. cache_get_field_content(0, "IP", ip);
  29291. format(gExecute, sizeof(gExecute), "INSERT INTO rp_banlogs (Admin, Player, Reason, Date) VALUES('%s', '%s', '%s', NOW())", ReturnName(playerid), player, mysql_escaped(reason));
  29292. mysql_tquery(gConnection, gExecute);
  29293. format(gExecute, sizeof(gExecute), "INSERT INTO rp_blacklist (Player, IP, BannedBy, Date, Reason) VALUES('%s', '%s', '%s', NOW(), '%s')", player, ip, ReturnName(playerid), mysql_escaped(reason));
  29294. mysql_tquery(gConnection, gExecute);
  29295. SendAdminMessage(COLOR_RED, "Admin: %s has offline banned %s, reason: %s", ReturnNameEx(playerid, 0), player, reason);
  29296. }
  29297. }
  29298. forward OnFadeSetPosition(playerid);
  29299. public OnFadeSetPosition(playerid)
  29300. {
  29301. if (GetCurrentCompany(playerid) != INVALID_ID)
  29302. {
  29303. SendInfoMessage(playerid, "{CFCFCF}Use {33AA33}/buy{CFCFCF} for a list of products for sale.");
  29304. }
  29305. }
  29306. forward PackageReady(playerid, faction, type, price);
  29307. public PackageReady(playerid, faction, type, price)
  29308. {
  29309. if (Players[playerid][pFaction] == INVALID_ID || Players[playerid][pFaction] != faction || Factions[faction][fcType] != FACTION_ILLEGAL)
  29310. {
  29311. return 0;
  29312. }
  29313. else
  29314. {
  29315. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Unknown says: The package is ready. We have sent you more details.");
  29316. SendInfoMessage(playerid, "{33AA33}Hint: Use /locatepackage to find the location of your package.");
  29317. Players[playerid][pPackageType] = type;
  29318. Players[playerid][pPackageOrder] = PACKAGE_TYPE_NONE;
  29319. }
  29320. return 1;
  29321. }
  29322. forward RechargeTazer(playerid);
  29323. public RechargeTazer(playerid)
  29324. {
  29325. if (Players[playerid][pTazer])
  29326. {
  29327. GivePlayerWeapon(playerid, 23, 1);
  29328. }
  29329. RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_MISC);
  29330. }
  29331. forward ResetFaint(playerid);
  29332. public ResetFaint(playerid)
  29333. {
  29334. if (Players[playerid][pFainted])
  29335. {
  29336. Players[playerid][pFainted] = 0;
  29337. TogglePlayerControllable(playerid, 1);
  29338. ApplyAnimation(playerid, "PED", "getup_front", 4.1, 0, 0, 0, 0, 0, 1);
  29339. }
  29340. }
  29341. forward DeleteObject(objectid);
  29342. public DeleteObject(objectid)
  29343. {
  29344. DestroyDynamicObject(objectid);
  29345. }
  29346. forward UnfreezePlayer(playerid);
  29347. public UnfreezePlayer(playerid)
  29348. {
  29349. TogglePlayerControllable(playerid, 1);
  29350. }
  29351. forward RefuelCycle(playerid, vehicleid, pump);
  29352. public RefuelCycle(playerid, vehicleid, pump)
  29353. {
  29354. new
  29355. string[64];
  29356. if (!IsPlayerLoggedIn(playerid))
  29357. {
  29358. return 0;
  29359. }
  29360. else if (!IsValidVehicle(vehicleid))
  29361. {
  29362. return 0;
  29363. }
  29364. else if (!IsValidPumpID(pump) || !IsVehicleInRangeOfPoint(vehicleid, 10.0, GasPumps[pump][gpSpawn][0], GasPumps[pump][gpSpawn][1], GasPumps[pump][gpSpawn][2]))
  29365. {
  29366. return StopRefuel(playerid);
  29367. }
  29368. else
  29369. {
  29370. Players[playerid][pGasPrice] += 5;
  29371. GasPumps[pump][gpFuel] -= 0.2;
  29372. VehicleInformation[vehicleid][vFuel]++;
  29373. UpdateFuelGauge(vehicleid);
  29374. format(string, sizeof(string), "ID: %i\nGasoline: %.1f gallons\nUse /refuel to refill vehicle", pump, GasPumps[pump][gpFuel]);
  29375. UpdateDynamic3DTextLabelText(GasPumps[pump][gpText], COLOR_GREY, string);
  29376. if (VehicleInformation[vehicleid][vFuel] > 99 || GasPumps[pump][gpFuel] < 1.0)
  29377. {
  29378. StopRefuel(playerid);
  29379. }
  29380. }
  29381. return 1;
  29382. }
  29383. forward PlayerRecover(playerid);
  29384. public PlayerRecover(playerid)
  29385. {
  29386. if (Players[playerid][pDeathState] != DEATH_STATE_NONE)
  29387. {
  29388. if (IsValidDynamic3DTextLabel(Players[playerid][pInjuredText]))
  29389. {
  29390. DestroyDynamic3DTextLabel(Players[playerid][pInjuredText]);
  29391. Players[playerid][pInjuredText] = INVALID_3DTEXT_ID;
  29392. }
  29393. Players[playerid][pDeathState] = DEATH_STATE_NONE;
  29394. RemoveMoney(playerid, 500);//Players[playerid][pPocketMoney] -= 500;
  29395. SetPlayerPos(playerid, 2507.2341, -1706.3156, 2104.7358);
  29396. SetPlayerFacingAngle(playerid, 90.0000);
  29397. SetCameraBehindPlayer(playerid);
  29398. TogglePlayerControllable(playerid, 1);
  29399. ClearAnimations(playerid, 1);
  29400. ResetLastShots(playerid);
  29401. PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
  29402. SendInfoMessage(playerid, "You have recovered at the hospital for $500.");
  29403. Statistics[playerid][sHospitalFees] += 500;
  29404. }
  29405. return 1;
  29406. }
  29407. forward SelectTD(playerid);
  29408. public SelectTD(playerid)
  29409. {
  29410. SelectTextDraw(playerid, -1);
  29411. }
  29412. forward BeginWorkout(playerid, type);
  29413. public BeginWorkout(playerid, type)
  29414. {
  29415. PlayerTextDrawSetString(playerid, Players[playerid][pText][60], "0");
  29416. PlayerTextDrawSetString(playerid, Players[playerid][pText][62], "0");
  29417. switch (type)
  29418. {
  29419. case WORKOUT_DUMBELLS:
  29420. {
  29421. PlayerTextDrawSetString(playerid, Players[playerid][pText][59], "Reps");
  29422. ShowPlayerTextDraws(playerid, 58, 60);
  29423. gWeights[playerid][0] = SetAttachedObject(playerid, 3072, 5, 0.0, 0.0, 0.0);
  29424. gWeights[playerid][1] = SetAttachedObject(playerid, 3071, 6, 0.0, 0.0, 0.0);
  29425. ShowPlayerProgressBar(playerid, Players[playerid][pBars][0]);
  29426. SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], 0.0);
  29427. }
  29428. case WORKOUT_TREADMILL:
  29429. {
  29430. PlayerTextDrawSetString(playerid, Players[playerid][pText][59], "Level");
  29431. PlayerTextDrawFormatString(playerid, Players[playerid][pText][60], "%i", Players[playerid][pSpeedLevel]);
  29432. ShowPlayerProgressBar(playerid, Players[playerid][pBars][0]);
  29433. SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], 50.0);
  29434. PlayerPlaySound(playerid, 17801, 0.0, 0.0, 0.0);
  29435. ShowPlayerTextDraws(playerid, 58, 62);
  29436. }
  29437. }
  29438. Players[playerid][pWorkout] = type;
  29439. Players[playerid][pDistanceRan] = 0;
  29440. Players[playerid][pReps] = 0;
  29441. return TogglePlayerControllable(playerid, 0);
  29442. }
  29443. forward DecreasePower(playerid);
  29444. public DecreasePower(playerid)
  29445. {
  29446. new
  29447. Float:value = GetPlayerProgressBarValue(playerid, Players[playerid][pBars][0]);
  29448. switch (Players[playerid][pWorkout])
  29449. {
  29450. case WORKOUT_DUMBELLS:
  29451. {
  29452. if (value > 0.0)
  29453. {
  29454. SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], value - 3.0);
  29455. }
  29456. }
  29457. case WORKOUT_TREADMILL:
  29458. {
  29459. if (value > 0.0)
  29460. {
  29461. SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], value - (Players[playerid][pSpeedLevel] + 8));
  29462. }
  29463. else
  29464. {
  29465. StopWorkout(playerid);
  29466. ApplyAnimation(playerid, "GYMNASIUM", "gym_tread_falloff", 4.1, 0, 0, 0, 0, 0, 1);
  29467. }
  29468. }
  29469. }
  29470. }
  29471. forward SetPosition(playerid, Float:x, Float:y, Float:z, Float:angle, interior, world, freeze);
  29472. public SetPosition(playerid, Float:x, Float:y, Float:z, Float:angle, interior, world, freeze)
  29473. {
  29474. if (Players[playerid][pSetPosition])
  29475. {
  29476. SetPlayerPosEx(playerid, x, y, z, angle, interior, world);
  29477. SetCameraBehindPlayer(playerid);
  29478. Players[playerid][pSetPosition] = 0;
  29479. if (!freeze)
  29480. {
  29481. TogglePlayerControllable(playerid, true);
  29482. }
  29483. else
  29484. {
  29485. SetFreezePos(playerid, x, y, z, 4500);
  29486. }
  29487. }
  29488. }
  29489. forward OnTagAdded(tag);
  29490. public OnTagAdded(tag)
  29491. {
  29492. Tags[tag][tagID] = cache_insert_id(gConnection);
  29493. SaveTag(tag);
  29494. }
  29495. forward OnSprayTagAdded(spray);
  29496. public OnSprayTagAdded(spray)
  29497. {
  29498. SprayTags[spray][sID] = cache_insert_id(gConnection);
  29499. SaveSprayTag(spray);
  29500. }
  29501. forward OnObjectAdded(object);
  29502. public OnObjectAdded(object)
  29503. {
  29504. Objects[object][oID] = cache_insert_id(gConnection);
  29505. SaveObject(object);
  29506. }
  29507. forward OnAutoShopAdded(id);
  29508. public OnAutoShopAdded(id)
  29509. {
  29510. AutoShops[id][asID] = cache_insert_id(gConnection);
  29511. }
  29512. forward OnGateAdded(gate);
  29513. public OnGateAdded(gate)
  29514. {
  29515. Gates[gate][gID] = cache_insert_id(gConnection);
  29516. SaveGate(gate);
  29517. }
  29518. forward OnLabelAdded(label);
  29519. public OnLabelAdded(label)
  29520. {
  29521. Labels[label][lID] = cache_insert_id(gConnection);
  29522. UpdateLabel(label);
  29523. SaveLabel(label);
  29524. }
  29525. forward OnTeleportAdded(teleport);
  29526. public OnTeleportAdded(teleport)
  29527. {
  29528. Teleports[teleport][tpID] = cache_insert_id(gConnection);
  29529. }
  29530. forward OnArrestPointAdded(point);
  29531. public OnArrestPointAdded(point)
  29532. {
  29533. ArrestPoints[point][apID] = cache_insert_id(gConnection);
  29534. }
  29535. forward OnPlayerTakeGun(playerid, id);
  29536. public OnPlayerTakeGun(playerid, id)
  29537. {
  29538. if (cache_get_row_count(gConnection))
  29539. {
  29540. new weapon = cache_get_field_content_int(0, "gunType");
  29541. new quantity = cache_get_field_content_int(0, "gunQuantity");
  29542. if (!IsSufficientSpace(playerid, GetWeaponItemName(weapon)))
  29543. {
  29544. SendErrorMessage(playerid, "{CFCFCF}There is no more room in your inventory.");
  29545. }
  29546. else
  29547. {
  29548. quantity--;
  29549. AddItemToInventory(playerid, GetWeaponItemName(weapon), 100);
  29550. if (quantity) {
  29551. format(gExecute, sizeof(gExecute), "UPDATE rp_crateguns SET gunQuantity = gunQuantity - 1 WHERE gunID = %i", id);
  29552. } else {
  29553. format(gExecute, sizeof(gExecute), "DELETE FROM rp_crateguns WHERE gunID = %i", id);
  29554. }
  29555. mysql_tquery(gConnection, gExecute);
  29556. SendInfoMessage(playerid, "{CFCFCF}You have taken a {33AA33}%s{CFCFCF} from the weapon crate.", GetWeaponItemName(weapon));
  29557. }
  29558. }
  29559. }
  29560. /*
  29561. GetAmmunitionType(weaponid)
  29562. {
  29563. new
  29564. type[16];
  29565. switch (weaponid)
  29566. {
  29567. case 22, 23, 28, 29, 32:
  29568. type = "9x19mm";
  29569. case 24:
  29570. type = ".50cal";
  29571. case 25, 26, 27:
  29572. type = "12 Gauge";
  29573. case 30:
  29574. type = "7.62x39mm";
  29575. case 31:
  29576. type = "5.56x45mm";
  29577. case 33, 34:
  29578. type = "7.62x51mm";
  29579. default:
  29580. type = "Unknown";
  29581. }
  29582. return type;
  29583. }
  29584. */
  29585. /*
  29586. {".50cal", 2061, 2, true, true},
  29587. {"9x19mm", 2061, 2, true, true},
  29588. {"5.56x45mm", 2061, 2, true, true},
  29589. {"7.62x39mm", 2061, 2, true, true},
  29590. {"7.62x51mm", 2061, 2, true, true},
  29591. {"12 Gauge", 2061, 2, true, true}
  29592. */
  29593. forward OnPlayerOpenCrate(playerid, itemid);
  29594. public OnPlayerOpenCrate(playerid, itemid)
  29595. {
  29596. new
  29597. rows = cache_get_row_count(gConnection);
  29598. if (!rows)
  29599. {
  29600. SendErrorMessage(playerid, "This weapon crate is empty.");
  29601. }
  29602. else
  29603. {
  29604. new string[512];
  29605. for (new i = 0; i < rows; i ++) {
  29606. new weapon = cache_get_field_content_int(i, "gunType");
  29607. new quantity = cache_get_field_content_int(i, "gunQuantity");
  29608. format(string, sizeof(string), "%s\n%s (%i left)", string, GetWeapon(weapon), quantity);
  29609. gListedItems[playerid][i] = cache_get_field_content_int(i, "gunID");
  29610. }
  29611. Players[playerid][pSelected] = itemid;
  29612. Dialog_Show(playerid, ShowGuns, DIALOG_STYLE_LIST, "{FFFFFF}Select Gun", string, "Take", "Cancel");
  29613. }
  29614. }
  29615. forward OnPlayerCheckPlate(playerid, plate[]);
  29616. public OnPlayerCheckPlate(playerid, plate[])
  29617. {
  29618. new id = GetVehicleID(GetPlayerVehicleID(playerid));
  29619. if (id == INVALID_ID)
  29620. {
  29621. return 0;
  29622. }
  29623. else if (cache_get_row_count(gConnection))
  29624. {
  29625. SendErrorMessage(playerid, "The specified license plate is already in use.");
  29626. }
  29627. else
  29628. {
  29629. new engine, lights, alarm, doors, bonnet, boot, objective;
  29630. GetVehicleParamsEx(Vehicles[id][vVehicle], engine, lights, alarm, doors, bonnet, boot, objective);
  29631. strcpy(Vehicles[id][vPlate], plate, 32);
  29632. SaveVehicle(id);
  29633. ResyncVehicle(Vehicles[id][vVehicle]);
  29634. PutPlayerInVehicle(playerid, Vehicles[id][vVehicle], 0);
  29635. SetVehicleParamsEx(Vehicles[id][vVehicle], engine, lights, alarm, doors, bonnet, boot, objective);
  29636. SendInfoMessage(playerid, "You have changed your license plate to '%s' for {33CC33}$400{FFFFFF}.", plate);
  29637. RemoveMoney(playerid, 400);
  29638. }
  29639. return 1;
  29640. }
  29641. ShowCallsigns(playerid)
  29642. {
  29643. gListString = "Callsign\tName";
  29644. foreach (new i : Player)
  29645. {
  29646. if (Players[playerid][pFaction] == Players[i][pFaction])
  29647. {
  29648. if (Players[i][pDuty])
  29649. {
  29650. format(gListString, sizeof(gListString), "%s\n%s\t%s", gListString, Players[i][pCallsign], ReturnNameEx(i, 0));
  29651. }
  29652. }
  29653. }
  29654. Dialog_Show(playerid, CallsignRoster, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Onduty", gListString, "Close", "");
  29655. }
  29656. forward OnPlayerViewRoster(playerid);
  29657. public OnPlayerViewRoster(playerid)
  29658. {
  29659. static
  29660. username[24],
  29661. date[32],
  29662. rows,
  29663. rank;
  29664. gListString = "Name\tRank\tLast Seen";
  29665. rows = cache_get_row_count(gConnection);
  29666. for (new i = 0; i < rows; i ++)
  29667. {
  29668. rank = cache_get_field_content_int(i, "FactionRank");
  29669. cache_get_field_content(i, "Username", username);
  29670. cache_get_field_content(i, "LoginDate", date);
  29671. if (GetPlayerID(username) != INVALID_PLAYER_ID) {
  29672. format(gListString, sizeof(gListString), "%s\n%s\t%s\t{33CC33}Online{FFFFFF}", gListString, username, GetFactionRank(Players[playerid][pFaction], cache_get_field_content_int(i, "FactionRank")), date);
  29673. } else {
  29674. format(gListString, sizeof(gListString), "%s\n%s\t%s\t%s", gListString, username, GetFactionRank(Players[playerid][pFaction], rank), date);
  29675. }
  29676. }
  29677. Dialog_Show(playerid, Roster, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Faction Roster", gListString, "Close", "");
  29678. }
  29679. forward OnPlayerViewAdminRoster(playerid);
  29680. public OnPlayerViewAdminRoster(playerid)
  29681. {
  29682. static
  29683. username[24],
  29684. date[32],
  29685. rows,
  29686. level;
  29687. gListString = "Name\tLevel\tLast Seen";
  29688. rows = cache_get_row_count(gConnection);
  29689. for (new i = 0; i < rows; i ++)
  29690. {
  29691. level = cache_get_field_content_int(i, "Admin");
  29692. cache_get_field_content(i, "Username", username);
  29693. cache_get_field_content(i, "LoginDate", date);
  29694. if (GetPlayerID(username) != INVALID_PLAYER_ID) {
  29695. format(gListString, sizeof(gListString), "%s\n%s\t%i\t{33CC33}Online{FFFFFF}", gListString, username, level, date);
  29696. } else {
  29697. format(gListString, sizeof(gListString), "%s\n%s\t%i\t%s", gListString, username, level, date);
  29698. }
  29699. }
  29700. Dialog_Show(playerid, ARoster, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Admin Roster", gListString, "Close", "");
  29701. }
  29702. forward OnPlayerSelectNote(playerid);
  29703. public OnPlayerSelectNote(playerid)
  29704. {
  29705. if (cache_get_row_count(gConnection))
  29706. {
  29707. new subject[72], text[128];
  29708. Players[playerid][pSelected] = cache_get_field_content_int(0, "ID");
  29709. cache_get_field_content(0, "noteSubject", subject);
  29710. cache_get_field_content(0, "noteText", text);
  29711. format(subject, sizeof(subject), "{FFFFFF}%s", subject);
  29712. Dialog_Show(playerid, ViewNote, DIALOG_STYLE_MSGBOX, subject, text, "Delete", "Back");
  29713. }
  29714. }
  29715. forward OnPlayerViewNotes(playerid);
  29716. public OnPlayerViewNotes(playerid)
  29717. {
  29718. static
  29719. subject[64],
  29720. rows;
  29721. rows = cache_get_row_count(gConnection);
  29722. gListString = "Add Note";
  29723. for (new i = 0; i < rows; i ++)
  29724. {
  29725. cache_get_field_content(i, "noteSubject", subject);
  29726. format(gListString, sizeof(gListString), "%s\n%s", gListString, subject);
  29727. gListedItems[playerid][i] = cache_get_field_content_int(i, "ID");
  29728. }
  29729. Dialog_Show(playerid, Notebook, DIALOG_STYLE_LIST, "{FFFFFF}My Notebook", gListString, "Select", "Cancel");
  29730. }
  29731. forward OnPlayerCheckAdminName(playerid, name[]);
  29732. public OnPlayerCheckAdminName(playerid, name[])
  29733. {
  29734. if (cache_get_row_count(gConnection))
  29735. {
  29736. Dialog_Show(playerid, AdminName, DIALOG_STYLE_INPUT, "{FFFFFF}Admin Name", "That name is already in use, please choose another.\n\nPlease input the admin name that you wish to use:", "Submit", "Cancel");
  29737. }
  29738. else
  29739. {
  29740. strcpy(Players[playerid][pAdminName], name, 24);
  29741. SaveAccount(playerid);
  29742. SendInfoMessage(playerid, "You have set your admin name to: %s.", name);
  29743. }
  29744. return 1;
  29745. }
  29746. forward OnPlayerCheckPassword(playerid);
  29747. public OnPlayerCheckPassword(playerid)
  29748. {
  29749. if (!cache_get_row_count(gConnection))
  29750. {
  29751. SendErrorMessage(playerid, "The password you have specified is not correct.");
  29752. }
  29753. else
  29754. {
  29755. Dialog_Show(playerid, NewPassword, DIALOG_STYLE_INPUT, "{FFFFFF}New Password", "Please input your new password below:", "Submit", "Cancel");
  29756. }
  29757. }
  29758. forward OnPlayerTraceAddress(playerid, address);
  29759. public OnPlayerTraceAddress(playerid, address)
  29760. {
  29761. if (!cache_get_row_count(gConnection))
  29762. {
  29763. Dialog_Show(playerid, MDC_AddressSearch, DIALOG_STYLE_INPUT, "{FFFFFF}Mobile Data Computer - Address Search", "Please enter the full address:", "Submit", "Cancel");
  29764. }
  29765. else
  29766. {
  29767. new
  29768. owner,
  29769. ownername[MAX_PLAYER_NAME],
  29770. value,
  29771. forsale,
  29772. Float:x,
  29773. Float:y,
  29774. Float:z,
  29775. string[512];
  29776. new adr[32];
  29777. owner = cache_get_field_content_int(0, "hOwner");
  29778. value = cache_get_field_content_int(0, "hValue");
  29779. forsale = cache_get_field_content_int(0, "hForSale");
  29780. x = cache_get_field_content_float(0, "hSpawnX");
  29781. y = cache_get_field_content_float(0, "hSpawnY");
  29782. z = cache_get_field_content_float(0, "hSpawnZ");
  29783. cache_get_field_content(0, "hOwnerName", ownername);
  29784. cache_get_field_content(0, "hAddress", adr);
  29785. if (!owner)
  29786. {
  29787. format(string, sizeof(string), "Information on %s:\n\nOwner: Nobody\nValue: %i\nFor sale: %s\n Location: %s", adr, value, (forsale) ? ("Yes") : ("No"), GetZoneName(x,y,z));
  29788. }
  29789. else
  29790. {
  29791. format(string, sizeof(string), "Information on %s:\n\nOwner: %s\nValue: %i\nFor sale: %s\n Location: %s", adr, ownername, value, (forsale) ? ("Yes") : ("No"), GetZoneName(x,y,z));
  29792. }
  29793. for (new i = 0; i < MAX_HOUSES; i ++)
  29794. {
  29795. if (IsValidHouseID(i) && !strcmp(Houses[i][hAddress], adr, true))
  29796. {
  29797. Players[playerid][pSelected] = i;
  29798. }
  29799. }
  29800. Dialog_Show(playerid, HouseInfo, DIALOG_STYLE_MSGBOX, "{FFFFFF}House Information", string, "Trace", "Cancel");
  29801. }
  29802. return 1;
  29803. }
  29804. forward OnPlayerTraceSerial(playerid, serial);
  29805. public OnPlayerTraceSerial(playerid, serial)
  29806. {
  29807. if (!cache_get_row_count(gConnection))
  29808. {
  29809. Dialog_Show(playerid, MDC_SerialSearch, DIALOG_STYLE_INPUT, "{FFFFFF}Mobile Data Computer - Serial Search", "Please enter the full serial number:", "Submit", "Cancel");
  29810. }
  29811. else
  29812. {
  29813. new
  29814. owner[MAX_PLAYER_NAME],
  29815. registrar[32],
  29816. weapon[32],
  29817. date[32],
  29818. string[512]
  29819. ;
  29820. cache_get_field_content(0, "Weapon", weapon);
  29821. cache_get_field_content(0, "Owner", owner);
  29822. cache_get_field_content(0, "Registrar", registrar);
  29823. cache_get_field_content(0, "Date", date);
  29824. format(string, sizeof(string), "Serial #%i matches a record in the database:\n\nWeapon: %s\nOwner: %s\nRegistrar: %s\nDate: %s", serial, weapon, owner, registrar, date);
  29825. Dialog_Show(playerid, SerialInfo, DIALOG_STYLE_MSGBOX, "{FFFFFF}Serial Information", string, "Back", "");
  29826. }
  29827. return 1;
  29828. }
  29829. forward OnPlayerTracePlate(playerid, vehicle, plate[]);
  29830. public OnPlayerTracePlate(playerid, vehicle, plate[])
  29831. {
  29832. new
  29833. owner[MAX_PLAYER_NAME],
  29834. string[512];
  29835. Players[playerid][pSelected] = vehicle;
  29836. if (cache_get_row_count(gConnection))
  29837. {
  29838. cache_get_field_content(0, "Username", owner);
  29839. format(string, sizeof(string), "'%s' is registered to the following vehicle:\n\nVehicle: %s\nRegistered By: %s\nLicense Plate: %s\nRegistered On: %s", plate, GetVehicleModelName(Vehicles[vehicle][vModel]), owner, Vehicles[vehicle][vPlate], Vehicles[vehicle][vRegistered]);
  29840. Dialog_Show(playerid, PlateInfo, DIALOG_STYLE_MSGBOX, "{FFFFFF}Result Found", string, "Cancel", "Cancel");
  29841. }
  29842. else
  29843. {
  29844. new company = GetVehicleCompany(vehicle);
  29845. if (IsValidCompanyID(company))
  29846. {
  29847. format(string, sizeof(string), "'%s' is registered to the following vehicle:\n\nVehicle: %s\nRegistered By: %s\nLicense Plate: %s\nRegistered On: %s", plate, GetVehicleModelName(Vehicles[vehicle][vModel]), Companies[company][cName], Vehicles[vehicle][vPlate], Vehicles[vehicle][vRegistered]);
  29848. Dialog_Show(playerid, PlateInfo, DIALOG_STYLE_MSGBOX, "{FFFFFF}Result Found", string, "Cancel", "Cancel");
  29849. }
  29850. else
  29851. {
  29852. format(string, sizeof(string), "'%s' is registered to the following vehicle:\n\nVehicle: %s\nRegistered By: N/A\nLicense Plate: %s\nRegistered On: %s", plate, GetVehicleModelName(Vehicles[vehicle][vModel]), Vehicles[vehicle][vPlate], Vehicles[vehicle][vRegistered]);
  29853. Dialog_Show(playerid, PlateInfo, DIALOG_STYLE_MSGBOX, "{FFFFFF}Result Found", string, "Cancel", "Cancel");
  29854. }
  29855. }
  29856. return 1;
  29857. }
  29858. forward OnMDCViewInformationNewPrint(playerid);
  29859. public OnMDCViewInformationNewPrint(playerid)
  29860. {
  29861. if (cache_get_row_count(gConnection))
  29862. {
  29863. new origin[24], id, active, houses, cars, carlic, gunlic;
  29864. cache_get_field_content(0, "Origin", origin);
  29865. id = cache_get_field_content_int(0, "ID");
  29866. //age = cache_get_field_content_int(0, "Age");
  29867. active = cache_get_field_content_int(0, "Warrants");//conejo
  29868. //charges = cache_get_field_content_int(0, "Charges");
  29869. carlic = cache_get_field_content_int(0, "CarLicense");
  29870. gunlic = cache_get_field_content_int(0, "GunLicense");
  29871. //total = cache_get_field_content_int(0, "TotalWarrants");
  29872. //phone = cache_get_field_content_int(0, "Phone");
  29873. //format(string, sizeof(string), "{6688FF}NAME:{FFFFFF} %s\n{6688FF}ADDRESS:{FFFFFF}", gTargetName[playerid]);
  29874. SendFormatMessage(playerid, COLOR_WHITE, "{6688FF}NAME:{FFFFFF} %s", gTargetName[playerid]);
  29875. SendFormatMessage(playerid, COLOR_WHITE, " ");
  29876. SendFormatMessage(playerid, COLOR_WHITE, "{6688FF}ADDRESS:{FFFFFF}");
  29877. for (new i = 0; i < MAX_HOUSES; i ++)
  29878. {
  29879. if (IsValidHouseID(i) && Houses[i][hOwner] == id)
  29880. {
  29881. if (houses > 5)
  29882. {
  29883. //strcat(string, "\n- Too many addresses. See 'options'.");
  29884. SendFormatMessage(playerid, COLOR_WHITE, "- Too many addresses to list.");
  29885. }
  29886. else
  29887. {
  29888. //format(string, sizeof(string), "%s\n%i. %s (%s)", string, ++houses, Houses[i][hAddress], GetZoneName(Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2]));
  29889. SendFormatMessage(playerid, COLOR_WHITE, "%i. %s (%s)", ++houses, Houses[i][hAddress], GetZoneName(Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2]));
  29890. }
  29891. }
  29892. }
  29893. if (!houses)
  29894. {
  29895. //strcat(string, "\n- None found.");
  29896. SendFormatMessage(playerid, COLOR_WHITE, "- None found");
  29897. }
  29898. //strcat(string, "\n\n{6688FF}VEHICLES:{FFFFFF}");
  29899. SendFormatMessage(playerid, COLOR_WHITE, " ");
  29900. SendFormatMessage(playerid, COLOR_WHITE, "{6688FF}VEHICLES:{FFFFFF}");
  29901. for (new i = 0; i < MAX_CARS; i ++)
  29902. {
  29903. if (IsValidVehicleID(i) && Vehicles[i][vOwner] == id)
  29904. {
  29905. if (cars > 5)
  29906. {
  29907. SendFormatMessage(playerid, COLOR_WHITE, "- Too many vehicles to list.");
  29908. }
  29909. else
  29910. {
  29911. //format(string, sizeof(string), "%s\n%i. %s (%s)", string, ++cars, GetVehicleModelName(Vehicles[i][vModel]), Vehicles[i][vPlate]);
  29912. SendFormatMessage(playerid, COLOR_WHITE, "%i. %s (%s)", ++cars, GetVehicleModelName(Vehicles[i][vModel]), Vehicles[i][vPlate]);
  29913. }
  29914. }
  29915. }
  29916. if (!cars)
  29917. {
  29918. //strcat(string, "\n- No vehicles available.");
  29919. SendFormatMessage(playerid, COLOR_WHITE, "- None found.");
  29920. }
  29921. //format(string, sizeof(string), "%s\n\n{6688FF}LICENSES:{FFFFFF} Drivers: %s, Weapons: %s\n", string, (carlic) ? ("Yes") : ("No"), (gunlic) ? ("Yes") : ("No"));
  29922. SendFormatMessage(playerid, COLOR_WHITE, " ");
  29923. SendFormatMessage(playerid, COLOR_WHITE, "{6688FF}LICENSES:{FFFFFF} Drivers: %s, Weapons: %s", (carlic) ? ("Yes") : ("No"), (gunlic) ? ("Yes") : ("No"));
  29924. if (active > 2)
  29925. {
  29926. //format(string, sizeof(string), "%s\n{6688FF}This person is linked to %i warrants, see 'options'.", string, active);
  29927. SendFormatMessage(playerid, COLOR_WHITE, "{6688FF}This person is linked to %i warrants.", active);
  29928. }
  29929. if (active == 1)
  29930. {
  29931. //strcat(string, "\n{6688FF}This person is linked to a warrant, see 'options'.");
  29932. SendFormatMessage(playerid, COLOR_WHITE, "{6688FF}This person is linked to a warrant.");
  29933. }
  29934. //strcat(string, "\n\n{6688FF}CHARGES:{FFFFFF}\nThis person have no charges.");
  29935. SendFormatMessage(playerid, COLOR_WHITE, " ");
  29936. SendFormatMessage(playerid, COLOR_WHITE, "{6688FF}CHARGES:{FFFFFF}");
  29937. SendFormatMessage(playerid, COLOR_WHITE, "This person have no charges.");
  29938. //Dialog_Show(playerid, MDC_Info, DIALOG_STYLE_MSGBOX, "{FFFFFF}More Information", string, "Options", "Back");
  29939. }
  29940. return 1;
  29941. }
  29942. forward OnMDCViewInformationNew(playerid);
  29943. public OnMDCViewInformationNew(playerid)
  29944. {
  29945. if (cache_get_row_count(gConnection))
  29946. {
  29947. new origin[24], string[1024], id, age, active, houses, cars, carlic, gunlic, phone, charges;
  29948. cache_get_field_content(0, "Origin", origin);
  29949. id = cache_get_field_content_int(0, "ID");
  29950. age = cache_get_field_content_int(0, "Age");
  29951. active = cache_get_field_content_int(0, "Warrants");
  29952. charges = cache_get_field_content_int(0, "Charges");
  29953. carlic = cache_get_field_content_int(0, "CarLicense");
  29954. gunlic = cache_get_field_content_int(0, "GunLicense");
  29955. // total = cache_get_field_content_int(0, "TotalWarrants");
  29956. phone = cache_get_field_content_int(0, "PhoneLastKnown");
  29957. format(string, sizeof(string), "{6688FF}NAME:{FFFFFF} %s\n{6688FF}AGE:{FFFFFF} %i\n{6688FF}ORIGIN:{FFFFFF} %s\n{6688FF}PHONE:{FFFFFF} %i\n\n{6688FF}ADDRESS:{FFFFFF}", gTargetName[playerid], age, origin, phone);
  29958. for (new i = 0; i < MAX_HOUSES; i ++)
  29959. {
  29960. if (IsValidHouseID(i) && Houses[i][hOwner] == id)
  29961. {
  29962. if (houses > 5)
  29963. {
  29964. strcat(string, "\n- Too many addresses. See 'options'.");
  29965. }
  29966. else
  29967. {
  29968. format(string, sizeof(string), "%s\n%i. %s (%s)", string, ++houses, Houses[i][hAddress], GetZoneName(Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2]));
  29969. }
  29970. }
  29971. }
  29972. if (!houses)
  29973. {
  29974. strcat(string, "\n- None found.");
  29975. }
  29976. strcat(string, "\n\n{6688FF}VEHICLES:{FFFFFF}");
  29977. for (new i = 0; i < MAX_CARS; i ++)
  29978. {
  29979. if (IsValidVehicleID(i) && Vehicles[i][vOwner] == id)
  29980. {
  29981. if (cars > 5)
  29982. {
  29983. strcat(string, "\n- Too many vehicles. See 'options'.");
  29984. }
  29985. else
  29986. {
  29987. format(string, sizeof(string), "%s\n%i. %s (%s)", string, ++cars, GetVehicleModelName(Vehicles[i][vModel]), Vehicles[i][vPlate]);
  29988. }
  29989. }
  29990. }
  29991. if (!cars)
  29992. {
  29993. strcat(string, "\n- No vehicles available.");
  29994. }
  29995. format(string, sizeof(string), "%s\n\n{6688FF}LICENSES:{FFFFFF} Drivers: %s, Weapons: %s\n", string, (carlic) ? ("Yes") : ("No"), (gunlic) ? ("Yes") : ("No"));
  29996. if (active > 2)
  29997. {
  29998. format(string, sizeof(string), "%s\n{6688FF}This person is linked to %i warrants, see 'options'.", string, active);
  29999. }
  30000. if (active == 1)
  30001. {
  30002. strcat(string, "\n{6688FF}This person is linked to a warrant, see 'options'.");
  30003. }
  30004. strcat(string, "\n\n{6688FF}CHARGES:{FFFFFF}");
  30005. if (charges < 1)
  30006. {
  30007. strcat(string, "\nThis person has no charges.");
  30008. }
  30009. else if (charges >= 1)
  30010. {
  30011. format(string, sizeof(string), "%s\n{6688FF}This person has %i charges. 'options'.", string, charges);
  30012. }
  30013. Dialog_Show(playerid, MDC_Info, DIALOG_STYLE_MSGBOX, "{FFFFFF}More Information", string, "Options", "Back");
  30014. }
  30015. return 1;
  30016. }
  30017. CMD:charges(playerid, params[])
  30018. {
  30019. SendInfoMessage(playerid, "%i charges", Players[playerid][pCharges]);
  30020. return 1;
  30021. }
  30022. forward OnMDCViewInformation(playerid);
  30023. public OnMDCViewInformation(playerid)
  30024. {
  30025. if (cache_get_row_count(gConnection))
  30026. {
  30027. new origin[24], string[512], id, age, active, total, houses, cars, carlic, gunlic;
  30028. cache_get_field_content(0, "Origin", origin);
  30029. id = cache_get_field_content_int(0, "ID");
  30030. age = cache_get_field_content_int(0, "Age");
  30031. active = cache_get_field_content_int(0, "Warrants");
  30032. carlic = cache_get_field_content_int(0, "CarLicense");
  30033. gunlic = cache_get_field_content_int(0, "GunLicense");
  30034. total = cache_get_field_content_int(0, "TotalWarrants");
  30035. format(string, sizeof(string), "{6688FF}Information:{FFFFFF}\nName: %s\nAge: %i years old\nOrigin: %s\nActive Warrants: %i\nTotal Warrants: %i\nCar License: %s\nGun License: %s\n\n{6688FF}Houses:{FFFFFF}", gTargetName[playerid], age, origin, active, total, (carlic) ? ("Yes") : ("No"), (gunlic) ? ("Yes") : ("No"));
  30036. for (new i = 0; i < MAX_HOUSES; i ++)
  30037. {
  30038. if (IsValidHouseID(i) && Houses[i][hOwner] == id)
  30039. {
  30040. format(string, sizeof(string), "%s\n%i. %s (%s)", string, ++houses, Houses[i][hAddress], GetZoneName(Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2]));
  30041. }
  30042. }
  30043. if (!houses)
  30044. {
  30045. strcat(string, "\n- No houses available.");
  30046. }
  30047. strcat(string, "\n\n{6688FF}Vehicles:{FFFFFF}");
  30048. for (new i = 0; i < MAX_CARS; i ++)
  30049. {
  30050. if (IsValidVehicleID(i) && Vehicles[i][vOwner] == id)
  30051. {
  30052. format(string, sizeof(string), "%s\n%i. %s (%s)", string, ++cars, GetVehicleModelName(Vehicles[i][vModel]), Vehicles[i][vPlate]);
  30053. }
  30054. }
  30055. if (!cars)
  30056. {
  30057. strcat(string, "\n- No vehicles available.");
  30058. }
  30059. Dialog_Show(playerid, MDCInfo, DIALOG_STYLE_MSGBOX, "{FFFFFF}More Information", string, "Back", "");
  30060. }
  30061. return 1;
  30062. }
  30063. CMD:arrest(playerid, params[])
  30064. {
  30065. new targetid, time;
  30066. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  30067. {
  30068. return SendErrorMessage(playerid, "You are not part of the law enforcement.");
  30069. }
  30070. else if (sscanf(params, "ui", targetid, time))
  30071. {
  30072. return SendSyntaxMessage(playerid, "/arrest [playerid/name] (minutes)");
  30073. }
  30074. else if (!IsPlayerConnected(targetid))
  30075. {
  30076. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  30077. }
  30078. else if (IsPlayerNPC(targetid))
  30079. {
  30080. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  30081. }
  30082. else if (!IsPlayerLoggedIn(targetid))
  30083. {
  30084. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  30085. }
  30086. else if (!IsPlayerInRangeOfPlayer(playerid, targetid))
  30087. {
  30088. return SendErrorMessage(playerid, "The specified target is not near you.");
  30089. }
  30090. else if (Players[targetid][pJailType] > 0)
  30091. {
  30092. return SendErrorMessage(playerid, "The specified target is already in jail.");
  30093. }
  30094. else if (time < 1 || time > 120)
  30095. {
  30096. return SendErrorMessage(playerid, "The specified time must be between 1 and 120 minutes.");
  30097. }
  30098. else if (GetClosestArrestPoint(playerid) == INVALID_ID)
  30099. {
  30100. return SendErrorMessage(playerid, "You are not near any arrest point.");
  30101. }
  30102. else
  30103. {
  30104. format(gExecute, sizeof(gExecute), "SELECT Charges FROM rp_accounts WHERE Username = '%s'", ReturnName(targetid));
  30105. mysql_tquery(gConnection, gExecute, "OnPlayerArrest_GetCharges", "ii", playerid, targetid);//h�r
  30106. }
  30107. return 1;
  30108. }
  30109. forward OnPlayerArrest_GetCharges(playerid, targetid);
  30110. public OnPlayerArrest_GetCharges(playerid, targetid)
  30111. {
  30112. if (cache_get_row_count(gConnection))
  30113. {
  30114. new charges = cache_get_field_content_int(0, "Charges");
  30115. if(charges == 0)
  30116. {
  30117. SendErrorMessage(playerid, "This player doesn't have any charges.");
  30118. }
  30119. else
  30120. {
  30121. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_charges WHERE Suspect = '%s' ORDER BY `ChargeID` DESC LIMIT %i", ReturnName(targetid), charges);
  30122. mysql_tquery(gConnection, gExecute, "OnPlayerArrest_ListCharges", "ii", playerid, targetid);
  30123. }
  30124. }
  30125. return 1;
  30126. }
  30127. forward OnPlayerArrest_ListCharges(playerid, targetid);
  30128. public OnPlayerArrest_ListCharges(playerid, targetid)
  30129. {
  30130. new
  30131. rows = cache_get_row_count(gConnection);
  30132. if (!rows)
  30133. {
  30134. SendErrorMessage(playerid, "This player doesn't have any active charges.");
  30135. ShowMDCPlayerMenuNew(playerid);
  30136. }
  30137. else
  30138. {
  30139. //new reason[128], string[1024];
  30140. new reason[128];
  30141. new time = 0;
  30142. for (new i = 0; i < rows; i ++)
  30143. {
  30144. cache_get_field_content(i, "Reason", reason);
  30145. new chargeid = cache_get_field_content_int(i, "ChargeID");
  30146. new chargecat = cache_get_field_content_int(i, "ChargeCat");
  30147. time += GetArrestTime(chargecat, chargeid);
  30148. }
  30149. SendFactionMessage(Players[playerid][pFaction], COLOR_RADIO, "** %s has arrested %s at the prison for %i minutes. **", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), time);
  30150. SendInfoMessage(targetid, "You have been imprisoned at the prison for %i minutes.", time);
  30151. Players[targetid][pJailType] = 2;
  30152. Players[targetid][pJailTime] = time * 60;
  30153. //SendInfoMessage(playerid, "You have cleared %s of all charges.", gTargetName[playerid]);
  30154. //new targetid = GetPlayerID(gTargetName[playerid]);
  30155. //ShowMDCPlayerMenu(playerid);
  30156. format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Charges = 0 WHERE Username = '%s'", gTargetName[playerid]);
  30157. mysql_tquery(gConnection, gExecute);
  30158. if (IsPlayerConnected(targetid))
  30159. {
  30160. Players[targetid][pCharges] = 0;
  30161. }
  30162. Players[playerid][pPaycheck] += Random(500,1000);
  30163. ResetPlayer(targetid);
  30164. SpawnPlayerInJail(targetid);
  30165. new notereason[128];
  30166. format(notereason, sizeof(notereason), "Arrested: %i minutes", time );
  30167. format(gExecute, sizeof(gExecute), "INSERT INTO rp_anotes (Player, PlayerName, Reason, Date, IssuerID, Issuer) VALUES(%i, '%s', '%s', NOW(), %i, '%s')", Players[targetid][pID], ReturnName(targetid), mysql_escaped(notereason), Players[playerid][pID], ReturnName(playerid));
  30168. mysql_tquery(gConnection, gExecute);
  30169. format(gExecute, sizeof(gExecute), "INSERT INTO rp_arrestlogs (Officer, Player, Date, Time) VALUES('%s', '%s', NOW(), %i)", ReturnName(playerid), ReturnName(targetid), time);
  30170. mysql_tquery(gConnection, gExecute);
  30171. new log[128];
  30172. format(log, sizeof(log), "%s arrested %s for %i minutes", ReturnName(playerid), gTargetName[playerid], time);
  30173. CreateLog("arrests", log);
  30174. gArrestsHour++;
  30175. }
  30176. return 1;
  30177. }
  30178. forward OnPlayerGetWarrants(playerid);
  30179. public OnPlayerGetWarrants(playerid)
  30180. {
  30181. if (cache_get_row_count(gConnection))
  30182. {
  30183. new
  30184. warrants = cache_get_field_content_int(0, "Warrants");
  30185. if (!warrants)
  30186. {
  30187. SendErrorMessage(playerid, "This player doesn't have any active warrants.");
  30188. ShowMDCPlayerMenuNew(playerid);
  30189. }
  30190. else
  30191. {
  30192. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_warrantlogs WHERE Suspect = '%s' ORDER BY `ID` DESC LIMIT %i", gTargetName[playerid], warrants);
  30193. mysql_tquery(gConnection, gExecute, "OnPlayerViewWarrants", "i", playerid);
  30194. }
  30195. }
  30196. return 1;
  30197. }
  30198. forward OnPlayerGetCharges(playerid);
  30199. public OnPlayerGetCharges(playerid)
  30200. {
  30201. if (cache_get_row_count(gConnection))
  30202. {
  30203. new
  30204. charges = cache_get_field_content_int(0, "Charges");
  30205. if (!charges)
  30206. {
  30207. SendErrorMessage(playerid, "This player doesn't have any active charges.");
  30208. ShowMDCPlayerMenuNew(playerid);
  30209. }
  30210. else
  30211. {
  30212. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_charges WHERE Suspect = '%s' ORDER BY `ChargeID` DESC LIMIT %i", gTargetName[playerid], charges);
  30213. mysql_tquery(gConnection, gExecute, "OnPlayerViewCharges", "i", playerid);
  30214. }
  30215. }
  30216. return 1;
  30217. }
  30218. forward OnPlayerViewCharges(playerid);
  30219. public OnPlayerViewCharges(playerid)
  30220. {
  30221. new
  30222. rows = cache_get_row_count(gConnection);
  30223. if (!rows)
  30224. {
  30225. SendErrorMessage(playerid, "This player doesn't have any active charges.");
  30226. ShowMDCPlayerMenuNew(playerid);
  30227. }
  30228. else
  30229. {
  30230. new reason[128], string[1024];
  30231. format(string, sizeof(string), "%s has the following active charges:\n", gTargetName[playerid]);
  30232. for (new i = 0; i < rows; i ++)
  30233. {
  30234. cache_get_field_content(i, "Reason", reason);
  30235. new chargecat = cache_get_field_content_int(i, "ChargeCat");
  30236. new chargeid = cache_get_field_content_int(i, "ChargeID");
  30237. format(string, sizeof(string), "%s\n%s (%i minutes)", string, reason, GetArrestTime(chargecat, chargeid));
  30238. }
  30239. Dialog_Show(playerid, Charges, DIALOG_STYLE_MSGBOX, "{FFFFFF}List Charges", string, "Back", "");
  30240. }
  30241. }
  30242. forward OnPlayerGetArrestLogs(playerid);
  30243. public OnPlayerGetArrestLogs(playerid)
  30244. {
  30245. new rows = cache_get_row_count(gConnection);
  30246. if (!rows)
  30247. {
  30248. SendErrorMessage(playerid, "This player doesn't have any arrests.");
  30249. ShowMDCPlayerMenuNew(playerid);
  30250. }
  30251. else
  30252. {
  30253. new officer[128], date[32], time, string[2048];
  30254. format(string, sizeof(string), "Officer\tDate\tTime");
  30255. for (new i = 0; i < rows; i ++)
  30256. {
  30257. cache_get_field_content(i, "Officer", officer);
  30258. cache_get_field_content(i, "Date", date);
  30259. time = cache_get_field_content_int(i, "Time");
  30260. format(string, sizeof(string), "%s\n%s\t%s\t%i", string, officer, date, time);
  30261. }
  30262. Dialog_Show(playerid, ArrestRecord, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Arrest Record", string, "Back", "");
  30263. }
  30264. }
  30265. forward OnPlayerViewWarrants(playerid);
  30266. public OnPlayerViewWarrants(playerid)
  30267. {
  30268. new
  30269. rows = cache_get_row_count(gConnection);
  30270. if (!rows)
  30271. {
  30272. SendErrorMessage(playerid, "This player doesn't have any active warrants.");
  30273. ShowMDCPlayerMenuNew(playerid);
  30274. }
  30275. else
  30276. {
  30277. new date[32], reason[128], string[1024];
  30278. format(string, sizeof(string), "%s has the following active warrants:\n", gTargetName[playerid]);
  30279. for (new i = 0; i < rows; i ++)
  30280. {
  30281. cache_get_field_content(i, "Date", date);
  30282. cache_get_field_content(i, "Reason", reason);
  30283. format(string, sizeof(string), "%s\n%s (%s)", string, reason, date);
  30284. }
  30285. Dialog_Show(playerid, Warrants, DIALOG_STYLE_MSGBOX, "{FFFFFF}List Warrants", string, "Back", "");
  30286. }
  30287. }
  30288. forward OnMdcSearchPlayer(playerid, search[]);
  30289. public OnMdcSearchPlayer(playerid, search[])
  30290. {
  30291. if (!cache_get_row_count(gConnection))
  30292. {
  30293. Dialog_Show(playerid, MDC_LookUp, DIALOG_STYLE_INPUT, "{FFFFFF}Search Player", "That player was not found.\n\nPlease input the full name of the player:", "Submit", "Cancel");
  30294. }
  30295. else
  30296. {
  30297. strcpy(gTargetName[playerid], search, MAX_PLAYER_NAME);
  30298. Players[playerid][pSelected] = cache_get_field_content_int(0, "ID");
  30299. ShowMDCLookupPlayer(playerid);
  30300. }
  30301. }
  30302. /*{
  30303. if (!cache_get_row_count(gConnection))
  30304. {
  30305. Dialog_Show(playerid, MDC_SearchName, DIALOG_STYLE_INPUT, "{FFFFFF}Mobile Data Computer - Name Search", "Error: Name wasn't found.\n\nPlease enter the full name of the person:", "Submit", "Cancel");
  30306. }
  30307. else
  30308. {
  30309. strcpy(gTargetName[playerid], search, MAX_PLAYER_NAME);
  30310. Players[playerid][pSelected] = cache_get_field_content_int(0, "ID");
  30311. format(gExecute, sizeof(gExecute), "SELECT ID, Age, Origin, Warrants, CarLicense, GunLicense, Phone, TotalWarrants FROM rp_accounts WHERE Username = '%s'", gTargetName[playerid]);
  30312. mysql_tquery(gConnection, gExecute, "OnMDCViewInformation", "i", playerid);
  30313. }
  30314. }*/
  30315. forward OnPlayerSearchPlayer(playerid, search[]);
  30316. public OnPlayerSearchPlayer(playerid, search[])
  30317. {
  30318. if (!cache_get_row_count(gConnection))
  30319. {
  30320. Dialog_Show(playerid, SearchPlayer, DIALOG_STYLE_INPUT, "{FFFFFF}Search Player", "That player was not found.\n\nPlease input the full name of the player:", "Submit", "Cancel");
  30321. }
  30322. else
  30323. {
  30324. strcpy(gTargetName[playerid], search, MAX_PLAYER_NAME);
  30325. Players[playerid][pSelected] = cache_get_field_content_int(0, "ID");
  30326. ShowMDCPlayerMenu(playerid);
  30327. }
  30328. }
  30329. forward OnPlayerCheckActivity(playerid, name[]);
  30330. public OnPlayerCheckActivity(playerid, name[])
  30331. {
  30332. if (!cache_get_row_count(gConnection))
  30333. {
  30334. SendErrorMessage(playerid, "You have specified an invalid user.");
  30335. }
  30336. else
  30337. {
  30338. new date[32];
  30339. cache_get_field_content(0, "LoginDate", date);
  30340. SendInfoMessage(playerid, "%s was last active on %s.", name, date);
  30341. }
  30342. }
  30343. forward OnFactionSkinAdded(playerid, faction);
  30344. public OnFactionSkinAdded(playerid, faction)
  30345. {
  30346. ShowUniformEditMenu(playerid, faction);
  30347. }
  30348. forward OnPlayerUnbanPlayer(playerid);
  30349. public OnPlayerUnbanPlayer(playerid)
  30350. {
  30351. if (!cache_get_row_count(gConnection))
  30352. {
  30353. SendErrorMessage(playerid, "There was an error unbanning the player.");
  30354. }
  30355. else
  30356. {
  30357. new player[MAX_PLAYER_NAME], ip[16];
  30358. cache_get_field_content(0, "Player", player);
  30359. cache_get_field_content(0, "IP", ip);
  30360. format(gExecute, sizeof(gExecute), "DELETE FROM rp_blacklist WHERE ID = %i", Players[playerid][pSelected]);
  30361. mysql_tquery(gConnection, gExecute);
  30362. if (mysql_isnull(player))
  30363. {
  30364. SendAdminMessage(COLOR_RED, "Admin: %s has unbanned IP: %s.", ReturnNameEx(playerid, 0), ip);
  30365. }
  30366. else
  30367. {
  30368. SendAdminMessage(COLOR_RED, "Admin: %s has unbanned %s.", ReturnNameEx(playerid, 0), player);
  30369. }
  30370. }
  30371. return 1;
  30372. }
  30373. forward OnPlayerCallContact(playerid);
  30374. public OnPlayerCallContact(playerid)
  30375. {
  30376. new
  30377. contact[MAX_PLAYER_NAME];
  30378. if (!cache_get_row_count(gConnection))
  30379. {
  30380. return 0;
  30381. }
  30382. else
  30383. {
  30384. new
  30385. number = cache_get_field_content_int(0, "Number");
  30386. cache_get_field_content(0, "Contact", contact, gConnection);
  30387. CallNumber(playerid, number);
  30388. }
  30389. return 1;
  30390. }//Dialog_Show(playerid, PhoneSMStext, DIALOG_STYLE_INPUT, strHead, "Please type your message:", "Send", "Cancel");
  30391. forward OnPlayerTextContact(playerid);
  30392. public OnPlayerTextContact(playerid)
  30393. {
  30394. new
  30395. contact[MAX_PLAYER_NAME];
  30396. if (!cache_get_row_count(gConnection))
  30397. {
  30398. return 0;
  30399. }
  30400. else
  30401. {
  30402. new
  30403. number = cache_get_field_content_int(0, "Number");
  30404. cache_get_field_content(0, "Contact", contact, gConnection);
  30405. Players[playerid][pPhoneSMS] = number;
  30406. new strHead[64];
  30407. format(strHead, sizeof(strHead), "{FFFFFF}SMS to %i", number);
  30408. Dialog_Show(playerid, PhoneSMStext, DIALOG_STYLE_INPUT, strHead, "Please type your message:", "Send", "Cancel");
  30409. }
  30410. return 1;
  30411. }
  30412. forward OnPlayerListContacts(playerid);
  30413. public OnPlayerListContacts(playerid)
  30414. {
  30415. new
  30416. rows = cache_get_row_count(gConnection),
  30417. contact[MAX_PLAYER_NAME],
  30418. string[1024];
  30419. strcat(string, "Add Contact");
  30420. for (new i = 0; i < rows; i ++)
  30421. {
  30422. cache_get_field_content(i, "Contact", contact, gConnection);
  30423. format(string, sizeof(string), "%s\n%s (%i)", string, contact, cache_get_field_content_int(i, "Number"));
  30424. gListedItems[playerid][i] = cache_get_field_content_int(i, "ID");
  30425. }
  30426. Dialog_Show(playerid, Contacts, DIALOG_STYLE_LIST, "{FFFFFF}My contacts", string, "Select", "Cancel");
  30427. }
  30428. forward OnPlayerCollectTransfer(playerid, id, transferid);
  30429. public OnPlayerCollectTransfer(playerid, id, transferid)
  30430. {
  30431. new
  30432. sender[MAX_PLAYER_NAME];
  30433. if (!cache_get_row_count(gConnection))
  30434. {
  30435. return 0;
  30436. }
  30437. else
  30438. {
  30439. new
  30440. amount = cache_get_field_content_int(0, "Amount");
  30441. cache_get_field_content(0, "Sender", sender, gConnection);
  30442. BankAccounts[playerid][id][bankBalance] += amount;
  30443. SendInfoMessage(playerid, "You have collected a transfer of {33CC33}%s{FFFFFF} from %s.", FormatNumber(amount), sender);
  30444. format(gExecute, sizeof(gExecute), "DELETE FROM rp_transfers WHERE ID = %i", transferid);
  30445. mysql_tquery(gConnection, gExecute);
  30446. SaveBankAccount(playerid, id);
  30447. ShowBankAccountMenu(playerid, id);
  30448. }
  30449. return 1;
  30450. }
  30451. forward OnPlayerViewTransfers(playerid);
  30452. public OnPlayerViewTransfers(playerid)
  30453. {
  30454. new
  30455. rows = cache_get_row_count(gConnection),
  30456. displayString[1024];
  30457. if (!rows)
  30458. {
  30459. ShowBankAccountMenu(playerid, Players[playerid][pBank]);
  30460. SendErrorMessage(playerid, "You don't have any pending bank transfers to collect.");
  30461. }
  30462. else
  30463. {
  30464. new
  30465. sender[MAX_PLAYER_NAME],
  30466. amount = 0;
  30467. for (new i = 0; i < rows; i ++)
  30468. {
  30469. cache_get_field_content(i, "Sender", sender, gConnection);
  30470. amount = cache_get_field_content_int(i, "Amount");
  30471. format(displayString, sizeof(displayString), "%s\n%s (sender: %s)", displayString, FormatNumber(amount), sender);
  30472. gListedItems[playerid][i] = cache_get_field_content_int(i, "ID");
  30473. }
  30474. Dialog_Show(playerid, CollectTransfer, DIALOG_STYLE_LIST, "{FFFFFF}Collect transfer", displayString, "Collect", "Back");
  30475. }
  30476. }
  30477. forward OnTransferCheck(playerid, name[]);
  30478. public OnTransferCheck(playerid, name[])
  30479. {
  30480. new
  30481. id = Players[playerid][pBank];
  30482. if (!cache_get_row_count(gConnection))
  30483. {
  30484. return Dialog_Show(playerid, BankTransfer, DIALOG_STYLE_INPUT, "{FFFFFF}Transfer money", "The specified player doesn't exist.\n\nPlease input the full name of the player to transfer money to:", "Submit", "Back");
  30485. }
  30486. else
  30487. {
  30488. strcpy(gTargetName[playerid], name, MAX_PLAYER_NAME);
  30489. Players[playerid][pTransfer] = cache_get_field_content_int(0, "ID");
  30490. Dialog_Show(playerid, TransferAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Transfer money", "'%s' contains a balance of %s.\n\nPlease input the amount of money to transfer to '%s'.", "Submit", "Back", BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance]), gTargetName[playerid]);
  30491. }
  30492. return 1;
  30493. }
  30494. forward OnFactionAdded(id);
  30495. public OnFactionAdded(id)
  30496. {
  30497. Factions[id][fcID] = cache_insert_id(gConnection);
  30498. SaveFaction(id);
  30499. }
  30500. forward OnShellCasingAdded(id);
  30501. public OnShellCasingAdded(id)
  30502. {
  30503. ShellCasings[id][scID] = cache_insert_id(gConnection);
  30504. }
  30505. forward OnBloodAdded(id);
  30506. public OnBloodAdded(id)
  30507. {
  30508. Bloods[id][blID] = cache_insert_id(gConnection);
  30509. }
  30510. forward OnWeedPlantAdded(id);
  30511. public OnWeedPlantAdded(id)
  30512. {
  30513. WeedPlants[id][wpID] = cache_insert_id(gConnection);
  30514. }
  30515. forward OnDealershipCarAdded(id);
  30516. public OnDealershipCarAdded(id)
  30517. {
  30518. DealershipCars[id][dcID] = cache_insert_id(gConnection);
  30519. SaveDealershipCar(id);
  30520. }
  30521. forward OnTrashbinAdded(id);
  30522. public OnTrashbinAdded(id)
  30523. {
  30524. Trashbins[id][tID] = cache_insert_id(gConnection);
  30525. SaveTrashbin(id);
  30526. }
  30527. forward OnPayphoneAdded(id);
  30528. public OnPayphoneAdded(id)
  30529. {
  30530. Payphones[id][phID] = cache_insert_id(gConnection);
  30531. SavePayphone(id);
  30532. }
  30533. forward OnATMAdded(id);
  30534. public OnATMAdded(id)
  30535. {
  30536. ATM[id][atmID] = cache_insert_id(gConnection);
  30537. SaveATM(id);
  30538. }
  30539. forward OnGasPumpAdded(id);
  30540. public OnGasPumpAdded(id)
  30541. {
  30542. GasPumps[id][gpID] = cache_insert_id(gConnection);
  30543. SaveGasPump(id);
  30544. }
  30545. forward OnAccessoryAdded(playerid, id);
  30546. public OnAccessoryAdded(playerid, id)
  30547. {
  30548. Accessories[playerid][id][aID] = cache_insert_id(gConnection);
  30549. SaveAccessory(playerid, id);
  30550. }
  30551. forward OnBankAccountAdded(playerid, id);
  30552. public OnBankAccountAdded(playerid, id)
  30553. {
  30554. BankAccounts[playerid][id][bankID] = cache_insert_id(gConnection);
  30555. SaveBankAccount(playerid, id);
  30556. }
  30557. forward OnFurnitureAdded(furniture);
  30558. public OnFurnitureAdded(furniture)
  30559. {
  30560. Furniture[furniture][fID] = cache_insert_id(gConnection);
  30561. SaveFurniture(furniture);
  30562. }
  30563. forward OnVehicleAdded(vehicle);
  30564. public OnVehicleAdded(vehicle)
  30565. {
  30566. Vehicles[vehicle][vID] = cache_insert_id(gConnection);
  30567. SaveVehicle(vehicle);
  30568. }
  30569. forward OnDropItemAdded(item);
  30570. public OnDropItemAdded(item)
  30571. {
  30572. DropItems[item][dID] = cache_insert_id(gConnection);
  30573. }
  30574. forward OnStoredItemAdded(item);
  30575. public OnStoredItemAdded(item)
  30576. {
  30577. StoredItems[item][stID] = cache_insert_id(gConnection);
  30578. }
  30579. forward OnRestaurantItemAdded(company, id);
  30580. public OnRestaurantItemAdded(company, id)
  30581. {
  30582. RestaurantItems[company][id][rtID] = cache_insert_id(gConnection);
  30583. SaveRestaurantItem(company, id);
  30584. }
  30585. forward OnCompanyAdded(company);
  30586. public OnCompanyAdded(company)
  30587. {
  30588. Companies[company][cID] = cache_insert_id(gConnection);
  30589. Companies[company][cWorld] = Companies[company][cID] + 25000;
  30590. UpdateCompany(company);
  30591. SaveCompany(company);
  30592. for (new i = 0, index = 0; i < sizeof(g_CompanyItems); i ++)
  30593. {
  30594. if (Companies[company][cType] == g_CompanyItems[i][e_CompanyType])
  30595. {
  30596. Products[company][index][prPrice] = g_CompanyItems[i][e_DefaultPrice];
  30597. if (g_CompanyItems[i][e_IsStockable])
  30598. Products[company][index][prStock] = 200;
  30599. else
  30600. Products[company][index][prStock] = -1;
  30601. SaveProduct(company, index++);
  30602. }
  30603. }
  30604. }
  30605. forward OnHouseAdded(house);
  30606. public OnHouseAdded(house)
  30607. {
  30608. Houses[house][hID] = cache_insert_id(gConnection);
  30609. Houses[house][hWorld] = Houses[house][hID] + 10000;
  30610. UpdateHouse(house);
  30611. SaveHouse(house);
  30612. }
  30613. forward OnBuildingAdded(building);
  30614. public OnBuildingAdded(building)
  30615. {
  30616. Buildings[building][bID] = cache_insert_id(gConnection);
  30617. Buildings[building][bWorld] = Buildings[building][bID] + 50000;
  30618. UpdateBuilding(building);
  30619. SaveBuilding(building);
  30620. }
  30621. forward OnChangeName(playerid, targetid, name[]);
  30622. public OnChangeName(playerid, targetid, name[])
  30623. {
  30624. new
  30625. rows = cache_get_row_count(gConnection);
  30626. if (rows)
  30627. {
  30628. SendErrorMessage(playerid, "Sorry, that name is already in use!");
  30629. }
  30630. else
  30631. {
  30632. SendInfoMessage(playerid, "You have changed %s's name to %s.", ReturnNameEx(targetid, 0), name);
  30633. SendInfoMessage(targetid, "%s has changed your name to %s.", ReturnNameEx(playerid, 0), name);
  30634. new log[128];
  30635. format(log, sizeof(log), "%s has changed %s's name to %s", ReturnName(playerid), ReturnName(targetid), name);
  30636. CreateLog("admin", log);
  30637. ChangeName(targetid, name);
  30638. }
  30639. return 1;
  30640. }
  30641. forward OnSelectBan(playerid);
  30642. public OnSelectBan(playerid)
  30643. {
  30644. new
  30645. rows = cache_get_row_count(gConnection);
  30646. if (rows)
  30647. {
  30648. new
  30649. banPlayer[MAX_PLAYER_NAME];
  30650. cache_get_field_content(0, "Player", banPlayer, gConnection);
  30651. if (mysql_isnull(banPlayer))
  30652. {
  30653. Dialog_Show(playerid, UnbanPlayer, DIALOG_STYLE_MSGBOX, "{FFFFFF}Unban player", "{6688FF}IP:{FFFFFF}\n%s\n\n{6688FF}Banned By:{FFFFFF}\n%s\n\n{6688FF}Date:{FFFFFF}\n%s\n\n{6688FF}Reason:{FFFFFF}\n%s\n\nClick 'Unban' to unban this IP.", "Unban", "Back", cache_fetch_string(0, "IP"), cache_fetch_string(0, "BannedBy"), cache_fetch_string(0, "Date"), cache_fetch_string(0, "Reason"));
  30654. }
  30655. else
  30656. {
  30657. Dialog_Show(playerid, UnbanPlayer, DIALOG_STYLE_MSGBOX, "{FFFFFF}Unban player", "{6688FF}Player:{FFFFFF}\n%s\n\n{6688FF}IP:{FFFFFF}\n%s\n\n{6688FF}Banned By:{FFFFFF}\n%s\n\n{6688FF}Date:{FFFFFF}\n%s\n\n{6688FF}Reason:{FFFFFF}\n%s\n\nClick 'Unban' to unban this player.", "Unban", "Back", banPlayer, cache_fetch_string(0, "IP"), cache_fetch_string(0, "BannedBy"), cache_fetch_string(0, "Date"), cache_fetch_string(0, "Reason"));
  30658. }
  30659. }
  30660. else
  30661. {
  30662. SendErrorMessage(playerid, "The selected player is no longer in the ban list.");
  30663. }
  30664. }
  30665. forward OnViewBanList(playerid);
  30666. public OnViewBanList(playerid)
  30667. {
  30668. new
  30669. rows = cache_get_row_count(gConnection),
  30670. player[MAX_PLAYER_NAME],
  30671. buffer[MAX_LISTED_BANS * 64];
  30672. for (new i = 0; i < rows; i ++)
  30673. {
  30674. gListedItems[playerid][i] = cache_get_field_content_int(i, "ID");
  30675. cache_get_field_content(i, "Player", player, gConnection);
  30676. if (mysql_isnull(player))
  30677. {
  30678. format(buffer, sizeof(buffer), "%s\n* %s (%s)", buffer, cache_fetch_string(i, "IP"), cache_fetch_string(i, "Reason"));
  30679. }
  30680. else
  30681. {
  30682. format(buffer, sizeof(buffer), "%s\n* %s (%s)", buffer, player, cache_fetch_string(i, "Reason"));
  30683. }
  30684. }
  30685. if (Players[playerid][pBanPage] > 1)
  30686. {
  30687. strcat(buffer, "\n<< Go Back");
  30688. }
  30689. if (rows == MAX_LISTED_BANS)
  30690. {
  30691. strcat(buffer, "\n>> Next Page");
  30692. }
  30693. if (!strlen(buffer))
  30694. {
  30695. SendErrorMessage(playerid, "There are no banned players to display.");
  30696. }
  30697. else
  30698. {
  30699. Dialog_Show(playerid, BanList, DIALOG_STYLE_LIST, "{FFFFFF}Select player to unban", buffer, "Select", "Cancel");
  30700. }
  30701. return 1;
  30702. }
  30703. forward StartEngine(playerid, vehicleid);
  30704. public StartEngine(playerid, vehicleid)
  30705. {
  30706. if (Players[playerid][pStartEngine] && IsPlayerInVehicle(playerid, vehicleid) && Players[playerid][pAutoShop] == INVALID_ID)
  30707. {
  30708. if (Players[playerid][pRefuel] != INVALID_ID)
  30709. {
  30710. StopRefuel(playerid);
  30711. }
  30712. SetEngineStatus(vehicleid, 1);
  30713. //SendInfoMessage(playerid, "The engine has started successfully.");
  30714. ShowActionBubble(playerid, "* %s starts the engine of the vehicle.", ReturnNameEx(playerid));
  30715. SendDistanceMessage(playerid, 20.0, COLOR_PURPLE, "** The vehicle's engine starts. (( %s ))", ReturnNameEx(playerid));
  30716. }
  30717. Players[playerid][pStartEngine] = 0;
  30718. }
  30719. forward FuelCycle();
  30720. public FuelCycle()
  30721. {
  30722. for (new i = 1; i < MAX_VEHICLES; i ++)
  30723. {
  30724. if (IsValidVehicle(i) && IsPoweredVehicle(i) && GetEngineStatus(i) > 0)
  30725. {
  30726. if (VehicleInformation[i][vFuel] > 0)
  30727. {
  30728. VehicleInformation[i][vFuel]--;
  30729. if (!VehicleInformation[i][vFuel])
  30730. {
  30731. SetEngineStatus(i, 0);
  30732. }
  30733. UpdateFuelGauge(i);
  30734. }
  30735. }
  30736. }
  30737. }
  30738. forward DistanceCycle();
  30739. public DistanceCycle()
  30740. {
  30741. new
  30742. Float:distance;
  30743. foreach (new playerid : Player)
  30744. {
  30745. if (Players[playerid][pLoggedIn] && Players[playerid][pSetupInfo])
  30746. {
  30747. distance = GetPlayerDistanceFromPoint(playerid, Players[playerid][pDistance][0], Players[playerid][pDistance][1], Players[playerid][pDistance][2]);
  30748. if (distance <= 150.0)
  30749. {
  30750. Players[playerid][pTraveled] += distance * 0.001;
  30751. }
  30752. GetPlayerPos(playerid, Players[playerid][pDistance][0], Players[playerid][pDistance][1], Players[playerid][pDistance][2]);
  30753. }
  30754. }
  30755. return 1;
  30756. }
  30757. forward SecondSync();
  30758. public SecondSync()
  30759. {
  30760. new Float:health, Float:armour, string[128];
  30761. if (Iter_Count(Player) > Server[PlayerRecord])
  30762. {
  30763. SetPlayerRecord(Iter_Count(Player));
  30764. }
  30765. for (new i = 0; i < MAX_BLOOD; i ++)
  30766. {
  30767. if (Bloods[i][blExists])
  30768. {
  30769. if(gettime() - Bloods[i][blTime] > 5000)
  30770. {
  30771. DestroyDynamicObject(Bloods[i][blObject]);
  30772. Bloods[i][blExists] = 0;
  30773. Bloods[i][blObject] = INVALID_OBJECT_ID;
  30774. }
  30775. }
  30776. }
  30777. for (new i = 0; i < MAX_WEEDPLANTS; i ++)
  30778. {
  30779. if (WeedPlants[i][wpExists])
  30780. {
  30781. WeedPlants[i][wpTime] ++;
  30782. }
  30783. }
  30784. foreach (new playerid : Player)
  30785. {
  30786. if (IsPlayerNPC(playerid)) continue;
  30787. if (!IsPlayerLoggedIn(playerid))
  30788. {
  30789. //UpdateLoginTextDraws(playerid);
  30790. }
  30791. else
  30792. {
  30793. new vehicleid = GetPlayerVehicleID(playerid);
  30794. if ((gettime() - Players[playerid][pLastUpdate]) > 4 && !IsPlayerPaused(playerid))
  30795. {
  30796. Players[playerid][pPaused] = 1;
  30797. Players[playerid][pPausedText] = CreateDynamic3DTextLabel("Paused\n{FFFFFF}1 second", COLOR_BLUE, 0.0, 0.0, 0.4, 20.0, playerid);
  30798. }
  30799. if (IsPlayerPaused(playerid))
  30800. {
  30801. format(string, sizeof(string), "Paused\n{FFFFFF}%i seconds", (gettime() - Players[playerid][pLastUpdate]));
  30802. UpdateDynamic3DTextLabelText(Players[playerid][pPausedText], COLOR_BLUE, string);
  30803. }
  30804. if (Players[playerid][pDonator] > 0 && gettime() >= Players[playerid][pExpiryDate])
  30805. {
  30806. Players[playerid][pDonator] = 0;
  30807. SendInfoMessage(playerid, "Your donator subscription has expired.");
  30808. }
  30809. if (Players[playerid][pPayphone] != INVALID_ID && GetClosestPayphone(playerid) != Players[playerid][pPayphone])
  30810. {
  30811. HangupCall(playerid);
  30812. }
  30813. if (Players[playerid][pInsideTaxi] != INVALID_PLAYER_ID)
  30814. {
  30815. if(Players[Players[playerid][pInsideTaxi]][pTaxiDuty])
  30816. {
  30817. Players[playerid][pTaxiTime]++;
  30818. if (Players[playerid][pTaxiTime] > 9)
  30819. {
  30820. Players[playerid][pTaxiTime] = 0;
  30821. Players[playerid][pTaxiMeter]++;
  30822. }
  30823. format(string, sizeof(string), "~g~~h~Taxi Meter:~w~ %s / %i seconds", FormatNumber(Players[playerid][pTaxiMeter]*Players[Players[playerid][pInsideTaxi]][pTaxiFare]), Players[playerid][pTaxiTime]);
  30824. ShowFooterText(playerid, string, 1500);
  30825. ShowFooterText(Players[playerid][pInsideTaxi], string, 1500);
  30826. }
  30827. }
  30828. if (Players[playerid][pTazed] > 0)
  30829. {
  30830. Players[playerid][pTazed]--;
  30831. if (!Players[playerid][pTazed])
  30832. {
  30833. TogglePlayerControllable(playerid, true);
  30834. ClearAnimations(playerid, 1);
  30835. }
  30836. }
  30837. if (Players[playerid][pCommandSpam] > 0)
  30838. {
  30839. Players[playerid][pCommandSpam]--;
  30840. }
  30841. if(Players[playerid][pRepairTime] > 0)
  30842. {
  30843. Players[playerid][pRepairTime]--;
  30844. if(Players[playerid][pRepairTime] <= 0)
  30845. {
  30846. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  30847. {
  30848. vehicleid = GetPlayerVehicleID(playerid);
  30849. new vehicle = GetVehicleID(vehicleid);
  30850. if(vehicle >= 0)
  30851. {
  30852. ChangeVehicleColor(vehicleid, Vehicles[vehicleid][vColor1], Vehicles[vehicleid][vColor2]);
  30853. }
  30854. foreach(new i : Player)
  30855. {
  30856. if(IsPlayerInVehicle(i, vehicleid))
  30857. {
  30858. SetCameraBehindPlayer(i);
  30859. }
  30860. }
  30861. SetVehiclePos(vehicleid, g_RepairShops[Players[playerid][pRepairShop]][7], g_RepairShops[Players[playerid][pRepairShop]][8], g_RepairShops[Players[playerid][pRepairShop]][9]);
  30862. SetVehicleZAngle(vehicleid, g_RepairShops[Players[playerid][pRepairShop]][10]);
  30863. SetCameraBehindPlayer(playerid);
  30864. RepairVehicle(vehicleid);
  30865. GameTextForPlayer(playerid, "~g~Vehicle Repaired", 5000, 1);
  30866. TogglePlayerControllable(playerid, 1);
  30867. }
  30868. Players[playerid][pRepairShop] = -1;
  30869. }
  30870. }
  30871. Players[playerid][pWarnTimer]++;
  30872. if (Players[playerid][pWarnTimer] > 5)
  30873. {
  30874. Players[playerid][pWarnWeapon] = 0;
  30875. Players[playerid][pWarnHealth] = 0;
  30876. Players[playerid][pWarnArmor] = 0;
  30877. Players[playerid][pWarnAirbreak] = 0;
  30878. Players[playerid][pWarnSpeedhack] = 0;
  30879. Players[playerid][pWarnMoneyHack] = 0;
  30880. Players[playerid][pWarnAmmoHack] = 0;
  30881. Players[playerid][pWarnFlyHack] = 0;
  30882. Players[playerid][pWarnDialogHack] = 0;
  30883. Players[playerid][pWarnGodMode] = 0;
  30884. Players[playerid][pWarnRapidFire] = 0;
  30885. Players[playerid][pWarnTeleport] = 0;
  30886. }
  30887. /*
  30888. pWarnTimer,
  30889. pWarnWeapon,
  30890. pWarnHealth,
  30891. pWarnArmor,
  30892. pWarnAirbreak,
  30893. pWarnSpeedhack,
  30894. pWarnMoneyHack,
  30895. pWarnAmmoHack,
  30896. pWarnFlyHack,
  30897. pWarnDialogHack,
  30898. pWarnGodMode,
  30899. pWarnRapidFire,
  30900. pWarnTeleport
  30901. */
  30902. if (Players[playerid][pCommandMuted] > 0)
  30903. {
  30904. Players[playerid][pCommandMuted]--;
  30905. }
  30906. if (Players[playerid][pAutoShop] != INVALID_ID && Players[playerid][pAutoTime] > 0)
  30907. {
  30908. if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
  30909. {
  30910. Players[playerid][pAutoShop] = INVALID_ID;
  30911. Players[playerid][pAutoTime] = 0;
  30912. }
  30913. else
  30914. {
  30915. Players[playerid][pAutoTime]--;
  30916. if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER && !IsPlayerInRangeOfPoint(playerid, 20.0, 1903.4791, 1353.9811, 24.5537))
  30917. {
  30918. Players[playerid][pAutoShop] = INVALID_ID;
  30919. Players[playerid][pAutoTime] = 0;
  30920. SetPlayerPos(playerid, Players[playerid][pAutoX], Players[playerid][pAutoY], Players[playerid][pAutoZ]);
  30921. SetPlayerFacingAngle(playerid, Players[playerid][pAutoA]);
  30922. SetPlayerVirtualWorld(playerid, 0);
  30923. TogglePlayerControllable(playerid, true);
  30924. SendInfoMessage(playerid, "You have been removed from the auto shop.");
  30925. }
  30926. else if (!Players[playerid][pAutoTime])
  30927. {
  30928. SendInfoMessage(playerid, "Your vehicle has been fully repaired for {33CC33}%s{FFFFFF}.", FormatNumber(GetRepairCost(vehicleid)));
  30929. PlayerPlaySound(playerid, 1133, 0.0, 0.0, 0.0);
  30930. RemoveMoney(playerid, GetRepairCost(vehicleid));
  30931. RepairVehicle(vehicleid);
  30932. SetVehiclePos(vehicleid, Players[playerid][pAutoX], Players[playerid][pAutoY], Players[playerid][pAutoZ]);
  30933. SetVehicleZAngle(vehicleid, Players[playerid][pAutoA]);
  30934. SetVehicleVirtualWorld(vehicleid, 0);
  30935. foreach (new i : Player)
  30936. {
  30937. if (IsPlayerInVehicle(i, vehicleid))
  30938. {
  30939. SetPlayerVirtualWorld(i, 0);
  30940. TogglePlayerControllable(i, true);
  30941. SetCameraBehindPlayer(i);
  30942. }
  30943. }
  30944. if (VehicleInformation[vehicleid][vFuel] > 0)
  30945. {
  30946. SetEngineStatus(vehicleid, true);
  30947. }
  30948. Players[playerid][pAutoShop] = INVALID_ID;
  30949. Players[playerid][pAutoTime] = 0;
  30950. }
  30951. else
  30952. {
  30953. format(string, sizeof(string), "~g~~h~Repairing... %i seconds remaining.", Players[playerid][pAutoTime]);
  30954. ShowFooterText(playerid, string, 1500);
  30955. }
  30956. }
  30957. }
  30958. if (Players[playerid][pSprayTag] != INVALID_ID && GetClosestSprayTag(playerid) != Players[playerid][pSprayTag])
  30959. {
  30960. Players[playerid][pSprayTag] = INVALID_ID;
  30961. }
  30962. if (Players[playerid][pDrivingTest] && IsPlayerInAnyVehicle(playerid))
  30963. {
  30964. Players[playerid][pTestTime]++;
  30965. }
  30966. if (Players[playerid][pStoned])
  30967. {
  30968. Players[playerid][pStonedTime]--;
  30969. if (!Players[playerid][pStonedTime])
  30970. {
  30971. Players[playerid][pStoned] = STONED_TYPE_NONE;
  30972. SyncTimeForPlayer(playerid);
  30973. SetPlayerWeather(playerid, gWeatherID);
  30974. SetPlayerDrunkLevel(playerid, 2500);
  30975. SendInfoMessage(playerid, "The effects from the drugs have faded away.");
  30976. Players[playerid][pSeconds] = 0;
  30977. }
  30978. else
  30979. {
  30980. Players[playerid][pSeconds]++;
  30981. GetPlayerHealth(playerid, health);
  30982. GetPlayerArmour(playerid, armour);
  30983. switch (Players[playerid][pStoned])
  30984. {
  30985. case STONED_TYPE_STEROIDS:
  30986. {
  30987. if (health >= 100.0)
  30988. {
  30989. Players[playerid][pStoned] = STONED_TYPE_NONE;
  30990. Players[playerid][pStonedTime] = 0;
  30991. Players[playerid][pSeconds] = 0;
  30992. SendInfoMessage(playerid, "The effects from the drugs have faded away.");
  30993. }
  30994. else if (Players[playerid][pSeconds] == 20)
  30995. {
  30996. SetPlayerHealth(playerid, (health + 10.0 > 100.0) ? (100.0) : (health + 10.0));
  30997. Players[playerid][pSeconds] = 0;
  30998. }
  30999. }
  31000. case STONED_TYPE_HEROIN:
  31001. {
  31002. if (health >= 100.0)
  31003. {
  31004. Players[playerid][pStoned] = STONED_TYPE_NONE;
  31005. Players[playerid][pStonedTime] = 0;
  31006. Players[playerid][pSeconds] = 0;
  31007. SendInfoMessage(playerid, "The effects from the drugs have faded away.");
  31008. }
  31009. else if (Players[playerid][pSeconds] == 12)
  31010. {
  31011. SetPlayerHealth(playerid, (health + 5.0 > 100.0) ? (100.0) : (health + 5.0));
  31012. Players[playerid][pSeconds] = 0;
  31013. }
  31014. }
  31015. case STONED_TYPE_LSD:
  31016. {
  31017. if (health >= 100.0)
  31018. {
  31019. Players[playerid][pStoned] = STONED_TYPE_NONE;
  31020. Players[playerid][pStonedTime] = 0;
  31021. Players[playerid][pSeconds] = 0;
  31022. SendInfoMessage(playerid, "The effects from the drugs have faded away.");
  31023. }
  31024. else if (Players[playerid][pSeconds] == 4)
  31025. {
  31026. SetPlayerHealth(playerid, (health + 2.0 > 100.0) ? (100.0) : (health + 2.0));
  31027. Players[playerid][pSeconds] = 0;
  31028. }
  31029. }
  31030. case STONED_TYPE_ECSTASY:
  31031. {
  31032. if (health >= 100.0)
  31033. {
  31034. Players[playerid][pStoned] = STONED_TYPE_NONE;
  31035. Players[playerid][pStonedTime] = 0;
  31036. Players[playerid][pSeconds] = 0;
  31037. SendInfoMessage(playerid, "The effects from the drugs have faded away.");
  31038. }
  31039. else if (Players[playerid][pSeconds] == 8)
  31040. {
  31041. SetPlayerHealth(playerid, (health + 5.0 > 100.0) ? (100.0) : (health + 5.0));
  31042. Players[playerid][pSeconds] = 0;
  31043. }
  31044. }
  31045. case STONED_TYPE_MARIJUANA:
  31046. {
  31047. if (health >= 100.0)
  31048. {
  31049. Players[playerid][pStoned] = STONED_TYPE_NONE;
  31050. Players[playerid][pStonedTime] = 0;
  31051. Players[playerid][pSeconds] = 0;
  31052. SendInfoMessage(playerid, "The effects from the drugs have faded away.");
  31053. }
  31054. else if (Players[playerid][pSeconds] == 15)
  31055. {
  31056. SetPlayerHealth(playerid, (health + 3.0 > 100.0) ? (100.0) : (health + 3.0));
  31057. Players[playerid][pSeconds] = 0;
  31058. }
  31059. }
  31060. case STONED_TYPE_CRACK:
  31061. {
  31062. if (health >= 100.0)
  31063. {
  31064. Players[playerid][pStoned] = STONED_TYPE_NONE;
  31065. Players[playerid][pStonedTime] = 0;
  31066. Players[playerid][pSeconds] = 0;
  31067. SendInfoMessage(playerid, "The effects from the drugs have faded away.");
  31068. }
  31069. else if (Players[playerid][pSeconds] == 5)
  31070. {
  31071. SetPlayerHealth(playerid, (health + 15.0 > 100.0) ? (100.0) : (health + 15.0));
  31072. Players[playerid][pSeconds] = 0;
  31073. }
  31074. }
  31075. case STONED_TYPE_COCAINE:
  31076. {
  31077. if (health >= 100.0)
  31078. {
  31079. Players[playerid][pStoned] = STONED_TYPE_NONE;
  31080. Players[playerid][pStonedTime] = 0;
  31081. Players[playerid][pSeconds] = 0;
  31082. SendInfoMessage(playerid, "The effects from the drugs have faded away.");
  31083. }
  31084. else if (Players[playerid][pSeconds] == 10)
  31085. {
  31086. SetPlayerHealth(playerid, (health + 7.0 > 100.0) ? (100.0) : (health + 7.0));
  31087. Players[playerid][pSeconds] = 0;
  31088. }
  31089. }
  31090. case STONED_TYPE_METH:
  31091. {
  31092. if (health >= 100.0)
  31093. {
  31094. Players[playerid][pStoned] = STONED_TYPE_NONE;
  31095. Players[playerid][pStonedTime] = 0;
  31096. Players[playerid][pSeconds] = 0;
  31097. SendInfoMessage(playerid, "The effects from the drugs have faded away.");
  31098. }
  31099. else if (Players[playerid][pSeconds] == 13)
  31100. {
  31101. SetPlayerHealth(playerid, (health + 10.0 > 100.0) ? (100.0) : (health + 10.0));
  31102. Players[playerid][pSeconds] = 0;
  31103. }
  31104. }
  31105. case STONED_TYPE_PCP:
  31106. {
  31107. if (health >= 100.0)
  31108. {
  31109. Players[playerid][pStoned] = STONED_TYPE_NONE;
  31110. Players[playerid][pStonedTime] = 0;
  31111. Players[playerid][pSeconds] = 0;
  31112. SendInfoMessage(playerid, "The effects from the drugs have faded away.");
  31113. }
  31114. else if (Players[playerid][pSeconds] == 20)
  31115. {
  31116. SetPlayerHealth(playerid, (health + 10.0 > 100.0) ? (100.0) : (health + 10.0));
  31117. Players[playerid][pSeconds] = 0;
  31118. }
  31119. }
  31120. }
  31121. }
  31122. }
  31123. if (Players[playerid][pPainkillers] > 0)
  31124. {
  31125. GetPlayerHealth(playerid, health);
  31126. Players[playerid][pPainkillers]--;
  31127. if (health + 3.0 > 100.0) {
  31128. SetPlayerHealth(playerid, 100.0);
  31129. } else {
  31130. SetPlayerHealth(playerid, health + 3.0);
  31131. }
  31132. }
  31133. if (Players[playerid][pAnticheat] > 0)
  31134. {
  31135. Players[playerid][pAnticheat]--;
  31136. }
  31137. if (Players[playerid][pJailType] > 0)
  31138. {
  31139. Players[playerid][pJailTime]--;
  31140. if (Players[playerid][pJailTime] < 1)
  31141. {
  31142. Players[playerid][pJailType] = 0;
  31143. Players[playerid][pJailTime] = 0;
  31144. ResetSpawnInfo(playerid);
  31145. SetPlayerSpawn(playerid);
  31146. SendInfoMessage(playerid, "You have been released from jail!");
  31147. }
  31148. }
  31149. if (Players[playerid][pHotwire] != INVALID_VEHICLE_ID)
  31150. {
  31151. Players[playerid][pHotwireTime]--;
  31152. if (!Players[playerid][pHotwireTime])
  31153. {
  31154. Statistics[playerid][sHotwired]++;
  31155. SetEngineStatus(Players[playerid][pHotwire], 1);
  31156. SetAlarmStatus(Players[playerid][pHotwire], 0);
  31157. SendInfoMessage(playerid, "You have hotwired this vehicle.");
  31158. Players[playerid][pHotwire] = INVALID_VEHICLE_ID;
  31159. Players[playerid][pHotwireTime] = 0;
  31160. }
  31161. else
  31162. {
  31163. format(string, sizeof(string), "~w~Hotwiring... %i seconds remaining.", Players[playerid][pHotwireTime]);
  31164. ShowFooterText(playerid, string, 1500);
  31165. }
  31166. }
  31167. if (GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  31168. {
  31169. vehicleid = GetPlayerVehicleID(playerid);
  31170. if (IsPoweredVehicle(vehicleid) && GetVehicleHealthEx(vehicleid) <= 299.0)
  31171. {
  31172. SetVehicleHealth(vehicleid, 300.0);
  31173. SetEngineStatus(vehicleid, 0);
  31174. SendInfoMessage(playerid, "This vehicle is totalled!");
  31175. }
  31176. }
  31177. if (Players[playerid][pBleeding])
  31178. {
  31179. Players[playerid][pBleedingTime]++;
  31180. if ((Players[playerid][pBleedingTime] % 5) == 0) // Every 5 seconds
  31181. {
  31182. //SpawnBloodObject(playerid);
  31183. new
  31184. Float:x,
  31185. Float:y,
  31186. Float:z,
  31187. Float:angle;
  31188. GetPlayerPos(playerid, x, y, z);
  31189. GetPlayerFacingAngle(playerid, angle);
  31190. //SpawnBloodObject(playerid);
  31191. //AddBlood(playerid, x, y, z, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid));
  31192. if (!Players[playerid][pMedicKit] && Players[playerid][pStoned] != STONED_TYPE_COCAINE)
  31193. {
  31194. GetPlayerHealth(playerid, health);
  31195. SetPlayerHealth(playerid, health - 1.0);
  31196. }
  31197. }
  31198. if (Players[playerid][pBleedingTime] >= 40)
  31199. {
  31200. Players[playerid][pBleeding] = 0;
  31201. }
  31202. }
  31203. if (Players[playerid][pMedicKit])
  31204. {
  31205. GetPlayerHealth(playerid, health);
  31206. health = health + 3.0;
  31207. if (health > 100.0)
  31208. {
  31209. Players[playerid][pMedicKit] = 0;
  31210. SetPlayerHealth(playerid, 100.0);
  31211. SendInfoMessage(playerid, "Your health has regenerated.");
  31212. }
  31213. else
  31214. {
  31215. SetPlayerHealth(playerid, health);
  31216. }
  31217. }
  31218. if (Players[playerid][pPicking] != PICK_LOCK_NONE)
  31219. {
  31220. Players[playerid][pPickTime]--;
  31221. format(string, sizeof(string), "Picking lock... %i seconds.", Players[playerid][pPickTime]);
  31222. ShowFooterText(playerid, string, 1500);
  31223. switch (Players[playerid][pPicking])
  31224. {
  31225. case PICK_LOCK_HOUSE:
  31226. {
  31227. if (GetClosestHouse(playerid) != Players[playerid][pPickID] || !Houses[Players[playerid][pPickID]][hLocked])
  31228. {
  31229. StopPicking(playerid);
  31230. }
  31231. else if (Players[playerid][pPickTime] <= 0)
  31232. {
  31233. Houses[Players[playerid][pPickID]][hLocked] = 0;
  31234. SaveHouse(Players[playerid][pPickID]);
  31235. StopPicking(playerid);
  31236. SendInfoMessage(playerid, "You have picked open the lock. %i", Players[playerid][pPickID]);
  31237. }
  31238. }
  31239. case PICK_LOCK_SAFE:
  31240. {
  31241. //else if ((id = GetClosestFurniture(playerid, 2.0, 2332)) != INVALID_ID)
  31242. if (GetClosestFurniture(playerid, 2.0, 2332) != Players[playerid][pPickID])
  31243. {
  31244. StopPicking(playerid);
  31245. }
  31246. else if (Players[playerid][pPickTime] <= 0)
  31247. {
  31248. new
  31249. safe = GetClosestFurniture(playerid, 2.0, 2332);
  31250. Furniture[safe][fSafeOpen] = 1;
  31251. SendInfoMessage(playerid, "You have picked open the lock.");
  31252. UpdateDynamic3DTextLabelText(Furniture[safe][fText], COLOR_GREY, "Status: {D4993B}Broken{AFAFAF}\nPress Y to use safe");
  31253. StopPicking(playerid);
  31254. }
  31255. }
  31256. case PICK_LOCK_COMPANY:
  31257. {
  31258. if (GetClosestCompany(playerid) != Players[playerid][pPickID] || !Companies[Players[playerid][pPickID]][cLocked])
  31259. {
  31260. StopPicking(playerid);
  31261. }
  31262. else if (Players[playerid][pPickTime] <= 0)
  31263. {
  31264. Companies[Players[playerid][pPickID]][cLocked] = 0;
  31265. SaveCompany(Players[playerid][pPickID]);
  31266. StopPicking(playerid);
  31267. SendInfoMessage(playerid, "You have picked open the lock.");
  31268. }
  31269. }
  31270. case PICK_LOCK_VEHICLE:
  31271. {
  31272. if (GetVehicleID(GetClosestVehicle(playerid)) != Players[playerid][pPickID] || !Vehicles[Players[playerid][pPickID]][vLocked])
  31273. {
  31274. StopPicking(playerid);
  31275. }
  31276. else if (Players[playerid][pPickTime] <= 0)
  31277. {
  31278. Vehicles[Players[playerid][pPickID]][vLocked] = 0;
  31279. SetLockStatus(Vehicles[Players[playerid][pPickID]][vVehicle], false);
  31280. SaveVehicle(Players[playerid][pPickID]);
  31281. StopPicking(playerid);
  31282. SendInfoMessage(playerid, "You have picked open the lock on this vehicle.");
  31283. }
  31284. }
  31285. }
  31286. }
  31287. if (Players[playerid][pDonator] == 0 && Weapons[playerid][wTertiary])
  31288. {
  31289. SetPlayerWeapon(playerid, WEAPON_TERTIARY, 0);
  31290. }
  31291. if (IsPlayerSpawned(playerid) && Players[playerid][pAnticheat] <= 0)
  31292. {
  31293. new Float:armor;
  31294. GetPlayerArmour(playerid, armor);
  31295. if (armor >= 100.0 && Players[playerid][pArmor] < 100.0)
  31296. {
  31297. Players[playerid][pCheatFlags]++;
  31298. if (Players[playerid][pCheatFlags] < 3)
  31299. {
  31300. SendAdminMessage(COLOR_RED, "Admin: %s may be using hacked armor.", ReturnNameEx(playerid, 0));
  31301. }
  31302. else
  31303. {
  31304. SendAdminMessage(COLOR_RED, "Admin: %s was banned for spawning armor.", ReturnNameEx(playerid, 0));
  31305. AddToBlacklist(playerid, "Anticheat", "Armor hacks");
  31306. }
  31307. }
  31308. if (IsWeaponCheater(playerid))
  31309. {
  31310. Players[playerid][pCheatFlags]++;
  31311. if (Players[playerid][pCheatFlags] < 3)
  31312. {
  31313. SendAdminMessage(COLOR_RED, "Admin: %s may be weapon hacking a %s.", ReturnNameEx(playerid, 0), GetWeapon(GetPlayerWeapon(playerid)));
  31314. }
  31315. else
  31316. {
  31317. format(string, sizeof(string), "Weapon cheats (%s)", GetWeapon(GetPlayerWeapon(playerid)));
  31318. SendAdminMessage(COLOR_RED, "Admin: %s was banned for weapon cheats (%s).", ReturnNameEx(playerid, 0), GetWeapon(GetPlayerWeapon(playerid)));
  31319. AddToBlacklist(playerid, "Anticheat", string);
  31320. }
  31321. }
  31322. }
  31323. /*if (GetPlayerState(playerid) == PLAYER_STATE_DRIVER && GetVehicleKMH(GetPlayerVehicleID(playerid)) > 350.0)
  31324. {
  31325. SendAdminMessage(COLOR_RED, "Admin: %s may be speed hacking as their speed is over 350 km/h.", ReturnNameEx(playerid, 0));
  31326. }*/
  31327. if (IsPlayerHoldingTazer(playerid) && GetPlayerAmmo(playerid) > 2 && !IsPlayerInAnyVehicle(playerid))
  31328. {
  31329. SendAdminMessage(COLOR_RED, "Admin: %s is holding a taser with more than 2 ammo.", ReturnNameEx(playerid, 0));
  31330. }
  31331. /*if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK && Players[playerid][pAdmin] < 2)
  31332. {
  31333. SendAdminMessage(COLOR_RED, "Admin: %s may be using a hacked jetpack.", ReturnNameEx(playerid, 0));
  31334. }*/
  31335. /*if (GetPlayerCameraMode(playerid) == 55 && !PlayerHasWeapon(playerid, GetPlayerWeapon(playerid)))
  31336. {
  31337. SendAdminMessage(COLOR_RED, "Admin: %s was kicked for using a desynced weapon in a drive-by.", ReturnNameEx(playerid));
  31338. KickPlayer(playerid);
  31339. }*/
  31340. //UpdateColorForPlayer(playerid);
  31341. UpdateMaskForPlayer(playerid);
  31342. SetCheckpointsForPlayer(playerid);
  31343. if (GetPlayerState(playerid) == PLAYER_STATE_ONFOOT || !IsPoweredVehicle(GetPlayerVehicleID(playerid))) {
  31344. StereoUpdate(playerid);
  31345. } else if (IsPlayerInAnyVehicle(playerid) && IsPoweredVehicle(GetPlayerVehicleID(playerid))) {
  31346. VehicleStereoUpdate(playerid);
  31347. }
  31348. if (Players[playerid][pVehicleStream] != INVALID_PLAYER_ID && !IsPlayerInVehicle(playerid, Players[playerid][pVehicleStream])) {
  31349. Players[playerid][pVehicleStream] = INVALID_VEHICLE_ID;
  31350. StopAudioStreamForPlayer(playerid);
  31351. }
  31352. else if (Players[playerid][pStereoPlayerID] != INVALID_PLAYER_ID && Players[playerid][pStereoPlayerID] != GetNearbyStereoPlayerID(playerid)) {
  31353. Players[playerid][pStereoPlayerID] = INVALID_PLAYER_ID;
  31354. StopAudioStreamForPlayer(playerid);
  31355. }
  31356. }
  31357. }
  31358. }
  31359. /*forward PublishAds();
  31360. public PublishAds()
  31361. {
  31362. foreach (new i : Player)
  31363. {
  31364. if (IsAdvertisementActive(i))
  31365. {
  31366. SendFormatMessageToAll(COLOR_GREEN, "(Advertisement) %s - number: %i", GetPackedString(gAdvertisement[i]), Players[i][pPhone]);
  31367. ResetAdvertisement(i);
  31368. break;
  31369. }
  31370. }
  31371. }*/
  31372. forward MinuteSync();
  31373. public MinuteSync()
  31374. {
  31375. new minute;
  31376. static message[128];
  31377. gMinutes++;
  31378. if (gMinutes >= 60)
  31379. {
  31380. gCallsHour = 0;
  31381. gArrestsHour = 0;
  31382. }
  31383. gettime(.minute = minute);
  31384. UpdateTimeTextDraw();
  31385. new pendingApps=0;
  31386. new pendingRequests=0;
  31387. new pendingReports=0;
  31388. for(new i = 0; i < MAX_REPORTS; i ++)
  31389. if(Reports[i][rExists])
  31390. pendingReports++;
  31391. foreach(new i : Player)
  31392. if(IsHelpRequestActive(i))
  31393. pendingRequests++;
  31394. if(pendingReports)
  31395. {
  31396. SendAdminMessage(COLOR_LIGHTRED, "[REPORTS] There are %d pending reports. (/reports)", pendingReports);
  31397. }
  31398. if(pendingRequests)
  31399. {
  31400. SendSupporterMessage(COLOR_YELLOW, "[REQUEST] There are %d pending help requests. (/listhelp)", pendingRequests);
  31401. }
  31402. foreach (new i : Player)
  31403. {
  31404. if (!IsPlayerPaused(i))
  31405. {
  31406. SyncTimeForPlayer(i);
  31407. UpdateNameTag(i, 2);
  31408. Players[i][pMinutes]++;
  31409. if ((Players[i][pMinutes] % 10) == 0)
  31410. {
  31411. SaveAccount(i);
  31412. }
  31413. if (Players[i][pMinutes] >= 60)
  31414. {
  31415. Players[i][pHoursOnline] = Players[i][pHoursOnline] + 1;
  31416. Players[i][pMinutes] = 0;
  31417. SendFormatMessage(i, COLOR_YELLOW, "-------------------------------------------");
  31418. SendFormatMessage(i, COLOR_YELLOW, " LOS SANTOS BANK ");
  31419. SendFormatMessage(i, COLOR_WHITE, "Paycheck:");
  31420. if (GetTotalPaycheckAmount(i) > 0)
  31421. {
  31422. if (Players[i][pJobPaycheck] > 0)
  31423. {
  31424. Players[i][pPaycheck] += Players[i][pJobPaycheck];
  31425. SendFormatMessage(i, COLOR_LIGHTGREY, "Job Paycheck: {33CC33}%s", FormatNumber(Players[i][pJobPaycheck]));
  31426. }
  31427. if (Players[i][pFaction] != INVALID_ID && Factions[Players[i][pFaction]][fcType] != FACTION_ILLEGAL)
  31428. {
  31429. new
  31430. amount = GetFactionRankPay(Players[i][pFaction], Players[i][pFactionRank]);
  31431. if (amount)
  31432. {
  31433. Players[i][pPaycheck] += amount;
  31434. SendFormatMessage(i, COLOR_WHITE, "Faction Pay: {33CC33}%s", FormatNumber(amount));
  31435. }
  31436. }
  31437. }
  31438. if (Players[i][pJob] == JOB_MECHANIC)
  31439. {
  31440. Players[i][pPaycheck] += 1500;
  31441. SendFormatMessage(i, COLOR_WHITE, "Mechanic Paycheck: {33CC33}%s", FormatNumber(1500));
  31442. }
  31443. if (Players[i][pHoursOnline] < 10)
  31444. {
  31445. Players[i][pPaycheck] += 2000;
  31446. SendFormatMessage(i, COLOR_WHITE, "Paycheck: {33CC33}%s", FormatNumber(2000));
  31447. }
  31448. if (Players[i][pSavingsMoney] != 0)
  31449. {
  31450. if (Players[i][pSavingsMoney] >= 50000000)
  31451. {
  31452. SendFormatMessage(i, COLOR_WHITE, "You have reached maximum savings of: {33CC33}%s", FormatNumber(Players[i][pSavingsMoney]));
  31453. }
  31454. else
  31455. {
  31456. new oldsavings = Players[i][pSavingsMoney];
  31457. SendFormatMessage(i, COLOR_WHITE, "Old Savings: {33CC33}%s", FormatNumber(oldsavings));
  31458. new newsavings = oldsavings / 100 * 1;
  31459. SendFormatMessage(i, COLOR_WHITE, "New Savings: {33CC33}%s {FFFFFF}(+{33CC33}%s{FFFFFF})", FormatNumber(oldsavings + newsavings), FormatNumber(newsavings));
  31460. Players[i][pSavingsMoney] += newsavings;
  31461. }
  31462. }
  31463. switch (Players[i][pDonator])
  31464. {
  31465. case DONATOR_BASIC:
  31466. {
  31467. Players[i][pPaycheck] += 2500;
  31468. SendFormatMessage(i, COLOR_WHITE, "Donator Bonus: {33CC33}$2,500");
  31469. }
  31470. case DONATOR_STANDARD:
  31471. {
  31472. Players[i][pPaycheck] += 3500;
  31473. SendFormatMessage(i, COLOR_WHITE, "Donator Bonus: {33CC33}$3,500");
  31474. }
  31475. case DONATOR_INVESTOR:
  31476. {
  31477. Players[i][pPaycheck] += 5500;
  31478. SendFormatMessage(i, COLOR_WHITE, "Donator Bonus: {33CC33}$5,500");
  31479. }
  31480. case DONATOR_PREMIUM:
  31481. {
  31482. Players[i][pPaycheck] += 7500;
  31483. SendFormatMessage(i, COLOR_WHITE, "Donator Bonus: {33CC33}$7,500");
  31484. }
  31485. }
  31486. Players[i][pJobPaycheck] = 0;
  31487. SendFormatMessage(i, COLOR_GREY, "-------------------------------------------");
  31488. GameTextForPlayer(i, "~g~~h~Paycheck", 3000, 1);
  31489. }
  31490. }
  31491. if(currentQuestion[i] == 10 && Players[i][pActivated] == 0)
  31492. {
  31493. pendingApps++;
  31494. }
  31495. }
  31496. if (pendingApps > 0) {
  31497. format(message, sizeof(message), "[QUIZ] There are %d pending applications. (/quizes)", pendingApps);
  31498. SendSupporterMessage(COLOR_LIGHTRED, message);
  31499. SendAdminMessage(COLOR_LIGHTRED, message);
  31500. SendVeteranMessage(COLOR_LIGHTRED, message);
  31501. }
  31502. for (new i = 0; i < MAX_REPORTS; i ++)
  31503. {
  31504. if (Reports[i][rExists])
  31505. {
  31506. Reports[i][rReportTime]--;
  31507. if (Reports[i][rReportTime] <= 0)
  31508. {
  31509. Reports[i][rExists] = 0;
  31510. SendInfoMessage(Reports[i][rReporter], "Your report has expired. You can try reporting again later.");
  31511. }
  31512. }
  31513. }
  31514. for (new i = 0; i < MAX_EMERGENCY; i ++)
  31515. {
  31516. if (Emergency[i][ecExists])
  31517. {
  31518. Emergency[i][ecTime]--;
  31519. if (Emergency[i][ecTime] <= 0)
  31520. {
  31521. Emergency[i][ecExists] = 0;
  31522. }
  31523. }
  31524. }
  31525. return 1;
  31526. }
  31527. forward OnLoadCarBlacklist();
  31528. public OnLoadCarBlacklist()
  31529. {
  31530. new
  31531. rows = cache_get_row_count(gConnection),
  31532. modelid
  31533. ;
  31534. for (new i = 0; i < rows; i ++)
  31535. {
  31536. modelid = cache_get_field_content_int(i, "Model");
  31537. if (400 <= modelid <= 611) {
  31538. modelid -= 400;
  31539. gVehicleBlacklist[modelid] = true;
  31540. }
  31541. }
  31542. }
  31543. forward OnLoadGunDamages();
  31544. public OnLoadGunDamages()
  31545. {
  31546. new
  31547. rows = cache_get_row_count(gConnection),
  31548. weaponid
  31549. ;
  31550. for (new i = 0; i < rows; i ++)
  31551. {
  31552. weaponid = cache_get_field_content_int(i, "Weapon");
  31553. if (IsValidDamageWeapon(weaponid))
  31554. {
  31555. WeaponDamages[weaponid] = cache_get_field_content_float(i, "Damage");
  31556. }
  31557. }
  31558. }
  31559. forward OnLoadPayphones();
  31560. public OnLoadPayphones()
  31561. {
  31562. new
  31563. rows = cache_get_row_count(gConnection);
  31564. for (new i = 0; i < rows; i ++)
  31565. {
  31566. Payphones[i][phExists] = 1;
  31567. Payphones[i][phID] = cache_get_field_content_int(i, "phID");
  31568. Payphones[i][phNumber] = cache_get_field_content_int(i, "phNumber");
  31569. Payphones[i][phX] = cache_get_field_content_float(i, "phX");
  31570. Payphones[i][phY] = cache_get_field_content_float(i, "phY");
  31571. Payphones[i][phZ] = cache_get_field_content_float(i, "phZ");
  31572. Payphones[i][phA] = cache_get_field_content_float(i, "phA");
  31573. Payphones[i][phInterior] = cache_get_field_content_int(i, "phInterior");
  31574. Payphones[i][phWorld] = cache_get_field_content_int(i, "phWorld");
  31575. Payphones[i][phCaller] = INVALID_PLAYER_ID;
  31576. Payphones[i][phObject] = INVALID_OBJECT_ID;
  31577. Payphones[i][phText] = INVALID_3DTEXT_ID;
  31578. UpdatePayphone(i);
  31579. }
  31580. }
  31581. forward OnLoadSprayTags();
  31582. public OnLoadSprayTags()
  31583. {
  31584. new
  31585. rows = cache_get_row_count(gConnection);
  31586. for (new i = 0; i < rows; i ++)
  31587. {
  31588. cache_get_field_content(i, "stText", SprayTags[i][sText], gConnection, 64);
  31589. SprayTags[i][sExists] = 1;
  31590. SprayTags[i][sID] = cache_get_field_content_int(i, "stID");
  31591. SprayTags[i][sColor] = cache_get_field_content_int(i, "stColor");
  31592. SprayTags[i][sX] = cache_get_field_content_float(i, "stX");
  31593. SprayTags[i][sY] = cache_get_field_content_float(i, "stY");
  31594. SprayTags[i][sZ] = cache_get_field_content_float(i, "stZ");
  31595. SprayTags[i][sA] = cache_get_field_content_float(i, "stA");
  31596. SprayTags[i][sObject] = INVALID_OBJECT_ID;
  31597. UpdateSprayTag(i);
  31598. }
  31599. }
  31600. forward OnLoadTags();
  31601. public OnLoadTags()
  31602. {
  31603. new
  31604. rows = cache_get_row_count(gConnection);
  31605. for (new i = 0; i < rows; i ++)
  31606. {
  31607. cache_get_field_content(i, "stText", Tags[i][tagText], gConnection, 64);
  31608. Tags[i][tagExists] = 1;
  31609. Tags[i][tagID] = cache_get_field_content_int(i, "stID");
  31610. Tags[i][tagColor] = cache_get_field_content_int(i, "stColor");
  31611. Tags[i][tagX] = cache_get_field_content_float(i, "stX");
  31612. Tags[i][tagY] = cache_get_field_content_float(i, "stY");
  31613. Tags[i][tagZ] = cache_get_field_content_float(i, "stZ");
  31614. Tags[i][tagA] = cache_get_field_content_float(i, "stA");
  31615. Tags[i][tagObject] = INVALID_OBJECT_ID;
  31616. Tags[i][tagFontSize] = cache_get_field_content_int(i, "stFontSize");
  31617. Tags[i][tagBold] = cache_get_field_content_int(i, "stBold");
  31618. UpdateTag(i);
  31619. }
  31620. }
  31621. forward OnLoadTrashbins();
  31622. public OnLoadTrashbins()
  31623. {
  31624. new
  31625. rows = cache_get_row_count(gConnection);
  31626. for (new i = 0; i < rows; i ++)
  31627. {
  31628. Trashbins[i][tExists] = 1;
  31629. Trashbins[i][tID] = cache_get_field_content_int(i, "tID");
  31630. Trashbins[i][tX] = cache_get_field_content_float(i, "tX");
  31631. Trashbins[i][tY] = cache_get_field_content_float(i, "tY");
  31632. Trashbins[i][tZ] = cache_get_field_content_float(i, "tZ");
  31633. Trashbins[i][tA] = cache_get_field_content_float(i, "tA");
  31634. Trashbins[i][tInterior] = cache_get_field_content_int(i, "tInterior");
  31635. Trashbins[i][tWorld] = cache_get_field_content_int(i, "tWorld");
  31636. Trashbins[i][tText] = INVALID_3DTEXT_ID;
  31637. Trashbins[i][tObject] = INVALID_OBJECT_ID;
  31638. UpdateTrashbin(i);
  31639. }
  31640. }
  31641. forward OnLoadObjects();
  31642. public OnLoadObjects()
  31643. {
  31644. new
  31645. rows = cache_get_row_count(gConnection);
  31646. for (new i = 0; i < rows; i ++)
  31647. {
  31648. Objects[i][oExists] = 1;
  31649. Objects[i][oID] = cache_get_field_content_int(i, "oID");
  31650. Objects[i][oModel] = cache_get_field_content_int(i, "oModel");
  31651. Objects[i][oX] = cache_get_field_content_float(i, "oX");
  31652. Objects[i][oY] = cache_get_field_content_float(i, "oY");
  31653. Objects[i][oZ] = cache_get_field_content_float(i, "oZ");
  31654. Objects[i][oRX] = cache_get_field_content_float(i, "oRX");
  31655. Objects[i][oRY] = cache_get_field_content_float(i, "oRY");
  31656. Objects[i][oRZ] = cache_get_field_content_float(i, "oRZ");
  31657. Objects[i][oDistance] = cache_get_field_content_float(i, "oDistance");
  31658. Objects[i][oInterior] = cache_get_field_content_int(i, "oInterior");
  31659. Objects[i][oWorld] = cache_get_field_content_int(i, "oWorld");
  31660. Objects[i][oObjectID] = INVALID_OBJECT_ID;
  31661. Objects[i][oText] = INVALID_3DTEXT_ID;
  31662. UpdateObject(i);
  31663. }
  31664. }
  31665. forward OnLoadAutoShops();
  31666. public OnLoadAutoShops()
  31667. {
  31668. new
  31669. rows = cache_get_row_count(gConnection);
  31670. for (new i = 0; i < rows; i ++)
  31671. {
  31672. AutoShops[i][asExists] = 1;
  31673. AutoShops[i][asID] = cache_get_field_content_int(i, "asID");
  31674. AutoShops[i][asX] = cache_get_field_content_float(i, "asX");
  31675. AutoShops[i][asY] = cache_get_field_content_float(i, "asY");
  31676. AutoShops[i][asZ] = cache_get_field_content_float(i, "asZ");
  31677. AutoShops[i][asText] = INVALID_3DTEXT_ID;
  31678. AutoShops[i][asPickup] = INVALID_ID;
  31679. AutoShops[i][asIcon] = INVALID_ID;
  31680. UpdateAutoShop(i);
  31681. }
  31682. }
  31683. forward OnLoadGates();
  31684. public OnLoadGates()
  31685. {
  31686. new
  31687. rows = cache_get_row_count(gConnection);
  31688. for (new i = 0; i < rows; i ++)
  31689. {
  31690. cache_get_field_content(i, "gPassword", Gates[i][gPassword], gConnection, 64);
  31691. Gates[i][gExists] = 1;
  31692. Gates[i][gID] = cache_get_field_content_int(i, "gID");
  31693. Gates[i][gModel] = cache_get_field_content_int(i, "gModel");
  31694. Gates[i][gSpeed] = cache_get_field_content_float(i, "gSpeed");
  31695. Gates[i][gRadius] = cache_get_field_content_float(i, "gRadius");
  31696. Gates[i][gFactionID] = cache_get_field_content_int(i, "gFactionID");
  31697. Gates[i][gLinkID] = cache_get_field_content_int(i, "gLinkID");
  31698. Gates[i][gSpawn][0] = cache_get_field_content_float(i, "gX");
  31699. Gates[i][gSpawn][1] = cache_get_field_content_float(i, "gY");
  31700. Gates[i][gSpawn][2] = cache_get_field_content_float(i, "gZ");
  31701. Gates[i][gSpawn][3] = cache_get_field_content_float(i, "gRX");
  31702. Gates[i][gSpawn][4] = cache_get_field_content_float(i, "gRY");
  31703. Gates[i][gSpawn][5] = cache_get_field_content_float(i, "gRZ");
  31704. Gates[i][gMove][0] = cache_get_field_content_float(i, "gMoveX");
  31705. Gates[i][gMove][1] = cache_get_field_content_float(i, "gMoveY");
  31706. Gates[i][gMove][2] = cache_get_field_content_float(i, "gMoveZ");
  31707. Gates[i][gMove][3] = cache_get_field_content_float(i, "gMoveRX");
  31708. Gates[i][gMove][4] = cache_get_field_content_float(i, "gMoveRY");
  31709. Gates[i][gMove][5] = cache_get_field_content_float(i, "gMoveRZ");
  31710. Gates[i][gInterior] = cache_get_field_content_int(i, "gInterior");
  31711. Gates[i][gWorld] = cache_get_field_content_int(i, "gWorld");
  31712. Gates[i][gObject] = INVALID_OBJECT_ID;
  31713. Gates[i][gOpened] = 0;
  31714. UpdateGate(i);
  31715. }
  31716. }
  31717. forward OnLoadLabels();
  31718. public OnLoadLabels()
  31719. {
  31720. new
  31721. rows = cache_get_row_count(gConnection);
  31722. for (new i = 0; i < rows; i ++)
  31723. {
  31724. cache_get_field_content(i, "lText", Labels[i][lText], gConnection, 144);
  31725. Labels[i][lExists] = 1;
  31726. Labels[i][lID] = cache_get_field_content_int(i, "lID");
  31727. Labels[i][lColor] = cache_get_field_content_int(i, "lColor");
  31728. Labels[i][lX] = cache_get_field_content_float(i, "lX");
  31729. Labels[i][lY] = cache_get_field_content_float(i, "lY");
  31730. Labels[i][lZ] = cache_get_field_content_float(i, "lZ");
  31731. Labels[i][lDistance] = cache_get_field_content_float(i, "lDistance");
  31732. Labels[i][lInterior] = cache_get_field_content_int(i, "lInterior");
  31733. Labels[i][lWorld] = cache_get_field_content_int(i, "lWorld");
  31734. Labels[i][lText3D] = INVALID_3DTEXT_ID;
  31735. UpdateLabel(i);
  31736. }
  31737. printf("(SQL) %i labels loaded.", rows);
  31738. }
  31739. forward OnLoadTeleports();
  31740. public OnLoadTeleports()
  31741. {
  31742. new
  31743. rows = cache_get_row_count(gConnection);
  31744. for (new i = 0; i < rows; i ++)
  31745. {
  31746. cache_get_field_content(i, "tpName", Teleports[i][tpName], gConnection, 32);
  31747. Teleports[i][tpExists] = 1;
  31748. Teleports[i][tpID] = cache_get_field_content_int(i, "tpID");
  31749. Teleports[i][tpX] = cache_get_field_content_float(i, "tpX");
  31750. Teleports[i][tpY] = cache_get_field_content_float(i, "tpY");
  31751. Teleports[i][tpZ] = cache_get_field_content_float(i, "tpZ");
  31752. Teleports[i][tpA] = cache_get_field_content_float(i, "tpA");
  31753. Teleports[i][tpInterior] = cache_get_field_content_int(i, "tpInterior");
  31754. Teleports[i][tpWorld] = cache_get_field_content_int(i, "tpWorld");
  31755. }
  31756. printf("(SQL) %i teleports loaded.", rows);
  31757. }
  31758. forward OnLoadArrestPoints();
  31759. public OnLoadArrestPoints()
  31760. {
  31761. new
  31762. rows = cache_get_row_count(gConnection);
  31763. for (new i = 0; i < rows; i ++)
  31764. {
  31765. ArrestPoints[i][apExists] = 1;
  31766. ArrestPoints[i][apID] = cache_get_field_content_int(i, "apID");
  31767. ArrestPoints[i][apX] = cache_get_field_content_float(i, "apX");
  31768. ArrestPoints[i][apY] = cache_get_field_content_float(i, "apY");
  31769. ArrestPoints[i][apZ] = cache_get_field_content_float(i, "apZ");
  31770. ArrestPoints[i][apInterior] = cache_get_field_content_int(i, "apInterior");
  31771. ArrestPoints[i][apWorld] = cache_get_field_content_int(i, "apWorld");
  31772. ArrestPoints[i][apText] = INVALID_3DTEXT_ID;
  31773. ArrestPoints[i][apPickup] = INVALID_ID;
  31774. UpdateArrestPoint(i);
  31775. }
  31776. printf("(SQL) %i arrest points loaded.", rows);
  31777. }
  31778. forward OnLoadFactionUniforms(faction);
  31779. public OnLoadFactionUniforms(faction)
  31780. {
  31781. new
  31782. rows = cache_get_row_count(gConnection);
  31783. for (new i = 0; i < rows; i ++)
  31784. {
  31785. Factions[faction][fcUniforms][i] = cache_get_field_content_int(i, "uniformSkin");
  31786. }
  31787. }
  31788. forward OnLoadFactionAccessories(faction);
  31789. public OnLoadFactionAccessories(faction)
  31790. {
  31791. new
  31792. rows = cache_get_row_count(gConnection);
  31793. for(new i = 0; i < rows; i ++)
  31794. {
  31795. cache_get_field_content(i, "accessoryName", FactionAccessories[faction][i][fcAccessoryName], gConnection, 32);
  31796. FactionAccessories[faction][i][fcAccessoryModel] = cache_get_field_content_int(i, "accessoryModel");
  31797. FactionAccessories[faction][i][fcAccessoryBone] = cache_get_field_content_int(i, "accessoryBone");
  31798. FactionAccessories[faction][i][fcAccessoryExists] = 1;
  31799. }
  31800. }
  31801. forward OnLoadFactionEquipment(faction);
  31802. public OnLoadFactionEquipment(faction)
  31803. {
  31804. new
  31805. rows = cache_get_row_count(gConnection);
  31806. for(new i = 0; i < rows; i ++)
  31807. {
  31808. cache_get_field_content(i, "itemName", FactionEquipment[faction][i][fcItemName], gConnection, MAX_ITEM_NAME);
  31809. FactionEquipment[faction][i][fcItemValue] = cache_get_field_content_int(i, "itemValue");
  31810. FactionEquipment[faction][i][fcItemExists] = 1;
  31811. }
  31812. }
  31813. forward OnLoadFactionRanks(faction);
  31814. public OnLoadFactionRanks(faction)
  31815. {
  31816. new
  31817. rows = cache_get_row_count(gConnection);
  31818. for (new i = 0; i < rows; i ++)
  31819. {
  31820. cache_get_field_content(i, "rankName", Ranks[faction][i], gConnection, MAX_RANK_NAME);
  31821. Factions[faction][fcPaycheck][i] = cache_get_field_content_int(i, "rankPaycheck");
  31822. }
  31823. }
  31824. forward OnLoadFactions();
  31825. public OnLoadFactions()
  31826. {
  31827. new
  31828. rows = cache_get_row_count(gConnection);
  31829. for (new i = 0; i < rows; i ++)
  31830. {
  31831. cache_get_field_content(i, "fcName", Factions[i][fcName], gConnection, 32);
  31832. Factions[i][fcExists] = 1;
  31833. Factions[i][fcID] = cache_get_field_content_int(i, "fcID");
  31834. Factions[i][fcType] = cache_get_field_content_int(i, "fcType");
  31835. Factions[i][fcColor] = cache_get_field_content_int(i, "fcColor");
  31836. Factions[i][fcMaxRanks] = cache_get_field_content_int(i, "fcMaxRanks");
  31837. Factions[i][fcLockerX] = cache_get_field_content_float(i, "fcLockerX");
  31838. Factions[i][fcLockerY] = cache_get_field_content_float(i, "fcLockerY");
  31839. Factions[i][fcLockerZ] = cache_get_field_content_float(i, "fcLockerZ");
  31840. Factions[i][fcLockerInt] = cache_get_field_content_int(i, "fcLockerInt");
  31841. Factions[i][fcLockerWorld] = cache_get_field_content_int(i, "fcLockerWorld");
  31842. Factions[i][fcWeaponRights][0] = cache_get_field_content_int(i, "fcMeleeRights");
  31843. Factions[i][fcWeaponRights][1] = cache_get_field_content_int(i, "fcPistolRights");
  31844. Factions[i][fcWeaponRights][2] = cache_get_field_content_int(i, "fcShotgunRights");
  31845. Factions[i][fcWeaponRights][3] = cache_get_field_content_int(i, "fcSMGRights");
  31846. Factions[i][fcWeaponRights][4] = cache_get_field_content_int(i, "fcRifleRights");
  31847. Factions[i][fcDrugRights] = cache_get_field_content_int(i, "fcDrugRights");
  31848. Factions[i][fcSprayRights] = cache_get_field_content_int(i, "fcSprayRights");
  31849. Factions[i][fcSpawnX] = cache_get_field_content_float(i, "fcSpawnX");
  31850. Factions[i][fcSpawnY] = cache_get_field_content_float(i, "fcSpawnY");
  31851. Factions[i][fcSpawnZ] = cache_get_field_content_float(i, "fcSpawnZ");
  31852. Factions[i][fcSpawnA] = cache_get_field_content_float(i, "fcSpawnA");
  31853. Factions[i][fcSpawnInt] = cache_get_field_content_int(i, "fcSpawnInt");
  31854. Factions[i][fcSpawnWorld] = cache_get_field_content_int(i, "fcSpawnWorld");
  31855. Factions[i][fcPickup] = INVALID_ID;
  31856. Factions[i][fcText] = INVALID_3DTEXT_ID;
  31857. UpdateFaction(i);
  31858. }
  31859. for (new i = 0; i < rows; i ++)
  31860. {
  31861. if (Factions[i][fcExists])
  31862. {
  31863. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_factionranks WHERE rankFactionID = %i", Factions[i][fcID]);
  31864. mysql_tquery(gConnection, gExecute, "OnLoadFactionRanks", "i", i);
  31865. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_factionskins WHERE uniformFactionID = %i", Factions[i][fcID]);
  31866. mysql_tquery(gConnection, gExecute, "OnLoadFactionUniforms", "i", i);
  31867. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_factionequipment WHERE itemFactionID = %i", Factions[i][fcID]);
  31868. mysql_tquery(gConnection, gExecute, "OnLoadFactionEquipment", "i", i);
  31869. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_factionaccessories WHERE accessoryFactionID = %i", Factions[i][fcID]);
  31870. mysql_tquery(gConnection, gExecute, "OnLoadFactionAccessories", "i", i);
  31871. }
  31872. }
  31873. printf("(SQL) %i factions loaded.", rows);
  31874. }
  31875. forward OnLoadFoodItems(company);
  31876. public OnLoadFoodItems(company)
  31877. {
  31878. new
  31879. rows = cache_get_row_count(gConnection);
  31880. for (new i = 0; i < rows; i ++)
  31881. {
  31882. cache_get_field_content(i, "Name", RestaurantItems[company][i][rtName], gConnection, 24);
  31883. RestaurantItems[company][i][rtExists] = 1;
  31884. RestaurantItems[company][i][rtID] = cache_get_field_content_int(i, "ID");
  31885. RestaurantItems[company][i][rtStock] = cache_get_field_content_int(i, "Stock");
  31886. RestaurantItems[company][i][rtPrice] = cache_get_field_content_int(i, "Price");
  31887. RestaurantItems[company][i][rtType] = cache_get_field_content_int(i, "Type");
  31888. RestaurantItems[company][i][rtHealth] = cache_get_field_content_int(i, "Health");
  31889. }
  31890. }
  31891. forward OnLoadProducts(company);
  31892. public OnLoadProducts(company)
  31893. {
  31894. new
  31895. rows = cache_get_row_count(gConnection);
  31896. for (new i = 0; i < rows; i ++)
  31897. {
  31898. Products[company][i][prPrice] = cache_get_field_content_int(i, "Price");
  31899. Products[company][i][prStock] = cache_get_field_content_int(i, "Stock");
  31900. }
  31901. }
  31902. forward OnLoadBuildings();
  31903. public OnLoadBuildings()
  31904. {
  31905. new
  31906. rows = cache_get_row_count(gConnection);
  31907. for (new i = 0; i < rows; i ++)
  31908. {
  31909. cache_get_field_content(i, "bName", Buildings[i][bName], gConnection, 32);
  31910. Buildings[i][bExists] = 1;
  31911. Buildings[i][bID] = cache_get_field_content_int(i, "bID");
  31912. Buildings[i][bIconType] = cache_get_field_content_int(i, "bIconType");
  31913. Buildings[i][bLocked] = cache_get_field_content_int(i, "bLocked");
  31914. Buildings[i][bSpawn][0] = cache_get_field_content_float(i, "bSpawnX");
  31915. Buildings[i][bSpawn][1] = cache_get_field_content_float(i, "bSpawnY");
  31916. Buildings[i][bSpawn][2] = cache_get_field_content_float(i, "bSpawnZ");
  31917. Buildings[i][bSpawn][3] = cache_get_field_content_float(i, "bSpawnA");
  31918. Buildings[i][bInt][0] = cache_get_field_content_float(i, "bIntX");
  31919. Buildings[i][bInt][1] = cache_get_field_content_float(i, "bIntY");
  31920. Buildings[i][bInt][2] = cache_get_field_content_float(i, "bIntZ");
  31921. Buildings[i][bInt][3] = cache_get_field_content_float(i, "bIntA");
  31922. Buildings[i][bExterior] = cache_get_field_content_int(i, "bExterior");
  31923. Buildings[i][bExteriorWorld] = cache_get_field_content_int(i, "bExteriorWorld");
  31924. Buildings[i][bInterior] = cache_get_field_content_int(i, "bInterior");
  31925. Buildings[i][bWorld] = cache_get_field_content_int(i, "bWorld");
  31926. Buildings[i][bPickup] = INVALID_ID;
  31927. Buildings[i][bIcon] = INVALID_ID;
  31928. Buildings[i][bText] = INVALID_3DTEXT_ID;
  31929. UpdateBuilding(i);
  31930. }
  31931. printf("(SQL) %i buildings loaded.", rows);
  31932. }
  31933. forward OnLoadVehicleMods(vehicle);
  31934. public OnLoadVehicleMods(vehicle)
  31935. {
  31936. new
  31937. rows = cache_get_row_count(gConnection),
  31938. slot;
  31939. for (new i = 0; i < rows; i ++)
  31940. {
  31941. slot = cache_get_field_content_int(i, "vSlot");
  31942. Vehicles[vehicle][vMods][slot] = cache_get_field_content_int(i, "vComponent");
  31943. }
  31944. ApplyModifications(vehicle);
  31945. }
  31946. forward OnLoadVehicles();
  31947. public OnLoadVehicles()
  31948. {
  31949. new
  31950. rows = cache_get_row_count(gConnection);
  31951. for (new i = 0; i < rows; i ++)
  31952. {
  31953. cache_get_field_content(i, "vRegistered", Vehicles[i][vRegistered], gConnection, 32);
  31954. cache_get_field_content(i, "vPlate", Vehicles[i][vPlate], gConnection, 32);
  31955. Vehicles[i][vExists] = 1;
  31956. Vehicles[i][vID] = cache_get_field_content_int(i, "vID");
  31957. Vehicles[i][vCompany] = cache_get_field_content_int(i, "vCompany");
  31958. Vehicles[i][vOwner] = cache_get_field_content_int(i, "vOwner");
  31959. Vehicles[i][vModel] = cache_get_field_content_int(i, "vModel");
  31960. Vehicles[i][vPrice] = cache_get_field_content_int(i, "vPrice");
  31961. Vehicles[i][vRentable] = cache_get_field_content_int(i, "vRentable");
  31962. Vehicles[i][vSpawn][0] = cache_get_field_content_float(i, "vX");
  31963. Vehicles[i][vSpawn][1] = cache_get_field_content_float(i, "vY");
  31964. Vehicles[i][vSpawn][2] = cache_get_field_content_float(i, "vZ");
  31965. Vehicles[i][vSpawn][3] = cache_get_field_content_float(i, "vA");
  31966. Vehicles[i][vColor1] = cache_get_field_content_int(i, "vColor1");
  31967. Vehicles[i][vColor2] = cache_get_field_content_int(i, "vColor2");
  31968. Vehicles[i][vPaintjob] = cache_get_field_content_int(i, "vPaintjob");
  31969. Vehicles[i][vLocked] = cache_get_field_content_int(i, "vLocked");
  31970. Vehicles[i][vTrunkMoney] = cache_get_field_content_int(i, "vTrunkMoney");
  31971. Vehicles[i][vFaction] = cache_get_field_content_int(i, "vFaction");
  31972. Vehicles[i][vSiren] = cache_get_field_content_int(i, "vSiren");
  31973. Vehicles[i][vAlarm] = cache_get_field_content_int(i, "vAlarm");
  31974. Vehicles[i][vImpound] = cache_get_field_content_int(i, "vImpound");
  31975. Vehicles[i][vDespawned] = cache_get_field_content_int(i, "vDespawned");
  31976. Vehicles[i][vText] = INVALID_3DTEXT_ID;
  31977. Vehicles[i][vVehicle] = INVALID_VEHICLE_ID;
  31978. Vehicles[i][vRenter] = INVALID_PLAYER_ID;
  31979. if (Vehicles[i][vRentable] && Vehicles[i][vLocked])
  31980. {
  31981. Vehicles[i][vLocked] = 0;
  31982. }
  31983. UpdateVehicle(i);
  31984. }
  31985. for (new i = 0; i < rows; i ++)
  31986. {
  31987. if (Vehicles[i][vID])
  31988. {
  31989. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_vehiclemods WHERE vID = %i AND vComponent > 0", Vehicles[i][vID]);
  31990. mysql_tquery(gConnection, gExecute, "OnLoadVehicleMods", "i", i);
  31991. }
  31992. }
  31993. printf("(SQL) %i vehicles loaded.", rows);
  31994. }
  31995. forward OnLoadCompanies();
  31996. public OnLoadCompanies()
  31997. {
  31998. new
  31999. rows = cache_get_row_count(gConnection);
  32000. for (new i = 0; i < rows; i ++)
  32001. {
  32002. cache_get_field_content(i, "cName", Companies[i][cName], gConnection, 32);
  32003. cache_get_field_content(i, "cOwnerName", Companies[i][cOwnerName], gConnection, MAX_PLAYER_NAME);
  32004. Companies[i][cExists] = 1;
  32005. Companies[i][cID] = cache_get_field_content_int(i, "cID");
  32006. Companies[i][cOwner] = cache_get_field_content_int(i, "cOwner");
  32007. Companies[i][cValue] = cache_get_field_content_int(i, "cValue");
  32008. Companies[i][cType] = cache_get_field_content_int(i, "cType");
  32009. Companies[i][cSpawn][0] = cache_get_field_content_float(i, "cSpawnX");
  32010. Companies[i][cSpawn][1] = cache_get_field_content_float(i, "cSpawnY");
  32011. Companies[i][cSpawn][2] = cache_get_field_content_float(i, "cSpawnZ");
  32012. Companies[i][cSpawn][3] = cache_get_field_content_float(i, "cSpawnA");
  32013. Companies[i][cVehicle][0] = cache_get_field_content_float(i, "cVehicleX");
  32014. Companies[i][cVehicle][1] = cache_get_field_content_float(i, "cVehicleY");
  32015. Companies[i][cVehicle][2] = cache_get_field_content_float(i, "cVehicleZ");
  32016. Companies[i][cVehicle][3] = cache_get_field_content_float(i, "cVehicleA");
  32017. Companies[i][cInt][0] = cache_get_field_content_float(i, "cIntX");
  32018. Companies[i][cInt][1] = cache_get_field_content_float(i, "cIntY");
  32019. Companies[i][cInt][2] = cache_get_field_content_float(i, "cIntZ");
  32020. Companies[i][cInt][3] = cache_get_field_content_float(i, "cIntA");
  32021. Companies[i][cExterior] = cache_get_field_content_int(i, "cExterior");
  32022. Companies[i][cExteriorWorld] = cache_get_field_content_int(i, "cExteriorWorld");
  32023. Companies[i][cInterior] = cache_get_field_content_int(i, "cInterior");
  32024. Companies[i][cWorld] = cache_get_field_content_int(i, "cWorld");
  32025. Companies[i][cSafe] = cache_get_field_content_int(i, "cSafe");
  32026. Companies[i][cStock] = cache_get_field_content_int(i, "cStock");
  32027. Companies[i][cLocked] = cache_get_field_content_int(i, "cLocked");
  32028. Companies[i][cCheckpoint] = INVALID_ID;
  32029. //Companies[i][cText] = INVALID_3DTEXT_ID;
  32030. Companies[i][cDeliverText] = INVALID_3DTEXT_ID;
  32031. CheckCompanyItems(i);
  32032. UpdateCompany(i);
  32033. }
  32034. for (new i = 0; i < rows; i ++)
  32035. {
  32036. if (Companies[i][cType] == COMPANY_RESTAURANT)
  32037. {
  32038. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_fooditems WHERE cID = %i", Companies[i][cID]);
  32039. mysql_tquery(gConnection, gExecute, "OnLoadFoodItems", "i", i);
  32040. }
  32041. else
  32042. {
  32043. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_products WHERE cID = %i", Companies[i][cID]);
  32044. mysql_tquery(gConnection, gExecute, "OnLoadProducts", "i", i);
  32045. }
  32046. }
  32047. printf("(SQL) %i companies loaded.", rows);
  32048. }
  32049. forward OnLoadFurniture();
  32050. public OnLoadFurniture()
  32051. {
  32052. new
  32053. rows = cache_get_row_count(gConnection);
  32054. for (new i = 0; i < rows; i ++)
  32055. {
  32056. Furniture[i][fExists] = 1;
  32057. Furniture[i][fID] = cache_get_field_content_int(i, "fID");
  32058. Furniture[i][fHouseID] = cache_get_field_content_int(i, "fHouseID");
  32059. Furniture[i][fModel] = cache_get_field_content_int(i, "fModel");
  32060. Furniture[i][fSpawn][0] = cache_get_field_content_float(i, "fX");
  32061. Furniture[i][fSpawn][1] = cache_get_field_content_float(i, "fY");
  32062. Furniture[i][fSpawn][2] = cache_get_field_content_float(i, "fZ");
  32063. Furniture[i][fSpawn][3] = cache_get_field_content_float(i, "fRX");
  32064. Furniture[i][fSpawn][4] = cache_get_field_content_float(i, "fRY");
  32065. Furniture[i][fSpawn][5] = cache_get_field_content_float(i, "fRZ");
  32066. Furniture[i][fInterior] = cache_get_field_content_int(i, "fInterior");
  32067. Furniture[i][fWorld] = cache_get_field_content_int(i, "fWorld");
  32068. Furniture[i][fCode] = cache_get_field_content_int(i, "fCode");
  32069. Furniture[i][fMoney] = cache_get_field_content_int(i, "fMoney");
  32070. Furniture[i][fMaterial][0] = cache_get_field_content_int(i, "Mat1");
  32071. Furniture[i][fMaterial][1] = cache_get_field_content_int(i, "Mat2");
  32072. Furniture[i][fMaterial][2] = cache_get_field_content_int(i, "Mat3");
  32073. Furniture[i][fMatColour][0] = cache_get_field_content_int(i, "MatColor1");
  32074. Furniture[i][fMatColour][1] = cache_get_field_content_int(i, "MatColor2");
  32075. Furniture[i][fMatColour][2] = cache_get_field_content_int(i, "MatColor3");
  32076. Furniture[i][fObject] = INVALID_OBJECT_ID;
  32077. Furniture[i][fText] = INVALID_3DTEXT_ID;
  32078. UpdateFurniture(i);
  32079. }
  32080. printf("(SQL) %i furniture loaded.", rows);
  32081. }
  32082. forward OnLoadHouses();
  32083. public OnLoadHouses()
  32084. {
  32085. new
  32086. rows = cache_get_row_count(gConnection);
  32087. for (new i = 0; i < rows; i ++)
  32088. {
  32089. cache_get_field_content(i, "hAddress", Houses[i][hAddress], gConnection, 32);
  32090. cache_get_field_content(i, "hOwnerName", Houses[i][hOwnerName], gConnection, MAX_PLAYER_NAME);
  32091. Houses[i][hExists] = 1;
  32092. Houses[i][hID] = cache_get_field_content_int(i, "hID");
  32093. Houses[i][hOwner] = cache_get_field_content_int(i, "hOwner");
  32094. Houses[i][hValue] = cache_get_field_content_int(i, "hValue");
  32095. Houses[i][hSpawn][0] = cache_get_field_content_float(i, "hSpawnX");
  32096. Houses[i][hSpawn][1] = cache_get_field_content_float(i, "hSpawnY");
  32097. Houses[i][hSpawn][2] = cache_get_field_content_float(i, "hSpawnZ");
  32098. Houses[i][hSpawn][3] = cache_get_field_content_float(i, "hSpawnA");
  32099. Houses[i][hInt][0] = cache_get_field_content_float(i, "hIntX");
  32100. Houses[i][hInt][1] = cache_get_field_content_float(i, "hIntY");
  32101. Houses[i][hInt][2] = cache_get_field_content_float(i, "hIntZ");
  32102. Houses[i][hInt][3] = cache_get_field_content_float(i, "hIntA");
  32103. Houses[i][hBackdoor][0] = cache_get_field_content_float(i, "hBackdoorX");
  32104. Houses[i][hBackdoor][1] = cache_get_field_content_float(i, "hBackdoorY");
  32105. Houses[i][hBackdoor][2] = cache_get_field_content_float(i, "hBackdoorZ");
  32106. Houses[i][hBackdoorInt][0] = cache_get_field_content_float(i, "hBackdoorIntX");
  32107. Houses[i][hBackdoorInt][1] = cache_get_field_content_float(i, "hBackdoorIntY");
  32108. Houses[i][hBackdoorInt][2] = cache_get_field_content_float(i, "hBackdoorIntZ");
  32109. Houses[i][hExterior] = cache_get_field_content_int(i, "hExterior");
  32110. Houses[i][hExteriorWorld] = cache_get_field_content_int(i, "hExteriorWorld");
  32111. Houses[i][hInterior] = cache_get_field_content_int(i, "hInterior");
  32112. Houses[i][hWorld] = cache_get_field_content_int(i, "hWorld");
  32113. Houses[i][hLocked] = cache_get_field_content_int(i, "hLocked");
  32114. Houses[i][hAlarm] = cache_get_field_content_int(i, "hAlarm");
  32115. Houses[i][hRentPrice] = cache_get_field_content_int(i, "hRentPrice");
  32116. Houses[i][hCheckpoint] = INVALID_ID;
  32117. //Houses[i][hText] = INVALID_3DTEXT_ID;
  32118. Houses[i][hBackdoorText][0] = INVALID_3DTEXT_ID;
  32119. Houses[i][hBackdoorText][1] = INVALID_3DTEXT_ID;
  32120. UpdateHouse(i);
  32121. }
  32122. printf("(SQL) %i houses loaded.", rows);
  32123. }
  32124. forward OnLoadStoredItems();
  32125. public OnLoadStoredItems()
  32126. {
  32127. new
  32128. rows = cache_get_row_count(gConnection),
  32129. string[MAX_ITEM_NAME];
  32130. for (new i = 0; i < rows; i ++)
  32131. {
  32132. cache_get_field_content(i, "itemName", string, gConnection, MAX_ITEM_NAME);
  32133. strpack(StoredItems[i][stName], string, MAX_ITEM_NAME);
  32134. StoredItems[i][stExists] = 1;
  32135. StoredItems[i][stID] = cache_get_field_content_int(i, "itemID");
  32136. StoredItems[i][stValue] = cache_get_field_content_int(i, "itemValue");
  32137. StoredItems[i][stSerial] = cache_get_field_content_int(i, "itemSerial");
  32138. StoredItems[i][stVehicle] = cache_get_field_content_int(i, "itemVehicleID");
  32139. StoredItems[i][stFurniture] = cache_get_field_content_int(i, "itemFurnitureID");
  32140. StoredItems[i][stTrashbin] = cache_get_field_content_int(i, "itemTrashbinID");
  32141. StoredItems[i][stOffset][0] = cache_get_field_content_float(i, "itemOffsetX");
  32142. StoredItems[i][stOffset][1] = cache_get_field_content_float(i, "itemOffsetY");
  32143. StoredItems[i][stOffset][2] = cache_get_field_content_float(i, "itemOffsetZ");
  32144. StoredItems[i][stOffset][3] = cache_get_field_content_float(i, "itemOffsetRX");
  32145. StoredItems[i][stOffset][4] = cache_get_field_content_float(i, "itemOffsetRY");
  32146. StoredItems[i][stOffset][5] = cache_get_field_content_float(i, "itemOffsetRZ");
  32147. }
  32148. return 1;
  32149. }
  32150. forward OnLoadShellCasings();
  32151. public OnLoadShellCasings()
  32152. {
  32153. new
  32154. rows = cache_get_row_count(gConnection);
  32155. for (new i = 0; i < rows; i ++)
  32156. {
  32157. ShellCasings[i][scExists] = 1;
  32158. ShellCasings[i][scID] = cache_get_field_content_int(i, "scID");
  32159. ShellCasings[i][scSerial] = cache_get_field_content_int(i, "scSerial");
  32160. ShellCasings[i][scWeapon] = cache_get_field_content_int(i, "scWeapon");
  32161. ShellCasings[i][scTime] = cache_get_field_content_int(i, "scTime");
  32162. ShellCasings[i][scSpawn][0] = cache_get_field_content_float(i, "scX");
  32163. ShellCasings[i][scSpawn][1] = cache_get_field_content_float(i, "scY");
  32164. ShellCasings[i][scSpawn][2] = cache_get_field_content_float(i, "scZ");
  32165. ShellCasings[i][scInterior] = cache_get_field_content_int(i, "scInterior");
  32166. ShellCasings[i][scWorld] = cache_get_field_content_int(i, "scWorld");
  32167. ShellCasings[i][scObject] = INVALID_OBJECT_ID;
  32168. UpdateShellCasing(i);
  32169. }
  32170. printf("(SQL) %i shell casings loaded.", rows);
  32171. }
  32172. forward OnLoadWeedPlants();
  32173. public OnLoadWeedPlants()
  32174. {
  32175. new
  32176. rows = cache_get_row_count(gConnection);
  32177. for (new i = 0; i < rows; i ++)
  32178. {
  32179. WeedPlants[i][wpExists] = 1;
  32180. WeedPlants[i][wpID] = cache_get_field_content_int(i, "wpID");
  32181. cache_get_field_content(i, "wpOwner", WeedPlants[i][wpOwner], gConnection, 24);
  32182. //cache_get_field_content(i, "Name", RestaurantItems[company][i][rtName], gConnection, 24);
  32183. WeedPlants[i][wpSpawn][0] = cache_get_field_content_float(i, "wpX");
  32184. WeedPlants[i][wpSpawn][1] = cache_get_field_content_float(i, "wpY");
  32185. WeedPlants[i][wpSpawn][2] = cache_get_field_content_float(i, "wpZ");
  32186. WeedPlants[i][wpInterior] = cache_get_field_content_int(i, "wpInterior");
  32187. WeedPlants[i][wpWorld] = cache_get_field_content_int(i, "wpWorld");
  32188. WeedPlants[i][wpTime] = cache_get_field_content_int(i, "wpTime");
  32189. WeedPlants[i][wpObject] = INVALID_OBJECT_ID;
  32190. UpdateWeedPlant(i);
  32191. }
  32192. printf("(SQL) %i weed plants loaded.", rows);
  32193. }
  32194. /*
  32195. enum e_WeedPlants
  32196. {
  32197. wpID,
  32198. wpExists,
  32199. wpOwner[24],
  32200. Float:wpSpawn[3],
  32201. wpInterior,
  32202. wpWorld,
  32203. wpObject,
  32204. wpTime
  32205. };
  32206. */
  32207. forward OnLoadDealershipCars();
  32208. public OnLoadDealershipCars()
  32209. {
  32210. new
  32211. rows = cache_get_row_count(gConnection);
  32212. for (new i = 0; i < rows; i ++)
  32213. {
  32214. DealershipCars[i][dcExists] = 1;
  32215. DealershipCars[i][dcID] = cache_get_field_content_int(i, "ID");
  32216. DealershipCars[i][dcCompany] = cache_get_field_content_int(i, "Company");
  32217. DealershipCars[i][dcModel] = cache_get_field_content_int(i, "Model");
  32218. DealershipCars[i][dcPrice] = cache_get_field_content_int(i, "Price");
  32219. }
  32220. }
  32221. forward OnLoadATMMachines();
  32222. public OnLoadATMMachines()
  32223. {
  32224. new
  32225. rows = cache_get_row_count(gConnection);
  32226. for (new i = 0; i < rows; i ++)
  32227. {
  32228. ATM[i][atmExists] = 1;
  32229. ATM[i][atmID] = cache_get_field_content_int(i, "atmID");
  32230. ATM[i][atmSpawn][0] = cache_get_field_content_float(i, "atmX");
  32231. ATM[i][atmSpawn][1] = cache_get_field_content_float(i, "atmY");
  32232. ATM[i][atmSpawn][2] = cache_get_field_content_float(i, "atmZ");
  32233. ATM[i][atmSpawn][3] = cache_get_field_content_float(i, "atmA");
  32234. ATM[i][atmInterior] = cache_get_field_content_int(i, "atmInterior");
  32235. ATM[i][atmWorld] = cache_get_field_content_int(i, "atmWorld");
  32236. ATM[i][atmObject] = INVALID_OBJECT_ID;
  32237. ATM[i][atmText] = INVALID_3DTEXT_ID;
  32238. UpdateATM(i);
  32239. }
  32240. printf("(SQL) %i ATM machines loaded.", rows);
  32241. }
  32242. forward OnLoadGasPumps();
  32243. public OnLoadGasPumps()
  32244. {
  32245. new
  32246. rows = cache_get_row_count(gConnection);
  32247. for (new i = 0; i < rows; i ++)
  32248. {
  32249. GasPumps[i][gpExists] = 1;
  32250. GasPumps[i][gpID] = cache_get_field_content_int(i, "gpID");
  32251. GasPumps[i][gpCompany] = cache_get_field_content_int(i, "gpCompany");
  32252. GasPumps[i][gpSpawn][0] = cache_get_field_content_float(i, "gpX");
  32253. GasPumps[i][gpSpawn][1] = cache_get_field_content_float(i, "gpY");
  32254. GasPumps[i][gpSpawn][2] = cache_get_field_content_float(i, "gpZ");
  32255. GasPumps[i][gpSpawn][3] = cache_get_field_content_float(i, "gpA");
  32256. GasPumps[i][gpFuel] = cache_get_field_content_float(i, "gpFuel");
  32257. GasPumps[i][gpObject] = INVALID_OBJECT_ID;
  32258. GasPumps[i][gpText] = INVALID_3DTEXT_ID;
  32259. UpdateGasPump(i);
  32260. }
  32261. printf("(SQL) %i gas pumps loaded.", rows);
  32262. }
  32263. forward OnLoadDropItems();
  32264. public OnLoadDropItems()
  32265. {
  32266. new
  32267. rows = cache_get_row_count(gConnection);
  32268. for (new i = 0; i < rows; i ++)
  32269. {
  32270. cache_get_field_content(i, "itemName", DropItems[i][dName], gConnection, MAX_ITEM_NAME);
  32271. DropItems[i][dExists] = 1;
  32272. DropItems[i][dObject] = INVALID_OBJECT_ID;
  32273. //DropItems[i][dText] = INVALID_3DTEXT_ID;
  32274. DropItems[i][dID] = cache_get_field_content_int(i, "itemID");
  32275. DropItems[i][dValue] = cache_get_field_content_int(i, "itemValue");
  32276. DropItems[i][dSerial] = cache_get_field_content_int(i, "itemSerial");
  32277. DropItems[i][dSpawn][0] = cache_get_field_content_float(i, "itemX");
  32278. DropItems[i][dSpawn][1] = cache_get_field_content_float(i, "itemY");
  32279. DropItems[i][dSpawn][2] = cache_get_field_content_float(i, "itemZ");
  32280. DropItems[i][dSpawn][3] = cache_get_field_content_float(i, "itemA");
  32281. DropItems[i][dInterior] = cache_get_field_content_int(i, "itemInt");
  32282. DropItems[i][dWorld] = cache_get_field_content_int(i, "itemWorld");
  32283. DropItems[i][dOffset][0] = cache_get_field_content_float(i, "itemOffsetX");
  32284. DropItems[i][dOffset][1] = cache_get_field_content_float(i, "itemOffsetY");
  32285. DropItems[i][dOffset][2] = cache_get_field_content_float(i, "itemOffsetZ");
  32286. DropItems[i][dOffset][3] = cache_get_field_content_float(i, "itemOffsetRX");
  32287. DropItems[i][dOffset][4] = cache_get_field_content_float(i, "itemOffsetRY");
  32288. DropItems[i][dOffset][5] = cache_get_field_content_float(i, "itemOffsetRZ");
  32289. UpdateDropItem(i);
  32290. }
  32291. }
  32292. forward OnItemInsertion(playerid, id);
  32293. public OnItemInsertion(playerid, id)
  32294. {
  32295. Inventory[playerid][id][invID] = cache_insert_id(gConnection);
  32296. if (!strcmp(Inventory[playerid][id][invName], "Melee Package"))
  32297. {
  32298. //format(gExecute, sizeof(gExecute), "INSERT INTO rp_crateguns(itemID, gunType, gunQuantity) VALUES(%i, 4, 3), (%i, 5, 3), (%i, 8, 3)", Inventory[playerid][id][invID], Inventory[playerid][id][invID], Inventory[playerid][id][invID]);
  32299. format(gExecute, sizeof(gExecute), "INSERT INTO rp_crateguns(itemID, gunType, gunQuantity) VALUES(%i, 4, 10)", Inventory[playerid][id][invID], Inventory[playerid][id][invID]);
  32300. mysql_tquery(gConnection, gExecute);
  32301. }
  32302. else if (!strcmp(Inventory[playerid][id][invName], "Pistol Package"))
  32303. {
  32304. //format(gExecute, sizeof(gExecute), "INSERT INTO rp_crateguns(itemID, gunType, gunQuantity) VALUES(%i, 22, 3), (%i, 23, 3), (%i, 24, 3)", Inventory[playerid][id][invID], Inventory[playerid][id][invID], Inventory[playerid][id][invID]);
  32305. format(gExecute, sizeof(gExecute), "INSERT INTO rp_crateguns(itemID, gunType, gunQuantity) VALUES(%i, 24, 6), (%i, 22, 6)", Inventory[playerid][id][invID], Inventory[playerid][id][invID]);
  32306. mysql_tquery(gConnection, gExecute);
  32307. }
  32308. else if (!strcmp(Inventory[playerid][id][invName], "Shotgun Package"))
  32309. {
  32310. //format(gExecute, sizeof(gExecute), "INSERT INTO rp_crateguns(itemID, gunType, gunQuantity) VALUES(%i, 25, 3), (%i, 27, 3)", Inventory[playerid][id][invID], Inventory[playerid][id][invID]);
  32311. format(gExecute, sizeof(gExecute), "INSERT INTO rp_crateguns(itemID, gunType, gunQuantity) VALUES(%i, 25, 5)", Inventory[playerid][id][invID]);
  32312. mysql_tquery(gConnection, gExecute);
  32313. }
  32314. else if (!strcmp(Inventory[playerid][id][invName], "SMG Package"))
  32315. {
  32316. //format(gExecute, sizeof(gExecute), "INSERT INTO rp_crateguns(itemID, gunType, gunQuantity) VALUES(%i, 28, 3), (%i, 29, 3), (%i, 32, 3)", Inventory[playerid][id][invID], Inventory[playerid][id][invID], Inventory[playerid][id][invID]);
  32317. format(gExecute, sizeof(gExecute), "INSERT INTO rp_crateguns(itemID, gunType, gunQuantity) VALUES(%i, 28, 5), (%i, 32, 5)", Inventory[playerid][id][invID], Inventory[playerid][id][invID]);
  32318. mysql_tquery(gConnection, gExecute);
  32319. }
  32320. else if (!strcmp(Inventory[playerid][id][invName], "Rifle Package"))
  32321. {
  32322. format(gExecute, sizeof(gExecute), "INSERT INTO rp_crateguns(itemID, gunType, gunQuantity) VALUES(%i, 30, 6), (%i, 31, 2)", Inventory[playerid][id][invID], Inventory[playerid][id][invID]);
  32323. mysql_tquery(gConnection, gExecute);
  32324. }
  32325. }
  32326. forward HideFooterText(playerid);
  32327. public HideFooterText(playerid)
  32328. {
  32329. if (Players[playerid][pFooter])
  32330. {
  32331. Players[playerid][pFooter] = 0;
  32332. KillTimer(Timers[playerid][tFooter]);
  32333. PlayerTextDrawHide(playerid, Players[playerid][pText][5]);
  32334. }
  32335. return 1;
  32336. }
  32337. forward ResetIgnoreTD(playerid);
  32338. public ResetIgnoreTD(playerid)
  32339. {
  32340. Players[playerid][pIgnoreTD] = 0;
  32341. }
  32342. forward OutfitSelected(playerid);
  32343. public OutfitSelected(playerid)
  32344. {
  32345. FadeScreenForPlayer(playerid, FADE_SELECTED_OUTFIT);
  32346. }
  32347. forward DelayKick(playerid);
  32348. public DelayKick(playerid)
  32349. {
  32350. if (gPlayerKicked[playerid])
  32351. {
  32352. Kick(playerid);
  32353. }
  32354. gPlayerKicked[playerid] = 0;
  32355. }
  32356. forward DelayPizzaCP(playerid, house);
  32357. public DelayPizzaCP(playerid, house)
  32358. {
  32359. SetCheckpoint(playerid, CHECKPOINT_JOB, Houses[house][hSpawn][0], Houses[house][hSpawn][1], Houses[house][hSpawn][2], 3.0);
  32360. }
  32361. forward DelayMenuCamera(playerid);
  32362. public DelayMenuCamera(playerid)
  32363. {
  32364. /*SetPlayerPos(playerid, -2354.936279, 140.997024, 39.962245);
  32365. SetPlayerCameraPos(playerid, -2354.936279, 140.997024, 59.962245);
  32366. SetPlayerCameraLookAt(playerid, -2354.436523, 140.980346, 59.866298);*/
  32367. /*SetPlayerPos(playerid, 325.083801, -1651.243774, 82.438415);
  32368. SetPlayerCameraPos(playerid, 325.083801, -1651.243774, 62.438415);
  32369. SetPlayerCameraLookAt(playerid, 325.086883, -1650.751708, 62.368453);*/
  32370. /*SetPlayerPos(playerid, 865.988891, -1446.194458, 89.558654);
  32371. SetPlayerCameraPos(playerid, 865.988891, -1446.194458, 109.558654);
  32372. SetPlayerCameraLookAt(playerid, 866.006225, -1445.694702, 109.517868);*/
  32373. /*SetPlayerPos(playerid, 1658.507080, -1331.544311, 138.326507);
  32374. SetPlayerCameraPos(playerid, 1658.507080, -1331.544311, 158.326507);
  32375. SetPlayerCameraLookAt(playerid, 1657.958374, -1331.390991, 158.264190);*/
  32376. // New camera, bitches! Grime 10/03/2017
  32377. InterpolateCameraPos(playerid, 2267.293212, -1749.706787, 85.525733, 227.958419, -1991.920410, 31.250833, 60000, CAMERA_MOVE);
  32378. InterpolateCameraLookAt(playerid, 2266.793212, -1749.701049, 85.525733, 227.473052, -1991.833496, 31.203359, 60000, CAMERA_MOVE);
  32379. SetPlayerTime(playerid, 0, 0);
  32380. }
  32381. forward OnPlayerLoadWeaponOffsets(playerid);
  32382. public OnPlayerLoadWeaponOffsets(playerid)
  32383. {
  32384. new
  32385. rows = cache_get_row_count(gConnection),
  32386. slot;
  32387. for (new i = 0; i < rows; i ++)
  32388. {
  32389. slot = cache_get_field_content_int(i, "Slot");
  32390. WeaponOffsets[playerid][slot][wBoneID] = cache_get_field_content_int(i, "Bone");
  32391. WeaponOffsets[playerid][slot][wHidden] = cache_get_field_content_int(i, "Hidden");
  32392. WeaponOffsets[playerid][slot][wOffsetX] = cache_get_field_content_float(i, "OffsetX");
  32393. WeaponOffsets[playerid][slot][wOffsetY] = cache_get_field_content_float(i, "OffsetY");
  32394. WeaponOffsets[playerid][slot][wOffsetZ] = cache_get_field_content_float(i, "OffsetZ");
  32395. WeaponOffsets[playerid][slot][wOffsetRX] = cache_get_field_content_float(i, "OffsetRX");
  32396. WeaponOffsets[playerid][slot][wOffsetRY] = cache_get_field_content_float(i, "OffsetRY");
  32397. WeaponOffsets[playerid][slot][wOffsetRZ] = cache_get_field_content_float(i, "OffsetRZ");
  32398. }
  32399. UpdateWeaponHolster(playerid);
  32400. }
  32401. forward OnPlayerLoadAccessories(playerid);
  32402. public OnPlayerLoadAccessories(playerid)
  32403. {
  32404. new
  32405. rows = cache_get_row_count(gConnection);
  32406. for (new i = 0; i < rows; i ++)
  32407. {
  32408. cache_get_field_content(i, "aName", Accessories[playerid][i][aName], gConnection, 32);
  32409. Accessories[playerid][i][aExists] = 1;
  32410. Accessories[playerid][i][aID] = cache_get_field_content_int(i, "aID");
  32411. Accessories[playerid][i][aModel] = cache_get_field_content_int(i, "aModel");
  32412. Accessories[playerid][i][aBone] = cache_get_field_content_int(i, "aBone");
  32413. Accessories[playerid][i][aOffset][0] = cache_get_field_content_float(i, "aX");
  32414. Accessories[playerid][i][aOffset][1] = cache_get_field_content_float(i, "aY");
  32415. Accessories[playerid][i][aOffset][2] = cache_get_field_content_float(i, "aZ");
  32416. Accessories[playerid][i][aOffset][3] = cache_get_field_content_float(i, "aRX");
  32417. Accessories[playerid][i][aOffset][4] = cache_get_field_content_float(i, "aRY");
  32418. Accessories[playerid][i][aOffset][5] = cache_get_field_content_float(i, "aRZ");
  32419. Accessories[playerid][i][aOffset][6] = cache_get_field_content_float(i, "aSX");
  32420. Accessories[playerid][i][aOffset][7] = cache_get_field_content_float(i, "aSY");
  32421. Accessories[playerid][i][aOffset][8] = cache_get_field_content_float(i, "aSZ");
  32422. if(!strcmp(Accessories[playerid][i][aName], "None", true))
  32423. {
  32424. strcpy(Accessories[playerid][i][aName], GetAccessoryName(playerid, i), 32);
  32425. mysql_format(gConnection, gExecute, sizeof(gExecute), "UPDATE rp_accessories SET aName = '%e' WHERE aID = %i", Accessories[playerid][i][aName], Accessories[playerid][i][aID]);
  32426. mysql_tquery(gConnection, gExecute);
  32427. }
  32428. }
  32429. }
  32430. forward OnPlayerLoadBank(playerid);
  32431. public OnPlayerLoadBank(playerid)
  32432. {
  32433. new
  32434. rows = cache_get_row_count(gConnection);
  32435. for (new i = 0; i < rows; i ++)
  32436. {
  32437. cache_get_field_content(i, "bankName", BankAccounts[playerid][i][bankName], gConnection, 32);
  32438. BankAccounts[playerid][i][bankExists] = 1;
  32439. BankAccounts[playerid][i][bankID] = cache_get_field_content_int(i, "bankID");
  32440. BankAccounts[playerid][i][bankBalance] = cache_get_field_content_int(i, "bankBalance");
  32441. }
  32442. }
  32443. forward OnPlayerLoadItems(playerid);
  32444. public OnPlayerLoadItems(playerid)
  32445. {
  32446. new
  32447. rows = cache_get_row_count(gConnection);
  32448. for (new i = 0; i < rows; i ++)
  32449. {
  32450. cache_get_field_content(i, "itemName", Inventory[playerid][i][invName], gConnection, MAX_ITEM_NAME);
  32451. Inventory[playerid][i][invExists] = 1;
  32452. Inventory[playerid][i][invID] = cache_get_field_content_int(i, "itemID");
  32453. Inventory[playerid][i][invValue] = cache_get_field_content_int(i, "itemValue");
  32454. Inventory[playerid][i][invSerial] = cache_get_field_content_int(i, "itemSerial");
  32455. Inventory[playerid][i][invOffset][0] = cache_get_field_content_float(i, "itemOffsetX");
  32456. Inventory[playerid][i][invOffset][1] = cache_get_field_content_float(i, "itemOffsetY");
  32457. Inventory[playerid][i][invOffset][2] = cache_get_field_content_float(i, "itemOffsetZ");
  32458. Inventory[playerid][i][invOffset][3] = cache_get_field_content_float(i, "itemOffsetRX");
  32459. Inventory[playerid][i][invOffset][4] = cache_get_field_content_float(i, "itemOffsetRY");
  32460. Inventory[playerid][i][invOffset][5] = cache_get_field_content_float(i, "itemOffsetRZ");
  32461. }
  32462. }
  32463. forward OnPlayerAttemptLogin(playerid);
  32464. public OnPlayerAttemptLogin(playerid)
  32465. {
  32466. new
  32467. rows = cache_get_row_count(gConnection);
  32468. if (rows > 0)
  32469. {
  32470. //ShowLoginTextDraws(playerid, false);
  32471. cache_get_field_content(0, "Registered", Players[playerid][pRegistered], gConnection, 32);
  32472. cache_get_field_content(0, "Origin", Players[playerid][pOrigin], gConnection, 24);
  32473. cache_get_field_content(0, "AdminName", Players[playerid][pAdminName], gConnection, 24);
  32474. cache_get_field_content(0, "AdminTitle", Players[playerid][pAdminTitle], gConnection, 24);
  32475. cache_get_field_content(0, "GPCI", Players[playerid][pGPCI], gConnection, 24);
  32476. cache_get_field_content(0, "ReportReason", Players[playerid][pReportReason], gConnection, 64);
  32477. Players[playerid][pID] = cache_get_field_content_int(0, "ID");
  32478. Players[playerid][pSetupInfo] = cache_get_field_content_int(0, "SetupInfo");
  32479. Players[playerid][pGender] = cache_get_field_content_int(0, "Gender");
  32480. Players[playerid][pAge] = cache_get_field_content_int(0, "Age");
  32481. Players[playerid][pSkin] = cache_get_field_content_int(0, "Skin");
  32482. Players[playerid][pUniform] = cache_get_field_content_int(0, "Uniform");
  32483. Players[playerid][pSpawn][0] = cache_get_field_content_float(0, "SpawnX");
  32484. Players[playerid][pSpawn][1] = cache_get_field_content_float(0, "SpawnY");
  32485. Players[playerid][pSpawn][2] = cache_get_field_content_float(0, "SpawnZ");
  32486. Players[playerid][pSpawn][3] = cache_get_field_content_float(0, "SpawnA");
  32487. Players[playerid][pHealth] = cache_get_field_content_float(0, "Health");
  32488. Players[playerid][pArmor] = cache_get_field_content_float(0, "Armor");
  32489. Players[playerid][pInterior] = cache_get_field_content_int(0, "Interior");
  32490. Players[playerid][pWorld] = cache_get_field_content_int(0, "World");
  32491. Players[playerid][pTraveled] = cache_get_field_content_float(0, "Traveled");
  32492. Players[playerid][pPocketMoney] = cache_get_field_content_int(0, "PocketMoney");
  32493. Players[playerid][pBankMoney] = cache_get_field_content_int(0, "BankMoney");
  32494. Players[playerid][pSavingsMoney] = cache_get_field_content_int(0, "SavingsMoney");
  32495. Players[playerid][pAdmin] = cache_get_field_content_int(0, "Admin");
  32496. Players[playerid][pMapper] = cache_get_field_content_int(0, "Mapper");
  32497. Players[playerid][pJailType] = cache_get_field_content_int(0, "JailType");
  32498. Players[playerid][pJailTime] = cache_get_field_content_int(0, "JailTime");
  32499. Players[playerid][pMuted] = cache_get_field_content_int(0, "Muted");
  32500. Players[playerid][pFitness] = cache_get_field_content_int(0, "Fitness");
  32501. Players[playerid][pMinutes] = cache_get_field_content_int(0, "Minutes");
  32502. Players[playerid][pHoursOnline] = cache_get_field_content_int(0, "HoursOnline");
  32503. Players[playerid][pJob] = cache_get_field_content_int(0, "Job");
  32504. Players[playerid][pJobPaycheck] = cache_get_field_content_int(0, "JobPaycheck");
  32505. Players[playerid][pPaycheck] = cache_get_field_content_int(0, "Paycheck");
  32506. Players[playerid][pWorkoutTime] = cache_get_field_content_int(0, "WorkoutTime");
  32507. Players[playerid][pGymMembership] = cache_get_field_content_int(0, "GymMembership");
  32508. Players[playerid][pPhone] = cache_get_field_content_int(0, "Phone");
  32509. Players[playerid][pPhoneLastKnown] = cache_get_field_content_int(0, "PhoneLastKnown");
  32510. Players[playerid][pPhoneOff] = cache_get_field_content_int(0, "PhoneOff");
  32511. Players[playerid][pDeathState] = cache_get_field_content_int(0, "DeathState");
  32512. Players[playerid][pHospital] = cache_get_field_content_int(0, "Hospital");
  32513. Players[playerid][pShowPM] = cache_get_field_content_int(0, "ShowPM");
  32514. Players[playerid][pShowSpeed] = cache_get_field_content_int(0, "ShowSpeed");
  32515. Players[playerid][pShowFuel] = cache_get_field_content_int(0, "ShowFuel");
  32516. Players[playerid][pShowTime] = cache_get_field_content_int(0, "ShowTime");
  32517. Players[playerid][pShowOOC] = cache_get_field_content_int(0, "ShowOOC");
  32518. Players[playerid][pShowReports] = cache_get_field_content_int(0, "ShowReports");
  32519. Players[playerid][pShowAdmin] = cache_get_field_content_int(0, "ShowAdmin");
  32520. Players[playerid][pShowSupporter] = cache_get_field_content_int(0, "ShowSupporter");
  32521. Players[playerid][pBleeding] = cache_get_field_content_int(0, "Bleeding");
  32522. Players[playerid][pPaymentType] = cache_get_field_content_int(0, "PaymentType");
  32523. Players[playerid][pBankAccount] = cache_get_field_content_int(0, "BankAccount");
  32524. Players[playerid][pSupporter] = cache_get_field_content_int(0, "Supporter");
  32525. Players[playerid][pVeteran] = cache_get_field_content_int(0, "Veteran");
  32526. Players[playerid][pFactionMod] = cache_get_field_content_int(0, "FactionMod");
  32527. Players[playerid][pFactionID] = cache_get_field_content_int(0, "FactionID");
  32528. Players[playerid][pFactionRank] = cache_get_field_content_int(0, "FactionRank");
  32529. Players[playerid][pFactionLeader] = cache_get_field_content_int(0, "FactionLeader");
  32530. Players[playerid][pWarrants] = cache_get_field_content_int(0, "Warrants");
  32531. Players[playerid][pCharges] = cache_get_field_content_int(0, "Charges");
  32532. Players[playerid][pPackageOrder] = cache_get_field_content_int(0, "PackageOrder");
  32533. Players[playerid][pPackageType] = cache_get_field_content_int(0, "PackageType");
  32534. Players[playerid][pPackageGrams] = cache_get_field_content_int(0, "PackageGrams");
  32535. Players[playerid][pPackageTime] = cache_get_field_content_int(0, "PackageTime");
  32536. Players[playerid][pCarLicense] = cache_get_field_content_int(0, "CarLicense");
  32537. Players[playerid][pGunLicense] = cache_get_field_content_int(0, "GunLicense");
  32538. Players[playerid][pAdTime] = cache_get_field_content_int(0, "AdTime");
  32539. Players[playerid][pRentHouse] = cache_get_field_content_int(0, "RentHouse");
  32540. Players[playerid][pMaskID] = cache_get_field_content_int(0, "MaskID");
  32541. Players[playerid][pHideAdmin] = cache_get_field_content_int(0, "HideAdmin");
  32542. Players[playerid][pBrokenLeg] = cache_get_field_content_int(0, "BrokenLeg");
  32543. Players[playerid][pChatStyle] = cache_get_field_content_int(0, "ChatStyle");
  32544. Players[playerid][pWalkStyle] = cache_get_field_content_int(0, "WalkStyle");
  32545. Players[playerid][pChannel] = cache_get_field_content_int(0, "Channel");
  32546. Players[playerid][pDonator] = cache_get_field_content_int(0, "Donator");
  32547. Players[playerid][pExpiryDate] = cache_get_field_content_int(0, "ExpiryDate");
  32548. Players[playerid][pNameChanges] = cache_get_field_content_int(0, "NameChanges");
  32549. Players[playerid][pBadge] = cache_get_field_content_int(0, "Badge");
  32550. Players[playerid][pSpawnType] = cache_get_field_content_int(0, "SpawnType");
  32551. Players[playerid][pSpawnExtra] = cache_get_field_content_int(0, "SpawnExtra");
  32552. Players[playerid][pCrashed] = cache_get_field_content_int(0, "Crashed");
  32553. Players[playerid][pDuty] = cache_get_field_content_int(0, "Duty");
  32554. Players[playerid][pActivated] = cache_get_field_content_int(0, "pActivated");
  32555. Players[playerid][pBeingReported] = cache_get_field_content_int(0, "BeingReported");
  32556. Weapons[playerid][wMelee] = cache_get_field_content_int(0, "Melee");
  32557. Weapons[playerid][wPrimary] = cache_get_field_content_int(0, "PrimaryGun");
  32558. Weapons[playerid][wPrimaryAmmo] = cache_get_field_content_int(0, "PrimaryAmmo");
  32559. Weapons[playerid][wPrimarySerial] = cache_get_field_content_int(0, "PrimarySerial");
  32560. Weapons[playerid][wSecondary] = cache_get_field_content_int(0, "SecondaryGun");
  32561. Weapons[playerid][wSecondaryAmmo] = cache_get_field_content_int(0, "SecondaryAmmo");
  32562. Weapons[playerid][wSecondarySerial] = cache_get_field_content_int(0, "SecondarySerial");
  32563. Statistics[playerid][sHotwired] = cache_get_field_content_int(0, "TotalHotwired");
  32564. Statistics[playerid][sRentals] = cache_get_field_content_int(0, "TotalRentals");
  32565. Statistics[playerid][sHospitalFees] = cache_get_field_content_int(0, "HospitalFees");
  32566. Statistics[playerid][sItemsUsed] = cache_get_field_content_int(0, "ItemsUsed");
  32567. Statistics[playerid][sItemsDropped] = cache_get_field_content_int(0, "ItemsDropped");
  32568. Statistics[playerid][sItemsPicked] = cache_get_field_content_int(0, "ItemsPicked");
  32569. Statistics[playerid][sDistanceRan] = cache_get_field_content_int(0, "DistanceRan");
  32570. Statistics[playerid][sTotalReps] = cache_get_field_content_int(0, "TotalReps");
  32571. Statistics[playerid][sHouses] = cache_get_field_content_int(0, "TotalHouses");
  32572. Statistics[playerid][sCompanies] = cache_get_field_content_int(0, "TotalCompanies");
  32573. Statistics[playerid][sVehicles] = cache_get_field_content_int(0, "TotalVehicles");
  32574. Statistics[playerid][sFurnitureFees] = cache_get_field_content_int(0, "FurnitureFees");
  32575. Statistics[playerid][sTotalWarrants] = cache_get_field_content_int(0, "TotalWarrants");
  32576. Statistics[playerid][sFurnitureFees] = cache_get_field_content_int(0, "FurnitureFees");
  32577. Statistics[playerid][sTotalWarrants] = cache_get_field_content_int(0, "TotalWarrants");
  32578. Statistics[playerid][sReports] = cache_get_field_content_int(0, "Reports");
  32579. Statistics[playerid][sHelpRequests] = cache_get_field_content_int(0, "HelpRequests");
  32580. Players[playerid][pLoggedIn] = 1;
  32581. Players[playerid][pActivated] = 1;
  32582. Players[playerid][pSetupInfo] = 1;
  32583. format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Online = 1, LoginDate = NOW(), IP = '%s' WHERE ID = %i", ReturnIP(playerid), Players[playerid][pID]);
  32584. mysql_tquery(gConnection, gExecute);
  32585. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_items WHERE itemOwner = %i LIMIT %i", Players[playerid][pID], MAX_INVENTORY_ITEMS);
  32586. mysql_tquery(gConnection, gExecute, "OnPlayerLoadItems", "i", playerid);
  32587. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_bankaccounts WHERE ID = %i LIMIT %i", Players[playerid][pID], MAX_BANK_ACCOUNTS);
  32588. mysql_tquery(gConnection, gExecute, "OnPlayerLoadBank", "i", playerid);
  32589. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_accessories WHERE ID = %i LIMIT %i", Players[playerid][pID], MAX_ACCESSORIES);
  32590. mysql_tquery(gConnection, gExecute, "OnPlayerLoadAccessories", "i", playerid);
  32591. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_weaponoffsets WHERE ID = %i", Players[playerid][pID]);
  32592. mysql_tquery(gConnection, gExecute, "OnPlayerLoadWeaponOffsets", "i", playerid);
  32593. #if defined CHEMICAL_SYSTEM
  32594. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_chemical WHERE Owner = %i LIMIT %i", Players[playerid][pID], MAX_CHEMICAL);
  32595. mysql_tquery(gConnection, gExecute, "Chemical_Load", "i", playerid);
  32596. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_drugs WHERE Owner = %i LIMIT %i", Players[playerid][pID], MAX_DRUGS);
  32597. mysql_tquery(gConnection, gExecute, "Drugs_Load", "i", playerid);
  32598. #endif
  32599. SyncTimeForPlayer(playerid);
  32600. if (!Players[playerid][pActivated])
  32601. {
  32602. }
  32603. else
  32604. {
  32605. if(CheckAdmin(playerid, 1))
  32606. {
  32607. SendInfoMessage(playerid, "{CFCFCF}You have logged in as a level %i administrator!", Players[playerid][pAdmin]);
  32608. if (!IsAdminNameSetup(playerid))
  32609. {
  32610. SendInfoMessage(playerid, "It is recommended that you set your admin name now (/adminname).");
  32611. }
  32612. }
  32613. if (Players[playerid][pFactionID] > 0 && (Players[playerid][pFaction] = GetPlayerFactionID(playerid)) == INVALID_ID)
  32614. {
  32615. SendInfoMessage(playerid, "The faction you were a member of has been deleted.");
  32616. ResetFactionInfo(playerid);
  32617. }
  32618. if (Players[playerid][pFaction] != INVALID_ID && Players[playerid][pFactionRank] > Factions[Players[playerid][pFaction]][fcMaxRanks])
  32619. {
  32620. Players[playerid][pFactionRank] = Factions[Players[playerid][pFaction]][fcMaxRanks];
  32621. }
  32622. if (Players[playerid][pPackageOrder] != PACKAGE_TYPE_NONE)
  32623. {
  32624. SetTimerEx("PackageReady", 300000, false, "iiii", playerid, Players[playerid][pFaction], Players[playerid][pPackageOrder], GetPackagePrice(Players[playerid][pPackageOrder]));
  32625. }
  32626. else if (Players[playerid][pPackageType] != PACKAGE_TYPE_NONE)
  32627. {
  32628. SendInfoMessage(playerid, "Hint: Use /locatepackage to find the location of your package.");
  32629. }
  32630. SetSpawnInfo(playerid, NO_TEAM, Players[playerid][pSkin], Players[playerid][pSpawn][0], Players[playerid][pSpawn][1], Players[playerid][pSpawn][2], Players[playerid][pSpawn][3], 0, 0, 0, 0, 0, 0);
  32631. TogglePlayerSpectating(playerid, 0);
  32632. if(Players[playerid][pBeingReported] == 1)
  32633. {
  32634. new sendReportInfo[128];
  32635. format(sendReportInfo, sizeof(sendReportInfo), "Hello, you are being reported on the forums, the following reason(s) below:\n%s", Players[playerid][pReportReason]);
  32636. Dialog_Show(playerid, BEINGREPORTED, DIALOG_STYLE_MSGBOX, "You are being reported.", sendReportInfo, "Close", "");
  32637. Players[playerid][pBeingReported] = 0; // set it to 0 since he saw this dialog.
  32638. }
  32639. new Float:x, Float:y, Float:z;
  32640. GetPlayerPos(playerid, x, y, z);
  32641. //gpci(playerid, Players[playerid][pGPCI], sizeof(Players[playerid][pGPCI]));
  32642. strcpy(Players[playerid][pGPCI], ReturnGPCI(playerid), 41);
  32643. //strcpy(Players[playerid][pOrigin], inputtext, 24);
  32644. format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET GPCI = '%s' WHERE Username = '%s'", ReturnGPCI(playerid), ReturnName(playerid));
  32645. mysql_tquery(gConnection, gExecute);
  32646. new log[128];
  32647. format(log, sizeof(log), "%s (%s) has joined the server (%.2f, %.2f, %.2f)", ReturnName(playerid), Players[playerid][pIP], x, y, z);
  32648. CreateLog("logging", log);
  32649. if(Players[playerid][pDuty] && Players[playerid][pCrashed])
  32650. {
  32651. switch(GetPlayerFactionType(playerid))
  32652. {
  32653. case FACTION_LEO, FACTION_MEDICAL, FACTION_GOVERNMENT, FACTION_NEWS:
  32654. {
  32655. SendFactionMessage(Players[playerid][pFaction], COLOR_RADIO, "** HQ: %s %s is now back on duty. (Crashed)", GetPlayerFactionRank(playerid), ReturnNameEx(playerid));
  32656. }
  32657. default:
  32658. {
  32659. Players[playerid][pDuty] = 0;
  32660. }
  32661. }
  32662. }
  32663. else
  32664. {
  32665. Players[playerid][pDuty] = 0;
  32666. }
  32667. }
  32668. }
  32669. else
  32670. {
  32671. printf("(SQL) Failed login attempt from %s (IP: %s).", ReturnName(playerid), ReturnIP(playerid));
  32672. Dialog_Show(playerid, AccountLogin, DIALOG_STYLE_PASSWORD, "SA92", "Incorrect password!\n\n{FFFFFF}This account is {33AA33}registered.\n{FFFFFF}Please enter your password below in order to authenticate:", "Submit", "Quit");
  32673. }
  32674. }
  32675. ReturnGPCI(playerid)
  32676. {
  32677. new
  32678. szSerial[41];
  32679. gpci(playerid, szSerial, sizeof(szSerial));
  32680. return szSerial;
  32681. }
  32682. forward OnPlayerRegister(playerid);
  32683. public OnPlayerRegister(playerid)
  32684. {
  32685. new
  32686. iInsertID = cache_insert_id(gConnection);
  32687. Server[Accounts]++;
  32688. if (iInsertID)
  32689. {
  32690. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_accounts WHERE ID = %i", iInsertID);
  32691. mysql_tquery(gConnection, gExecute, "OnPlayerAttemptLogin", "i", playerid);
  32692. }
  32693. SaveInformation();
  32694. }
  32695. forward OnBlacklistCheck(playerid);
  32696. public OnBlacklistCheck(playerid)
  32697. {
  32698. new
  32699. rows = cache_get_row_count(gConnection);
  32700. if (rows)
  32701. {
  32702. new
  32703. bannedBy[MAX_PLAYER_NAME],
  32704. banDate[32],
  32705. banReason[128];
  32706. cache_get_field_content(0, "BannedBy", bannedBy, gConnection);
  32707. cache_get_field_content(0, "Date", banDate, gConnection);
  32708. cache_get_field_content(0, "Reason", banReason, gConnection);
  32709. Dialog_Show(playerid, Banned, DIALOG_STYLE_MSGBOX, "{FFFFFF}You are banned!", "You are banned from this server.\n\nAdmin: %s\nDate: %s\nReason: %s\n\nYou can appeal this ban on our website at %s.", "Close", "", bannedBy, banDate, banReason, SERVER_WEBSITE);
  32710. KickPlayer(playerid);
  32711. }
  32712. else
  32713. {
  32714. format(gExecute, sizeof(gExecute), "SELECT ID FROM rp_accounts WHERE Username = '%s'", ReturnName(playerid));
  32715. mysql_tquery(gConnection, gExecute, "OnAccountSearch", "i", playerid);
  32716. }
  32717. }
  32718. forward OnAccountSearch(playerid);
  32719. public OnAccountSearch(playerid)
  32720. {
  32721. new
  32722. rows = cache_get_row_count(gConnection);
  32723. Players[playerid][pID] = 0;
  32724. if (rows)
  32725. {
  32726. Dialog_Show(playerid, AccountLogin, DIALOG_STYLE_PASSWORD, "SA92", "{FFFFFF}This account is {33AA33}registered.\n{FFFFFF}Please enter your password below in order to authenticate:", "Submit", "Quit");
  32727. }
  32728. else
  32729. {
  32730. Dialog_Show(playerid, AccountCreate, DIALOG_STYLE_PASSWORD, "SA92 Registration", "{FFFFFF}Your name is currently not registered!\nPlease enter a safe and secure password below to register with your master account:.", "Submit", "Quit");
  32731. }
  32732. }
  32733. //ShowLoginTextDraws(playerid, true);
  32734. public OnPlayerFadeComplete(playerid, extraid)
  32735. {
  32736. // Added to fix that annoying "H" bug -> 06/01/2015
  32737. StopScreenFade(playerid);
  32738. if (extraid == FADE_CHOOSE_SKIN)
  32739. {
  32740. TogglePlayerSpectating(playerid, 0);
  32741. SetSpawnInfo(playerid, NO_TEAM, Players[playerid][pSkin], 0.0, 0.0, 1000.0, 0.0, 0, 0, 0, 0, 0, 0);
  32742. }
  32743. else if (extraid == FADE_SELECTED_OUTFIT)
  32744. {
  32745. Players[playerid][pGender] = GetSkinGender(Players[playerid][pSkin]);
  32746. FlushChatForPlayer(playerid);
  32747. SetCameraBehindPlayer(playerid);
  32748. PlayerTextDrawHide(playerid, Players[playerid][pText][0]);
  32749. SpawnPlayer(playerid);
  32750. }
  32751. else if(extraid == FADE_START_QUIZ) //tobefinished
  32752. {
  32753. SetPVarInt(playerid, "Muted", 1);
  32754. currentQuestion[playerid] = 0;
  32755. SCM(playerid, COLOR_LIGHTRED, "To be allowed access to San Andreas 1992 Roleplay, you must complete a simple and easy quiz.");
  32756. SCM(playerid, COLOR_LIGHTRED, "This quiz combines basic roleplay terms, and a few basic server rules.");
  32757. Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 1)", "{FFFFFF}In your own words, how would you define the term roleplay?\n\nYou can make this question as simple, or complex as you'd like.\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel");
  32758. }
  32759. else if (extraid == FADE_SET_POSITION)
  32760. {
  32761. SetTimerEx("OnFadeSetPosition", 200, false, "i", playerid);
  32762. }
  32763. else if (extraid == FADE_BUY_OUTFIT)
  32764. {
  32765. SetupOutfitSelection(playerid);
  32766. SendInfoMessage(playerid, "Use the arrow keys to browse between outfits. Press N to cancel and ENTER to purchase.");
  32767. }
  32768. return 1;
  32769. }
  32770. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  32771. {
  32772. foreach (new i : Player)
  32773. {
  32774. if (GetPlayerState(i) == PLAYER_STATE_SPECTATING && Players[i][pSpectate] == playerid)
  32775. {
  32776. SetPlayerInterior(i, newinteriorid);
  32777. SetPlayerVirtualWorld(i, GetPlayerVirtualWorld(playerid));
  32778. }
  32779. }
  32780. if (newinteriorid != 0) {
  32781. SetPlayerTime(playerid, 12, 12);
  32782. }
  32783. else if (newinteriorid == 0) {
  32784. SyncTimeForPlayer(playerid);
  32785. }
  32786. return 1;
  32787. }
  32788. public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat, Float:new_x, Float:new_y, Float:new_z, Float:vel_x, Float:vel_y, Float:vel_z)
  32789. {
  32790. if (GetVehicleDistanceFromPoint(vehicleid, new_x, new_y, new_z) > 50)
  32791. {
  32792. return 0;
  32793. }
  32794. return 1;
  32795. }
  32796. public OnPlayerStateChange(playerid, newstate, oldstate)
  32797. {
  32798. if (IsPlayerNPC(playerid)) return 1;
  32799. if (newstate == PLAYER_STATE_DRIVER)
  32800. {
  32801. new
  32802. vehicleid = GetPlayerVehicleID(playerid),
  32803. id = GetVehicleID(vehicleid);
  32804. SetPlayerArmedWeapon(playerid, 0);
  32805. if (!VehicleInformation[vehicleid][vInit])
  32806. {
  32807. SetupVehicle(vehicleid);
  32808. }
  32809. if (id != INVALID_ID)
  32810. {
  32811. if (Vehicles[id][vRentable] && Vehicles[id][vRenter] == INVALID_PLAYER_ID)
  32812. {
  32813. Dialog_Show(playerid, RentVehicle, DIALOG_STYLE_MSGBOX, "{FFFFFF}Rent vehicle", "Would you like to rent this vehicle for {00FF00}%s{AAC4E5}.\nClick on the buttons below to make your decision.", "Yes", "No", FormatNumber(Vehicles[id][vPrice]));
  32814. }
  32815. if (Vehicles[id][vFaction] != 0 && Players[playerid][pFactionID] != Vehicles[id][vFaction])
  32816. {
  32817. RemovePlayerFromVehicle(playerid);
  32818. SendInfoMessage(playerid, "{CFCFCF} This vehicle belongs to an official faction.");
  32819. return 1;
  32820. }
  32821. }
  32822. if (!IsPoweredVehicle(vehicleid))
  32823. {
  32824. SetEngineStatus(vehicleid, 1);
  32825. }
  32826. else
  32827. {
  32828. if (IsTestVehicle(vehicleid) && !Players[playerid][pDrivingTest])
  32829. {
  32830. RemovePlayerFromVehicle(playerid);
  32831. SendInfoMessage(playerid, "You need to be taking the driving test to use this vehicle.");
  32832. return 1;
  32833. }
  32834. if (GetVehicleJobType(vehicleid) != JOB_NONE && Players[playerid][pJob] != GetVehicleJobType(vehicleid))
  32835. {
  32836. RemovePlayerFromVehicle(playerid);
  32837. SendInfoMessage(playerid, "You need to have the correct job to use this vehicle.");
  32838. return 1;
  32839. }
  32840. if (!GetEngineStatus(vehicleid))
  32841. {
  32842. SendInfoMessage(playerid, "{CFCFCF}The engine is not running. Use {33AA33}/engine{CFCFCF} to turn on the engine.");
  32843. }
  32844. if (!Players[playerid][pCarLicense] && !Players[playerid][pDrivingTest])
  32845. {
  32846. SendInfoMessage(playerid, "{CFCFCF}(Warning) You are driving without a license!");
  32847. }
  32848. if (!Players[playerid][pWorking] && ( (Players[playerid][pJob] == JOB_FORKLIFTER && GetVehicleModel(GetPlayerVehicleID(playerid)) == 530) || (Players[playerid][pJob] == JOB_PIZZA && GetVehicleModel(GetPlayerVehicleID(playerid)) == 448) ))
  32849. {
  32850. SendInfoMessage(playerid, "Use /work if you wish to begin working.");
  32851. Players[playerid][pWorkVehicle] = vehicleid;
  32852. }
  32853. if (Players[playerid][pShowFuel])
  32854. {
  32855. ShowFuelGauge(playerid, true);
  32856. }
  32857. if (Players[playerid][pShowSpeed])
  32858. {
  32859. ShowSpeedometer(playerid, true);
  32860. }
  32861. if (Players[playerid][pDrivingTest] && IsTestVehicle(vehicleid))
  32862. {
  32863. SetPlayerCheckpoint(playerid, g_TestCheckpoints[0][0], g_TestCheckpoints[0][1], g_TestCheckpoints[0][2], 3.0);
  32864. SendInfoMessage(playerid, "Drive through the markers to proceed with the test.");
  32865. }
  32866. }
  32867. SetPlayerArmedWeapon(playerid, 0);
  32868. }
  32869. else if (oldstate == PLAYER_STATE_DRIVER)
  32870. {
  32871. if (IsValidVehicle(Players[playerid][pAddVehicle]))
  32872. {
  32873. DestroyVehicleEx(Players[playerid][pAddVehicle]);
  32874. Players[playerid][pAddVehicle] = INVALID_VEHICLE_ID;
  32875. }
  32876. ResetHotwiring(playerid);
  32877. ShowFuelGauge(playerid, false);
  32878. ShowSpeedometer(playerid, false);
  32879. }
  32880. else if (newstate == PLAYER_STATE_PASSENGER)
  32881. {
  32882. new
  32883. driverid = GetVehicleDriver(GetPlayerVehicleID(playerid));
  32884. if (driverid != INVALID_PLAYER_ID)
  32885. {
  32886. if (Players[driverid][pJob] == JOB_TAXI && IsPlayerInTaxi(driverid) && !Players[driverid][pPassenger])
  32887. {
  32888. SendInfoMessage(playerid, "You have entered %s's taxi. Please state your destination.", ReturnNameEx(driverid));
  32889. SendInfoMessage(driverid, "%s has entered your taxi.", ReturnNameEx(playerid));
  32890. Players[driverid][pPassenger] = 1;
  32891. Players[playerid][pInsideTaxi] = driverid;
  32892. Players[playerid][pTaxiMeter] = 1;
  32893. }
  32894. }
  32895. switch (GetPlayerWeapon(playerid))
  32896. {
  32897. case 22, 25, 28, 29, 30, 31, 32:
  32898. SetPlayerArmedWeapon(playerid, GetPlayerWeapon(playerid));
  32899. default:
  32900. SetPlayerArmedWeapon(playerid, 0);
  32901. }
  32902. }
  32903. else if (oldstate == PLAYER_STATE_PASSENGER)
  32904. {
  32905. if (Players[playerid][pInsideTaxi] != INVALID_PLAYER_ID)
  32906. {
  32907. OnPlayerExitTaxi(playerid);
  32908. }
  32909. }
  32910. if (newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
  32911. {
  32912. new tick = NetStats_GetConnectedTime(playerid);
  32913. if ((GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_CARRY) || Players[playerid][pDeathState] == DEATH_STATE_INJURED && GetVehicleModel(GetPlayerVehicleID(playerid)) != 416)
  32914. {
  32915. new Float:x, Float:y, Float:z;
  32916. GetPlayerPos(playerid, x, y, z);
  32917. SetPlayerPos(playerid, x, y, z + 1.0);
  32918. }
  32919. foreach (new i : Player)
  32920. {
  32921. if (GetPlayerState(i) == PLAYER_STATE_SPECTATING && Players[i][pSpectate] == playerid)
  32922. {
  32923. PlayerSpectateVehicle(i, GetPlayerVehicleID(playerid));
  32924. }
  32925. }
  32926. if (Players[playerid][pEnterTime] > 0 && (tick - Players[playerid][pEnterTime]) < 1000)
  32927. {
  32928. SendAdminMessage(COLOR_RED, "Admin: %s was kicked for possible vehicle warping.", ReturnNameEx(playerid));
  32929. KickPlayer(playerid);
  32930. }
  32931. Players[playerid][pEnterTime] = tick;
  32932. gLastVehicleID[playerid] = GetPlayerVehicleID(playerid);
  32933. }
  32934. else if (oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER)
  32935. {
  32936. new vehicle = GetVehicleID(gLastVehicleID[playerid]);
  32937. if (vehicle != INVALID_ID && Vehicles[vehicle][vRentable] && Vehicles[vehicle][vRenter] == INVALID_PLAYER_ID)
  32938. {
  32939. SetVehicleToRespawn(Vehicles[vehicle][vVehicle]);
  32940. }
  32941. if (Players[playerid][pHandcuffed])
  32942. {
  32943. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CUFFED);
  32944. }
  32945. foreach (new i : Player)
  32946. {
  32947. if (GetPlayerState(i) == PLAYER_STATE_SPECTATING && Players[i][pSpectate] == playerid)
  32948. {
  32949. PlayerSpectatePlayer(i, playerid);
  32950. }
  32951. }
  32952. if (Players[playerid][pVehicleColor] != INVALID_ID)
  32953. {
  32954. ChangeVehicleColor(Vehicles[Players[playerid][pVehicleColor]][vID], Vehicles[Players[playerid][pVehicleColor]][vColor1], Vehicles[Players[playerid][pVehicleColor]][vColor2]);
  32955. Players[playerid][pVehicleColor] = INVALID_ID;
  32956. }
  32957. }
  32958. return 1;
  32959. }
  32960. public OnPlayerText(playerid, text[])
  32961. {
  32962. new vehicleid = GetPlayerVehicleID(playerid);
  32963. new string[128];
  32964. if (!IsValidInput(text) || !IsPlayerLoggedIn(playerid) || Players[playerid][pMuted] || Players[playerid][pFainted] || !Players[playerid][pSetupInfo] || Players[playerid][pDeathState] == DEATH_STATE_HOSPITAL)
  32965. {
  32966. return 0;
  32967. }
  32968. else if (Players[playerid][pSpectate] != INVALID_PLAYER_ID)
  32969. {
  32970. return 0;
  32971. }
  32972. else
  32973. {
  32974. if (!Players[playerid][pCalling] && !Players[playerid][pAnimation] && Players[playerid][pDeathState] == DEATH_STATE_NONE && !Players[playerid][pTazed])
  32975. {
  32976. PlayChatStyle(playerid, text);
  32977. }
  32978. if (IsPlayerInAnyVehicle(playerid) && IsWindowedVehicle(vehicleid) && !VehicleInformation[vehicleid][vWindows])
  32979. {
  32980. if (Players[playerid][pCalling] > 1)
  32981. {
  32982. //SendVehicleMessage(vehicleid, COLOR_LIGHTGREY, "[Phone] %s says: %s", ReturnNameEx(playerid), text);
  32983. SendDistanceMessage(playerid, 20.0, COLOR_WHITE, "(Phone) %s says: %s", ReturnNameEx(playerid), text);
  32984. foreach (new i : Player)
  32985. {
  32986. if (Players[i][pBigEars])
  32987. {
  32988. SendSplitMessage(i, COLOR_WHITE, "(Phone) %s says: %s", ReturnNameEx(playerid), text);
  32989. }
  32990. }
  32991. }
  32992. else
  32993. {
  32994. //SendVehicleMessage(vehicleid, COLOR_LIGHTGREY, "[Windows Up] %s says: %s", ReturnNameEx(playerid), text);
  32995. SendDistanceMessage(playerid, 20.0, COLOR_WHITE, "{%06x}%s{FFFFFF} says: %s",(GetPlayerColor(playerid) >>> 8), ReturnNameEx(playerid), text);
  32996. foreach (new i : Player)
  32997. {
  32998. if (Players[i][pBigEars])
  32999. {
  33000. SendSplitMessage(i, COLOR_WHITE, "{%06x}%s{FFFFFF} says: %s",(GetPlayerColor(playerid) >>> 8), ReturnNameEx(playerid), text);
  33001. }
  33002. }
  33003. }
  33004. }
  33005. else if (Players[playerid][pCalling] != 0 && Players[playerid][pCalling] != 1)
  33006. {
  33007. SendDistanceMessage(playerid, 20.0, COLOR_WHITE, "(Phone) %s says: %s", ReturnNameEx(playerid), text);
  33008. foreach (new i : Player)
  33009. {
  33010. if (Players[i][pBigEars])
  33011. {
  33012. SendSplitMessage(i, COLOR_WHITE, "(Phone) %s says: %s", ReturnNameEx(playerid), text);
  33013. }
  33014. }
  33015. }
  33016. else
  33017. {
  33018. SendDistanceMessage(playerid, 20.0, COLOR_WHITE, "{%06x}%s{FFFFFF} says: %s",(GetPlayerColor(playerid) >>> 8), ReturnNameEx(playerid), text);
  33019. foreach (new i : Player)
  33020. {
  33021. if (Players[i][pBigEars])
  33022. {
  33023. SendSplitMessage(i, COLOR_WHITE, "{%06x}%s{FFFFFF} says: %s",(GetPlayerColor(playerid) >>> 8), ReturnNameEx(playerid), text);
  33024. }
  33025. }
  33026. }
  33027. if (Players[playerid][pCalling] > 1)
  33028. {
  33029. if (Players[playerid][pCaller] != INVALID_PLAYER_ID)
  33030. {
  33031. if (Players[playerid][pPayphone] == INVALID_ID)
  33032. {
  33033. SendSplitMessage(Players[playerid][pCaller], COLOR_YELLOW, "(Phone) %s says: %s", ReturnNameEx(playerid), text);
  33034. }
  33035. else
  33036. {
  33037. SendSplitMessage(Players[playerid][pCaller], COLOR_YELLOW, "(Phone) Unknown says: %s", text);
  33038. }
  33039. }
  33040. else
  33041. {
  33042. switch (Players[playerid][pCalling])
  33043. {
  33044. case 444:
  33045. {
  33046. if (!PlayerCanAfford(playerid, 200))
  33047. {
  33048. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Agency: You must have at least $200 to complete the transaction.");
  33049. }
  33050. else if (Players[playerid][pAdTime] > gettime())
  33051. {
  33052. SendFormatMessage(playerid, COLOR_YELLOW, "(Phone) Agency: You may publish another advertisement in %i seconds.", Players[playerid][pAdTime] - gettime());
  33053. }
  33054. else
  33055. {
  33056. RemoveMoney(playerid, 200);
  33057. Players[playerid][pAdTime] = gettime() + 120;
  33058. strpack(gAdvertisement[playerid], text, 128);
  33059. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Agency: Your advertisement has been sent in for review.");
  33060. SendClientMessage(playerid, COLOR_YELLOW, "(( You will need to wait for an administrator to accept your advertisement. ))");
  33061. foreach(new i : Player)
  33062. {
  33063. if(Players[i][pAdmin] > 0 || Players[i][pSupporter] > 0)
  33064. {
  33065. SendFormatMessage(i, COLOR_RED, "[AD] %s posted: %s", ReturnNameEx(playerid, 0), text);
  33066. SendFormatMessage(i, COLOR_RED, "[AD] Use /acceptad %i or /denyad %i to handle this advertisement.", playerid, playerid);
  33067. }
  33068. }
  33069. Players[playerid][pPhoneLastKnown] = Players[playerid][pPhone];
  33070. format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET PhoneLastKnown = %i WHERE Username = '%s'", Players[playerid][pPhone], ReturnName(playerid));
  33071. mysql_tquery(gConnection, gExecute);
  33072. }
  33073. HangupCall(playerid);
  33074. }
  33075. case 991:
  33076. {
  33077. foreach (new i : Player)
  33078. {
  33079. if (GetPlayerFactionType(i) == FACTION_LEO)
  33080. {
  33081. /*SendFormatMessage(i, COLOR_RADIO, "** Dispatch: All units, a call came in from %s. **", GetPlayerZoneNameEx(playerid));
  33082. SendFormatMessage(i, COLOR_RADIO, "** %s - %s **", text, ReturnNameEx(playerid));*/
  33083. SendFormatMessage(i, COLOR_RADIO, "________________[ Non-Emergency ]________________");
  33084. if (Players[playerid][pPayphone] != INVALID_ID)
  33085. {
  33086. SendFormatMessage(i, COLOR_RADIO, "* Name: Payphone (ID: %i)", playerid);
  33087. SendFormatMessage(i, COLOR_RADIO, "* Number: %i", Payphones[Players[playerid][pPayphone]][phNumber]);
  33088. AddEmergency(ReturnNameEx(playerid), "Police Non-Emergency", Payphones[Players[playerid][pPayphone]][phNumber], GetPlayerZoneNameEx(playerid), text);
  33089. }
  33090. else
  33091. {
  33092. SendFormatMessage(i, COLOR_RADIO, "* Name: %s (ID: %i)", ReturnNameEx(playerid), playerid);
  33093. SendFormatMessage(i, COLOR_RADIO, "* Number: %i", Players[playerid][pPhone]);
  33094. AddEmergency(ReturnNameEx(playerid), "Police Non-Emergency", Players[playerid][pPhone], GetPlayerZoneNameEx(playerid), text);
  33095. }
  33096. //SendFormatMessage(i, COLOR_RADIO, "* Location: %s", GetPlayerZoneNameEx(playerid));
  33097. SendFormatMessage(i, COLOR_RADIO, "* Situation: %s", text);
  33098. //SendFormatMessage(i, COLOR_RADIO, "(( Use '/acceptcall %i' to accept this call. ))",playerid);
  33099. }
  33100. }
  33101. HangupCall(playerid);
  33102. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) John Doe: Thank you, a representative will call you as soon as possible.");
  33103. Players[playerid][pPhoneLastKnown] = Players[playerid][pPhone];
  33104. format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET PhoneLastKnown = %i WHERE Username = '%s'", Players[playerid][pPhone], ReturnName(playerid));
  33105. mysql_tquery(gConnection, gExecute);
  33106. }
  33107. case 992:
  33108. {
  33109. foreach (new i : Player)
  33110. {
  33111. if (GetPlayerFactionType(i) == FACTION_MEDICAL)
  33112. {
  33113. /*SendFormatMessage(i, COLOR_RADIO, "** Dispatch: All units, a call came in from %s. **", GetPlayerZoneNameEx(playerid));
  33114. SendFormatMessage(i, COLOR_RADIO, "** %s - %s **", text, ReturnNameEx(playerid));*/
  33115. SendFormatMessage(i, COLOR_RADIO, "________________[ Non-Emergency ]________________");
  33116. if (Players[playerid][pPayphone] != INVALID_ID)
  33117. {
  33118. SendFormatMessage(i, COLOR_RADIO, "* Name: Payphone (ID: %i)", playerid);
  33119. SendFormatMessage(i, COLOR_RADIO, "* Number: %i", Payphones[Players[playerid][pPayphone]][phNumber]);
  33120. }
  33121. else
  33122. {
  33123. SendFormatMessage(i, COLOR_RADIO, "* Name: %s (ID: %i)", ReturnNameEx(playerid), playerid);
  33124. SendFormatMessage(i, COLOR_RADIO, "* Number: %i", Players[playerid][pPhone]);
  33125. }
  33126. //SendFormatMessage(i, COLOR_RADIO, "* Location: %s", GetPlayerZoneNameEx(playerid));
  33127. SendFormatMessage(i, COLOR_RADIO, "* Situation: %s", text);
  33128. //SendFormatMessage(i, COLOR_RADIO, "(( Use '/acceptcall %i' to accept this call. ))",playerid);
  33129. }
  33130. }
  33131. HangupCall(playerid);
  33132. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) John Doe: Thank you, a representative will call you as soon as possible.");
  33133. Players[playerid][pPhoneLastKnown] = Players[playerid][pPhone];
  33134. format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET PhoneLastKnown = %i WHERE Username = '%s'", Players[playerid][pPhone], ReturnName(playerid));
  33135. mysql_tquery(gConnection, gExecute);
  33136. }
  33137. case 993:
  33138. {
  33139. foreach (new i : Player)
  33140. {
  33141. if (GetPlayerFactionType(i) == FACTION_GOVERNMENT)
  33142. {
  33143. /*SendFormatMessage(i, COLOR_RADIO, "** Dispatch: All units, a call came in from %s. **", GetPlayerZoneNameEx(playerid));
  33144. SendFormatMessage(i, COLOR_RADIO, "** %s - %s **", text, ReturnNameEx(playerid));*/
  33145. SendFormatMessage(i, COLOR_RADIO, "_______________[ Government Call ]_______________");
  33146. if (Players[playerid][pPayphone] != INVALID_ID)
  33147. {
  33148. SendFormatMessage(i, COLOR_RADIO, "* Name: Payphone (ID: %i)", playerid);
  33149. SendFormatMessage(i, COLOR_RADIO, "* Number: %i", Payphones[Players[playerid][pPayphone]][phNumber]);
  33150. }
  33151. else
  33152. {
  33153. SendFormatMessage(i, COLOR_RADIO, "* Name: %s (ID: %i)", ReturnNameEx(playerid), playerid);
  33154. SendFormatMessage(i, COLOR_RADIO, "* Number: %i", Players[playerid][pPhone]);
  33155. }
  33156. //SendFormatMessage(i, COLOR_RADIO, "* Location: %s", GetPlayerZoneNameEx(playerid));
  33157. SendFormatMessage(i, COLOR_RADIO, "* Situation: %s", text);
  33158. //SendFormatMessage(i, COLOR_RADIO, "(( Use '/acceptcall %i' to accept this call. ))",playerid);
  33159. }
  33160. }
  33161. HangupCall(playerid);
  33162. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) John Doe: Thank you, a representative will call you as soon as possible.");
  33163. Players[playerid][pPhoneLastKnown] = Players[playerid][pPhone];
  33164. format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET PhoneLastKnown = %i WHERE Username = '%s'", Players[playerid][pPhone], ReturnName(playerid));
  33165. mysql_tquery(gConnection, gExecute);
  33166. }
  33167. case 555:
  33168. {
  33169. if (!strcmp(text, "yes", true))
  33170. {
  33171. Players[playerid][pCallTaxi] = 1;
  33172. foreach (new i : Player)
  33173. {
  33174. if (Players[i][pJob] == JOB_TAXI && IsPlayerInTaxi(i))
  33175. {
  33176. SendFormatMessage(i, COLOR_YELLOW, "(Taxi) %s (%i) has requested a taxi (use /accepttaxi to accept).", ReturnNameEx(playerid), playerid);
  33177. }
  33178. }
  33179. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Taxi: All taxi drivers have been notified of your request.");
  33180. Players[playerid][pPhoneLastKnown] = Players[playerid][pPhone];
  33181. format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET PhoneLastKnown = %i WHERE Username = '%s'", Players[playerid][pPhone], ReturnName(playerid));
  33182. mysql_tquery(gConnection, gExecute);
  33183. }
  33184. else if (!strcmp(text, "no", true))
  33185. {
  33186. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Taxi: Call back if you would like to request a taxi.");
  33187. }
  33188. else
  33189. {
  33190. return SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Taxi: Would you like to request a taxi? Say 'yes' or 'no'.");
  33191. }
  33192. HangupCall(playerid);
  33193. }
  33194. case 911:
  33195. {
  33196. switch (Players[playerid][pDispatch])
  33197. {
  33198. case 0:
  33199. {
  33200. if (strfind(text, "both", true) != -1)
  33201. {
  33202. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Dispatch: You've been dispatched to both services. Please tell us the problem.");
  33203. Players[playerid][pDispatch] = 3;
  33204. }
  33205. else if (strfind(text, "police", true) != -1)
  33206. {
  33207. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Dispatch: You've been dispatched with the police. Please tell us the problem.");
  33208. Players[playerid][pDispatch] = 1;
  33209. }
  33210. else if (strfind(text, "officer", true) != -1)
  33211. {
  33212. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Dispatch: You've been dispatched with the police. Please tell us the problem.");
  33213. Players[playerid][pDispatch] = 1;
  33214. }
  33215. else if (strfind(text, "cop", true) != -1)
  33216. {
  33217. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Dispatch: You've been dispatched with the police. Please tell us the problem.");
  33218. Players[playerid][pDispatch] = 1;
  33219. }
  33220. else if (strfind(text, "ems", true) != -1)
  33221. {
  33222. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Dispatch: You've been dispatched with the paramedics. Please tell us the problem.");
  33223. Players[playerid][pDispatch] = 2;
  33224. }
  33225. else if (strfind(text, "ambulance", true) != -1)
  33226. {
  33227. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Dispatch: You've been dispatched with the paramedics. Please tell us the problem.");
  33228. Players[playerid][pDispatch] = 2;
  33229. }
  33230. else if (strfind(text, "fire", true) != -1)
  33231. {
  33232. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Dispatch: You've been dispatched with the paramedics. Please tell us the problem.");
  33233. Players[playerid][pDispatch] = 2;
  33234. }
  33235. else
  33236. {
  33237. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Dispatch: Which service do you require?");
  33238. }
  33239. }
  33240. case 1:
  33241. {
  33242. foreach (new i : Player)
  33243. {
  33244. if (GetPlayerFactionType(i) == FACTION_LEO)
  33245. {
  33246. new location[MAX_ZONE_NAME];
  33247. GetPlayer2DZone(i, location, MAX_ZONE_NAME);
  33248. SendFormatMessage(i, COLOR_RADIO, "_________________[Emergency Call]_________________");
  33249. if (Players[playerid][pPayphone] != INVALID_ID)
  33250. {
  33251. SendFormatMessage(i, COLOR_RADIO, "* Name: Payphone (ID: %i)", playerid);
  33252. SendFormatMessage(i, COLOR_RADIO, "* Number: %i", Payphones[Players[playerid][pPayphone]][phNumber]);
  33253. //AddEmergency(ReturnNameEx(playerid), "Police", Payphones[Players[playerid][pPayphone]][phNumber], GetPlayerZoneNameEx(playerid), text);
  33254. }
  33255. else
  33256. {
  33257. SendFormatMessage(i, COLOR_RADIO, "* Name: %s (ID: %i)", ReturnNameEx(playerid), playerid);
  33258. SendFormatMessage(i, COLOR_RADIO, "* Number: %i", Players[playerid][pPhone]);
  33259. //AddEmergency(ReturnNameEx(playerid), "Police", Players[playerid][pPhone], GetPlayerZoneNameEx(playerid), text);
  33260. }
  33261. SendFormatMessage(i, COLOR_RADIO, "* Location: %s", location);
  33262. SendFormatMessage(i, COLOR_RADIO, "* Situation: %s", text);
  33263. SendFormatMessage(i, COLOR_RADIO, "* Service: Police");
  33264. //SendFormatMessage(i, COLOR_RADIO, "(( Use '/acceptcall %i' to accept this call. ))",playerid);
  33265. }
  33266. }
  33267. if (Players[playerid][pPayphone] != INVALID_ID)
  33268. AddEmergency(ReturnNameEx(playerid), "Police", Payphones[Players[playerid][pPayphone]][phNumber], GetPlayerZoneNameEx(playerid), text);
  33269. else
  33270. AddEmergency(ReturnNameEx(playerid), "Police", Players[playerid][pPhone], GetPlayerZoneNameEx(playerid), text);
  33271. HangupCall(playerid);
  33272. gCallsHour++;
  33273. Players[playerid][pEmergency] = 1;
  33274. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Dispatch: Thank you for reporting the crime. The authorities have been informed.");
  33275. Players[playerid][pPhoneLastKnown] = Players[playerid][pPhone];
  33276. format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET PhoneLastKnown = %i WHERE Username = '%s'", Players[playerid][pPhone], ReturnName(playerid));
  33277. mysql_tquery(gConnection, gExecute);
  33278. }
  33279. case 2:
  33280. {
  33281. foreach (new i : Player)
  33282. {
  33283. if (GetPlayerFactionType(i) == FACTION_MEDICAL)
  33284. {
  33285. /*SendFormatMessage(i, COLOR_MEDICRADIO, "** Dispatch: All units, a call came in from %s. **", GetPlayerZoneNameEx(playerid));
  33286. SendFormatMessage(i, COLOR_MEDICRADIO, "** %s - %s **", text, ReturnNameEx(playerid));*/
  33287. SendFormatMessage(i, COLOR_RADIO, "_________________[Emergency Call]_________________");
  33288. if (Players[playerid][pPayphone] != INVALID_ID)
  33289. {
  33290. SendFormatMessage(i, COLOR_RADIO, "* Name: Payphone (ID: %i)", playerid);
  33291. SendFormatMessage(i, COLOR_RADIO, "* Number: %i", Payphones[Players[playerid][pPayphone]][phNumber]);
  33292. //AddEmergency(ReturnNameEx(playerid), "Paramedics", Payphones[Players[playerid][pPayphone]][phNumber], GetPlayerZoneNameEx(playerid), text);
  33293. }
  33294. else
  33295. {
  33296. SendFormatMessage(i, COLOR_RADIO, "* Name: %s (ID: %i)", ReturnNameEx(playerid), playerid);
  33297. SendFormatMessage(i, COLOR_RADIO, "* Number: %i", Players[playerid][pPhone]);
  33298. //AddEmergency(ReturnNameEx(playerid), "Paramedics", Players[playerid][pPhone], GetPlayerZoneNameEx(playerid), text);
  33299. }
  33300. SendFormatMessage(i, COLOR_RADIO, "* Location: %s", GetPlayerZoneNameEx(playerid));
  33301. SendFormatMessage(i, COLOR_RADIO, "* Situation: %s", text);
  33302. SendFormatMessage(i, COLOR_RADIO, "* Service: Paramedics");
  33303. //SendFormatMessage(i, COLOR_RADIO, "(( Use '/acceptcall %i' to accept this call. ))",playerid);
  33304. }
  33305. }
  33306. if (Players[playerid][pPayphone] != INVALID_ID)
  33307. AddEmergency(ReturnNameEx(playerid), "Paramedics", Payphones[Players[playerid][pPayphone]][phNumber], GetPlayerZoneNameEx(playerid), text);
  33308. else
  33309. AddEmergency(ReturnNameEx(playerid), "Paramedics", Players[playerid][pPhone], GetPlayerZoneNameEx(playerid), text);
  33310. HangupCall(playerid);
  33311. gCallsHour++;
  33312. Players[playerid][pEmergency] = 1;
  33313. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Dispatch: Thank you for reporting the crime. The paramedics have been informed.");
  33314. Players[playerid][pPhoneLastKnown] = Players[playerid][pPhone];
  33315. format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET PhoneLastKnown = %i WHERE Username = '%s'", Players[playerid][pPhone], ReturnName(playerid));
  33316. mysql_tquery(gConnection, gExecute);
  33317. }
  33318. case 3:
  33319. {
  33320. foreach (new i : Player)
  33321. {
  33322. if (GetPlayerFactionType(i) == FACTION_LEO || GetPlayerFactionType(i) == FACTION_MEDICAL)
  33323. {
  33324. /*SendFormatMessage(i, COLOR_MEDICRADIO, "** Dispatch: All units, a call came in from %s. **", GetPlayerZoneNameEx(playerid));
  33325. SendFormatMessage(i, COLOR_MEDICRADIO, "** %s - %s **", text, ReturnNameEx(playerid));*/
  33326. SendFormatMessage(i, COLOR_RADIO, "_________________[Emergency Call]_________________");
  33327. if (Players[playerid][pPayphone] != INVALID_ID)
  33328. {
  33329. SendFormatMessage(i, COLOR_RADIO, "* Name: Payphone (ID: %i)", playerid);
  33330. SendFormatMessage(i, COLOR_RADIO, "* Number: %i", Payphones[Players[playerid][pPayphone]][phNumber]);
  33331. //AddEmergency(ReturnNameEx(playerid), "Both", Payphones[Players[playerid][pPayphone]][phNumber], GetPlayerZoneNameEx(playerid), text);
  33332. }
  33333. else
  33334. {
  33335. SendFormatMessage(i, COLOR_RADIO, "* Name: %s (ID: %i)", ReturnNameEx(playerid), playerid);
  33336. SendFormatMessage(i, COLOR_RADIO, "* Number: %i", Players[playerid][pPhone]);
  33337. //AddEmergency(ReturnNameEx(playerid), "Both", Players[playerid][pPhone], GetPlayerZoneNameEx(playerid), text);
  33338. }
  33339. SendFormatMessage(i, COLOR_RADIO, "* Location: %s", GetPlayerZoneNameEx(playerid));
  33340. SendFormatMessage(i, COLOR_RADIO, "* Situation: %s", text);
  33341. SendFormatMessage(i, COLOR_RADIO, "* Service: Both");
  33342. //SendFormatMessage(i, COLOR_RADIO, "(( Use '/acceptcall %i' to accept this call. ))",playerid);
  33343. }
  33344. }
  33345. if (Players[playerid][pPayphone] != INVALID_ID)
  33346. AddEmergency(ReturnNameEx(playerid), "Both", Payphones[Players[playerid][pPayphone]][phNumber], GetPlayerZoneNameEx(playerid), text);
  33347. else
  33348. AddEmergency(ReturnNameEx(playerid), "Both", Players[playerid][pPhone], GetPlayerZoneNameEx(playerid), text);
  33349. HangupCall(playerid);
  33350. gCallsHour++;
  33351. Players[playerid][pEmergency] = 1;
  33352. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Dispatch: Thank you for reporting the crime. The police and paramedics have been informed.");
  33353. Players[playerid][pPhoneLastKnown] = Players[playerid][pPhone];
  33354. format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET PhoneLastKnown = %i WHERE Username = '%s'", Players[playerid][pPhone], ReturnName(playerid));
  33355. mysql_tquery(gConnection, gExecute);
  33356. }
  33357. }
  33358. }
  33359. }
  33360. }
  33361. }
  33362. }
  33363. return 0;
  33364. }
  33365. public OnPlayerCommandPerformed(playerid, cmdtext[], success)
  33366. {
  33367. if (!success) SendErrorMessage(playerid, "You have entered an invalid command.");
  33368. return 1;
  33369. }
  33370. public OnPlayerCommandReceived(playerid, cmdtext[])
  33371. {
  33372. if (!IsPlayerLoggedIn(playerid) || !IsPlayerSpawned(playerid) || !Players[playerid][pSetupInfo] || Players[playerid][pDeathState] == DEATH_STATE_HOSPITAL || Players[playerid][pCommandMuted] > 0)
  33373. {
  33374. return 0;
  33375. }
  33376. if (!Players[playerid][pAdmin] && Players[playerid][pCommandSpam] < 5 && ++ Players[playerid][pCommandSpam] >= 5)
  33377. {
  33378. Players[playerid][pCommandSpam] = 0;
  33379. Players[playerid][pCommandMuted] = 10;
  33380. SendClientMessage(playerid, COLOR_WHITE, "You have been muted 10 seconds for command spamming.");
  33381. SendAdminMessage(COLOR_RED, "Admin: %s has been muted for command spamming.", ReturnNameEx(playerid));
  33382. return 0;
  33383. }
  33384. printf("(CMD) %s (%i): %s", ReturnNameEx(playerid, 0), playerid, cmdtext);
  33385. return 1;
  33386. }
  33387. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  33388. {
  33389. if (IsPlayerInjured(playerid) || Players[playerid][pFainted] || Players[playerid][pTazed])
  33390. {
  33391. return 1;
  33392. }
  33393. if (IsPlayerSelectingOutfit(playerid))
  33394. {
  33395. if (newkeys & KEY_NO && Players[playerid][pSetupInfo])
  33396. {
  33397. CancelOutfitSelection(playerid);
  33398. Players[playerid][pBuyOutfit] = INVALID_ID;
  33399. }
  33400. else if (newkeys & KEY_SECONDARY_ATTACK)
  33401. {
  33402. if (!Players[playerid][pSetupInfo])
  33403. {
  33404. Players[playerid][pSkin] = g_ValidSkinModels[Players[playerid][pOutfitIndex]];
  33405. Players[playerid][pOutfitIndex] = INVALID_ID;
  33406. ApplyAnimation(playerid, "FREEWEIGHTS", "gym_free_celebrate", 4.0, 0, 0, 0, 0, 0, 1);
  33407. SetTimerEx("OutfitSelected", 2000, false, "i", playerid);
  33408. PlayerPlaySound(playerid, 1058, 0.0, 0.0, 0.0);
  33409. SendInfoMessage(playerid, "You have selected your outfit.");
  33410. }
  33411. else
  33412. {
  33413. if (Companies[Players[playerid][pBuyOutfit]][cType] == COMPANY_CLOTHES)
  33414. {
  33415. Players[playerid][pSkin] = g_ValidSkinModels[Players[playerid][pOutfitIndex]];
  33416. CancelOutfitSelection(playerid);
  33417. PurchaseProduct(playerid, Players[playerid][pBuyOutfit], 0);
  33418. SendInfoMessage(playerid, "You have purchased a new outfit for {33CC33}%s{FFFFFF}.", FormatNumber(Products[Players[playerid][pBuyOutfit]][0][prPrice]));
  33419. Players[playerid][pBuyOutfit] = INVALID_ID;
  33420. }
  33421. }
  33422. }
  33423. }
  33424. else
  33425. {
  33426. if(newkeys & KEY_FIRE && IsPlayerInModdingShop(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER && Players[playerid][pModPreview] >= 1000)
  33427. {
  33428. Dialog_Show(playerid, ModdingPurchase, DIALOG_STYLE_MSGBOX, "{33AA33}Modding - Choose Option", "{FFFFFF}Do you want to purchase this {33AA33}%s{FFFFFF} for {33AA33}$%i{FFFFFF}?", "Yes", "No", GetVehicleComponentName(Players[playerid][pModPreview]), GetVehicleComponentPriceEx(Players[playerid][pModPreview]));
  33429. }
  33430. if (newkeys & KEY_CTRL_BACK && !IsPlayerSpectating(playerid))
  33431. {
  33432. if (!EnterCaller(playerid)) ExitCaller(playerid);
  33433. SitCheck(playerid);
  33434. }
  33435. if (Players[playerid][pSetupInfo])
  33436. {
  33437. if (newkeys & KEY_NO)
  33438. {
  33439. if (Players[playerid][pSelectUniform])
  33440. {
  33441. Players[playerid][pSelectUniform] = 0;
  33442. TogglePlayerControllable(playerid, true);
  33443. SetPlayerSkin(playerid, Players[playerid][pSkin]);
  33444. SendInfoMessage(playerid, "You have cancelled uniform selection.");
  33445. ShowLockerMenu(playerid);
  33446. }
  33447. else if (Players[playerid][pVehicleColor] != INVALID_ID)
  33448. {
  33449. ChangeVehicleColor(Vehicles[Players[playerid][pVehicleColor]][vVehicle], Vehicles[Players[playerid][pVehicleColor]][vColor1], Vehicles[Players[playerid][pVehicleColor]][vColor2]);
  33450. Players[playerid][pVehicleColor] = INVALID_ID;
  33451. TogglePlayerControllable(playerid, true);
  33452. SendInfoMessage(playerid, "You have cancelled the color selection.");
  33453. }
  33454. else if (IsPlayerJailed(playerid))
  33455. {
  33456. SendErrorMessage(playerid, "You can't access your inventory in jail.");
  33457. }
  33458. else if (Players[playerid][pHandcuffed])
  33459. {
  33460. SendErrorMessage(playerid, "You can't access your inventory while cuffed.");
  33461. }
  33462. else
  33463. {
  33464. /*if (!Players[playerid][pInventory])
  33465. {
  33466. DisplayInventory(playerid);
  33467. SendInfoMessage(playerid, "Press ESC to close your inventory.");
  33468. }
  33469. else
  33470. {
  33471. HideInventory(playerid);
  33472. }*/
  33473. new success = DisplayInventory(playerid);
  33474. if (!success)
  33475. {
  33476. SendErrorMessage(playerid, "You don't have any items in your inventory.");
  33477. }
  33478. }
  33479. }
  33480. if (newkeys & KEY_CROUCH && IsPlayerInAnyVehicle(playerid))
  33481. {
  33482. GateCheck(playerid);
  33483. }
  33484. if (newkeys & KEY_YES)
  33485. {
  33486. if (Players[playerid][pVehicleColor] != INVALID_ID)
  33487. {
  33488. new vehicle = Players[playerid][pVehicleColor];
  33489. Vehicles[vehicle][vColor1] = Players[playerid][pColorID];
  33490. Vehicles[vehicle][vColor2] = Players[playerid][pColorID];
  33491. SaveVehicle(vehicle);
  33492. RemoveMoney(playerid, 100);
  33493. TogglePlayerControllable(playerid, true);
  33494. SendInfoMessage(playerid, "You have changed your vehicle's color for {33CC33}$100{FFFFFF}.");
  33495. Players[playerid][pVehicleColor] = INVALID_ID;
  33496. PlayerPlaySound(playerid, 1134, 0.0, 0.0, 0.0);
  33497. }
  33498. else if (Players[playerid][pOutfitIndex] == INVALID_ID)
  33499. {
  33500. if (GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  33501. {
  33502. LoadCheck(playerid);
  33503. GateCheck(playerid);
  33504. if (GetClosestShell(playerid) != INVALID_ID) ShellCheck(playerid);
  33505. else if (GetClosestDropItem(playerid) != INVALID_ID) PickupNearestItem(playerid);
  33506. else if (GetClosestWeedPlant(playerid) != INVALID_ID) WeedCheck(playerid);
  33507. //else if (GetClosestBlood(playerid) != INVALID_ID) BloodCheck(playerid);
  33508. else if (IsPlayerNearSwitch(playerid)) LightSwitch(playerid);
  33509. else if (IsPlayerInRangeOfLocker(playerid)) ShowLockerMenu(playerid);
  33510. else if (GetClosestFurniture(playerid, 2.0, 2332) != INVALID_ID) SafeCheck(playerid);
  33511. else if (GetClosestFridge(playerid, 2.0) != INVALID_ID) FridgeCheck(playerid);
  33512. else if (GetClosestATM(playerid) != INVALID_ID) ATMCheck(playerid);
  33513. else if (GetClosestTrashbin(playerid) != INVALID_ID) TrashbinCheck(playerid);
  33514. else if (IsPlayerNearGymEquipment(playerid)) GymCheck(playerid);
  33515. }
  33516. }
  33517. }
  33518. if (newkeys & KEY_SPRINT)
  33519. {
  33520. if (Players[playerid][pAnimation])
  33521. {
  33522. Players[playerid][pAnimation] = 0;
  33523. ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.0, 0, 0, 0, 0, 0);
  33524. HideFooterText(playerid);
  33525. }
  33526. WorkoutUpdate(playerid);
  33527. }
  33528. if (newkeys & KEY_SECONDARY_ATTACK)
  33529. {
  33530. if (Players[playerid][pSelectUniform] && Players[playerid][pFaction] != INVALID_ID)
  33531. {
  33532. Players[playerid][pUniform] = Players[playerid][pSkin];
  33533. Players[playerid][pSkin] = Factions[Players[playerid][pFaction]][fcUniforms][Players[playerid][pUniformIndex]];
  33534. Players[playerid][pSelectUniform] = 0;
  33535. SendInfoMessage(playerid, "You have selected your uniform.");
  33536. TogglePlayerControllable(playerid, true);
  33537. //ShowLockerMenu(playerid);
  33538. }
  33539. }
  33540. if (Players[playerid][pVehicleColor] != INVALID_ID)
  33541. {
  33542. if (newkeys & KEY_LOOK_LEFT)
  33543. {
  33544. if (--Players[playerid][pColorID] < 0)
  33545. {
  33546. Players[playerid][pColorID] = 255;
  33547. }
  33548. ChangeVehicleColor(GetPlayerVehicleID(playerid), Players[playerid][pColorID], Players[playerid][pColorID]);
  33549. PlayerPlaySound(playerid, 1053, 0.0, 0.0, 0.0);
  33550. }
  33551. else if (newkeys & KEY_LOOK_RIGHT)
  33552. {
  33553. if (++Players[playerid][pColorID] > 255)
  33554. {
  33555. Players[playerid][pColorID] = 0;
  33556. }
  33557. ChangeVehicleColor(GetPlayerVehicleID(playerid), Players[playerid][pColorID], Players[playerid][pColorID]);
  33558. PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
  33559. }
  33560. }
  33561. }
  33562. }
  33563. return 1;
  33564. }
  33565. public OnPlayerClickTextDraw(playerid, Text:clickedid)
  33566. {
  33567. if (Dialog_Opened(playerid))
  33568. return 0;
  33569. if (Players[playerid][pIgnoreTD])
  33570. {
  33571. Players[playerid][pIgnoreTD] = 0;
  33572. return 0;
  33573. }
  33574. if (clickedid == INVALID_TEXT_DRAW)
  33575. {
  33576. /*if (!Players[playerid][pSetupInfo])
  33577. {
  33578. SetTimerEx("SelectTD", 200, false, "i", playerid);
  33579. return 1;
  33580. }*/
  33581. if (!Players[playerid][pSetupInfo])
  33582. {
  33583. return 1;
  33584. }
  33585. if (Players[playerid][pFurnitureMenu])
  33586. {
  33587. HideFurniturePreviewer(playerid);
  33588. }
  33589. if (Players[playerid][pAccessoryMenu])
  33590. {
  33591. HideAccessoryPreviewer(playerid);
  33592. }
  33593. if (Players[playerid][pDealershipMenu] != INVALID_ID)
  33594. {
  33595. HideDealershipPreview(playerid);
  33596. }
  33597. }
  33598. return 1;
  33599. }
  33600. public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
  33601. {
  33602. if (Dialog_Opened(playerid) || Players[playerid][pIgnoreTD])
  33603. return 0;
  33604. /*if (Players[playerid][pOutfitIndex] != INVALID_ID)
  33605. {
  33606. if (playertextid == Players[playerid][pText][1])
  33607. {
  33608. if (Players[playerid][pOutfitIndex] == 0)
  33609. Players[playerid][pOutfitIndex] = sizeof(g_ValidSkinModels) - 1;
  33610. else
  33611. Players[playerid][pOutfitIndex]--;
  33612. UpdateOutfitSelection(playerid);
  33613. PlayerPlaySound(playerid, 1053, 0.0, 0.0, 0.0);
  33614. }
  33615. else if (playertextid == Players[playerid][pText][2])
  33616. {
  33617. if (Players[playerid][pOutfitIndex] == sizeof(g_ValidSkinModels) - 1)
  33618. Players[playerid][pOutfitIndex] = 0;
  33619. else
  33620. Players[playerid][pOutfitIndex]++;
  33621. UpdateOutfitSelection(playerid);
  33622. PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
  33623. }
  33624. else if (playertextid == Players[playerid][pText][3])
  33625. {
  33626. if (!Players[playerid][pSetupInfo])
  33627. {
  33628. Players[playerid][pSkin] = g_ValidSkinModels[Players[playerid][pOutfitIndex]];
  33629. Players[playerid][pOutfitIndex] = INVALID_ID;
  33630. ApplyAnimation(playerid, "FREEWEIGHTS", "gym_free_celebrate", 4.0, 0, 0, 0, 0, 0, 1);
  33631. SetTimerEx("OutfitSelected", 2000, false, "i", playerid);
  33632. PlayerPlaySound(playerid, 1058, 0.0, 0.0, 0.0);
  33633. SendInfoMessage(playerid, "You have selected your outfit.");
  33634. }
  33635. else
  33636. {
  33637. if (Companies[Players[playerid][pBuyOutfit]][cType] == COMPANY_CLOTHES)
  33638. {
  33639. Players[playerid][pSkin] = g_ValidSkinModels[Players[playerid][pOutfitIndex]];
  33640. CancelOutfitSelection(playerid);
  33641. PurchaseProduct(playerid, Players[playerid][pBuyOutfit], 0);
  33642. SendInfoMessage(playerid, "You have purchased a new outfit for {33CC33}%s{FFFFFF}.", FormatNumber(Products[Players[playerid][pBuyOutfit]][0][prPrice]));
  33643. Players[playerid][pBuyOutfit] = INVALID_ID;
  33644. }
  33645. }
  33646. }
  33647. }*/
  33648. if (!Players[playerid][pSetupInfo])
  33649. {
  33650. if (playertextid == Players[playerid][pText][89]) {
  33651. Players[playerid][pGender] = GENDER_MALE;
  33652. UpdateSkinSelection(playerid, 0);
  33653. PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
  33654. } else if (playertextid == Players[playerid][pText][90]) {
  33655. Players[playerid][pGender] = GENDER_FEMALE;
  33656. UpdateSkinSelection(playerid, 0);
  33657. PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
  33658. } else if (playertextid == Players[playerid][pText][93] && Players[playerid][pAge] > 13) {
  33659. Players[playerid][pAge]--;
  33660. PlayerPlaySound(playerid, 1053, 0.0, 0.0, 0.0);
  33661. } else if (playertextid == Players[playerid][pText][94] && Players[playerid][pAge] < 99) {
  33662. Players[playerid][pAge]++;
  33663. PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
  33664. } else if (playertextid == Players[playerid][pText][97]) {
  33665. UpdateSkinSelection(playerid, Players[playerid][pOutfit] - 1);
  33666. PlayerPlaySound(playerid, 1053, 0.0, 0.0, 0.0);
  33667. } else if (playertextid == Players[playerid][pText][98]) {
  33668. UpdateSkinSelection(playerid, Players[playerid][pOutfit] + 1);
  33669. PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
  33670. } else if (playertextid == Players[playerid][pText][99]) {
  33671. ResetCharacterSetup(playerid);
  33672. } else if (playertextid == Players[playerid][pText][100]) {
  33673. Dialog_Show(playerid, SetupConfirm, DIALOG_STYLE_MSGBOX, "Confirmation", "Are you sure you would like to save your character?", "Yes", "No");
  33674. } else if (playertextid == Players[playerid][pText][101]) {
  33675. Dialog_Show(playerid, SetupHelp, DIALOG_STYLE_MSGBOX, "More Help", "You can easily setup your character using this simple interface.\n\n- To change your gender, click on {88AA62}Male{A9C4E4} or {88AA62}Female{A9C4E4}.\n- To change your age, click on the minus (-) and plus (+) buttons.\n- To change your outfit, click on the arrows to browse between outfits.\n\nOnce you are ready, just click {88AA62}Confirm{A9C4E4} to save your character!", "Close", "");
  33676. }
  33677. UpdateCharacterSetup(playerid);
  33678. }
  33679. if (Players[playerid][pFurnitureMenu])
  33680. {
  33681. if (playertextid == Players[playerid][pText][73])
  33682. {
  33683. if (Players[playerid][pPreviewIndex] > GetFurnitureListStart(Players[playerid][pCategory]))
  33684. {
  33685. Players[playerid][pPreviewIndex]--;
  33686. }
  33687. UpdateFurniturePreviewer(playerid);
  33688. PlayerPlaySound(playerid, 1053, 0.0, 0.0, 0.0);
  33689. }
  33690. else if (playertextid == Players[playerid][pText][74])
  33691. {
  33692. HideFurniturePreviewer(playerid);
  33693. PreviewFurniture(playerid, Players[playerid][pPreviewIndex]);
  33694. }
  33695. else if (playertextid == Players[playerid][pText][75])
  33696. {
  33697. if (Players[playerid][pPreviewIndex] < GetFurnitureListEnd(Players[playerid][pCategory]))
  33698. {
  33699. Players[playerid][pPreviewIndex]++;
  33700. }
  33701. UpdateFurniturePreviewer(playerid);
  33702. PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
  33703. }
  33704. }
  33705. if (Players[playerid][pAccessoryMenu])
  33706. {
  33707. if (playertextid == Players[playerid][pText][67])
  33708. {
  33709. if (Players[playerid][pPreviewIndex] > GetAccessoryListStart(Players[playerid][pCategory]))
  33710. {
  33711. Players[playerid][pPreviewIndex]--;
  33712. }
  33713. UpdateAccessoryPreviewer(playerid);
  33714. PlayerPlaySound(playerid, 1053, 0.0, 0.0, 0.0);
  33715. }
  33716. else if (playertextid == Players[playerid][pText][68])
  33717. {
  33718. if (Players[playerid][pPreviewIndex] < GetAccessoryListEnd(Players[playerid][pCategory]))
  33719. {
  33720. Players[playerid][pPreviewIndex]++;
  33721. }
  33722. UpdateAccessoryPreviewer(playerid);
  33723. PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
  33724. }
  33725. else if (playertextid == Players[playerid][pText][69])
  33726. {
  33727. HideAccessoryPreviewer(playerid);
  33728. PreviewAccessory(playerid, Players[playerid][pPreviewIndex]);
  33729. }
  33730. }
  33731. if (Players[playerid][pDealershipMenu] != INVALID_ID)
  33732. {
  33733. if (playertextid == Players[playerid][pText][83])
  33734. {
  33735. Players[playerid][pDealershipIndex] = GetPreviousDealershipCar(Players[playerid][pDealershipMenu], Players[playerid][pDealershipIndex]);
  33736. PlayerPlaySound(playerid, 1053, 0.0, 0.0, 0.0);
  33737. UpdateDealershipPreview(playerid);
  33738. }
  33739. else if (playertextid == Players[playerid][pText][85])
  33740. {
  33741. Players[playerid][pDealershipIndex] = GetNextDealershipCar(Players[playerid][pDealershipMenu], Players[playerid][pDealershipIndex]);
  33742. PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
  33743. UpdateDealershipPreview(playerid);
  33744. }
  33745. else if (playertextid == Players[playerid][pText][84])
  33746. {
  33747. new
  33748. index = Players[playerid][pDealershipIndex];
  33749. if (!PlayerCanAfford(playerid, DealershipCars[index][dcPrice]))
  33750. {
  33751. return SendErrorMessage(playerid, "You can't afford to buy this vehicle.");
  33752. }
  33753. else if (!IsVehicleSpawnSetup(Players[playerid][pDealershipMenu]))
  33754. {
  33755. return SendErrorMessage(playerid, "The vehicle spawn point is not setup.");
  33756. }
  33757. else
  33758. {
  33759. if (GetVehicleLimit(playerid) != 0 && GetOwnedVehicles(playerid) >= GetVehicleLimit(playerid))
  33760. {
  33761. HideDealershipPreview(playerid);
  33762. return SendErrorMessage(playerid, "You have reached the limit of owned vehicles.");
  33763. }
  33764. new
  33765. vehicle = AddVehicle(INVALID_ID, DealershipCars[index][dcModel], 0, Companies[Players[playerid][pDealershipMenu]][cVehicle][0], Companies[Players[playerid][pDealershipMenu]][cVehicle][1], Companies[Players[playerid][pDealershipMenu]][cVehicle][2], Companies[Players[playerid][pDealershipMenu]][cVehicle][3], 11, 11, playerid, .despawned = true);
  33766. if (vehicle == INVALID_ID)
  33767. {
  33768. return SendErrorMessage(playerid, "There are no available vehicle slots.");
  33769. }
  33770. else
  33771. {
  33772. new count = 1;
  33773. for (new i = 0; i < MAX_CARS; i ++)
  33774. {
  33775. if (IsValidVehicleID(i) && IsVehicleOwner(playerid, i) && !Vehicles[i][vDespawned])
  33776. {
  33777. count++;
  33778. }
  33779. }
  33780. if (count > GetVehicleSpawnLimit(playerid))
  33781. {
  33782. return SendErrorMessage(playerid, "You can only have two vehicles spawned at one time.");
  33783. }
  33784. Statistics[playerid][sVehicles]++;
  33785. RemoveMoney(playerid, DealershipCars[index][dcPrice]);
  33786. if (!IsCompanyOwner(playerid, Players[playerid][pDealershipMenu]))
  33787. {
  33788. GiveCompanyMoney(Players[playerid][pDealershipMenu], DealershipCars[index][dcPrice]);
  33789. }
  33790. format(gExecute, sizeof(gExecute), "INSERT INTO rp_purchases (Player, Type, Price, Date) VALUES(%i, '%s', %i, NOW())", Players[playerid][pID], GetVehicleModelName(DealershipCars[index][dcModel]), DealershipCars[index][dcPrice]);
  33791. mysql_tquery(gConnection, gExecute);
  33792. SendInfoMessage(playerid, "You have purchased a %s for {33CC33}%s{FFFFFF}. Use '/v spawn' to spawn it.", GetVehicleModelName(DealershipCars[index][dcModel]), FormatNumber(DealershipCars[index][dcPrice]));
  33793. HideDealershipPreview(playerid);
  33794. }
  33795. }
  33796. }
  33797. }
  33798. return 1;
  33799. }
  33800. public OnPlayerPickUpDynamicPickup(playerid, pickupid)
  33801. {
  33802. for (new i = 0; i < MAX_BUILDINGS; i ++)
  33803. {
  33804. if ((Buildings[i][bExists] && Buildings[i][bPickup] == pickupid) && Players[playerid][pBuildingInfo] != i)
  33805. {
  33806. if (Players[playerid][pAdmin] > 4)
  33807. {
  33808. SendInfoMessage(playerid, "The building ID is: %i. Use /editbuilding to edit it.", i);
  33809. }
  33810. else
  33811. {
  33812. SendInfoMessage(playerid, "Press H to enter this building.");
  33813. }
  33814. Players[playerid][pBuildingInfo] = i;
  33815. }
  33816. }
  33817. return 1;
  33818. }
  33819. /*forward CheckAmmo(playerid);
  33820. public CheckAmmo(playerid)
  33821. {
  33822. if(oldAmmo[playerid] > newAmmo[playerid])
  33823. {
  33824. return 1;
  33825. }
  33826. return 1;
  33827. }
  33828. forward CheckWeapons(playerid);
  33829. public CheckWeapons(playerid)
  33830. {
  33831. if(GetPlayerWeapon(playerid) == 0)
  33832. {
  33833. return 1;
  33834. }
  33835. else if(GetPlayerWeapon(playerid) != 0)
  33836. {
  33837. SetTimer("CheckAmmo", 750, true);
  33838. }
  33839. return 1;
  33840. }*/
  33841. forward OnPlayerChangeWeapon(playerid, oldweapon, newweapon);
  33842. public OnPlayerChangeWeapon(playerid, oldweapon, newweapon)
  33843. {
  33844. if(GetPlayerWeapon(playerid) == oldWeapon[playerid] && oldWeapon[playerid] == 0)
  33845. {
  33846. return 1;
  33847. }
  33848. if(GetPlayerWeapon(playerid) != oldWeapon[playerid])
  33849. {
  33850. oldWeapon[playerid] = GetPlayerWeapon(playerid);
  33851. oldAmmo[playerid] = GetPlayerAmmo(playerid);
  33852. return 1;
  33853. }
  33854. if(GetPlayerWeapon(playerid) == oldWeapon[playerid] && oldWeapon[playerid] != 0)
  33855. {
  33856. oldAmmo[playerid] = GetPlayerAmmo(playerid);
  33857. newWeapon[playerid] = GetPlayerWeapon(playerid);
  33858. return 1;
  33859. }
  33860. if(GetPlayerWeapon(playerid) != oldWeapon[playerid] && GetPlayerWeapon(playerid) == 0)
  33861. {
  33862. oldWeapon[playerid] = GetPlayerWeapon(playerid);
  33863. return 1;
  33864. }
  33865. return 1;
  33866. }
  33867. public OnPlayerUpdate(playerid)
  33868. {
  33869. //SetTimer("CheckWeapons", 1000, true);
  33870. /*if(GetPlayerWeapon(playerid) == oldWeapon[playerid] && oldWeapon[playerid] == 0)
  33871. {
  33872. oldAmmo[playerid] = GetPlayerAmmo(playerid);
  33873. return 1;
  33874. }
  33875. if(GetPlayerWeapon(playerid) != oldWeapon[playerid])
  33876. {
  33877. oldWeapon[playerid] = GetPlayerWeapon(playerid);
  33878. newAmmo[playerid] = GetPlayerAmmo(playerid);
  33879. return 1;
  33880. }
  33881. if(GetPlayerWeapon(playerid) == oldWeapon[playerid] && oldWeapon[playerid] != 0)
  33882. {
  33883. newWeapon[playerid] = GetPlayerWeapon(playerid);
  33884. return 1;
  33885. }*/
  33886. new packetkeys, updown, leftright;
  33887. GetPlayerKeys(playerid, packetkeys, updown, leftright);
  33888. if(Players[playerid][pSpectate] != INVALID_PLAYER_ID)
  33889. {
  33890. if(leftright != 0)
  33891. {
  33892. if(GetTickCount()-pSpecLimit[playerid] > 666 || GetTickCount()-pSpecLimit[playerid] < 0)
  33893. {
  33894. pSpecLimit[playerid] = GetTickCount();
  33895. new i = Players[playerid][pSpectate];
  33896. if(leftright == KEY_RIGHT)
  33897. {
  33898. i++;
  33899. if(i == MAX_PLAYERS) i = 0;
  33900. while(!IsPlayerConnected(i) || Players[i][pSpectate] != INVALID_PLAYER_ID)
  33901. {
  33902. i++;
  33903. if(i == MAX_PLAYERS) i = 0;
  33904. }
  33905. }
  33906. else if(leftright == KEY_LEFT)
  33907. {
  33908. i--;
  33909. if(i == -1) i = MAX_PLAYERS-1;
  33910. while(!IsPlayerConnected(i) || Players[i][pSpectate] != INVALID_PLAYER_ID)
  33911. {
  33912. i--;
  33913. if(i == -1) i = MAX_PLAYERS-1;
  33914. }
  33915. }
  33916. new val[12];
  33917. format(val, 12, "%i", i);
  33918. cmd_spec(playerid, val);
  33919. }
  33920. }
  33921. else pSpecLimit[playerid] = 0;
  33922. }
  33923. new iCurWeap = GetPlayerWeapon(playerid);
  33924. if(iCurWeap != GetPVarInt(playerid, "iCurrentWeapon"))
  33925. {
  33926. OnPlayerChangeWeapon(playerid, GetPVarInt(playerid, "iCurrentWeapon"), iCurWeap);
  33927. SetPVarInt(playerid, "iCurrentWeapon", iCurWeap);
  33928. }
  33929. if (IsPlayerNPC(playerid) || !IsPlayerSpawned(playerid))
  33930. return 1;
  33931. else if (gPlayerKicked[playerid])
  33932. return 0;
  33933. f_OnPlayerUpdate(playerid);
  33934. new
  33935. vehicleid = GetPlayerVehicleID(playerid),
  33936. index = GetPlayerAnimationIndex(playerid),
  33937. string[32],
  33938. keys,
  33939. ud,
  33940. lr;
  33941. GetPlayerKeys(playerid, keys, ud, lr);
  33942. if (Players[playerid][pOutfitIndex] != INVALID_ID && (NetStats_GetConnectedTime(playerid) - Players[playerid][pOutfitTick]) > 100)
  33943. {
  33944. if (lr == KEY_LEFT || lr == KEY_RIGHT)
  33945. {
  33946. HandleOutfitNavigation(playerid, lr);
  33947. Players[playerid][pOutfitTick] = NetStats_GetConnectedTime(playerid);
  33948. }
  33949. }
  33950. else if (Players[playerid][pSelectUniform] && (NetStats_GetConnectedTime(playerid) - Players[playerid][pUniformTick]) > 100)
  33951. {
  33952. if (lr == KEY_LEFT || lr == KEY_RIGHT)
  33953. {
  33954. HandleUniformNavigation(playerid, lr);
  33955. Players[playerid][pUniformTick] = NetStats_GetConnectedTime(playerid);
  33956. }
  33957. }
  33958. if (Players[playerid][pBrokenLeg] && !Players[playerid][pFainted])
  33959. {
  33960. if (1196 <= GetPlayerAnimationIndex(playerid) <= 1198 || IsPlayerSprinting(playerid))
  33961. {
  33962. ApplyAnimation(playerid, "PED","FALL_collapse", 4.1, 0, 1, 1, 0, 0, 1);
  33963. ApplyAnimation(playerid, "PED","FALL_collapse", 4.1, 0, 1, 1, 0, 0, 1);
  33964. ShowActionBubble(playerid, "* %s trips and falls on the ground from a broken leg.", ReturnNameEx(playerid));
  33965. }
  33966. }
  33967. if (GetPlayerMoney(playerid) != Players[playerid][pPocketMoney])
  33968. {
  33969. ResetPlayerMoney(playerid);
  33970. GivePlayerMoney(playerid, Players[playerid][pPocketMoney]);
  33971. }
  33972. if (GetPlayerScore(playerid) != Players[playerid][pHoursOnline])
  33973. {
  33974. SetPlayerScore(playerid, Players[playerid][pHoursOnline]);
  33975. }
  33976. if (GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  33977. {
  33978. if (index != 1508 && ((Players[playerid][pDeathState] == DEATH_STATE_INJURED && GetVehicleModel(GetPlayerVehicleID(playerid)) != 416)))
  33979. {
  33980. ApplyAnimation(playerid, "PED", "KO_shot_stom", 4.1, 0, 1, 1, 1, 0, 1);
  33981. }
  33982. /*if (index != 1508 && ((Players[playerid][pDeathState] == DEATH_STATE_MELEE && GetVehicleModel(GetPlayerVehicleID(playerid)) != 416)))
  33983. {
  33984. ApplyAnimation(playerid, "SWAT", "gnstwall_injurd", 4.1, 1, 0, 0, 0, 0, 1);
  33985. }*/
  33986. if (index != 388 && Players[playerid][pTazed] > 0)
  33987. {
  33988. ApplyAnimation(playerid, "CRACK", "crckdeth4", 4.1, 0, 0, 0, 1, 0, 1);
  33989. }
  33990. }
  33991. if (IsPlayerDrivingVehicle(playerid, vehicleid))
  33992. {
  33993. if (Players[playerid][pShowSpeed])
  33994. {
  33995. format(string, sizeof(string), "Speed: %.0f", GetVehicleMPH(vehicleid));
  33996. PlayerTextDrawSetString(playerid, Players[playerid][pText][26], string);
  33997. }
  33998. }
  33999. if (GetPlayerWeapon(playerid) == Weapons[playerid][wPrimary] && GetPlayerAmmo(playerid) > 0 && !IsPlayerHoldingTazer(playerid))
  34000. {
  34001. Weapons[playerid][wPrimaryAmmo] = GetPlayerAmmo(playerid);
  34002. }
  34003. if (GetPlayerWeapon(playerid) == Weapons[playerid][wSecondary] && GetPlayerAmmo(playerid) > 0 && !IsPlayerHoldingTazer(playerid))
  34004. {
  34005. Weapons[playerid][wSecondaryAmmo] = GetPlayerAmmo(playerid);
  34006. }
  34007. if (GetPlayerWeapon(playerid) == Weapons[playerid][wTertiary] && GetPlayerAmmo(playerid) > 0 && !IsPlayerHoldingTazer(playerid))
  34008. {
  34009. Weapons[playerid][wTertiaryAmmo] = GetPlayerAmmo(playerid);
  34010. }
  34011. if (Players[playerid][pHouseInfo] != INVALID_ID && !IsPlayerInRangeOfPoint(playerid, 2.0, Houses[Players[playerid][pHouseInfo]][hSpawn][0], Houses[Players[playerid][pHouseInfo]][hSpawn][1], Houses[Players[playerid][pHouseInfo]][hSpawn][2]))
  34012. {
  34013. Players[playerid][pHouseInfo] = INVALID_ID;
  34014. HidePlayerTextDraws(playerid, 55, 57);
  34015. HideFooterText(playerid);
  34016. }
  34017. if (Players[playerid][pCompanyInfo] != INVALID_ID && !IsPlayerInRangeOfPoint(playerid, 2.0, Companies[Players[playerid][pCompanyInfo]][cSpawn][0], Companies[Players[playerid][pCompanyInfo]][cSpawn][1], Companies[Players[playerid][pCompanyInfo]][cSpawn][2]))
  34018. {
  34019. Players[playerid][pCompanyInfo] = INVALID_ID;
  34020. HidePlayerTextDraws(playerid, 55, 57);
  34021. HideFooterText(playerid);
  34022. }
  34023. if (Players[playerid][pBuildingInfo] != INVALID_ID && !IsPlayerInRangeOfPoint(playerid, 2.0, Buildings[Players[playerid][pBuildingInfo]][bSpawn][0], Buildings[Players[playerid][pBuildingInfo]][bSpawn][1], Buildings[Players[playerid][pBuildingInfo]][bSpawn][2]))
  34024. {
  34025. Players[playerid][pBuildingInfo] = INVALID_ID;
  34026. }
  34027. if (Players[playerid][pPaused])
  34028. {
  34029. Players[playerid][pPaused] = 0;
  34030. SendInfoMessage(playerid, "{CFCFCF}You have been paused for %i seconds.", (gettime() - Players[playerid][pLastUpdate]));
  34031. DestroyDynamic3DTextLabel(Players[playerid][pPausedText]);
  34032. }
  34033. switch (Players[playerid][pWorkout])
  34034. {
  34035. case WORKOUT_DUMBELLS:
  34036. {
  34037. if (index < 570 || index > 577)
  34038. {
  34039. ApplyAnimation(playerid, "Freeweights", "gym_free_loop", 4.1, 1, 0, 0, 0, 0, 1);
  34040. }
  34041. }
  34042. case WORKOUT_TREADMILL:
  34043. {
  34044. if (index < 662 || index > 665)
  34045. {
  34046. switch (Players[playerid][pSpeedLevel])
  34047. {
  34048. case 1..3:
  34049. {
  34050. ApplyAnimation(playerid, "GYMNASIUM", "gym_tread_walk", 4.1, 1, 0, 0, 0, 0, 1);
  34051. }
  34052. case 4..6:
  34053. {
  34054. ApplyAnimation(playerid, "GYMNASIUM", "gym_tread_jog", 4.1, 1, 0, 0, 0, 0, 1);
  34055. }
  34056. case 7..10:
  34057. {
  34058. ApplyAnimation(playerid, "GYMNASIUM", "gym_tread_sprint", 4.1, 1, 0, 0, 0, 0, 1);
  34059. }
  34060. }
  34061. }
  34062. }
  34063. }
  34064. Players[playerid][pLastUpdate] = gettime();
  34065. UpdateAttachedObjects(playerid);
  34066. UpdateLightsForPlayer(playerid);
  34067. return 1;
  34068. }
  34069. public OnPlayerSpawn(playerid)
  34070. {
  34071. GangZoneShowForPlayer(playerid, grove, 0x00800096);
  34072. GangZoneShowForPlayer(playerid, FYB, 0x80008096);
  34073. GangZoneShowForPlayer(playerid, FYB2, 0x80008096);
  34074. GangZoneShowForPlayer(playerid, SBF, 0x80FF0096);
  34075. GangZoneShowForPlayer(playerid, SBF2, 0x80FF0096);
  34076. GangZoneShowForPlayer(playerid, VLA, 0x00FFFF96);
  34077. GangZoneShowForPlayer(playerid, VLA2, 0x00FFFF96);
  34078. GangZoneShowForPlayer(playerid, VAGOS, 0xFFFF0096);
  34079. GangZoneShowForPlayer(playerid, VAGOS2, 0xFFFF0096);
  34080. GangZoneShowForPlayer(playerid, ballas2, 0x80008096);
  34081. oldWeapon[playerid] = GetPlayerWeapon(playerid);
  34082. if (IsPlayerNPC(playerid)) return 1;
  34083. // Added so players can see objects updating if they drop items.
  34084. Streamer_ToggleIdleUpdate(playerid, 1);
  34085. StopAudioStreamForPlayer(playerid);
  34086. // Preload animations
  34087. for (new i = 0; i < sizeof(g_AnimationLibraries); i ++) {
  34088. ApplyAnimation(playerid, g_AnimationLibraries[i], "null", 0.0, 0, 0, 0, 0, 0, 1);
  34089. }
  34090. /*ApplyAnimation(playerid, "FREEWEIGHTS", "null", 0.0, 0, 0, 0, 0, 0);
  34091. ApplyAnimation(playerid, "MUSCULAR", "null", 0.0, 0, 0, 0, 0, 0);
  34092. ApplyAnimation(playerid, "CRACK", "null", 0.0, 0, 0, 0, 0, 0);
  34093. ApplyAnimation(playerid, "PED", "null", 0.0, 0, 0, 0, 0, 0);
  34094. ApplyAnimation(playerid, "FAT", "null", 0.0, 0, 0, 0, 0, 0);
  34095. ApplyAnimation(playerid, "BASEBALL", "null", 0.0, 0, 0, 0, 0, 0);
  34096. ApplyAnimation(playerid, "GRENADE", "null", 0.0, 0, 0, 0, 0, 0);
  34097. ApplyAnimation(playerid, "BOMBER", "null", 0.0, 0, 0, 0, 0, 0);
  34098. ApplyAnimation(playerid, "FOOD", "null", 0.0, 0, 0, 0, 0, 0);
  34099. ApplyAnimation(playerid, "CARRY", "null", 0.0, 0, 0, 0, 0, 0);
  34100. ApplyAnimation(playerid, "CRACK", "null", 0.0, 0, 0, 0, 0, 0);
  34101. ApplyAnimation(playerid, "BD_FIRE", "null", 0.0, 0, 0, 0, 0, 0);
  34102. ApplyAnimation(playerid, "INT_SHOP", "null", 0.0, 0, 0, 0, 0, 0);
  34103. ApplyAnimation(playerid, "VENDING", "null", 0.0, 0, 0, 0, 0, 0);
  34104. ApplyAnimation(playerid, "BAR", "null", 0.0, 0, 0, 0, 0, 0);
  34105. ApplyAnimation(playerid, "GYMNASIUM", "null", 0.0, 0, 0, 0, 0, 0);
  34106. ApplyAnimation(playerid, "HEIST9", "null", 0.0, 0, 0, 0, 0, 0);
  34107. ApplyAnimation(playerid, "COLT45", "null", 0.0, 0, 0, 0, 0, 0);
  34108. ApplyAnimation(playerid, "SILENCED", "null", 0.0, 0, 0, 0, 0, 0);
  34109. ApplyAnimation(playerid, "BUDDY", "null", 0.0, 0, 0, 0, 0, 0);
  34110. ApplyAnimation(playerid, "UZI", "null", 0.0, 0, 0, 0, 0, 0);
  34111. ApplyAnimation(playerid, "TEC", "null", 0.0, 0, 0, 0, 0, 0);
  34112. ApplyAnimation(playerid, "RIFLE", "null", 0.0, 0, 0, 0, 0, 0);
  34113. ApplyAnimation(playerid, "SMOKING", "null", 0.0, 0, 0, 0, 0, 0);*/
  34114. UpdateNameTag(playerid, 1);
  34115. // Weapon skills
  34116. SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL, 990);
  34117. SetPlayerSkillLevel(playerid, WEAPONSKILL_MICRO_UZI, 990);
  34118. SetPlayerSkillLevel(playerid, WEAPONSKILL_SAWNOFF_SHOTGUN, 990);
  34119. SetPlayerSkillLevel(playerid, WEAPONSKILL_SPAS12_SHOTGUN, 0);
  34120. if (!Players[playerid][pSetupInfo])
  34121. {
  34122. /*SetPlayerInterior(playerid, 14);
  34123. SetPlayerPos(playerid, 208.3268, -154.9872, 1000.5234);
  34124. SetPlayerFacingAngle(playerid, 180.0000);
  34125. SetPlayerCameraPos(playerid, 208.276733, -158.160308, 1001.734130);
  34126. SetPlayerCameraLookAt(playerid, 208.316360, -155.487106, 1001.023437);
  34127. SetPlayerVirtualWorld(playerid, playerid);
  34128. TogglePlayerControllable(playerid, 0);
  34129. ResetCharacterSetup(playerid);
  34130. SelectTextDraw(playerid, -1);*/
  34131. for (new i = 86; i < 102; i ++) {
  34132. PlayerTextDrawShow(playerid, Players[playerid][pText][i]);
  34133. }
  34134. }
  34135. else
  34136. {
  34137. SetPlayerSpawn(playerid);
  34138. //SetPlayerSkin(playerid, Players[playerid][pSkin]);
  34139. }
  34140. GetPlayerPos(playerid, Players[playerid][pDistance][0], Players[playerid][pDistance][1], Players[playerid][pDistance][2]);
  34141. return 1;
  34142. }
  34143. public OnPlayerConnect(playerid)
  34144. {
  34145. ReviewQuiz[playerid] = -1;
  34146. EnteringVehicle[playerid] = 0;
  34147. if (IsPlayerNPC(playerid))
  34148. {
  34149. Players[playerid][pLoggedIn] = 1;
  34150. }
  34151. else
  34152. {
  34153. RemoveBuildings(playerid);
  34154. ClearData(playerid);
  34155. SetupTextdraws(playerid);
  34156. Streamer_VisibleItems(STREAMER_TYPE_OBJECT, 999);
  34157. FlushChatForPlayer(playerid);
  34158. PlayAudioStreamForPlayer(playerid, "https://sols-lsb.com/radiosa/Foe%20thalove$.mp3");
  34159. SendClientMessage(playerid, COLOR_WHITE, "Type{FF9900} /help{FFFFFF} for more information regarding the server.");
  34160. SendClientMessage(playerid, COLOR_WHITE, "Make sure you're up to date with the{FF9900} server rules{FFFFFF}. ");
  34161. SendClientMessage(playerid, COLOR_WHITE, "Make sure you're registered on our forums!{FF9900}{FFFFFF}.");
  34162. //SetPlayerColor(playerid, COLOR_PLAYER);
  34163. }
  34164. return 1;
  34165. }
  34166. public OnPlayerDisconnect(playerid, reason)
  34167. {
  34168. ReviewQuiz[playerid] = -1;
  34169. if(EnteringVehicle[playerid] == 1) {
  34170. EnteringVehicle[playerid] = 0;
  34171. KillTimer(EnteringVeh_Timer[playerid]);
  34172. }
  34173. if (Players[playerid][pLoggedIn] > 0)
  34174. {
  34175. if(reason == 0) {
  34176. Players[playerid][pCrashed] = true;
  34177. } else {
  34178. Players[playerid][pCrashed] = false;
  34179. }
  34180. SaveAccount(playerid);
  34181. format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Online = 0 WHERE ID = %i", Players[playerid][pID]);
  34182. mysql_tquery(gConnection, gExecute);
  34183. }
  34184. if (Players[playerid][pPaused])
  34185. {
  34186. DestroyDynamic3DTextLabel(Players[playerid][pPausedText]);
  34187. }
  34188. if (Players[playerid][pDeathState] == DEATH_STATE_INJURED)
  34189. {
  34190. DestroyDynamic3DTextLabel(Players[playerid][pInjuredText]);
  34191. }
  34192. if (Players[playerid][pWorkout])
  34193. {
  34194. KillTimer(Timers[playerid][tWorkout]);
  34195. }
  34196. if (Players[playerid][pDeathState] == DEATH_STATE_HOSPITAL)
  34197. {
  34198. KillTimer(Timers[playerid][tHospital]);
  34199. }
  34200. if (Players[playerid][pRepairCar])
  34201. {
  34202. KillTimer(Timers[playerid][tRepair]);
  34203. }
  34204. if (Players[playerid][pCalling] > 0)
  34205. {
  34206. HangupCall(playerid);
  34207. }
  34208. if (Players[playerid][pHouseEdit] != INVALID_ID)
  34209. {
  34210. SetFurnitureEditMode(Players[playerid][pHouseEdit], false);
  34211. }
  34212. if (Players[playerid][pInsideTaxi] != INVALID_PLAYER_ID)
  34213. {
  34214. OnPlayerExitTaxi(playerid);
  34215. }
  34216. if (Players[playerid][pPayphone] != INVALID_ID)
  34217. {
  34218. HangupCall(playerid);
  34219. }
  34220. if (Players[playerid][pRefuel] != INVALID_ID)
  34221. {
  34222. StopRefuel(playerid);
  34223. }
  34224. if (Players[playerid][pWorking])
  34225. {
  34226. StopWorking(playerid);
  34227. }
  34228. if (Stereos[playerid][pStereoID] != INVALID_ID)
  34229. {
  34230. ResetStereo(playerid);
  34231. }
  34232. if (IsValidVehicle(Players[playerid][pAddVehicle]))
  34233. {
  34234. DestroyVehicleEx(Players[playerid][pAddVehicle]);
  34235. }
  34236. if (Players[playerid][pHandcuffed])
  34237. {
  34238. SendAdminMessage(COLOR_RED, "Admin: %s has left the server while handcuffed.", ReturnNameEx(playerid, 0));
  34239. }
  34240. switch (reason)
  34241. {
  34242. case 0:
  34243. {
  34244. SendDistanceMessage(playerid, 20.0, COLOR_GREY, "** %s has left the server (Timeout).", ReturnNameEx(playerid, 0));
  34245. g_Callsigns[ Players[playerid][pFactionCallsign] ][e_CallsignTakenBy] = INVALID_ID;
  34246. Players[playerid][pFactionCallsign] = 0;
  34247. new Float:x, Float:y, Float:z;
  34248. GetPlayerPos(playerid, x, y, z);
  34249. new log[128];
  34250. format(log, sizeof(log), "%s (%s) has left the server (Timeout) (%.2f, %.2f, %.2f)", ReturnName(playerid), Players[playerid][pIP], x, y, z);
  34251. CreateLog("logging", log);
  34252. }
  34253. case 1:
  34254. {
  34255. SendDistanceMessage(playerid, 20.0, COLOR_GREY, "** %s has left the server (Quit).", ReturnNameEx(playerid, 0));
  34256. //RemoveEquipment(playerid);
  34257. g_Callsigns[ Players[playerid][pFactionCallsign] ][e_CallsignTakenBy] = INVALID_ID;
  34258. Players[playerid][pFactionCallsign] = 0;
  34259. new Float:x, Float:y, Float:z;
  34260. GetPlayerPos(playerid, x, y, z);
  34261. new log[128];
  34262. format(log, sizeof(log), "%s (%s) has left the server (Quit) (%.2f, %.2f, %.2f)", ReturnName(playerid), Players[playerid][pIP], x, y, z);
  34263. CreateLog("logging", log);
  34264. }
  34265. case 2:
  34266. {
  34267. SendDistanceMessage(playerid, 20.0, COLOR_GREY, "** %s has left the server (Kicked).", ReturnNameEx(playerid, 0));
  34268. //RemoveEquipment(playerid);
  34269. g_Callsigns[ Players[playerid][pFactionCallsign] ][e_CallsignTakenBy] = INVALID_ID;
  34270. Players[playerid][pFactionCallsign] = 0;
  34271. new Float:x, Float:y, Float:z;
  34272. GetPlayerPos(playerid, x, y, z);
  34273. new log[128];
  34274. format(log, sizeof(log), "%s (%s) has left the server (Kicked) (%.2f, %.2f, %.2f)", ReturnName(playerid), Players[playerid][pIP], x, y, z);
  34275. CreateLog("logging", log);
  34276. }
  34277. }
  34278. foreach (new i : Player)
  34279. {
  34280. if(ReviewQuiz[i] == playerid)
  34281. {
  34282. SendClientMessage(i, COLOR_RED, "The player you were reviewing the quiz for has disconnected.");
  34283. ReviewQuiz[i] = -1;
  34284. Dialog_Close(i);
  34285. }
  34286. if (Players[i][pSpectate] == playerid)
  34287. {
  34288. SpectatePlayer(i, INVALID_PLAYER_ID);
  34289. SendInfoMessage(i, "%s has logged off. Spectator mode has been disabled.", ReturnNameEx(playerid, 0));
  34290. }
  34291. if (Players[i][pCuffedBy] == playerid)
  34292. {
  34293. Players[i][pHandcuffed] = 0;
  34294. Players[i][pCuffedBy] = INVALID_PLAYER_ID;
  34295. SetPlayerSpecialAction(i, SPECIAL_ACTION_NONE);
  34296. SendInfoMessage(i, "The handcuffs were removed as the player left the server.");
  34297. }
  34298. if (Players[i][pFactionOffer] == playerid)
  34299. {
  34300. Players[i][pFactionOffer] = INVALID_PLAYER_ID;
  34301. SendInfoMessage(i, "The faction invite has expired.");
  34302. }
  34303. if (Players[i][pFriskOffer] == playerid)
  34304. {
  34305. Players[i][pFriskOffer] = INVALID_PLAYER_ID;
  34306. SendInfoMessage(i, "The frisk invite has expired.");
  34307. }
  34308. if (Players[i][pHouseOffer] == playerid)
  34309. {
  34310. Players[i][pHouseOffer] = INVALID_PLAYER_ID;
  34311. SendInfoMessage(i, "The house offer has expired.");
  34312. }
  34313. if (Players[i][pCompanyOffer] == playerid)
  34314. {
  34315. Players[i][pCompanyOffer] = INVALID_PLAYER_ID;
  34316. SendInfoMessage(i, "The company offer has expired.");
  34317. }
  34318. if (Players[i][pCarOffer] == playerid)
  34319. {
  34320. Players[i][pCarOffer] = INVALID_PLAYER_ID;
  34321. SendInfoMessage(i, "The vehicle offer has expired.");
  34322. }
  34323. if (Players[i][pShakeOffer] == playerid)
  34324. {
  34325. Players[i][pShakeOffer] = INVALID_PLAYER_ID;
  34326. SendInfoMessage(i, "The handshake offer has expired.");
  34327. }
  34328. if (Players[i][pSetStaff] == playerid)
  34329. {
  34330. Players[i][pSetStaff] = INVALID_PLAYER_ID;
  34331. Dialog_Close(i);
  34332. }
  34333. }
  34334. RemoveAttachedObjects(playerid);
  34335. RespawnRentalCar(playerid);
  34336. ClearData(playerid);
  34337. ClearReports(playerid);
  34338. return 1;
  34339. }
  34340. public OnPlayerRequestClass(playerid, classid)
  34341. {
  34342. if (IsPlayerNPC(playerid)) return 1;
  34343. if (Players[playerid][pID] == INVALID_ID)
  34344. {
  34345. new
  34346. queryString[160];
  34347. format(queryString, sizeof(queryString), "SELECT BannedBy, Date, Reason FROM rp_blacklist WHERE Player = '%s' OR IP = '%s'", ReturnName(playerid), ReturnIP(playerid));
  34348. mysql_tquery(gConnection, queryString, "OnBlacklistCheck", "i", playerid);
  34349. }
  34350. /*AdjustMenuCamera(playerid);
  34351. SyncTimeForPlayer(playerid);
  34352. SetPlayerColor(playerid, COLOR_PLAYER);*/
  34353. switch(classid)
  34354. {
  34355. case 0..2:
  34356. {
  34357. SetPlayerPos(playerid, 2352.2102,-1539.5930,33.7365);
  34358. SetPlayerFacingAngle(playerid, 130.4650);
  34359. SetPlayerCameraPos(playerid, 2349.5562,-1542.0067,33.7365);
  34360. SetPlayerCameraLookAt(playerid, 2352.2102,-1539.5930,33.7365);
  34361. PlayAnimation(playerid, "RAPPING", "RAP_A_LOOP", 4.1, 1, 0, 0, 1, 0, 1);
  34362. GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~ ~h~~w~(Non affiliated faction)~n~~w~HOODRATS", 2000, 3);
  34363. SetPlayerColor(playerid, COLOR_GREY);
  34364. }
  34365. case 3..5:
  34366. {
  34367. SetPlayerPos(playerid, 2527.9763,-1666.6794,15.1682);
  34368. SetPlayerFacingAngle(playerid, 100.0);
  34369. SetPlayerCameraPos(playerid, 2522.4639,-1667.2499,15.0358);
  34370. SetPlayerCameraLookAt(playerid, 2527.9763,-1666.6794,15.1682);
  34371. PlayAnimation(playerid, "GHANDS", "GSIGN1", 4.1, 0, 0, 0, 0, 0, 1);
  34372. GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~G~(GSF)~n~ ~w~Grove Street Families", 2000, 3);
  34373. SetPlayerColor(playerid, COLOR_GREEN);
  34374. }
  34375. case 6:
  34376. {
  34377. SetPlayerPos(playerid, 2527.9763,-1666.6794,15.1682);
  34378. SetPlayerFacingAngle(playerid, 100.0);
  34379. SetPlayerCameraPos(playerid, 2522.4639,-1667.2499,15.0358);
  34380. PlayAnimation(playerid, "GHANDS", "GSIGN1", 4.1, 0, 0, 0, 0, 0, 1);
  34381. SetPlayerCameraLookAt(playerid, 2527.9763,-1666.6794,15.1682);
  34382. GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~G~(Sweet)~n~ ~w~Locked for~n~~r~[GSF]Ice", 2000, 3);
  34383. SetPlayerColor(playerid, COLOR_GREEN);
  34384. }
  34385. case 7:
  34386. {
  34387. SetPlayerPos(playerid, 2527.9763,-1666.6794,15.1682);
  34388. SetPlayerFacingAngle(playerid, 100.0);
  34389. SetPlayerCameraPos(playerid, 2522.4639,-1667.2499,15.0358);
  34390. PlayAnimation(playerid, "GHANDS", "GSIGN1", 4.1, 0, 0, 0, 0, 0, 1);
  34391. SetPlayerCameraLookAt(playerid, 2527.9763,-1666.6794,15.1682);
  34392. GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~G~(Big Smoke)~n~ ~w~Locked for~n~~r~N/A", 2000, 3);
  34393. SetPlayerColor(playerid, COLOR_GREEN);
  34394. }
  34395. case 8:
  34396. {
  34397. SetPlayerPos(playerid, 2527.9763,-1666.6794,15.1682);
  34398. SetPlayerFacingAngle(playerid, 100.0);
  34399. SetPlayerCameraPos(playerid, 2522.4639,-1667.2499,15.0358);
  34400. PlayAnimation(playerid, "GHANDS", "GSIGN1", 4.1, 0, 0, 0, 0, 0, 1);
  34401. SetPlayerCameraLookAt(playerid, 2527.9763,-1666.6794,15.1682);
  34402. GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~G~(Ryder)~n~ ~w~Locked for~n~~r~N/A", 2000, 3);
  34403. SetPlayerColor(playerid, COLOR_GREEN);
  34404. }
  34405. case 9:
  34406. {
  34407. SetPlayerPos(playerid, 2527.9763,-1666.6794,15.1682);
  34408. SetPlayerFacingAngle(playerid, 100.0);
  34409. SetPlayerCameraPos(playerid, 2522.4639,-1667.2499,15.0358);
  34410. PlayAnimation(playerid, "GHANDS", "GSIGN1", 4.1, 0, 0, 0, 0, 0, 1);
  34411. SetPlayerCameraLookAt(playerid, 2527.9763,-1666.6794,15.1682);
  34412. GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~G~(CJ)~n~ ~w~Locked for~n~~r~N/A", 2000, 3);
  34413. SetPlayerColor(playerid, COLOR_GREEN);
  34414. }
  34415. case 10..12:
  34416. {
  34417. SetPlayerPos(playerid, 2770.4014,-2015.1353,13.5547);
  34418. SetPlayerFacingAngle(playerid, 46.7000);
  34419. SetPlayerCameraPos(playerid, 2766.4897,-2011.0477,13.5620);
  34420. SetPlayerCameraLookAt(playerid, 2770.4014,-2015.1353,13.5547);
  34421. PlayAnimation(playerid, "GHANDS", "GSIGN2", 4.1, 0, 0, 0, 0, 0, 1);
  34422. GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~h~~G~(SBF)~n~ ~w~Seville Boulevard Families", 2000, 3);
  34423. SetPlayerColor(playerid, 0x9DFFB6FF);
  34424. }
  34425. case 13..15:
  34426. {
  34427. SetPlayerPos(playerid, 915.0075,-1108.0718,24.2722);
  34428. SetPlayerFacingAngle(playerid, 359.5310);
  34429. SetPlayerCameraPos(playerid, 915.2412,-1104.8180,24.2969);
  34430. SetPlayerCameraLookAt(playerid, 915.0075,-1108.0718,24.2722);
  34431. PlayAnimation(playerid, "GHANDS", "GSIGN3", 4.1, 0, 0, 0, 0, 0, 1);
  34432. GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~ ~G~(TDF)~n~ ~w~Temple Drive Families", 2000, 3);
  34433. SetPlayerColor(playerid, COLOR_DARKGREEN);
  34434. }
  34435. case 16..18:
  34436. {
  34437. SetPlayerPos(playerid, 2175.5786,-1732.3136,13.5339);
  34438. SetPlayerFacingAngle(playerid, 271.4185);
  34439. SetPlayerCameraPos(playerid, 2179.8755,-1732.6957,13.5469);
  34440. SetPlayerCameraLookAt(playerid, 2175.5786,-1732.3136,13.5339);
  34441. PlayAnimation(playerid, "GHANDS", "GSIGN5", 4.1, 0, 0, 0, 0, 0, 1);
  34442. GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~ ~P~(FYB)~n~ ~w~Front Yard Ballas", 2000, 3);
  34443. SetPlayerColor(playerid, 0xAA00AAFF);
  34444. }
  34445. case 19..21:
  34446. {
  34447. SetPlayerPos(playerid, 2136.1011,-1391.1796,23.9992);
  34448. SetPlayerFacingAngle(playerid, 39.3045);
  34449. SetPlayerCameraPos(playerid, 2133.7769,-1387.9919,23.8281);
  34450. SetPlayerCameraLookAt(playerid, 2136.1011,-1391.1796,23.9992);
  34451. PlayAnimation(playerid, "GHANDS", "GSIGN4", 4.1, 0, 0, 0, 0, 0, 1);
  34452. GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~ ~P~(RHB)~n~ ~w~Rollin' Heightz' Ballas", 2000, 3);
  34453. SetPlayerColor(playerid, 0xAA00AAFF);
  34454. }
  34455. case 22..24:
  34456. {
  34457. SetPlayerPos(playerid, 1983.5040,-1157.2803,20.9567);
  34458. SetPlayerFacingAngle(playerid, 90.4397);
  34459. SetPlayerCameraPos(playerid, 1979.7319,-1157.1125,20.9351);
  34460. SetPlayerCameraLookAt(playerid, 1983.5040,-1157.2803,20.9567);
  34461. PlayAnimation(playerid, "GANGS", "INVITE_YES", 4.1, 0, 0, 0, 0, 0, 1);
  34462. GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~ ~P~(KTB)~n~ ~w~Kilo Tray Ballas", 2000, 3);
  34463. SetPlayerColor(playerid, 0xAA00AAFF);
  34464. }
  34465. case 25..27:
  34466. {
  34467. SetPlayerPos(playerid, 1183.7802,-1258.4663,18.8984);
  34468. SetPlayerFacingAngle(playerid, 181.0539);
  34469. SetPlayerCameraPos(playerid, 1183.9564,-1261.6102,18.8984);
  34470. SetPlayerCameraLookAt(playerid, 1183.7802,-1258.4663,18.8984);
  34471. PlayAnimation(playerid, "GANGS", "INVITE_NO", 4.1, 0, 0, 0, 0, 0, 1);
  34472. GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~ ~P~(TDB)~n~ ~w~Temple Drive Ballas", 2000, 3);
  34473. SetPlayerColor(playerid, 0xFF93FFFF);
  34474. }
  34475. case 28:
  34476. {
  34477. SetPlayerPos(playerid, 2838.1475,-2355.1714,42.7344);
  34478. SetPlayerFacingAngle(playerid, 180.6836);
  34479. SetPlayerCameraPos(playerid, 2838.2375,-2362.5527,42.7344);
  34480. SetPlayerCameraLookAt(playerid, 2838.1475,-2355.1714,42.7344);
  34481. PlayAnimation(playerid, "PYTHON", "PYTHON_RELOAD", 4.1, 0, 0, 0, 0, 0, 3);
  34482. GameTextForPlayer(playerid, " ~n~~n~~n~~n~~n~~n~~n~ ~y~(LSM)~n~ ~w~The Los Santos Mafia", 2000, 3);
  34483. SetPlayerColor(playerid, 0xFF7837FF);
  34484. }
  34485. case 29..31:
  34486. {
  34487. SetPlayerPos(playerid, 1876.9720,-2036.1689,13.5391);
  34488. SetPlayerFacingAngle(playerid, 224.9041);
  34489. SetPlayerCameraPos(playerid, 1879.4531,-2038.6274,13.3906);
  34490. SetPlayerCameraLookAt(playerid, 1876.9720,-2036.1689,13.5391);
  34491. PlayAnimation(playerid, "RIOT", "RIOT_FUKU", 4.1, 0, 0, 0, 0, 0, 1);
  34492. GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~ ~h~~b~(VLA)~n~~w~Varrios Los Aztecas", 2000, 3);
  34493. SetPlayerColor(playerid, 0x00ECECFF);
  34494. }
  34495. case 32:
  34496. {
  34497. SetPlayerPos(playerid, 1876.9720,-2036.1689,13.5391);
  34498. SetPlayerFacingAngle(playerid, 224.9041);
  34499. SetPlayerCameraPos(playerid, 1879.4531,-2038.6274,13.3906);
  34500. SetPlayerCameraLookAt(playerid, 1876.9720,-2036.1689,13.5391);
  34501. PlayAnimation(playerid, "RIOT", "RIOT_FUKU", 4.1, 0, 0, 0, 0, 0, 1);
  34502. GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~ ~h~~b~(Cesar)~n~~w~Locked for N/A", 2000, 3);
  34503. SetPlayerColor(playerid, 0x00ECECFF);
  34504. }
  34505. case 33..35:
  34506. {
  34507. SetPlayerPos(playerid, 2434.3467,-1325.1730,25.0269);
  34508. SetPlayerFacingAngle(playerid, 267.8017);
  34509. SetPlayerCameraPos(playerid, 2437.7539,-1325.1948,24.9492);
  34510. SetPlayerCameraLookAt(playerid, 2434.3467,-1325.1730,25.0269);
  34511. PlayAnimation(playerid, "RIOT", "RIOT_FUKU", 4.1, 0, 0, 0, 0, 0, 1);
  34512. GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~ ~h~~y~(V)~n~~w~Vagos", 2000, 3);
  34513. SetPlayerColor(playerid, COLOR_YELLOW);
  34514. }
  34515. case 36:
  34516. {
  34517. SetPlayerPos(playerid, 300.0962,-1154.6696,81.2754);
  34518. SetPlayerFacingAngle(playerid, 136.5688);
  34519. SetPlayerCameraPos(playerid, 297.2060,-1157.5317,81.2754);
  34520. SetPlayerCameraLookAt(playerid, 300.0962,-1154.6696,81.2754);
  34521. PlayAnimation(playerid, "GANGS", "INVITE_YES", 4.1, 0, 0, 0, 0, 0, 1);
  34522. GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~ ~h~~r~(LS)~n~~w~Loco Syndicate", 2000, 3);
  34523. SetPlayerColor(playerid, COLOR_RED);
  34524. }
  34525. case 37..38:
  34526. {
  34527. SetPlayerPos(playerid, 1543.8267,-1632.0171,13.3828);
  34528. SetPlayerFacingAngle(playerid, 89.7918);
  34529. SetPlayerCameraPos(playerid, 1539.7317,-1631.9980,13.3828);
  34530. SetPlayerCameraLookAt(playerid, 1543.8267,-1632.0171,13.3828);
  34531. GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~ ~h~~b~(LSPD)~n~~w~Los Santos Police Department", 2000, 3);
  34532. SetPlayerColor(playerid, COLOR_BLUE);
  34533. }
  34534. }
  34535. return 1;
  34536. }
  34537. public OnPlayerRequestSpawn(playerid)
  34538. {
  34539. /*if (IsPlayerNPC(playerid)) return 1;
  34540. return Players[playerid][pLoggedIn];*/
  34541. if(GetPlayerSkin(playerid) == 270) //SWEET
  34542. {
  34543. new name[MAX_PLAYER_NAME];
  34544. GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  34545. if(strcmp(name, "[GSF]Ice", false) == 0)
  34546. {
  34547. SetPlayerPos(playerid, 2527.9763,-1666.6794,15.1682);
  34548. }
  34549. else {
  34550. SendClientMessage(playerid, COLOR_LIGHTGREY, " Sorry, only the user role-playing Sweet can use this skin.");
  34551. return 0;
  34552. }
  34553. }
  34554. if(GetPlayerSkin(playerid) == 269) //SWEET
  34555. {
  34556. new name[MAX_PLAYER_NAME];
  34557. GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  34558. if(strcmp(name, "[FYB]DoubleMac", false) == 0)
  34559. {
  34560. SetPlayerPos(playerid, 2527.9763,-1666.6794,15.1682);
  34561. }
  34562. else {
  34563. SendClientMessage(playerid, COLOR_LIGHTGREY, " Sorry, only the user role-playing Big Smoke can use this skin.");
  34564. return 0;
  34565. }
  34566. }
  34567. if(GetPlayerSkin(playerid) == 271) //SWEET
  34568. {
  34569. new name[MAX_PLAYER_NAME];
  34570. GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  34571. if(strcmp(name, "[GSF]Ice", false) == 0)
  34572. {
  34573. SetPlayerPos(playerid, 2527.9763,-1666.6794,15.1682);
  34574. }
  34575. else {
  34576. SendClientMessage(playerid, COLOR_LIGHTGREY, " Sorry, only the user role-playing Ryder can use this skin.");
  34577. return 0;
  34578. }
  34579. }
  34580. if(GetPlayerSkin(playerid) == 0) //SWEET
  34581. {
  34582. new name[MAX_PLAYER_NAME];
  34583. GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  34584. if(strcmp(name, "[FYB]DoubleMac", false) == 0)
  34585. {
  34586. SetPlayerPos(playerid, 2527.9763,-1666.6794,15.1682);
  34587. }
  34588. else {
  34589. SendClientMessage(playerid, COLOR_LIGHTGREY, " Sorry, only the user role-playing CJ can use this skin.");
  34590. return 0;
  34591. }
  34592. }
  34593. if(GetPlayerSkin(playerid) == 105) //SWEET
  34594. {
  34595. new name[MAX_PLAYER_NAME];
  34596. GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  34597. if(strfind(name, "[GSF]" "[SBF]", false) == 0)
  34598. {
  34599. SetPlayerPos(playerid, 2527.9763,-1666.6794,15.1682);
  34600. }
  34601. else {
  34602. SendClientMessage(playerid, COLOR_LIGHTGREY, " Sorry, locked for official members only.");
  34603. return 0;
  34604. }
  34605. }
  34606. if(GetPlayerSkin(playerid) == 292) //Cesar
  34607. {
  34608. new name[MAX_PLAYER_NAME];
  34609. GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  34610. if(strcmp(name, "[VLA]", false) == 0)
  34611. {
  34612. SetPlayerPos(playerid, 1802.1151,-2139.5603,13.5469,89.8728);
  34613. }
  34614. else {
  34615. SendClientMessage(playerid, COLOR_LIGHTGREY, " Sorry, only the user role-playing Cesar can use this skin.");
  34616. return 0;
  34617. }
  34618. }
  34619. return 1;
  34620. }
  34621. public OnEnterExitModShop(playerid, enterexit, interiorid)
  34622. {
  34623. Players[playerid][pModShop] = enterexit;
  34624. return 1;
  34625. }
  34626. /*---------------------------------------------------------------------------
  34627. Dialogs
  34628. These are the dialog functions used by easyDialog.
  34629. Use the Dialog: syntax to create new dialogs.
  34630. ---------------------------------------------------------------------------*/
  34631. #include "core/player/dialog_phone.pwn"
  34632. //Dialog_Show(playerid, TagEditMenu, DIALOG_STYLE_LIST, "{FFFFFF}Edit Tag", "Position\nText\nColor\nFont Size\nBold\nTag Resolution", "Select", "Cancel");
  34633. Dialog:ModdingMenu(playerid, response, listitem, inputtext[])
  34634. {
  34635. if((response) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  34636. {
  34637. for(new i = 0; i < sizeof(componentSlotNames); i ++)
  34638. {
  34639. if(!strcmp(componentSlotNames[i], inputtext) && GetVehicleComponentTypeCount(GetPlayerVehicleID(playerid), i) > 0)
  34640. {
  34641. Players[playerid][pSelected] = i;
  34642. ShowModBrowseMenu(playerid);
  34643. return 1;
  34644. }
  34645. }
  34646. }
  34647. else
  34648. {
  34649. ExitModdingShop(playerid);
  34650. }
  34651. return 1;
  34652. }
  34653. Dialog:ModdingBrowse(playerid, response, listitem, inputtext[])
  34654. {
  34655. if((response) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  34656. {
  34657. new count, vehicleid = GetPlayerVehicleID(playerid);
  34658. for(new i = MIN_COMPONENT_ID; i <= MAX_COMPONENT_ID; i ++)
  34659. {
  34660. if(GetVehicleComponentType(i) == Players[playerid][pSelected] && IsValidComponentForVehicle(vehicleid, i) && count++ == listitem)
  34661. {
  34662. Players[playerid][pModPreview] = i;
  34663. Players[playerid][pOldComponent] = GetVehicleComponentInSlot(vehicleid, GetVehicleComponentType(i));
  34664. SetVehicleParamsEx(vehicleid, 0, 0, 0, 0, 0, 0, 0);
  34665. AddVehicleComponent(vehicleid, Players[playerid][pModPreview]);
  34666. SendFormatMessage(playerid, COLOR_LIGHTGREY, "You are previewing {33AA33}%s{CFCFCF}. Move your camera with your mouse in order to preview.", GetVehicleComponentName(i));
  34667. SendFormatMessage(playerid, COLOR_LIGHTGREY, "Press {33AA33}~k~~VEHICLE_FIREWEAPON~{CFCFCF} if you wish to confirm your purchase, or go back to the previous menu.");
  34668. return 1;
  34669. }
  34670. }
  34671. ShowModMainMenu(playerid);
  34672. }
  34673. else
  34674. {
  34675. ExitModdingShop(playerid);
  34676. }
  34677. return 1;
  34678. }
  34679. Dialog:ModdingPurchase(playerid, response, listitem, inputtext[])
  34680. {
  34681. if((response) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  34682. {
  34683. new price = GetVehicleComponentPriceEx(Players[playerid][pModPreview]);
  34684. if(PlayerCanAfford(playerid, price))
  34685. {
  34686. new vehicle = GetVehicleID(GetPlayerVehicleID(playerid));
  34687. if(vehicle >= 0)
  34688. {
  34689. new
  34690. slot = GetVehicleComponentType(Players[playerid][pModPreview]);
  34691. Vehicles[vehicle][vMods][slot] = Players[playerid][pModPreview];
  34692. SaveComponent(vehicle, slot);
  34693. }
  34694. RemoveMoney(playerid, price);
  34695. SendFormatMessage(playerid, COLOR_WHITE, "You have purchased %s for $%i.", GetVehicleComponentName(Players[playerid][pModPreview]), price);
  34696. ShowModMainMenu(playerid);
  34697. Players[playerid][pModPreview] = 0;
  34698. }
  34699. else
  34700. {
  34701. CancelComponentPreview(playerid);
  34702. ShowModBrowseMenu(playerid);
  34703. SendErrorMessage(playerid, "You can't afford to purchase this mod.");
  34704. }
  34705. }
  34706. else
  34707. {
  34708. CancelComponentPreview(playerid);
  34709. ShowModBrowseMenu(playerid);
  34710. }
  34711. return 1;
  34712. }
  34713. Dialog:TagEditMenu(playerid, response, listitem, inputtext[])
  34714. {
  34715. new
  34716. id = Players[playerid][pEditID];
  34717. if (response)
  34718. {
  34719. switch (listitem)
  34720. {
  34721. case 0:
  34722. {
  34723. EditDynamicObjectEx(playerid, EDIT_TYPE_TAG, Tags[id][tagObject], id);
  34724. SendInfoMessage(playerid, "Click on the disk icon to save changes.");
  34725. }
  34726. case 1:
  34727. {
  34728. Dialog_Show(playerid, TagText, DIALOG_STYLE_INPUT, "{FFFFFF}Edit Tag Text", "Please enter the text you'd like to set the tag to:", "Select", "Cancel");
  34729. }
  34730. case 2:
  34731. {
  34732. Dialog_Show(playerid, TagColor, DIALOG_STYLE_LIST, "{FFFFFF}Edit Tag Color", "White\nBlack\nGrey\nBlue\nYellow\nRed\nGreen\nPurple\nOrange", "Select", "Cancel");
  34733. }
  34734. case 3:
  34735. {
  34736. Dialog_Show(playerid, TagFontSize, DIALOG_STYLE_LIST, "{FFFFFF}Edit Tag Color", "8\n12\n14\n16\n18\n20\n22\n24\n26\n28\n30\n32\n34\n36\n38\n40", "Select", "Cancel");
  34737. }
  34738. case 4:
  34739. {
  34740. if (!Tags[id][tagBold])
  34741. Tags[id][tagBold] = 1;
  34742. else
  34743. Tags[id][tagBold] = 0;
  34744. UpdateTag(id);
  34745. SaveTag(id);
  34746. Dialog_Show(playerid, TagEditMenu, DIALOG_STYLE_LIST, "{FFFFFF}Edit Tag", "Position\nText\nColor\nFont Size\nBold: %s\nTag Resolution", "Select", "Cancel", (Tags[id][tagBold]) ? ("Yes") : ("No"));
  34747. }
  34748. }
  34749. }
  34750. return 1;
  34751. }
  34752. Dialog:QuizQuestion(playerid, response, listitem, inputtext[]) //tobefinished
  34753. {
  34754. if(response)
  34755. {
  34756. if(isnull(inputtext)) // Added cause of cunts spamming through quiz questions. -Grime 10/03/2017
  34757. {
  34758. switch(currentQuestion[playerid])
  34759. {
  34760. case 0: Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 1)", "{FFFFFF}In your own words, how would you define the term roleplay?\n\nYou can make this question as simple, or complex as you'd like.\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel");
  34761. case 1: Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 2)", "{FFFFFF}How would you define the term 'Metagaming'?\n\nYou can make this question as simple, or complex as you'd like.\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel");
  34762. case 2: Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 3)", "{FFFFFF}How would you define the term 'Powergaming'?\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel");
  34763. case 3: Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 4)", "{FFFFFF}What is the difference, between IC and OOC?\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel");
  34764. case 4: Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 5)", "{FFFFFF}You spot a hacker in-game. What do you do?\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel");
  34765. case 5: Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 6)", "{FFFFFF}What would be an appropriate '/me' for a heavy weapon? (Shotgun, UMP, etc)\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel");
  34766. case 6: Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 7)", "{FFFFFF}What do you do if you get DMed and no admins are online?\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel");
  34767. case 7: Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 8)", "{FFFFFF}What are the commands /report and /helpme used for?\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel");
  34768. case 8: Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 9)", "{FFFFFF}How do you roleplay a car crash scene that you get into?\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel");
  34769. case 9: Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 10)", "{FFFFFF}Do you understand that this is a Roleplay server?\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "I Understand", "Cancel");
  34770. }
  34771. return 1;
  34772. }
  34773. switch(currentQuestion[playerid])
  34774. {
  34775. case 0:
  34776. {
  34777. format(questionResponse[playerid][0], 500, "%s", inputtext);
  34778. currentQuestion[playerid] = 1;
  34779. Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 2)", "{FFFFFF}How would you define the term 'Metagaming'?\n\nYou can make this question as simple, or complex as you'd like.\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel");
  34780. }
  34781. case 1:
  34782. {
  34783. format(questionResponse[playerid][1], 500, "%s", inputtext);
  34784. currentQuestion[playerid] = 2;
  34785. Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 3)", "{FFFFFF}How would you define the term 'Powergaming'?\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel");
  34786. }
  34787. case 2:
  34788. {
  34789. format(questionResponse[playerid][2], 500, "%s", inputtext);
  34790. currentQuestion[playerid] = 3;
  34791. Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 4)", "{FFFFFF}What is the difference, between IC and OOC?\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel");
  34792. }
  34793. case 3:
  34794. {
  34795. format(questionResponse[playerid][3], 500, "%s", inputtext);
  34796. currentQuestion[playerid] = 4;
  34797. Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 5)", "{FFFFFF}You spot a hacker in-game. What do you do?\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel");
  34798. }
  34799. case 4:
  34800. {
  34801. format(questionResponse[playerid][4], 500, "%s", inputtext);
  34802. currentQuestion[playerid] = 5;
  34803. Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 6)", "{FFFFFF}What would be an appropriate '/me' for a heavy weapon? (Shotgun, UMP, etc)\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel");
  34804. }
  34805. case 5:
  34806. {
  34807. format(questionResponse[playerid][5], 500, "%s", inputtext);
  34808. currentQuestion[playerid] = 6;
  34809. Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 7)", "{FFFFFF}What do you do if you get DMed and no admins are online?\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel");
  34810. }
  34811. case 6:
  34812. {
  34813. format(questionResponse[playerid][6], 500, "%s", inputtext);
  34814. currentQuestion[playerid] = 7;
  34815. Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 8)", "{FFFFFF}What are the commands /report and /helpme used for?\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel");
  34816. }
  34817. case 7:
  34818. {
  34819. format(questionResponse[playerid][7], 500, "%s", inputtext);
  34820. currentQuestion[playerid] = 8;
  34821. Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 9)", "{FFFFFF}How do you roleplay a car crash scene that you get into?\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel");
  34822. }
  34823. case 8:
  34824. {
  34825. format(questionResponse[playerid][8], 500, "%s", inputtext);
  34826. currentQuestion[playerid] = 9;
  34827. Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 10)", "{FFFFFF}Do you understand that this is a Roleplay server?\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "I Understand", "Cancel");
  34828. }
  34829. case 9:
  34830. {
  34831. for(new i = 0; i != 21; i++) {
  34832. SCM(playerid, COLOR_GREY, " ");
  34833. }
  34834. format(questionResponse[playerid][9], 500, "%s", inputtext);
  34835. SCM(playerid, COLOR_LIGHTRED, "Your answers was saved. If an admin reviews them and sees you haven't answered correctly, you'll be punished.");
  34836. SCM(playerid, COLOR_LIGHTRED, "You will now be spawned. Good luck!");
  34837. new targetid = -1;
  34838. currentQuestion[targetid] = 0;
  34839. Players[targetid][pActivated] = 1; //tobefinished
  34840. ReviewQuiz[playerid] = -1;
  34841. SaveAccount(targetid);
  34842. currentQuestion[playerid] = 10;
  34843. TogglePlayerControllable(playerid, true);
  34844. format(msg, sizeof(msg), "{E09C1D}[QUIZ] %s has submitted a server quiz response (/reviewquiz %d to review it).", ReturnName(playerid), playerid);
  34845. foreach (new i : Player)
  34846. {
  34847. if (Players[i][pSupporter] > 0 || Players[i][pAdmin] > 0 || Players[i][pVeteran] > 0)
  34848. {
  34849. SendClientMessage(i, -1, msg);
  34850. }
  34851. }
  34852. }
  34853. default: {
  34854. }
  34855. }
  34856. }
  34857. else
  34858. {
  34859. SCM(playerid, COLOR_LIGHTRED, "You've been kicked for hitting cancel.");
  34860. }
  34861. return 1;
  34862. }
  34863. CMD:quizes(playerid, params[])
  34864. {
  34865. if(Players[playerid][pAdmin] > 0 || Players[playerid][pSupporter] > 0 || Players[playerid][pVeteran] > 0)
  34866. {
  34867. new gString[2000], tmpString[128], idIndex = 0;
  34868. strcat(gString, "Index\tPlayer ID\tPlayer Name\n", sizeof gString);
  34869. foreach(new i : Player)
  34870. {
  34871. if(currentQuestion[i] == 10)
  34872. {
  34873. format(tmpString, sizeof tmpString, "%i)\t[ID: %i - /reviewquiz %i]\t%s\n", idIndex, i, i, ReturnName(i));
  34874. quizIndexes[playerid][idIndex] = i;
  34875. idIndex++;
  34876. strcat(gString, tmpString, sizeof gString);
  34877. }
  34878. }
  34879. if(idIndex != 0) {
  34880. Dialog_Show(playerid, PlayerQuizes, DIALOG_STYLE_TABLIST_HEADERS, "Quizes", gString, "Respond", "Close");
  34881. }
  34882. else SendErrorMessage(playerid, "There are no quizes left unanswered.");
  34883. }
  34884. return 1;
  34885. }
  34886. CMD:reviewquiz(playerid, params[])
  34887. {
  34888. if(Players[playerid][pAdmin] > 0 || Players[playerid][pSupporter] > 0 || Players[playerid][pVeteran] > 0)
  34889. {
  34890. new targetid = -1;
  34891. if(sscanf(params, "i", targetid)) return SendSyntaxMessage(playerid, "/reviewquiz [playerid]");
  34892. if(currentQuestion[targetid] != 10) return SendErrorMessage(playerid, "Player has not finished any quiz yet or is not working on one.");
  34893. if(Players[targetid][pActivated] == 1) return SendErrorMessage(playerid, "Player already passed the quiz.");
  34894. ReviewQuiz[playerid] = targetid;
  34895. new regString[2000];
  34896. format(regString, sizeof regString, "{FFFFFF}Reviewing registration quiz of: %s (ID:%i)\n\n", ReturnName(targetid), targetid);
  34897. for(new i=0; i < 10; i++)
  34898. {
  34899. new tmpString[300];
  34900. format(tmpString, sizeof tmpString, "\n{E09C1D}Question %i answer: \n\t{FFFFFF}%s", i+1, questionResponse[targetid][i]);
  34901. strcat(regString, tmpString, sizeof regString);
  34902. }
  34903. Dialog_Show(playerid, QuizReview, DIALOG_STYLE_MSGBOX, "{FFFFFF}Quiz", regString, "Approve", "Deny");
  34904. SendAdminMessage(COLOR_RED, "Admin: %s is now reviewing %s's starter quiz.", ReturnNameEx(playerid), ReturnNameEx(targetid));
  34905. }
  34906. return 1;
  34907. }
  34908. CMD:inform(playerid, params[])
  34909. {
  34910. if(Players[playerid][pAdmin] <= 0 || Players[playerid][pSupporter] <= 0) return SendErrorMessage(playerid,"NO PERMISSION!");
  34911. new pname[MAX_PLAYER_NAME], playa = -1, amount[64], sqlid = -1;
  34912. if(sscanf(params, "s[24]s[64]", pname, amount)) return SendSyntaxMessage(playerid, "/inform [playerid OR Full_Name ONLY] [Reason]");
  34913. if(IsNumeric(pname))
  34914. {
  34915. if(!IsPlayerConnected(strval(pname))) return SendErrorMessage(playerid, "Player ID was not connected and logged in.");
  34916. playa = strval(pname);
  34917. sqlid = Players[playa][pID];
  34918. }
  34919. else
  34920. {
  34921. sqlid = IsAccountExist(pname, playerid);
  34922. if(sqlid <= 0) return SendErrorMessage(playerid, "Name was not found. Please include first name, last name and an underscore OR use there current ingame ID.");
  34923. }
  34924. if(sqlid == -1) return SendErrorMessage(playerid, "Name was not found. Please include first name, last name and an underscore OR use there current ingame ID.");
  34925. if(sqlid == Players[playa][pID] && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid, "Cannot be yourself.");
  34926. if(playa >= 0)
  34927. {
  34928. new reportreason[128];
  34929. format(reportreason, sizeof(reportreason), "Hello, you are being reported on the forums, the following reason(s) below:\n%s", amount);
  34930. Dialog_Show(playerid, BEINGREPORTED, DIALOG_STYLE_MSGBOX, "You are being reported.", reportreason, "Close", "");
  34931. SendClientMessage(playerid, COLOR_LIGHTRED, "You have informed him/her. (Online)");
  34932. }
  34933. else
  34934. {
  34935. foreach(new i: Player) if(sqlid == Players[playa][pID]) return SendErrorMessage(playerid, "Full_Name cannot be an online player, use the player ID instead.");
  34936. static queryString[512];
  34937. format(queryString, sizeof(queryString), "UPDATE `rp_accounts` SET `BeingReported` = '1', `ReportReason` = '%s' WHERE `Username` = '%s'", amount, pname);
  34938. mysql_tquery(gConnection, queryString);
  34939. SendClientMessage(playerid, COLOR_LIGHTRED, "You have informed him/her. (Offline)");
  34940. }
  34941. return true;
  34942. }
  34943. GetNameWithSpace(playerid)
  34944. {
  34945. new p_Name[MAX_PLAYER_NAME];
  34946. GetPlayerName(playerid, p_Name, MAX_PLAYER_NAME);
  34947. return p_Name;
  34948. }
  34949. Dialog:PlayerQuizes(playerid, response, listitem, inputtext[])
  34950. {
  34951. new targetid = quizIndexes[playerid][listitem];
  34952. if(response)
  34953. {
  34954. if(currentQuestion[targetid] != 10) return SendErrorMessage(playerid, "Player has not finished any quiz yet or is not working on one.");
  34955. if(Players[targetid][pActivated] == 1) return SendErrorMessage(playerid, "Player already passed the quiz.");
  34956. ReviewQuiz[playerid] = targetid;
  34957. new regString[2000];
  34958. format(regString, sizeof regString, "{FFFFFF}Reviewing registration quiz of: %s (ID:%i)\n\n", ReturnName(targetid), targetid);
  34959. for(new i=0; i < 10; i++)
  34960. {
  34961. new tmpString[300];
  34962. format(tmpString, sizeof tmpString, "\n{E09C1D}Question %i answer: \n\t{FFFFFF}%s", i+1, questionResponse[targetid][i]);
  34963. strcat(regString, tmpString, sizeof regString);
  34964. }
  34965. Dialog_Show(playerid, QuizReview, DIALOG_STYLE_MSGBOX, "{FFFFFF}Quiz", regString, "Approve", "Deny");
  34966. }
  34967. else
  34968. {
  34969. return 1;
  34970. }
  34971. return 1;
  34972. }
  34973. Dialog:QuizReview(playerid, response, listitem, inputtext[])
  34974. {
  34975. new targetid = ReviewQuiz[playerid];
  34976. if(response)
  34977. {
  34978. if(currentQuestion[targetid] == 10)
  34979. {
  34980. currentQuestion[targetid] = 0;
  34981. Players[targetid][pActivated] = 1; //tobefinished
  34982. ReviewQuiz[playerid] = -1;
  34983. SaveAccount(targetid);
  34984. format(msg, sizeof(msg), "{E09C1D}[QUIZ] %s has accepted %s's starter quiz.",GetNameWithSpace(playerid),GetNameWithSpace(targetid));
  34985. if(Players[playerid][pSupporter] > 0)
  34986. {
  34987. SendSupporterMessage(-1, msg);
  34988. }
  34989. else if(Players[playerid][pAdmin] > 0)
  34990. {
  34991. SendAdminMessage(-1, msg);
  34992. }
  34993. else if(Players[playerid][pVeteran] > 0)
  34994. {
  34995. SendVeteranMessage(-1, msg);
  34996. }
  34997. format(msg, sizeof(msg), "Staff member %s has accepted your starter quiz, you will now be spawned.",GetNameWithSpace(playerid));
  34998. SCM(targetid, COLOR_LIGHTRED, msg);
  34999. SCM(targetid, COLOR_WHITE, " ");
  35000. SCM(targetid, COLOR_GREEN, "Use /helpme to recieve help from any of our online moderators/admins.");
  35001. SCM(targetid, COLOR_GREEN, "If you see a rules breaker, do not hesitate to /report them so an admin can deal with them.");
  35002. SCM(targetid, COLOR_GREEN, "Lost? Use /showlocations to find basic locations throughout the server.");
  35003. SCM(targetid, COLOR_GREEN, "Teamspeak: {FFFFFF}ts.NA.com");
  35004. SCM(targetid, COLOR_GREEN, "Website: {FFFFFF}http://www.NA.com");
  35005. SetSpawnInfo(targetid, 0, 0, 208.3268, -154.9872, 1000.5234, 180.0000, 0, 0, 0, 0, 0, 0);
  35006. TogglePlayerSpectating(targetid, false);
  35007. }
  35008. else SendErrorMessage(playerid, "Quiz has already been answered by another staff member.");
  35009. }
  35010. else
  35011. {
  35012. Dialog_Show(playerid, QuizDeny, DIALOG_STYLE_INPUT, "{FFFFFF}Deny Quiz", "{FFFFFF}Please enter the reason to deny %s (ID: %i)'s quiz:", "Deny", "Back", GetNameWithSpace(targetid), targetid);
  35013. }
  35014. return 1;
  35015. }
  35016. Dialog:QuizDeny(playerid, response, listitem, inputtext[])
  35017. {
  35018. new targetid = ReviewQuiz[playerid];
  35019. if(response && currentQuestion[targetid] == 10)
  35020. {
  35021. if(isnull(inputtext))
  35022. {
  35023. return Dialog_Show(playerid, QuizDeny, DIALOG_STYLE_INPUT, "{FFFFFF}Deny Quiz", "{FFFFFF}Please enter the reason to deny %s (ID: %i)'s quiz:", "Deny", "Back", GetNameWithSpace(targetid), targetid);
  35024. }
  35025. ReviewQuiz[playerid] = -1;
  35026. SendFormatMessage(targetid, COLOR_LIGHTRED, "A staff member has denied your quiz. Reason: %s", inputtext);
  35027. SendFormatMessage(targetid, COLOR_LIGHTRED, "You may relog and attempt the quiz again if you wish.");
  35028. format(msg, sizeof(msg), "{E09C1D}[QUIZ] %s has denied %s's starter quiz, reason: %s",GetNameWithSpace(playerid), GetNameWithSpace(targetid), inputtext);
  35029. if(Players[playerid][pSupporter] > 0)
  35030. {
  35031. SendSupporterMessage(-1, msg);
  35032. }
  35033. else if(Players[playerid][pAdmin] > 0)
  35034. {
  35035. SendAdminMessage(-1, msg);
  35036. }
  35037. else if(Players[playerid][pVeteran] > 0)
  35038. {
  35039. SendVeteranMessage(-1, msg);
  35040. }
  35041. currentQuestion[targetid] = -1;
  35042. // Send an admin message //tobefinished
  35043. KickPlayer(targetid);
  35044. }
  35045. else
  35046. {
  35047. new
  35048. str[8];
  35049. format(str, sizeof(str), "%i", targetid);
  35050. cmd_reviewquiz(playerid, str);
  35051. }
  35052. return 1;
  35053. }
  35054. // Start of matical's setstation (QA TEST)
  35055. Dialog:ChangeGenre(playerid, response, listitem, inputtext[])
  35056. {
  35057. new vehicle = GetPlayerVehicleID(playerid);
  35058. if(response)
  35059. {
  35060. switch(listitem)
  35061. {
  35062. case 0:
  35063. {
  35064. Dialog_Show(playerid, Urban, DIALOG_STYLE_LIST, "SubGenres:", "Hip Hop\nRap\nRaggae", "Select", "<<<");
  35065. }
  35066. case 1:
  35067. {
  35068. Dialog_Show(playerid, Rock, DIALOG_STYLE_LIST, "SubGenres:", "Classic Rock\nPunk\nMetal", "Select", "<<<");
  35069. }
  35070. case 2:
  35071. {
  35072. Dialog_Show(playerid, Other, DIALOG_STYLE_LIST, "SubGenres:", "C-RP\nDance\nTalk", "Select", "<<<");
  35073. }
  35074. case 3:
  35075. {
  35076. Dialog_Show(playerid, PopGenre, DIALOG_STYLE_LIST, "SubGenres:", "Top Hits", "Select", "<<<");
  35077. }
  35078. case 4:
  35079. {
  35080. Dialog_Show(playerid, CustomLink, DIALOG_STYLE_INPUT, "Enter Stream Link:", "Please enter the stream you wish to play:", "Submit", "<<<");
  35081. }
  35082. case 5:
  35083. {
  35084. StopCarBoomBox(vehicle);
  35085. }
  35086. }
  35087. }
  35088. return 1;
  35089. }
  35090. Dialog:CustomLink(playerid, response, listitem, inputtext[])
  35091. {
  35092. if(response)
  35093. {
  35094. PlayPlayerBoomBoxURL(playerid, "Custom Stream", inputtext);
  35095. } else {
  35096. ShowBoomBoxStations(playerid);
  35097. }
  35098. return 1;
  35099. }
  35100. Dialog:Urban(playerid, response, listitem, inputtext[])
  35101. {
  35102. if(response)
  35103. {
  35104. switch(listitem)
  35105. {
  35106. case 0:
  35107. {
  35108. new str[2000];
  35109. for(new x; x < sizeof(HHStations); x++)
  35110. {
  35111. format(str, sizeof(str), "%s"EMBED_WHITE"%s\n", str, HHStations[x][boomboxUrlName]);
  35112. }
  35113. Dialog_Show(playerid, HipHop, DIALOG_STYLE_LIST, "Stations:", str, "Select", "<<<");
  35114. return 1;
  35115. }
  35116. case 1:
  35117. {
  35118. new str[2000];
  35119. for(new x; x < sizeof(RapStations); x++)
  35120. {
  35121. format(str, sizeof(str), "%s"EMBED_WHITE"%s\n", str, RapStations[x][boomboxUrlName]);
  35122. }
  35123. Dialog_Show(playerid, Rap, DIALOG_STYLE_LIST, "Stations:", str, "Select", "<<<");
  35124. return 1;
  35125. }
  35126. case 2:
  35127. {
  35128. new str[2000];
  35129. for(new x; x < sizeof(RaggaeStations); x++)
  35130. {
  35131. format(str, sizeof(str), "%s"EMBED_WHITE"%s\n", str, RaggaeStations[x][boomboxUrlName]);
  35132. }
  35133. Dialog_Show(playerid, Raggae, DIALOG_STYLE_LIST, "Stations:", str, "Select", "<<<");
  35134. return 1;
  35135. }
  35136. }
  35137. }
  35138. else
  35139. {
  35140. Dialog_Show(playerid, ChangeGenre, DIALOG_STYLE_LIST, "Genres:", "URBAN\nROCK\nOTHER\nPOP\n{F2E146}CUSTOM LINK\n{F2E146}OFF - To turn off.", "Select", "<<<");
  35141. }
  35142. return 1;
  35143. }
  35144. Dialog:Rap(playerid, response, listitem, inputtext[])
  35145. {
  35146. if(response)
  35147. {
  35148. PlayPlayerBoomBoxURL(playerid, RapStations[listitem][boomboxUrlName], RapStations[listitem][boomboxURL]);
  35149. }
  35150. else
  35151. {
  35152. Dialog_Show(playerid, Urban, DIALOG_STYLE_LIST, "SubGenres:", "Hip Hop\nRap\nRaggae", "Select", "<<<");
  35153. }
  35154. return 1;
  35155. }
  35156. Dialog:Raggae(playerid, response, listitem, inputtext[])
  35157. {
  35158. if(response)
  35159. {
  35160. PlayPlayerBoomBoxURL(playerid, RaggaeStations[listitem][boomboxUrlName], RaggaeStations[listitem][boomboxURL]);
  35161. }
  35162. else
  35163. {
  35164. Dialog_Show(playerid, Urban, DIALOG_STYLE_LIST, "SubGenres:", "Hip Hop\nRap\nRaggae", "Select", "<<<");
  35165. }
  35166. return 1;
  35167. }
  35168. Dialog:HipHop(playerid, response, listitem, inputtext[])
  35169. {
  35170. if(response)
  35171. {
  35172. PlayPlayerBoomBoxURL(playerid, HHStations[listitem][boomboxUrlName], HHStations[listitem][boomboxURL]);
  35173. }
  35174. else
  35175. {
  35176. Dialog_Show(playerid, Urban, DIALOG_STYLE_LIST, "SubGenres:", "Hip Hop\nRap\nRaggae", "Select", "<<<");
  35177. }
  35178. return 1;
  35179. }
  35180. Dialog:Rock(playerid, response, listitem, inputtext[])
  35181. {
  35182. if(response)
  35183. {
  35184. switch(listitem)
  35185. {
  35186. case 0:
  35187. {
  35188. new str[2000];
  35189. for(new x; x < sizeof(ClassicStations); x++)
  35190. {
  35191. format(str, sizeof(str), "%s"EMBED_WHITE"%s\n", str, ClassicStations[x][boomboxUrlName]);
  35192. }
  35193. Dialog_Show(playerid, Classic, DIALOG_STYLE_LIST, "Stations:", str, "Select", "<<<");
  35194. }
  35195. case 1:
  35196. {
  35197. new str[2000];
  35198. for(new x; x < sizeof(PunkStations); x++)
  35199. {
  35200. format(str, sizeof(str), "%s"EMBED_WHITE"%s\n", str, PunkStations[x][boomboxUrlName]);
  35201. }
  35202. Dialog_Show(playerid, Punk, DIALOG_STYLE_LIST, "Stations:", str, "Select", "<<<");
  35203. }
  35204. case 2:
  35205. {
  35206. new str[2000];
  35207. for(new x; x < sizeof(MetalStations); x++)
  35208. {
  35209. format(str, sizeof(str), "%s"EMBED_WHITE"%s\n", str, MetalStations[x][boomboxUrlName]);
  35210. }
  35211. Dialog_Show(playerid, Metal, DIALOG_STYLE_LIST, "Stations:", str, "Select", "<<<");
  35212. }
  35213. }
  35214. }
  35215. else
  35216. {
  35217. Dialog_Show(playerid, ChangeGenre, DIALOG_STYLE_LIST, "Genres:", "URBAN\nROCK\nOTHER\nPOP\n{F2E146}CUSTOM LINK\n{F2E146}OFF - To turn off.", "Select", "<<<");
  35218. }
  35219. return 1;
  35220. }
  35221. Dialog:Classic(playerid, response, listitem, inputtext[])
  35222. {
  35223. if(response)
  35224. {
  35225. PlayPlayerBoomBoxURL(playerid, ClassicStations[listitem][boomboxUrlName], ClassicStations[listitem][boomboxURL]);
  35226. }
  35227. else
  35228. {
  35229. Dialog_Show(playerid, Rock, DIALOG_STYLE_LIST, "SubGenres:", "Classic Rock\nPunk\nMetal", "Select", "<<<");
  35230. }
  35231. return 1;
  35232. }
  35233. Dialog:Punk(playerid, response, listitem, inputtext[])
  35234. {
  35235. if(response)
  35236. {
  35237. PlayPlayerBoomBoxURL(playerid, PunkStations[listitem][boomboxUrlName], PunkStations[listitem][boomboxURL]);
  35238. }
  35239. else
  35240. {
  35241. Dialog_Show(playerid, Rock, DIALOG_STYLE_LIST, "SubGenres:", "Classic Rock\nPunk\nMetal", "Select", "<<<");
  35242. }
  35243. return 1;
  35244. }
  35245. Dialog:Metal(playerid, response, listitem, inputtext[])
  35246. {
  35247. if(response)
  35248. {
  35249. PlayPlayerBoomBoxURL(playerid, MetalStations[listitem][boomboxUrlName], MetalStations[listitem][boomboxURL]);
  35250. }
  35251. else
  35252. {
  35253. Dialog_Show(playerid, Rock, DIALOG_STYLE_LIST, "SubGenres:", "Classic Rock\nPunk\nMetal", "Select", "<<<");
  35254. }
  35255. return 1;
  35256. }
  35257. Dialog:Other(playerid, response, listitem, inputtext[])
  35258. {
  35259. if(response)
  35260. {
  35261. switch(listitem)
  35262. {
  35263. case 0:
  35264. {
  35265. new str[2000];
  35266. for(new x; x < sizeof(DRPStations); x++)
  35267. {
  35268. format(str, sizeof(str), "%s"EMBED_WHITE"%s\n", str, DRPStations[x][boomboxUrlName]);
  35269. }
  35270. Dialog_Show(playerid, DRP, DIALOG_STYLE_LIST, "Stations:", str, "Select", "<<<");
  35271. }
  35272. case 1:
  35273. {
  35274. new str[2000];
  35275. for(new x; x < sizeof(DanceStations); x++)
  35276. {
  35277. format(str, sizeof(str), "%s"EMBED_WHITE"%s\n", str, DanceStations[x][boomboxUrlName]);
  35278. }
  35279. Dialog_Show(playerid, Dance, DIALOG_STYLE_LIST, "Stations:", str, "Select", "<<<");
  35280. }
  35281. case 2:
  35282. {
  35283. new str[2000];
  35284. for(new x; x < sizeof(TalkStations); x++)
  35285. {
  35286. format(str, sizeof(str), "%s"EMBED_WHITE"%s\n", str, TalkStations[x][boomboxUrlName]);
  35287. }
  35288. Dialog_Show(playerid, Talk, DIALOG_STYLE_LIST, "Stations:", str, "Select", "<<<");
  35289. }
  35290. }
  35291. }
  35292. else
  35293. {
  35294. Dialog_Show(playerid, ChangeGenre, DIALOG_STYLE_LIST, "Genres:", "URBAN\nROCK\nOTHER\nPOP\n{F2E146}CUSTOM LINK\n{F2E146}OFF - To turn off.", "Select", "<<<");
  35295. }
  35296. return 1;
  35297. }
  35298. Dialog:DRP(playerid, response, listitem, inputtext[])
  35299. {
  35300. if(response)
  35301. {
  35302. PlayPlayerBoomBoxURL(playerid, DRPStations[listitem][boomboxUrlName], DRPStations[listitem][boomboxURL]);
  35303. }
  35304. else
  35305. {
  35306. Dialog_Show(playerid, Other, DIALOG_STYLE_LIST, "SubGenres:", "C-RP\nDance\nTalk", "Select", "<<<");
  35307. }
  35308. return 1;
  35309. }
  35310. Dialog:Dance(playerid, response, listitem, inputtext[])
  35311. {
  35312. if(response)
  35313. {
  35314. PlayPlayerBoomBoxURL(playerid, DanceStations[listitem][boomboxUrlName], DanceStations[listitem][boomboxURL]);
  35315. }
  35316. else
  35317. {
  35318. Dialog_Show(playerid, Other, DIALOG_STYLE_LIST, "SubGenres:", "C-RP\nDance\nTalk", "Select", "<<<");
  35319. }
  35320. return 1;
  35321. }
  35322. Dialog:Talk(playerid, response, listitem, inputtext[])
  35323. {
  35324. if(response)
  35325. {
  35326. PlayPlayerBoomBoxURL(playerid, TalkStations[listitem][boomboxUrlName], TalkStations[listitem][boomboxURL]);
  35327. }
  35328. else
  35329. {
  35330. Dialog_Show(playerid, Other, DIALOG_STYLE_LIST, "SubGenres:", "C-RP\nDance\nTalk", "Select", "<<<");
  35331. }
  35332. return 1;
  35333. }
  35334. Dialog:PopGenre(playerid, response, listitem, inputtext[])
  35335. {
  35336. if(response)
  35337. {
  35338. switch(listitem)
  35339. {
  35340. case 0:
  35341. {
  35342. new str[2000];
  35343. for(new x; x < sizeof(Top40Stations); x++)
  35344. {
  35345. format(str, sizeof(str), "%s"EMBED_WHITE"%s\n", str, Top40Stations[x][boomboxUrlName]);
  35346. }
  35347. Dialog_Show(playerid, TopHits, DIALOG_STYLE_LIST, "Stations:", str, "Select", "<<<");
  35348. }
  35349. }
  35350. }
  35351. else
  35352. {
  35353. Dialog_Show(playerid, ChangeGenre, DIALOG_STYLE_LIST, "Genres:", "URBAN\nROCK\nOTHER\nPOP\n{F2E146}CUSTOM LINK\n{F2E146}OFF - To turn off.", "Select", "<<<");
  35354. }
  35355. return 1;
  35356. }
  35357. Dialog:TopHits(playerid, response, listitem, inputtext[])
  35358. {
  35359. if(response)
  35360. {
  35361. PlayPlayerBoomBoxURL(playerid, Top40Stations[listitem][boomboxUrlName], Top40Stations[listitem][boomboxURL]);
  35362. }
  35363. else
  35364. {
  35365. Dialog_Show(playerid, PopGenre, DIALOG_STYLE_LIST, "SubGenres:", "Top Hits", "Select", "<<<");
  35366. }
  35367. return 1;
  35368. }
  35369. // end of matical's setstation (QA TEST)
  35370. Dialog:TagFontSize(playerid, response, listitem, inputtext[])
  35371. {
  35372. new
  35373. id = Players[playerid][pEditID];
  35374. if (response)
  35375. {
  35376. switch (listitem)
  35377. {
  35378. case 0:
  35379. {
  35380. Tags[id][tagFontSize] = 8;
  35381. UpdateTag(id);
  35382. SaveTag(id);
  35383. }
  35384. case 1:
  35385. {
  35386. Tags[id][tagFontSize] = 12;
  35387. UpdateTag(id);
  35388. SaveTag(id);
  35389. }
  35390. case 2:
  35391. {
  35392. Tags[id][tagFontSize] = 14;
  35393. UpdateTag(id);
  35394. SaveTag(id);
  35395. }
  35396. case 3:
  35397. {
  35398. Tags[id][tagFontSize] = 16;
  35399. UpdateTag(id);
  35400. SaveTag(id);
  35401. }
  35402. case 4:
  35403. {
  35404. Tags[id][tagFontSize] = 18;
  35405. UpdateTag(id);
  35406. SaveTag(id);
  35407. }
  35408. case 5:
  35409. {
  35410. Tags[id][tagFontSize] = 20;
  35411. UpdateTag(id);
  35412. SaveTag(id);
  35413. }
  35414. case 6:
  35415. {
  35416. Tags[id][tagFontSize] = 22;
  35417. UpdateTag(id);
  35418. SaveTag(id);
  35419. }
  35420. case 7:
  35421. {
  35422. Tags[id][tagFontSize] = 24;
  35423. UpdateTag(id);
  35424. SaveTag(id);
  35425. }
  35426. case 8:
  35427. {
  35428. Tags[id][tagFontSize] = 26;
  35429. UpdateTag(id);
  35430. SaveTag(id);
  35431. }
  35432. case 9:
  35433. {
  35434. Tags[id][tagFontSize] = 28;
  35435. UpdateTag(id);
  35436. SaveTag(id);
  35437. }
  35438. case 10:
  35439. {
  35440. Tags[id][tagFontSize] = 30;
  35441. UpdateTag(id);
  35442. SaveTag(id);
  35443. }
  35444. case 11:
  35445. {
  35446. Tags[id][tagFontSize] = 32;
  35447. UpdateTag(id);
  35448. SaveTag(id);
  35449. }
  35450. case 12:
  35451. {
  35452. Tags[id][tagFontSize] = 34;
  35453. UpdateTag(id);
  35454. SaveTag(id);
  35455. }
  35456. case 13:
  35457. {
  35458. Tags[id][tagFontSize] = 36;
  35459. UpdateTag(id);
  35460. SaveTag(id);
  35461. }
  35462. case 14:
  35463. {
  35464. Tags[id][tagFontSize] = 38;
  35465. UpdateTag(id);
  35466. SaveTag(id);
  35467. }
  35468. case 15:
  35469. {
  35470. Tags[id][tagFontSize] = 40;
  35471. UpdateTag(id);
  35472. SaveTag(id);
  35473. }
  35474. }
  35475. }
  35476. else
  35477. {
  35478. Dialog_Show(playerid, TagEditMenu, DIALOG_STYLE_LIST, "{FFFFFF}Edit Tag", "Position\nText\nColor\nFont Size\nBold: %s\nTag Resolution", "Select", "Cancel", (Tags[id][tagBold]) ? ("Yes") : ("No"));
  35479. }
  35480. return 1;
  35481. }
  35482. Dialog:TagColor(playerid, response, listitem, inputtext[])
  35483. {
  35484. new
  35485. id = Players[playerid][pEditID];
  35486. if (response)
  35487. {
  35488. switch (listitem)
  35489. {
  35490. case 0://white
  35491. {
  35492. Tags[id][tagColor] = RGBAToARGB(COLOR_WHITE);
  35493. UpdateTag(id);
  35494. SaveTag(id);
  35495. }
  35496. case 1://black
  35497. {
  35498. Tags[id][tagColor] = RGBAToARGB(0x000000FF);
  35499. UpdateTag(id);
  35500. SaveTag(id);
  35501. }
  35502. case 2://grey
  35503. {
  35504. Tags[id][tagColor] = RGBAToARGB(COLOR_GREY);
  35505. UpdateTag(id);
  35506. SaveTag(id);
  35507. }
  35508. case 3://blue
  35509. {
  35510. Tags[id][tagColor] = RGBAToARGB(0x6688FFFF);
  35511. UpdateTag(id);
  35512. SaveTag(id);
  35513. }
  35514. case 4://yeloe
  35515. {
  35516. Tags[id][tagColor] = RGBAToARGB(0xFFDD00FF);
  35517. UpdateTag(id);
  35518. SaveTag(id);
  35519. }
  35520. case 5://red
  35521. {
  35522. Tags[id][tagColor] = RGBAToARGB(0xFF5030FF);
  35523. UpdateTag(id);
  35524. SaveTag(id);
  35525. }
  35526. case 6://COLOR_GREEN
  35527. {
  35528. Tags[id][tagColor] = RGBAToARGB(0x33CC33FF);
  35529. UpdateTag(id);
  35530. SaveTag(id);
  35531. }
  35532. case 7://COLOR_PURPLE
  35533. {
  35534. Tags[id][tagColor] = RGBAToARGB(0xD7B6F0FF);
  35535. UpdateTag(id);
  35536. SaveTag(id);
  35537. }
  35538. case 8://COLOR_ORANGE
  35539. {
  35540. Tags[id][tagColor] = RGBAToARGB(0xFFC00CFF);
  35541. UpdateTag(id);
  35542. SaveTag(id);
  35543. }
  35544. }//Dialog_Show(playerid, TagColor, DIALOG_STYLE_LIST, "{FFFFFF}Edit Tag Color", "White\nBlack\nGrey\nBlue\nYellow\nRed\nGreen\nPurple\nOrange", "Select", "Cancel");
  35545. }
  35546. else
  35547. {
  35548. Dialog_Show(playerid, TagEditMenu, DIALOG_STYLE_LIST, "{FFFFFF}Edit Tag", "Position\nText\nColor\nFont Size\nBold: %s\nTag Resolution", "Select", "Cancel", (Tags[id][tagBold]) ? ("Yes") : ("No"));
  35549. }
  35550. return 1;
  35551. }
  35552. Dialog:TagText(playerid, response, listitem, inputtext[])
  35553. {
  35554. new
  35555. id = Players[playerid][pEditID];
  35556. if (response)
  35557. {
  35558. if (isnull(inputtext))
  35559. {
  35560. return Dialog_Show(playerid, NoteSubject, DIALOG_STYLE_INPUT, "{FFFFFF}Note Subject", "Please input the subject for the note:", "Submit", "Back");
  35561. }
  35562. else if (strlen(inputtext) > 64)
  35563. {
  35564. return Dialog_Show(playerid, NoteSubject, DIALOG_STYLE_INPUT, "{FFFFFF}Note Subject", "Please input the subject for the note:", "Submit", "Back");
  35565. }
  35566. else
  35567. {
  35568. new text[64];
  35569. format(text, sizeof(text), "%s", inputtext);
  35570. Tags[id][tagText] = text;
  35571. UpdateTag(id);
  35572. SaveTag(id);
  35573. //strunpack(SprayTags[spray][sText], gTemporaryText[playerid], 64);
  35574. //SprayTags[spray][sColor] = RGBAToARGB(Factions[Players[playerid][pFaction]][fcColor]);
  35575. //strpack(gTemporaryText[playerid], inputtext, 64);
  35576. //Dialog_Show(playerid, NoteText, DIALOG_STYLE_INPUT, "{FFFFFF}Note Text", "Subject:\n%s\n\nPlease input the text for this note. Use \\n for a new line and \\t for tab.", "Submit", "Cancel", inputtext);
  35577. }
  35578. }
  35579. else
  35580. {
  35581. Dialog_Show(playerid, TagEditMenu, DIALOG_STYLE_LIST, "{FFFFFF}Edit Tag", "Position\nText\nColor\nFont Size\nBold: %s\nTag Resolution", "Select", "Cancel", (Tags[id][tagBold]) ? ("Yes") : ("No"));
  35582. }
  35583. return 1;
  35584. }
  35585. Dialog:SetSupporter(playerid, response, listitem, inputtext[])
  35586. {
  35587. new
  35588. targetid = Players[playerid][pSetStaff];
  35589. Players[playerid][pSetStaff] = INVALID_PLAYER_ID;
  35590. if (response)
  35591. {
  35592. switch (listitem)
  35593. {
  35594. case 0:
  35595. {
  35596. Players[targetid][pSupporter] = 1;
  35597. SendAdminMessage(COLOR_RED, "Admin: %s has set %s's Supporter level to Supporter.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0));
  35598. SendInfoMessage(playerid, "You have set %s's Supporter level to Supporter.", ReturnNameEx(targetid));
  35599. SendInfoMessage(targetid, "%s has set your Supporter level to Supporter.", ReturnNameEx(playerid));
  35600. }
  35601. case 1:
  35602. {
  35603. Players[targetid][pSupporter] = 2;
  35604. SendAdminMessage(COLOR_RED, "Admin: %s has set %s's Supporter level to Head Supporter.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0));
  35605. SendInfoMessage(playerid, "You have set %s's Supporter level to Head Supporter.", ReturnNameEx(targetid));
  35606. SendInfoMessage(targetid, "%s has set your Supporter level to Head Supporter.", ReturnNameEx(playerid));
  35607. }
  35608. case 2:
  35609. {
  35610. Players[targetid][pSupporter] = 0;
  35611. SendAdminMessage(COLOR_RED, "Admin: %s has removed %s's Supporter status.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0));
  35612. SendInfoMessage(playerid, "You have removed %s's Supporter status.", ReturnNameEx(targetid));
  35613. SendInfoMessage(targetid, "%s has removed your Supporter status.", ReturnNameEx(playerid));
  35614. }
  35615. }
  35616. }
  35617. return 1;
  35618. }
  35619. Dialog:SetFactionMod(playerid, response, listitem, inputtext[])
  35620. {
  35621. new
  35622. targetid = Players[playerid][pSetStaff];
  35623. Players[playerid][pSetStaff] = INVALID_PLAYER_ID;
  35624. if (response)
  35625. {
  35626. switch (listitem)
  35627. {
  35628. case 0:
  35629. {
  35630. Players[targetid][pFactionMod] = 1;
  35631. SendAdminMessage(COLOR_RED, "Admin: %s has granted %s faction management status.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0));
  35632. SendInfoMessage(playerid, "You have granted faction management status to %s.", ReturnNameEx(targetid));
  35633. SendInfoMessage(targetid, "%s has granted you faction management status.", ReturnNameEx(playerid));
  35634. }
  35635. case 1:
  35636. {
  35637. Players[targetid][pFactionMod] = 2;
  35638. SendAdminMessage(COLOR_RED, "Admin: %s has granted %s head of factions status.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0));
  35639. SendInfoMessage(playerid, "You have granted head of factions status to %s.", ReturnNameEx(targetid));
  35640. SendInfoMessage(targetid, "%s has granted you head of factions status.", ReturnNameEx(playerid));
  35641. }
  35642. case 2:
  35643. {
  35644. Players[targetid][pFactionMod] = 0;
  35645. SendAdminMessage(COLOR_RED, "Admin: %s has revoked %s's faction management status.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0));
  35646. SendInfoMessage(playerid, "You have revoked %s's faction management status.", ReturnNameEx(targetid));
  35647. SendInfoMessage(targetid, "%s has revoked your faction management status.", ReturnNameEx(playerid));
  35648. }
  35649. }
  35650. }
  35651. return 1;
  35652. }
  35653. Dialog:SetStaff(playerid, response, listitem, inputtext[])
  35654. {
  35655. if (response)
  35656. {
  35657. switch (listitem)
  35658. {
  35659. case 0:
  35660. {
  35661. Dialog_Show(playerid, SetSupporter, DIALOG_STYLE_LIST, "{FFFFFF}Set Supporter", "Supporter\nHead Supporter\nRevoke Status", "Change", "Cancel");
  35662. }
  35663. case 1:
  35664. {
  35665. Dialog_Show(playerid, SetFactionMod, DIALOG_STYLE_LIST, "{FFFFFF}Set Faction Mod", "Faction Mod\nHead of Factions\nRevoke Status", "Change", "Cancel");
  35666. }
  35667. }
  35668. }
  35669. else
  35670. {
  35671. Players[playerid][pSetStaff] = INVALID_PLAYER_ID;
  35672. }
  35673. return 1;
  35674. }
  35675. Dialog:WalkieTalkie(playerid, response, listitem, inputtext[])
  35676. {
  35677. new item = Players[playerid][pSelected];
  35678. if (response)
  35679. {
  35680. switch (listitem)
  35681. {
  35682. case 0:
  35683. {
  35684. if (!Inventory[playerid][item][invValue])
  35685. {
  35686. return Dialog_Show(playerid, WTChannel, DIALOG_STYLE_INPUT, "{FFFFFF}Set Channel", "Please enter the channel to set for this walkie talkie:", "Submit", "Cancel");
  35687. }
  35688. else if (Inventory[playerid][item][invValue] > 0 && Players[playerid][pChannel] == Inventory[playerid][item][invValue])
  35689. {
  35690. Players[playerid][pChannel] = 0;
  35691. SendInfoMessage(playerid, "This walkie talkie is no longer set as your primary one.");
  35692. }
  35693. else
  35694. {
  35695. Players[playerid][pChannel] = Inventory[playerid][item][invValue];
  35696. SendInfoMessage(playerid, "You have set this walkie talkie as your primary. Use /wt to communicate.");
  35697. }
  35698. }
  35699. case 1:
  35700. {
  35701. Dialog_Show(playerid, WTChannel, DIALOG_STYLE_INPUT, "{FFFFFF}Set Channel", "Please enter the channel to set for this walkie talkie:", "Submit", "Cancel");
  35702. }
  35703. }
  35704. }
  35705. return 1;
  35706. }
  35707. Dialog:WTChannel(playerid, response, listitem, inputtext[])
  35708. {
  35709. new item = Players[playerid][pSelected];
  35710. if (response)
  35711. {
  35712. new channel;
  35713. if (sscanf(inputtext, "i", channel))
  35714. {
  35715. return Dialog_Show(playerid, WTChannel, DIALOG_STYLE_INPUT, "{FFFFFF}Set Channel", "Please enter the channel to set for this walkie talkie:", "Submit", "Cancel");
  35716. }
  35717. else if( channel == 911 && GetPlayerFactionType(playerid) != FACTION_LEO)
  35718. {
  35719. return SendErrorMessage(playerid, "This is a government only frequency.");
  35720. }
  35721. else if (channel < 0 || channel > 9999999)
  35722. {
  35723. return Dialog_Show(playerid, WTChannel, DIALOG_STYLE_INPUT, "{FFFFFF}Set Channel", "The channel must be between 0 and 9,999,999.\n\nPlease enter the channel to set for this walkie talkie:", "Submit", "Cancel");
  35724. }
  35725. else
  35726. {
  35727. if (Inventory[playerid][item][invValue] > 0 && Players[playerid][pChannel] == Inventory[playerid][item][invValue])
  35728. {
  35729. Players[playerid][pChannel] = channel;
  35730. }
  35731. Inventory[playerid][item][invValue] = channel;
  35732. SendInfoMessage(playerid, "You have changed the channel of this walkie talkie to %i.", channel);
  35733. }
  35734. }
  35735. return 1;
  35736. }
  35737. Dialog:PortableRadio(playerid, response, listitem, inputtext[])
  35738. {
  35739. new item = Players[playerid][pSelected];
  35740. if (response)
  35741. {
  35742. switch (listitem)
  35743. {
  35744. case 0:
  35745. {
  35746. if (!Inventory[playerid][item][invValue])
  35747. {
  35748. return Dialog_Show(playerid, PRChannel, DIALOG_STYLE_INPUT, "{FFFFFF}Set Channel", "Please enter the channel to set for this portable radio:", "Submit", "Cancel");
  35749. }
  35750. else if (Inventory[playerid][item][invValue] > 0 && Players[playerid][pChannel] == Inventory[playerid][item][invValue])
  35751. {
  35752. Players[playerid][pChannel] = 0;
  35753. SendInfoMessage(playerid, "This portable radio is no longer set as your primary one.");
  35754. }
  35755. else
  35756. {
  35757. Players[playerid][pChannel] = Inventory[playerid][item][invValue];
  35758. SendInfoMessage(playerid, "You have set this portable radio as your primary. Use /r to communicate.");
  35759. }
  35760. }
  35761. case 1:
  35762. {
  35763. Dialog_Show(playerid, PRChannel, DIALOG_STYLE_INPUT, "{FFFFFF}Set Channel", "Please enter the channel to set for this portable radio:", "Submit", "Cancel");
  35764. }
  35765. }
  35766. }
  35767. return 1;
  35768. }
  35769. Dialog:PRChannel(playerid, response, listitem, inputtext[])
  35770. {
  35771. new item = Players[playerid][pSelected];
  35772. if (response)
  35773. {
  35774. new channel;
  35775. if (sscanf(inputtext, "i", channel))
  35776. {
  35777. return Dialog_Show(playerid, PRChannel, DIALOG_STYLE_INPUT, "{FFFFFF}Set Channel", "Please enter the channel to set for this portable radio:", "Submit", "Cancel");
  35778. }
  35779. else if( channel == 911 && GetPlayerFactionType(playerid) != FACTION_LEO)
  35780. {
  35781. return SendErrorMessage(playerid, "This is a government only frequency.");
  35782. }
  35783. else if (channel < 0 || channel > 9999999)
  35784. {
  35785. return Dialog_Show(playerid, PRChannel, DIALOG_STYLE_INPUT, "{FFFFFF}Set Channel", "The channel must be between 0 and 9,999,999.\n\nPlease enter the channel to set for this portable radio:", "Submit", "Cancel");
  35786. }
  35787. else
  35788. {
  35789. if (Inventory[playerid][item][invValue] > 0 && Players[playerid][pChannel] == Inventory[playerid][item][invValue])
  35790. {
  35791. Players[playerid][pChannel] = channel;
  35792. }
  35793. //Inventory[playerid][item][invValue] = channel;
  35794. SetItemValue(playerid, item, channel);
  35795. SendInfoMessage(playerid, "You have changed the channel of this portable radio to %i.", channel);
  35796. }
  35797. }
  35798. return 1;
  35799. }
  35800. Dialog:RentalPrice(playerid, response, listitem, inputtext[])
  35801. {
  35802. new company = Players[playerid][pCompany];
  35803. if (!IsValidCompanyID(company) || !IsCompanyOwner(playerid, company))
  35804. {
  35805. return 0;
  35806. }
  35807. if (response)
  35808. {
  35809. new amount;
  35810. if (sscanf(inputtext, "i", amount))
  35811. {
  35812. return Dialog_Show(playerid, RentalPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Rental Price", "Please enter the price to set for vehicle %s below:", "Submit", "Back", GetVehicleModelName(Vehicles[Players[playerid][pSelected]][vModel]));
  35813. }
  35814. else if (amount < 1)
  35815. {
  35816. return Dialog_Show(playerid, RentalPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Rental Price", "The specified price can't be below $1.\n\nPlease enter the price to set for vehicle %s below:", "Submit", "Back", GetVehicleModelName(Vehicles[Players[playerid][pSelected]][vModel]));
  35817. }
  35818. else
  35819. {
  35820. Vehicles[Players[playerid][pSelected]][vPrice] = amount;
  35821. if (Vehicles[Players[playerid][pSelected]][vRenter] == INVALID_PLAYER_ID)
  35822. {
  35823. UpdateVehicle(Players[playerid][pSelected]);
  35824. }
  35825. SaveVehicle(Players[playerid][pSelected]);
  35826. SendInfoMessage(playerid, "You have changed the price of %s to: %s.", GetVehicleModelName(Vehicles[Players[playerid][pSelected]][vModel]), FormatNumber(amount));
  35827. ShowRentalEditMenu(playerid, company);
  35828. }
  35829. }
  35830. else
  35831. {
  35832. ShowRentalEditMenu(playerid, company);
  35833. }
  35834. return 1;
  35835. }
  35836. Dialog:RentalEdit(playerid, response, listitem, inputtext[])
  35837. {
  35838. new company = Players[playerid][pCompany];
  35839. if (!IsValidCompanyID(company) || !IsCompanyOwner(playerid, company))
  35840. {
  35841. return 0;
  35842. }
  35843. if (response)
  35844. {
  35845. Players[playerid][pSelected] = gListedItems[playerid][listitem];
  35846. Dialog_Show(playerid, RentalPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Rental Price", "Please enter the price to set for vehicle %s below:", "Submit", "Back", GetVehicleModelName(Vehicles[Players[playerid][pSelected]][vModel]));
  35847. }
  35848. return 1;
  35849. }
  35850. Dialog:RemoveItems(playerid, response, listitem, inputtext[])
  35851. {
  35852. new item = gListedItems[playerid][listitem];
  35853. if (response)
  35854. {
  35855. new targetid = Players[playerid][pTarget];
  35856. if (Inventory[targetid][item][invExists])
  35857. {
  35858. SendAdminMessage(COLOR_RED, "Admin: %s has removed a %s from %s's inventory.", ReturnNameEx(playerid, 0), GetFullItemName(targetid, item), ReturnNameEx(targetid, 0));
  35859. RemoveItemFromInventory(targetid, item);
  35860. }
  35861. }
  35862. return 1;
  35863. }
  35864. Dialog:WeaponBone(playerid, response, listitem, inputtext[])
  35865. {
  35866. if (response)
  35867. {
  35868. new slot = GetWeaponOffsetType(GetPlayerWeaponID(playerid, Players[playerid][pSelected]));
  35869. listitem++;
  35870. SendInfoMessage(playerid, "You have changed the bone of this weapon to %s (%i).", GetBoneName(listitem), listitem);
  35871. SetWeaponOffset(playerid, slot, listitem, WeaponOffsets[playerid][slot][wOffsetX], WeaponOffsets[playerid][slot][wOffsetY], WeaponOffsets[playerid][slot][wOffsetZ], WeaponOffsets[playerid][slot][wOffsetRX], WeaponOffsets[playerid][slot][wOffsetRY], WeaponOffsets[playerid][slot][wOffsetRZ]);
  35872. UpdateWeaponOffset(playerid, Players[playerid][pSelected]);
  35873. ShowMenuForWeapon(playerid, Players[playerid][pSelected]);
  35874. }
  35875. return 1;
  35876. }
  35877. Dialog:AdjustWeapon(playerid, response, listitem, inputtext[])
  35878. {
  35879. new weaponid = GetPlayerWeaponID(playerid, Players[playerid][pSelected]);
  35880. if (!weaponid)
  35881. {
  35882. return 0;
  35883. }
  35884. if (response)
  35885. {
  35886. if (listitem == 0)
  35887. {
  35888. new string[200];
  35889. for (new i = 1; i <= 18; i ++) {
  35890. strcat(string, GetBoneName(i));
  35891. strcat(string, "\n");
  35892. }
  35893. Dialog_Show(playerid, WeaponBone, DIALOG_STYLE_LIST, "{FFFFFF}Select Bone", string, "Confirm", "Cancel");
  35894. }
  35895. else if (listitem == 1)
  35896. {
  35897. if (GetPlayerWeapon(playerid) > 1)
  35898. {
  35899. return SendErrorMessage(playerid, "You must put the weapon away before editing it.");
  35900. }
  35901. else
  35902. {
  35903. if (Players[playerid][pSelected] == WEAPON_MELEE) {
  35904. EditAttachedObjectEx(playerid, EDIT_TYPE_WEAPON, ATTACHED_SLOT_MELEE);
  35905. } else if (Players[playerid][pSelected] == WEAPON_PRIMARY) {
  35906. EditAttachedObjectEx(playerid, EDIT_TYPE_WEAPON, ATTACHED_SLOT_PRIMARY);
  35907. } else if (Players[playerid][pSelected] == WEAPON_SECONDARY) {
  35908. EditAttachedObjectEx(playerid, EDIT_TYPE_WEAPON, ATTACHED_SLOT_SECONDARY);
  35909. } else if (Players[playerid][pSelected] == WEAPON_TERTIARY) {
  35910. EditAttachedObjectEx(playerid, EDIT_TYPE_WEAPON, ATTACHED_SLOT_TERTIARY);
  35911. }
  35912. SendInfoMessage(playerid, "Click on the disk icon to save changes. Press ESC to cancel.");
  35913. }
  35914. }
  35915. else if (listitem == 2)
  35916. {
  35917. new slot = GetWeaponOffsetType(weaponid);
  35918. if (!IsWeaponHideable(weaponid)) {
  35919. return SendErrorMessage(playerid, "You can only hide small weapons only.");
  35920. }
  35921. else
  35922. {
  35923. if (!WeaponOffsets[playerid][slot][wHidden])
  35924. {
  35925. SetWeaponHidden(playerid, slot, true);
  35926. SendInfoMessage(playerid, "You have hidden your %s. It is now hidden from view.", GetWeapon(weaponid));
  35927. }
  35928. else
  35929. {
  35930. SetWeaponHidden(playerid, slot, false);
  35931. SendInfoMessage(playerid, "You have shown your %s. It is no longer hidden from view.", GetWeapon(weaponid));
  35932. }
  35933. UpdateWeaponOffset(playerid, Players[playerid][pSelected]);
  35934. ShowMenuForWeapon(playerid, Players[playerid][pSelected]);
  35935. }
  35936. }
  35937. }
  35938. return 1;
  35939. }
  35940. Dialog:VehicleColor(playerid, response, listitem, inputtext[])
  35941. {
  35942. new
  35943. vehicle = GetVehicleID(GetPlayerVehicleID(playerid));
  35944. if (!IsValidVehicleID(vehicle) || !GetVehicleKeys(playerid, Vehicles[vehicle][vVehicle]))
  35945. {
  35946. return 0;
  35947. }
  35948. if (response)
  35949. {
  35950. new color1, color2;
  35951. if (sscanf(inputtext, "p<,>ii", color1, color2))
  35952. {
  35953. return Dialog_Show(playerid, VehicleColor, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle Colors", "Please enter the colors to apply for this vehicle below (color1, color2).\n\nExample: If you want to set your car's color to black, use '0, 0'.", "Submit", "Cancel");
  35954. }
  35955. else if (!(0 <= color1 <= 255))
  35956. {
  35957. return Dialog_Show(playerid, VehicleColor, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle Colors", "The first color must be between 0 and 255.\n\nPlease enter the colors to apply for this vehicle below (color1, color2).\n\nExample: If you want to set your car's color to black, use '0, 0'.", "Submit", "Cancel");
  35958. }
  35959. else if (!(0 <= color2 <= 255))
  35960. {
  35961. return Dialog_Show(playerid, VehicleColor, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle Colors", "The second color must be between 0 and 255.\n\nPlease enter the colors to apply for this vehicle below (color1, color2).\n\nExample: If you want to set your car's color to black, use '0, 0'.", "Submit", "Cancel");
  35962. }
  35963. else
  35964. {
  35965. Vehicles[vehicle][vColor1] = color1;
  35966. Vehicles[vehicle][vColor2] = color2;
  35967. ChangeVehicleColor(Vehicles[vehicle][vVehicle], color1, color2);
  35968. SaveVehicle(vehicle);
  35969. RemoveItemValue(playerid, Players[playerid][pSelected], 1);
  35970. SendInfoMessage(playerid, "You have changed the colors of this %s to %i, %i.", GetVehicleModelName(Vehicles[vehicle][vModel]), color1, color2);
  35971. }
  35972. }
  35973. return 1;
  35974. }
  35975. Dialog:StereoURL(playerid, response, listitem, inputtext[])
  35976. {
  35977. if (response)
  35978. {
  35979. if (isnull(inputtext) || strlen(inputtext) < 10)
  35980. {
  35981. return Dialog_Show(playerid, StereoURL, DIALOG_STYLE_INPUT, "{FFFFFF}Change URL", "Please enter the URL address of the stream you wish to play.\n\nNote: You cannot directly play .mp3 links. It must be a .pls or a .m3u link.", "Submit", "Cancel");
  35982. }
  35983. else
  35984. {
  35985. strpack(Stereos[playerid][pStereoURL], inputtext, 255);
  35986. SendInfoMessage(playerid, "You have changed the URL that this stereo will play.");
  35987. ShowActionBubble(playerid, "* %s changes the radio station.", ReturnNameEx(playerid));
  35988. foreach (new i : Player)
  35989. {
  35990. if (Players[i][pStereoPlayerID] == playerid)
  35991. {
  35992. PlayAudioStreamForPlayer(i, inputtext, Stereos[playerid][pStereoX], Stereos[playerid][pStereoY], Stereos[playerid][pStereoZ], 50.0, true);
  35993. }
  35994. }
  35995. }
  35996. }
  35997. return 1;
  35998. }
  35999. Dialog:Stereo(playerid, response, listitem, inputtext[])
  36000. {
  36001. if (response)
  36002. {
  36003. switch (listitem)
  36004. {
  36005. case 0:
  36006. {
  36007. Dialog_Show(playerid, StereoURL, DIALOG_STYLE_INPUT, "{FFFFFF}Change URL", "Please enter the URL address of the stream you wish to play.\n\nNote: You cannot directly play .mp3 links. It must be a .pls or a .m3u link.", "Submit", "Cancel");
  36008. }
  36009. case 1:
  36010. {
  36011. PickupStereo(playerid);
  36012. }
  36013. }
  36014. }
  36015. return 1;
  36016. }
  36017. Dialog:PayTickets(playerid, response, listitem, inputtext[])
  36018. {
  36019. if (response)
  36020. {
  36021. new ticket = gListedItems[playerid][listitem];
  36022. format(gExecute, sizeof(gExecute), "SELECT Amount, Date, Reason FROM rp_tickets WHERE ID = %i", ticket);
  36023. mysql_tquery(gConnection, gExecute, "OnPlayerPayTicket", "ii", playerid, ticket);
  36024. }
  36025. return 1;
  36026. }
  36027. Dialog:RemoveAnote(playerid, response, listitem, inputtext[])
  36028. {
  36029. if (response)
  36030. {
  36031. new anote = gListedItems[playerid][listitem];
  36032. format(gExecute, sizeof(gExecute), "SELECT `Issuer`, `Date`, `Reason` FROM rp_anotes WHERE ID = %i", anote);
  36033. mysql_tquery(gConnection, gExecute, "OnPlayerRemoveAnote", "ii", playerid, anote);
  36034. }
  36035. }
  36036. Dialog:VehicleMenu(playerid, response, listitem, inputtext[])
  36037. {
  36038. if (response)
  36039. {
  36040. switch (listitem)
  36041. {
  36042. case 0:
  36043. {
  36044. ShowTicketList(playerid);
  36045. }
  36046. case 1:
  36047. {
  36048. new success = ShowImpoundList(playerid);
  36049. if (!success)
  36050. {
  36051. SendErrorMessage(playerid, "You don't have any impounded vehicles to release.");
  36052. }
  36053. }
  36054. }
  36055. }
  36056. return 1;
  36057. }
  36058. Dialog:RemoveMod(playerid, response, listitem, inputtext[])
  36059. {
  36060. new vehicle = GetVehicleID(GetPlayerVehicleID(playerid));
  36061. if (!IsValidVehicleID(vehicle) || !IsVehicleOwner(playerid, vehicle))
  36062. {
  36063. return 0;
  36064. }
  36065. if (response)
  36066. {
  36067. if (!strcmp(inputtext, "Reset Color"))
  36068. {
  36069. Vehicles[vehicle][vColor1] = 1;
  36070. Vehicles[vehicle][vColor2] = 1;
  36071. SaveVehicle(vehicle);
  36072. ChangeVehicleColor(Vehicles[vehicle][vVehicle], Vehicles[vehicle][vColor1], Vehicles[vehicle][vColor2]);
  36073. SendInfoMessage(playerid, "{CFCFCF}You have reset the color of this vehicle to default.");
  36074. }
  36075. else if (!strcmp(inputtext, "Reset Paintjob"))
  36076. {
  36077. Vehicles[vehicle][vPaintjob] = 10;
  36078. ChangeVehiclePaintjob(Vehicles[vehicle][vVehicle], Vehicles[vehicle][vPaintjob]);
  36079. SaveVehicle(vehicle);
  36080. SendInfoMessage(playerid, "{CFCFCF}You have reset the paintjob of this vehicle to default.");
  36081. }
  36082. else
  36083. {
  36084. new slot = gListedItems[playerid][listitem];
  36085. RemoveVehicleComponent(Vehicles[vehicle][vVehicle], Vehicles[vehicle][vMods][slot]);
  36086. SendInfoMessage(playerid, "{CFCFCF}You have removed a modification from this vehicle:{33AA33} %s.", GetVehicleComponentName(Vehicles[vehicle][vMods][slot]));
  36087. Vehicles[vehicle][vMods][slot] = 0;
  36088. SaveComponent(vehicle, slot);
  36089. }
  36090. }
  36091. return 1;
  36092. }
  36093. Dialog:Origin(playerid, response, listitem, inputtext[])
  36094. {
  36095. if (response)
  36096. {
  36097. if (isnull(inputtext))
  36098. {
  36099. return Dialog_Show(playerid, Origin, DIALOG_STYLE_INPUT, "{FFFFFF}Character Origin", "Enter the place of origin your character is from:", "Submit", "");
  36100. }
  36101. else if (strlen(inputtext) > 24)
  36102. {
  36103. return Dialog_Show(playerid, Origin, DIALOG_STYLE_INPUT, "{FFFFFF}Character Origin", "The origin needs to contain less than 24 characters.\n\nEnter the place of origin your character is from:", "Submit", "");
  36104. }
  36105. else if (!IsValidOrigin(inputtext))
  36106. {
  36107. return Dialog_Show(playerid, Origin, DIALOG_STYLE_INPUT, "{FFFFFF}Character Origin", "Enter the place of origin your character is from:", "Submit", "");
  36108. }
  36109. else
  36110. {
  36111. strcpy(Players[playerid][pOrigin], inputtext, 24);
  36112. if(!Players[playerid][pActivated]) {
  36113. FadeScreenForPlayer(playerid, FADE_START_QUIZ);
  36114. }
  36115. }
  36116. }
  36117. return 1;
  36118. }
  36119. Dialog:Quiz1(playerid, response, listitem, inputtext[])
  36120. {
  36121. if (response)
  36122. {
  36123. switch (listitem)
  36124. {
  36125. case 0:
  36126. {
  36127. Dialog_Show(playerid, Quiz1, DIALOG_STYLE_INPUT, "{FFFFFF}What does RP stand for?", "Real Play\nRole Play\nReal Person", "Submit", "");
  36128. }
  36129. case 1:
  36130. {
  36131. Dialog_Show(playerid, Quiz2, DIALOG_STYLE_INPUT, "{FFFFFF}What is the correct definition for IC?", "In Character\nIdeal Character\nIndependand Character", "Submit", "");
  36132. }
  36133. case 2:
  36134. {
  36135. Dialog_Show(playerid, Quiz1, DIALOG_STYLE_INPUT, "{FFFFFF}What does RP stand for?", "Real Play\nRole Play\nReal Person", "Submit", "");
  36136. }
  36137. }
  36138. }
  36139. return 1;
  36140. }
  36141. Dialog:Quiz2(playerid, response, listitem, inputtext[])
  36142. {
  36143. if (response)
  36144. {
  36145. switch (listitem)
  36146. {
  36147. case 0:
  36148. {
  36149. Dialog_Show(playerid, Quiz3, DIALOG_STYLE_INPUT, "{FFFFFF}What does metagaming mean?", "Forcing actions onto another player\nShooting alot\nUsing OOC information in IC situations", "Submit", "");
  36150. }
  36151. case 1:
  36152. {
  36153. Dialog_Show(playerid, Quiz1, DIALOG_STYLE_INPUT, "{FFFFFF}What does RP stand for?", "Real Play\nRole Play\nReal Person", "Submit", "");
  36154. }
  36155. case 2:
  36156. {
  36157. Dialog_Show(playerid, Quiz1, DIALOG_STYLE_INPUT, "{FFFFFF}What does RP stand for?", "Real Play\nRole Play\nReal Person", "Submit", "");
  36158. }
  36159. }
  36160. }
  36161. return 1;
  36162. }
  36163. Dialog:Quiz3(playerid, response, listitem, inputtext[])
  36164. {
  36165. if (response)
  36166. {
  36167. switch (listitem)
  36168. {
  36169. case 0:
  36170. {
  36171. Dialog_Show(playerid, Quiz1, DIALOG_STYLE_INPUT, "{FFFFFF}What does RP stand for?", "Real Play\nRole Play\nReal Person", "Submit", "");
  36172. }
  36173. case 1:
  36174. {
  36175. Dialog_Show(playerid, Quiz1, DIALOG_STYLE_INPUT, "{FFFFFF}What does RP stand for?", "Real Play\nRole Play\nReal Person", "Submit", "");
  36176. }
  36177. case 2:
  36178. {
  36179. //strcpy(Players[playerid][pOrigin], inputtext, 24);
  36180. SetSpawnInfo(playerid, 0, 0, 208.3268, -154.9872, 1000.5234, 180.0000, 0, 0, 0, 0, 0, 0);
  36181. TogglePlayerSpectating(playerid, false);
  36182. }
  36183. }
  36184. }
  36185. return 1;
  36186. }
  36187. Dialog:WeaponDamages(playerid, response, listitem, inputtext[])
  36188. {
  36189. if (response)
  36190. {
  36191. new count;
  36192. for(new i = 0; i < sizeof(WeaponDamages); i ++)
  36193. {
  36194. if(IsValidDamageWeapon(i))
  36195. {
  36196. if(count++ == listitem)
  36197. {
  36198. Players[playerid][pSelected] = i;
  36199. return Dialog_Show(playerid, SetDamage, DIALOG_STYLE_INPUT, "{FFFFFF}Set Damage", "Please enter the weapon damage to set for %s (use 0 for default).", "Submit", "Back", GetWeapon(Players[playerid][pSelected]));
  36200. }
  36201. }
  36202. }
  36203. }
  36204. return 1;
  36205. }
  36206. Dialog:SetDamage(playerid, response, listitem, inputtext[])
  36207. {
  36208. if (response)
  36209. {
  36210. new Float:damage;
  36211. if (sscanf(inputtext, "f", damage))
  36212. {
  36213. return Dialog_Show(playerid, SetDamage, DIALOG_STYLE_INPUT, "{FFFFFF}Set Damage", "Please enter the weapon damage to set for %s (use 0 for default).", "Submit", "Back", GetWeapon(Players[playerid][pSelected]));
  36214. }
  36215. else if (damage < 0.0 || damage > 100.0)
  36216. {
  36217. return Dialog_Show(playerid, SetDamage, DIALOG_STYLE_INPUT, "{FFFFFF}Set Damage", "The specified damage can't be below 0 or above 100.\n\nPlease enter the weapon damage to set for %s (use 0 for default).", "Submit", "Back", GetWeapon(Players[playerid][pSelected]));
  36218. }
  36219. else
  36220. {
  36221. new weaponid = Players[playerid][pSelected];
  36222. SetWeaponDamage(weaponid, damage);
  36223. if (damage == 0.0)
  36224. {
  36225. SendAdminMessage(COLOR_RED, "Admin: %s has set the damage for %s to default.", ReturnNameEx(playerid, 0), GetWeapon(weaponid));
  36226. }
  36227. else
  36228. {
  36229. SendAdminMessage(COLOR_RED, "Admin: %s has set the damage for %s to %.1f.", ReturnNameEx(playerid, 0), GetWeapon(weaponid), damage);
  36230. }
  36231. }
  36232. }
  36233. else
  36234. {
  36235. ShowWeaponDamageEditMenu(playerid);
  36236. }
  36237. return 1;
  36238. }
  36239. Dialog:FindLocation(playerid, response, listitem, inputtext[])
  36240. {
  36241. if (response)
  36242. {
  36243. cmd_guide(playerid, "\1");
  36244. }
  36245. return 1;
  36246. }
  36247. Dialog:Guide(playerid, response, listitem, inputtext[])
  36248. {
  36249. if (response)
  36250. {
  36251. switch (listitem)
  36252. {
  36253. case 0:
  36254. {
  36255. SetCheckpoint(playerid, CHECKPOINT_GPS, g_StaticBuildings[BUILDING_CITYHALL][e_SpawnX], g_StaticBuildings[BUILDING_CITYHALL][e_SpawnY], g_StaticBuildings[BUILDING_CITYHALL][e_SpawnZ], 3.0);
  36256. SendInfoMessage(playerid, "A waypoint has been placed at City Hall. You can acquire a job there.");
  36257. }
  36258. case 1:
  36259. {
  36260. SetCheckpoint(playerid, CHECKPOINT_GPS, g_StaticBuildings[BUILDING_DMV][e_SpawnX], g_StaticBuildings[BUILDING_DMV][e_SpawnY], g_StaticBuildings[BUILDING_DMV][e_SpawnZ], 3.0);
  36261. SendInfoMessage(playerid, "A waypoint has been set to the department of motor vehicles.");
  36262. }
  36263. case 2:
  36264. {
  36265. Dialog_Show(playerid, GPS, DIALOG_STYLE_LIST, "{FFFFFF}GPS Menu", "Locate Company\nLocate House\nLocate Auto Shop\nLocate DMV\nLocate Mod Shop", "Select", "Cancel");
  36266. }
  36267. case 3:
  36268. {
  36269. ShowFAQMenu(playerid);
  36270. }
  36271. }
  36272. }
  36273. return 1;
  36274. }
  36275. Dialog:Objective(playerid, response, listitem, inputtext[])
  36276. {
  36277. if (response)
  36278. {
  36279. cmd_jobhelp(playerid, "\1");
  36280. }
  36281. return 1;
  36282. }
  36283. Dialog:JobHelp(playerid, response, listitem, inputtext[])
  36284. {
  36285. if (response)
  36286. {
  36287. switch (Players[playerid][pJob])
  36288. {
  36289. case JOB_TRANSPORTER:
  36290. {
  36291. if (listitem == 0)
  36292. {
  36293. Dialog_Show(playerid, Objective, DIALOG_STYLE_MSGBOX, "{FFFFFF}Objective", "You are a transporter. Your objective is to deliver stock to various\ncompanies around the city.\n\nUse {88AA62}/load{A9C4E4} at the work location to start delivering goods. To deliver\nthe stock, use {88AA62}/deliver{A9C4E4} at the deliver point.", "Back", "Close");
  36294. }
  36295. else if (listitem == 1)
  36296. {
  36297. SetCheckpoint(playerid, CHECKPOINT_GPS, 2175.3335, -2266.9937, 13.3891, 3.0);
  36298. SendInfoMessage(playerid, "A waypoint has been placed at the work location.");
  36299. }
  36300. }
  36301. case JOB_FORKLIFTER:
  36302. {
  36303. if (listitem == 0)
  36304. {
  36305. Dialog_Show(playerid, Objective, DIALOG_STYLE_MSGBOX, "{FFFFFF}Objective", "You are a forklifter. Your objective is to pickup goods and stack\nthem in the warehouse.\n\nUse {88AA62}/jobhelp{A9C4E4} and select {88AA62}Work Location{A9C4E4} to locate the warehouse.\nUse {88AA62}/work{A9C4E4} inside the forklift to begin the job.", "Back", "Close");
  36306. }
  36307. else if (listitem == 1)
  36308. {
  36309. SetCheckpoint(playerid, CHECKPOINT_GPS, 2783.6682, -2417.8679, 13.6347, 3.0);
  36310. SendInfoMessage(playerid, "A waypoint has been placed at the work location.");
  36311. }
  36312. }
  36313. case JOB_MINER:
  36314. {
  36315. if (listitem == 0)
  36316. {
  36317. Dialog_Show(playerid, Objective, DIALOG_STYLE_MSGBOX, "{FFFFFF}Objective", "You are a miner. Your objective is to mine for several different\ntypes of rocks.\n\nUse {88AA62}/jobhelp{A9C4E4} and select {88AA62}Work Location{A9C4E4} to locate the mining place.\nUse {88AA62}/work{A9C4E4} at the rocks to begin the job.", "Back", "Close");
  36318. }
  36319. else if (listitem == 1)
  36320. {
  36321. SetCheckpoint(playerid, CHECKPOINT_GPS, -1858.5516, -1651.3812, 26.0788, 3.0);
  36322. SendInfoMessage(playerid, "A waypoint has been placed at the work location.");
  36323. }
  36324. }
  36325. case JOB_TAXI:
  36326. {
  36327. if (listitem == 0)
  36328. {
  36329. Dialog_Show(playerid, Objective, DIALOG_STYLE_MSGBOX, "{FFFFFF}Objective", "You are a taxi driver. Your objective is to offer transportation to\npeople around the city.\n\nAll you need to do is enter a taxi and wait for passengers to\nenter your cab. The meter will turn on automatically.\nAvailable Commands: /taxiduty, /setfare, /acceptcall", "Back", "Close");
  36330. }
  36331. else if (listitem == 1)
  36332. {
  36333. //SetCheckpoint(playerid, CHECKPOINT_GPS, 1790.9644, -1890.2183, 13.3973, 3.0);
  36334. SendInfoMessage(playerid, "This job does not have a specific job location, all you need is a taxi.");
  36335. }
  36336. }
  36337. /*case JOB_MECHANIC:
  36338. {
  36339. if (listitem == 0)
  36340. {
  36341. Dialog_Show(playerid, Objective, DIALOG_STYLE_MSGBOX, "{FFFFFF}Objective", "As a mechanic your job is to service vehicles around the city.\nEnter a tow truck and wait for somebody to call. Use {88AA62}/acceptcall{A9C4E4}\nto accept the call, and {88AA62}/service{A9C4E4} to service a vehicle.", "Back", "Close");
  36342. //Dialog_Show(playerid, Objective, DIALOG_STYLE_MSGBOX, "{FFFFFF}Objective", "You are a mechanic. Your objective is to service vehicles to\nfor people around the city.\n\nAll you need to do is enter a taxi and wait for passengers to\nenter your cab. The meter will turn on automatically.", "Back", "Close");
  36343. }
  36344. else if (listitem == 1)
  36345. {
  36346. //SetCheckpoint(playerid, CHECKPOINT_GPS, 1790.9644, -1890.2183, 13.3973, 3.0);
  36347. SendInfoMessage(playerid, "This job does not have a specific location, all you need is a tow truck.");
  36348. }
  36349. }*/
  36350. case JOB_PIZZA:
  36351. {
  36352. if (listitem == 0)
  36353. {
  36354. Dialog_Show(playerid, Objective, DIALOG_STYLE_MSGBOX, "{FFFFFF}Objective", "You are a pizzaboy. Your objective is to deliver pizzas to residents\nto earn some quick money.\n\nUse {88AA62}/jobhelp{A9C4E4} and select {88AA62}Work Location{A9C4E4} to locate the pizza stacks.\nUse {88AA62}/work{A9C4E4} inside the pizza scooter to begin the job.", "Back", "Close");
  36355. }
  36356. else if (listitem == 1)
  36357. {
  36358. SetCheckpoint(playerid, CHECKPOINT_GPS, 2097.8745, -1800.4648, 12.9810, 3.0);
  36359. SendInfoMessage(playerid, "A waypoint has been placed at the work location.");
  36360. }
  36361. }
  36362. case JOB_TRASHMAN:
  36363. {
  36364. if (listitem == 0)
  36365. {
  36366. Dialog_Show(playerid, Objective, DIALOG_STYLE_MSGBOX, "{FFFFFF}Objective", "You are a trashman. Your objective is to pickup trash around the\ncity and drop it off at the landfill.\n\nUse {88AA62}/jobhelp{A9C4E4} and select {88AA62}Work Location{A9C4E4} to locate the landfill.\nUse {88AA62}/work{A9C4E4} inside a garbage truck to begin the job.", "Back", "Close");
  36367. }
  36368. else if (listitem == 1)
  36369. {
  36370. SetCheckpoint(playerid, CHECKPOINT_GPS, 2184.9795, -1976.9451, 13.5528, 3.0);
  36371. SendInfoMessage(playerid, "A waypoint has been placed at the work location.");
  36372. }
  36373. }
  36374. case JOB_MECHANIC:
  36375. {
  36376. if (listitem == 0)
  36377. {
  36378. Dialog_Show(playerid, Objective, DIALOG_STYLE_MSGBOX, "{FFFFFF}Objective", "You are a mechanic. Your objective is to respond to mechanic calls\naround the city. You use a toolbox to repair vehicles, and a\nspraycan to respray vehicles.", "Back", "Close");
  36379. }
  36380. else if (listitem == 1)
  36381. {
  36382. SendInfoMessage(playerid, "Mechanics don't have a work location.");
  36383. }
  36384. }
  36385. }
  36386. }
  36387. return 1;
  36388. }
  36389. Dialog:Employment(playerid, response, listitem, inputtext[])
  36390. {
  36391. if (response)
  36392. {
  36393. switch (listitem)
  36394. {
  36395. case 0:
  36396. {
  36397. Players[playerid][pJob] = JOB_TRANSPORTER;
  36398. SendInfoMessage(playerid, "You are now employed as a transporter. Use /jobhelp for more information.");
  36399. }
  36400. case 1:
  36401. {
  36402. Players[playerid][pJob] = JOB_FORKLIFTER;
  36403. SendInfoMessage(playerid, "You are now employed as a forklifter. Use /jobhelp for more information.");
  36404. }
  36405. case 2:
  36406. {
  36407. Players[playerid][pJob] = JOB_MINER;
  36408. SendInfoMessage(playerid, "You are now employed as a miner. Use /jobhelp for more information.");
  36409. }
  36410. case 3:
  36411. {
  36412. Players[playerid][pJob] = JOB_TAXI;
  36413. SendInfoMessage(playerid, "You are now employed as a taxi driver. Use /jobhelp for more information.");
  36414. }
  36415. case 4:
  36416. {
  36417. Players[playerid][pJob] = JOB_PIZZA;
  36418. SendInfoMessage(playerid, "You are now employed as a pizzaboy. Use /jobhelp for more information.");
  36419. }
  36420. case 5:
  36421. {
  36422. Players[playerid][pJob] = JOB_TRASHMAN;
  36423. SendInfoMessage(playerid, "You are now employed as a trashman. Use /jobhelp for more information.");
  36424. }
  36425. case 6:
  36426. {
  36427. Players[playerid][pJob] = JOB_MECHANIC;
  36428. SendInfoMessage(playerid, "You are now employed as a mechanic. Use /jobhelp for more information.");
  36429. }
  36430. }
  36431. }
  36432. return 1;
  36433. }
  36434. /*
  36435. format(string, sizeof(string), "Melee Packages\t%s", (Factions[faction][fcWeaponRights][0]) ? ("Yes") : ("No"));
  36436. format(string, sizeof(string), "%s\nPistol Packages\t%s", string, (Factions[faction][fcWeaponRights][1]) ? ("Yes") : ("No"));
  36437. format(string, sizeof(string), "%s\nShotgun Packages\t%s", string, (Factions[faction][fcWeaponRights][2]) ? ("Yes") : ("No"));
  36438. format(string, sizeof(string), "%s\nSMG Packages\t\t%s", string, (Factions[faction][fcWeaponRights][3]) ? ("Yes") : ("No"));
  36439. format(string, sizeof(string), "%s\nRifle Packages\t\t%s", string, (Factions[faction][fcWeaponRights][4]) ? ("Yes") : ("No"));
  36440. if(GetPlayerArmourEx(playerid) > 0.0)
  36441. {
  36442. return SendErrorMessage(playerid, "You have armor already.");
  36443. }
  36444. else
  36445. {
  36446. new Float:Farmor;
  36447. new armor = Inventory[playerid][item][invValue];
  36448. Farmor = float(armor);
  36449. SetPlayerValidArmor(playerid, Farmor);
  36450. ShowActionBubble(playerid, "* %s straps on a kevlar vest.", ReturnNameEx(playerid));
  36451. RemoveItemFromInventory(playerid, item);
  36452. SendInfoMessage(playerid, "You have put armor on.");
  36453. }
  36454. Dialog_Show(playerid, CraftWeapon, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Craft Weapon", "Weapon\tMat. Cost\nDesert Eagle\t200\nShotgun\t350\nUZI\t600\nAK-47\t1500\nRifle\t2500\nKnife\t150", "Select", "Cancel");
  36455. if (Factions[Players[playerid][pFaction]][fcWeaponRights][0])
  36456. {
  36457. //format(string, sizeof(string), "Melee Weapons\n", string);
  36458. strcat(string, "Melee Weapons\n");
  36459. }
  36460. if (Factions[Players[playerid][pFaction]][fcWeaponRights][1])
  36461. {
  36462. //format(string, sizeof(string), "Pistols\n", string);
  36463. strcat(string, "Pistols\n");
  36464. }
  36465. if (Factions[Players[playerid][pFaction]][fcWeaponRights][2])
  36466. {
  36467. //format(string, sizeof(string), "Shotguns\n", string);
  36468. strcat(string, "Shotguns\n");
  36469. }
  36470. if (Factions[Players[playerid][pFaction]][fcWeaponRights][3])
  36471. {
  36472. //format(string, sizeof(string), "Sub Machine Guns\n", string);
  36473. strcat(string, "Sub Machine Guns\n");
  36474. }
  36475. if (Factions[Players[playerid][pFaction]][fcWeaponRights][4])
  36476. {
  36477. //format(string, sizeof(string), "Rifles\n", string);
  36478. strcat(string, "Rifles\n");
  36479. }
  36480. */
  36481. /*
  36482. if (Factions[Players[playerid][pFaction]][fcWeaponRights][0])
  36483. {
  36484. //format(string, sizeof(string), "Melee Weapons\n", string);
  36485. strcat(string, "Melee Weapons\n");
  36486. }
  36487. if (Factions[Players[playerid][pFaction]][fcWeaponRights][1])
  36488. {
  36489. //format(string, sizeof(string), "Pistols\n", string);
  36490. strcat(string, "Pistols\n");
  36491. }
  36492. if (Factions[Players[playerid][pFaction]][fcWeaponRights][2])
  36493. {
  36494. //format(string, sizeof(string), "Shotguns\n", string);
  36495. strcat(string, "Shotguns\n");
  36496. }
  36497. if (Factions[Players[playerid][pFaction]][fcWeaponRights][3])
  36498. {
  36499. //format(string, sizeof(string), "Sub Machine Guns\n", string);
  36500. strcat(string, "Sub Machine Guns\n");
  36501. }
  36502. if (Factions[Players[playerid][pFaction]][fcWeaponRights][4])
  36503. {
  36504. //format(string, sizeof(string), "Rifles\n", string);
  36505. strcat(string, "Rifles\n");
  36506. }
  36507. if (Factions[Players[playerid][pFaction]][fcWeaponRights][5])
  36508. {
  36509. //format(string, sizeof(string), "Rifles\n", string);
  36510. strcat(string, "Explosives\n");
  36511. }
  36512. */
  36513. Dialog:OrderIllegal(playerid, response, listitem, inputtext[])
  36514. {
  36515. if (response)
  36516. {
  36517. new fac = Players[playerid][pFaction];
  36518. new facr[6];
  36519. facr[0] = Factions[fac][fcWeaponRights][0];
  36520. facr[1] = Factions[fac][fcWeaponRights][1];
  36521. facr[2] = Factions[fac][fcWeaponRights][2];
  36522. facr[3] = Factions[fac][fcWeaponRights][3];
  36523. facr[4] = Factions[fac][fcWeaponRights][4];
  36524. facr[5] = Factions[fac][fcWeaponRights][5];
  36525. switch (listitem)
  36526. {
  36527. /*case 0:
  36528. {
  36529. if (!facr[0] && !facr[1] && !facr[2] && !facr[3] && !facr[4] && !facr[5])
  36530. {
  36531. return SendErrorMessage(playerid, "Your faction is not allowed to order this.");
  36532. }
  36533. else
  36534. {
  36535. //SendInfoMessage(playerid, "mats");
  36536. Dialog_Show(playerid, OrderIllegal_Mats, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Order Materials", "Package\tAmount\tPrice\nSmall Package\t500 Mats\t$500\nMedium Package\t1000\t$1000\nLarge Package\t2000\t$2000", "Select", "Cancel");
  36537. }
  36538. }*/
  36539. case 0:
  36540. {
  36541. Dialog_Show(playerid, OrderIllegal_Weps, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Order Weapons", "Package Type\tPrice\nMelee Package\t$%i\nPistol Package\t$%i\nShotgun Package\t$%i\nSMG Package\t$%i\nRifle Package\t$%i", "Submit", "Cancel", GetPackagePrice(PACKAGE_TYPE_MELEE), GetPackagePrice(PACKAGE_TYPE_PISTOLS), GetPackagePrice(PACKAGE_TYPE_SHOTGUNS), GetPackagePrice(PACKAGE_TYPE_SMGS), GetPackagePrice(PACKAGE_TYPE_RIFLES));
  36542. }
  36543. case 1:
  36544. {
  36545. if (!Factions[fac][fcDrugRights])
  36546. {
  36547. return SendErrorMessage(playerid, "Your factions is not allowed to order this.");
  36548. }
  36549. else
  36550. {
  36551. Dialog_Show(playerid, OrderIllegal_Drugs_Amt, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Order Drugs",
  36552. "Type\t$/gram\nSteroids\t$200\nHeroin\t$150\nLSD\t$225\nEcstasy\t$350\nMarijuana\t$100\nCrack\t$80\nCocaine\t$500\nMethamphetamine\t$250\nPCP\t$235",
  36553. "Select", "Cancel");
  36554. }
  36555. }
  36556. }
  36557. }
  36558. return 1;
  36559. }
  36560. Dialog:OrderIllegal_Weps(playerid, response, listitem, inputtext[])
  36561. {
  36562. if (response)
  36563. {
  36564. new fac = Players[playerid][pFaction];
  36565. new facr[5];
  36566. facr[0] = Factions[fac][fcWeaponRights][0];
  36567. facr[1] = Factions[fac][fcWeaponRights][1];
  36568. facr[2] = Factions[fac][fcWeaponRights][2];
  36569. facr[3] = Factions[fac][fcWeaponRights][3];
  36570. facr[4] = Factions[fac][fcWeaponRights][4];
  36571. switch (listitem)
  36572. {
  36573. case 0:
  36574. {
  36575. if (!facr[0])
  36576. return SendErrorMessage(playerid, "Your faction is not privileged to order this package.");
  36577. if (!PlayerCanAfford(playerid, GetPackagePrice(PACKAGE_TYPE_MELEE)))
  36578. return SendErrorMessage(playerid, "You can't afford this package.");
  36579. if (!IsSufficientSpace(playerid, "Melee Package"))
  36580. return SendErrorMessage(playerid, "There is no more room in your inventory.");
  36581. AddItemToInventory(playerid, "Melee Package");
  36582. SendInfoMessage(playerid, "You have received a Melee Package.");
  36583. RemoveMoney(playerid, GetPackagePrice(PACKAGE_TYPE_MELEE));
  36584. }
  36585. case 1:
  36586. {
  36587. if (!facr[1])
  36588. return SendErrorMessage(playerid, "Your faction is not privileged to order this package.");
  36589. if (!PlayerCanAfford(playerid, GetPackagePrice(PACKAGE_TYPE_PISTOLS)))
  36590. return SendErrorMessage(playerid, "You can't afford this package.");
  36591. if (!IsSufficientSpace(playerid, "Pistol Package"))
  36592. return SendErrorMessage(playerid, "There is no more room in your inventory.");
  36593. AddItemToInventory(playerid, "Pistol Package");
  36594. SendInfoMessage(playerid, "You have received a Pistol Package.");
  36595. RemoveMoney(playerid, GetPackagePrice(PACKAGE_TYPE_PISTOLS));
  36596. }
  36597. case 2:
  36598. {
  36599. if (!facr[2])
  36600. return SendErrorMessage(playerid, "Your faction is not privileged to order this package.");
  36601. if (!PlayerCanAfford(playerid, GetPackagePrice(PACKAGE_TYPE_SHOTGUNS)))
  36602. return SendErrorMessage(playerid, "You can't afford this package.");
  36603. if (!IsSufficientSpace(playerid, "Shotgun Package"))
  36604. return SendErrorMessage(playerid, "There is no more room in your inventory.");
  36605. AddItemToInventory(playerid, "Shotgun Package");
  36606. SendInfoMessage(playerid, "You have received a Shotgun Package.");
  36607. RemoveMoney(playerid, GetPackagePrice(PACKAGE_TYPE_SHOTGUNS));
  36608. }
  36609. case 3:
  36610. {
  36611. if (!facr[3])
  36612. return SendErrorMessage(playerid, "Your faction is not privileged to order this package.");
  36613. if (!PlayerCanAfford(playerid, GetPackagePrice(PACKAGE_TYPE_SMGS)))
  36614. return SendErrorMessage(playerid, "You can't afford this package.");
  36615. if (!IsSufficientSpace(playerid, "SMG Package"))
  36616. return SendErrorMessage(playerid, "There is no more room in your inventory.");
  36617. AddItemToInventory(playerid, "SMG Package");
  36618. SendInfoMessage(playerid, "You have received a SMG Package.");
  36619. RemoveMoney(playerid, GetPackagePrice(PACKAGE_TYPE_SMGS));
  36620. }
  36621. case 4:
  36622. {
  36623. if (!facr[4])
  36624. return SendErrorMessage(playerid, "Your faction is not privileged to order this package.");
  36625. if (!PlayerCanAfford(playerid, GetPackagePrice(PACKAGE_TYPE_RIFLES)))
  36626. return SendErrorMessage(playerid, "You can't afford this package.");
  36627. if (!IsSufficientSpace(playerid, "Rifle Package"))
  36628. return SendErrorMessage(playerid, "There is no more room in your inventory.");
  36629. AddItemToInventory(playerid, "Rifle Package");
  36630. SendInfoMessage(playerid, "You have received a Rifle Package.");
  36631. RemoveMoney(playerid, GetPackagePrice(PACKAGE_TYPE_RIFLES));
  36632. }
  36633. }
  36634. }
  36635. return 1;
  36636. }
  36637. /*
  36638. {"Melee Package", 3014, 2, false, true},
  36639. {"Pistol Package", 3014, 3, false, true},
  36640. {"Shotgun Package", 3014, 3, false, true},
  36641. {"SMG Package", 3014, 3, false, true},6500
  36642. {"Rifle Package", 3014, 3, false, true},12500
  36643. */
  36644. Dialog:Crafting(playerid, response, listitem, inputtext[])
  36645. {
  36646. if (response)
  36647. {
  36648. if (!strcmp(inputtext, "Melee Weapons", true))
  36649. {
  36650. Dialog_Show(playerid, CraftMelee, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Crafting - Melee", "Weapon\tMaterial Cost\nNightstick\t75\nKnife\t50\nKatana\t80\nChainsaw\t320", "Select", "Cancel");
  36651. }
  36652. else if (!strcmp(inputtext, "Pistols", true))
  36653. {
  36654. Dialog_Show(playerid, CraftPistol, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Crafting - Pistols", "Weapon\tMaterial Cost\nColt 45\t250\nSilenced 45\t350\nDesert Eagle\t500", "Select", "Cancel");
  36655. }
  36656. else if (!strcmp(inputtext, "Shotguns", true))
  36657. {
  36658. Dialog_Show(playerid, CraftShotgun, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Crafting - Shotguns", "Weapon\tMaterial Cost\nShotgun\t750\nCombat Shotgun\t1200", "Select", "Cancel");
  36659. }
  36660. else if (!strcmp(inputtext, "Sub Machine Guns", true))
  36661. {
  36662. Dialog_Show(playerid, CraftSMG, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Crafting - Sub Machine Guns", "Weapon\tMaterial Cost\nUZI\t800\nTEC-9\t850\nMP5\t1000", "Select", "Cancel");
  36663. }
  36664. else if (!strcmp(inputtext, "Rifles", true))
  36665. {
  36666. Dialog_Show(playerid, CraftRifle, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Crafting - Rifles", "Weapon\tMaterial Cost\nAK-47\t1250\nM4\t1500\nCountry Rifle\t1000", "Select", "Cancel");
  36667. }
  36668. else if (!strcmp(inputtext, "Explosives", true))
  36669. {
  36670. Dialog_Show(playerid, CraftExplosive, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Crafting - Explosives", "Weapon\tMaterial Cost\nGrenade\t500\nMolotov\t750", "Select", "Cancel");
  36671. }
  36672. }
  36673. return 1;
  36674. }
  36675. Dialog:CraftExplosive(playerid, response, listitem, inputtext[])
  36676. {
  36677. if (response)
  36678. {
  36679. if (!strcmp(inputtext, "Grenade", true))
  36680. {
  36681. new itemname[24] = "Grenade";
  36682. new item = GetInventoryItemID(playerid, "Materials");
  36683. new amt = Inventory[playerid][item][invValue];
  36684. new cost = 500;
  36685. if (item == INVALID_ID)
  36686. {
  36687. return SendErrorMessage(playerid, "You don't have any materials.");
  36688. }
  36689. else if (amt < cost)
  36690. {
  36691. return SendErrorMessage(playerid, "You don't have %i materials.", cost);
  36692. }
  36693. else if (!IsSufficientSpace(playerid, itemname))
  36694. {
  36695. SendErrorMessage(playerid, "There is no more room in your inventory.");
  36696. }
  36697. else
  36698. {
  36699. AddItemToInventory(playerid, itemname);
  36700. SendInfoMessage(playerid, "You have received a %s.", itemname);
  36701. RemoveItemValue(playerid, item, cost);
  36702. SetReloadAnimation(playerid, 24);
  36703. }
  36704. }
  36705. else if (!strcmp(inputtext, "Molotov", true))
  36706. {
  36707. new itemname[24] = "Molotov";
  36708. new item = GetInventoryItemID(playerid, "Materials");
  36709. new amt = Inventory[playerid][item][invValue];
  36710. new cost = 750;
  36711. if (item == INVALID_ID)
  36712. {
  36713. return SendErrorMessage(playerid, "You don't have any materials.");
  36714. }
  36715. else if (amt < cost)
  36716. {
  36717. return SendErrorMessage(playerid, "You don't have %i materials.", cost);
  36718. }
  36719. else if (!IsSufficientSpace(playerid, itemname))
  36720. {
  36721. SendErrorMessage(playerid, "There is no more room in your inventory.");
  36722. }
  36723. else
  36724. {
  36725. AddItemToInventory(playerid, itemname);
  36726. SendInfoMessage(playerid, "You have received a %s.", itemname);
  36727. RemoveItemValue(playerid, item, cost);
  36728. SetReloadAnimation(playerid, 24);
  36729. }
  36730. }
  36731. }
  36732. return 1;
  36733. }
  36734. Dialog:CraftRifle(playerid, response, listitem, inputtext[])
  36735. {
  36736. if (response)
  36737. {
  36738. if (!strcmp(inputtext, "AK-47", true))
  36739. {
  36740. new itemname[24] = "AK-47";
  36741. new item = GetInventoryItemID(playerid, "Materials");
  36742. new amt = Inventory[playerid][item][invValue];
  36743. new cost = 1250;
  36744. if (item == INVALID_ID)
  36745. {
  36746. return SendErrorMessage(playerid, "You don't have any materials.");
  36747. }
  36748. else if (amt < cost)
  36749. {
  36750. return SendErrorMessage(playerid, "You don't have %i materials.", cost);
  36751. }
  36752. else if (!IsSufficientSpace(playerid, itemname))
  36753. {
  36754. SendErrorMessage(playerid, "There is no more room in your inventory.");
  36755. }
  36756. else
  36757. {
  36758. AddItemToInventory(playerid, itemname);
  36759. SendInfoMessage(playerid, "You have received a %s.", itemname);
  36760. RemoveItemValue(playerid, item, cost);
  36761. SetReloadAnimation(playerid, 24);
  36762. }
  36763. }
  36764. else if (!strcmp(inputtext, "M4", true))
  36765. {
  36766. new itemname[24] = "M4";
  36767. new item = GetInventoryItemID(playerid, "Materials");
  36768. new amt = Inventory[playerid][item][invValue];
  36769. new cost = 1500;
  36770. if (item == INVALID_ID)
  36771. {
  36772. return SendErrorMessage(playerid, "You don't have any materials.");
  36773. }
  36774. else if (amt < cost)
  36775. {
  36776. return SendErrorMessage(playerid, "You don't have %i materials.", cost);
  36777. }
  36778. else if (!IsSufficientSpace(playerid, itemname))
  36779. {
  36780. SendErrorMessage(playerid, "There is no more room in your inventory.");
  36781. }
  36782. else
  36783. {
  36784. AddItemToInventory(playerid, itemname);
  36785. SendInfoMessage(playerid, "You have received a %s.", itemname);
  36786. RemoveItemValue(playerid, item, cost);
  36787. SetReloadAnimation(playerid, 24);
  36788. }
  36789. }
  36790. else if (!strcmp(inputtext, "Country Rifle", true))
  36791. {
  36792. new itemname[24] = "Country Rifle";
  36793. new item = GetInventoryItemID(playerid, "Materials");
  36794. new amt = Inventory[playerid][item][invValue];
  36795. new cost = 1000;
  36796. if (item == INVALID_ID)
  36797. {
  36798. return SendErrorMessage(playerid, "You don't have any materials.");
  36799. }
  36800. else if (amt < cost)
  36801. {
  36802. return SendErrorMessage(playerid, "You don't have %i materials.", cost);
  36803. }
  36804. else if (!IsSufficientSpace(playerid, itemname))
  36805. {
  36806. SendErrorMessage(playerid, "There is no more room in your inventory.");
  36807. }
  36808. else
  36809. {
  36810. AddItemToInventory(playerid, itemname);
  36811. SendInfoMessage(playerid, "You have received a %s.", itemname);
  36812. RemoveItemValue(playerid, item, cost);
  36813. SetReloadAnimation(playerid, 24);
  36814. }
  36815. }
  36816. }
  36817. return 1;
  36818. }
  36819. Dialog:CraftSMG(playerid, response, listitem, inputtext[])
  36820. {
  36821. if (response)
  36822. {
  36823. if (!strcmp(inputtext, "UZI", true))
  36824. {
  36825. new itemname[24] = "UZI";
  36826. new item = GetInventoryItemID(playerid, "Materials");
  36827. new amt = Inventory[playerid][item][invValue];
  36828. new cost = 800;
  36829. if (item == INVALID_ID)
  36830. {
  36831. return SendErrorMessage(playerid, "You don't have any materials.");
  36832. }
  36833. else if (amt < cost)
  36834. {
  36835. return SendErrorMessage(playerid, "You don't have %i materials.", cost);
  36836. }
  36837. else if (!IsSufficientSpace(playerid, itemname))
  36838. {
  36839. SendErrorMessage(playerid, "There is no more room in your inventory.");
  36840. }
  36841. else
  36842. {
  36843. AddItemToInventory(playerid, itemname);
  36844. SendInfoMessage(playerid, "You have received a %s.", itemname);
  36845. RemoveItemValue(playerid, item, cost);
  36846. SetReloadAnimation(playerid, 24);
  36847. }
  36848. }
  36849. else if (!strcmp(inputtext, "TEC-9", true))
  36850. {
  36851. new itemname[24] = "TEC-9";
  36852. new item = GetInventoryItemID(playerid, "Materials");
  36853. new amt = Inventory[playerid][item][invValue];
  36854. new cost = 850;
  36855. if (item == INVALID_ID)
  36856. {
  36857. return SendErrorMessage(playerid, "You don't have any materials.");
  36858. }
  36859. else if (amt < cost)
  36860. {
  36861. return SendErrorMessage(playerid, "You don't have %i materials.", cost);
  36862. }
  36863. else if (!IsSufficientSpace(playerid, itemname))
  36864. {
  36865. SendErrorMessage(playerid, "There is no more room in your inventory.");
  36866. }
  36867. else
  36868. {
  36869. AddItemToInventory(playerid, itemname);
  36870. SendInfoMessage(playerid, "You have received a %s.", itemname);
  36871. RemoveItemValue(playerid, item, cost);
  36872. SetReloadAnimation(playerid, 24);
  36873. }
  36874. }
  36875. else if (!strcmp(inputtext, "MP5", true))
  36876. {
  36877. new itemname[24] = "MP5";
  36878. new item = GetInventoryItemID(playerid, "Materials");
  36879. new amt = Inventory[playerid][item][invValue];
  36880. new cost = 1000;
  36881. if (item == INVALID_ID)
  36882. {
  36883. return SendErrorMessage(playerid, "You don't have any materials.");
  36884. }
  36885. else if (amt < cost)
  36886. {
  36887. return SendErrorMessage(playerid, "You don't have %i materials.", cost);
  36888. }
  36889. else if (!IsSufficientSpace(playerid, itemname))
  36890. {
  36891. SendErrorMessage(playerid, "There is no more room in your inventory.");
  36892. }
  36893. else
  36894. {
  36895. AddItemToInventory(playerid, itemname);
  36896. SendInfoMessage(playerid, "You have received a %s.", itemname);
  36897. RemoveItemValue(playerid, item, cost);
  36898. SetReloadAnimation(playerid, 24);
  36899. }
  36900. }
  36901. }
  36902. return 1;
  36903. }
  36904. Dialog:CraftShotgun(playerid, response, listitem, inputtext[])
  36905. {
  36906. if (response)
  36907. {
  36908. if (!strcmp(inputtext, "Shotgun", true))
  36909. {
  36910. new itemname[24] = "Shotgun";
  36911. new item = GetInventoryItemID(playerid, "Materials");
  36912. new amt = Inventory[playerid][item][invValue];
  36913. new cost = 750;
  36914. if (item == INVALID_ID)
  36915. {
  36916. return SendErrorMessage(playerid, "You don't have any materials.");
  36917. }
  36918. else if (amt < cost)
  36919. {
  36920. return SendErrorMessage(playerid, "You don't have %i materials.", cost);
  36921. }
  36922. else if (!IsSufficientSpace(playerid, itemname))
  36923. {
  36924. SendErrorMessage(playerid, "There is no more room in your inventory.");
  36925. }
  36926. else
  36927. {
  36928. AddItemToInventory(playerid, itemname);
  36929. SendInfoMessage(playerid, "You have received a %s.", itemname);
  36930. RemoveItemValue(playerid, item, cost);
  36931. SetReloadAnimation(playerid, 24);
  36932. }
  36933. }
  36934. else if (!strcmp(inputtext, "SPAS-12", true))
  36935. {
  36936. new itemname[24] = "SPAS-12";
  36937. new item = GetInventoryItemID(playerid, "Materials");
  36938. new amt = Inventory[playerid][item][invValue];
  36939. new cost = 1200;
  36940. if (item == INVALID_ID)
  36941. {
  36942. return SendErrorMessage(playerid, "You don't have any materials.");
  36943. }
  36944. else if (amt < cost)
  36945. {
  36946. return SendErrorMessage(playerid, "You don't have %i materials.", cost);
  36947. }
  36948. else if (!IsSufficientSpace(playerid, itemname))
  36949. {
  36950. SendErrorMessage(playerid, "There is no more room in your inventory.");
  36951. }
  36952. else
  36953. {
  36954. AddItemToInventory(playerid, itemname);
  36955. SendInfoMessage(playerid, "You have received a %s.", itemname);
  36956. RemoveItemValue(playerid, item, cost);
  36957. SetReloadAnimation(playerid, 24);
  36958. }
  36959. }
  36960. }
  36961. return 1;
  36962. }
  36963. Dialog:CraftPistol(playerid, response, listitem, inputtext[])
  36964. {
  36965. if (response)
  36966. {
  36967. if (!strcmp(inputtext, "Colt 45", true))
  36968. {
  36969. new itemname[24] = "Colt 45";
  36970. new item = GetInventoryItemID(playerid, "Materials");
  36971. new amt = Inventory[playerid][item][invValue];
  36972. new cost = 250;
  36973. if (item == INVALID_ID)
  36974. {
  36975. return SendErrorMessage(playerid, "You don't have any materials.");
  36976. }
  36977. else if (amt < cost)
  36978. {
  36979. return SendErrorMessage(playerid, "You don't have %i materials.", cost);
  36980. }
  36981. else if (!IsSufficientSpace(playerid, itemname))
  36982. {
  36983. SendErrorMessage(playerid, "There is no more room in your inventory.");
  36984. }
  36985. else
  36986. {
  36987. AddItemToInventory(playerid, itemname);
  36988. SendInfoMessage(playerid, "You have received a %s.", itemname);
  36989. RemoveItemValue(playerid, item, cost);
  36990. SetReloadAnimation(playerid, 24);
  36991. }
  36992. }
  36993. else if (!strcmp(inputtext, "Silenced 45", true))
  36994. {
  36995. new itemname[24] = "Silenced 45";
  36996. new item = GetInventoryItemID(playerid, "Materials");
  36997. new amt = Inventory[playerid][item][invValue];
  36998. new cost = 350;
  36999. if (item == INVALID_ID)
  37000. {
  37001. return SendErrorMessage(playerid, "You don't have any materials.");
  37002. }
  37003. else if (amt < cost)
  37004. {
  37005. return SendErrorMessage(playerid, "You don't have %i materials.", cost);
  37006. }
  37007. else if (!IsSufficientSpace(playerid, itemname))
  37008. {
  37009. SendErrorMessage(playerid, "There is no more room in your inventory.");
  37010. }
  37011. else
  37012. {
  37013. AddItemToInventory(playerid, itemname);
  37014. SendInfoMessage(playerid, "You have received a %s.", itemname);
  37015. RemoveItemValue(playerid, item, cost);
  37016. SetReloadAnimation(playerid, 24);
  37017. }
  37018. }
  37019. else if (!strcmp(inputtext, "Desert Eagle", true))
  37020. {
  37021. new itemname[24] = "Desert Eagle";
  37022. new item = GetInventoryItemID(playerid, "Materials");
  37023. new amt = Inventory[playerid][item][invValue];
  37024. new cost = 500;
  37025. if (item == INVALID_ID)
  37026. {
  37027. return SendErrorMessage(playerid, "You don't have any materials.");
  37028. }
  37029. else if (amt < cost)
  37030. {
  37031. return SendErrorMessage(playerid, "You don't have %i materials.", cost);
  37032. }
  37033. else if (!IsSufficientSpace(playerid, itemname))
  37034. {
  37035. SendErrorMessage(playerid, "There is no more room in your inventory.");
  37036. }
  37037. else
  37038. {
  37039. AddItemToInventory(playerid, itemname);
  37040. SendInfoMessage(playerid, "You have received a %s.", itemname);
  37041. RemoveItemValue(playerid, item, cost);
  37042. SetReloadAnimation(playerid, 24);
  37043. }
  37044. }
  37045. }
  37046. return 1;
  37047. }
  37048. Dialog:CraftMelee(playerid, response, listitem, inputtext[])
  37049. {
  37050. if (response)
  37051. {
  37052. if (!strcmp(inputtext, "Nightstick", true))
  37053. {
  37054. new itemname[24] = "Nightstick";
  37055. new item = GetInventoryItemID(playerid, "Materials");
  37056. new amt = Inventory[playerid][item][invValue];
  37057. new cost = 75;
  37058. if (item == INVALID_ID)
  37059. {
  37060. return SendErrorMessage(playerid, "You don't have any materials.");
  37061. }
  37062. else if (amt < cost)
  37063. {
  37064. return SendErrorMessage(playerid, "You don't have %i materials.", cost);
  37065. }
  37066. else if (!IsSufficientSpace(playerid, itemname))
  37067. {
  37068. SendErrorMessage(playerid, "There is no more room in your inventory.");
  37069. }
  37070. else
  37071. {
  37072. AddItemToInventory(playerid, itemname);
  37073. SendInfoMessage(playerid, "You have received a %s.", itemname);
  37074. RemoveItemValue(playerid, item, cost);
  37075. SetReloadAnimation(playerid, 24);
  37076. }
  37077. }
  37078. else if (!strcmp(inputtext, "Knife", true))
  37079. {
  37080. new itemname[24] = "Knife";
  37081. new item = GetInventoryItemID(playerid, "Materials");
  37082. new amt = Inventory[playerid][item][invValue];
  37083. new cost = 50;
  37084. if (item == INVALID_ID)
  37085. {
  37086. return SendErrorMessage(playerid, "You don't have any materials.");
  37087. }
  37088. else if (amt < cost)
  37089. {
  37090. return SendErrorMessage(playerid, "You don't have %i materials.", cost);
  37091. }
  37092. else if (!IsSufficientSpace(playerid, itemname))
  37093. {
  37094. SendErrorMessage(playerid, "There is no more room in your inventory.");
  37095. }
  37096. else
  37097. {
  37098. AddItemToInventory(playerid, itemname);
  37099. SendInfoMessage(playerid, "You have received a %s.", itemname);
  37100. RemoveItemValue(playerid, item, cost);
  37101. SetReloadAnimation(playerid, 24);
  37102. }
  37103. }
  37104. else if (!strcmp(inputtext, "Katana", true))
  37105. {
  37106. new itemname[24] = "Katana";
  37107. new item = GetInventoryItemID(playerid, "Materials");
  37108. new amt = Inventory[playerid][item][invValue];
  37109. new cost = 80;
  37110. if (item == INVALID_ID)
  37111. {
  37112. return SendErrorMessage(playerid, "You don't have any materials.");
  37113. }
  37114. else if (amt < cost)
  37115. {
  37116. return SendErrorMessage(playerid, "You don't have %i materials.", cost);
  37117. }
  37118. else if (!IsSufficientSpace(playerid, itemname))
  37119. {
  37120. SendErrorMessage(playerid, "There is no more room in your inventory.");
  37121. }
  37122. else
  37123. {
  37124. AddItemToInventory(playerid, itemname);
  37125. SendInfoMessage(playerid, "You have received a %s.", itemname);
  37126. RemoveItemValue(playerid, item, cost);
  37127. SetReloadAnimation(playerid, 24);
  37128. }
  37129. }
  37130. else if (!strcmp(inputtext, "Chainsaw", true))
  37131. {
  37132. new itemname[24] = "Chainsaw";
  37133. new item = GetInventoryItemID(playerid, "Materials");
  37134. new amt = Inventory[playerid][item][invValue];
  37135. new cost = 320;
  37136. if (item == INVALID_ID)
  37137. {
  37138. return SendErrorMessage(playerid, "You don't have any materials.");
  37139. }
  37140. else if (amt < cost)
  37141. {
  37142. return SendErrorMessage(playerid, "You don't have %i materials.", cost);
  37143. }
  37144. else if (!IsSufficientSpace(playerid, itemname))
  37145. {
  37146. SendErrorMessage(playerid, "There is no more room in your inventory.");
  37147. }
  37148. else
  37149. {
  37150. AddItemToInventory(playerid, itemname);
  37151. SendInfoMessage(playerid, "You have received a %s.", itemname);
  37152. RemoveItemValue(playerid, item, cost);
  37153. SetReloadAnimation(playerid, 24);
  37154. }
  37155. }
  37156. }
  37157. return 1;
  37158. }
  37159. Dialog:CraftWeapon(playerid, response, listitem, inputtext[])
  37160. {
  37161. if (response)
  37162. {
  37163. switch (listitem)
  37164. {
  37165. case 0:
  37166. {
  37167. new item = GetInventoryItemID(playerid, "Materials");
  37168. new amt = Inventory[playerid][item][invValue];
  37169. if (item == INVALID_ID)
  37170. {
  37171. return SendErrorMessage(playerid, "You don't have any materials.");
  37172. }
  37173. else if (amt < 200)
  37174. {
  37175. return SendErrorMessage(playerid, "You don't have enough materials for this.");
  37176. }
  37177. else if (!Factions[Players[playerid][pFaction]][fcWeaponRights][1])
  37178. {
  37179. return SendErrorMessage(playerid, "Your faction is not allowed to craft these.");
  37180. }
  37181. else if (!IsSufficientSpace(playerid, "Desert Eagle"))
  37182. {
  37183. SendErrorMessage(playerid, "There is no more room in your inventory.");
  37184. }
  37185. else
  37186. {
  37187. AddItemToInventory(playerid, "Desert Eagle", 70);
  37188. SendInfoMessage(playerid, "You have received a Desert Eagle with 70 ammo for 200 materials.");
  37189. RemoveItemValue(playerid, item, 200);
  37190. SetReloadAnimation(playerid, 24);
  37191. }
  37192. }
  37193. case 1:
  37194. {
  37195. new item = GetInventoryItemID(playerid, "Materials");
  37196. new amt = Inventory[playerid][item][invValue];
  37197. if (item == INVALID_ID)
  37198. {
  37199. return SendErrorMessage(playerid, "You don't have any materials.");
  37200. }
  37201. else if (amt < 350)
  37202. {
  37203. return SendErrorMessage(playerid, "You don't have enough materials for this.");
  37204. }
  37205. else if (!Factions[Players[playerid][pFaction]][fcWeaponRights][2])
  37206. {
  37207. return SendErrorMessage(playerid, "Your faction is not allowed to craft these.");
  37208. }
  37209. else if (!IsSufficientSpace(playerid, "Shotgun"))
  37210. {
  37211. SendErrorMessage(playerid, "There is no more room in your inventory.");
  37212. }
  37213. else
  37214. {
  37215. AddItemToInventory(playerid, "Shotgun", 50);
  37216. SendInfoMessage(playerid, "You have received a Shotgun with 50 ammo for 350 materials.");
  37217. RemoveItemValue(playerid, item, 350);
  37218. SetReloadAnimation(playerid, 24);
  37219. }
  37220. }
  37221. case 2:
  37222. {
  37223. new item = GetInventoryItemID(playerid, "Materials");
  37224. new amt = Inventory[playerid][item][invValue];
  37225. if (item == INVALID_ID)
  37226. {
  37227. return SendErrorMessage(playerid, "You don't have any materials.");
  37228. }
  37229. else if (amt < 600)
  37230. {
  37231. return SendErrorMessage(playerid, "You don't have enough materials for this.");
  37232. }
  37233. else if (!Factions[Players[playerid][pFaction]][fcWeaponRights][3])
  37234. {
  37235. return SendErrorMessage(playerid, "Your faction is not allowed to craft these.");
  37236. }
  37237. else if (!IsSufficientSpace(playerid, "UZI"))
  37238. {
  37239. SendErrorMessage(playerid, "There is no more room in your inventory.");
  37240. }
  37241. else
  37242. {
  37243. AddItemToInventory(playerid, "UZI", 100);
  37244. SendInfoMessage(playerid, "You have received a UZI with 100 ammo for 600 materials.");
  37245. RemoveItemValue(playerid, item, 600);
  37246. SetReloadAnimation(playerid, 24);
  37247. }
  37248. }
  37249. case 3:
  37250. {
  37251. new item = GetInventoryItemID(playerid, "Materials");
  37252. new amt = Inventory[playerid][item][invValue];
  37253. if (item == INVALID_ID)
  37254. {
  37255. return SendErrorMessage(playerid, "You don't have any materials.");
  37256. }
  37257. else if (amt < 1500)
  37258. {
  37259. return SendErrorMessage(playerid, "You don't have enough materials for this.");
  37260. }
  37261. else if (!Factions[Players[playerid][pFaction]][fcWeaponRights][4])
  37262. {
  37263. return SendErrorMessage(playerid, "Your faction is not allowed to craft these.");
  37264. }
  37265. else if (!IsSufficientSpace(playerid, "AK-47"))
  37266. {
  37267. SendErrorMessage(playerid, "There is no more room in your inventory.");
  37268. }
  37269. else
  37270. {
  37271. AddItemToInventory(playerid, "AK-47", 60);
  37272. SendInfoMessage(playerid, "You have received a AK-47 with 60 ammo for 1500 materials.");
  37273. RemoveItemValue(playerid, item, 1500);
  37274. SetReloadAnimation(playerid, 24);
  37275. }
  37276. }
  37277. case 4:
  37278. {
  37279. new item = GetInventoryItemID(playerid, "Materials");
  37280. new amt = Inventory[playerid][item][invValue];
  37281. if (item == INVALID_ID)
  37282. {
  37283. return SendErrorMessage(playerid, "You don't have any materials.");
  37284. }
  37285. else if (amt < 2500)
  37286. {
  37287. return SendErrorMessage(playerid, "You don't have enough materials for this.");
  37288. }
  37289. else if (!Factions[Players[playerid][pFaction]][fcWeaponRights][4])
  37290. {
  37291. return SendErrorMessage(playerid, "Your faction is not allowed to craft these.");
  37292. }
  37293. else if (!IsSufficientSpace(playerid, "Rifle"))
  37294. {
  37295. SendErrorMessage(playerid, "There is no more room in your inventory.");
  37296. }
  37297. else
  37298. {
  37299. AddItemToInventory(playerid, "Rifle", 50);
  37300. SendInfoMessage(playerid, "You have received a Rifle with 50 ammo for 2500 materials.");
  37301. RemoveItemValue(playerid, item, 2500);
  37302. SetReloadAnimation(playerid, 24);
  37303. }
  37304. }
  37305. case 5:
  37306. {
  37307. new item = GetInventoryItemID(playerid, "Materials");
  37308. new amt = Inventory[playerid][item][invValue];
  37309. if (item == INVALID_ID)
  37310. {
  37311. return SendErrorMessage(playerid, "You don't have any materials.");
  37312. }
  37313. else if (amt < 150)
  37314. {
  37315. return SendErrorMessage(playerid, "You don't have enough materials for this.");
  37316. }
  37317. else if (!Factions[Players[playerid][pFaction]][fcWeaponRights][0])
  37318. {
  37319. return SendErrorMessage(playerid, "Your faction is not allowed to craft these.");
  37320. }
  37321. else if (!IsSufficientSpace(playerid, "Knife"))
  37322. {
  37323. SendErrorMessage(playerid, "There is no more room in your inventory.");
  37324. }
  37325. else
  37326. {
  37327. AddItemToInventory(playerid, "Knife");
  37328. SendInfoMessage(playerid, "You have received a Knife for 150 materials.");
  37329. RemoveItemValue(playerid, item, 150);
  37330. SetReloadAnimation(playerid, 24);
  37331. }
  37332. }
  37333. }
  37334. }
  37335. return 1;
  37336. }
  37337. Dialog:GoodsType(playerid, response, listitem, inputtext[])
  37338. {
  37339. if (response)
  37340. {
  37341. if (listitem == 0) {
  37342. Players[playerid][pGoods] = COMPANY_STORE;
  37343. } else if (listitem == 1) {
  37344. Players[playerid][pGoods] = COMPANY_CLOTHES;
  37345. } else if (listitem == 2) {
  37346. Players[playerid][pGoods] = COMPANY_RESTAURANT;
  37347. } else if (listitem == 3) {
  37348. Players[playerid][pGoods] = COMPANY_PHONE;
  37349. } else if (listitem == 4) {
  37350. Players[playerid][pGoods] = COMPANY_GYM;
  37351. } else if (listitem == 5) {
  37352. Players[playerid][pGoods] = COMPANY_AMMO;
  37353. } else if (listitem == 6) {
  37354. Players[playerid][pGoods] = COMPANY_BAR;
  37355. }
  37356. ApplyAnimation(playerid, "CARRY", "liftup", 4.1, 0, 0, 0, 0, 0, 1);
  37357. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY);
  37358. SetPlayerAttachedObject(playerid, ATTACHED_SLOT_MISC, 1220, 5, 0.184000, 0.330999, 0.112999, -84.099983, -9.500001, 20.700000);
  37359. SendInfoMessage(playerid, "You have selected '%s'. Press Y near the truck to load the box.", inputtext);
  37360. Players[playerid][pWorking] = 1;
  37361. }
  37362. return 1;
  37363. }
  37364. Dialog:SetupConfirm(playerid, response, listitem, inputtext[])
  37365. {
  37366. if (response)
  37367. {
  37368. Players[playerid][pSetupInfo] = 1;
  37369. ApplyAnimation(playerid, "FREEWEIGHTS", "gym_free_celebrate", 4.0, 0, 0, 0, 0, 0, 1);
  37370. PlayerPlaySound(playerid, 1058, 0.0, 0.0, 0.0);
  37371. SendInfoMessage(playerid, "You have completed character setup! Your character will spawn in a moment.");
  37372. SetTimerEx("SetupConfirmed", 3000, false, "i", playerid);
  37373. }
  37374. return 1;
  37375. }
  37376. Dialog:TrashbinMenu(playerid, response, listitem, inputtext[])
  37377. {
  37378. new
  37379. trashbin = Players[playerid][pTrashbin];
  37380. if (!IsValidTrashbinID(trashbin))
  37381. {
  37382. return 0;
  37383. }
  37384. if (response)
  37385. {
  37386. if (listitem == 0)
  37387. {
  37388. new success = DisplayInventory(playerid);
  37389. if (!success)
  37390. {
  37391. SendErrorMessage(playerid, "You don't have any items in your inventory.");
  37392. }
  37393. else
  37394. {
  37395. Players[playerid][pChoose] = CHOOSE_TYPE_TRASH;
  37396. SendInfoMessage(playerid, "Choose an item to add to the trashbin.");
  37397. }
  37398. }
  37399. else
  37400. {
  37401. new
  37402. item = gListedItems[playerid][--listitem];
  37403. if (StoredItems[item][stExists])
  37404. {
  37405. Players[playerid][pSelected] = item;
  37406. if (GetItemInformation(StoredItems[item][stName], ITEM_INFO_STACKABLE))
  37407. {
  37408. Dialog_Show(playerid, TrashAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Take Amount", "Item: %s\nAmount: %i\n\nPlease input the amount you want to withdraw:", "Submit", "Back", GetStoredItemName(item), StoredItems[item][stValue]);
  37409. }
  37410. else
  37411. {
  37412. Dialog_Show(playerid, TrashTake, DIALOG_STYLE_MSGBOX, "{FFFFFF}Item information", "Item: %s\nWeight: %i\n\nAre you sure you want to take this item?", "Yes", "No", GetStoredItemName(item), GetItemInformation(StoredItems[item][stName], ITEM_INFO_WEIGHT));
  37413. }
  37414. }
  37415. else
  37416. {
  37417. SendErrorMessage(playerid, "Sorry! Someone else has taken this item.");
  37418. }
  37419. }
  37420. }
  37421. return 1;
  37422. }
  37423. Dialog:TrashAmount(playerid, response, listitem, inputtext[])
  37424. {
  37425. new
  37426. trashbin = Players[playerid][pTrashbin];
  37427. if (!IsValidTrashbinID(trashbin))
  37428. {
  37429. return 0;
  37430. }
  37431. if (response)
  37432. {
  37433. new
  37434. item = Players[playerid][pSelected];
  37435. if (StoredItems[item][stExists])
  37436. {
  37437. new amount, name[MAX_ITEM_NAME];
  37438. strunpack(name, StoredItems[item][stName]);
  37439. if (sscanf(inputtext, "i", amount))
  37440. {
  37441. return Dialog_Show(playerid, TrashAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Take Amount", "Item: %s\nAmount: %i\n\nPlease input the amount you want to withdraw:", "Submit", "Back", GetStoredItemName(item), StoredItems[item][stValue]);
  37442. }
  37443. else if (amount < 1 || amount > StoredItems[item][stValue])
  37444. {
  37445. return Dialog_Show(playerid, TrashAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Take Amount", "There isn't that much of this item.\n\nItem: %s\nAmount: %i\n\nPlease input the amount you want to withdraw:", "Submit", "Back", GetStoredItemName(item), StoredItems[item][stValue]);
  37446. }
  37447. else
  37448. {
  37449. new id = AddItemToInventory(playerid, name, amount);
  37450. if (id == INVALID_ID)
  37451. {
  37452. SendErrorMessage(playerid, "There is no more room in the trashbin.");
  37453. }
  37454. else
  37455. {
  37456. if (amount < StoredItems[item][stValue])
  37457. {
  37458. format(gExecute, sizeof(gExecute), "UPDATE rp_items SET itemValue = itemValue - %i WHERE itemID = %i", amount, StoredItems[item][stID]);
  37459. StoredItems[item][stValue] -= amount;
  37460. }
  37461. else
  37462. {
  37463. format(gExecute, sizeof(gExecute), "DELETE FROM rp_items WHERE itemID = %i", StoredItems[item][stID]);
  37464. StoredItems[item][stExists] = 0;
  37465. }
  37466. mysql_tquery(gConnection, gExecute);
  37467. ShowTrashbinItems(playerid, trashbin);
  37468. SendInfoMessage(playerid, "You have withdrawn %s (%i) from the trashbin.", name, amount);
  37469. }
  37470. }
  37471. }
  37472. }
  37473. else
  37474. {
  37475. ShowTrashbinItems(playerid, trashbin);
  37476. }
  37477. return 1;
  37478. }
  37479. Dialog:TrashTake(playerid, response, listitem, inputtext[])
  37480. {
  37481. new
  37482. trashbin = Players[playerid][pTrashbin];
  37483. if (!IsValidTrashbinID(trashbin))
  37484. {
  37485. return 0;
  37486. }
  37487. if (response)
  37488. {
  37489. new
  37490. item = Players[playerid][pSelected];
  37491. if (StoredItems[item][stExists])
  37492. {
  37493. new
  37494. id = RetrieveItem(playerid, TRANSFER_FROM_TRASH, item);
  37495. if (id == INVALID_ID)
  37496. {
  37497. return SendErrorMessage(playerid, "There is no more room in your inventory.");
  37498. }
  37499. else
  37500. {
  37501. format(gExecute, sizeof(gExecute), "INSERT INTO rp_itemlogs (Player, Item, Action, Date) VALUES('%s', '%s', 'Taken from Trashbin', NOW())", ReturnName(playerid), GetFullItemName(playerid, id));
  37502. mysql_tquery(gConnection, gExecute);
  37503. StoredItems[item][stExists] = 0;
  37504. ShowActionBubble(playerid, "* %s takes an item from the trashbin.", ReturnNameEx(playerid));
  37505. SendInfoMessage(playerid, "You have taken an item: %s.", GetFullItemName(playerid, id));
  37506. ShowTrashbinItems(playerid, trashbin);
  37507. /*format(gExecute, sizeof(gExecute), "DELETE FROM rp_items WHERE itemID = %i", StoredItems[item][stID]);
  37508. mysql_tquery(gConnection, gExecute);*/
  37509. }
  37510. }
  37511. }
  37512. else
  37513. {
  37514. ShowTrashbinItems(playerid, trashbin);
  37515. }
  37516. return 1;
  37517. }
  37518. Dialog:DespawnVehicle(playerid, response, listitem, inputtext[])
  37519. {
  37520. if (response)
  37521. {
  37522. listitem = gListedItems[playerid][listitem];
  37523. if (!IsValidVehicleID(listitem) || !IsVehicleOwner(playerid, listitem) || Vehicles[listitem][vDespawned]) {
  37524. return 0;
  37525. }
  37526. if (Vehicles[listitem][vImpound] > 0) {
  37527. return SendErrorMessage(playerid, "You cannot despawn an impounded vehicle.");
  37528. }
  37529. if (GetVehicleDriver(Vehicles[listitem][vVehicle]) != INVALID_PLAYER_ID) {
  37530. return SendErrorMessage(playerid, "The vehicle is occupied and you may not despawn it.");
  37531. }
  37532. if (GetVehicleHealthEx(Vehicles[listitem][vVehicle]) < 800.0) {
  37533. return SendErrorMessage(playerid, "The vehicle needs to be repaired before it can be despawned.");
  37534. }
  37535. for (new i = 1; i < MAX_VEHICLES; i ++) {
  37536. if (GetVehicleModel(i) == 525 && GetVehicleTrailer(i) == Vehicles[listitem][vVehicle]) {
  37537. return SendErrorMessage(playerid, "The vehicle is currently being towed.");
  37538. }
  37539. }
  37540. ClearVehicleObjects(Vehicles[listitem][vVehicle]);
  37541. DestroyVehicleEx(Vehicles[listitem][vVehicle]);
  37542. SendInfoMessage(playerid, "{CFCFCF}You have despawned your {33AA33}%s (%s).{CFCFCF} Use {33AA33}'/v spawn'{CFCFCF} to spawn it.", GetVehicleModelName(Vehicles[listitem][vModel]), Vehicles[listitem][vPlate]);
  37543. Vehicles[listitem][vVehicle] = INVALID_VEHICLE_ID;
  37544. Vehicles[listitem][vDespawned] = 1;
  37545. SaveVehicle(listitem);
  37546. }
  37547. return 1;
  37548. }
  37549. Dialog:SpawnVehicle(playerid, response, listitem, inputtext[])
  37550. {
  37551. if (response)
  37552. {
  37553. listitem = gListedItems[playerid][listitem];
  37554. if (!IsValidVehicleID(listitem) || !IsVehicleOwner(playerid, listitem) || !Vehicles[listitem][vDespawned]) {
  37555. return 0;
  37556. }
  37557. if (Vehicles[listitem][vImpound] > 0) {
  37558. return SendErrorMessage(playerid, "You cannot spawn an impounded vehicle.");
  37559. }
  37560. new count = 0;
  37561. for (new i = 0; i < MAX_CARS; i ++)
  37562. {
  37563. if (IsValidVehicleID(i) && IsVehicleOwner(playerid, i) && !Vehicles[i][vDespawned])
  37564. {
  37565. count++;
  37566. }
  37567. }
  37568. if (count > GetVehicleSpawnLimit(playerid))
  37569. {
  37570. return SendErrorMessage(playerid, "You can only have two vehicles spawned at one time.");
  37571. }
  37572. Vehicles[listitem][vDespawned] = 0;
  37573. SaveVehicle(listitem);
  37574. UpdateVehicle(listitem);
  37575. SendInfoMessage(playerid, "{CFCFCF}You have spawned your {33AA33}%s (%s).{CFCFCF} You can find it at the place you parked it.", GetVehicleModelName(Vehicles[listitem][vModel]), Vehicles[listitem][vPlate]);
  37576. }
  37577. return 1;
  37578. }
  37579. Dialog:FindVehicle(playerid, response, listitem, inputtext[])
  37580. {
  37581. if (response)
  37582. {
  37583. listitem = gListedItems[playerid][listitem];
  37584. if (!IsValidVehicleID(listitem) || !IsVehicleOwner(playerid, listitem)) {
  37585. return 0;
  37586. }
  37587. if (Vehicles[listitem][vImpound] > 0)
  37588. {
  37589. return SendErrorMessage(playerid, "You can't track an impounded vehicle.");
  37590. }
  37591. else if (Vehicles[listitem][vDespawned])
  37592. {
  37593. return SendErrorMessage(playerid, "You can't track a despawned vehicle.");
  37594. }
  37595. else
  37596. {
  37597. new Float:x, Float:y, Float:z;
  37598. GetVehiclePos(Vehicles[listitem][vVehicle], x, y, z);
  37599. SetCheckpoint(playerid, CHECKPOINT_GPS, x, y, z, 3.0);
  37600. SendInfoMessage(playerid, "GPS: A waypoint has been set to the vehicle's last known location.");
  37601. }
  37602. }
  37603. return 1;
  37604. }
  37605. Dialog:ReleaseCar(playerid, response, listitem, inputtext[])
  37606. {
  37607. if (response)
  37608. {
  37609. listitem = gListedItems[playerid][listitem];
  37610. if (!IsValidVehicleID(listitem) || !IsVehicleOwner(playerid, listitem) || !Vehicles[listitem][vImpound]) {
  37611. return 0;
  37612. }
  37613. if (!PlayerCanAfford(playerid, Vehicles[listitem][vImpound]))
  37614. {
  37615. return SendErrorMessage(playerid, "You can't afford to release this vehicle.");
  37616. }
  37617. else
  37618. {
  37619. RemoveMoney(playerid, Vehicles[listitem][vImpound]);
  37620. SendInfoMessage(playerid, "You have paid {33CC33}%s{FFFFFF} to release your %s (%s).", FormatNumber(Vehicles[listitem][vImpound]), GetVehicleModelName(Vehicles[listitem][vModel]), Vehicles[listitem][vPlate]);
  37621. Vehicles[listitem][vImpound] = 0;
  37622. UpdateVehicle(listitem);
  37623. SaveVehicle(listitem);
  37624. }
  37625. }
  37626. return 1;
  37627. }
  37628. Dialog:SetBank(playerid, response, listitem, inputtext[])
  37629. {
  37630. new
  37631. targetid = Players[playerid][pSetBank];
  37632. if (response)
  37633. {
  37634. listitem = gListedItems[playerid][listitem];
  37635. if (!IsPlayerConnected(Players[playerid][pSetBank]) || !BankAccounts[Players[playerid][pSetBank]][listitem][bankExists])
  37636. {
  37637. return 0;
  37638. }
  37639. else
  37640. {
  37641. Players[playerid][pSelected] = listitem;
  37642. Dialog_Show(playerid, BankAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Set Bank Balance", "The current balance for '%s' is %s.\n\nPlease input the amount of money to set as the balance:", "Submit", "Cancel", BankAccounts[targetid][listitem][bankName], FormatNumber(BankAccounts[targetid][listitem][bankBalance]));
  37643. }
  37644. }
  37645. return 1;
  37646. }
  37647. Dialog:BankAmount(playerid, response, listitem, inputtext[])
  37648. {
  37649. new
  37650. targetid = Players[playerid][pSetBank];
  37651. listitem = Players[playerid][pSelected];
  37652. if (!IsPlayerConnected(targetid) || !BankAccounts[targetid][listitem][bankExists])
  37653. {
  37654. return 0;
  37655. }
  37656. if (response)
  37657. {
  37658. new amount;
  37659. if (sscanf(inputtext, "i", amount))
  37660. {
  37661. return Dialog_Show(playerid, BankAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Set Bank Balance", "The current balance for '%s' is %s.\n\nPlease input the amount of money to set as the balance:", "Submit", "Cancel", BankAccounts[targetid][listitem][bankName], FormatNumber(BankAccounts[targetid][listitem][bankBalance]));
  37662. }
  37663. else
  37664. {
  37665. BankAccounts[targetid][listitem][bankBalance] = amount;
  37666. SaveBankAccount(targetid, listitem);
  37667. SendInfoMessage(playerid, "You have set the balance of %s's bank account (%s) to %s.", ReturnNameEx(targetid, 0), BankAccounts[targetid][listitem][bankName], FormatNumber(amount));
  37668. SendAdminMessage(COLOR_RED, "Admin: %s has set %s's bank account (%s) balance to %s.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), BankAccounts[targetid][listitem][bankName], FormatNumber(amount));
  37669. }
  37670. }
  37671. return 1;
  37672. }
  37673. Dialog:ShowGuns(playerid, response, listitem, inputtext[])
  37674. {
  37675. if (response)
  37676. {
  37677. format(gExecute, sizeof(gExecute), "SELECT gunType, gunQuantity FROM rp_crateguns WHERE gunID = %i", gListedItems[playerid][listitem]);
  37678. mysql_tquery(gConnection, gExecute, "OnPlayerTakeGun", "ii", playerid, gListedItems[playerid][listitem]);
  37679. }
  37680. return 1;
  37681. }
  37682. Dialog:OrderWeapons(playerid, response, listitem, inputtext[])
  37683. {
  37684. if (response)
  37685. {
  37686. switch (listitem)
  37687. {
  37688. case 0:
  37689. {
  37690. if (!PlayerCanAfford(playerid, 2500))
  37691. {
  37692. return SendErrorMessage(playerid, "You have insufficient funds for the purchase.");
  37693. }
  37694. else if (!Factions[Players[playerid][pFaction]][fcWeaponRights][0])
  37695. {
  37696. return SendErrorMessage(playerid, "This package is not available for your faction.");
  37697. }
  37698. else
  37699. {
  37700. RemoveMoney(playerid, 2500);
  37701. Players[playerid][pPackageOrder] = PACKAGE_TYPE_MELEE;
  37702. Players[playerid][pPackageType] = PACKAGE_TYPE_NONE;
  37703. Players[playerid][pPackageTime] = gettime() + 5;
  37704. SetTimerEx("PackageReady", 5000, false, "iiii", playerid, Players[playerid][pFaction], Players[playerid][pPackageOrder], GetPackagePrice(Players[playerid][pPackageOrder]));
  37705. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Unknown says: Alright, I'll gather up the stuff. We'll keep in touch.");
  37706. SendAdminMessage(COLOR_RED, "Admin: %s has ordered a package (Melee Package).", ReturnNameEx(playerid, 0));
  37707. }
  37708. }
  37709. case 1:
  37710. {
  37711. if (!PlayerCanAfford(playerid, 3700))
  37712. {
  37713. return SendErrorMessage(playerid, "You have insufficient funds for the purchase.");
  37714. }
  37715. else if (!Factions[Players[playerid][pFaction]][fcWeaponRights][1])
  37716. {
  37717. return SendErrorMessage(playerid, "This package is not available for your faction.");
  37718. }
  37719. else
  37720. {
  37721. RemoveMoney(playerid, 3700);
  37722. Players[playerid][pPackageOrder] = PACKAGE_TYPE_PISTOLS;
  37723. Players[playerid][pPackageType] = PACKAGE_TYPE_NONE;
  37724. Players[playerid][pPackageTime] = gettime() + 5;
  37725. SetTimerEx("PackageReady", 5000, false, "iiii", playerid, Players[playerid][pFaction], Players[playerid][pPackageOrder], GetPackagePrice(Players[playerid][pPackageOrder]));
  37726. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Unknown says: Alright, I'll gather up the stuff. We'll keep in touch.");
  37727. SendAdminMessage(COLOR_RED, "Admin: %s has ordered a package (Pistol Package).", ReturnNameEx(playerid, 0));
  37728. }
  37729. }
  37730. case 2:
  37731. {
  37732. if (!PlayerCanAfford(playerid, 8450))
  37733. {
  37734. return SendErrorMessage(playerid, "You have insufficient funds for the purchase.");
  37735. }
  37736. else if (!Factions[Players[playerid][pFaction]][fcWeaponRights][2])
  37737. {
  37738. return SendErrorMessage(playerid, "This package is not available for your faction.");
  37739. }
  37740. else
  37741. {
  37742. RemoveMoney(playerid, 8450);
  37743. Players[playerid][pPackageOrder] = PACKAGE_TYPE_SHOTGUNS;
  37744. Players[playerid][pPackageType] = PACKAGE_TYPE_NONE;
  37745. Players[playerid][pPackageTime] = gettime() + 5;
  37746. SetTimerEx("PackageReady", 5000, false, "iiii", playerid, Players[playerid][pFaction], Players[playerid][pPackageOrder], GetPackagePrice(Players[playerid][pPackageOrder]));
  37747. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Unknown says: Alright, I'll gather up the stuff. We'll keep in touch.");
  37748. SendAdminMessage(COLOR_RED, "Admin: %s has ordered a package (Shotgun Package).", ReturnNameEx(playerid, 0));
  37749. }
  37750. }
  37751. case 3:
  37752. {
  37753. if (!PlayerCanAfford(playerid, 12300))
  37754. {
  37755. return SendErrorMessage(playerid, "You have insufficient funds for the purchase.");
  37756. }
  37757. else if (!Factions[Players[playerid][pFaction]][fcWeaponRights][3])
  37758. {
  37759. return SendErrorMessage(playerid, "This package is not available for your faction.");
  37760. }
  37761. else
  37762. {
  37763. RemoveMoney(playerid, 12300);
  37764. Players[playerid][pPackageOrder] = PACKAGE_TYPE_SMGS;
  37765. Players[playerid][pPackageType] = PACKAGE_TYPE_NONE;
  37766. Players[playerid][pPackageTime] = gettime() + 5;
  37767. SetTimerEx("PackageReady", 5000, false, "iiii", playerid, Players[playerid][pFaction], Players[playerid][pPackageOrder], GetPackagePrice(Players[playerid][pPackageOrder]));
  37768. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Unknown says: Alright, I'll gather up the stuff. We'll keep in touch.");
  37769. SendAdminMessage(COLOR_RED, "Admin: %s has ordered a package (SMG Package).", ReturnNameEx(playerid, 0));
  37770. }
  37771. }
  37772. case 4:
  37773. {
  37774. if (!PlayerCanAfford(playerid, 15750))
  37775. {
  37776. return SendErrorMessage(playerid, "You have insufficient funds for the purchase.");
  37777. }
  37778. else if (!Factions[Players[playerid][pFaction]][fcWeaponRights][4])
  37779. {
  37780. return SendErrorMessage(playerid, "This package is not available for your faction.");
  37781. }
  37782. else
  37783. {
  37784. RemoveMoney(playerid, 15750);
  37785. Players[playerid][pPackageOrder] = PACKAGE_TYPE_RIFLES;
  37786. Players[playerid][pPackageType] = PACKAGE_TYPE_NONE;
  37787. Players[playerid][pPackageTime] = gettime() + 5;
  37788. SetTimerEx("PackageReady", 5000, false, "iiii", playerid, Players[playerid][pFaction], Players[playerid][pPackageOrder], GetPackagePrice(Players[playerid][pPackageOrder]));
  37789. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Unknown says: Alright, I'll gather up the stuff. We'll keep in touch.");
  37790. SendAdminMessage(COLOR_RED, "Admin: %s has ordered a package (Rifle Package).", ReturnNameEx(playerid, 0));
  37791. }
  37792. }
  37793. }
  37794. }
  37795. else
  37796. {
  37797. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Unknown says: Call back if you want to order something.");
  37798. }
  37799. return 1;
  37800. }
  37801. Dialog:OrderDrugs(playerid, response, listitem, inputtext[])
  37802. {
  37803. if (response)
  37804. {
  37805. switch (listitem)
  37806. {
  37807. case 0:
  37808. {
  37809. if (!PlayerCanAfford(playerid, 4530))
  37810. {
  37811. return SendErrorMessage(playerid, "You have insufficient funds for the purchase.");
  37812. }
  37813. else
  37814. {
  37815. RemoveMoney(playerid, 4530);
  37816. Players[playerid][pPackageOrder] = PACKAGE_TYPE_MARIJUANA;
  37817. Players[playerid][pPackageGrams] = 20;
  37818. Players[playerid][pPackageTime] = gettime() + 5;
  37819. SetTimerEx("PackageReady", 5000, false, "iiii", playerid, Players[playerid][pFaction], Players[playerid][pPackageOrder], GetPackagePrice(Players[playerid][pPackageOrder]));
  37820. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Unknown says: Alright, I'll gather up the stuff. We'll keep in touch.");
  37821. SendAdminMessage(COLOR_RED, "Admin: %s has ordered a package (Marijuana Package).", ReturnNameEx(playerid, 0));
  37822. }
  37823. }
  37824. case 1:
  37825. {
  37826. if (!PlayerCanAfford(playerid, 8500))
  37827. {
  37828. return SendErrorMessage(playerid, "You have insufficient funds for the purchase.");
  37829. }
  37830. else
  37831. {
  37832. RemoveMoney(playerid, 8500);
  37833. Players[playerid][pPackageOrder] = PACKAGE_TYPE_COCAINE;
  37834. Players[playerid][pPackageGrams] = 20;
  37835. Players[playerid][pPackageTime] = gettime() + 5;
  37836. SetTimerEx("PackageReady", 5000, false, "iiii", playerid, Players[playerid][pFaction], Players[playerid][pPackageOrder], GetPackagePrice(Players[playerid][pPackageOrder]));
  37837. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Unknown says: Alright, I'll gather up the stuff. We'll keep in touch.");
  37838. SendAdminMessage(COLOR_RED, "Admin: %s has ordered a package (Cocaine Package).", ReturnNameEx(playerid, 0));
  37839. }
  37840. }
  37841. case 2:
  37842. {
  37843. if (!PlayerCanAfford(playerid, 8300))
  37844. {
  37845. return SendErrorMessage(playerid, "You have insufficient funds for the purchase.");
  37846. }
  37847. else
  37848. {
  37849. RemoveMoney(playerid, 8300);
  37850. Players[playerid][pPackageOrder] = PACKAGE_TYPE_HEROIN;
  37851. Players[playerid][pPackageGrams] = 20;
  37852. Players[playerid][pPackageTime] = gettime() + 5;
  37853. SetTimerEx("PackageReady", 5000, false, "iiii", playerid, Players[playerid][pFaction], Players[playerid][pPackageOrder], GetPackagePrice(Players[playerid][pPackageOrder]));
  37854. SendAdminMessage(COLOR_RED, "Admin: %s has ordered a package (Heroin Package).", ReturnNameEx(playerid, 0));
  37855. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Unknown says: Alright, I'll gather up the stuff. We'll keep in touch.");
  37856. }
  37857. }
  37858. }
  37859. }
  37860. else
  37861. {
  37862. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Unknown says: Call back if you want to order something.");
  37863. }
  37864. return 1;
  37865. }
  37866. Dialog:OrderPackage(playerid, response, listitem, inputtext[])
  37867. {
  37868. if (response)
  37869. {
  37870. switch (listitem)
  37871. {
  37872. case 0:
  37873. {
  37874. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Unknown says: What type of weapon package would you like to order?");
  37875. Dialog_Show(playerid, OrderWeapons, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Order Weapons", "Type\tPrice\nMelee Package\t%s\nPistol Package\t%s\nShotgun Package\t%s\nSMG Package\t%s\nRifle Package\t%s", "Order", "Cancel", GetFactionWeaponRights(Players[playerid][pFaction], 0), GetFactionWeaponRights(Players[playerid][pFaction], 1), GetFactionWeaponRights(Players[playerid][pFaction], 2), GetFactionWeaponRights(Players[playerid][pFaction], 3), GetFactionWeaponRights(Players[playerid][pFaction], 4));
  37876. }
  37877. case 1:
  37878. {
  37879. if (!Factions[Players[playerid][pFaction]][fcDrugRights])
  37880. {
  37881. SendErrorMessage(playerid, "Your faction is not authorized to do this.");
  37882. }
  37883. else
  37884. {
  37885. SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Unknown says: What type of drugs would you like to order?");
  37886. Dialog_Show(playerid, OrderDrugs, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Order Drugs", "Type\tGrams\tPrice\nMarijuana\t200g\t$2,000\nCocaine\t200g\t$4,000\nHeroin\t200g\t$6,000", "Order", "Cancel");
  37887. }
  37888. }
  37889. }
  37890. }
  37891. return 1;
  37892. }
  37893. Dialog:ShowFAQ(playerid, response, listitem, inputtext[])
  37894. {
  37895. if (response)
  37896. {
  37897. ShowFAQMenu(playerid);
  37898. }
  37899. return 1;
  37900. }
  37901. Dialog:OpenGate(playerid, response, listitem, inputtext[])
  37902. {
  37903. new gate = GetClosestGate(playerid);
  37904. if (!IsValidGateID(gate))
  37905. {
  37906. return 0;
  37907. }
  37908. if (response)
  37909. {
  37910. if (isnull(inputtext))
  37911. {
  37912. return Dialog_Show(playerid, OpenGate, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Password", "Please input the password of this gate:", "Submit", "Cancel");
  37913. }
  37914. else if (strcmp(Gates[gate][gPassword], inputtext) != 0)
  37915. {
  37916. return Dialog_Show(playerid, OpenGate, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Password", "You have specified the incorrect password.\n\nPlease input the password of this gate:", "Submit", "Cancel");
  37917. }
  37918. else
  37919. {
  37920. OpenGate(playerid, gate);
  37921. }
  37922. }
  37923. return 1;
  37924. }
  37925. Dialog:ChangePlate(playerid, response, listitem, inputtext[])
  37926. {
  37927. new id = GetVehicleID(GetPlayerVehicleID(playerid));
  37928. if (id == INVALID_ID)
  37929. {
  37930. return 0;
  37931. }
  37932. if (response)
  37933. {
  37934. if (isnull(inputtext))
  37935. {
  37936. return Dialog_Show(playerid, ChangePlate, DIALOG_STYLE_INPUT, "{FFFFFF}Change Plate", "Please input the plate text below. The text must not exceed 12 characters.", "Submit", "Cancel");
  37937. }
  37938. else if (strlen(inputtext) > 12)
  37939. {
  37940. return Dialog_Show(playerid, ChangePlate, DIALOG_STYLE_INPUT, "{FFFFFF}Change Plate", "The text can't contain more than 12 characters.\n\nPlease input the plate text below. The text must not exceed 12 characters.", "Submit", "Cancel");
  37941. }
  37942. else
  37943. {
  37944. format(gExecute, sizeof(gExecute), "SELECT vPlate FROM rp_vehicles WHERE vPlate = '%s'", mysql_escaped(inputtext));
  37945. mysql_tquery(gConnection, gExecute, "OnPlayerCheckPlate", "is", playerid, inputtext);
  37946. }
  37947. }
  37948. return 1;
  37949. }
  37950. Dialog:AdminName(playerid, response, listitem, inputtext[])
  37951. {
  37952. if (!Players[playerid][pAdmin])
  37953. {
  37954. return 0;
  37955. }
  37956. if (response)
  37957. {
  37958. if (isnull(inputtext))
  37959. {
  37960. return Dialog_Show(playerid, AdminName, DIALOG_STYLE_INPUT, "{FFFFFF}Admin Name", "Please input the admin name that you wish to use:", "Submit", "Cancel");
  37961. }
  37962. else if (strlen(inputtext) > 24)
  37963. {
  37964. return Dialog_Show(playerid, AdminName, DIALOG_STYLE_INPUT, "{FFFFFF}Admin Name", "Your admin name can't be above 24 characters.\n\nPlease input the admin name that you wish to use:", "Submit", "Cancel");
  37965. }
  37966. else if (!IsValidName(inputtext, false))
  37967. {
  37968. return Dialog_Show(playerid, AdminName, DIALOG_STYLE_INPUT, "{FFFFFF}Admin Name", "There are invalid characters in your name.\n\nPlease input the admin name that you wish to use:", "Submit", "Cancel");
  37969. }
  37970. else
  37971. {
  37972. if (!strcmp(inputtext, "none", true))
  37973. {
  37974. strcpy(Players[playerid][pAdminName], "None", 24);
  37975. SaveAccount(playerid);
  37976. SendInfoMessage(playerid, "You have reset your admin name.");
  37977. }
  37978. else
  37979. {
  37980. format(gExecute, sizeof(gExecute), "SELECT AdminName FROM rp_accounts WHERE Admin > 0 AND AdminName = '%s'", mysql_escaped(inputtext));
  37981. mysql_tquery(gConnection, gExecute, "OnPlayerCheckAdminName", "is", playerid, inputtext);
  37982. }
  37983. }
  37984. }
  37985. return 1;
  37986. }
  37987. Dialog:WeaponRights(playerid, response, listitem, inputtext[])
  37988. {
  37989. new
  37990. faction = Players[playerid][pSelected];
  37991. if (!IsValidFactionID(faction))
  37992. {
  37993. return 0;
  37994. }
  37995. if (response)
  37996. {
  37997. Factions[faction][fcWeaponRights][listitem] = !Factions[faction][fcWeaponRights][listitem];
  37998. SaveFaction(faction);
  37999. ShowWeaponRights(playerid, faction);
  38000. if (Factions[faction][fcWeaponRights][listitem])
  38001. {
  38002. switch (listitem)
  38003. {
  38004. case 0:
  38005. {
  38006. SendInfoMessage(playerid, "You have granted this faction permission to order melee packages.");
  38007. }
  38008. case 1:
  38009. {
  38010. SendInfoMessage(playerid, "You have granted this faction permission to order pistol packages.");
  38011. }
  38012. case 2:
  38013. {
  38014. SendInfoMessage(playerid, "You have granted this faction permission to order shotgun packages.");
  38015. }
  38016. case 3:
  38017. {
  38018. SendInfoMessage(playerid, "You have granted this faction permission to order SMG packages.");
  38019. }
  38020. case 4:
  38021. {
  38022. SendInfoMessage(playerid, "You have granted this faction permission to order rifle packages.");
  38023. }
  38024. }
  38025. }
  38026. else
  38027. {
  38028. switch (listitem)
  38029. {
  38030. case 0:
  38031. {
  38032. SendInfoMessage(playerid, "You have revoked this faction's permission to order melee packages.");
  38033. }
  38034. case 1:
  38035. {
  38036. SendInfoMessage(playerid, "You have revoked this faction's permission to order pistol packages.");
  38037. }
  38038. case 2:
  38039. {
  38040. SendInfoMessage(playerid, "You have revoked this faction's permission to order shotgun packages.");
  38041. }
  38042. case 3:
  38043. {
  38044. SendInfoMessage(playerid, "You have revoked this faction's permission to order SMG packages.");
  38045. }
  38046. case 4:
  38047. {
  38048. SendInfoMessage(playerid, "You have revoked this faction's permission to order rifle packages.");
  38049. }
  38050. }
  38051. }
  38052. }
  38053. else
  38054. {
  38055. ShowFactionRights(playerid, faction);
  38056. }
  38057. return 1;
  38058. }
  38059. Dialog:FactionRights(playerid, response, listitem, inputtext[])
  38060. {
  38061. new
  38062. faction = Players[playerid][pSelected];
  38063. if (!IsValidFactionID(faction))
  38064. {
  38065. return 0;
  38066. }
  38067. if (response)
  38068. {
  38069. switch (listitem)
  38070. {
  38071. case 0:
  38072. {
  38073. ShowWeaponRights(playerid, faction);
  38074. }
  38075. case 1:
  38076. {
  38077. Factions[faction][fcDrugRights] = !Factions[faction][fcDrugRights];
  38078. SaveFaction(faction);
  38079. ShowFactionRights(playerid, faction);
  38080. if (Factions[faction][fcDrugRights])
  38081. {
  38082. SendInfoMessage(playerid, "You have granted drug rights for this faction. This faction can now order drugs.");
  38083. }
  38084. else
  38085. {
  38086. SendInfoMessage(playerid, "You have revoked the drug rights for this faction.");
  38087. }
  38088. }
  38089. case 2:
  38090. {
  38091. Factions[faction][fcSprayRights] = !Factions[faction][fcSprayRights];
  38092. SaveFaction(faction);
  38093. ShowFactionRights(playerid, faction);
  38094. if (Factions[faction][fcSprayRights])
  38095. {
  38096. SendInfoMessage(playerid, "You have granted spray rights for this faction. This faction can now spray tags.");
  38097. }
  38098. else
  38099. {
  38100. SendInfoMessage(playerid, "You have revoked the spray rights for this faction.");
  38101. }
  38102. }
  38103. }
  38104. }
  38105. else
  38106. {
  38107. ShowFactionEditMenu(playerid, faction);
  38108. }
  38109. return 1;
  38110. }
  38111. Dialog:LockerEquipment(playerid, response, listitem, inputtext[])
  38112. {
  38113. if(Players[playerid][pFaction] == INVALID_ID || !IsPlayerInRangeOfPoint(playerid, 5.0, Factions[Players[playerid][pFaction]][fcLockerX], Factions[Players[playerid][pFaction]][fcLockerY], Factions[Players[playerid][pFaction]][fcLockerZ]))
  38114. {
  38115. return 0;
  38116. }
  38117. if(response)
  38118. {
  38119. new count;
  38120. for(new i = 0; i < MAX_FACTION_EQUIPMENT; i ++)
  38121. {
  38122. if(FactionEquipment[Players[playerid][pFaction]][i][fcItemExists] && count++ == listitem)
  38123. {
  38124. if(!IsSufficientSpace(playerid, FactionEquipment[Players[playerid][pFaction]][i][fcItemName]))
  38125. {
  38126. SendErrorMessage(playerid, "There is no more room in your inventory.");
  38127. }
  38128. else
  38129. {
  38130. if(IsItemWeapon(FactionEquipment[Players[playerid][pFaction]][i][fcItemName]))
  38131. {
  38132. new serial = Random(10000, 99999);
  38133. new fac[32];
  38134. format(fac, sizeof(fac), "%s Armory", GetInitials(GetPlayerFactionName(playerid)));
  38135. AddSerialToRegistry(serial, FactionEquipment[Players[playerid][pFaction]][i][fcItemName], ReturnName(playerid), fac);
  38136. AddItemToInventory(playerid, FactionEquipment[Players[playerid][pFaction]][i][fcItemName], FactionEquipment[Players[playerid][pFaction]][i][fcItemValue], serial);
  38137. }
  38138. else
  38139. {
  38140. AddItemToInventory(playerid, FactionEquipment[Players[playerid][pFaction]][i][fcItemName], FactionEquipment[Players[playerid][pFaction]][i][fcItemValue]);
  38141. }
  38142. ShowLockerEquipmentMenu(playerid);
  38143. if(FactionEquipment[Players[playerid][pFaction]][i][fcItemValue] > 0)
  38144. SendInfoMessage(playerid, "You have received a %s (%i) from the armory.", FactionEquipment[Players[playerid][pFaction]][i][fcItemName], FactionEquipment[Players[playerid][pFaction]][i][fcItemValue]);
  38145. else
  38146. SendInfoMessage(playerid, "You have received a %s from the armory.", FactionEquipment[Players[playerid][pFaction]][i][fcItemName]);
  38147. break;
  38148. }
  38149. }
  38150. }
  38151. }
  38152. else
  38153. {
  38154. ShowLockerMenu(playerid);
  38155. }
  38156. return 1;
  38157. }
  38158. Dialog:LockerAccessories(playerid, response, listitem, inputtext[])
  38159. {
  38160. if(Players[playerid][pFaction] == INVALID_ID || !IsPlayerInRangeOfPoint(playerid, 5.0, Factions[Players[playerid][pFaction]][fcLockerX], Factions[Players[playerid][pFaction]][fcLockerY], Factions[Players[playerid][pFaction]][fcLockerZ]))
  38161. {
  38162. return 0;
  38163. }
  38164. if(response)
  38165. {
  38166. new count;
  38167. for(new i = 0; i < MAX_FACTION_ACCESSORIES; i ++)
  38168. {
  38169. if(FactionAccessories[Players[playerid][pFaction]][i][fcAccessoryExists] && count++ == listitem)
  38170. {
  38171. new id = AddAccessory(playerid, FactionAccessories[Players[playerid][pFaction]][i][fcAccessoryName], FactionAccessories[Players[playerid][pFaction]][i][fcAccessoryModel], FactionAccessories[Players[playerid][pFaction]][i][fcAccessoryBone], 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0);
  38172. if(id == INVALID_ID)
  38173. {
  38174. SendErrorMessage(playerid, "Your accessory slots are full! (/accessories)");
  38175. }
  38176. else
  38177. {
  38178. SendInfoMessage(playerid, "You have taken %s from the armory. (/accessories)", FactionAccessories[Players[playerid][pFaction]][i][fcAccessoryName]);
  38179. }
  38180. ShowLockerAccessoryMenu(playerid);
  38181. break;
  38182. }
  38183. }
  38184. }
  38185. else
  38186. {
  38187. ShowLockerMenu(playerid);
  38188. }
  38189. return 1;
  38190. }
  38191. Dialog:LockerUniform(playerid, response, listitem, inputtext[])
  38192. {
  38193. if (Players[playerid][pFaction] == INVALID_ID)
  38194. {
  38195. return 0;
  38196. }
  38197. if (response)
  38198. {
  38199. if (GetFirstUniform(Players[playerid][pFaction]) == INVALID_ID)
  38200. {
  38201. SendErrorMessage(playerid, "There are no uniforms setup for this faction.");
  38202. }
  38203. else
  38204. {
  38205. SetupUniformSelection(playerid);
  38206. SendInfoMessage(playerid, "Use the arrow keys to browse between uniforms. Press ENTER to confirm and N to cancel.");
  38207. }
  38208. }
  38209. return 1;
  38210. }
  38211. Dialog:VaultWithdraw(playerid, response, listitem, inputtext[])
  38212. {
  38213. if (!IsPlayerInFaction(playerid, FACTION_GOVERNMENT) && !IsPlayerInBank(playerid))
  38214. {
  38215. return 0;
  38216. }
  38217. if (response)
  38218. {
  38219. new amount;
  38220. if (sscanf(inputtext, "i", amount))
  38221. {
  38222. return Dialog_Show(playerid, VaultWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Vault Withdraw", "There is currently %s in the tax vault.\n\nPlease input the amount of money you would like to withdraw:", "Submit", "Cancel", FormatNumber(Server[TaxVault]));
  38223. }
  38224. else if (amount < 1 || amount > Server[TaxVault])
  38225. {
  38226. return Dialog_Show(playerid, VaultWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Vault Withdraw", "There isn't that much money in the vault.\n\nThere is currently %s in the tax vault.\n\nPlease input the amount of money you would like to withdraw:", "Submit", "Cancel", FormatNumber(Server[TaxVault]));
  38227. }
  38228. else
  38229. {
  38230. Server[TaxVault] -= amount;
  38231. Players[playerid][pPocketMoney] += amount;
  38232. SendInfoMessage(playerid, "You have withdrawn {33CC33}%s{FFFFFF} from the tax vault.", FormatNumber(amount));
  38233. AdminDutyMessage(COLOR_RED, "Admin: %s has withdrawn %s from the tax vault.", ReturnNameEx(playerid, 0), FormatNumber(amount));
  38234. SaveInformation();
  38235. }
  38236. }
  38237. return 1;
  38238. }
  38239. Dialog:VaultDeposit(playerid, response, listitem, inputtext[])
  38240. {
  38241. if (!IsPlayerInFaction(playerid, FACTION_GOVERNMENT) && !IsPlayerInBank(playerid))
  38242. {
  38243. return 0;
  38244. }
  38245. if (response)
  38246. {
  38247. new amount;
  38248. if (sscanf(inputtext, "i", amount))
  38249. {
  38250. return Dialog_Show(playerid, VaultDeposit, DIALOG_STYLE_INPUT, "{FFFFFF}Vault Deposit", "There is currently %s in the tax vault.\n\nPlease input the amount of money you would like to deposit:", "Submit", "Cancel", FormatNumber(Server[TaxVault]));
  38251. }
  38252. else if (amount < 1 || amount > Players[playerid][pPocketMoney])
  38253. {
  38254. return Dialog_Show(playerid, VaultDeposit, DIALOG_STYLE_INPUT, "{FFFFFF}Vault Deposit", "You don't have that much money.\n\nThere is currently %s in the tax vault.\n\nPlease input the amount of money you would like to deposit:", "Submit", "Cancel", FormatNumber(Server[TaxVault]));
  38255. }
  38256. else
  38257. {
  38258. Server[TaxVault] += amount;
  38259. Players[playerid][pPocketMoney] -= amount;
  38260. SendInfoMessage(playerid, "You have deposited {33CC33}%s{FFFFFF} in the tax vault.", FormatNumber(amount));
  38261. AdminDutyMessage(COLOR_RED, "Admin: %s has deposited %s in the tax vault.", ReturnNameEx(playerid, 0), FormatNumber(amount));
  38262. SaveInformation();
  38263. }
  38264. }
  38265. return 1;
  38266. }
  38267. Dialog:GovernmentVault(playerid, response, listitem, inputtext[])
  38268. {
  38269. if (!IsPlayerInFaction(playerid, FACTION_GOVERNMENT) && !IsPlayerInBank(playerid))
  38270. {
  38271. return 0;
  38272. }
  38273. if (response)
  38274. {
  38275. switch (listitem)
  38276. {
  38277. case 0:
  38278. {
  38279. Dialog_Show(playerid, VaultWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Vault Withdraw", "There is currently %s in the tax vault.\n\nPlease input the amount of money you would like to withdraw:", "Submit", "Cancel", FormatNumber(Server[TaxVault]));
  38280. }
  38281. case 1:
  38282. {
  38283. Dialog_Show(playerid, VaultDeposit, DIALOG_STYLE_INPUT, "{FFFFFF}Vault Deposit", "There is currently %s in the tax vault.\n\nPlease input the amount of money you would like to deposit:", "Submit", "Cancel", FormatNumber(Server[TaxVault]));
  38284. }
  38285. }
  38286. }
  38287. return 1;
  38288. }
  38289. Dialog:Undeploy(playerid, response, listitem, inputtext[])
  38290. {
  38291. new id = GetNextDeployID();
  38292. if ((id == INVALID_ID) || (!IsPlayerInFaction(playerid, FACTION_LEO) && !IsPlayerInFaction(playerid, FACTION_MEDICAL)))
  38293. {
  38294. return 0;
  38295. }
  38296. if (response)
  38297. {
  38298. switch (listitem)
  38299. {
  38300. case 0:
  38301. {
  38302. new item = GetClosestDeployedItem(playerid);
  38303. if (item == INVALID_ID)
  38304. {
  38305. SendErrorMessage(playerid, "There is no deployed item nearby.");
  38306. }
  38307. else if (DeployedItems[item][dpFaction] != Players[playerid][pFaction])
  38308. {
  38309. SendErrorMessage(playerid, "You cannot remove items deployed by another faction.");
  38310. }
  38311. else
  38312. {
  38313. DestroyDynamicObject(DeployedItems[item][dpObject]);
  38314. DeployedItems[item][dpExists] = 0;
  38315. SendInfoMessage(playerid, "You have removed the nearest deployed item.");
  38316. }
  38317. }
  38318. case 1:
  38319. {
  38320. for (new i = 0; i < MAX_DEPLOYED_ITEMS; i ++)
  38321. {
  38322. if (DeployedItems[i][dpExists] && DeployedItems[i][dpFaction] == Players[playerid][pFaction])
  38323. {
  38324. DestroyDynamicObject(DeployedItems[i][dpObject]);
  38325. DeployedItems[i][dpExists] = 0;
  38326. }
  38327. }
  38328. SendInfoMessage(playerid, "You have removed all deployed items from your faction.");
  38329. }
  38330. }
  38331. }
  38332. return 1;
  38333. }
  38334. Dialog:Deploy(playerid, response, listitem, inputtext[])
  38335. {
  38336. new id = GetNextDeployID();
  38337. if ((id == INVALID_ID) || (!IsPlayerInFaction(playerid, FACTION_LEO) && !IsPlayerInFaction(playerid, FACTION_MEDICAL)))
  38338. {
  38339. return 0;
  38340. }
  38341. if (response)
  38342. {
  38343. GetPlayerPos(playerid, DeployedItems[id][dpX], DeployedItems[id][dpY], DeployedItems[id][dpZ]);
  38344. GetPlayerFacingAngle(playerid, DeployedItems[id][dpA]);
  38345. DeployedItems[id][dpExists] = 1;
  38346. DeployedItems[id][dpFaction] = Players[playerid][pFaction];
  38347. switch (listitem)
  38348. {
  38349. case 0:
  38350. {
  38351. DeployedItems[id][dpType] = DEPLOY_TYPE_CONE;
  38352. DeployedItems[id][dpObject] = CreateDynamicObject(1238, DeployedItems[id][dpX] + (1.0 * floatsin(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpY] + (1.0 * floatcos(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpZ] - 0.7, 0.0, 0.0, DeployedItems[id][dpA]);
  38353. gPreviewDeploy[playerid] = DeployedItems[id][dpObject];
  38354. gPreviewDeployID[playerid] = id;
  38355. SendInfoMessage(playerid, "You have deployed a traffic cone. Use /undeploy to remove it.");
  38356. AdminDutyMessage(COLOR_RED, "Admin: %s has deployed a traffic cone at %s.", ReturnNameEx(playerid, 0), GetPlayerZoneName(playerid));
  38357. EditDynamicObjectEx(playerid, EDIT_TYPE_DEPLOY, DeployedItems[id][dpObject]);
  38358. }
  38359. case 1:
  38360. {
  38361. DeployedItems[id][dpType] = DEPLOY_TYPE_SPIKES;
  38362. DeployedItems[id][dpObject] = CreateDynamicObject(2899, DeployedItems[id][dpX] + (1.0 * floatsin(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpY] + (1.0 * floatcos(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpZ] - 0.9, 0.0, 0.0, DeployedItems[id][dpA] + 90.0);
  38363. gPreviewDeploy[playerid] = DeployedItems[id][dpObject];
  38364. gPreviewDeployID[playerid] = id;
  38365. SendInfoMessage(playerid, "You have deployed a spike strip. Use /undeploy to remove it.");
  38366. AdminDutyMessage(COLOR_RED, "Admin: %s has deployed a spike strip at %s.", ReturnNameEx(playerid, 0), GetPlayerZoneName(playerid));
  38367. EditDynamicObjectEx(playerid, EDIT_TYPE_DEPLOY, DeployedItems[id][dpObject]);
  38368. }
  38369. case 2:
  38370. {
  38371. DeployedItems[id][dpType] = DEPLOY_TYPE_ROADBLOCK;
  38372. DeployedItems[id][dpObject] = CreateDynamicObject(979, DeployedItems[id][dpX] + (10.0 * floatsin(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpY] + (10.0 * floatcos(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpZ] + 1.0, 0.0, 0.0, DeployedItems[id][dpA] + 180.0);
  38373. gPreviewDeploy[playerid] = DeployedItems[id][dpObject];
  38374. gPreviewDeployID[playerid] = id;
  38375. SendInfoMessage(playerid, "You have deployed a roadblock. Use /undeploy to remove it.");
  38376. AdminDutyMessage(COLOR_RED, "Admin: %s has deployed a roadblock at %s.", ReturnNameEx(playerid, 0), GetPlayerZoneName(playerid));
  38377. EditDynamicObjectEx(playerid, EDIT_TYPE_DEPLOY, DeployedItems[id][dpObject]);
  38378. }
  38379. case 3:
  38380. {
  38381. DeployedItems[id][dpType] = DEPLOY_TYPE_FLARE;
  38382. DeployedItems[id][dpObject] = CreateDynamicObject(18728, DeployedItems[id][dpX], DeployedItems[id][dpY], DeployedItems[id][dpZ] - 1.4, 0.0, 0.0, DeployedItems[id][dpA]);
  38383. gPreviewDeploy[playerid] = DeployedItems[id][dpObject];
  38384. gPreviewDeployID[playerid] = id;
  38385. SendInfoMessage(playerid, "You have deployed a smoke flare. Use /undeploy to remove it.");
  38386. AdminDutyMessage(COLOR_RED, "Admin: %s has deployed a smoke flare at %s.", ReturnNameEx(playerid, 0), GetPlayerZoneName(playerid));
  38387. EditDynamicObjectEx(playerid, EDIT_TYPE_DEPLOY, DeployedItems[id][dpObject]);
  38388. }
  38389. case 4:
  38390. {
  38391. DeployedItems[id][dpType] = DEPLOY_TYPE_BARREL;
  38392. DeployedItems[id][dpObject] = CreateDynamicObject(1237, DeployedItems[id][dpX] + (1.0 * floatsin(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpY] + (1.0 * floatcos(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpZ] - 1.0, 0.0, 0.0, DeployedItems[id][dpA]);
  38393. gPreviewDeploy[playerid] = DeployedItems[id][dpObject];
  38394. gPreviewDeployID[playerid] = id;
  38395. SendInfoMessage(playerid, "You have deployed a round barrier. Use /undeploy to remove it.");
  38396. AdminDutyMessage(COLOR_RED, "Admin: %s has deployed a round barrier at %s.", ReturnNameEx(playerid, 0), GetPlayerZoneName(playerid));
  38397. EditDynamicObjectEx(playerid, EDIT_TYPE_DEPLOY, DeployedItems[id][dpObject]);
  38398. }
  38399. case 5:
  38400. {
  38401. DeployedItems[id][dpType] = DEPLOY_TYPE_TAPE;
  38402. DeployedItems[id][dpObject] = CreateDynamicObject(19834, DeployedItems[id][dpX] + (1.0 * floatsin(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpY] + (1.0 * floatcos(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpZ] - 1.0, 0.0, 0.0, DeployedItems[id][dpA]);
  38403. gPreviewDeploy[playerid] = DeployedItems[id][dpObject];
  38404. gPreviewDeployID[playerid] = id;
  38405. SendInfoMessage(playerid, "You have deployed a strip of police tape. Use /undeploy to remove it.");
  38406. AdminDutyMessage(COLOR_RED, "Admin: %s has deployed a strip of police tape at %s.", ReturnNameEx(playerid, 0), GetPlayerZoneName(playerid));
  38407. EditDynamicObjectEx(playerid, EDIT_TYPE_DEPLOY, DeployedItems[id][dpObject]);
  38408. }
  38409. case 6:
  38410. {
  38411. DeployedItems[id][dpType] = DEPLOY_TYPE_TAPE;
  38412. DeployedItems[id][dpObject] = CreateDynamicObject(1282, DeployedItems[id][dpX] + (1.0 * floatsin(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpY] + (1.0 * floatcos(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpZ] - 1.0, 0.0, 0.0, DeployedItems[id][dpA]);
  38413. gPreviewDeploy[playerid] = DeployedItems[id][dpObject];
  38414. gPreviewDeployID[playerid] = id;
  38415. SendInfoMessage(playerid, "You have deployed a small barrier. Use /undeploy to remove it.");
  38416. AdminDutyMessage(COLOR_RED, "Admin: %s has deployed a small barrier at %s.", ReturnNameEx(playerid, 0), GetPlayerZoneName(playerid));
  38417. EditDynamicObjectEx(playerid, EDIT_TYPE_DEPLOY, DeployedItems[id][dpObject]);
  38418. }
  38419. case 7:
  38420. {
  38421. DeployedItems[id][dpType] = DEPLOY_TYPE_TAPE;
  38422. DeployedItems[id][dpObject] = CreateDynamicObject(1425, DeployedItems[id][dpX] + (1.0 * floatsin(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpY] + (1.0 * floatcos(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpZ] - 1.0, 0.0, 0.0, DeployedItems[id][dpA]);
  38423. gPreviewDeploy[playerid] = DeployedItems[id][dpObject];
  38424. gPreviewDeployID[playerid] = id;
  38425. SendInfoMessage(playerid, "You have deployed a detour barrier. Use /undeploy to remove it.");
  38426. AdminDutyMessage(COLOR_RED, "Admin: %s has deployed a detour barrier at %s.", ReturnNameEx(playerid, 0), GetPlayerZoneName(playerid));
  38427. EditDynamicObjectEx(playerid, EDIT_TYPE_DEPLOY, DeployedItems[id][dpObject]);
  38428. }
  38429. case 8:
  38430. {
  38431. DeployedItems[id][dpType] = DEPLOY_TYPE_TAPE;
  38432. DeployedItems[id][dpObject] = CreateDynamicObject(1949, DeployedItems[id][dpX] + (1.0 * floatsin(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpY] + (1.0 * floatcos(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpZ] - 1.0, 0.0, 0.0, DeployedItems[id][dpA]);
  38433. gPreviewDeploy[playerid] = DeployedItems[id][dpObject];
  38434. gPreviewDeployID[playerid] = id;
  38435. SendInfoMessage(playerid, "You have deployed a medium barrier. Use /undeploy to remove it.");
  38436. AdminDutyMessage(COLOR_RED, "Admin: %s has deployed a medium barrier at %s.", ReturnNameEx(playerid, 0), GetPlayerZoneName(playerid));
  38437. EditDynamicObjectEx(playerid, EDIT_TYPE_DEPLOY, DeployedItems[id][dpObject]);
  38438. }
  38439. case 9:
  38440. {
  38441. DeployedItems[id][dpType] = DEPLOY_TYPE_TAPE;
  38442. DeployedItems[id][dpObject] = CreateDynamicObject(3091, DeployedItems[id][dpX] + (1.0 * floatsin(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpY] + (1.0 * floatcos(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpZ] - 1.0, 0.0, 0.0, DeployedItems[id][dpA]);
  38443. gPreviewDeploy[playerid] = DeployedItems[id][dpObject];
  38444. gPreviewDeployID[playerid] = id;
  38445. SendInfoMessage(playerid, "You have deployed a large barrier. Use /undeploy to remove it.");
  38446. AdminDutyMessage(COLOR_RED, "Admin: %s has deployed a large barrier at %s.", ReturnNameEx(playerid, 0), GetPlayerZoneName(playerid));
  38447. EditDynamicObjectEx(playerid, EDIT_TYPE_DEPLOY, DeployedItems[id][dpObject]);
  38448. }
  38449. }
  38450. }
  38451. return 1;
  38452. }
  38453. //Dialog_Show(playerid, Deploy, DIALOG_STYLE_LIST, "{FFFFFF}Deploy Items", "Traffic cone\nSpike strips\nRoadblock\nSmoke flare\nRound barrier\nPolice Tape\nSmall Barrier\nDetour Barrier\nMedium Barrier\nLarge Barrier", "Deploy", "Cancel");
  38454. Dialog:NoteText(playerid, response, listitem, inputtext[])
  38455. {
  38456. new subject[64], text[128];
  38457. if (response)
  38458. {
  38459. strunpack(subject, gTemporaryText[playerid]);
  38460. if (isnull(inputtext))
  38461. {
  38462. return Dialog_Show(playerid, NoteText, DIALOG_STYLE_INPUT, "{FFFFFF}Note Text", "Subject:\n%s\n\nPlease input the text for this note. Use \\n for a new line and \\t for tab.", "Submit", "Cancel", subject);
  38463. }
  38464. else
  38465. {
  38466. strcpy(text, inputtext);
  38467. strreplace(text, "\\n", "\n");
  38468. strreplace(text, "\\t", "\t");
  38469. format(gExecute, sizeof(gExecute), "INSERT INTO rp_notes (itemID, noteSubject, noteText) VALUES(%i, '%s', '%s')", Inventory[playerid][Players[playerid][pNotebookID]][invID], mysql_escaped(subject), mysql_escaped(text));
  38470. mysql_tquery(gConnection, gExecute);
  38471. SendInfoMessage(playerid, "You have added a new note to your notebook.");
  38472. ShowPlayerNotebook(playerid, Players[playerid][pNotebookID]);
  38473. }
  38474. }
  38475. return 1;
  38476. }
  38477. Dialog:NoteSubject(playerid, response, listitem, inputtext[])
  38478. {
  38479. if (response)
  38480. {
  38481. if (isnull(inputtext))
  38482. {
  38483. return Dialog_Show(playerid, NoteSubject, DIALOG_STYLE_INPUT, "{FFFFFF}Note Subject", "Please input the subject for the note:", "Submit", "Back");
  38484. }
  38485. else if (strlen(inputtext) > 64)
  38486. {
  38487. return Dialog_Show(playerid, NoteSubject, DIALOG_STYLE_INPUT, "{FFFFFF}Note Subject", "The subject must be under 64 characters.\n\nPlease input the subject for the note:", "Submit", "Back");
  38488. }
  38489. else
  38490. {
  38491. strpack(gTemporaryText[playerid], inputtext, 64);
  38492. Dialog_Show(playerid, NoteText, DIALOG_STYLE_INPUT, "{FFFFFF}Note Text", "Subject:\n%s\n\nPlease input the text for this note. Use \\n for a new line and \\t for tab.", "Submit", "Cancel", inputtext);
  38493. }
  38494. }
  38495. else
  38496. {
  38497. ShowPlayerNotebook(playerid, Players[playerid][pNotebookID]);
  38498. }
  38499. return 1;
  38500. }
  38501. Dialog:ViewNote(playerid, response, listitem, inputtext[])
  38502. {
  38503. if (response)
  38504. {
  38505. format(gExecute, sizeof(gExecute), "DELETE FROM rp_notes WHERE ID = %i", Players[playerid][pSelected]);
  38506. mysql_tquery(gConnection, gExecute);
  38507. SendInfoMessage(playerid, "You have deleted the selected note.");
  38508. ShowPlayerNotebook(playerid, Players[playerid][pNotebookID]);
  38509. }
  38510. else
  38511. {
  38512. ShowPlayerNotebook(playerid, Players[playerid][pNotebookID]);
  38513. }
  38514. return 1;
  38515. }
  38516. Dialog:Notebook(playerid, response, listitem, inputtext[])
  38517. {
  38518. if (response)
  38519. {
  38520. if (listitem == 0)
  38521. {
  38522. Dialog_Show(playerid, NoteSubject, DIALOG_STYLE_INPUT, "{FFFFFF}Note Subject", "Please input the subject for the note:", "Submit", "Back");
  38523. }
  38524. else
  38525. {
  38526. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_notes WHERE ID = %i", gListedItems[playerid][--listitem]);
  38527. mysql_tquery(gConnection, gExecute, "OnPlayerSelectNote", "i", playerid);
  38528. }
  38529. }
  38530. return 1;
  38531. }
  38532. Dialog:SetRank(playerid, response, listitem, inputtext[])
  38533. {
  38534. new
  38535. faction = Players[playerid][pFaction];
  38536. if (!IsValidFactionID(faction))
  38537. {
  38538. return 0;
  38539. }
  38540. if (response)
  38541. {
  38542. new targetid = Players[playerid][pChangeRank];
  38543. if (!IsPlayerConnected(targetid) || Players[targetid][pFaction] != faction)
  38544. {
  38545. return 0;
  38546. }
  38547. else
  38548. {
  38549. Players[targetid][pFactionRank] = listitem + 1;
  38550. if (Players[targetid][pFactionRank] >= Factions[faction][fcMaxRanks] - 1) {
  38551. Players[targetid][pFactionLeader] = 1;
  38552. } else {
  38553. Players[targetid][pFactionLeader] = 0;
  38554. }
  38555. SendInfoMessage(playerid, "You have changed %s's rank to %s (%i).", ReturnNameEx(targetid), GetFactionRank(faction, Players[targetid][pFactionRank]), Players[targetid][pFactionRank]);
  38556. SendInfoMessage(targetid, "%s has changed your rank to %s (%i).", ReturnNameEx(playerid), GetFactionRank(faction, Players[targetid][pFactionRank]), Players[targetid][pFactionRank]);
  38557. }
  38558. }
  38559. return 1;
  38560. }
  38561. Dialog:GatePassword(playerid, response, listitem, inputtext[])
  38562. {
  38563. new
  38564. gate = Players[playerid][pSelected];
  38565. if (!IsValidGateID(gate))
  38566. {
  38567. return 0;
  38568. }
  38569. if (response)
  38570. {
  38571. if (isnull(inputtext) || strlen(inputtext) > 64)
  38572. {
  38573. return Dialog_Show(playerid, GatePassword, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Password", "Please input the password for this gate (use 'none' to reset):", "Submit", "Back");
  38574. }
  38575. else
  38576. {
  38577. if (!strcmp(inputtext, "none", true)) {
  38578. Gates[gate][gPassword][0] = 0;
  38579. } else {
  38580. strcpy(Gates[gate][gPassword], inputtext, 64);
  38581. }
  38582. SaveGate(gate);
  38583. SendInfoMessage(playerid, "You have set the password of gate %i to '%s'.", gate, inputtext);
  38584. }
  38585. }
  38586. else
  38587. {
  38588. ShowGateEditMenu(playerid, gate);
  38589. }
  38590. return 1;
  38591. }
  38592. Dialog:GateFaction(playerid, response, listitem, inputtext[])
  38593. {
  38594. new
  38595. gate = Players[playerid][pSelected];
  38596. if (!IsValidGateID(gate))
  38597. {
  38598. return 0;
  38599. }
  38600. if (response)
  38601. {
  38602. new faction;
  38603. if (sscanf(inputtext, "i", faction))
  38604. {
  38605. return Dialog_Show(playerid, GateFaction, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Faction", "Please input the faction ID for this gate (use -1 to reset):", "Submit", "Back");
  38606. }
  38607. else
  38608. {
  38609. if (faction != INVALID_ID && !IsValidFactionID(faction))
  38610. {
  38611. return Dialog_Show(playerid, GateFaction, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Faction", "You have specified an invalid faction ID.\n\nPlease input the faction ID for this gate (use -1 to reset):", "Submit", "Back");
  38612. }
  38613. else
  38614. {
  38615. if (faction == INVALID_ID)
  38616. {
  38617. Gates[gate][gFactionID] = 0;
  38618. SaveGate(gate);
  38619. SendInfoMessage(playerid, "You have reset the faction of gate %i.", gate);
  38620. }
  38621. else
  38622. {
  38623. Gates[gate][gFactionID] = Factions[faction][fcID];
  38624. SaveGate(gate);
  38625. SendInfoMessage(playerid, "You have set the faction of gate %i to %s.", gate, Factions[faction][fcName]);
  38626. }
  38627. }
  38628. }
  38629. }
  38630. else
  38631. {
  38632. ShowGateEditMenu(playerid, gate);
  38633. }
  38634. return 1;
  38635. }
  38636. Dialog:GateSpeed(playerid, response, listitem, inputtext[])
  38637. {
  38638. new
  38639. gate = Players[playerid][pSelected];
  38640. if (!IsValidGateID(gate))
  38641. {
  38642. return 0;
  38643. }
  38644. if (response)
  38645. {
  38646. new Float:speed;
  38647. if (sscanf(inputtext, "f", speed))
  38648. {
  38649. return Dialog_Show(playerid, GateSpeed, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Speed", "Please input the speed to set for this gate below:", "Submit", "Cancel");
  38650. }
  38651. else if (speed < 0.0 || speed > 20.0)
  38652. {
  38653. return Dialog_Show(playerid, GateSpeed, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Speed", "The speed must be between 0.0 and 20.0.\n\nPlease input the speed to set for this gate below:", "Submit", "Cancel");
  38654. }
  38655. else
  38656. {
  38657. Gates[gate][gSpeed] = speed;
  38658. SaveGate(gate);
  38659. SendInfoMessage(playerid, "You have set the speed of gate %i to %.1f.", gate, speed);
  38660. }
  38661. }
  38662. else
  38663. {
  38664. ShowGateEditMenu(playerid, gate);
  38665. }
  38666. return 1;
  38667. }
  38668. Dialog:GateLink(playerid, response, listitem, inputtext[])
  38669. {
  38670. new
  38671. gate = Players[playerid][pSelected];
  38672. if (!IsValidGateID(gate))
  38673. {
  38674. return 0;
  38675. }
  38676. if (response)
  38677. {
  38678. new gateid;
  38679. if (sscanf(inputtext, "i", gateid))
  38680. {
  38681. return Dialog_Show(playerid, GateLink, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Linker", "Please input the ID of the gate to link to this one (use -1 to reset):", "Submit", "Cancel");
  38682. }
  38683. else
  38684. {
  38685. if (gateid != INVALID_ID && !IsValidFactionID(gateid))
  38686. {
  38687. return Dialog_Show(playerid, GateLink, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Linker", "You have entered an invalid gate ID.\n\nPlease input the ID of the gate to link to this one (use -1 to reset):", "Submit", "Cancel");
  38688. }
  38689. else
  38690. {
  38691. if (gateid == INVALID_ID)
  38692. {
  38693. Gates[gate][gLinkID] = 0;
  38694. SaveGate(gate);
  38695. SendInfoMessage(playerid, "You have reset the linked ID of gate %i.", gate);
  38696. }
  38697. else
  38698. {
  38699. Gates[gate][gLinkID] = Gates[gateid][gID];
  38700. SaveGate(gate);
  38701. SendInfoMessage(playerid, "You have set the linked ID of gate %i to ID %i.", gate, gateid);
  38702. }
  38703. }
  38704. }
  38705. }
  38706. else
  38707. {
  38708. ShowGateEditMenu(playerid, gate);
  38709. }
  38710. return 1;
  38711. }
  38712. Dialog:GateRadius(playerid, response, listitem, inputtext[])
  38713. {
  38714. new
  38715. gate = Players[playerid][pSelected];
  38716. if (!IsValidGateID(gate))
  38717. {
  38718. return 0;
  38719. }
  38720. if (response)
  38721. {
  38722. new Float:radius;
  38723. if (sscanf(inputtext, "f", radius))
  38724. {
  38725. return Dialog_Show(playerid, GateRadius, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Radius", "Please input the radius to set for this gate below:", "Submit", "Cancel");
  38726. }
  38727. else if (radius < 0.0 || radius > 15.0)
  38728. {
  38729. return Dialog_Show(playerid, GateRadius, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Radius", "The radius must be between 0.0 and 15.0.\n\nPlease input the radius to set for this gate below:", "Submit", "Cancel");
  38730. }
  38731. else
  38732. {
  38733. Gates[gate][gRadius] = radius;
  38734. SaveGate(gate);
  38735. SendInfoMessage(playerid, "You have set the radius of gate %i to %.1f.", gate, radius);
  38736. }
  38737. }
  38738. else
  38739. {
  38740. ShowGateEditMenu(playerid, gate);
  38741. }
  38742. return 1;
  38743. }
  38744. Dialog:EditGate(playerid, response, listitem, inputtext[])
  38745. {
  38746. new
  38747. gate = Players[playerid][pSelected];
  38748. if (!IsValidGateID(gate))
  38749. {
  38750. return 0;
  38751. }
  38752. if (response)
  38753. {
  38754. switch (listitem)
  38755. {
  38756. case 0:
  38757. {
  38758. GetPlayerPos(playerid, Gates[gate][gSpawn][0], Gates[gate][gSpawn][1], Gates[gate][gSpawn][2]);
  38759. GetPlayerFacingAngle(playerid, Gates[gate][gSpawn][5]);
  38760. Gates[gate][gSpawn][3] = 0.0;
  38761. Gates[gate][gSpawn][4] = 0.0;
  38762. Gates[gate][gInterior] = GetPlayerInterior(playerid);
  38763. Gates[gate][gWorld] = GetPlayerVirtualWorld(playerid);
  38764. UpdateGate(gate);
  38765. SaveGate(gate);
  38766. SendAdminMessage(COLOR_RED, "Admin: %s has edited the location of gate %i.", ReturnNameEx(playerid, 0), gate);
  38767. }
  38768. case 1:
  38769. {
  38770. EditDynamicObjectEx(playerid, EDIT_TYPE_GATE, Gates[gate][gObject], gate);
  38771. SendInfoMessage(playerid, "Click on the disk icon to save changes.");
  38772. }
  38773. case 2:
  38774. {
  38775. EditDynamicObjectEx(playerid, EDIT_TYPE_GATE_MOVE, Gates[gate][gObject], gate);
  38776. SendInfoMessage(playerid, "Click on the disk icon to save changes.");
  38777. }
  38778. case 3:
  38779. {
  38780. Dialog_Show(playerid, GatePassword, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Password", "Please input the password to set for this gate below (use 'none' to reset):", "Submit", "Back");
  38781. }
  38782. case 4:
  38783. {
  38784. Dialog_Show(playerid, GateFaction, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Faction", "Please input the faction ID to set for this gate below (use -1 to reset):", "Submit", "Back");
  38785. }
  38786. case 5:
  38787. {
  38788. Dialog_Show(playerid, GateSpeed, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Speed", "Please input the speed to set for this gate below:", "Submit", "Cancel");
  38789. }
  38790. case 6:
  38791. {
  38792. Dialog_Show(playerid, GateRadius, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Radius", "Please input the radius to set for this gate below:", "Submit", "Cancel");
  38793. }
  38794. case 7:
  38795. {
  38796. Dialog_Show(playerid, GateLink, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Linker", "Please input the ID of the gate to link to this one (use -1 to reset):", "Submit", "Cancel");
  38797. }
  38798. }
  38799. }
  38800. return 1;
  38801. }
  38802. Dialog:NewPassword(playerid, response, listitem, inputtext[])
  38803. {
  38804. if (response)
  38805. {
  38806. static
  38807. buffer[130]
  38808. ;
  38809. if (isnull(inputtext))
  38810. {
  38811. return Dialog_Show(playerid, NewPassword, DIALOG_STYLE_INPUT, "{FFFFFF}New Password", "Please input your new password below:", "Submit", "Cancel");
  38812. }
  38813. else
  38814. {
  38815. WP_Hash(buffer, sizeof(buffer), inputtext);
  38816. format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Pass = '%s' WHERE Username = '%s'", buffer, ReturnName(playerid));
  38817. mysql_tquery(gConnection, gExecute);
  38818. SendInfoMessage(playerid, "Your new password has been saved to your account.");
  38819. }
  38820. }
  38821. return 1;
  38822. }
  38823. Dialog:ChangePassword(playerid, response, listitem, inputtext[])
  38824. {
  38825. if (response)
  38826. {
  38827. static
  38828. buffer[130]
  38829. ;
  38830. if (isnull(inputtext))
  38831. {
  38832. return Dialog_Show(playerid, ChangePassword, DIALOG_STYLE_INPUT, "{FFFFFF}Change Password", "Please input your current account password:", "Submit", "Cancel");
  38833. }
  38834. else
  38835. {
  38836. WP_Hash(buffer, sizeof(buffer), inputtext);
  38837. format(gExecute, sizeof(gExecute), "SELECT ID FROM rp_accounts WHERE Username = '%s' AND Pass = '%s'", ReturnName(playerid), buffer);
  38838. mysql_tquery(gConnection, gExecute, "OnPlayerCheckPassword", "i", playerid);
  38839. }
  38840. }
  38841. return 1;
  38842. }
  38843. Dialog:UseBandage(playerid, response, listitem, inputtext[])
  38844. {
  38845. if (response)
  38846. {
  38847. new item = Players[playerid][pSelected];
  38848. switch (listitem)
  38849. {
  38850. case 0:
  38851. {
  38852. if (!Players[playerid][pBleeding])
  38853. {
  38854. SendErrorMessage(playerid, "You don't need to use this right now.");
  38855. }
  38856. else
  38857. {
  38858. Players[playerid][pBleeding] = 0;
  38859. ShowActionBubble(playerid, "* %s covers their wounds with a bandage.", ReturnNameEx(playerid));
  38860. RemoveItemValue(playerid, item, 1);
  38861. SendInfoMessage(playerid, "You have bandaged up your wounds.");
  38862. }
  38863. }
  38864. case 1:
  38865. {
  38866. Dialog_Show(playerid, BandagePlayer, DIALOG_STYLE_INPUT, "{FFFFFF}Bandage Player", "Please input the ID or name of the player to apply this bandage on:", "Submit", "Cancel");
  38867. }
  38868. }
  38869. }
  38870. return 1;
  38871. }
  38872. Dialog:BandagePlayer(playerid, response, listitem, inputtext[])
  38873. {
  38874. if (response)
  38875. {
  38876. new targetid, item = Players[playerid][pSelected];
  38877. if (sscanf(inputtext, "u", targetid))
  38878. {
  38879. return Dialog_Show(playerid, BandagePlayer, DIALOG_STYLE_INPUT, "{FFFFFF}Bandage Player", "Please input the ID or name of the player to apply this bandage on:", "Submit", "Cancel");
  38880. }
  38881. else if (!IsPlayerConnected(targetid))
  38882. {
  38883. return Dialog_Show(playerid, BandagePlayer, DIALOG_STYLE_INPUT, "{FFFFFF}Bandage Player", "You have specified an invalid player.\n\nPlease input the ID or name of the player to apply this bandage on:", "Submit", "Cancel");
  38884. }
  38885. else if (!IsPlayerInRangeOfPlayer(playerid, targetid))
  38886. {
  38887. return Dialog_Show(playerid, BandagePlayer, DIALOG_STYLE_INPUT, "{FFFFFF}Bandage Player", "You are not in range of that player.\n\nPlease input the ID or name of the player to apply this bandage on:", "Submit", "Cancel");
  38888. }
  38889. else if (!Players[targetid][pBleeding])
  38890. {
  38891. return Dialog_Show(playerid, BandagePlayer, DIALOG_STYLE_INPUT, "{FFFFFF}Bandage Player", "That player is not bleeding.\n\nPlease input the ID or name of the player to apply this bandage on:", "Submit", "Cancel");
  38892. }
  38893. else
  38894. {
  38895. Players[targetid][pBleeding] = 0;
  38896. ShowActionBubble(playerid, "* %s covers %s's wounds with a bandage.", ReturnNameEx(playerid), ReturnNameEx(targetid));
  38897. RemoveItemValue(playerid, item, 1);
  38898. SendInfoMessage(playerid, "You have bandaged up %s's wounds.", ReturnNameEx(targetid));
  38899. SendInfoMessage(targetid, "%s has bandaged up your wounds.", ReturnNameEx(playerid));
  38900. }
  38901. }
  38902. return 1;
  38903. }
  38904. Dialog:Teleports(playerid, response, listitem, inputtext[])
  38905. {
  38906. if (response)
  38907. {
  38908. new teleport = gListedItems[playerid][listitem];
  38909. GameTextForPlayer(playerid, Teleports[teleport][tpName], 6000, 1);
  38910. SetTeleportPos(playerid, Teleports[teleport][tpX], Teleports[teleport][tpY], Teleports[teleport][tpZ], Teleports[teleport][tpA], Teleports[teleport][tpInterior], Teleports[teleport][tpWorld]);
  38911. }
  38912. return 1;
  38913. }
  38914. Dialog:StaticBuildings(playerid, response, listitem, inputtext[])
  38915. {
  38916. if (response)
  38917. {
  38918. GameTextForPlayer(playerid, g_StaticBuildings[listitem][e_BuildingName], 6000, 1);
  38919. SetTeleportPos(playerid, g_StaticBuildings[listitem][e_SpawnX], g_StaticBuildings[listitem][e_SpawnY], g_StaticBuildings[listitem][e_SpawnZ], 0.0, 0, 0);
  38920. }
  38921. return 1;
  38922. }
  38923. Dialog:Teleport(playerid, response, listitem, inputtext[])
  38924. {
  38925. if (response)
  38926. {
  38927. switch (listitem)
  38928. {
  38929. case 0:
  38930. {
  38931. new success = ShowTeleportList(playerid);
  38932. if (!success)
  38933. {
  38934. SendErrorMessage(playerid, "There are no teleports to list.");
  38935. }
  38936. }
  38937. case 1:
  38938. {
  38939. static staticBuildings[sizeof(g_StaticBuildings) * 32];
  38940. if (isnull(staticBuildings))
  38941. {
  38942. for (new i = 0; i < sizeof(g_StaticBuildings); i ++) {
  38943. format(staticBuildings, sizeof(staticBuildings), "%s\n%s", staticBuildings, g_StaticBuildings[i][e_BuildingName]);
  38944. }
  38945. }
  38946. Dialog_Show(playerid, StaticBuildings, DIALOG_STYLE_LIST, "{FFFFFF}Static Buildings", staticBuildings, "Teleport", "Cancel");
  38947. }
  38948. case 2:
  38949. {
  38950. ShowInteriorList(playerid);
  38951. }
  38952. }
  38953. }
  38954. return 1;
  38955. }
  38956. Dialog:DeleteTeleports(playerid, response, listitem, inputtext[])
  38957. {
  38958. if (response)
  38959. {
  38960. new teleport = gListedItems[playerid][listitem];
  38961. if (Teleports[teleport][tpExists])
  38962. {
  38963. format(gExecute, sizeof(gExecute), "DELETE FROM rp_teleports WHERE tpID = %i", Teleports[teleport][tpID]);
  38964. mysql_tquery(gConnection, gExecute);
  38965. Teleports[teleport][tpExists] = 0;
  38966. SendInfoMessage(playerid, "You have deleted teleport %s.", Teleports[teleport][tpName]);
  38967. }
  38968. }
  38969. return 1;
  38970. }
  38971. Dialog:MedicEquipment(playerid, response, listitem, inputtext[])
  38972. {
  38973. /*if (!IsPlayerInRangeOfLocker(playerid))
  38974. {
  38975. return 0;
  38976. }*/
  38977. if (response)
  38978. {
  38979. switch (listitem)
  38980. {
  38981. case 0:
  38982. {
  38983. if (!IsSufficientSpace(playerid, "Bandages"))
  38984. {
  38985. SendErrorMessage(playerid, "There is no more room in your inventory.");
  38986. }
  38987. else
  38988. {
  38989. ShowLockerEquipmentMenu(playerid);
  38990. AddItemToInventory(playerid, "Bandages", 10);
  38991. SendInfoMessage(playerid, "You have taken a pack of 10 bandages from the locker.");
  38992. }
  38993. }
  38994. case 1:
  38995. {
  38996. if (!IsSufficientSpace(playerid, "Medical Kit"))
  38997. {
  38998. SendErrorMessage(playerid, "There is no more room in your inventory.");
  38999. }
  39000. else
  39001. {
  39002. ShowLockerEquipmentMenu(playerid);
  39003. AddItemToInventory(playerid, "Medical Kit");
  39004. SendInfoMessage(playerid, "You have taken a medical kit from the locker.");
  39005. }
  39006. }
  39007. case 2:
  39008. {
  39009. if (GetPlayerArmourEx(playerid) > 50.0)
  39010. {
  39011. SendErrorMessage(playerid, "You are already wearing armor.");
  39012. }
  39013. else
  39014. {
  39015. ShowLockerEquipmentMenu(playerid);
  39016. SetPlayerValidArmor(playerid, 50.0);
  39017. SendInfoMessage(playerid, "You have received a kevlar vest from the armory.");
  39018. }
  39019. }
  39020. case 3:
  39021. {
  39022. if (!IsSufficientSpace(playerid, "Fire Extinguisher"))
  39023. {
  39024. SendErrorMessage(playerid, "There is no more room in your inventory.");
  39025. }
  39026. else
  39027. {
  39028. ShowLockerEquipmentMenu(playerid);
  39029. AddItemToInventory(playerid, "Fire Extinguisher", 2000);
  39030. SendInfoMessage(playerid, "You have taken a fire extinguisher from the locker.");
  39031. }
  39032. }
  39033. case 4:
  39034. {
  39035. if (!IsSufficientSpace(playerid, "Painkillers"))
  39036. {
  39037. SendErrorMessage(playerid, "There is no more room in your inventory.");
  39038. }
  39039. else
  39040. {
  39041. ShowLockerEquipmentMenu(playerid);
  39042. AddItemToInventory(playerid, "Painkillers", 10);
  39043. SendInfoMessage(playerid, "You have received a bottle of painkillers from the locker.");
  39044. }
  39045. }
  39046. case 5:
  39047. {
  39048. if (!IsSufficientSpace(playerid, "Pepper Spray"))
  39049. {
  39050. SendErrorMessage(playerid, "There is no more room in your inventory.");
  39051. }
  39052. else
  39053. {
  39054. ShowLockerEquipmentMenu(playerid);
  39055. AddItemToInventory(playerid, "Pepper Spray", 2000);
  39056. SendInfoMessage(playerid, "You have received a can of pepper spray from the armory.");
  39057. }
  39058. }
  39059. case 6:
  39060. {
  39061. if (!IsSufficientSpace(playerid, "Portable Radio"))
  39062. {
  39063. SendErrorMessage(playerid, "There is no more room in your inventory.");
  39064. }
  39065. else
  39066. {
  39067. ShowLockerEquipmentMenu(playerid);
  39068. AddItemToInventory(playerid, "Portable Radio");
  39069. SendInfoMessage(playerid, "You have received a can of pepper spray from the armory.");
  39070. }
  39071. }
  39072. }
  39073. }
  39074. else
  39075. {
  39076. ShowLockerMenu(playerid);
  39077. }
  39078. return 1;
  39079. }
  39080. Dialog:LEOClothes(playerid, response, listitem, inputtext[])
  39081. {
  39082. if(response)
  39083. {
  39084. switch(listitem)
  39085. {
  39086. case 0:
  39087. {
  39088. if(HasAttachedObject(playerid, 19773)) return SCM(playerid, COLOR_LIGHTRED, "You already have a Holster!");
  39089. for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++)
  39090. {
  39091. if(!IsPlayerAttachedObjectSlotUsed(playerid, i))
  39092. {
  39093. SetPlayerAttachedObject(playerid, i, 19773, 8, 0.152, 0.0, -0.01, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0xFFFFFFFF);
  39094. EditAttachedObject(playerid, i);
  39095. PoliceObjects[playerid][i] = 19773;
  39096. SetIntVar(playerid, "EditingPolice", 1);
  39097. }
  39098. }
  39099. }
  39100. case 1:
  39101. {
  39102. if(HasAttachedObject(playerid, 18636)) return SCM(playerid, COLOR_LIGHTRED, "You already have this hat.");
  39103. for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++)
  39104. {
  39105. if(!IsPlayerAttachedObjectSlotUsed(playerid, i))
  39106. {
  39107. SetPlayerAttachedObject(playerid, i, 18636, 2, 0.152, 0.0, -0.01, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0xFFFFFFFF);
  39108. EditAttachedObject(playerid, i);
  39109. PoliceObjects[playerid][i] = 18636;
  39110. SetIntVar(playerid, "EditingPolice", 1);
  39111. return 1;
  39112. }
  39113. }
  39114. }
  39115. case 2:
  39116. {
  39117. if(HasAttachedObject(playerid, 19099)) return SCM(playerid, COLOR_LIGHTRED, "You already have this hat.");
  39118. for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++)
  39119. {
  39120. if(!IsPlayerAttachedObjectSlotUsed(playerid, i))
  39121. {
  39122. SetPlayerAttachedObject(playerid, i, 19099, 2, 0.152, 0.0, -0.01, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0xFFFFFFFF);
  39123. EditAttachedObject(playerid, i);
  39124. PoliceObjects[playerid][i] = 19099;
  39125. SetIntVar(playerid, "EditingPolice", 1);
  39126. return 1;
  39127. }
  39128. }
  39129. }
  39130. case 3:
  39131. {
  39132. if(HasAttachedObject(playerid, 19100)) return SCM(playerid, COLOR_LIGHTRED, "You already have this hat.");
  39133. for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++)
  39134. {
  39135. if(!IsPlayerAttachedObjectSlotUsed(playerid, i))
  39136. {
  39137. SetPlayerAttachedObject(playerid, i, 19100, 2, 0.152, 0.0, -0.01, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0xFFFFFFFF);
  39138. EditAttachedObject(playerid, i);
  39139. PoliceObjects[playerid][i] = 19100;
  39140. SetIntVar(playerid, "EditingPolice", 1);
  39141. return 1;
  39142. }
  39143. }
  39144. }
  39145. case 4:
  39146. {
  39147. if(HasAttachedObject(playerid, 19161)) return SCM(playerid, COLOR_LIGHTRED, "You already have this hat.");
  39148. for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++)
  39149. {
  39150. if(!IsPlayerAttachedObjectSlotUsed(playerid, i))
  39151. {
  39152. SetPlayerAttachedObject(playerid, i, 19161, 2, 0.152, 0.0, -0.01, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0xFFFFFFFF);
  39153. EditAttachedObject(playerid, i);
  39154. PoliceObjects[playerid][i] = 19161;
  39155. SetIntVar(playerid, "EditingPolice", 1);
  39156. return 1;
  39157. }
  39158. }
  39159. }
  39160. case 5:
  39161. {
  39162. if(HasAttachedObject(playerid, 19162)) return SCM(playerid, COLOR_LIGHTRED, "You already have this hat.");
  39163. for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++)
  39164. {
  39165. if(!IsPlayerAttachedObjectSlotUsed(playerid, i))
  39166. {
  39167. SetPlayerAttachedObject(playerid, i, 19162, 2, 0.152, 0.0, -0.01, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0xFFFFFFFF);
  39168. EditAttachedObject(playerid, i);
  39169. PoliceObjects[playerid][i] = 19162;
  39170. SetIntVar(playerid, "EditingPolice", 1);
  39171. return 1;
  39172. }
  39173. }
  39174. }
  39175. case 6:
  39176. {
  39177. if(HasAttachedObject(playerid, 19521)) return SCM(playerid, COLOR_LIGHTRED, "You already have this hat.");
  39178. for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++)
  39179. {
  39180. if(!IsPlayerAttachedObjectSlotUsed(playerid, i))
  39181. {
  39182. SetPlayerAttachedObject(playerid, i, 19521, 2, 0.152, 0.0, -0.01, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0xFFFFFFFF);
  39183. EditAttachedObject(playerid, i);
  39184. PoliceObjects[playerid][i] = 19521;
  39185. SetIntVar(playerid, "EditingPolice", 1);
  39186. return 1;
  39187. }
  39188. }
  39189. }
  39190. case 7:
  39191. {
  39192. if(HasAttachedObject(playerid, 19141)) return SCM(playerid, COLOR_LIGHTRED, "You already have this hat.");
  39193. for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++)
  39194. {
  39195. if(!IsPlayerAttachedObjectSlotUsed(playerid, i))
  39196. {
  39197. SetPlayerAttachedObject(playerid, i, 19141, 1, 0.071999, 0.02, 0.0, 0.0, 0.0, 0.0, 0.881, 1.0, 0.719999);
  39198. EditAttachedObject(playerid, i);
  39199. PoliceObjects[playerid][i] = 19141;
  39200. SetIntVar(playerid, "EditingPolice", 1);
  39201. return 1;
  39202. }
  39203. }
  39204. }
  39205. case 8:
  39206. {
  39207. if(HasAttachedObject(playerid, 19142)) return SCM(playerid, COLOR_LIGHTRED, "You already have this hat.");
  39208. for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++)
  39209. {
  39210. if(!IsPlayerAttachedObjectSlotUsed(playerid, i))
  39211. {
  39212. SetPlayerAttachedObject(playerid, i, 19142, 1, 0.071999, 0.02, 0.0, 0.0, 0.0, 0.0, 0.881, 1.0, 0.719999);
  39213. EditAttachedObject(playerid, i);
  39214. PoliceObjects[playerid][i] = 19142;
  39215. SetIntVar(playerid, "EditingPolice", 1);
  39216. return 1;
  39217. }
  39218. }
  39219. }
  39220. case 9:
  39221. {
  39222. if(HasAttachedObject(playerid, 18637)) return SCM(playerid, COLOR_LIGHTRED, "You already have this hat.");
  39223. for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++)
  39224. {
  39225. if(!IsPlayerAttachedObjectSlotUsed(playerid, i))
  39226. {
  39227. SetPlayerAttachedObject(playerid, i, 18637, 6, 0.071999, 0.02, 0.0, 0.0, 0.0, 0.0, 0.881, 1.0, 0.719999);
  39228. EditAttachedObject(playerid, i);
  39229. PoliceObjects[playerid][i] = 18637;
  39230. SetIntVar(playerid, "EditingPolice", 1);
  39231. return 1;
  39232. }
  39233. }
  39234. }
  39235. case 10:
  39236. {
  39237. for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++)
  39238. {
  39239. if(IsPlayerAttachedObjectSlotUsed(playerid, i))
  39240. {
  39241. RemovePlayerAttachedObject(playerid, i);
  39242. PoliceObjects[playerid][i] = INVALID_OBJECT_ID;
  39243. }
  39244. }
  39245. }
  39246. }
  39247. }
  39248. return 1;
  39249. }
  39250. Dialog:PoliceEquipment(playerid, response, listitem, inputtext[])
  39251. {
  39252. /*if (!IsPlayerInRangeOfLocker(playerid))
  39253. {
  39254. return 0;
  39255. }*/
  39256. if (response)
  39257. {
  39258. switch (listitem)
  39259. {
  39260. case 0:
  39261. {
  39262. if (!IsSufficientSpace(playerid, "Medical Kit"))
  39263. {
  39264. SendErrorMessage(playerid, "There is no more room in your inventory.");
  39265. }
  39266. else
  39267. {
  39268. ShowLockerEquipmentMenu(playerid);
  39269. AddItemToInventory(playerid, "Medical Kit");
  39270. SendInfoMessage(playerid, "You have received a medical kit from the armory.");
  39271. }
  39272. }
  39273. /*case 1:
  39274. {
  39275. if (GetPlayerArmourEx(playerid) > 99.0)
  39276. {
  39277. SendErrorMessage(playerid, "You are already wearing armor.");
  39278. }
  39279. else
  39280. {
  39281. ShowLockerEquipmentMenu(playerid);
  39282. SetPlayerValidArmor(playerid, 99.0);
  39283. SendInfoMessage(playerid, "You have received a kevlar vest from the armory.");
  39284. }
  39285. }*/
  39286. case 1:
  39287. {
  39288. if (!IsSufficientSpace(playerid, "Armor"))
  39289. {
  39290. SendErrorMessage(playerid, "There is no more room in your inventory.");
  39291. }
  39292. else if(GetInventoryItemID(playerid, "Armor") != INVALID_ID) {
  39293. return SendErrorMessage(playerid, "You already have Armor.");
  39294. } else
  39295. {
  39296. ShowLockerEquipmentMenu(playerid);
  39297. AddItemToInventory(playerid, "Armor", 100);
  39298. SendInfoMessage(playerid, "You have received armor from the armory.");
  39299. }
  39300. }
  39301. case 2:
  39302. {
  39303. if (!IsSufficientSpace(playerid, "Nightstick"))
  39304. {
  39305. SendErrorMessage(playerid, "There is no more room in your inventory.");
  39306. }
  39307. else if(GetInventoryItemID(playerid, "Nightstick") != INVALID_ID) {
  39308. return SendErrorMessage(playerid, "You already have a Nightstick.");
  39309. } else
  39310. {
  39311. ShowLockerEquipmentMenu(playerid);
  39312. AddItemToInventory(playerid, "Nightstick");
  39313. SendInfoMessage(playerid, "You have received a nightstick from the armory.");
  39314. }
  39315. }
  39316. case 3:
  39317. {
  39318. if (!IsSufficientSpace(playerid, "Pepper Spray"))
  39319. {
  39320. SendErrorMessage(playerid, "There is no more room in your inventory.");
  39321. }
  39322. else if(GetInventoryItemID(playerid, "Pepper Spray") != INVALID_ID) {
  39323. return SendErrorMessage(playerid, "You already have a Pepper Spray");
  39324. } else
  39325. {
  39326. ShowLockerEquipmentMenu(playerid);
  39327. AddItemToInventory(playerid, "Pepper Spray", 2000);
  39328. SendInfoMessage(playerid, "You have received a can of pepper spray from the armory.");
  39329. }
  39330. }
  39331. case 4:
  39332. {
  39333. if (!IsSufficientSpace(playerid, "Desert Eagle"))
  39334. {
  39335. SendErrorMessage(playerid, "There is no more room in your inventory.");
  39336. } else if(GetInventoryItemID(playerid, "Desert Eagle") != INVALID_ID) {
  39337. return SendErrorMessage(playerid, "You already have a Desert Eagle.");
  39338. } else {
  39339. new serial = Random(10000, 99999);
  39340. new fac[32];
  39341. format(fac,sizeof(fac),"%s Armory",GetInitials(GetPlayerFactionName(playerid)));
  39342. ShowLockerEquipmentMenu(playerid);
  39343. AddItemToInventory(playerid, "Desert Eagle", 100, serial);
  39344. AddSerialToRegistry(serial, "Desert Eagle", ReturnName(playerid), fac);
  39345. SendInfoMessage(playerid, "You have received a Desert Eagle with 100 ammo from the armory.");
  39346. }
  39347. }
  39348. case 5:
  39349. {
  39350. if (!IsSufficientSpace(playerid, "Shotgun"))
  39351. {
  39352. SendErrorMessage(playerid, "There is no more room in your inventory.");
  39353. } else if(GetInventoryItemID(playerid, "Shotgun") != INVALID_ID) {
  39354. return SendErrorMessage(playerid, "You already have a Shotgun.");
  39355. } else {
  39356. new serial = Random(10000, 99999);
  39357. new fac[32];
  39358. format(fac,sizeof(fac),"%s Armory",GetInitials(GetPlayerFactionName(playerid)));
  39359. ShowLockerEquipmentMenu(playerid);
  39360. AddItemToInventory(playerid, "Shotgun", 75, serial);
  39361. AddSerialToRegistry(serial, "Shotgun", ReturnName(playerid), fac);
  39362. SendInfoMessage(playerid, "You have received a Shotgun with 75 ammo from the armory.");
  39363. }
  39364. }
  39365. case 6:
  39366. {
  39367. if (!IsSufficientSpace(playerid, "MP5"))
  39368. {
  39369. SendErrorMessage(playerid, "There is no more room in your inventory.");
  39370. }
  39371. else if(GetInventoryItemID(playerid, "MP5") != INVALID_ID) {
  39372. return SendErrorMessage(playerid, "You already have a MP5.");
  39373. } else
  39374. {
  39375. new serial = Random(10000, 99999);
  39376. new fac[32];
  39377. format(fac,sizeof(fac),"%s Armory",GetInitials(GetPlayerFactionName(playerid)));
  39378. ShowLockerEquipmentMenu(playerid);
  39379. AddItemToInventory(playerid, "MP5", 180, serial);
  39380. AddSerialToRegistry(serial, "MP5", ReturnName(playerid), fac);
  39381. SendInfoMessage(playerid, "You have received a MP5 with 180 ammo from the armory.");
  39382. }
  39383. }
  39384. case 7:
  39385. {
  39386. if (!IsSufficientSpace(playerid, "M16"))
  39387. {
  39388. SendErrorMessage(playerid, "There is no more room in your inventory.");
  39389. }
  39390. else if(GetInventoryItemID(playerid, "M16") != INVALID_ID) {
  39391. return SendErrorMessage(playerid, "You already have a M16.");
  39392. } else
  39393. {
  39394. new serial = Random(10000, 99999);
  39395. new fac[32];
  39396. format(fac,sizeof(fac),"%s Armory",GetInitials(GetPlayerFactionName(playerid)));
  39397. ShowLockerEquipmentMenu(playerid);
  39398. AddItemToInventory(playerid, "M16", 250, serial);
  39399. AddSerialToRegistry(serial, "M16", ReturnName(playerid), fac);
  39400. SendInfoMessage(playerid, "You have received a M4 with 250 ammo from the armory.");
  39401. }
  39402. }
  39403. case 8:
  39404. {
  39405. if (!IsSufficientSpace(playerid, "Sniper Rifle"))
  39406. {
  39407. SendErrorMessage(playerid, "There is no more room in your inventory.");
  39408. }
  39409. else if(GetInventoryItemID(playerid, "Sniper Rifle") != INVALID_ID) {
  39410. return SendErrorMessage(playerid, "You already have a Sniper Rifle.");
  39411. } else
  39412. {
  39413. new serial = Random(10000, 99999);
  39414. new fac[32];
  39415. format(fac,sizeof(fac),"%s Armory",GetInitials(GetPlayerFactionName(playerid)));
  39416. ShowLockerEquipmentMenu(playerid);
  39417. AddItemToInventory(playerid, "Sniper Rifle", 75, serial);
  39418. AddSerialToRegistry(serial, "Sniper Rifle", ReturnName(playerid), fac);
  39419. SendInfoMessage(playerid, "You have received a Sniper with 75 ammo from the armory.");
  39420. }
  39421. }
  39422. case 9:
  39423. {
  39424. if (!IsSufficientSpace(playerid, "Portable Radio"))
  39425. {
  39426. SendErrorMessage(playerid, "There is no more room in your inventory.");
  39427. }
  39428. else
  39429. {
  39430. ShowLockerEquipmentMenu(playerid);
  39431. AddItemToInventory(playerid,"Portable Radio", 0);
  39432. SendInfoMessage(playerid, "You have received a portable radio from the armory.");
  39433. }
  39434. }
  39435. case 10:
  39436. {
  39437. if (!IsSufficientSpace(playerid, "Cuffs"))
  39438. {
  39439. SendErrorMessage(playerid, "There is no more room in your inventory.");
  39440. }
  39441. else
  39442. {
  39443. ShowLockerEquipmentMenu(playerid);
  39444. AddItemToInventory(playerid,"Cuffs");
  39445. SendInfoMessage(playerid, "You have received a pair of cuffs from the armory.");
  39446. }
  39447. }
  39448. case 11:
  39449. {
  39450. if (!IsSufficientSpace(playerid, "Cuff Keys"))
  39451. {
  39452. SendErrorMessage(playerid, "There is no more room in your inventory.");
  39453. }
  39454. else
  39455. {
  39456. ShowLockerEquipmentMenu(playerid);
  39457. AddItemToInventory(playerid,"Cuff Keys");
  39458. SendInfoMessage(playerid, "You have received a pair of keys from the armory.");
  39459. }
  39460. }
  39461. /*case 12:
  39462. {
  39463. if (!IsSufficientSpace(playerid, "Taser"))
  39464. {
  39465. SendErrorMessage(playerid, "There is no more room in your inventory.");
  39466. }
  39467. else
  39468. {
  39469. ShowLockerEquipmentMenu(playerid);
  39470. AddItemToInventory(playerid, "Taser");
  39471. SendInfoMessage(playerid, "You have received a taser from the armory.");
  39472. }
  39473. }*/
  39474. }
  39475. }
  39476. else
  39477. {
  39478. ShowLockerMenu(playerid);
  39479. }
  39480. return 1;
  39481. }
  39482. Dialog:Locker(playerid, response, listitem, inputtext[])
  39483. {
  39484. if (response)
  39485. {
  39486. switch (listitem)
  39487. {
  39488. case 0: //Nightstick, Pepper Spray, MP5, M4, Sniper Rifle
  39489. {
  39490. Players[playerid][pDuty] = !Players[playerid][pDuty];
  39491. if (Players[playerid][pDuty])
  39492. {
  39493. SendFactionMessage(Players[playerid][pFaction],COLOR_RADIO,"** HQ: %s %s is now on duty.", GetPlayerFactionRank(playerid), ReturnNameEx(playerid,0));
  39494. SendInfoMessage(playerid, "You have clocked in and you are now on duty.");
  39495. ShowLockerMenu(playerid);
  39496. }
  39497. else
  39498. {
  39499. SetPlayerValidArmor(playerid, 0.0);
  39500. SendFactionMessage(Players[playerid][pFaction],COLOR_RADIO,"** HQ: %s %s is now off duty.", GetPlayerFactionRank(playerid), ReturnNameEx(playerid,0));
  39501. SendInfoMessage(playerid, "You have clocked out and returned all of your equipment to the armory.");
  39502. RemoveEquipment(playerid);
  39503. ShowLockerMenu(playerid);
  39504. }
  39505. }
  39506. case 1:
  39507. {
  39508. if(Players[playerid][pUniform] != INVALID_ID)
  39509. {
  39510. Players[playerid][pSkin] = Players[playerid][pUniform];
  39511. Players[playerid][pUniform] = INVALID_ID;
  39512. SendInfoMessage(playerid, "You have put on your clothes.");
  39513. ShowActionBubble(playerid, "* %s takes their clothes from the locker.", ReturnNameEx(playerid));
  39514. SetPlayerSkin(playerid, Players[playerid][pSkin]);
  39515. ShowLockerMenu(playerid);
  39516. }
  39517. else
  39518. {
  39519. new index = GetFirstUniform(Players[playerid][pFaction]);
  39520. if (index == INVALID_ID)
  39521. {
  39522. SendErrorMessage(playerid, "There are no uniforms setup for this faction.");
  39523. }
  39524. else
  39525. {
  39526. SetupUniformSelection(playerid);
  39527. SendInfoMessage(playerid, "Use the arrow keys to browse between uniforms. Press ~k~~VEHICLE_ENTER_EXIT~ to confirm and N to cancel.");
  39528. }
  39529. }
  39530. }
  39531. case 2:
  39532. {
  39533. ShowLockerEquipmentMenu(playerid);
  39534. }
  39535. case 3:
  39536. {
  39537. // YOU'RE NEXT!
  39538. //Dialog_Show(playerid, LEOClothes, DIALOG_STYLE_LIST, "Police Accessories", "Holster\nPolice Cap 1\nPolice Cap 2\nPolice Cap 3\nPolice Hat 1\nPolice Hat 2\nPolice Hat 3\nPolice Helmet\nPolice Armor\nPolice Shield\nRemove Accessories", "Wear", "Cancel");
  39539. ShowLockerAccessoryMenu(playerid);
  39540. }
  39541. case 4:
  39542. {
  39543. RemoveEquipment(playerid);
  39544. SendInfoMessage(playerid, "You have returned all of your equipment to the armory.");
  39545. }
  39546. }
  39547. }
  39548. return 1;
  39549. }
  39550. Dialog:ListWarrants(playerid, response, listitem, inputtext[])
  39551. {
  39552. if (response)
  39553. {
  39554. new
  39555. targetid = gListedItems[playerid][listitem],
  39556. Float:x,
  39557. Float:y,
  39558. Float:z;
  39559. if (IsPlayerConnected(targetid) && Players[targetid][pWarrants] > 0)
  39560. {
  39561. if (!GetPlayerPosEx(targetid, x, y, z))
  39562. {
  39563. SendErrorMessage(playerid, "The GPS could not determine their last known location.");
  39564. }
  39565. else
  39566. {
  39567. SetCheckpoint(playerid, CHECKPOINT_GPS, x, y, z, 3.0);
  39568. SendInfoMessage(playerid, "A waypoint has been set to %s's last known location.", ReturnNameEx(targetid, 0));
  39569. }
  39570. }
  39571. }
  39572. return 1;
  39573. }
  39574. Dialog:PlateInfo(playerid, response, listitem, inputtext[])
  39575. {
  39576. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  39577. {
  39578. return 0;
  39579. }
  39580. if (response)
  39581. {
  39582. /*new Float:x, Float:y, Float:z;
  39583. GetVehiclePos(Vehicles[Players[playerid][pSelected]][vVehicle], x, y, z);
  39584. SetCheckpoint(playerid, CHECKPOINT_GPS, x, y, z, 3.0);
  39585. SendInfoMessage(playerid, "A waypoint has been set to the vehicle's last known location.");*/
  39586. ShowNewMDCMenu(playerid);
  39587. }
  39588. return 1;
  39589. }
  39590. Dialog:HouseInfo(playerid, response, listitem, inputtext[])
  39591. {
  39592. if (response)
  39593. {
  39594. SetCheckpoint(playerid, CHECKPOINT_GPS, Houses[ Players[playerid][pSelected] ][hSpawn][0], Houses[ Players[playerid][pSelected] ][hSpawn][1], Houses[ Players[playerid][pSelected] ][hSpawn][2], 3.0);
  39595. SendInfoMessage(playerid, "A waypoint has been set to the house.");
  39596. }
  39597. return 1;
  39598. }
  39599. Dialog:FindAddress(playerid, response, listitem, inputtext[])
  39600. {
  39601. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  39602. {
  39603. return 0;
  39604. }
  39605. if (response)
  39606. {
  39607. new address[32];
  39608. if (sscanf(inputtext, "s[32]", address))
  39609. {
  39610. return Dialog_Show(playerid, FindAddress, DIALOG_STYLE_INPUT, "{FFFFFF}Find Address", "Please input the address of the house to trace:", "Submit", "Cancel");
  39611. }
  39612. else
  39613. {
  39614. for (new i = 0; i < MAX_HOUSES; i ++)
  39615. {
  39616. if (IsValidHouseID(i) && !strcmp(Houses[i][hAddress], address, true))
  39617. {
  39618. SetCheckpoint(playerid, CHECKPOINT_GPS, Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2], 3.0);
  39619. SendInfoMessage(playerid, "A waypoint has been set to the house at %s.", Houses[i][hAddress]);
  39620. return 1;
  39621. }
  39622. }
  39623. Dialog_Show(playerid, FindAddress, DIALOG_STYLE_INPUT, "{FFFFFF}Find Address", "The specified address is not in use.\n\nPlease input the address of the house to trace:", "Submit", "Cancel");
  39624. }
  39625. }
  39626. else
  39627. {
  39628. ShowMDCMainMenu(playerid);
  39629. }
  39630. return 1;
  39631. }
  39632. Dialog:MDC_AddressSearch(playerid, response, listitem, inputtext[])
  39633. {
  39634. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  39635. {
  39636. return 0;
  39637. }
  39638. if (response)
  39639. {
  39640. new address[32];
  39641. if (sscanf(inputtext, "s[32]", address))
  39642. {
  39643. return Dialog_Show(playerid, MDC_AddressSearch, DIALOG_STYLE_INPUT, "{FFFFFF}Mobile Data Computer - Address Search", "Please enter the full address:", "Submit", "Cancel");
  39644. }
  39645. else
  39646. {
  39647. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_houses WHERE hAddress = '%s'", address);
  39648. mysql_tquery(gConnection, gExecute, "OnPlayerTraceAddress", "is", playerid, address);
  39649. }
  39650. }
  39651. else
  39652. {
  39653. ShowNewMDCMenu(playerid);
  39654. }
  39655. return 1;
  39656. }
  39657. Dialog:TraceSerial(playerid, response, listitem, inputtext[])
  39658. {
  39659. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  39660. {
  39661. return 0;
  39662. }
  39663. if (response)
  39664. {
  39665. new serial;
  39666. if (sscanf(inputtext, "i", serial))
  39667. {
  39668. return Dialog_Show(playerid, TraceSerial, DIALOG_STYLE_INPUT, "{FFFFFF}Trace Serial", "Please input the serial number of the weapon to trace:", "Submit", "Cancel");
  39669. }
  39670. else
  39671. {
  39672. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_serials WHERE Serial = %i", serial);
  39673. mysql_tquery(gConnection, gExecute, "OnPlayerTraceSerial", "ii", playerid, serial);
  39674. }
  39675. }
  39676. else
  39677. {
  39678. ShowMDCMainMenu(playerid);
  39679. }
  39680. return 1;
  39681. }
  39682. Dialog:MDC_SerialSearch(playerid, response, listitem, inputtext[])
  39683. {
  39684. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  39685. {
  39686. return 0;
  39687. }
  39688. if (response)
  39689. {
  39690. new serial;
  39691. if (sscanf(inputtext, "i", serial))
  39692. {
  39693. return Dialog_Show(playerid, MDC_SerialSearch, DIALOG_STYLE_INPUT, "{FFFFFF}Mobile Data Computer - Serial Search", "Please enter the full serial number:", "Submit", "Cancel");
  39694. }
  39695. else
  39696. {
  39697. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_serials WHERE Serial = %i", serial);
  39698. mysql_tquery(gConnection, gExecute, "OnPlayerTraceSerial", "ii", playerid, serial);
  39699. }
  39700. }
  39701. else
  39702. {
  39703. ShowNewMDCMenu(playerid);
  39704. }
  39705. return 1;
  39706. }
  39707. Dialog:MDC_PlateSearch(playerid, response, listitem, inputtext[])
  39708. {
  39709. if (response)
  39710. {
  39711. new plate[64], vehicle;
  39712. if(sscanf(inputtext, "s[64]", plate)) return Dialog_Show(playerid, MDC_PlateSearch, DIALOG_STYLE_INPUT, "{FFFFFF}Plate Search", "Please input the license plate of the vehicle to trace:", "Submit", "Cancel");
  39713. if(!GetVehicleFromPlate(plate)) return Dialog_Show(playerid, MDCVehicle, DIALOG_STYLE_INPUT, "Moblie Data Computer - Plate Search", "PLATE SEARCH\n\nInsert plate info:\n"EMBED_RED"Plate wasn't found on the database.", "Enter", "Escape");
  39714. vehicle = GetVehicleFromPlate(plate);
  39715. format(msg, sizeof(msg), "PLATE SEARCH RESULT\n\nVehicle plate: %s\nVehicle model: %s\nVehicle owner: %s\n\nAdditional information: No outstanding reports", Vehicles[vehicle][vPlate], GetVehicleModelName(Vehicles[vehicle][vModel]), Vehicles[vehicle][vOwner]);
  39716. Dialog_Show(playerid, MDCResult, DIALOG_STYLE_MSGBOX, "{FFFFFF}Mobile Data Computer - Plate Search", msg, "Print", "");
  39717. }
  39718. else
  39719. {
  39720. ShowNewMDCMenu(playerid);
  39721. }
  39722. /*if (isnull(inputtext) || strlen(inputtext) > 32)
  39723. {
  39724. return Dialog_Show(playerid, MDC_PlateSearch, DIALOG_STYLE_INPUT, "{FFFFFF}Trace Plate", "Please input the license plate of the vehicle to trace:", "Submit", "Cancel");
  39725. }
  39726. else
  39727. {
  39728. new vehicle = GetVehicleFromPlate(inputtext);
  39729. if (IsValidVehicleID(vehicle))
  39730. {
  39731. format(gExecute, sizeof(gExecute), "SELECT Username FROM rp_accounts WHERE ID = %d", Vehicles[vehicle][vOwner]);
  39732. mysql_tquery(gConnection, gExecute, "OnPlayerTracePlate", "iis", playerid, vehicle, inputtext);
  39733. }
  39734. else
  39735. {
  39736. Dialog_Show(playerid, MDC_PlateSearch, DIALOG_STYLE_INPUT, "{FFFFFF}Trace Plate", "The specified plate is not registered to any vehicle.\n\nPlease input the license plate of the vehicle to trace:", "Submit", "Cancel");
  39737. }
  39738. }
  39739. }
  39740. else
  39741. {
  39742. ShowNewMDCMenu(playerid);
  39743. }*/
  39744. return 1;
  39745. }
  39746. Dialog:TracePlate(playerid, response, listitem, inputtext[])
  39747. {
  39748. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  39749. {
  39750. return 0;
  39751. }
  39752. if (response)
  39753. {
  39754. if (isnull(inputtext) || strlen(inputtext) > 32)
  39755. {
  39756. return Dialog_Show(playerid, TracePlate, DIALOG_STYLE_INPUT, "{FFFFFF}Trace Plate", "Please input the license plate of the vehicle to trace:", "Submit", "Cancel");
  39757. }
  39758. else
  39759. {
  39760. new
  39761. vehicle = GetVehicleFromPlate(inputtext);
  39762. if (IsValidVehicleID(vehicle))
  39763. {
  39764. format(gExecute, sizeof(gExecute), "SELECT Username FROM rp_accounts WHERE ID = %i", Vehicles[vehicle][vOwner]);
  39765. mysql_tquery(gConnection, gExecute, "OnPlayerTracePlate", "iis", playerid, vehicle, inputtext);
  39766. }
  39767. else
  39768. {
  39769. Dialog_Show(playerid, TracePlate, DIALOG_STYLE_INPUT, "{FFFFFF}Trace Plate", "The specified plate is not registered to any vehicle.\n\nPlease input the license plate of the vehicle to trace:", "Submit", "Cancel");
  39770. }
  39771. }
  39772. }
  39773. else
  39774. {
  39775. ShowMDCMainMenu(playerid);
  39776. }
  39777. return 1;
  39778. }
  39779. Dialog:SerialInfo(playerid, response, listitem, inputtext[])
  39780. {
  39781. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  39782. {
  39783. return 0;
  39784. }
  39785. else
  39786. {
  39787. ShowMDCMainMenu(playerid);
  39788. }
  39789. return 1;
  39790. }
  39791. Dialog:MDCInfo(playerid, response, listitem, inputtext[])
  39792. {
  39793. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  39794. {
  39795. return 0;
  39796. }
  39797. else
  39798. {
  39799. ShowMDCPlayerMenu(playerid);
  39800. }
  39801. return 1;
  39802. }
  39803. Dialog:MDC_Info(playerid, response, listitem, inputtext[])
  39804. {
  39805. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  39806. {
  39807. return 0;
  39808. }
  39809. else
  39810. {
  39811. ShowMDCPlayerMenuNew(playerid);
  39812. }
  39813. return 1;
  39814. }
  39815. Dialog:Warrants(playerid, response, listitem, inputtext[])
  39816. {
  39817. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  39818. {
  39819. return 0;
  39820. }
  39821. else
  39822. {
  39823. ShowMDCPlayerMenuNew(playerid);
  39824. }
  39825. return 1;
  39826. }
  39827. Dialog:Charges(playerid, response, listitem, inputtext[])
  39828. {
  39829. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  39830. {
  39831. return 0;
  39832. }
  39833. else
  39834. {
  39835. ShowMDCPlayerMenuNew(playerid);
  39836. }
  39837. return 1;
  39838. }
  39839. /*
  39840. format(string, sizeof(string), "Charge\tTime\n");
  39841. format(string, sizeof(string), "%s(1)01. Intimidation\t5min\n(1)02. Assault\t10min\n(1)03. Assault With A Deadly Weapon\t10min\n(1)04. Mutual Combat\t10min\n(1)05. Battery\t10min\n", string);
  39842. format(string, sizeof(string), "%s(1)06. Aggravated Battery\t10min\n(1)07. Attempted Murder\t10min\n", string);
  39843. format(string, sizeof(string), "%s(1)08. Manslaughter\t10min\n(1)09. Murder\t10min\n(1)10. False Imprisonment\t10min\n(1)11. Kidnapping\t10min\n(1)12. Mayhem\t10min\n", string);
  39844. format(string, sizeof(string), "%s(1)13. Vehicular Murder\t10min\n(2)01. Arson\t10min\n(2)02. Trespassing\t10min\n(2)03. Trespassing within a Restricted Facility\t10min\n", string);
  39845. format(string, sizeof(string), "%s(2)04. Burglary\t10min\n(2)05. Possession Of Burglary Tools\t10min\n(2)06. Robbery\t10min\n(2)07. Armed Robbery\t10min\n(2)08. Petty Theft\t10min\n", string);
  39846. format(string, sizeof(string), "%s(2)09. Theft\t10min\n(2)10. Grand Theft\t10min\n(2)11. Grand Theft Auto\t10min\n(2)12. Grand Theft Of A Firearm\t10min\n", string);
  39847. format(string, sizeof(string), "%s(2)13. Receiving Stolen Property\t10min\n(2)14. Extortion\t10min\n(2)15. Forgery\t10min\n(2)16. Fraud\t10min\n", string);
  39848. format(string, sizeof(string), "%s(2)17. Vandalism\t10min\n(3)01. Lewd Or Dissolute Conduct In Public\t10min\n(3)02. Indecent Exposure\t10min\n(3)03. Prostitution\t10min\n", string);
  39849. format(string, sizeof(string), "%s(3)04. Pandering / Pimping\t10min\n(3)05. Sexual Assault\t10min\n(3)06. Sexual Battery\t10min\n(3)07. Rape\t10min\n(3)08. Statutory Rape\t10min\n", string);
  39850. format(string, sizeof(string), "%s(3)09. Stalking\t10min", string);
  39851. */
  39852. Dialog:AddWarrant(playerid, response, listitem, inputtext[])
  39853. {
  39854. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  39855. {
  39856. return 0;
  39857. }
  39858. if (response)
  39859. {
  39860. if (isnull(inputtext))
  39861. {
  39862. return Dialog_Show(playerid, AddWarrant, DIALOG_STYLE_INPUT, "{FFFFFF}Add Warrant", "Please input the description of the warrant:", "Submit", "Back");
  39863. }
  39864. else
  39865. {
  39866. new
  39867. targetid = GetPlayerID(gTargetName[playerid]);
  39868. SendFactionMessage(Players[playerid][pFaction], COLOR_RADIO, "** %s has issued a warrant on %s for: %s **", ReturnNameEx(playerid, 0), gTargetName[playerid], inputtext);
  39869. ShowMDCPlayerMenu(playerid);
  39870. format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Warrants = Warrants + 1, TotalWarrants = TotalWarrants + 1 WHERE Username = '%s'", gTargetName[playerid]);
  39871. mysql_tquery(gConnection, gExecute);
  39872. format(gExecute, sizeof(gExecute), "INSERT INTO rp_warrantlogs (Player, Suspect, Date, Reason) VALUES('%s', '%s', NOW(), '%s')", ReturnName(playerid), gTargetName[playerid], mysql_escaped(inputtext));
  39873. mysql_tquery(gConnection, gExecute);
  39874. if (IsPlayerConnected(targetid))
  39875. {
  39876. Players[targetid][pWarrants]++;
  39877. Statistics[targetid][sTotalWarrants]++;
  39878. }
  39879. }
  39880. }
  39881. else
  39882. {
  39883. ShowMDCPlayerMenu(playerid);
  39884. }
  39885. return 1;
  39886. }
  39887. /*
  39888. Dialog:AddCharges(playerid, response, listitem, inputtext[])
  39889. {
  39890. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  39891. {
  39892. return 0;
  39893. }
  39894. if (response)
  39895. {
  39896. switch (listitem)
  39897. {
  39898. case 0:
  39899. {
  39900. new
  39901. targetid = GetPlayerID(gTargetName[playerid]);
  39902. SendFactionMessage(Players[playerid][pFaction], COLOR_RADIO, "** %s has placed a charge on %s for: Rape **");
  39903. ShowMDCPlayerMenuNew(playerid);
  39904. format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Charges = Charges + 1 WHERE Username = '%s'", gTargetName[playerid]);
  39905. mysql_tquery(gConnection, gExecute);
  39906. new string[128];
  39907. format(string, sizeof(string), "1) Rape");
  39908. new chargeid = 1;
  39909. format(gExecute, sizeof(gExecute), "INSERT INTO rp_charges (Player, Suspect, Reason, ChargeID) VALUES('%s', '%s', '%s', %i)", ReturnName(playerid), gTargetName[playerid], string, chargeid);
  39910. mysql_tquery(gConnection, gExecute);
  39911. if (IsPlayerConnected(targetid))
  39912. {
  39913. Players[targetid][pCharges]++;
  39914. }
  39915. }
  39916. case 1:
  39917. {
  39918. SendInfoMessage(playerid, "test");
  39919. }
  39920. }
  39921. }
  39922. else
  39923. {
  39924. ShowMDCPlayerMenu(playerid);
  39925. }
  39926. return 1;
  39927. }
  39928. */
  39929. Dialog:MDCPlayerNew(playerid, response, listitem, inputtext[])
  39930. {
  39931. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  39932. {
  39933. return 0;
  39934. }
  39935. if (response)
  39936. {
  39937. switch (listitem)
  39938. {
  39939. case 0:
  39940. {
  39941. format(gExecute, sizeof(gExecute), "SELECT ID, Age, Origin, Warrants, PhoneLastKnown, Charges, CarLicense, GunLicense, TotalWarrants FROM rp_accounts WHERE Username = '%s'", gTargetName[playerid]);
  39942. mysql_tquery(gConnection, gExecute, "OnMDCViewInformationNew", "i", playerid);
  39943. }
  39944. case 1:
  39945. {
  39946. format(gExecute, sizeof(gExecute), "SELECT ID, Age, Origin, Warrants, CarLicense, GunLicense, TotalWarrants FROM rp_accounts WHERE Username = '%s'", gTargetName[playerid]);
  39947. mysql_tquery(gConnection, gExecute, "OnMDCViewInformationNewPrint", "i", playerid);
  39948. }
  39949. case 2:
  39950. {
  39951. Dialog_Show(playerid, ManageWarrants, DIALOG_STYLE_LIST, "{FFFFFF}MDC - Manage Warrants", "List Warrants\nAdd Warrant\nClear Warrants", "Select", "Back");
  39952. }
  39953. case 3:
  39954. {
  39955. Dialog_Show(playerid, ManageLicenses, DIALOG_STYLE_LIST, "{FFFFFF}MDC - Manage Licenses", "Add Warnings\nSuspend Licenses", "Select", "Back");
  39956. }
  39957. case 4:
  39958. {
  39959. Dialog_Show(playerid, ManageCharges, DIALOG_STYLE_LIST, "{FFFFFF}MDC - Manage Charges", "View Charges\nAdd Charges\nClear All", "Select", "Back");
  39960. }
  39961. case 5:
  39962. {
  39963. //Dialog_Show(playerid, ArrestRecord, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}MDC - Arrest Record", "Officer\tDate\tTime\nBilly McKee\t2017/04/02\t53min\nMalcolm Summers\t2017/04/14\t75min", "Select", "Back");
  39964. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_arrestlogs WHERE Player = '%s'", gTargetName[playerid]);
  39965. mysql_tquery(gConnection, gExecute, "OnPlayerGetArrestLogs", "i", playerid);
  39966. }
  39967. }
  39968. }
  39969. return 1;
  39970. }
  39971. Dialog:ManageWarrants(playerid, response, listitem, inputtext[])
  39972. {
  39973. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  39974. {
  39975. return 0;
  39976. }
  39977. if (response)
  39978. {
  39979. switch (listitem)
  39980. {
  39981. case 0:
  39982. {
  39983. format(gExecute, sizeof(gExecute), "SELECT Warrants FROM rp_accounts WHERE Username = '%s'", gTargetName[playerid]);
  39984. mysql_tquery(gConnection, gExecute, "OnPlayerGetWarrants", "i", playerid);
  39985. }
  39986. case 1:
  39987. {
  39988. Dialog_Show(playerid, AddWarrant, DIALOG_STYLE_INPUT, "{FFFFFF}Add Warrant", "Please input the description of the warrant:", "Submit", "Back");
  39989. }
  39990. case 2:
  39991. {
  39992. new targetid = GetPlayerID(gTargetName[playerid]);
  39993. SendFactionMessage(Players[playerid][pFaction], COLOR_RADIO, "** %s has cleared %s's active warrants. **", ReturnNameEx(playerid, 0), gTargetName[playerid]);
  39994. ShowMDCPlayerMenuNew(playerid);
  39995. format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Warrants = 0 WHERE Username = '%s'", gTargetName[playerid]);
  39996. mysql_tquery(gConnection, gExecute);
  39997. if (IsPlayerConnected(targetid))
  39998. {
  39999. SendInfoMessage(targetid, "%s has cleared your warrants.", ReturnNameEx(playerid));
  40000. Players[targetid][pWarrants] = 0;
  40001. }
  40002. }
  40003. }
  40004. }
  40005. else
  40006. {
  40007. ShowMDCPlayerMenuNew(playerid);
  40008. }
  40009. return 1;
  40010. }
  40011. Dialog:ManageCharges(playerid, response, listitem, inputtext[])
  40012. {
  40013. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  40014. {
  40015. return 0;
  40016. }
  40017. if (response)
  40018. {
  40019. switch (listitem)
  40020. {
  40021. case 0:
  40022. {
  40023. format(gExecute, sizeof(gExecute), "SELECT Charges FROM rp_accounts WHERE Username = '%s'", gTargetName[playerid]);
  40024. mysql_tquery(gConnection, gExecute, "OnPlayerGetCharges", "i", playerid);//h�r
  40025. /*format(gExecute, sizeof(gExecute), "SELECT * FROM rp_charges WHERE Suspect = '%s' ORDER BY `ID` DESC", gTargetName[playerid]);
  40026. mysql_tquery(gConnection, gExecute, "OnPlayerViewCharges", "i", playerid);*/
  40027. /*format(gExecute, sizeof(gExecute), "SELECT * FROM rp_warrantlogs WHERE Suspect = '%s' ORDER BY `ID` DESC LIMIT %i", gTargetName[playerid], warrants);
  40028. mysql_tquery(gConnection, gExecute, "OnPlayerViewCharges", "i", playerid);*/
  40029. }
  40030. case 1:
  40031. {
  40032. /*new string[2048];
  40033. format(string, sizeof(string), "Charge\tTime\n");//GetArrestTime(chargeid)
  40034. format(string, sizeof(string), "%s(1)01. Intimidation\t%i Minutes\n(1)02. Assault\t%i Minutes\n(1)03. Assault With A Deadly Weapon\t%i Minutes\n(1)04. Mutual Combat\t%i Minutes\n(1)05. Battery\t%i Minutes\n",
  40035. string, GetArrestTime(0), GetArrestTime(1), GetArrestTime(2), GetArrestTime(3), GetArrestTime(4));//anuskuk
  40036. format(string, sizeof(string), "%s(1)06. Aggravated Battery\t%i Minutes\n(1)07. Attempted Murder\t%i Minutes\n",
  40037. string, GetArrestTime(5), GetArrestTime(6));
  40038. format(string, sizeof(string), "%s(1)08. Manslaughter\t%i Minutes\n(1)09. Murder\t%i Minutes\n(1)10. False Imprisonment\t%i Minutes\n(1)11. Kidnapping\t%i Minutes\n(1)12. Mayhem\t%i Minutes\n",
  40039. string, GetArrestTime(7), GetArrestTime(8), GetArrestTime(9), GetArrestTime(10), GetArrestTime(11));
  40040. format(string, sizeof(string), "%s(1)13. Vehicular Murder\t%i Minutes\n(2)01. Arson\t%i Minutes\n(2)02. Trespassing\t%i Minutes\n(2)03. Trespassing within a Restricted Facility\t%i Minutes\n",
  40041. string, GetArrestTime(12), GetArrestTime(13), GetArrestTime(14), GetArrestTime(15));
  40042. format(string, sizeof(string), "%s(2)04. Burglary\t%i\n(2)05. Possession Of Burglary Tools\t%i\n(2)06. Robbery\t%i\n(2)07. Armed Robbery\t%i\n(2)08. Petty Theft\t%i\n",
  40043. string, GetArrestTime(16), GetArrestTime(17), GetArrestTime(18), GetArrestTime(19), GetArrestTime(20));
  40044. format(string, sizeof(string), "%s(2)09. Theft\t%i Minutes\n(2)10. Grand Theft\t%i Minutes\n(2)11. Grand Theft Auto\t%i Minutes\n(2)12. Grand Theft Of A Firearm\t%i Minutes\n",
  40045. string, GetArrestTime(21), GetArrestTime(22), GetArrestTime(23), GetArrestTime(24));
  40046. format(string, sizeof(string), "%s(2)13. Receiving Stolen Property\t%i Minutes\n(2)14. Extortion\t%i Minutes\n(2)15. Forgery\t%i Minutes\n(2)16. Fraud\t%i Minutes\n",
  40047. string, GetArrestTime(25), GetArrestTime(26), GetArrestTime(27), GetArrestTime(28));
  40048. format(string, sizeof(string), "%s(2)17. Vandalism\t%i Minutes\n(3)01. Lewd Or Dissolute Conduct In Public\t%i Minutes\n(3)02. Indecent Exposure\t%i Minutes\n(3)03. Prostitution\t%i Minutes\n",
  40049. string, GetArrestTime(29), GetArrestTime(30), GetArrestTime(31), GetArrestTime(32));
  40050. format(string, sizeof(string), "%s(3)04. Pandering / Pimping\t%i Minutes\n(3)05. Sexual Assault\t%i Minutes\n(3)06. Sexual Battery\t%i Minutes\n(3)07. Rape\t%i Minutes\n(3)08. Statutory Rape\t%i Minutes\n",
  40051. string, GetArrestTime(33), GetArrestTime(34), GetArrestTime(35), GetArrestTime(36), GetArrestTime(37));
  40052. format(string, sizeof(string), "%s(3)09. Stalking\t%i Minutes",
  40053. string, GetArrestTime(38));
  40054. format(string, sizeof(string), "%s(4)01. Stalking\t%i Minutes",
  40055. string, GetArrestTime(38));
  40056. //format(string, sizeof(string), "%s", string);
  40057. //format(string, sizeof(string), "%s", string);
  40058. //format(string, sizeof(string), "%s", string);
  40059. //format(string, sizeof(string), "%s", string);
  40060. //format(string, sizeof(string), "%s", string);*/
  40061. //Dialog_Show(playerid, AddCharges, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Add Charges", string, "Submit", "Back");
  40062. Dialog_Show(playerid, ChargesCategory, DIALOG_STYLE_LIST, "{FFFFFF}Add Charges", "1. Crimes Against The Person\n2. Crimes Against Property And Criminal Profiteering\n3. Crimes Against Public Decency\n4. Crimes Against Public Justice\n5. Crimes Against Public Peace\n6. Crimes Against Public Health And Safety\n7. Crimes Against State Dependents\n8. Vehicular Offenses\n9. Control Of Deadly Weapons And Equipment",
  40063. "Submit", "Back");
  40064. }
  40065. case 2:
  40066. {
  40067. SendInfoMessage(playerid, "You have cleared %s of all charges.", gTargetName[playerid]);
  40068. new targetid = GetPlayerID(gTargetName[playerid]);
  40069. ShowMDCPlayerMenuNew(playerid);
  40070. format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Charges = 0 WHERE Username = '%s'", gTargetName[playerid]);
  40071. mysql_tquery(gConnection, gExecute);
  40072. if (IsPlayerConnected(targetid))
  40073. {
  40074. Players[targetid][pCharges] = 0;
  40075. }
  40076. }
  40077. }
  40078. }
  40079. else
  40080. {
  40081. ShowMDCPlayerMenuNew(playerid);
  40082. }
  40083. return 1;
  40084. }
  40085. /*
  40086. Dialog_Show(playerid, AddCharges, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Add Charges",
  40087. "1. Crimes Against The Person\n
  40088. 2. Crimes Against Property And Criminal Profiteering\n
  40089. 3. Crimes Against Public Decency\n
  40090. 4. Crimes Against Public Justice\n
  40091. 5. Crimes Against Public Peace\n
  40092. 6. Crimes Against Public Health And Safety\n
  40093. 7. Crimes Against State Dependents\n
  40094. 8. Vehicular Offenses\n
  40095. 9. Conttrol Of Deadly Weapons And Equipment",
  40096. "Submit", "Back");
  40097. */
  40098. /*
  40099. Dialog_Show(playerid, AddCharges0, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Add Charges",
  40100. "Penal Code\tTime In Jail\n
  40101. (1)01. Intimidation\t5 Minutes\n
  40102. (1)02. Assault\t10 Minutes\n
  40103. (1)03. Assault With A Deadly Weapon\t10 Minutes\n
  40104. (1)04. Mutual Combat\t15 Minutes\n
  40105. (1)05. Battery\t15 Minutes\n
  40106. (1)06. Aggravated Battery\t20 Minutes\n
  40107. (1)07. Attempted Murder\t25 Minutes\n
  40108. (1)08. Manslaughter\t25 Minutes\n
  40109. (1)09. Murder\t30 Minutes\n
  40110. (1)10. False Imprisonment\t20 Minutes\n
  40111. (1)11. Kidnapping\t10 Minutes\n
  40112. (1)12. Mayhem\t15 Minutes\n
  40113. (1)13. Vehicular Murder\t30 Minutes
  40114. ",
  40115. "Submit", "Back");
  40116. */
  40117. Dialog:ChargesCategory(playerid, response, listitem, inputtext[])
  40118. {
  40119. if (response)
  40120. {
  40121. switch (listitem)
  40122. {
  40123. case 0://Crimes Against The Person
  40124. {
  40125. Players[playerid][pAddCharges] = 1;
  40126. Dialog_Show(playerid, AddCharges, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Add Charges",
  40127. "Penal Code\tTime In Jail\n(1)01. Intimidation\t%i Minutes\n(1)02. Assault\t%i Minutes\n(1)03. Assault With A Deadly Weapon\t%i Minutes\n(1)04. Mutual Combat\t%i Minutes\n(1)05. Battery\t%i Minutes\n(1)06. Aggravated Battery\t%i Minutes\n(1)07. Attempted Murder\t%i Minutes\n(1)08. Manslaughter\t%i Minutes\n(1)09. Murder\t%i Minutes\n(1)10. False Imprisonment\t%i Minutes\n(1)11. Kidnapping\t%i Minutes\n(1)12. Mayhem\t%i Minutes\n(1)13. Vehicular Murder\t%i Minutes",
  40128. "Submit", "Back",
  40129. GetArrestTime(1, 1),
  40130. GetArrestTime(1, 2),
  40131. GetArrestTime(1, 3),
  40132. GetArrestTime(1, 4),
  40133. GetArrestTime(1, 5),
  40134. GetArrestTime(1, 6),
  40135. GetArrestTime(1, 7),
  40136. GetArrestTime(1, 8),
  40137. GetArrestTime(1, 9),
  40138. GetArrestTime(1, 10),
  40139. GetArrestTime(1, 11),
  40140. GetArrestTime(1, 12),
  40141. GetArrestTime(1, 13)
  40142. );
  40143. }
  40144. case 1://Crimes Against Property And Criminal Profiteering
  40145. {
  40146. Players[playerid][pAddCharges] = 2;
  40147. new string[2048];
  40148. format(string, sizeof(string), "Penal Code\tTime In Jail\n(2)01. Arson\t%i Minutes\n(2)02. Trespassing\t%i Minutes\n(2)03. Trespassing within a Restricted Facility\t%i Minutes\n(2)04. Burglary\t%i Minutes\n(2)05. Possession Of Burglary Tools\t%i Minutes\n(2)06. Robbery\t%i Minutes\n(2)07. Armed Robbery\t%i Minutes\n(2)08. Petty Theft\t%i Minutes\n(2)09. Theft\t%i Minutes\n",
  40149. GetArrestTime(2, 1),
  40150. GetArrestTime(2, 2),
  40151. GetArrestTime(2, 3),
  40152. GetArrestTime(2, 4),
  40153. GetArrestTime(2, 5),
  40154. GetArrestTime(2, 6),
  40155. GetArrestTime(2, 7),
  40156. GetArrestTime(2, 8),
  40157. GetArrestTime(2, 9)
  40158. );
  40159. format(string, sizeof(string), "%s(2)10. Grand Theft\t%i Minutes\n(2)11. Grand Theft Auto\t%i Minutes\n(2)12. Grand Theft Of A Firearm\t%i Minutes\n(2)13. Receiving Stolen Property\t%i Minutes\n(2)14. Extortion\t%i Minutes\n(2)15. Forgery\t%i Minutes\n(2)16. Fraud\t%i Minutes\n(2)17. Vandalism\t%i Minutes",
  40160. string,
  40161. GetArrestTime(2, 10),
  40162. GetArrestTime(2, 11),
  40163. GetArrestTime(2, 12),
  40164. GetArrestTime(2, 13),
  40165. GetArrestTime(2, 14),
  40166. GetArrestTime(2, 15),
  40167. GetArrestTime(2, 16),
  40168. GetArrestTime(2, 17)
  40169. );
  40170. Dialog_Show(playerid, AddCharges, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Add Charges",
  40171. string,
  40172. "Submit", "Back");
  40173. }
  40174. case 2://Crimes Against Public Decency
  40175. {
  40176. Players[playerid][pAddCharges] = 3;
  40177. Dialog_Show(playerid, AddCharges, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Add Charges",
  40178. "Penal Code\tTime In Jail\n(3)01. Lewd Or Dissolute Conduct In Public\t%i Minutes\n(3)02. Indecent Exposure\t%i Minutes\n(3)03. Prostitution\t%i Minutes\n(3)04. Pandering / Pimping\t%i Minutes\n(3)05. Sexual Assault\t%i Minutes\n(3)06. Sexual Battery\t%i Minutes\n(3)07. Rape\t%i Minutes\n(3)08. Statutory Rape\t%i Minutes\n(3)09. Stalking\t%i Minutes",
  40179. "Submit", "Back",
  40180. GetArrestTime(3, 1),
  40181. GetArrestTime(3, 2),
  40182. GetArrestTime(3, 3),
  40183. GetArrestTime(3, 4),
  40184. GetArrestTime(3, 5),
  40185. GetArrestTime(3, 6),
  40186. GetArrestTime(3, 7),
  40187. GetArrestTime(3, 8),
  40188. GetArrestTime(3, 9)
  40189. );
  40190. }
  40191. case 3://Crimes Against Public Justice
  40192. {
  40193. Players[playerid][pAddCharges] = 4;
  40194. new string[2048];
  40195. format(string, sizeof(string), "Penal Code\tTime In Jail\n(4)01. Bribery\t%i Minutes\n(4)02. Failure To Pay A Fine\t%i Minutes\n(4)03. Contempt of Court\t%i Minutes\n(4)04. Subpoena Violation\t%i Minutes\n(4)05. Dissuading A Witness Or Victim\t%i Minutes\n(4)06. False Information To A Government Employee\t%i Minutes\n(4)07. Filing A False Complaint\t%i Minutes\n(4)08. Perjury\t%i Minutes",
  40196. GetArrestTime(4, 1),
  40197. GetArrestTime(4, 2),
  40198. GetArrestTime(4, 3),
  40199. GetArrestTime(4, 4),
  40200. GetArrestTime(4, 5),
  40201. GetArrestTime(4, 6),
  40202. GetArrestTime(4, 7),
  40203. GetArrestTime(4, 8)
  40204. );
  40205. format(string, sizeof(string), "%s\n(4)09. Failure To Identify To A Peace Officer\t%i Minutes\n(4)10. Impersonation Of A Government Employee\t%i Minutes\n(4)11. Obstruction Of A Government Employee\t%i Minutes\n",
  40206. string,
  40207. GetArrestTime(4, 9),
  40208. GetArrestTime(4, 10),
  40209. GetArrestTime(4, 11)
  40210. );
  40211. format(string, sizeof(string), "%s(4)12. Resisting A Peace Officer\t%i Minutes\n(4)13. Escape From Custody\t%i Minutes\n(4)14. Escape\t%i Minutes\n(4)15. Prisoner Brekaout\t%i Minutes\n(4)16. Human Trafficking\t%i Minutes\n(4)17. Misuse Of A Government Hotline\t%i Minutes\n(4)18. Tampering With Evidence\t%i Minutes",
  40212. string,
  40213. GetArrestTime(4, 12),
  40214. GetArrestTime(4, 13),
  40215. GetArrestTime(4, 14),
  40216. GetArrestTime(4, 15),
  40217. GetArrestTime(4, 16),
  40218. GetArrestTime(4, 17),
  40219. GetArrestTime(4, 18)
  40220. );
  40221. format(string, sizeof(string), "%s\n(4)19. Introduction Of Contraband\t%i Minutes\n(4)20. Violation Of Parole Or Probation\t%i Minutes\n(4)21. Voter Fraud / Voter Pandering\t%i Minutes\n(4)22. Corruption Of Public Duty\t%i Minutes\n(4)23. Corruption Of Public Office\t%i Minutes",
  40222. string,
  40223. GetArrestTime(4, 19),
  40224. GetArrestTime(4, 20),
  40225. GetArrestTime(4, 21),
  40226. GetArrestTime(4, 22),
  40227. GetArrestTime(4, 23)
  40228. );
  40229. Dialog_Show(playerid, AddCharges, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Add Charges",
  40230. string,
  40231. "Submit", "Back");
  40232. }
  40233. case 4://Crimes Against Public Peace
  40234. {
  40235. Players[playerid][pAddCharges] = 5;
  40236. Dialog_Show(playerid, AddCharges, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Add Charges",
  40237. "Penal Code\tTime In Jail\n(5)01. Disturbing The Peace\t%i Minutes\n(5)02. Unlawful Assembly\t%i Minutes\n(5)03. Incitement To Riot\t%i Minutes\n(5)04. Vigilantism\t%i Minutes",
  40238. "Submit", "Back",
  40239. GetArrestTime(5, 1),
  40240. GetArrestTime(5, 2),
  40241. GetArrestTime(5, 3),
  40242. GetArrestTime(5, 4)
  40243. );
  40244. }
  40245. case 5://Crimes Against Public Health And Safety
  40246. {
  40247. Players[playerid][pAddCharges] = 6;
  40248. new string[2048];
  40249. format(string, sizeof(string), "Penal Code\tTime In Jail\n(6)01. Possession Of A Controlled Substance\t%i Minutes\n(6)02. Possession Of A Controlled Substance With Intent To Sell\t%i Minutes\n(6)03. Possession Of Drug Paraphernalia\t%i Minutes\n(6)04. Maintaining A Place For The Purpose Of Distribution\t%i Minutes\n(6)05. Manufacture Of A Controlled Substance\t%i Minutes\n(6)06. Sale Of A Controlled Substance\t%i Minutes\n",
  40250. GetArrestTime(6, 1),
  40251. GetArrestTime(6, 2),
  40252. GetArrestTime(6, 3),
  40253. GetArrestTime(6, 4),
  40254. GetArrestTime(6, 5),
  40255. GetArrestTime(6, 6)
  40256. );
  40257. format(string, sizeof(string), "%s(6)07. Possession Of An Open Container\t%i Minutes\n(6)08. Public Intoxication\t%i Minutes\n(6)09. Under The Influence Of A Controlled Substance\t%i Minutes\n(6)10. Facial Obstruction While Committing A Crime\t%i Minutes\n(6)11. Terrorism\t%i Minutes\n(6)12. Possession Of Marijuana\t%i Minutes",
  40258. string,
  40259. GetArrestTime(6, 7),
  40260. GetArrestTime(6, 8),
  40261. GetArrestTime(6, 9),
  40262. GetArrestTime(6, 10),
  40263. GetArrestTime(6, 11),
  40264. GetArrestTime(6, 12)
  40265. );
  40266. Dialog_Show(playerid, AddCharges, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Add Charges",
  40267. string,
  40268. "Submit", "Back");
  40269. }
  40270. case 6://Crimes Against State Dependents
  40271. {
  40272. Players[playerid][pAddCharges] = 7;
  40273. Dialog_Show(playerid, AddCharges, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Add Charges",
  40274. "Penal Code\tTime In Jail\n(7)01. Animal Abuse / Cruelty\t%i Minutes\n(7)02. Child Abuse\t%i Minutes\n(7)03. Sale Of Alcohol To A Minor\t%i Minutes\n(7)04. Minor Alcohol Violation\t%i Minutes",
  40275. "Submit", "Back",
  40276. GetArrestTime(7, 1),
  40277. GetArrestTime(7, 2),
  40278. GetArrestTime(7, 3),
  40279. GetArrestTime(7, 4)
  40280. );
  40281. }
  40282. case 7://Vehicular Offenses
  40283. {
  40284. Players[playerid][pAddCharges] = 8;
  40285. new string[2048];
  40286. format(string, sizeof(string), "Penal Code\tTime In Jail\n(8)01. Driving With A Suspended License\t%i Minutes\n(8)02. Eluding A Peace Officer\t%i Minutes\n(8)03. Flying Without A Pilot's License\t%i Minutes\n(8)04. Hit And Run\t%i Minutes\n(8)05. Reckless Operation Of An Aircraft\t%i Minutes\n",
  40287. GetArrestTime(8, 1),
  40288. GetArrestTime(8, 2),
  40289. GetArrestTime(8, 3),
  40290. GetArrestTime(8, 4),
  40291. GetArrestTime(8, 5),
  40292. GetArrestTime(8, 6),
  40293. GetArrestTime(8, 7)
  40294. );
  40295. format(string, sizeof(string), "%s(8)06. Reckless Operation Of An Off-Road Or Naval Vehicle\t%i Minutes\n(8)07. Failure To Adhere To ATC Protocols\t%i Minutes\n(8)08. Failure To Adhere To Flight Protocols\t%i Minutes\n(8)09. Aerial Evasion\t%i Minutes\n(8)10. Restricted Airspace Violation\t%i Minutes",
  40296. string,
  40297. GetArrestTime(8, 8),
  40298. GetArrestTime(8, 9),
  40299. GetArrestTime(8, 10)
  40300. );
  40301. Dialog_Show(playerid, AddCharges, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Add Charges", string, "Submit", "Back");
  40302. }
  40303. case 8://Conttrol Of Deadly Weapons And Equipment
  40304. {
  40305. Players[playerid][pAddCharges] = 9;
  40306. new string[2048];
  40307. format(string, sizeof(string), "Penal Code\tTime In Jail\n(9)01. Possession Of An Illegal Blade\t%i Minutes\n(9)02. Possession Of An Unlicensed Firearm\t%i Minutes\n(9)03. Possession Of An Illegal Firearm\t%i Minutes\n(9)04. Possession Of An Assault Weapon\t%i Minutes\n(9)05. Unlicensed Sale Of A Firearm\t%i Minutes\n(9)06. Possession Of An Explosive Device\t%i Minutes\n",
  40308. GetArrestTime(9, 1),
  40309. GetArrestTime(9, 2),
  40310. GetArrestTime(9, 3),
  40311. GetArrestTime(9, 4),
  40312. GetArrestTime(9, 5),
  40313. GetArrestTime(9, 6),
  40314. GetArrestTime(9, 7),
  40315. GetArrestTime(9, 8)
  40316. );
  40317. format(string, sizeof(string), "%s(9)07. Manufacture or Possession of an Improvised Device\t%i Minutes\n(9)08. Possession of Weaponry With Intent To Sell\t%i Minutes\n(9)09. Possession Of Explosive Devices With Intent To Sell\t%i Minutes\n(9)10. Brandishing A Firearm\t%i Minutes\n(9)11. Weapons Discharge Violation\t%i Minutes\n(9)12. Drive-By Shooting\t%i Minutes\n(9)13. CCW / FPC Violation\t%i Minutes",
  40318. string,
  40319. GetArrestTime(9, 9),
  40320. GetArrestTime(9, 10),
  40321. GetArrestTime(9, 11),
  40322. GetArrestTime(9, 12),
  40323. GetArrestTime(9, 13)
  40324. );
  40325. Dialog_Show(playerid, AddCharges, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Add Charges", string, "Submit", "Back");
  40326. }
  40327. }
  40328. }
  40329. else
  40330. {
  40331. ShowMDCPlayerMenuNew(playerid);
  40332. }
  40333. return 1;
  40334. }
  40335. Dialog:AddCharges(playerid, response, listitem, inputtext[])
  40336. {
  40337. if (response)
  40338. {
  40339. new targetid = GetPlayerID(gTargetName[playerid]);
  40340. new time = GetArrestTime(Players[playerid][pAddCharges], listitem+1);
  40341. SendInfoMessage(playerid, "Charge '%s' added to %s for %i minutes.", inputtext, gTargetName[playerid], time);
  40342. Dialog_Show(playerid, ChargesCategory, DIALOG_STYLE_LIST, "{FFFFFF}Add Charges", "1. Crimes Against The Person\n2. Crimes Against Property And Criminal Profiteering\n3. Crimes Against Public Decency\n4. Crimes Against Public Justice\n5. Crimes Against Public Peace\n6. Crimes Against Public Health And Safety\n7. Crimes Against State Dependents\n8. Vehicular Offenses\n9. Control Of Deadly Weapons And Equipment",
  40343. "Submit", "Back");
  40344. new chargecat;
  40345. if(strfind(inputtext, "(1)", true) != -1)
  40346. chargecat = 1;
  40347. if(strfind(inputtext, "(2)", true) != -1)
  40348. chargecat = 2;
  40349. if(strfind(inputtext, "(3)", true) != -1)
  40350. chargecat = 3;
  40351. if(strfind(inputtext, "(4)", true) != -1)
  40352. chargecat = 4;
  40353. if(strfind(inputtext, "(5)", true) != -1)
  40354. chargecat = 5;
  40355. if(strfind(inputtext, "(6)", true) != -1)
  40356. chargecat = 6;
  40357. if(strfind(inputtext, "(7)", true) != -1)
  40358. chargecat = 7;
  40359. if(strfind(inputtext, "(8)", true) != -1)
  40360. chargecat = 8;
  40361. if(strfind(inputtext, "(9)", true) != -1)
  40362. chargecat = 9;
  40363. format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Charges = Charges + 1 WHERE Username = '%s'", gTargetName[playerid]);
  40364. mysql_tquery(gConnection, gExecute);
  40365. format(gExecute, sizeof(gExecute), "INSERT INTO rp_charges (Player, Suspect, Reason, ChargeCat, ChargeID, Time) VALUES('%s', '%s', '%s', %i, %i, %i)", ReturnName(playerid), gTargetName[playerid], mysql_escaped(inputtext), chargecat, listitem+1, time);
  40366. mysql_tquery(gConnection, gExecute);
  40367. if (IsPlayerConnected(targetid))
  40368. {
  40369. Players[targetid][pCharges]++;
  40370. }
  40371. }
  40372. else
  40373. {
  40374. Dialog_Show(playerid, ChargesCategory, DIALOG_STYLE_LIST, "{FFFFFF}Add Charges", "1. Crimes Against The Person\n2. Crimes Against Property And Criminal Profiteering\n3. Crimes Against Public Decency\n4. Crimes Against Public Justice\n5. Crimes Against Public Peace\n6. Crimes Against Public Health And Safety\n7. Crimes Against State Dependents\n8. Vehicular Offenses\n9. Control Of Deadly Weapons And Equipment",
  40375. "Submit", "Back");
  40376. }
  40377. return 1;
  40378. }
  40379. //Dialog_Show(playerid, AddCharges, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Add Charges", "Charge\tTime\n1) Rape\t50min\n2) Not rape\t100min", "Submit", "Back");
  40380. /*Dialog:AddCharges(playerid, response, listitem, inputtext[])
  40381. {
  40382. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  40383. {
  40384. return 0;
  40385. }
  40386. if (response)
  40387. {
  40388. new targetid = GetPlayerID(gTargetName[playerid]);
  40389. new time = GetArrestTime(listitem);
  40390. SendInfoMessage(playerid, "Charge '%s' added to %s for %i minutes.", inputtext, gTargetName[playerid], time);
  40391. ShowMDCPlayerMenuNew(playerid);
  40392. format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Charges = Charges + 1 WHERE Username = '%s'", gTargetName[playerid]);
  40393. mysql_tquery(gConnection, gExecute);
  40394. format(gExecute, sizeof(gExecute), "INSERT INTO rp_charges (Player, Suspect, Reason, ChargeID, Time) VALUES('%s', '%s', '%s', %i, %i)", ReturnName(playerid), gTargetName[playerid], mysql_escaped(inputtext), listitem, time);
  40395. mysql_tquery(gConnection, gExecute);
  40396. if (IsPlayerConnected(targetid))
  40397. {
  40398. Players[targetid][pCharges]++;
  40399. }
  40400. }
  40401. else
  40402. {
  40403. ShowMDCPlayerMenu(playerid);
  40404. }
  40405. return 1;
  40406. }*/
  40407. Dialog:ManageLicenses(playerid, response, listitem, inputtext[])
  40408. {
  40409. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  40410. {
  40411. return 0;
  40412. }
  40413. if (response)
  40414. {
  40415. switch (listitem)
  40416. {
  40417. case 0:
  40418. {
  40419. Dialog_Show(playerid, ManageLicenses, DIALOG_STYLE_LIST, "{FFFFFF}MDC - Manage Licenses - Add Warning", "Drivers License\nWeapons License", "Select", "Back");
  40420. }
  40421. case 1:
  40422. {
  40423. Dialog_Show(playerid, ManageLicenses, DIALOG_STYLE_LIST, "{FFFFFF}MDC - Manage Licenses - Revoke License", "Drivers License\nWeapons License", "Select", "Back");
  40424. }
  40425. }
  40426. }
  40427. else
  40428. {
  40429. ShowMDCPlayerMenuNew(playerid);
  40430. }
  40431. return 1;
  40432. }
  40433. //Dialog_Show(playerid, MDCPlayerNew, DIALOG_STYLE_LIST, string, "View Information\nPrint Information\nManage Warrants\nManage Licenses\nApply Charges\nArrest Record", "Select", "Cancel");
  40434. Dialog:MDCPlayer(playerid, response, listitem, inputtext[])
  40435. {
  40436. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  40437. {
  40438. return 0;
  40439. }
  40440. if (response)
  40441. {
  40442. switch (listitem)
  40443. {
  40444. case 0:
  40445. {
  40446. Dialog_Show(playerid, AddWarrant, DIALOG_STYLE_INPUT, "{FFFFFF}Add Warrant", "Please input the description of the warrant:", "Submit", "Back");
  40447. }
  40448. case 1:
  40449. {
  40450. format(gExecute, sizeof(gExecute), "SELECT Warrants FROM rp_accounts WHERE Username = '%s'", gTargetName[playerid]);
  40451. mysql_tquery(gConnection, gExecute, "OnPlayerGetWarrants", "i", playerid);
  40452. }
  40453. case 2:
  40454. {
  40455. new targetid = GetPlayerID(gTargetName[playerid]);
  40456. SendFactionMessage(Players[playerid][pFaction], COLOR_RADIO, "** %s has cleared %s's active warrants. **", ReturnNameEx(playerid, 0), gTargetName[playerid]);
  40457. ShowMDCPlayerMenu(playerid);
  40458. format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Warrants = 0 WHERE Username = '%s'", gTargetName[playerid]);
  40459. mysql_tquery(gConnection, gExecute);
  40460. if (IsPlayerConnected(targetid))
  40461. {
  40462. SendInfoMessage(targetid, "%s has cleared your warrants.", ReturnNameEx(playerid));
  40463. Players[targetid][pWarrants] = 0;
  40464. }
  40465. }
  40466. case 3:
  40467. {
  40468. format(gExecute, sizeof(gExecute), "SELECT ID, Age, Origin, Warrants, CarLicense, GunLicense, TotalWarrants FROM rp_accounts WHERE Username = '%s'", gTargetName[playerid]);
  40469. mysql_tquery(gConnection, gExecute, "OnMDCViewInformation", "i", playerid);
  40470. }
  40471. }
  40472. }
  40473. else
  40474. {
  40475. ShowMDCMainMenu(playerid);
  40476. }
  40477. return 1;
  40478. }
  40479. Dialog:SearchPlayer(playerid, response, listitem, inputtext[])
  40480. {
  40481. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  40482. {
  40483. return 0;
  40484. }
  40485. if (response)
  40486. {
  40487. if (isnull(inputtext) || strlen(inputtext) > 24)
  40488. {
  40489. return Dialog_Show(playerid, SearchPlayer, DIALOG_STYLE_INPUT, "{FFFFFF}Search Player", "Please input the full name of the player:", "Submit", "Cancel");
  40490. }
  40491. else
  40492. {
  40493. format(gExecute, sizeof(gExecute), "SELECT ID, Warrants FROM rp_accounts WHERE Username = '%s'", mysql_escaped(inputtext));
  40494. mysql_tquery(gConnection, gExecute, "OnPlayerSearchPlayer", "is", playerid, inputtext);
  40495. }
  40496. }
  40497. else
  40498. {
  40499. ShowMDCMainMenu(playerid);
  40500. }
  40501. return 1;
  40502. }
  40503. Dialog:MDC_LookUp(playerid, response, listitem, inputtext[])
  40504. {
  40505. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  40506. {
  40507. return 0;
  40508. }
  40509. if (response)
  40510. {
  40511. if (isnull(inputtext) || strlen(inputtext) > 24)
  40512. {
  40513. return Dialog_Show(playerid, MDC_LookUp, DIALOG_STYLE_INPUT, "{FFFFFF}Mobile Data Computer - Name Search", "Error: Please enter a name.\n\nPlease enter the full name of the person:", "Submit", "Cancel");
  40514. }
  40515. else
  40516. {
  40517. //format(gExecute, sizeof(gExecute), "SELECT ID, Warrants FROM rp_accounts WHERE Username = '%s'", mysql_escaped(inputtext));
  40518. format(gExecute, sizeof(gExecute), "SELECT ID, Warrants FROM rp_accounts WHERE Username = '%s'", mysql_escaped(inputtext));
  40519. mysql_tquery(gConnection, gExecute, "OnMdcSearchPlayer", "is", playerid, inputtext);
  40520. }
  40521. }
  40522. else
  40523. {
  40524. ShowNewMDCMenu(playerid);
  40525. //Dialog_Show(playerid, MDC_MainMenu, DIALOG_STYLE_LIST, "{FFFFFF}Mobile Data Computer - Main Menu", "MAIN SCREEN\nNAME SEARCH\nPLATE SEARCH\nSERIAL SEARCH\nADDRESS SEARCH\nLAST 911\nCALLSIGNS", "Login", "Exit");
  40526. }
  40527. return 1;
  40528. }
  40529. Dialog:MDC_Login(playerid, response, listitem, inputtext[])
  40530. {
  40531. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  40532. {
  40533. return 0;
  40534. }
  40535. if (response)
  40536. {
  40537. ShowNewMDCMenu(playerid);
  40538. /*new string[256];
  40539. format(string, sizeof(string), "%s %s\n\nOFFICERS ON DUTY: %i\nCALLS LAST HOUR: 0\nARRESTS LAST HOUR: 0", GetPlayerFactionRank(playerid), ReturnNameEx(playerid));*/
  40540. //Dialog_Show(playerid, MDC_MainMenu, DIALOG_STYLE_LIST, "{FFFFFF}Mobile Data Computer - Main Menu", "MAIN SCREEN\nNAME SEARCH\nPLATE SEARCH\nSERIAL SEARCH\nADDRESS SEARCH\nLAST 911\nCALLSIGNS", "Login", "Exit"); }
  40541. }
  40542. return 1;
  40543. }
  40544. Dialog:MDC_MainMenu(playerid, response, listitem, inputtext[])
  40545. {
  40546. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  40547. {
  40548. return 0;
  40549. }
  40550. if (response)
  40551. {
  40552. switch (listitem)
  40553. {
  40554. case 0:
  40555. {
  40556. ShowNewMDC(playerid);
  40557. }
  40558. case 1:
  40559. {
  40560. Dialog_Show(playerid, MDC_LookUp, DIALOG_STYLE_INPUT, "{FFFFFF}Mobile Data Computer - Name Search", "Please enter the full name of the person:", "Submit", "Cancel");
  40561. }
  40562. case 2:
  40563. {
  40564. Dialog_Show(playerid, MDC_PlateSearch, DIALOG_STYLE_INPUT, "{FFFFFF}Mobile Data Computer - Plate Search", "Please enter the full plate number:", "Submit", "Cancel");
  40565. }
  40566. case 3:
  40567. {
  40568. Dialog_Show(playerid, MDC_SerialSearch, DIALOG_STYLE_INPUT, "{FFFFFF}Mobile Data Computer - Serial Search", "Please enter the full serial number:", "Submit", "Cancel");
  40569. }
  40570. case 4:
  40571. {
  40572. Dialog_Show(playerid, MDC_AddressSearch, DIALOG_STYLE_INPUT, "{FFFFFF}Mobile Data Computer - Address Search", "Please enter the full address:", "Submit", "Cancel");
  40573. }
  40574. case 5:
  40575. {
  40576. //Dialog_Show(playerid, MDC_LastCalls, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Mobile Data Computer - Last 911 Calls", "Number\tMessage\tDate\n12345\t'Test Test Test Test Test..'\t01/01/2001", "Options", "Cancel");
  40577. ListEmergency(playerid);
  40578. }
  40579. case 6:
  40580. {
  40581. //ShowFactionRoster(playerid);
  40582. //ShowCallsignMenu(playerid);
  40583. ShowCallsigns(playerid);
  40584. }
  40585. }
  40586. }
  40587. return 1;
  40588. }
  40589. Dialog:MDC_CallsignMenu(playerid, response, listitem, inputtext[])
  40590. {
  40591. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  40592. {
  40593. return 0;
  40594. }
  40595. if (response)
  40596. {
  40597. /*for (new i = 0; i < sizeof(g_Callsigns); i ++)
  40598. {
  40599. if(g_Callsigns[i][e_CallsignFaction] == 1)
  40600. {
  40601. format(string, sizeof(string), "%s\nNobody\t%s\t%s", string, g_Callsigns[i][e_CallsignTextShort], g_Callsigns[i][e_CallsignTextFull]);
  40602. }
  40603. }*/
  40604. if (g_Callsigns[listitem][e_CallsignTakenBy] != INVALID_ID && g_Callsigns[listitem][e_CallsignTakenBy] != playerid)
  40605. {
  40606. SendErrorMessage(playerid, "This callsign is already taken.");
  40607. return 1;
  40608. }
  40609. if (g_Callsigns[listitem][e_CallsignTakenBy] == playerid)
  40610. {
  40611. SendFactionMessage(Players[playerid][pFaction], COLOR_RADIO, "** %s has left callsign %s. **", ReturnNameEx(playerid, 0), g_Callsigns[listitem][e_CallsignTextFull]);
  40612. Players[playerid][pFactionCallsign] = 0;
  40613. g_Callsigns[listitem][e_CallsignTakenBy] = INVALID_ID;
  40614. return 1;
  40615. }
  40616. if (Players[playerid][pFactionCallsign] != 0)
  40617. return SendErrorMessage(playerid, "You already have a callsign.");
  40618. Players[playerid][pFactionCallsign] = listitem;
  40619. g_Callsigns[listitem][e_CallsignTakenBy] = playerid;
  40620. SendFactionMessage(Players[playerid][pFaction], COLOR_RADIO, "** %s has taken callsign %s. **", ReturnNameEx(playerid, 0), g_Callsigns[listitem][e_CallsignTextFull]);
  40621. }
  40622. else
  40623. {
  40624. ShowNewMDCMenu(playerid);
  40625. }
  40626. return 1;
  40627. }
  40628. /*
  40629. Dialog:SearchPlayer(playerid, response, listitem, inputtext[])
  40630. {
  40631. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  40632. {
  40633. return 0;
  40634. }
  40635. if (response)
  40636. {
  40637. if (isnull(inputtext) || strlen(inputtext) > 24)
  40638. {
  40639. return Dialog_Show(playerid, SearchPlayer, DIALOG_STYLE_INPUT, "{FFFFFF}Search Player", "Please input the full name of the player:", "Submit", "Cancel");
  40640. }
  40641. else
  40642. {
  40643. format(gExecute, sizeof(gExecute), "SELECT ID, Warrants FROM rp_accounts WHERE Username = '%s'", mysql_escaped(inputtext));
  40644. mysql_tquery(gConnection, gExecute, "OnPlayerSearchPlayer", "is", playerid, inputtext);
  40645. }
  40646. }
  40647. else
  40648. {
  40649. ShowMDCMainMenu(playerid);
  40650. }
  40651. return 1;
  40652. }
  40653. */
  40654. Dialog:MDC(playerid, response, listitem, inputtext[])
  40655. {
  40656. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  40657. {
  40658. return 0;
  40659. }
  40660. if (response)
  40661. {
  40662. switch (listitem)
  40663. {
  40664. case 0:
  40665. {
  40666. Dialog_Show(playerid, SearchPlayer, DIALOG_STYLE_INPUT, "{FFFFFF}Search Player", "Please input the full name of the player:", "Submit", "Cancel");
  40667. }
  40668. case 1:
  40669. {
  40670. new success = ListApbs(playerid);
  40671. if (!success)
  40672. {
  40673. return SendErrorMessage(playerid,"There are no APBs active.");
  40674. }
  40675. /*new
  40676. index,
  40677. displayString[2048];
  40678. foreach (new i : Player)
  40679. {
  40680. if (Players[i][pWarrants] > 0)
  40681. {
  40682. format(displayString, sizeof(displayString), "%s\n%s (%i warrants)", displayString, ReturnNameEx(i, 0), Players[i][pWarrants]);
  40683. gListedItems[playerid][index++] = i;
  40684. }
  40685. }
  40686. if (index)
  40687. {
  40688. Dialog_Show(playerid, ListWarrants, DIALOG_STYLE_LIST, "{FFFFFF}Outstanding Warrants", displayString, "Track", "Cancel");
  40689. }
  40690. else
  40691. {
  40692. SendErrorMessage(playerid, "There are no outstanding warrants to list.");
  40693. }*/
  40694. }
  40695. case 2:
  40696. {
  40697. Dialog_Show(playerid, TracePlate, DIALOG_STYLE_INPUT, "{FFFFFF}Trace Plate", "Please input the license plate of the vehicle to trace:", "Submit", "Cancel");
  40698. }
  40699. case 3:
  40700. {
  40701. Dialog_Show(playerid, TraceSerial, DIALOG_STYLE_INPUT, "{FFFFFF}Trace Serial", "Please input the serial number of the weapon to trace:", "Submit", "Cancel");
  40702. }
  40703. case 4:
  40704. {
  40705. Dialog_Show(playerid, FindAddress, DIALOG_STYLE_INPUT, "{FFFFFF}Find Address", "Please input the address of the house to trace:", "Submit", "Cancel");
  40706. }
  40707. }
  40708. }
  40709. return 1;
  40710. }
  40711. Dialog:LocateHouse(playerid, response, listitem, inputtext[])
  40712. {
  40713. if (response)
  40714. {
  40715. if (isnull(inputtext))
  40716. {
  40717. return Dialog_Show(playerid, LocateHouse, DIALOG_STYLE_INPUT, "{FFFFFF}Locate house", "Please input the house address and the GPS system will locate it for you:", "Locate", "Back");
  40718. }
  40719. else
  40720. {
  40721. new string[2048], count;
  40722. format(string,sizeof(string),"Address\tLocation\tOwner\tValue\n");
  40723. for (new i = 0; i < MAX_HOUSES; i ++)
  40724. {
  40725. if (IsValidHouseID(i) && strfind(Houses[i][hAddress], inputtext, true) != -1)
  40726. {
  40727. //format(string, sizeof(string), "%s%s\t%s\t%s\t%s\n", string, Houses[i][hAddress], GetZoneName(Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2]), (Houses[i][hOwner]) ? ("Yes") : ("No"), FormatNumber(Houses[i][hValue]));
  40728. if (!Houses[i][hOwner])
  40729. {
  40730. format(string, sizeof(string), "%s%s\t%s\t%s\t%s\n", string, Houses[i][hAddress], GetZoneName(Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2]), "Nobody", FormatNumber(Houses[i][hValue]));
  40731. }
  40732. else
  40733. {
  40734. format(string, sizeof(string), "%s%s\t%s\t%s\t%s\n", string, Houses[i][hAddress], GetZoneName(Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2]), Houses[i][hOwnerName], FormatNumber(Houses[i][hValue]));
  40735. }
  40736. count ++;
  40737. }
  40738. /*if (IsValidHouseID(i) && !strcmp(Houses[i][hAddress], inputtext, true))
  40739. {
  40740. SetCheckpoint(playerid, CHECKPOINT_GPS, Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2], 3.0);
  40741. SendInfoMessage(playerid, "GPS: A waypoint has been set to %s.", Houses[i][hAddress]);
  40742. return 1;
  40743. }*/
  40744. }
  40745. if (!count)
  40746. {
  40747. return SendErrorMessage(playerid, "There isn't any house with the specified address.");
  40748. }
  40749. else
  40750. {
  40751. Dialog_Show(playerid, LocateHouse_List, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}House List", string, "Locate", "Back");
  40752. }
  40753. //SendErrorMessage(playerid, "There isn't any house with the specified address.");
  40754. }
  40755. }
  40756. return 1;
  40757. }
  40758. Dialog:LocateHouse_List(playerid, response, listitem, inputtext[])
  40759. {
  40760. if (response)
  40761. {
  40762. //SendInfoMessage(playerid, "%i, %s", listitem, inputtext);
  40763. for (new i = 0; i < MAX_HOUSES; i ++)
  40764. {
  40765. if (IsValidHouseID(i) && !strcmp(Houses[i][hAddress], inputtext, true))
  40766. {
  40767. SetCheckpoint(playerid, CHECKPOINT_GPS, Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2], 3.0);
  40768. SendInfoMessage(playerid, "GPS: A waypoint has been set to %s.", Houses[i][hAddress]);
  40769. }
  40770. }
  40771. }
  40772. return 1;
  40773. }
  40774. Dialog:LocateCompany(playerid, response, listitem, inputtext[])
  40775. {
  40776. if (response)
  40777. {
  40778. new
  40779. company = GetClosestCompanyID(playerid, ++listitem);
  40780. if (company == INVALID_ID)
  40781. {
  40782. SendErrorMessage(playerid, "The GPS could not locate any company of this type.");
  40783. }
  40784. else
  40785. {
  40786. SetCheckpoint(playerid, CHECKPOINT_GPS, Companies[company][cSpawn][0], Companies[company][cSpawn][1], Companies[company][cSpawn][2], 3.0);
  40787. SendInfoMessage(playerid, "GPS: A waypoint has been set to the closest %s.", inputtext);
  40788. }
  40789. }
  40790. return 1;
  40791. }
  40792. Dialog:GPS(playerid, response, listitem, inputtext[])
  40793. {
  40794. new string[512];
  40795. if (response)
  40796. {
  40797. switch (listitem)
  40798. {
  40799. case 0:
  40800. {
  40801. for (new i = 0; i < sizeof(g_CompanyTypes); i ++) {
  40802. strcat(string, g_CompanyTypes[i]);
  40803. strcat(string, "\n");
  40804. }
  40805. Dialog_Show(playerid, LocateCompany, DIALOG_STYLE_LIST, "{FFFFFF}Locate company", string, "Waypoint", "Back");
  40806. }
  40807. case 1:
  40808. {
  40809. Dialog_Show(playerid, LocateHouse, DIALOG_STYLE_INPUT, "{FFFFFF}Locate house", "Please input the house address and the GPS system will locate it for you:", "Locate", "Back");
  40810. }
  40811. case 2:
  40812. {
  40813. new shop = GetClosestAutoShopID(playerid);
  40814. if (shop == INVALID_ID)
  40815. {
  40816. SendErrorMessage(playerid, "The GPS couldn't locate any nearby auto shops.");
  40817. }
  40818. else
  40819. {
  40820. SetCheckpoint(playerid, CHECKPOINT_GPS, AutoShops[shop][asX], AutoShops[shop][asY], AutoShops[shop][asZ], 3.0);
  40821. SendInfoMessage(playerid, "GPS: A waypoint has been set to the closest auto shop.");
  40822. }
  40823. }
  40824. case 3:
  40825. {
  40826. SetCheckpoint(playerid, CHECKPOINT_GPS, g_StaticBuildings[BUILDING_DMV][e_SpawnX], g_StaticBuildings[BUILDING_DMV][e_SpawnY], g_StaticBuildings[BUILDING_DMV][e_SpawnZ], 3.0);
  40827. SendInfoMessage(playerid, "GPS: A waypoint has been set to the department of motor vehicles.");
  40828. }
  40829. case 4:
  40830. {
  40831. SetCheckpoint(playerid, CHECKPOINT_GPS, 1041.2220, -1028.3320, 32.1016, 3.0);
  40832. SendInfoMessage(playerid, "GPS: A waypoint has been set to the modding shop.");
  40833. }
  40834. }
  40835. }
  40836. return 1;
  40837. }
  40838. Dialog:Resign(playerid, response, listitem, inputtext[])
  40839. {
  40840. if (response)
  40841. {
  40842. if (Players[playerid][pFaction] != INVALID_ID)
  40843. {
  40844. SendFactionMessage(Players[playerid][pFaction], COLOR_RADIO, "(( %s has resigned from the faction. ))", ReturnNameEx(playerid, 0));
  40845. ResetFactionInfo(playerid);
  40846. }
  40847. }
  40848. return 1;
  40849. }
  40850. Dialog:EditPaychecks(playerid, response, listitem, inputtext[])
  40851. {
  40852. if (response)
  40853. {
  40854. new
  40855. faction = Players[playerid][pSelected];
  40856. if (IsValidFactionID(faction))
  40857. {
  40858. Players[playerid][pEditRank] = listitem + 1;
  40859. Dialog_Show(playerid, ChangePay, DIALOG_STYLE_INPUT, "{FFFFFF}Change Paycheck", "The current paycheck for rank %i is %s.\n\nPlease input the new paycheck amount to set for this rank:", "Change", "Back", Players[playerid][pEditRank], FormatNumber(GetFactionRankPay(faction, Players[playerid][pEditRank])));
  40860. }
  40861. }
  40862. return 1;
  40863. }
  40864. Dialog:ChangePay(playerid, response, listitem, inputtext[])
  40865. {
  40866. new
  40867. faction = Players[playerid][pSelected];
  40868. if (!IsValidFactionID(faction))
  40869. {
  40870. return 0;
  40871. }
  40872. if (response)
  40873. {
  40874. new amount;
  40875. if (sscanf(inputtext, "i", amount))
  40876. {
  40877. return Dialog_Show(playerid, ChangePay, DIALOG_STYLE_INPUT, "{FFFFFF}Change Paycheck", "The current paycheck for rank %i is %s.\n\nPlease input the new paycheck amount to set for this rank:", "Change", "Back", Players[playerid][pEditRank], FormatNumber(GetFactionRankPay(faction, Players[playerid][pEditRank])));
  40878. }
  40879. else if (amount < 1)
  40880. {
  40881. return Dialog_Show(playerid, ChangePay, DIALOG_STYLE_INPUT, "{FFFFFF}Change Paycheck", "The paycheck can't be below $0.\n\nThe current paycheck for rank %i is %s.\n\nPlease input the new paycheck amount to set for this rank:", "Change", "Back", Players[playerid][pEditRank], FormatNumber(GetFactionRankPay(faction, Players[playerid][pEditRank])));
  40882. }
  40883. else
  40884. {
  40885. Factions[faction][fcPaycheck][Players[playerid][pEditRank]-1] = amount;
  40886. SaveFactionRank(faction, Players[playerid][pEditRank]-1);
  40887. SendInfoMessage(playerid, "You have changed the paycheck of rank %i to: %s.", Players[playerid][pEditRank], FormatNumber(amount));
  40888. ShowPaycheckEditMenu(playerid, faction);
  40889. }
  40890. }
  40891. else
  40892. {
  40893. ShowPaycheckEditMenu(playerid, faction);
  40894. }
  40895. return 1;
  40896. }
  40897. Dialog:EditRanks(playerid, response, listitem, inputtext[])
  40898. {
  40899. if (response)
  40900. {
  40901. new
  40902. faction = Players[playerid][pSelected];
  40903. if (IsValidFactionID(faction))
  40904. {
  40905. Players[playerid][pEditRank] = listitem + 1;
  40906. Dialog_Show(playerid, ChangeRank, DIALOG_STYLE_INPUT, "{FFFFFF}Change Rank", "The rank name for rank %i is %s.\n\nPlease input the new name for this rank:", "Change", "Back", Players[playerid][pEditRank], GetFactionRank(faction, Players[playerid][pEditRank]));
  40907. }
  40908. }
  40909. return 1;
  40910. }
  40911. Dialog:ChangeRank(playerid, response, listitem, inputtext[])
  40912. {
  40913. new
  40914. faction = Players[playerid][pSelected];
  40915. if (!IsValidFactionID(faction))
  40916. {
  40917. return 0;
  40918. }
  40919. if (response)
  40920. {
  40921. if (isnull(inputtext))
  40922. {
  40923. return Dialog_Show(playerid, ChangeRank, DIALOG_STYLE_INPUT, "{FFFFFF}Change Rank", "The rank name for rank %i is %s.\n\nPlease input the new name for this rank:", "Change", "Back", Players[playerid][pEditRank], GetFactionRank(faction, Players[playerid][pEditRank]));
  40924. }
  40925. else if (strlen(inputtext) > MAX_RANK_NAME)
  40926. {
  40927. return Dialog_Show(playerid, ChangeRank, DIALOG_STYLE_INPUT, "{FFFFFF}Change Rank", "The rank name can't contain over "#MAX_RANK_NAME" characters.\n\nThe rank name for rank %i is %s.\n\nPlease input the new name for this rank:", "Change", "Back", Players[playerid][pEditRank], GetFactionRank(faction, Players[playerid][pEditRank]));
  40928. }
  40929. else
  40930. {
  40931. strcpy(Ranks[faction][Players[playerid][pEditRank]-1], inputtext, MAX_RANK_NAME);
  40932. SaveFactionRank(faction, Players[playerid][pEditRank]-1);
  40933. SendInfoMessage(playerid, "You have changed the name of rank %i to: %s.", Players[playerid][pEditRank], inputtext);
  40934. ShowRankEditMenu(playerid, faction);
  40935. }
  40936. }
  40937. else
  40938. {
  40939. ShowRankEditMenu(playerid, faction);
  40940. }
  40941. return 1;
  40942. }
  40943. Dialog:Weapon(playerid, response, listitem, inputtext[])
  40944. {
  40945. if (response)
  40946. {
  40947. switch (listitem)
  40948. {
  40949. case 0:
  40950. {
  40951. switch (Players[playerid][pSelected])
  40952. {
  40953. case WEAPON_MELEE:
  40954. {
  40955. new item = AddItemToInventory(playerid, GetWeaponItemName(Weapons[playerid][wMelee]));
  40956. if (item == INVALID_ID)
  40957. {
  40958. return SendErrorMessage(playerid, "There is no more room in your inventory.");
  40959. }
  40960. else
  40961. {
  40962. SendInfoMessage(playerid, "You have unequipped your %s.", GetWeapon(Weapons[playerid][wMelee]));
  40963. SetPlayerWeapon(playerid, WEAPON_MELEE, 0);
  40964. ShowWeaponMenu(playerid);
  40965. }
  40966. }
  40967. case WEAPON_PRIMARY:
  40968. {
  40969. new item = AddItemToInventory(playerid, GetWeaponItemName(Weapons[playerid][wPrimary]), Weapons[playerid][wPrimaryAmmo], Weapons[playerid][wPrimarySerial]);
  40970. if (item == INVALID_ID)
  40971. {
  40972. return SendErrorMessage(playerid, "There is no more room in your inventory.");
  40973. }
  40974. else
  40975. {
  40976. SendInfoMessage(playerid, "You have unequipped your %s (%i ammo).", GetWeapon(Weapons[playerid][wPrimary]), Weapons[playerid][wPrimaryAmmo]);
  40977. SetPlayerWeapon(playerid, WEAPON_PRIMARY, 0);
  40978. ShowWeaponMenu(playerid);
  40979. }
  40980. }
  40981. case WEAPON_SECONDARY:
  40982. {
  40983. new item = AddItemToInventory(playerid, GetWeaponItemName(Weapons[playerid][wSecondary]), Weapons[playerid][wSecondaryAmmo], Weapons[playerid][wSecondarySerial]);
  40984. if (item == INVALID_ID)
  40985. {
  40986. return SendErrorMessage(playerid, "There is no more room in your inventory.");
  40987. }
  40988. else
  40989. {
  40990. SendInfoMessage(playerid, "You have unequipped your %s (%i ammo).", GetWeapon(Weapons[playerid][wSecondary]), Weapons[playerid][wSecondaryAmmo]);
  40991. SetPlayerWeapon(playerid, WEAPON_SECONDARY, 0);
  40992. ShowWeaponMenu(playerid);
  40993. }
  40994. }
  40995. case WEAPON_TERTIARY:
  40996. {
  40997. new item = AddItemToInventory(playerid, GetWeaponItemName(Weapons[playerid][wTertiary]), Weapons[playerid][wTertiaryAmmo], Weapons[playerid][wTertiarySerial]);
  40998. if (item == INVALID_ID)
  40999. {
  41000. return SendErrorMessage(playerid, "There is no more room in your inventory.");
  41001. }
  41002. else
  41003. {
  41004. SendInfoMessage(playerid, "You have unequipped your %s (%i ammo).", GetWeapon(Weapons[playerid][wTertiary]), Weapons[playerid][wTertiaryAmmo]);
  41005. SetPlayerWeapon(playerid, WEAPON_TERTIARY, 0);
  41006. ShowWeaponMenu(playerid);
  41007. }
  41008. }
  41009. }
  41010. }
  41011. case 1:
  41012. {
  41013. new weaponid = GetPlayerWeaponID(playerid, Players[playerid][pSelected]);
  41014. if (!weaponid)
  41015. {
  41016. return SendErrorMessage(playerid, "There is no weapon in this slot.");
  41017. }
  41018. else if (!IsHolsterWeapon(weaponid))
  41019. {
  41020. return SendErrorMessage(playerid, "This weapon cannot be attached to your body.");
  41021. }
  41022. else
  41023. {
  41024. ShowMenuForWeapon(playerid, Players[playerid][pSelected]);
  41025. }
  41026. }
  41027. case 2:
  41028. {
  41029. new weaponid = GetPlayerWeaponID(playerid, Players[playerid][pSelected]);
  41030. if (!weaponid)
  41031. {
  41032. return SendErrorMessage(playerid, "There is no weapon in this slot.");
  41033. }
  41034. DiscardWeapon(playerid, Players[playerid][pSelected]);
  41035. }
  41036. }
  41037. }
  41038. return 1;
  41039. }
  41040. Dialog:WeaponList(playerid, response, listitem, inputtext[])
  41041. {
  41042. new type = Players[playerid][pChoose];
  41043. Players[playerid][pChoose] = CHOOSE_TYPE_NONE;
  41044. if (response)
  41045. {
  41046. new
  41047. weaponid = GetPlayerWeaponID(playerid, listitem),
  41048. ammo = GetPlayerWeaponAmmo(playerid, listitem);
  41049. if (!weaponid)
  41050. {
  41051. return SendErrorMessage(playerid, "There is no weapon in this slot.");
  41052. }
  41053. switch (type)
  41054. {
  41055. case CHOOSE_TYPE_NONE:
  41056. {
  41057. switch (listitem)
  41058. {
  41059. case 0:
  41060. {
  41061. Players[playerid][pSelected] = WEAPON_MELEE;
  41062. Dialog_Show(playerid, Weapon, DIALOG_STYLE_LIST, "{FFFFFF}Melee Weapon", "Add to Inventory\nAdjust Weapon\nDrop Weapon", "Select", "Back");
  41063. }
  41064. case 1:
  41065. {
  41066. Players[playerid][pSelected] = WEAPON_PRIMARY;
  41067. Dialog_Show(playerid, Weapon, DIALOG_STYLE_LIST, "{FFFFFF}Primary Weapon", "Add to Inventory\nAdjust Weapon\nDrop Weapon", "Select", "Back");
  41068. }
  41069. case 2:
  41070. {
  41071. Players[playerid][pSelected] = WEAPON_SECONDARY;
  41072. Dialog_Show(playerid, Weapon, DIALOG_STYLE_LIST, "{FFFFFF}Secondary Weapon", "Add to Inventory\nAdjust Weapon\nDrop Weapon", "Select", "Back");
  41073. }
  41074. case 3:
  41075. {
  41076. Players[playerid][pSelected] = WEAPON_TERTIARY;
  41077. Dialog_Show(playerid, Weapon, DIALOG_STYLE_LIST, "{FFFFFF}Tertiary Weapon", "Add to Inventory\nAdjust Weapon\nDrop Weapon", "Select", "Back");
  41078. }
  41079. }
  41080. }
  41081. case CHOOSE_TYPE_TRUNK:
  41082. {
  41083. new
  41084. vehicle = GetVehicleID(GetClosestVehicle(playerid));
  41085. Players[playerid][pChoose] = CHOOSE_TYPE_NONE;
  41086. if (IsValidVehicleID(vehicle))
  41087. {
  41088. if (GetItemInformation(GetWeaponItemName(weaponid), ITEM_INFO_WEIGHT) + GetTrunkTotalWeight(vehicle) > GetTrunkCapacity(vehicle))
  41089. {
  41090. return SendErrorMessage(playerid, "There is no more room in the trunk.");
  41091. }
  41092. if (GetNextStoredItemID() == INVALID_ID)
  41093. {
  41094. return SendErrorMessage(playerid, "There is no more room in the trunk.");
  41095. }
  41096. else
  41097. {
  41098. if(Players[playerid][pFaction] != INVALID_ID && Factions[Players[playerid][pFaction]][fcType] != FACTION_ILLEGAL)
  41099. {
  41100. SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You cannot store weapons in the trunk while being in an official faction.");
  41101. }
  41102. else
  41103. {
  41104. if (ammo > 0)
  41105. {
  41106. SendInfoMessage(playerid, "You have stored your %s (%i) in the trunk.", GetWeapon(weaponid), ammo);
  41107. }
  41108. else
  41109. {
  41110. SendInfoMessage(playerid, "You have stored your %s in the trunk.", GetWeapon(weaponid));
  41111. }
  41112. AddStoredItem(TRANSFER_TO_TRUNK, Vehicles[vehicle][vID], GetWeaponItemName(weaponid), ammo);
  41113. SetPlayerWeapon(playerid, listitem, 0);
  41114. ShowActionBubble(playerid, "* %s takes out a weapon and stores it in the trunk.", ReturnNameEx(playerid));
  41115. //ShowTrunkItems(playerid, vehicle);
  41116. }
  41117. }
  41118. }
  41119. }
  41120. case CHOOSE_TYPE_SAFE:
  41121. {
  41122. new
  41123. safe = Players[playerid][pSafeMenu];
  41124. Players[playerid][pChoose] = CHOOSE_TYPE_NONE;
  41125. if (IsValidFurnitureID(safe) && Furniture[safe][fSafeOpen])
  41126. {
  41127. if (GetItemInformation(GetWeaponItemName(weaponid), ITEM_INFO_WEIGHT) + GetSafeTotalWeight(safe) > MAX_SAFE_WEIGHT)
  41128. {
  41129. return SendErrorMessage(playerid, "There is no more room in the safe.");
  41130. }
  41131. if (GetNextStoredItemID() == INVALID_ID)
  41132. {
  41133. return SendErrorMessage(playerid, "There is no more room in the safe.");
  41134. }
  41135. else
  41136. {
  41137. if(Players[playerid][pFaction] != INVALID_ID && Factions[Players[playerid][pFaction]][fcType] != FACTION_ILLEGAL)
  41138. {
  41139. SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You cannot store weapons in the trunk while being in an official faction.");
  41140. }
  41141. else
  41142. {
  41143. if (ammo > 0)
  41144. {
  41145. SendInfoMessage(playerid, "You have stored your %s (%i) in the safe.", GetWeapon(weaponid), ammo);
  41146. }
  41147. else
  41148. {
  41149. SendInfoMessage(playerid, "You have stored your %s in the safe.", GetWeapon(weaponid));
  41150. }
  41151. AddStoredItem(TRANSFER_TO_SAFE, Furniture[safe][fID], GetWeaponItemName(weaponid), ammo);
  41152. SetPlayerWeapon(playerid, listitem, 0);
  41153. ShowActionBubble(playerid, "* %s takes out a weapon and stores it in the safe.", ReturnNameEx(playerid));
  41154. ShowSafeItems(playerid, safe);
  41155. }
  41156. }
  41157. }
  41158. }
  41159. case CHOOSE_TYPE_TRASH:
  41160. {
  41161. new
  41162. trashbin = Players[playerid][pTrashbin];
  41163. Players[playerid][pChoose] = CHOOSE_TYPE_NONE;
  41164. if (IsValidTrashbinID(trashbin))
  41165. {
  41166. if (GetItemInformation(GetWeaponItemName(weaponid), ITEM_INFO_WEIGHT) + GetTrashbinTotalWeight(trashbin) > MAX_TRASHBIN_WEIGHT)
  41167. {
  41168. return SendErrorMessage(playerid, "There is no more room in the trashbin.");
  41169. }
  41170. if (GetNextStoredItemID() == INVALID_ID)
  41171. {
  41172. return SendErrorMessage(playerid, "There is no more room in the trashbin.");
  41173. }
  41174. else
  41175. {
  41176. if(Players[playerid][pFaction] != INVALID_ID && Factions[Players[playerid][pFaction]][fcType] != FACTION_ILLEGAL)
  41177. {
  41178. SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You cannot store weapons in the trunk while being in an official faction.");
  41179. }
  41180. else
  41181. {
  41182. if (ammo > 0)
  41183. {
  41184. SendInfoMessage(playerid, "You have stored your %s (%i) in the trashbin.", GetWeapon(weaponid), ammo);
  41185. }
  41186. else
  41187. {
  41188. SendInfoMessage(playerid, "You have stored your %s in the trashbin.", GetWeapon(weaponid));
  41189. }
  41190. AddStoredItem(TRANSFER_TO_TRASH, Trashbins[trashbin][tID], GetWeaponItemName(weaponid), ammo);
  41191. SetPlayerWeapon(playerid, listitem, 0);
  41192. ShowActionBubble(playerid, "* %s takes out a weapon and stores it in the trashbin.", ReturnNameEx(playerid));
  41193. ShowTrashbinItems(playerid, trashbin);
  41194. }
  41195. }
  41196. }
  41197. }
  41198. }
  41199. }
  41200. return 1;
  41201. }
  41202. Dialog:MyInventory(playerid, response, listitem, inputtext[])
  41203. {
  41204. if (response)
  41205. {
  41206. if (!strcmp(inputtext, "Weapon Menu"))
  41207. {
  41208. return ShowWeaponMenu(playerid);
  41209. }
  41210. if (Weapons[playerid][wMelee] > 0 || Weapons[playerid][wPrimary] > 0 || Weapons[playerid][wSecondary] > 0) {
  41211. Players[playerid][pSelected] = gListedItems[playerid][listitem - 1];
  41212. } else {
  41213. Players[playerid][pSelected] = gListedItems[playerid][listitem];
  41214. }
  41215. if (!Inventory[playerid][Players[playerid][pSelected]][invExists])
  41216. {
  41217. return 0;
  41218. }
  41219. else
  41220. {
  41221. switch (Players[playerid][pChoose])
  41222. {
  41223. case CHOOSE_TYPE_NONE:
  41224. {
  41225. new
  41226. string[128];
  41227. format(string, sizeof(string), "{33AA33}%s", GetFullItemName(playerid, Players[playerid][pSelected]));
  41228. if (GetItemInformation(Inventory[playerid][Players[playerid][pSelected]][invName], ITEM_INFO_WEAPON_ID) > 0)
  41229. {
  41230. Dialog_Show(playerid, ItemMenu, DIALOG_STYLE_LIST, string, "Equip Item\nGive Item\nDrop Item", "Select", "Close");
  41231. }
  41232. else if (GetItemInformation(Inventory[playerid][Players[playerid][pSelected]][invName], ITEM_INFO_DRUG))
  41233. {
  41234. Dialog_Show(playerid, ItemMenu, DIALOG_STYLE_LIST, string, "Consume\nGive Item\nDrop Item", "Select", "Close");
  41235. }
  41236. else if (!strcmp(Inventory[playerid][Players[playerid][pSelected]][invName], "Mobile Phone") && Inventory[playerid][Players[playerid][pSelected]][invValue] > 0)
  41237. {
  41238. if (Players[playerid][pPhone] != Inventory[playerid][Players[playerid][pSelected]][invValue])
  41239. {
  41240. Dialog_Show(playerid, ItemMenu, DIALOG_STYLE_LIST, string, "Set to Primary\nGive Item\nDrop Item", "Select", "Close");
  41241. }
  41242. else
  41243. {
  41244. Dialog_Show(playerid, ItemMenu, DIALOG_STYLE_LIST, string, "Unset Primary\nGive Item\nDrop Item", "Select", "Close");
  41245. }
  41246. }
  41247. else if (!strcmp(Inventory[playerid][Players[playerid][pSelected]][invName], "Mask"))
  41248. {
  41249. if (Players[playerid][pMaskID] > 0)
  41250. {
  41251. Dialog_Show(playerid, ItemMenu, DIALOG_STYLE_LIST, string, "Put Away\nGive Item\nDrop Item", "Select", "Close");
  41252. }
  41253. else
  41254. {
  41255. Dialog_Show(playerid, ItemMenu, DIALOG_STYLE_LIST, string, "Wear Mask\nGive Item\nDrop Item", "Select", "Close");
  41256. }
  41257. }
  41258. else if (!strcmp(Inventory[playerid][Players[playerid][pSelected]][invName], "Stereo"))
  41259. {
  41260. if (Stereos[playerid][pStereoID] != INVALID_ID)
  41261. {
  41262. Dialog_Show(playerid, ItemMenu, DIALOG_STYLE_LIST, string, "Put Away\nGive Item\nDrop Item", "Select", "Close");
  41263. }
  41264. else
  41265. {
  41266. Dialog_Show(playerid, ItemMenu, DIALOG_STYLE_LIST, string, "Deploy Item\nGive Item\nDrop Item", "Select", "Close");
  41267. }
  41268. }
  41269. else if (!strcmp(Inventory[playerid][Players[playerid][pSelected]][invName], "Walkie Talkie"))
  41270. {
  41271. Dialog_Show(playerid, ItemMenu, DIALOG_STYLE_LIST, string, "Settings\nGive Item\nDrop Item", "Select", "Close");
  41272. }
  41273. else if (!strcmp(Inventory[playerid][Players[playerid][pSelected]][invName], "Portable Radio"))
  41274. {
  41275. Dialog_Show(playerid, ItemMenu, DIALOG_STYLE_LIST, string, "Settings\nGive Item\nDrop Item", "Select", "Close");
  41276. }
  41277. else
  41278. {
  41279. Dialog_Show(playerid, ItemMenu, DIALOG_STYLE_LIST, string, "Use Item\nGive Item\nDrop Item", "Select", "Close");
  41280. }
  41281. }
  41282. case CHOOSE_TYPE_TRUNK:
  41283. {
  41284. new
  41285. vehicle = GetVehicleID(GetClosestVehicle(playerid));
  41286. Players[playerid][pChoose] = CHOOSE_TYPE_NONE;
  41287. if (IsValidVehicleID(vehicle))
  41288. {
  41289. new
  41290. id = AddItemToTrunk(playerid, vehicle, Players[playerid][pSelected]);
  41291. if (id == INVALID_ID)
  41292. {
  41293. return SendErrorMessage(playerid, "There is no room in the trunk.");
  41294. }
  41295. else
  41296. {
  41297. format(gExecute, sizeof(gExecute), "INSERT INTO rp_itemlogs (Player, Item, Action, Date) VALUES('%s', '%s', 'Stored in Trunk', NOW())", ReturnName(playerid), GetStoredItemName(id));
  41298. mysql_tquery(gConnection, gExecute);
  41299. ShowActionBubble(playerid, "* %s stores an item in the trunk.", ReturnNameEx(playerid));
  41300. SendInfoMessage(playerid, "{CFCFCF}You have stored an item:{33AA33} %s.", GetStoredItemName(id));
  41301. //ShowTrunkItems(playerid, vehicle);
  41302. }
  41303. }
  41304. }
  41305. case CHOOSE_TYPE_SAFE:
  41306. {
  41307. new
  41308. safe = Players[playerid][pSafeMenu];
  41309. Players[playerid][pChoose] = CHOOSE_TYPE_NONE;
  41310. if (IsValidFurnitureID(safe) && Furniture[safe][fSafeOpen])
  41311. {
  41312. if (GetItemInformation(Inventory[playerid][Players[playerid][pSelected]][invName], ITEM_INFO_WEAPON_ID) >= WEAPON_COLT45 && GetItemInformation(Inventory[playerid][Players[playerid][pSelected]][invName], ITEM_INFO_WEAPON_ID) <= WEAPON_SNIPER)
  41313. {
  41314. if (Factions[Players[playerid][pFaction]][fcType] != FACTION_ILLEGAL) return SendErrorMessage(playerid, "You must be in an illegal faction to store guns in trash bin.");
  41315. }
  41316. new
  41317. id = AddItemToSafe(playerid, safe, Players[playerid][pSelected]);
  41318. if (id == INVALID_ID)
  41319. {
  41320. return SendErrorMessage(playerid, "There is no room in the safe.");
  41321. }
  41322. else
  41323. {
  41324. format(gExecute, sizeof(gExecute), "INSERT INTO rp_itemlogs (Player, Item, Action, Date) VALUES('%s', '%s', 'Stored in Safe', NOW())", ReturnName(playerid), GetStoredItemName(id));
  41325. mysql_tquery(gConnection, gExecute);
  41326. ShowActionBubble(playerid, "* %s stores an item in the safe.", ReturnNameEx(playerid));
  41327. SendInfoMessage(playerid, "{CFCFCF}You have stored an item:{33AA33} %s.", GetStoredItemName(id));
  41328. ShowSafeItems(playerid, safe);
  41329. }
  41330. }
  41331. }
  41332. case CHOOSE_TYPE_TRASH:
  41333. {
  41334. new
  41335. trashbin = Players[playerid][pTrashbin];
  41336. Players[playerid][pChoose] = CHOOSE_TYPE_NONE;
  41337. if (IsValidTrashbinID(trashbin))
  41338. {
  41339. if (GetItemInformation(Inventory[playerid][Players[playerid][pSelected]][invName], ITEM_INFO_WEAPON_ID) >= WEAPON_COLT45 && GetItemInformation(Inventory[playerid][Players[playerid][pSelected]][invName], ITEM_INFO_WEAPON_ID) <= WEAPON_SNIPER)
  41340. {
  41341. if (Factions[Players[playerid][pFaction]][fcType] != FACTION_ILLEGAL) return SendErrorMessage(playerid, "You must be in an illegal faction to store guns in trash bin.");
  41342. }
  41343. new id = AddItemToTrashbin(playerid, trashbin, Players[playerid][pSelected]);
  41344. if (id == INVALID_ID)
  41345. {
  41346. return SendErrorMessage(playerid, "There is no room in the trashbin.");
  41347. }
  41348. else
  41349. {
  41350. format(gExecute, sizeof(gExecute), "INSERT INTO rp_itemlogs (Player, Item, Action, Date) VALUES('%s', '%s', 'Stored in Trashbin', NOW())", ReturnName(playerid), GetStoredItemName(id));
  41351. mysql_tquery(gConnection, gExecute);
  41352. ShowActionBubble(playerid, "* %s stores an item in the trashbin.", ReturnNameEx(playerid));
  41353. SendInfoMessage(playerid, "{CFCFCF}You have stored an item:{33AA33} %s.", GetStoredItemName(id));
  41354. ShowTrashbinItems(playerid, trashbin);
  41355. }
  41356. }
  41357. }
  41358. }
  41359. }
  41360. }
  41361. else
  41362. {
  41363. Players[playerid][pChoose] = CHOOSE_TYPE_NONE;
  41364. }
  41365. return 1;
  41366. }
  41367. Dialog:UseCuffs(playerid, response, listitem, inputtext[])
  41368. {
  41369. if (response)
  41370. {
  41371. new targetid;
  41372. if (sscanf(inputtext, "u", targetid))
  41373. {
  41374. return Dialog_Show(playerid, UseCuffs, DIALOG_STYLE_INPUT, "{FFFFFF}Use Cuffs", "Please input the player that you would like to cuff:", "Cuff", "Cancel");
  41375. }
  41376. else if (!IsPlayerConnected(targetid))
  41377. {
  41378. return Dialog_Show(playerid, UseCuffs, DIALOG_STYLE_INPUT, "{FFFFFF}Use Cuffs", "You have specified an invalid target.\n\nPlease input the player that you would like to cuff:", "Cuff", "Cancel");
  41379. }
  41380. /*else if (targetid == playerid)
  41381. {
  41382. return Dialog_Show(playerid, UseCuffs, DIALOG_STYLE_INPUT, "{FFFFFF}Use Cuffs", "You can't handcuff yourself!\n\nPlease input the player that you would like to cuff:", "Cuff", "Cancel");
  41383. }*/
  41384. else if (!IsPlayerInRangeOfPlayer(playerid, targetid))
  41385. {
  41386. return Dialog_Show(playerid, UseCuffs, DIALOG_STYLE_INPUT, "{FFFFFF}Use Cuffs", "The target is out of range.\n\nPlease input the player that you would like to cuff:", "Cuff", "Cancel");
  41387. }
  41388. else if (Players[targetid][pHandcuffed])
  41389. {
  41390. return Dialog_Show(playerid, UseCuffs, DIALOG_STYLE_INPUT, "{FFFFFF}Use Cuffs", "The target is already cuffed.\n\nPlease input the player that you would like to cuff:", "Cuff", "Cancel");
  41391. }
  41392. else
  41393. {
  41394. new item = GetInventoryItemID(playerid, "Cuffs");
  41395. Players[targetid][pHandcuffed] = 1;
  41396. Players[targetid][pCuffedBy] = playerid;
  41397. RemoveItemFromInventory(playerid, item);
  41398. SetPlayerSpecialAction(targetid, SPECIAL_ACTION_CUFFED);
  41399. ShowActionBubble(playerid, "* %s secures a pair of cuffs around %s's wrists.", ReturnNameEx(playerid), ReturnNameEx(targetid));
  41400. SendInfoMessage(playerid, "You have handcuffed %s. Use /uncuff to remove the cuffs.", ReturnNameEx(targetid));
  41401. SendInfoMessage(targetid, "You have been handcuffed by %s.", ReturnNameEx(playerid));
  41402. }
  41403. }
  41404. return 1;
  41405. }
  41406. Dialog:AddEquipment(playerid, response, listitem, inputtext[])
  41407. {
  41408. new
  41409. faction = Players[playerid][pSelected];
  41410. if(!IsValidFactionID(faction))
  41411. {
  41412. return 0;
  41413. }
  41414. if(response)
  41415. {
  41416. Players[playerid][pSelectedItem] = listitem;
  41417. Dialog_Show(playerid, AddEquipmentValue, DIALOG_STYLE_INPUT, "{FFFFFF}Equipment Value", "Please enter the value for %s (enter 0 for none):", "Submit", "Back", g_ItemList[Players[playerid][pSelectedItem]][e_ItemName]);
  41418. }
  41419. else
  41420. {
  41421. ShowEquipmentEditMenu(playerid, faction);
  41422. }
  41423. return 1;
  41424. }
  41425. Dialog:AddEquipmentValue(playerid, response, listitem, inputtext[])
  41426. {
  41427. new
  41428. faction = Players[playerid][pSelected];
  41429. if(!IsValidFactionID(faction))
  41430. {
  41431. return 0;
  41432. }
  41433. if(response)
  41434. {
  41435. new value;
  41436. if(sscanf(inputtext, "i", value) || value < 0)
  41437. {
  41438. return Dialog_Show(playerid, AddEquipmentValue, DIALOG_STYLE_INPUT, "{FFFFFF}Equipment Value", "Please enter the value for %s (enter 0 for none):", "Submit", "Back", g_ItemList[Players[playerid][pSelectedItem]][e_ItemName]);
  41439. }
  41440. strcpy(FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemName], g_ItemList[Players[playerid][pSelectedItem]][e_ItemName], MAX_ITEM_NAME);
  41441. FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemValue] = value;
  41442. FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemExists] = 1;
  41443. SaveFactionEquipment(faction, Players[playerid][pEditEquipment]);
  41444. if(value)
  41445. SendInfoMessage(playerid, "You have added %s (%i) to %s's locker.", FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemName], FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemValue], Factions[faction][fcName]);
  41446. else
  41447. SendInfoMessage(playerid, "You have added %s to %s's locker.", FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemName], Factions[faction][fcName]);
  41448. ShowEquipmentEditMenu(playerid, faction);
  41449. }
  41450. else
  41451. {
  41452. ShowEquipmentEditMenu(playerid, faction);
  41453. }
  41454. return 1;
  41455. }
  41456. Dialog:EditEquipmentItem(playerid, response, listitem, inputtext[])
  41457. {
  41458. new
  41459. faction = Players[playerid][pSelected];
  41460. if(!IsValidFactionID(faction))
  41461. {
  41462. return 0;
  41463. }
  41464. if(response)
  41465. {
  41466. SendInfoMessage(playerid, "You have changed %s in %s's locker to %s.", FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemName], Factions[faction][fcName], g_ItemList[listitem][e_ItemName]);
  41467. strcpy(FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemName], g_ItemList[listitem][e_ItemName], MAX_ITEM_NAME);
  41468. SaveFactionEquipment(faction, Players[playerid][pEditEquipment]);
  41469. Dialog_Show(playerid, EquipmentEdit, DIALOG_STYLE_LIST, "{FFFFFF}Edit Equipment", "Edit Item (%s)\nEdit Value (%i)\nDelete from Locker", "Select", "Back", FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemName], FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemValue]);
  41470. }
  41471. else
  41472. {
  41473. Dialog_Show(playerid, EquipmentEdit, DIALOG_STYLE_LIST, "{FFFFFF}Edit Equipment", "Edit Item (%s)\nEdit Value (%i)\nDelete from Locker", "Select", "Back", FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemName], FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemValue]);
  41474. }
  41475. return 1;
  41476. }
  41477. Dialog:EditEquipmentValue(playerid, response, listitem, inputtext[])
  41478. {
  41479. new
  41480. faction = Players[playerid][pSelected];
  41481. if(!IsValidFactionID(faction))
  41482. {
  41483. return 0;
  41484. }
  41485. if(response)
  41486. {
  41487. new value;
  41488. if(sscanf(inputtext, "i", value) || value < 0)
  41489. {
  41490. return Dialog_Show(playerid, EditEquipmentValue, DIALOG_STYLE_INPUT, "{FFFFFF}Edit Value", "Please enter the new value for %s (enter 0 for none):", "Submit", "Back", FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemName]);
  41491. }
  41492. SendInfoMessage(playerid, "You have set the value of %s in %s's locker to %i.", FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemName], Factions[faction][fcName], value);
  41493. FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemValue] = value;
  41494. SaveFactionEquipment(faction, Players[playerid][pEditEquipment]);
  41495. Dialog_Show(playerid, EquipmentEdit, DIALOG_STYLE_LIST, "{FFFFFF}Edit Equipment", "Edit Item (%s)\nEdit Value (%i)\nDelete from Locker", "Select", "Back", FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemName], FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemValue]);
  41496. }
  41497. else
  41498. {
  41499. Dialog_Show(playerid, EquipmentEdit, DIALOG_STYLE_LIST, "{FFFFFF}Edit Equipment", "Edit Item (%s)\nEdit Value (%i)\nDelete from Locker", "Select", "Back", FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemName], FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemValue]);
  41500. }
  41501. return 1;
  41502. }
  41503. Dialog:EquipmentEdit(playerid, response, listitem, inputtext[])
  41504. {
  41505. new
  41506. faction = Players[playerid][pSelected];
  41507. if(!IsValidFactionID(faction))
  41508. {
  41509. return 0;
  41510. }
  41511. if(response)
  41512. {
  41513. switch(listitem)
  41514. {
  41515. case 0:
  41516. {
  41517. gListString[0] = 0;
  41518. for(new i = 0; i < sizeof(g_ItemList); i ++)
  41519. {
  41520. strcat(gListString, g_ItemList[i][e_ItemName]);
  41521. strcat(gListString, "\n");
  41522. }
  41523. Dialog_Show(playerid, EditEquipmentItem, DIALOG_STYLE_LIST, "{FFFFFF}Edit Item", gListString, "Select", "Back");
  41524. }
  41525. case 1:
  41526. {
  41527. Dialog_Show(playerid, EditEquipmentValue, DIALOG_STYLE_INPUT, "{FFFFFF}Edit Value", "Please enter the new value for %s (enter 0 for none):", "Submit", "Back", FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemName]);
  41528. }
  41529. case 2:
  41530. {
  41531. SendInfoMessage(playerid, "You have deleted %s from %s's locker.", FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemName], Factions[faction][fcName]);
  41532. mysql_format(gConnection, gExecute, sizeof(gExecute), "DELETE FROM rp_factionequipment WHERE itemFactionID = %i AND itemSlot = %i", Factions[faction][fcID], Players[playerid][pEditEquipment]);
  41533. mysql_tquery(gConnection, gExecute);
  41534. FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemExists] = 0;
  41535. FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemName] = 0;
  41536. FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemValue] = 0;
  41537. ShowEquipmentEditMenu(playerid, faction);
  41538. }
  41539. }
  41540. }
  41541. else
  41542. {
  41543. ShowEquipmentEditMenu(playerid, faction);
  41544. }
  41545. return 1;
  41546. }
  41547. Dialog:EditEquipment(playerid, response, listitem, inputtext[])
  41548. {
  41549. new
  41550. faction = Players[playerid][pSelected];
  41551. if(!IsValidFactionID(faction))
  41552. {
  41553. return 0;
  41554. }
  41555. if(response)
  41556. {
  41557. Players[playerid][pEditEquipment] = listitem;
  41558. if(!FactionEquipment[faction][listitem][fcItemExists])
  41559. {
  41560. gListString[0] = 0;
  41561. for(new i = 0; i < sizeof(g_ItemList); i ++)
  41562. {
  41563. strcat(gListString, g_ItemList[i][e_ItemName]);
  41564. strcat(gListString, "\n");
  41565. }
  41566. Dialog_Show(playerid, AddEquipment, DIALOG_STYLE_LIST, "{FFFFFF}Add Equipment to Locker", gListString, "Select", "Back");
  41567. }
  41568. else
  41569. {
  41570. Dialog_Show(playerid, EquipmentEdit, DIALOG_STYLE_LIST, "{FFFFFF}Edit Equipment", "Edit Item (%s)\nEdit Value (%i)\nDelete from Locker", "Select", "Back", FactionEquipment[faction][listitem][fcItemName], FactionEquipment[faction][listitem][fcItemValue]);
  41571. }
  41572. }
  41573. else
  41574. {
  41575. ShowFactionEditMenu(playerid, faction);
  41576. }
  41577. return 1;
  41578. }
  41579. Dialog:AddAccessoryModel(playerid, response, listitem, inputtext[])
  41580. {
  41581. new
  41582. faction = Players[playerid][pSelected];
  41583. if(!IsValidFactionID(faction))
  41584. {
  41585. return 0;
  41586. }
  41587. if(response)
  41588. {
  41589. new modelid;
  41590. if(sscanf(inputtext, "i", modelid))
  41591. {
  41592. return Dialog_Show(playerid, AddAccessoryModel, DIALOG_STYLE_INPUT, "{FFFFFF}Add Accessory - Model ID", "Please enter the model ID for the associated accessory:\n(List of objects: http://wiki.sa-mp.com/wiki/Samp_objects)", "Submit", "Back");
  41593. }
  41594. if(!IsValidModelID(modelid))
  41595. {
  41596. return Dialog_Show(playerid, AddAccessoryModel, DIALOG_STYLE_INPUT, "{FFFFFF}Add Accessory - Model ID", "Invalid model ID.\n\nPlease enter the model ID for the associated accessory:\n(List of objects: http://wiki.sa-mp.com/wiki/Samp_objects)", "Submit", "Back");
  41597. }
  41598. new string[200];
  41599. for (new i = 1; i <= 18; i ++) {
  41600. strcat(string, GetBoneName(i));
  41601. strcat(string, "\n");
  41602. }
  41603. Players[playerid][pAccessoryModel] = modelid;
  41604. Dialog_Show(playerid, AddAccessoryBone, DIALOG_STYLE_LIST, "{FFFFFF}Add Accessory - Select Bone", string, "Select", "Back");
  41605. }
  41606. else
  41607. {
  41608. ShowAccessoryEditMenu(playerid, faction);
  41609. }
  41610. return 1;
  41611. }
  41612. Dialog:AddAccessoryBone(playerid, response, listitem, inputtext[])
  41613. {
  41614. new
  41615. faction = Players[playerid][pSelected];
  41616. if(!IsValidFactionID(faction))
  41617. {
  41618. return 0;
  41619. }
  41620. if(response)
  41621. {
  41622. strcpy(FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryName], Players[playerid][pAccessoryName], 32);
  41623. FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryModel] = Players[playerid][pAccessoryModel];
  41624. FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryBone] = listitem + 1;
  41625. FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryExists] = 1;
  41626. SaveFactionAccessory(faction, Players[playerid][pEditAccessory]);
  41627. SendInfoMessage(playerid, "You have added %s (model ID: %i) to %s's locker.", FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryName], FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryModel], Factions[faction][fcName]);
  41628. ShowAccessoryEditMenu(playerid, faction);
  41629. }
  41630. else
  41631. {
  41632. ShowAccessoryEditMenu(playerid, faction);
  41633. }
  41634. return 1;
  41635. }
  41636. Dialog:AddAccessory(playerid, response, listitem, inputtext[])
  41637. {
  41638. new
  41639. faction = Players[playerid][pSelected];
  41640. if(!IsValidFactionID(faction))
  41641. {
  41642. return 0;
  41643. }
  41644. if(response)
  41645. {
  41646. if(isnull(inputtext))
  41647. {
  41648. return Dialog_Show(playerid, AddAccessory, DIALOG_STYLE_INPUT, "{FFFFFF}Add Accessory", "Please enter the name of the accessory you wish to add:", "Submit", "Back");
  41649. }
  41650. strcpy(Players[playerid][pAccessoryName], inputtext, 32);
  41651. Dialog_Show(playerid, AddAccessoryModel, DIALOG_STYLE_INPUT, "{FFFFFF}Add Accessory - Model ID", "Please enter the model ID for the associated accessory:\n(List of objects: http://wiki.sa-mp.com/wiki/Samp_objects)", "Submit", "Back");
  41652. }
  41653. else
  41654. {
  41655. ShowAccessoryEditMenu(playerid, faction);
  41656. }
  41657. return 1;
  41658. }
  41659. Dialog:EditAccessories(playerid, response, listitem, inputtext[])
  41660. {
  41661. new
  41662. faction = Players[playerid][pSelected];
  41663. if(!IsValidFactionID(faction))
  41664. {
  41665. return 0;
  41666. }
  41667. if(response)
  41668. {
  41669. Players[playerid][pEditAccessory] = listitem;
  41670. if(!FactionAccessories[faction][listitem][fcAccessoryExists])
  41671. {
  41672. Dialog_Show(playerid, AddAccessory, DIALOG_STYLE_INPUT, "{FFFFFF}Add Accessory", "Please enter the name of the accessory you wish to add:", "Submit", "Back");
  41673. }
  41674. else
  41675. {
  41676. Dialog_Show(playerid, AccessoryEdit, DIALOG_STYLE_LIST, "{FFFFFF}Edit Accessory", "Edit Name (%s)\nEdit Model (%i)\nEdit Bone (%s)\nDelete from Locker", "Select", "Back", FactionAccessories[faction][listitem][fcAccessoryName], FactionAccessories[faction][listitem][fcAccessoryModel], GetBoneName(FactionAccessories[faction][listitem][fcAccessoryBone]));
  41677. }
  41678. }
  41679. else
  41680. {
  41681. ShowFactionEditMenu(playerid, faction);
  41682. }
  41683. return 1;
  41684. }
  41685. Dialog:AccessoryEdit(playerid, response, listitem, inputtext[])
  41686. {
  41687. new
  41688. faction = Players[playerid][pSelected];
  41689. if(!IsValidFactionID(faction))
  41690. {
  41691. return 0;
  41692. }
  41693. if(response)
  41694. {
  41695. switch(listitem)
  41696. {
  41697. case 0:
  41698. {
  41699. Dialog_Show(playerid, AccessoryName, DIALOG_STYLE_INPUT, "{FFFFFF}Edit Accessory Name", "Please enter the new name of this accessory:", "Submit", "Back");
  41700. }
  41701. case 1:
  41702. {
  41703. Dialog_Show(playerid, AccessoryModel, DIALOG_STYLE_INPUT, "{FFFFFF}Edit Accessory Model", "Please enter the new model ID of this accessory:", "Submit", "Back");
  41704. }
  41705. case 2:
  41706. {
  41707. new string[200];
  41708. for (new i = 1; i <= 18; i ++) {
  41709. strcat(string, GetBoneName(i));
  41710. strcat(string, "\n");
  41711. }
  41712. Dialog_Show(playerid, AccessoryBone, DIALOG_STYLE_LIST, "{FFFFFF}Edit Accessory Bone", string, "Select", "Back");
  41713. }
  41714. case 3:
  41715. {
  41716. SendInfoMessage(playerid, "You have deleted %s (model ID: %i) from %s's locker.", FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryName], FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryModel], Factions[faction][fcName]);
  41717. mysql_format(gConnection, gExecute, sizeof(gExecute), "DELETE FROM rp_factionaccessories WHERE accessoryFactionID = %i AND accessorySlot = %i", Factions[faction][fcID], Players[playerid][pEditAccessory]);
  41718. mysql_tquery(gConnection, gExecute);
  41719. FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryExists] = 0;
  41720. FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryName] = 0;
  41721. FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryModel] = 0;
  41722. FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryBone] = 0;
  41723. ShowAccessoryEditMenu(playerid, faction);
  41724. }
  41725. }
  41726. }
  41727. else
  41728. {
  41729. ShowAccessoryEditMenu(playerid, faction);
  41730. }
  41731. return 1;
  41732. }
  41733. Dialog:AccessoryName(playerid, response, listitem, inputtext[])
  41734. {
  41735. new
  41736. faction = Players[playerid][pSelected];
  41737. if(!IsValidFactionID(faction))
  41738. {
  41739. return 0;
  41740. }
  41741. if(response)
  41742. {
  41743. if(isnull(inputtext) || strlen(inputtext) > 32)
  41744. {
  41745. return Dialog_Show(playerid, AccessoryName, DIALOG_STYLE_INPUT, "{FFFFFF}Edit Accessory Name", "Please enter the new name of this accessory:", "Submit", "Back");
  41746. }
  41747. SendInfoMessage(playerid, "You have changed the name of %s in %s's locker to %s.", FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryName], Factions[faction][fcName], inputtext);
  41748. strcpy(FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryName], inputtext, 32);
  41749. SaveFactionAccessory(faction, Players[playerid][pEditAccessory]);
  41750. ShowAccessoryEditMenu(playerid, faction);
  41751. }
  41752. else
  41753. {
  41754. ShowAccessoryEditMenu(playerid, faction);
  41755. }
  41756. return 1;
  41757. }
  41758. Dialog:AccessoryModel(playerid, response, listitem, inputtext[])
  41759. {
  41760. new
  41761. faction = Players[playerid][pSelected];
  41762. if(!IsValidFactionID(faction))
  41763. {
  41764. return 0;
  41765. }
  41766. if(response)
  41767. {
  41768. new modelid;
  41769. if(sscanf(inputtext, "i", modelid))
  41770. {
  41771. return Dialog_Show(playerid, AccessoryModel, DIALOG_STYLE_INPUT, "{FFFFFF}Edit Accessory Model", "Please enter the new model ID of this accessory:", "Submit", "Back");
  41772. }
  41773. if(!IsValidModelID(modelid))
  41774. {
  41775. return Dialog_Show(playerid, AccessoryModel, DIALOG_STYLE_INPUT, "{FFFFFF}Edit Accessory Model", "Invalid model ID.\n\nPlease enter the new model ID of this accessory:", "Submit", "Back");
  41776. }
  41777. SendInfoMessage(playerid, "You have changed the model ID of %s in %s's locker to %i.", FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryName], Factions[faction][fcName], modelid);
  41778. FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryModel] = modelid;
  41779. SaveFactionAccessory(faction, Players[playerid][pEditAccessory]);
  41780. ShowAccessoryEditMenu(playerid, faction);
  41781. }
  41782. else
  41783. {
  41784. ShowAccessoryEditMenu(playerid, faction);
  41785. }
  41786. return 1;
  41787. }
  41788. Dialog:AccessoryBone(playerid, response, listitem, inputtext[])
  41789. {
  41790. new
  41791. faction = Players[playerid][pSelected];
  41792. if(!IsValidFactionID(faction))
  41793. {
  41794. return 0;
  41795. }
  41796. if(response)
  41797. {
  41798. new boneid = listitem + 1;
  41799. SendInfoMessage(playerid, "You have changed the bone of %s in %s's locker to %s.", FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryName], Factions[faction][fcName], GetBoneName(boneid));
  41800. FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryBone] = boneid;
  41801. SaveFactionAccessory(faction, Players[playerid][pEditAccessory]);
  41802. ShowAccessoryEditMenu(playerid, faction);
  41803. }
  41804. else
  41805. {
  41806. ShowAccessoryEditMenu(playerid, faction);
  41807. }
  41808. return 1;
  41809. }
  41810. Dialog:EditUniform(playerid, response, listitem, inputtext[])
  41811. {
  41812. new
  41813. faction = Players[playerid][pSelected];
  41814. if (!IsValidFactionID(faction))
  41815. {
  41816. return 0;
  41817. }
  41818. if (response)
  41819. {
  41820. new skinid;
  41821. if (sscanf(inputtext, "i", skinid))
  41822. {
  41823. return Dialog_Show(playerid, EditUniform, DIALOG_STYLE_INPUT, "{FFFFFF}Edit Uniform", "Please input a skin ID for uniform %i (use 0 to disable):", "Submit", "Cancel", Players[playerid][pEditUniform] + 1);
  41824. }
  41825. else
  41826. {
  41827. Factions[faction][fcUniforms][Players[playerid][pEditUniform]] = skinid;
  41828. SaveFactionUniform(faction, Players[playerid][pEditUniform]);
  41829. SendInfoMessage(playerid, "You have set the skin ID for uniform %i to %i.", Players[playerid][pEditUniform] + 1, skinid);
  41830. ShowUniformEditMenu(playerid, faction);
  41831. }
  41832. }
  41833. else
  41834. {
  41835. ShowUniformEditMenu(playerid, faction);
  41836. }
  41837. return 1;
  41838. }
  41839. Dialog:EditUniforms(playerid, response, listitem, inputtext[])
  41840. {
  41841. new
  41842. faction = Players[playerid][pSelected];
  41843. if (!IsValidFactionID(faction))
  41844. {
  41845. return 0;
  41846. }
  41847. if (response)
  41848. {
  41849. Players[playerid][pEditUniform] = listitem;
  41850. Dialog_Show(playerid, EditUniform, DIALOG_STYLE_INPUT, "{FFFFFF}Edit Uniform", "Please input a skin ID from 1-311 for uniform %i (use 0 to disable):", "Submit", "Cancel", Players[playerid][pEditUniform] + 1);
  41851. }
  41852. else
  41853. {
  41854. ShowFactionEditMenu(playerid, faction);
  41855. }
  41856. return 1;
  41857. }
  41858. Dialog:FactionName(playerid, response, listitem, inputtext[])
  41859. {
  41860. new
  41861. faction = Players[playerid][pSelected];
  41862. if (!IsValidFactionID(faction))
  41863. {
  41864. return 0;
  41865. }
  41866. if (response)
  41867. {
  41868. if (isnull(inputtext))
  41869. {
  41870. return Dialog_Show(playerid, FactionName, DIALOG_STYLE_INPUT, "{FFFFFF}Faction Name", "The current name for this faction is %s.\n\nPlease input the new name for this faction below:", "Submit", "Back", Factions[faction][fcName]);
  41871. }
  41872. else if (strlen(inputtext) > 32)
  41873. {
  41874. return Dialog_Show(playerid, FactionName, DIALOG_STYLE_INPUT, "{FFFFFF}Faction Name", "The faction name must be below 32 characters.\n\nThe current name for this faction is %s.\n\nPlease input the new name for this faction below:", "Submit", "Back", Factions[faction][fcName]);
  41875. }
  41876. else
  41877. {
  41878. strcpy(Factions[faction][fcName], inputtext, 32);
  41879. SaveFaction(faction);
  41880. SendAdminMessage(COLOR_RED, "Admin: %s has changed faction %i's name to \"%s\".", ReturnNameEx(playerid, 0), faction, inputtext);
  41881. }
  41882. }
  41883. else
  41884. {
  41885. ShowFactionEditMenu(playerid, faction);
  41886. }
  41887. return 1;
  41888. }
  41889. Dialog:FactionType(playerid, response, listitem, inputtext[])
  41890. {
  41891. new
  41892. faction = Players[playerid][pSelected];
  41893. if (!IsValidFactionID(faction))
  41894. {
  41895. return 0;
  41896. }
  41897. if (response)
  41898. {
  41899. Factions[faction][fcType] = listitem + 1;
  41900. SaveFaction(faction);
  41901. SendAdminMessage(COLOR_RED, "Admin: %s has changed faction %i's type to %s (%i).", ReturnNameEx(playerid, 0), faction, GetFactionType(Factions[faction][fcType]), Factions[faction][fcType]);
  41902. }
  41903. else
  41904. {
  41905. ShowFactionEditMenu(playerid, faction);
  41906. }
  41907. return 1;
  41908. }
  41909. Dialog:FactionColor(playerid, response, listitem, inputtext[])
  41910. {
  41911. new
  41912. faction = Players[playerid][pSelected];
  41913. if (!IsValidFactionID(faction))
  41914. {
  41915. return 0;
  41916. }
  41917. if (response)
  41918. {
  41919. new color;
  41920. if (sscanf(inputtext, "h", color))
  41921. {
  41922. return Dialog_Show(playerid, FactionColor, DIALOG_STYLE_INPUT, "{FFFFFF}Faction Color", "The color must be in the 0xRRGGBBAA format.\n\nThe current color for this faction is %s{AAC4E5}.\n\nPlease input the new color for this faction below (0xRRGGBBAA):", "Submit", "Back", GetFactionEmbedColor(faction));
  41923. }
  41924. else
  41925. {
  41926. Factions[faction][fcColor] = color & ~0xFF;
  41927. SaveFaction(faction);
  41928. SendAdminMessage(COLOR_RED, "Admin: %s has changed faction %i's color to %s.", ReturnNameEx(playerid, 0), faction, GetFactionEmbedColor(faction));
  41929. }
  41930. }
  41931. else
  41932. {
  41933. ShowFactionEditMenu(playerid, faction);
  41934. }
  41935. return 1;
  41936. }
  41937. Dialog:FactionMaxRanks(playerid, response, listitem, inputtext[])
  41938. {
  41939. new
  41940. faction = Players[playerid][pSelected];
  41941. if (!IsValidFactionID(faction))
  41942. {
  41943. return 0;
  41944. }
  41945. if (response)
  41946. {
  41947. new maxranks;
  41948. if (sscanf(inputtext, "i", maxranks))
  41949. {
  41950. return Dialog_Show(playerid, FactionMaxRanks, DIALOG_STYLE_INPUT, "{FFFFFF}Faction Ranks", "The current maximum ranks for this faction is %i.\n\nPlease input the maximum amount of ranks for this faction below:", "Submit", "Back", Factions[faction][fcMaxRanks]);
  41951. }
  41952. else if (maxranks < 1 || maxranks > MAX_FACTION_RANKS)
  41953. {
  41954. return Dialog_Show(playerid, FactionMaxRanks, DIALOG_STYLE_INPUT, "{FFFFFF}Faction Ranks", "The maximum ranks must range between 1 and %i.\n\nThe current maximum ranks for this faction is %i.\n\nPlease input the maximum amount of ranks for this faction below:", "Submit", "Back", MAX_FACTION_RANKS, Factions[faction][fcMaxRanks]);
  41955. }
  41956. else
  41957. {
  41958. foreach (new i : Player) {
  41959. if (Players[i][pFaction] == faction && Players[i][pFactionRank] > maxranks) {
  41960. Players[i][pFactionRank] = maxranks;
  41961. }
  41962. }
  41963. Factions[faction][fcMaxRanks] = maxranks;
  41964. SaveFaction(faction);
  41965. SendAdminMessage(COLOR_RED, "Admin: %s has changed faction %i's maximum rank count to %i.", ReturnNameEx(playerid, 0), faction, maxranks);
  41966. }
  41967. }
  41968. else
  41969. {
  41970. ShowFactionEditMenu(playerid, faction);
  41971. }
  41972. return 1;
  41973. }
  41974. Dialog:EditFaction(playerid, response, listitem, inputtext[])
  41975. {
  41976. new
  41977. faction = Players[playerid][pSelected];
  41978. if (!IsValidFactionID(faction))
  41979. {
  41980. return 0;
  41981. }
  41982. if (response)
  41983. {
  41984. switch (listitem)
  41985. {
  41986. case 0:
  41987. {
  41988. Dialog_Show(playerid, FactionName, DIALOG_STYLE_INPUT, "{FFFFFF}Faction Name", "The current name for this faction is %s.\n\nPlease input the new name for this faction below:", "Submit", "Back", Factions[faction][fcName]);
  41989. }
  41990. case 1:
  41991. {
  41992. new types[128];
  41993. for (new i = 1; i <= 5; i ++) {
  41994. format(types, sizeof(types), "%s\n%s", types, GetFactionType(i));
  41995. }
  41996. Dialog_Show(playerid, FactionType, DIALOG_STYLE_LIST, "{FFFFFF}Faction Type", types, "Select", "Back");
  41997. }
  41998. case 2:
  41999. {
  42000. Dialog_Show(playerid, FactionColor, DIALOG_STYLE_INPUT, "{FFFFFF}Faction Color", "The current color for this faction is %s{AAC4E5}.\n\nPlease input the new color for this faction below (0xRRGGBBAA)", "Submit", "Back", GetFactionEmbedColor(faction));
  42001. }
  42002. case 3:
  42003. {
  42004. Dialog_Show(playerid, FactionMaxRanks, DIALOG_STYLE_INPUT, "{FFFFFF}Faction Ranks", "The current maximum ranks for this faction is %i.\n\nPlease input the maximum amount of ranks for this faction below:", "Submit", "Back", Factions[faction][fcMaxRanks]);
  42005. }
  42006. case 4:
  42007. {
  42008. if (Factions[faction][fcType] != FACTION_ILLEGAL)
  42009. {
  42010. SendErrorMessage(playerid, "This feature is only available for illegal factions.");
  42011. }
  42012. else
  42013. {
  42014. ShowFactionRights(playerid, faction);
  42015. }
  42016. }
  42017. case 5:
  42018. {
  42019. ShowRankEditMenu(playerid, faction);
  42020. }
  42021. case 6:
  42022. {
  42023. if (Factions[faction][fcType] == FACTION_ILLEGAL)
  42024. {
  42025. SendErrorMessage(playerid, "This feature is not available for illegal factions.");
  42026. }
  42027. else
  42028. {
  42029. ShowPaycheckEditMenu(playerid, faction);
  42030. }
  42031. }
  42032. case 7:
  42033. {
  42034. GetPlayerPos(playerid, Factions[faction][fcSpawnX], Factions[faction][fcSpawnY], Factions[faction][fcSpawnZ]);
  42035. GetPlayerFacingAngle(playerid, Factions[faction][fcSpawnA]);
  42036. Factions[faction][fcSpawnInt] = GetPlayerInterior(playerid);
  42037. Factions[faction][fcSpawnWorld] = GetPlayerVirtualWorld(playerid);
  42038. SaveFaction(faction);
  42039. SendAdminMessage(COLOR_RED, "Admin: %s has edited the faction spawn of faction %i.", ReturnNameEx(playerid, 0), faction);
  42040. }
  42041. case 8:
  42042. {
  42043. GetPlayerPos(playerid, Factions[faction][fcLockerX], Factions[faction][fcLockerY], Factions[faction][fcLockerZ]);
  42044. Factions[faction][fcLockerInt] = GetPlayerInterior(playerid);
  42045. Factions[faction][fcLockerWorld] = GetPlayerVirtualWorld(playerid);
  42046. UpdateFaction(faction);
  42047. SaveFaction(faction);
  42048. SendAdminMessage(COLOR_RED, "Admin: %s has edited the locker spawn of faction %i.", ReturnNameEx(playerid, 0), faction);
  42049. }
  42050. case 9:
  42051. {
  42052. ShowUniformEditMenu(playerid, faction);
  42053. }
  42054. case 10:
  42055. {
  42056. if(Factions[faction][fcType] == FACTION_ILLEGAL)
  42057. {
  42058. return SendErrorMessage(playerid, "You can't edit equipment for illegal faction lockers.");
  42059. }
  42060. ShowEquipmentEditMenu(playerid, faction);
  42061. }
  42062. case 11:
  42063. {
  42064. if(Factions[faction][fcType] == FACTION_ILLEGAL)
  42065. {
  42066. return SendErrorMessage(playerid, "You can't edit accessories for illegal faction lockers.");
  42067. }
  42068. ShowAccessoryEditMenu(playerid, faction);
  42069. }
  42070. }
  42071. }
  42072. return 1;
  42073. }
  42074. Dialog:PaymentType(playerid, response, listitem, inputtext[])
  42075. {
  42076. if (response)
  42077. {
  42078. switch (listitem)
  42079. {
  42080. case 0:
  42081. {
  42082. Players[playerid][pPaymentType] = PAYMENT_TYPE_CASH;
  42083. Players[playerid][pBankAccount] = 0;
  42084. SendInfoMessage(playerid, "Your future payments will now be made with cash.");
  42085. }
  42086. case 1:
  42087. {
  42088. new
  42089. success = ShowBankAccounts(playerid, BANK_PAYMENT_TYPE);
  42090. if (!success)
  42091. {
  42092. SendErrorMessage(playerid, "You need a registered bank account to do this.");
  42093. }
  42094. }
  42095. }
  42096. }
  42097. return 1;
  42098. }
  42099. Dialog:UseAmmunition(playerid, response, listitem, inputtext[])
  42100. {
  42101. new
  42102. id = Players[playerid][pSelected],
  42103. bullets = Inventory[playerid][id][invValue];
  42104. if (response)
  42105. {
  42106. switch (listitem)
  42107. {
  42108. case 0:
  42109. {
  42110. if (22 <= Weapons[playerid][wPrimary] <= 34)
  42111. {
  42112. new clip = GetClipCapacity(Weapons[playerid][wPrimary]);
  42113. if (strcmp(GetAmmunitionType(Weapons[playerid][wPrimary]), Inventory[playerid][id][invName]) != 0)
  42114. {
  42115. return SendErrorMessage(playerid, "This weapon doesn't use that type of ammunition.");
  42116. }
  42117. else if ((clip == 0) || (bullets <= clip))
  42118. {
  42119. RemoveItemFromInventory(playerid, id);
  42120. GiveWeaponAmmo(playerid, WEAPON_PRIMARY, bullets);
  42121. SendInfoMessage(playerid, "{CFCFCF}You have loaded {33AA33}%i{CFCFCF} ammunition into your weapon.", bullets);
  42122. }
  42123. else
  42124. {
  42125. RemoveItemValue(playerid, id, clip);
  42126. GiveWeaponAmmo(playerid, WEAPON_PRIMARY, clip);
  42127. SendInfoMessage(playerid, "{CFCFCF}You have loaded {33AA33}%i{CFCFCF} ammunition into your weapon.", clip);
  42128. }
  42129. SetReloadAnimation(playerid, Weapons[playerid][wPrimary]);
  42130. ShowActionBubble(playerid, "* %s loads some ammunition in their weapon.", ReturnNameEx(playerid));
  42131. }
  42132. }
  42133. case 1:
  42134. {
  42135. if (22 <= Weapons[playerid][wSecondary] <= 34)
  42136. {
  42137. new clip = GetClipCapacity(Weapons[playerid][wSecondary]);
  42138. if (strcmp(GetAmmunitionType(Weapons[playerid][wSecondary]), Inventory[playerid][id][invName]) != 0)
  42139. {
  42140. return SendErrorMessage(playerid, "This weapon doesn't use that type of ammunition.");
  42141. }
  42142. else if ((clip == 0) || (bullets <= clip))
  42143. {
  42144. RemoveItemFromInventory(playerid, id);
  42145. GiveWeaponAmmo(playerid, WEAPON_SECONDARY, bullets);
  42146. SendInfoMessage(playerid, "{CFCFCF}You have loaded {33AA33}%i{CFCFCF} ammunition into your weapon.", bullets);
  42147. }
  42148. else
  42149. {
  42150. RemoveItemValue(playerid, id, clip);
  42151. GiveWeaponAmmo(playerid, WEAPON_SECONDARY, clip);
  42152. SendInfoMessage(playerid, "{CFCFCF}You have loaded {33AA33}%i{CFCFCF} ammunition into your weapon.", clip);
  42153. }
  42154. SetReloadAnimation(playerid, Weapons[playerid][wSecondary]);
  42155. ShowActionBubble(playerid, "* %s loads some ammunition in their weapon.", ReturnNameEx(playerid));
  42156. }
  42157. }
  42158. case 2:
  42159. {
  42160. if (22 <= Weapons[playerid][wTertiary] <= 34)
  42161. {
  42162. new clip = GetClipCapacity(Weapons[playerid][wTertiary]);
  42163. if (strcmp(GetAmmunitionType(Weapons[playerid][wTertiary]), Inventory[playerid][id][invName]) != 0)
  42164. {
  42165. return SendErrorMessage(playerid, "This weapon doesn't use that type of ammunition.");
  42166. }
  42167. else if ((clip == 0) || (bullets <= clip))
  42168. {
  42169. RemoveItemFromInventory(playerid, id);
  42170. GiveWeaponAmmo(playerid, WEAPON_TERTIARY, bullets);
  42171. SendInfoMessage(playerid, "{CFCFCF}You have loaded {33AA33}%i{CFCFCF} ammunition into your weapon.", bullets);
  42172. }
  42173. else
  42174. {
  42175. RemoveItemValue(playerid, id, clip);
  42176. GiveWeaponAmmo(playerid, WEAPON_TERTIARY, clip);
  42177. SendInfoMessage(playerid, "{CFCFCF}You have loaded {33AA33}%i{CFCFCF} ammunition into your weapon.", clip);
  42178. }
  42179. SetReloadAnimation(playerid, Weapons[playerid][wTertiary]);
  42180. ShowActionBubble(playerid, "* %s loads some ammunition in their weapon.", ReturnNameEx(playerid));
  42181. }
  42182. }
  42183. }
  42184. }
  42185. return 1;
  42186. }
  42187. /*
  42188. WeedCheck(playerid)
  42189. {
  42190. new
  42191. id = GetClosestWeedPlant(playerid);
  42192. if (id != INVALID_ID)
  42193. {
  42194. if (0 <= WeedPlants[id][wpTime] <= 19)
  42195. {
  42196. Dialog_Show(playerid, ExamineWeedPlant, DIALOG_STYLE_MSGBOX, "{FFFFFF}Weed Plant", "{6688FF}Stage:\n{FFFFFF}Growing", "Pick up", "Close");
  42197. }
  42198. else if (20 <= WeedPlants[id][wpTime] <= 49)
  42199. {
  42200. Dialog_Show(playerid, ExamineWeedPlant, DIALOG_STYLE_MSGBOX, "{FFFFFF}Weed Plant", "{6688FF}Stage:\n{FFFFFF}Ready", "Pick up", "Close");
  42201. }
  42202. else if (50 <= WeedPlants[id][wpTime] <= 60)
  42203. {
  42204. Dialog_Show(playerid, ExamineWeedPlant, DIALOG_STYLE_MSGBOX, "{FFFFFF}Weed Plant", "{6688FF}Stage:\n{FFFFFF}Dead", "Pick up", "Close");
  42205. }
  42206. }
  42207. }
  42208. */
  42209. Dialog:ExamineWeedPlant(playerid, response, listitem, inputtext[])
  42210. {
  42211. if (response)
  42212. {
  42213. new
  42214. id = GetClosestWeedPlant(playerid);
  42215. if (id == INVALID_ID)
  42216. {
  42217. return 0;
  42218. }
  42219. else
  42220. {
  42221. if (0 <= WeedPlants[id][wpTime] <= 899)
  42222. {
  42223. ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0);
  42224. SendInfoMessage(playerid, "You pick up the weed plant but it yields nothing.");
  42225. DeleteWeedPlant(id);
  42226. }
  42227. else if (900 <= WeedPlants[id][wpTime] <= 1199)
  42228. {
  42229. new weed = Random(1,5);
  42230. ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0);
  42231. SendInfoMessage(playerid, "You harvest %i weed from the plant.", weed);
  42232. DeleteWeedPlant(id);
  42233. AddItemToInventory(playerid, "Marijuana", weed);
  42234. }
  42235. else if (1200 <= WeedPlants[id][wpTime] <= 1399)
  42236. {
  42237. new weed = Random(2,6);
  42238. ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0);
  42239. SendInfoMessage(playerid, "You harvest %i weed from the plant.", weed);
  42240. DeleteWeedPlant(id);
  42241. AddItemToInventory(playerid, "Marijuana", weed);
  42242. }
  42243. else if (1400 <= WeedPlants[id][wpTime] <= 1599)
  42244. {
  42245. new weed = Random(3,7);
  42246. ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0);
  42247. SendInfoMessage(playerid, "You harvest %i weed from the plant.", weed);
  42248. DeleteWeedPlant(id);
  42249. AddItemToInventory(playerid, "Marijuana", weed);
  42250. }
  42251. else if (WeedPlants[id][wpTime] > 1600)
  42252. {
  42253. new weed = Random(4,8);
  42254. ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0);
  42255. SendInfoMessage(playerid, "You harvest %i weed from the plant.", weed);
  42256. DeleteWeedPlant(id);
  42257. AddItemToInventory(playerid, "Marijuana", weed);
  42258. }
  42259. }
  42260. }
  42261. return 1;
  42262. }
  42263. Dialog:ExamineShell(playerid, response, listitem, inputtext[])
  42264. {
  42265. if (response)
  42266. {
  42267. new
  42268. id = GetClosestShell(playerid);
  42269. if (id == INVALID_ID)
  42270. {
  42271. return 0;
  42272. }
  42273. else
  42274. {
  42275. ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0);
  42276. ShowActionBubble(playerid, "* %s picks up the shell casing.", ReturnNameEx(playerid));
  42277. SendInfoMessage(playerid, "You have picked up the shell casing (serial: %s).", FormatSerial(ShellCasings[id][scSerial]));
  42278. DeleteShellCasing(id);
  42279. }
  42280. }
  42281. return 1;
  42282. }
  42283. Dialog:BuyVehicle(playerid, response, listitem, inputtext[])
  42284. {
  42285. new
  42286. company = GetCurrentCompany(playerid);
  42287. if (!IsValidCompanyID(company) || Companies[company][cType] != COMPANY_DEALERSHIP)
  42288. {
  42289. return 0;
  42290. }
  42291. if (response)
  42292. {
  42293. Players[playerid][pSelected] = gListedItems[playerid][listitem];
  42294. Dialog_Show(playerid, VehicleConfirm, DIALOG_STYLE_MSGBOX, "{FFFFFF}Confirm purchase", "Are you sure you want to purchase a %s for {00FF00}%s{AAC4E5}?", "Yes", "No", GetVehicleModelName(DealershipCars[Players[playerid][pSelected]][dcModel]), FormatNumber(DealershipCars[Players[playerid][pSelected]][dcPrice]));
  42295. }
  42296. return 1;
  42297. }
  42298. Dialog:EditCar(playerid, response, listitem, inputtext[])
  42299. {
  42300. new
  42301. id = Players[playerid][pSelected];
  42302. if (!IsValidVehicleID(id))
  42303. {
  42304. return 0;
  42305. }
  42306. if (response)
  42307. {
  42308. switch (listitem)
  42309. {
  42310. case 0:
  42311. {
  42312. GetPlayerPos(playerid, Vehicles[id][vSpawn][0], Vehicles[id][vSpawn][1], Vehicles[id][vSpawn][2]);
  42313. GetPlayerFacingAngle(playerid, Vehicles[id][vSpawn][3]);
  42314. UpdateVehicle(id);
  42315. SaveVehicle(id);
  42316. SetFreezePos(playerid, Vehicles[id][vSpawn][0], Vehicles[id][vSpawn][1], Vehicles[id][vSpawn][2] + 2.0, 1000);
  42317. SendInfoMessage(playerid, "You have adjusted the spawn for vehicle %i.", Vehicles[id][vVehicle]);
  42318. }
  42319. case 1:
  42320. {
  42321. Dialog_Show(playerid, VehicleFaction, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle Faction", "Please input the faction ID for this vehicle (use -1 to reset):", "Submit", "Back");
  42322. }
  42323. case 2:
  42324. {
  42325. Dialog_Show(playerid, VehicleColor1, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle color 1", "Please input the first color to set for this vehicle:", "Submit", "Cancel");
  42326. }
  42327. case 3:
  42328. {
  42329. Dialog_Show(playerid, VehicleColor2, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle color 2", "Please input the second color to set for this vehicle:", "Submit", "Cancel");
  42330. }
  42331. case 4:
  42332. {
  42333. if (!Vehicles[id][vSiren])
  42334. {
  42335. Vehicles[id][vSiren] = 1;
  42336. UpdateVehicle(id);
  42337. SaveVehicle(id);
  42338. SendInfoMessage(playerid, "You have enabled the siren for vehicle %i.", Vehicles[id][vVehicle]);
  42339. }
  42340. else
  42341. {
  42342. Vehicles[id][vSiren] = 0;
  42343. UpdateVehicle(id);
  42344. SaveVehicle(id);
  42345. SendInfoMessage(playerid, "You have removed the siren for vehicle %i.", Vehicles[id][vVehicle]);
  42346. }
  42347. }
  42348. }
  42349. }
  42350. return 1;
  42351. }
  42352. Dialog:VehicleFaction(playerid, response, listitem, inputtext[])
  42353. {
  42354. new
  42355. id = Players[playerid][pSelected];
  42356. if (!IsValidVehicleID(id))
  42357. {
  42358. return 0;
  42359. }
  42360. if (response)
  42361. {
  42362. new faction;
  42363. if (sscanf(inputtext, "i", faction))
  42364. {
  42365. return Dialog_Show(playerid, VehicleFaction, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle Faction", "Please input the faction ID for this vehicle (use -1 to reset):", "Submit", "Back");
  42366. }
  42367. else
  42368. {
  42369. if (faction != INVALID_ID && !IsValidFactionID(faction))
  42370. {
  42371. return Dialog_Show(playerid, VehicleFaction, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle Faction", "You have specified an invalid faction ID.\n\nPlease input the faction ID for this vehicle (use -1 to reset):", "Submit", "Back");
  42372. }
  42373. else
  42374. {
  42375. if (faction == INVALID_ID)
  42376. {
  42377. Vehicles[id][vFaction] = 0;
  42378. SaveVehicle(id);
  42379. SendInfoMessage(playerid, "You have reset the faction of vehicle %i.", Vehicles[id][vVehicle]);
  42380. }
  42381. else
  42382. {
  42383. Vehicles[id][vFaction] = Factions[faction][fcID];
  42384. SaveVehicle(id);
  42385. SendInfoMessage(playerid, "You have set the faction of vehicle %i to %s.", Vehicles[id][vVehicle], Factions[faction][fcName]);
  42386. }
  42387. }
  42388. }
  42389. }
  42390. return 1;
  42391. }
  42392. Dialog:VehicleColor1(playerid, response, listitem, inputtext[])
  42393. {
  42394. new
  42395. id = Players[playerid][pSelected];
  42396. if (!IsValidVehicleID(id))
  42397. {
  42398. return 0;
  42399. }
  42400. if (response)
  42401. {
  42402. new color;
  42403. if (sscanf(inputtext, "i", color))
  42404. {
  42405. return Dialog_Show(playerid, VehicleColor1, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle color 1", "Please input the first color to set for this vehicle:", "Submit", "Cancel");
  42406. }
  42407. else if (color < 0 || color > 255)
  42408. {
  42409. return Dialog_Show(playerid, VehicleColor1, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle color 1", "The color must range between 0 and 255.\n\nPlease input the first color to set for this vehicle:", "Submit", "Cancel");
  42410. }
  42411. else
  42412. {
  42413. Vehicles[id][vColor1] = color;
  42414. SaveVehicle(id);
  42415. ChangeVehicleColor(Vehicles[id][vVehicle], Vehicles[id][vColor1], Vehicles[id][vColor2]);
  42416. SendInfoMessage(playerid, "You have changed the first color of vehicle %i to: #%i.", Vehicles[id][vVehicle], color);
  42417. }
  42418. }
  42419. return 1;
  42420. }
  42421. Dialog:VehicleColor2(playerid, response, listitem, inputtext[])
  42422. {
  42423. new
  42424. id = Players[playerid][pSelected];
  42425. if (!IsValidVehicleID(id))
  42426. {
  42427. return 0;
  42428. }
  42429. if (response)
  42430. {
  42431. new color;
  42432. if (sscanf(inputtext, "i", color))
  42433. {
  42434. return Dialog_Show(playerid, VehicleColor2, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle color 2", "Please input the second color to set for this vehicle:", "Submit", "Cancel");
  42435. }
  42436. else if (color < 0 || color > 255)
  42437. {
  42438. return Dialog_Show(playerid, VehicleColor2, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle color 2", "The color must range between 0 and 255.\n\nPlease input the second color to set for this vehicle:", "Submit", "Cancel");
  42439. }
  42440. else
  42441. {
  42442. Vehicles[id][vColor2] = color;
  42443. SaveVehicle(id);
  42444. ChangeVehicleColor(Vehicles[id][vVehicle], Vehicles[id][vColor1], Vehicles[id][vColor2]);
  42445. SendInfoMessage(playerid, "You have changed the second color of vehicle %i to: #%i.", Vehicles[id][vVehicle], color);
  42446. }
  42447. }
  42448. return 1;
  42449. }
  42450. Dialog:PumpFuel(playerid, response, listitem, inputtext[])
  42451. {
  42452. new
  42453. id = Players[playerid][pSelected];
  42454. if (!IsValidPumpID(id))
  42455. {
  42456. return 0;
  42457. }
  42458. if (response)
  42459. {
  42460. new Float:amount;
  42461. if (sscanf(inputtext, "f", amount))
  42462. {
  42463. return Dialog_Show(playerid, PumpFuel, DIALOG_STYLE_INPUT, "{FFFFFF}Pump fuel", "Please input the amount of fuel to set for this pump:", "Submit", "Cancel");
  42464. }
  42465. else if (amount < 0.0)
  42466. {
  42467. return Dialog_Show(playerid, PumpFuel, DIALOG_STYLE_INPUT, "{FFFFFF}Pump fuel", "The amount can't be below 0.\n\nPlease input the amount of fuel to set for this pump:", "Submit", "Cancel");
  42468. }
  42469. else
  42470. {
  42471. GasPumps[id][gpFuel] = amount;
  42472. UpdateGasPump(id);
  42473. SaveGasPump(id);
  42474. SendInfoMessage(playerid, "You have set the fuel amount for pump %i to: %.2f gallons.", id, amount);
  42475. }
  42476. }
  42477. return 1;
  42478. }
  42479. Dialog:EditPump(playerid, response, listitem, inputtext[])
  42480. {
  42481. new
  42482. id = Players[playerid][pSelected];
  42483. if (!IsValidPumpID(id))
  42484. {
  42485. return 0;
  42486. }
  42487. if (response)
  42488. {
  42489. switch (listitem)
  42490. {
  42491. case 0:
  42492. {
  42493. EditDynamicObjectEx(playerid, EDIT_TYPE_PUMP, GasPumps[id][gpObject], id);
  42494. SendInfoMessage(playerid, "Click on the disk icon to save changes.");
  42495. }
  42496. case 1:
  42497. {
  42498. Dialog_Show(playerid, PumpFuel, DIALOG_STYLE_INPUT, "{FFFFFF}Pump fuel", "Please input the amount of fuel to set for this pump:", "Submit", "Back");
  42499. }
  42500. }
  42501. }
  42502. return 1;
  42503. }
  42504. Dialog:SafeMenu(playerid, response, listitem, inputtext[])
  42505. {
  42506. new
  42507. id = Players[playerid][pSafeMenu];
  42508. if (!IsValidFurnitureID(id) || !Furniture[id][fSafeOpen])
  42509. {
  42510. return 0;
  42511. }
  42512. if (response)
  42513. {
  42514. switch (listitem)
  42515. {
  42516. case 0:
  42517. {
  42518. Dialog_Show(playerid, SafeMoney, DIALOG_STYLE_LIST, "{FFFFFF}Stored money", "Withdraw (%s)\nDeposit", "Select", "Back", FormatNumber(Furniture[id][fMoney]));
  42519. }
  42520. case 1:
  42521. {
  42522. Dialog_Show(playerid, SetCode, DIALOG_STYLE_INPUT, "{FFFFFF}Security code", "Please input the new security code to set for this safe:", "Submit", "Back");
  42523. }
  42524. case 2:
  42525. {
  42526. ShowSafeItems(playerid, id);
  42527. }
  42528. case 3:
  42529. {
  42530. Furniture[id][fSafeOpen] = 0;
  42531. UpdateDynamic3DTextLabelText(Furniture[id][fText], COLOR_GREY, "Status: {FF5030}Closed{AFAFAF}\nPress Y to use safe");
  42532. SendInfoMessage(playerid, "You have closed the safe.");
  42533. }
  42534. }
  42535. }
  42536. return 1;
  42537. }
  42538. Dialog:SetCode(playerid, response, listitem, inputtext[])
  42539. {
  42540. new
  42541. id = Players[playerid][pSafeMenu];
  42542. if (!IsValidFurnitureID(id) || !Furniture[id][fSafeOpen])
  42543. {
  42544. return 0;
  42545. }
  42546. if (response)
  42547. {
  42548. new code;
  42549. if (sscanf(inputtext, "i", code))
  42550. {
  42551. return Dialog_Show(playerid, SetCode, DIALOG_STYLE_INPUT, "{FFFFFF}Security code", "Please input the new security code to set for this safe:", "Submit", "Back");
  42552. }
  42553. else if (code < 0)
  42554. {
  42555. return Dialog_Show(playerid, SetCode, DIALOG_STYLE_INPUT, "{FFFFFF}Security code", "The code can't be below 0.\n\nPlease input the new security code to set for this safe:", "Submit", "Back");
  42556. }
  42557. else
  42558. {
  42559. Furniture[id][fCode] = code;
  42560. SaveFurniture(id);
  42561. ShowSafeMenu(playerid, id);
  42562. SendInfoMessage(playerid, "You have set the security code to: %i.", code);
  42563. }
  42564. }
  42565. return 1;
  42566. }
  42567. Dialog:SafeAmount(playerid, response, listitem, inputtext[])
  42568. {
  42569. new
  42570. safe = Players[playerid][pSafeMenu];
  42571. if (!IsValidFurnitureID(safe) || !Furniture[safe][fSafeOpen])
  42572. {
  42573. return 0;
  42574. }
  42575. if (response)
  42576. {
  42577. new
  42578. item = Players[playerid][pSelected];
  42579. if (StoredItems[item][stExists])
  42580. {
  42581. new amount, name[MAX_ITEM_NAME];
  42582. strunpack(name, StoredItems[item][stName]);
  42583. if (sscanf(inputtext, "i", amount))
  42584. {
  42585. return Dialog_Show(playerid, SafeAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Take Amount", "Item: %s\nAmount: %i\n\nPlease input the amount you want to withdraw:", "Submit", "Back", GetStoredItemName(item), StoredItems[item][stValue]);
  42586. }
  42587. else if (amount < 1 || amount > StoredItems[item][stValue])
  42588. {
  42589. return Dialog_Show(playerid, SafeAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Take Amount", "There isn't that much of this item.\n\nItem: %s\nAmount: %i\n\nPlease input the amount you want to withdraw:", "Submit", "Back", GetStoredItemName(item), StoredItems[item][stValue]);
  42590. }
  42591. else
  42592. {
  42593. new id = AddItemToInventory(playerid, name, amount);
  42594. if (id == INVALID_ID)
  42595. {
  42596. SendErrorMessage(playerid, "There is no more room in the safe.");
  42597. }
  42598. else
  42599. {
  42600. if (amount < StoredItems[item][stValue])
  42601. {
  42602. format(gExecute, sizeof(gExecute), "UPDATE rp_items SET itemValue = itemValue - %i WHERE itemID = %i", amount, StoredItems[item][stID]);
  42603. StoredItems[item][stValue] -= amount;
  42604. }
  42605. else
  42606. {
  42607. format(gExecute, sizeof(gExecute), "DELETE FROM rp_items WHERE itemID = %i", StoredItems[item][stID]);
  42608. StoredItems[item][stExists] = 0;
  42609. }
  42610. mysql_tquery(gConnection, gExecute);
  42611. ShowSafeItems(playerid, safe);
  42612. SendInfoMessage(playerid, "You have withdrawn %s (%i) from the safe.", name, amount);
  42613. }
  42614. }
  42615. }
  42616. }
  42617. else
  42618. {
  42619. ShowSafeItems(playerid, safe);
  42620. }
  42621. return 1;
  42622. }
  42623. Dialog:SafeTake(playerid, response, listitem, inputtext[])
  42624. {
  42625. new
  42626. safe = Players[playerid][pSafeMenu];
  42627. if (!IsValidFurnitureID(safe) || !Furniture[safe][fSafeOpen])
  42628. {
  42629. return 0;
  42630. }
  42631. if (response)
  42632. {
  42633. new
  42634. item = Players[playerid][pSelected];
  42635. if (StoredItems[item][stExists])
  42636. {
  42637. new
  42638. id = RetrieveItem(playerid, TRANSFER_FROM_SAFE, item);
  42639. if (id == INVALID_ID)
  42640. {
  42641. return SendErrorMessage(playerid, "There is no more room in your inventory.");
  42642. }
  42643. else
  42644. {
  42645. format(gExecute, sizeof(gExecute), "INSERT INTO rp_itemlogs (Player, Item, Action, Date) VALUES('%s', '%s', 'Taken from Safe', NOW())", ReturnName(playerid), GetFullItemName(playerid, id));
  42646. mysql_tquery(gConnection, gExecute);
  42647. StoredItems[item][stExists] = 0;
  42648. ShowActionBubble(playerid, "* %s takes an item from the safe.", ReturnNameEx(playerid));
  42649. SendInfoMessage(playerid, "You have taken an item: %s.", GetFullItemName(playerid, id));
  42650. ShowSafeItems(playerid, safe);
  42651. format(gExecute, sizeof(gExecute), "DELETE FROM rp_items WHERE itemID = %i", StoredItems[item][stID]);
  42652. mysql_tquery(gConnection, gExecute);
  42653. }
  42654. }
  42655. }
  42656. else
  42657. {
  42658. ShowSafeItems(playerid, safe);
  42659. }
  42660. return 1;
  42661. }
  42662. Dialog:SafeItems(playerid, response, listitem, inputtext[])
  42663. {
  42664. new
  42665. safe = Players[playerid][pSafeMenu];
  42666. if (!IsValidFurnitureID(safe) || !Furniture[safe][fSafeOpen])
  42667. {
  42668. return 0;
  42669. }
  42670. if (response)
  42671. {
  42672. if (listitem == 0)
  42673. {
  42674. new success = DisplayInventory(playerid);
  42675. if (!success)
  42676. {
  42677. SendErrorMessage(playerid, "You don't have any items in your inventory.");
  42678. }
  42679. else
  42680. {
  42681. Players[playerid][pChoose] = CHOOSE_TYPE_SAFE;
  42682. SendInfoMessage(playerid, "Choose an item to add to the safe.");
  42683. }
  42684. }
  42685. else
  42686. {
  42687. new
  42688. item = gListedItems[playerid][--listitem];
  42689. if (StoredItems[item][stExists])
  42690. {
  42691. Players[playerid][pSelected] = item;
  42692. if (GetItemInformation(StoredItems[item][stName], ITEM_INFO_STACKABLE))
  42693. {
  42694. Dialog_Show(playerid, SafeAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Take Amount", "Item: %s\nAmount: %i\n\nPlease input the amount you want to withdraw:", "Submit", "Back", GetStoredItemName(item), StoredItems[item][stValue]);
  42695. }
  42696. else
  42697. {
  42698. Dialog_Show(playerid, SafeTake, DIALOG_STYLE_MSGBOX, "{FFFFFF}Item information", "Item: %s\nWeight: %i\n\nAre you sure you want to take this item?", "Yes", "No", GetStoredItemName(item), GetItemInformation(StoredItems[item][stName], ITEM_INFO_WEIGHT));
  42699. }
  42700. }
  42701. else
  42702. {
  42703. SendErrorMessage(playerid, "Sorry! Someone else has taken this item.");
  42704. }
  42705. }
  42706. }
  42707. else
  42708. {
  42709. ShowSafeMenu(playerid, safe);
  42710. }
  42711. return 1;
  42712. }
  42713. Dialog:SafeMoney(playerid, response, listitem, inputtext[])
  42714. {
  42715. new
  42716. safe = Players[playerid][pSafeMenu];
  42717. if (!IsValidFurnitureID(safe) || !Furniture[safe][fSafeOpen])
  42718. {
  42719. return 0;
  42720. }
  42721. if (response)
  42722. {
  42723. switch (listitem)
  42724. {
  42725. case 0:
  42726. {
  42727. Dialog_Show(playerid, SafeWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw money", "There is currently %s stored in the safe.\n\nPlease input the amount of money to withdraw below:", "Submit", "Cancel", FormatNumber(Furniture[safe][fMoney]));
  42728. }
  42729. case 1:
  42730. {
  42731. Dialog_Show(playerid, SafeDeposit, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit money", "There is currently %s stored in the safe.\n\nPlease input the amount of money to deposit below:", "Submit", "Cancel", FormatNumber(Furniture[safe][fMoney]));
  42732. }
  42733. }
  42734. }
  42735. else
  42736. {
  42737. ShowSafeMenu(playerid, safe);
  42738. }
  42739. return 1;
  42740. }
  42741. Dialog:SafeWithdraw(playerid, response, listitem, inputtext[])
  42742. {
  42743. new
  42744. safe = Players[playerid][pSafeMenu];
  42745. if (!IsValidFurnitureID(safe) || !Furniture[safe][fSafeOpen])
  42746. {
  42747. return 0;
  42748. }
  42749. if (response)
  42750. {
  42751. new amount;
  42752. if (sscanf(inputtext, "i", amount))
  42753. {
  42754. return Dialog_Show(playerid, SafeWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw money", "There is currently %s stored in the safe.\n\nPlease input the amount of money to withdraw below:", "Submit", "Cancel", FormatNumber(Furniture[safe][fMoney]));
  42755. }
  42756. else if (amount < 1 || amount > Furniture[safe][fMoney])
  42757. {
  42758. return Dialog_Show(playerid, SafeWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw money", "There isn't that much money in the safe.\n\nThere is currently %s stored in the trunk.\n\nPlease input the amount of money to withdraw below:", "Submit", "Cancel", FormatNumber(Furniture[safe][fMoney]));
  42759. }
  42760. else
  42761. {
  42762. Furniture[safe][fMoney] -= amount;
  42763. Players[playerid][pPocketMoney] += amount;
  42764. SaveFurniture(safe);
  42765. ShowSafeMenu(playerid, safe);
  42766. ShowActionBubble(playerid, "* %s takes some money from the safe.", ReturnNameEx(playerid));
  42767. SendInfoMessage(playerid, "You have withdrawn %s from the safe (%s remaining).", FormatNumber(amount), FormatNumber(Furniture[safe][fMoney]));
  42768. new log[128];
  42769. format(log, sizeof(log), "%s withdrew %s from safe %i.", ReturnName(playerid), FormatNumber(amount), GetClosestFurniture(playerid, 2.0, 2332));
  42770. CreateLog("money", log);
  42771. if (amount > 29999)
  42772. {
  42773. AdminDutyMessage(COLOR_RED, "Admin: %s has withdrawn %s from safe %i.", ReturnNameEx(playerid, 0), FormatNumber(amount), GetClosestFurniture(playerid, 2.0, 2332));
  42774. }
  42775. }
  42776. }
  42777. return 1;
  42778. }
  42779. Dialog:SafeDeposit(playerid, response, listitem, inputtext[])
  42780. {
  42781. new
  42782. safe = Players[playerid][pSafeMenu];
  42783. if (!IsValidFurnitureID(safe) || !Furniture[safe][fSafeOpen])
  42784. {
  42785. return 0;
  42786. }
  42787. if (response)
  42788. {
  42789. new amount;
  42790. if (sscanf(inputtext, "i", amount))
  42791. {
  42792. return Dialog_Show(playerid, SafeDeposit, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit money", "There is currently %s stored in the safe.\n\nPlease input the amount of money to deposit below:", "Submit", "Cancel", FormatNumber(Furniture[safe][fMoney]));
  42793. }
  42794. else if (amount < 1 || amount > Players[playerid][pPocketMoney])
  42795. {
  42796. return Dialog_Show(playerid, SafeDeposit, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit money", "You don't have that much money in your pocket.\n\nThere is currently %s stored in the safe.\n\nPlease input the amount of money to deposit below:", "Submit", "Cancel", FormatNumber(Furniture[safe][fMoney]));
  42797. }
  42798. else
  42799. {
  42800. Furniture[safe][fMoney] += amount;
  42801. Players[playerid][pPocketMoney] -= amount;
  42802. SaveFurniture(safe);
  42803. ShowSafeMenu(playerid, safe);
  42804. ShowActionBubble(playerid, "* %s puts some money in the safe.", ReturnNameEx(playerid));
  42805. SendInfoMessage(playerid, "You have deposited %s into the safe (%s remaining).", FormatNumber(amount), FormatNumber(Furniture[safe][fMoney]));
  42806. /*format(gExecute, sizeof(gExecute), "INSERT INTO rp_paylogs (Player, Target, Price, Date) VALUES('%s', '%s', %i, NOW())", ReturnName(playerid), ReturnName(targetid), amount);
  42807. mysql_tquery(gConnection, gExecute);*/
  42808. new log[128];
  42809. format(log, sizeof(log), "%s deposited %s into safe %i.", ReturnName(playerid), FormatNumber(amount), GetClosestFurniture(playerid, 2.0, 2332));
  42810. CreateLog("money", log);
  42811. if (amount > 10000)
  42812. {
  42813. AdminDutyMessage(COLOR_RED, "Admin: %s has deposited %s into safe %i.", ReturnNameEx(playerid, 0), FormatNumber(amount), GetClosestFurniture(playerid, 2.0, 2332));
  42814. }
  42815. }
  42816. }
  42817. return 1;
  42818. }
  42819. Dialog:SafeCode(playerid, response, listitem, inputtext[])
  42820. {
  42821. new
  42822. safe = GetClosestFurniture(playerid, 2.0, 2332);
  42823. if (safe == INVALID_ID)
  42824. {
  42825. return 0;
  42826. }
  42827. if (response)
  42828. {
  42829. new code;
  42830. if (sscanf(inputtext, "i", code))
  42831. {
  42832. return Dialog_Show(playerid, SafeCode, DIALOG_STYLE_INPUT, "{FFFFFF}Safe code", "Please input the code to unlock this safe:", "Submit", "Cancel");
  42833. }
  42834. else if (code != Furniture[safe][fCode])
  42835. {
  42836. return Dialog_Show(playerid, SafeCode, DIALOG_STYLE_INPUT, "{FFFFFF}Safe code", "Incorrect security code.\n\nPlease input the code to unlock this safe:", "Submit", "Cancel");
  42837. }
  42838. else
  42839. {
  42840. Furniture[safe][fSafeOpen] = 1;
  42841. ShowActionBubble(playerid, "* %s opens the safe and looks inside.", ReturnNameEx(playerid));
  42842. UpdateDynamic3DTextLabelText(Furniture[safe][fText], COLOR_GREY, "Status: {33CC33}Opened{AFAFAF}\nPress Y to use safe");
  42843. ShowSafeMenu(playerid, safe);
  42844. SendInfoMessage(playerid, "You have opened the safe.");
  42845. }
  42846. }
  42847. return 1;
  42848. }
  42849. Dialog:MySettings(playerid, response, listitem, inputtext[])
  42850. {
  42851. if (response)
  42852. {
  42853. switch (listitem)
  42854. {
  42855. case 0:
  42856. {
  42857. Players[playerid][pShowPM] = !Players[playerid][pShowPM];
  42858. if (Players[playerid][pShowPM])
  42859. {
  42860. SendInfoMessage(playerid, "You have enabled incoming private messages.");
  42861. }
  42862. else
  42863. {
  42864. SendInfoMessage(playerid, "You have disabled incoming private messages.");
  42865. }
  42866. }
  42867. case 1:
  42868. {
  42869. Players[playerid][pShowSpeed] = !Players[playerid][pShowSpeed];
  42870. if (Players[playerid][pShowSpeed])
  42871. {
  42872. SendInfoMessage(playerid, "You have enabled the speedometer.");
  42873. }
  42874. else
  42875. {
  42876. SendInfoMessage(playerid, "You have disabled the speedometer.");
  42877. }
  42878. if (GetPlayerState(playerid) == PLAYER_STATE_DRIVER && IsPoweredVehicle(GetPlayerVehicleID(playerid)))
  42879. {
  42880. ShowSpeedometer(playerid, Players[playerid][pShowSpeed]);
  42881. }
  42882. }
  42883. case 2:
  42884. {
  42885. Players[playerid][pShowFuel] = !Players[playerid][pShowFuel];
  42886. if (Players[playerid][pShowFuel])
  42887. {
  42888. SendInfoMessage(playerid, "You have enabled the fuel gauge.");
  42889. }
  42890. else
  42891. {
  42892. SendInfoMessage(playerid, "You have disabled the fuel gauge.");
  42893. }
  42894. if (GetPlayerState(playerid) == PLAYER_STATE_DRIVER && IsPoweredVehicle(GetPlayerVehicleID(playerid)))
  42895. {
  42896. ShowFuelGauge(playerid, Players[playerid][pShowFuel]);
  42897. }
  42898. }
  42899. case 3:
  42900. {
  42901. Players[playerid][pShowTime] = !Players[playerid][pShowTime];
  42902. if (Players[playerid][pShowTime])
  42903. {
  42904. SendInfoMessage(playerid, "You have enabled the time textdraw.");
  42905. }
  42906. else
  42907. {
  42908. SendInfoMessage(playerid, "You have disabled the time textdraw.");
  42909. }
  42910. ShowTimeForPlayer(playerid, Players[playerid][pShowTime]);
  42911. }
  42912. case 4:
  42913. {
  42914. Players[playerid][pShowOOC] = !Players[playerid][pShowOOC];
  42915. if (Players[playerid][pShowOOC])
  42916. {
  42917. SendInfoMessage(playerid, "You have enabled the OOC chat.");
  42918. }
  42919. else
  42920. {
  42921. SendInfoMessage(playerid, "You have disabled the OOC chat.");
  42922. }
  42923. }
  42924. case 5:
  42925. {
  42926. Players[playerid][pShowSupporter] = !Players[playerid][pShowSupporter];
  42927. if (Players[playerid][pShowSupporter])
  42928. {
  42929. SendInfoMessage(playerid, "You have enabled the Supporter chat.");
  42930. }
  42931. else
  42932. {
  42933. SendInfoMessage(playerid, "You have disabled the Supporter chat.");
  42934. }
  42935. }
  42936. case 6:
  42937. {
  42938. Players[playerid][pShowReports] = !Players[playerid][pShowReports];
  42939. if (Players[playerid][pShowReports])
  42940. {
  42941. SendInfoMessage(playerid, "You have enabled incoming reports.");
  42942. }
  42943. else
  42944. {
  42945. SendInfoMessage(playerid, "You have disabled incoming reports.");
  42946. }
  42947. }
  42948. case 7:
  42949. {
  42950. Players[playerid][pShowAdmin] = !Players[playerid][pShowAdmin];
  42951. if (Players[playerid][pShowAdmin])
  42952. {
  42953. SendInfoMessage(playerid, "You have enabled admin chat.");
  42954. }
  42955. else
  42956. {
  42957. SendInfoMessage(playerid, "You have disabled admin chat.");
  42958. }
  42959. }
  42960. }
  42961. ShowSettings(playerid);
  42962. }
  42963. return 1;
  42964. }
  42965. Dialog:ContactNumber(playerid, response, listitem, inputtext[])
  42966. {
  42967. if (response)
  42968. {
  42969. new number;
  42970. if (sscanf(inputtext, "i", number))
  42971. {
  42972. return Dialog_Show(playerid, ContactNumber, DIALOG_STYLE_INPUT, "{FFFFFF}Contact number", "Please input the number for the contact '%s':", "Submit", "Cancel", gTargetName[playerid]);
  42973. }
  42974. else if (number < 1)
  42975. {
  42976. return Dialog_Show(playerid, ContactNumber, DIALOG_STYLE_INPUT, "{FFFFFF}Contact number", "You have entered an invalid number.\n\nPlease input the number for the contact '%s':", "Submit", "Cancel", gTargetName[playerid]);
  42977. }
  42978. else
  42979. {
  42980. format(gExecute, sizeof(gExecute), "INSERT INTO rp_contacts (Phone, Contact, Number) VALUES(%i, '%s', %i)", Players[playerid][pPhone], mysql_escaped(gTargetName[playerid]), number);
  42981. mysql_tquery(gConnection, gExecute);
  42982. ListContacts(playerid);
  42983. SendInfoMessage(playerid, "You have added a contact: %s (%i).", gTargetName[playerid], number);
  42984. }
  42985. }
  42986. return 1;
  42987. }
  42988. Dialog:AddContact(playerid, response, listitem, inputtext[])
  42989. {
  42990. if (response)
  42991. {
  42992. if (isnull(inputtext))
  42993. {
  42994. return Dialog_Show(playerid, AddContact, DIALOG_STYLE_INPUT, "{FFFFFF}Add contact", "Please input the name of the contact to add below:", "Submit", "Cancel");
  42995. }
  42996. else if (strlen(inputtext) > 24)
  42997. {
  42998. return Dialog_Show(playerid, AddContact, DIALOG_STYLE_INPUT, "{FFFFFF}Add contact", "The contact name must be below 24 characters.\n\nPlease input the name of the contact to add below:", "Submit", "Cancel");
  42999. }
  43000. else
  43001. {
  43002. strcpy(gTargetName[playerid], inputtext, MAX_PLAYER_NAME);
  43003. Dialog_Show(playerid, ContactNumber, DIALOG_STYLE_INPUT, "{FFFFFF}Contact number", "Please input the number for the contact '%s':", "Submit", "Cancel", gTargetName[playerid]);
  43004. }
  43005. }
  43006. else
  43007. {
  43008. ListContacts(playerid);
  43009. }
  43010. return 1;
  43011. }
  43012. Dialog:ContactOptions(playerid, response, listitem, inputtext[])
  43013. {
  43014. if (response)
  43015. {
  43016. switch (listitem)
  43017. {
  43018. case 0:
  43019. {
  43020. format(gExecute, sizeof(gExecute), "SELECT Contact, Number FROM rp_contacts WHERE ID = %i", Players[playerid][pSelected]);
  43021. mysql_tquery(gConnection, gExecute, "OnPlayerCallContact", "i", playerid);
  43022. }
  43023. case 1:
  43024. {
  43025. format(gExecute, sizeof(gExecute), "SELECT Contact, Number FROM rp_contacts WHERE ID = %i", Players[playerid][pSelected]);
  43026. mysql_tquery(gConnection, gExecute, "OnPlayerTextContact", "i", playerid);
  43027. }
  43028. case 2:
  43029. {
  43030. format(gExecute, sizeof(gExecute), "DELETE FROM rp_contacts WHERE ID = %i", Players[playerid][pSelected]);
  43031. mysql_tquery(gConnection, gExecute);
  43032. ListContacts(playerid);
  43033. SendInfoMessage(playerid, "You have deleted the selected contact.");
  43034. }
  43035. }
  43036. }
  43037. else
  43038. {
  43039. ListContacts(playerid);
  43040. }
  43041. return 1;
  43042. }
  43043. Dialog:Contacts(playerid, response, listitem, inputtext[])
  43044. {
  43045. if (response)
  43046. {
  43047. if (listitem == 0)
  43048. {
  43049. Dialog_Show(playerid, AddContact, DIALOG_STYLE_INPUT, "{FFFFFF}Add contact", "Please input the name of the contact to add below:", "Submit", "Cancel");
  43050. }
  43051. else
  43052. {
  43053. Players[playerid][pSelected] = gListedItems[playerid][--listitem];
  43054. Dialog_Show(playerid, ContactOptions, DIALOG_STYLE_LIST, "{FFFFFF}Contact options", "Call contact\nText Message\nDelete contact", "Select", "Cancel");
  43055. }
  43056. }
  43057. return 1;
  43058. }
  43059. Dialog:EditAccessory(playerid, response, listitem, inputtext[])
  43060. {
  43061. if (response)
  43062. {
  43063. switch (listitem)
  43064. {
  43065. case 0:
  43066. {
  43067. Accessories[playerid][Players[playerid][pSelected]][aAttached] = !Accessories[playerid][Players[playerid][pSelected]][aAttached];
  43068. if (Accessories[playerid][Players[playerid][pSelected]][aAttached])
  43069. {
  43070. SendInfoMessage(playerid, "You have attached your %s.", GetAccessoryName(playerid, Players[playerid][pSelected]));
  43071. }
  43072. else
  43073. {
  43074. SendInfoMessage(playerid, "You have detached your %s.", GetAccessoryName(playerid, Players[playerid][pSelected]));
  43075. }
  43076. AttachObjectsToPlayer(playerid);
  43077. ListAccessories(playerid);
  43078. }
  43079. case 1:
  43080. {
  43081. EditAttachedObjectEx(playerid, EDIT_TYPE_ACCESSORY, Players[playerid][pSelected]);
  43082. Players[playerid][pEditID] = Players[playerid][pSelected];
  43083. SendInfoMessage(playerid, "Press ESC to cancel. Click the disk icon to save changes.");
  43084. }
  43085. case 2:
  43086. {
  43087. SendInfoMessage(playerid, "You have deleted your %s.", GetAccessoryName(playerid, Players[playerid][pSelected]));
  43088. DeleteAccessory(playerid, Players[playerid][pSelected]);
  43089. }
  43090. }
  43091. }
  43092. else
  43093. {
  43094. ListAccessories(playerid);
  43095. }
  43096. return 1;
  43097. }
  43098. Dialog:Accessories(playerid, response, listitem, inputtext[])
  43099. {
  43100. if (response)
  43101. {
  43102. Players[playerid][pSelected] = gListedItems[playerid][listitem];
  43103. if (Accessories[playerid][Players[playerid][pSelected]][aAttached])
  43104. {
  43105. Dialog_Show(playerid, EditAccessory, DIALOG_STYLE_LIST, "{FFFFFF}Edit accessory", "Detach accessory\nEdit position\nDelete accessory", "Select", "Back");
  43106. }
  43107. else
  43108. {
  43109. Dialog_Show(playerid, EditAccessory, DIALOG_STYLE_LIST, "{FFFFFF}Edit accessory", "Attach accessory\nEdit position\nDelete accessory", "Select", "Back");
  43110. }
  43111. }
  43112. return 1;
  43113. }
  43114. Dialog:GiveItem(playerid, response, listitem, inputtext[])
  43115. {
  43116. if (response)
  43117. {
  43118. new
  43119. id = Players[playerid][pSelected],
  43120. name[48],
  43121. targetid;
  43122. strcpy(name, GetFullItemName(playerid, id));
  43123. if (sscanf(inputtext, "u", targetid))
  43124. {
  43125. return Dialog_Show(playerid, GiveItem, DIALOG_STYLE_INPUT, "{FFFFFF}Give item", "Item: %s\n\nPlease input the player to give this item to:", "Submit", "Cancel", GetFullItemName(playerid, id));
  43126. }
  43127. else if (!IsPlayerConnected(targetid))
  43128. {
  43129. return Dialog_Show(playerid, GiveItem, DIALOG_STYLE_INPUT, "{FFFFFF}Give item", "The specified player is invalid.\n\nItem: %s\n\nPlease input the player to give this item to:", "Submit", "Cancel", GetFullItemName(playerid, id));
  43130. }
  43131. else if (!IsPlayerInRangeOfPlayer(playerid, targetid))
  43132. {
  43133. return Dialog_Show(playerid, GiveItem, DIALOG_STYLE_INPUT, "{FFFFFF}Give item", "You are not close to that player.\n\nItem: %s\n\nPlease input the player to give this item to:", "Submit", "Cancel", GetFullItemName(playerid, id));
  43134. }
  43135. else if (IsPlayerNPC(targetid))
  43136. {
  43137. return Dialog_Show(playerid, GiveItem, DIALOG_STYLE_INPUT, "{FFFFFF}Give item", "You can't give items to an NPC.\n\nItem: %s\n\nPlease input the player to give this item to:", "Submit", "Cancel", GetFullItemName(playerid, id));
  43138. }
  43139. else if (targetid == playerid)
  43140. {
  43141. return Dialog_Show(playerid, GiveItem, DIALOG_STYLE_INPUT, "{FFFFFF}Give item", "You can't give items to yourself.\n\nItem: %s\n\nPlease input the player to give this item to:", "Submit", "Cancel", GetFullItemName(playerid, id));
  43142. }
  43143. else if (!strcmp(Inventory[playerid][id][invName], "Mask") && Players[targetid][pHoursOnline] < 10)
  43144. {
  43145. return SendErrorMessage(playerid, "The specified player needs 10 playing hours first.");
  43146. }
  43147. else
  43148. {
  43149. if (GetItemInformation(Inventory[playerid][id][invName], ITEM_INFO_STACKABLE))
  43150. {
  43151. Players[playerid][pGiveDrugs] = targetid;
  43152. Dialog_Show(playerid, GiveAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Give amount", "Item: %s\nAmount: %i\n\nHow much of this item would you like to give to %s?", "Submit", "Cancel", Inventory[playerid][id][invName], Inventory[playerid][id][invValue], ReturnNameEx(targetid));
  43153. }
  43154. else
  43155. {
  43156. new
  43157. item = TransferItemToPlayer(playerid, targetid, id);
  43158. if (item == INVALID_ID)
  43159. {
  43160. return SendErrorMessage(playerid, "That player doesn't have any room.");
  43161. }
  43162. else
  43163. {
  43164. if (Players[playerid][pFaction] != INVALID_ID)
  43165. {
  43166. foreach (new i : Player)
  43167. {
  43168. if (Players[i][pAdminDuty])
  43169. {
  43170. //SendAdminMessage(COLOR_RED, "Admin: %s has given %s to %s.", ReturnNameEx(playerid, 0), name, ReturnNameEx(targetid, 0));
  43171. SendFormatMessage(i, COLOR_RED, "Admin: %s has given %s to %s.", ReturnNameEx(playerid, 0), name, ReturnNameEx(targetid, 0));
  43172. }
  43173. }
  43174. }
  43175. format(gExecute, sizeof(gExecute), "INSERT INTO rp_itemlogs (Player, Item, Action, Date) VALUES('%s', '%s', 'Given to %s', NOW())", ReturnName(playerid), name, ReturnName(targetid));
  43176. mysql_tquery(gConnection, gExecute);
  43177. ShowActionBubble(playerid, "* %s takes out an item and gives it to %s.", ReturnNameEx(playerid), ReturnNameEx(targetid));
  43178. SendInfoMessage(playerid, "You have given %s an item: %s.", ReturnNameEx(targetid), name);
  43179. SendInfoMessage(targetid, "%s has given you an item: %s.", ReturnNameEx(playerid), name);
  43180. }
  43181. }
  43182. }
  43183. }
  43184. return 1;
  43185. }
  43186. Dialog:GiveAmount(playerid, response, listitem, inputtext[])
  43187. {
  43188. if (response)
  43189. {
  43190. new
  43191. targetid = Players[playerid][pGiveDrugs],
  43192. id = Players[playerid][pSelected],
  43193. name[48],
  43194. amount;
  43195. strcpy(name, GetFullItemName(playerid, id));
  43196. if (sscanf(inputtext, "i", amount))
  43197. {
  43198. return Dialog_Show(playerid, GiveAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Give amount", "Item: %s\nAmount: %i\n\nHow much of this item would you like to give to %s?", "Submit", "Cancel", Inventory[playerid][id][invName], Inventory[playerid][id][invValue], ReturnNameEx(targetid));
  43199. }
  43200. else if (amount < 1 || amount > Inventory[playerid][id][invValue])
  43201. {
  43202. return Dialog_Show(playerid, GiveAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Give amount", "There isn't that much of this item.\n\nItem: %s\nAmount: %i\n\nHow much of this item would you like to give to %s?", "Submit", "Cancel", Inventory[playerid][id][invName], Inventory[playerid][id][invValue], ReturnNameEx(targetid));
  43203. }
  43204. else
  43205. {
  43206. new
  43207. item = AddItemToInventory(targetid, Inventory[playerid][id][invName], amount);
  43208. if (item == INVALID_ID)
  43209. {
  43210. return SendErrorMessage(playerid, "That player doesn't have any room.");
  43211. }
  43212. else
  43213. {
  43214. format(gExecute, sizeof(gExecute), "INSERT INTO rp_itemlogs (Player, Item, Action, Date) VALUES('%s', '%s (%i)', 'Given to %s', NOW())", ReturnName(playerid), Inventory[playerid][id][invName], amount, ReturnName(targetid));
  43215. mysql_tquery(gConnection, gExecute);
  43216. SendInfoMessage(playerid, "You have given %s (%i) to %s.", Inventory[playerid][id][invName], amount, ReturnNameEx(targetid));
  43217. SendInfoMessage(targetid, "%s has given you %s (%i).", ReturnNameEx(playerid), Inventory[playerid][id][invName], amount);
  43218. RemoveItemValue(playerid, id, amount);
  43219. ShowActionBubble(playerid, "* %s takes out an item and gives it to %s.", ReturnNameEx(playerid), ReturnNameEx(targetid, 0));
  43220. }
  43221. }
  43222. }
  43223. return 1;
  43224. }
  43225. Dialog:CollectTransfer(playerid, response, listitem, inputtext[])
  43226. {
  43227. new
  43228. id = Players[playerid][pBank];
  43229. if (!BankAccounts[playerid][id][bankExists] || !IsPlayerInBank(playerid))
  43230. {
  43231. return 0;
  43232. }
  43233. if (response)
  43234. {
  43235. format(gExecute, sizeof(gExecute), "SELECT Sender, Amount FROM rp_transfers WHERE Player = %i AND ID = %i", Players[playerid][pID], gListedItems[playerid][listitem]);
  43236. mysql_tquery(gConnection, gExecute, "OnPlayerCollectTransfer", "iii", playerid, id, gListedItems[playerid][listitem]);
  43237. }
  43238. else
  43239. {
  43240. ShowBankAccountMenu(playerid, id);
  43241. }
  43242. return 1;
  43243. }
  43244. Dialog:BankDeposit(playerid, response, listitem, inputtext[])
  43245. {
  43246. new
  43247. id = Players[playerid][pBank];
  43248. if (!BankAccounts[playerid][id][bankExists] || !IsPlayerInBank(playerid))
  43249. {
  43250. return 0;
  43251. }
  43252. if (response)
  43253. {
  43254. new
  43255. amount;
  43256. if (sscanf(inputtext, "i", amount))
  43257. {
  43258. return Dialog_Show(playerid, BankDeposit, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit money", "'%s' contains a balance of %s.\n\nPlease input the amount of money to deposit below.", "Submit", "Back", BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance]));
  43259. }
  43260. else if (amount < 1 || amount > Players[playerid][pPocketMoney])
  43261. {
  43262. return Dialog_Show(playerid, BankDeposit, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit money", "You don't have that much in your pocket.\n\n'%s' contains a balance of %s.\n\nPlease input the amount of money to deposit below.", "Submit", "Back", BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance]));
  43263. }
  43264. else
  43265. {
  43266. BankAccounts[playerid][id][bankBalance] += amount;
  43267. Players[playerid][pPocketMoney] -= amount;
  43268. SaveBankAccount(playerid, id);
  43269. ShowBankAccountMenu(playerid, id);
  43270. SendInfoMessage(playerid, "You have deposited %s into %s (%s remaining).", FormatNumber(amount), BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance]));
  43271. new log[128];
  43272. format(log, sizeof(log), "%s deposited %s into bank account: %s.", ReturnName(playerid), FormatNumber(amount), BankAccounts[playerid][id][bankName]);
  43273. CreateLog("money", log);
  43274. }
  43275. }
  43276. else
  43277. {
  43278. ShowBankAccountMenu(playerid, id);
  43279. }
  43280. return 1;
  43281. }
  43282. Dialog:BankWithdraw(playerid, response, listitem, inputtext[])
  43283. {
  43284. new
  43285. id = Players[playerid][pBank];
  43286. if (!BankAccounts[playerid][id][bankExists] || !IsPlayerInBank(playerid))
  43287. {
  43288. return 0;
  43289. }
  43290. if (response)
  43291. {
  43292. new
  43293. amount;
  43294. if (sscanf(inputtext, "i", amount))
  43295. {
  43296. return Dialog_Show(playerid, BankWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw money", "'%s' contains a balance of %s.\n\nPlease input the amount of money to withdraw below.", "Submit", "Back", BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance]));
  43297. }
  43298. else if (amount < 1 || amount > BankAccounts[playerid][id][bankBalance])
  43299. {
  43300. return Dialog_Show(playerid, BankWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw money", "There isn't that much money in the bank account.\n\n'%s' contains a balance of %s.\n\nPlease input the amount of money to withdraw below.", "Submit", "Back", BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance]));
  43301. }
  43302. else
  43303. {
  43304. BankAccounts[playerid][id][bankBalance] -= amount;
  43305. Players[playerid][pPocketMoney] += amount;
  43306. SaveBankAccount(playerid, id);
  43307. ShowBankAccountMenu(playerid, id);
  43308. SendInfoMessage(playerid, "You have withdrawn {33CC33}%s{FFFFFF} from %s (%s remaining).", FormatNumber(amount), BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance]));
  43309. new log[128];
  43310. format(log, sizeof(log), "%s withdrew %s from bank account: %s.", ReturnName(playerid), FormatNumber(amount), BankAccounts[playerid][id][bankName]);
  43311. CreateLog("money", log);
  43312. }
  43313. }
  43314. else
  43315. {
  43316. ShowBankAccountMenu(playerid, id);
  43317. }
  43318. return 1;
  43319. }
  43320. Dialog:TransferAmount(playerid, response, listitem, inputtext[])
  43321. {
  43322. new
  43323. id = Players[playerid][pBank];
  43324. if (!BankAccounts[playerid][id][bankExists] || !IsPlayerInBank(playerid))
  43325. {
  43326. return 0;
  43327. }
  43328. if (response)
  43329. {
  43330. new
  43331. name[MAX_PLAYER_NAME],
  43332. amount;
  43333. if (sscanf(inputtext, "i", amount))
  43334. {
  43335. return Dialog_Show(playerid, TransferAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Transfer money", "'%s' contains a balance of %s.\n\nPlease input the amount of money to transfer to '%s'.", "Submit", "Back", BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance]), gTargetName[playerid]);
  43336. }
  43337. else if (amount < 1 || amount > BankAccounts[playerid][id][bankBalance])
  43338. {
  43339. return Dialog_Show(playerid, TransferAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Transfer money", "There isn't that much money in this account.\n\n'%s' contains a balance of %s.\n\nPlease input the amount of money to transfer to '%s'.", "Submit", "Back", BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance]), gTargetName[playerid]);
  43340. }
  43341. else
  43342. {
  43343. strcpy(name, gTargetName[playerid]);
  43344. foreach (new i : Player)
  43345. {
  43346. if (IsPlayerLoggedIn(i) && !strcmp(ReturnName(i), name))
  43347. {
  43348. SendInfoMessage(i, "%s has tranferred you %s. You can collect it at the bank.", ReturnNameEx(playerid), FormatNumber(amount));
  43349. }
  43350. }
  43351. BankAccounts[playerid][id][bankBalance] -= amount;
  43352. SendInfoMessage(playerid, "You have transferred {33CC33}%s{FFFFFF} to %s (%s remaining).", FormatNumber(amount), name, FormatNumber(BankAccounts[playerid][id][bankBalance]));
  43353. format(gExecute, sizeof(gExecute), "INSERT INTO rp_transferlogs (Sender, Recipient, Date, Amount) VALUES('%s', '%s', NOW(), %i)", ReturnName(playerid), name, amount);
  43354. mysql_tquery(gConnection, gExecute);
  43355. format(gExecute, sizeof(gExecute), "INSERT INTO rp_transfers (Player, Sender, Amount) VALUES(%i, '%s', %i)", Players[playerid][pTransfer], ReturnNameEx(playerid, 0), amount);
  43356. mysql_tquery(gConnection, gExecute);
  43357. SaveBankAccount(playerid, id);
  43358. ShowBankAccountMenu(playerid, id);
  43359. }
  43360. }
  43361. else
  43362. {
  43363. ShowBankAccountMenu(playerid, id);
  43364. }
  43365. return 1;
  43366. }
  43367. Dialog:BankTransfer(playerid, response, listitem, inputtext[])
  43368. {
  43369. new
  43370. id = Players[playerid][pBank];
  43371. if (!BankAccounts[playerid][id][bankExists] || !IsPlayerInBank(playerid))
  43372. {
  43373. return 0;
  43374. }
  43375. if (response)
  43376. {
  43377. if (isnull(inputtext))
  43378. {
  43379. return Dialog_Show(playerid, BankTransfer, DIALOG_STYLE_INPUT, "{FFFFFF}Transfer money", "Please input the full name of the player to transfer money to:", "Submit", "Back", BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance]));
  43380. }
  43381. else if (strlen(inputtext) > 24)
  43382. {
  43383. return Dialog_Show(playerid, BankTransfer, DIALOG_STYLE_INPUT, "{FFFFFF}Transfer money", "The name can't contain above 24 characters.\n\nPlease input the full name of the player to transfer money to:", "Submit", "Back");
  43384. }
  43385. else if (!IsValidName(inputtext))
  43386. {
  43387. return Dialog_Show(playerid, BankTransfer, DIALOG_STYLE_INPUT, "{FFFFFF}Transfer money", "You have specified an invalid name.\n\nPlease input the full name of the player to transfer money to:", "Submit", "Back");
  43388. }
  43389. else
  43390. {
  43391. format(gExecute, sizeof(gExecute), "SELECT ID FROM rp_accounts WHERE Username = '%s'", mysql_escaped(inputtext));
  43392. mysql_tquery(gConnection, gExecute, "OnTransferCheck", "ds", playerid, inputtext);
  43393. }
  43394. }
  43395. else
  43396. {
  43397. ShowBankAccountMenu(playerid, id);
  43398. }
  43399. return 1;
  43400. }
  43401. Dialog:BankClose(playerid, response, listitem, inputtext[])
  43402. {
  43403. new
  43404. id = Players[playerid][pBank];
  43405. if (!BankAccounts[playerid][id][bankExists] || !IsPlayerInBank(playerid))
  43406. {
  43407. return 0;
  43408. }
  43409. if (response)
  43410. {
  43411. if (Players[playerid][pPaymentType] == PAYMENT_TYPE_BANK && GetPrimaryBankAccount(playerid) == id)
  43412. {
  43413. SendInfoMessage(playerid, "Your payment type has been switched to cash.");
  43414. Players[playerid][pPaymentType] = PAYMENT_TYPE_CASH;
  43415. }
  43416. format(gExecute, sizeof(gExecute), "DELETE FROM rp_bankaccounts WHERE bankID = %i", BankAccounts[playerid][id][bankID]);
  43417. mysql_tquery(gConnection, gExecute);
  43418. BankAccounts[playerid][id][bankExists] = 0;
  43419. BankAccounts[playerid][id][bankBalance] = 0;
  43420. SendInfoMessage(playerid, "You have deleted a bank account: %s.", BankAccounts[playerid][id][bankName]);
  43421. ShowBankAccounts(playerid, BANK_ACCESS_MENU);
  43422. }
  43423. else
  43424. {
  43425. ShowBankAccountMenu(playerid, id);
  43426. }
  43427. return 1;
  43428. }
  43429. Dialog:BankMenu(playerid, response, listitem, inputtext[])
  43430. {
  43431. if (!IsPlayerInBank(playerid))
  43432. {
  43433. return 0;
  43434. }
  43435. if (response)
  43436. {
  43437. new
  43438. id = Players[playerid][pBank];
  43439. switch (listitem)
  43440. {
  43441. case 0:
  43442. {
  43443. Dialog_Show(playerid, BankWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw money", "'%s' contains a balance of %s.\n\nPlease input the amount of money to withdraw below.", "Submit", "Back", BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance]));
  43444. }
  43445. case 1:
  43446. {
  43447. Dialog_Show(playerid, BankDeposit, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit money", "'%s' contains a balance of %s.\n\nPlease input the amount of money to deposit below.", "Submit", "Back", BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance]));
  43448. }
  43449. case 2:
  43450. {
  43451. Dialog_Show(playerid, BankTransfer, DIALOG_STYLE_INPUT, "{FFFFFF}Transfer money", "Please input the full name of the player to transfer money to:", "Submit", "Back");
  43452. }
  43453. case 3:
  43454. {
  43455. new amount = Players[playerid][pPaycheck];
  43456. if (!amount)
  43457. {
  43458. SendErrorMessage(playerid, "You don't have a paycheck to collect.");
  43459. }
  43460. else
  43461. {
  43462. BankAccounts[playerid][id][bankBalance] += amount;
  43463. SaveBankAccount(playerid, id);
  43464. SendInfoMessage(playerid, "You have collected your paycheck: {33CC33}%s{FFFFFF}.", FormatNumber(amount));
  43465. Players[playerid][pPaycheck] = 0;
  43466. }
  43467. ShowBankAccountMenu(playerid, id);
  43468. }
  43469. case 4:
  43470. {
  43471. ListBankTransfers(playerid);
  43472. }
  43473. case 5:
  43474. {
  43475. Dialog_Show(playerid, BankClose, DIALOG_STYLE_MSGBOX, "{FFFFFF}Close account", "Are you sure you want to close this account?\n\nNote: You cannot retrieve your money once this account is deleted.", "Yes", "No");
  43476. }
  43477. }
  43478. }
  43479. else
  43480. {
  43481. ShowBankAccounts(playerid, BANK_ACCESS_MENU);
  43482. }
  43483. return 1;
  43484. }
  43485. Dialog:BankNew(playerid, response, listitem, inputtext[])
  43486. {
  43487. if (!IsPlayerInBank(playerid))
  43488. {
  43489. return 0;
  43490. }
  43491. if (response)
  43492. {
  43493. if (isnull(inputtext))
  43494. {
  43495. return Dialog_Show(playerid, BankNew, DIALOG_STYLE_INPUT, "{FFFFFF}New account", "Please input the name of your new bank account:", "Submit", "Back");
  43496. }
  43497. else if (strlen(inputtext) > 32)
  43498. {
  43499. return Dialog_Show(playerid, BankNew, DIALOG_STYLE_INPUT, "{FFFFFF}New account", "The name can't contain over 32 characters.\n\nPlease input the name of your new bank account:", "Submit", "Back");
  43500. }
  43501. else
  43502. {
  43503. AddBankAccount(playerid, inputtext);
  43504. ShowBankAccounts(playerid, BANK_ACCESS_MENU);
  43505. SendInfoMessage(playerid, "You have added a new bank account: %s.", inputtext);
  43506. }
  43507. }
  43508. else
  43509. {
  43510. ShowBankAccounts(playerid, BANK_ACCESS_MENU);
  43511. }
  43512. return 1;
  43513. }
  43514. Dialog:ATMWithdraw(playerid, response, listitem, inputtext[])
  43515. {
  43516. new
  43517. id = Players[playerid][pSelected];
  43518. if (GetClosestATM(playerid) == INVALID_ID || !BankAccounts[playerid][id][bankExists])
  43519. {
  43520. return 0;
  43521. }
  43522. if (response)
  43523. {
  43524. new amount;
  43525. if (sscanf(inputtext, "i", amount))
  43526. {
  43527. return Dialog_Show(playerid, ATMWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw money", "'%s' contains a balance of %s.\n\nPlease input the amount of money to withdraw below.", "Submit", "Back", BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance]));
  43528. }
  43529. else if (amount < 1 || amount > BankAccounts[playerid][id][bankBalance])
  43530. {
  43531. return Dialog_Show(playerid, ATMWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw money", "There isn't that much money in this account.\n\n'%s' contains a balance of %s.\n\nPlease input the amount of money to withdraw below.", "Submit", "Back", BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance]));
  43532. }
  43533. else
  43534. {
  43535. BankAccounts[playerid][id][bankBalance] -= amount;
  43536. Players[playerid][pPocketMoney] += amount;
  43537. SaveBankAccount(playerid, id);
  43538. SendInfoMessage(playerid, "You have withdrawn {33CC33}%s{FFFFFF} from %s (%s remaining).", FormatNumber(amount), BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance]));
  43539. }
  43540. }
  43541. else
  43542. {
  43543. ShowBankAccounts(playerid, BANK_ATM_MENU);
  43544. }
  43545. return 1;
  43546. }
  43547. Dialog:PaymentAccount(playerid, response, listitem, inputtext[])
  43548. {
  43549. if (response)
  43550. {
  43551. Players[playerid][pPaymentType] = PAYMENT_TYPE_BANK;
  43552. Players[playerid][pBankAccount] = BankAccounts[playerid][gListedItems[playerid][listitem]][bankID];
  43553. SendInfoMessage(playerid, "Your future payments will now be made with this bank account.");
  43554. }
  43555. return 1;
  43556. }
  43557. Dialog:ATMSelect(playerid, response, listitem, inputtext[])
  43558. {
  43559. if (GetClosestATM(playerid) == INVALID_ID)
  43560. {
  43561. return 0;
  43562. }
  43563. if (response)
  43564. {
  43565. Players[playerid][pSelected] = gListedItems[playerid][listitem];
  43566. Dialog_Show(playerid, ATMWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw money", "'%s' contains a balance of %s.\n\nPlease input the amount of money to withdraw below.", "Submit", "Back", BankAccounts[playerid][Players[playerid][pSelected]][bankName], FormatNumber(BankAccounts[playerid][Players[playerid][pSelected]][bankBalance]));
  43567. }
  43568. return 1;
  43569. }
  43570. Dialog:BankAccounts(playerid, response, listitem, inputtext[])
  43571. {
  43572. if (!IsPlayerInBank(playerid))
  43573. {
  43574. return 0;
  43575. }
  43576. if (response)
  43577. {
  43578. if (listitem == 0)
  43579. {
  43580. if (GetNextBankAccountID(playerid) == INVALID_ID)
  43581. {
  43582. return SendErrorMessage(playerid, "You can't have more than %i bank accounts.", MAX_BANK_ACCOUNTS);
  43583. }
  43584. else
  43585. {
  43586. Dialog_Show(playerid, BankNew, DIALOG_STYLE_INPUT, "{FFFFFF}New account", "Please input the name of your new bank account:", "Submit", "Back");
  43587. }
  43588. }
  43589. else
  43590. {
  43591. ShowBankAccountMenu(playerid, gListedItems[playerid][--listitem]);
  43592. }
  43593. }
  43594. return 1;
  43595. }
  43596. Dialog:TrunkAmount(playerid, response, listitem, inputtext[])
  43597. {
  43598. new
  43599. vehicle = GetVehicleID(GetClosestVehicle(playerid));
  43600. if (vehicle == INVALID_ID || Vehicles[vehicle][vLocked])
  43601. {
  43602. return 0;
  43603. }
  43604. if (response)
  43605. {
  43606. new
  43607. item = Players[playerid][pSelected];
  43608. if (StoredItems[item][stExists])
  43609. {
  43610. new amount, name[MAX_ITEM_NAME];
  43611. strunpack(name, StoredItems[item][stName]);
  43612. if (sscanf(inputtext, "i", amount))
  43613. {
  43614. return Dialog_Show(playerid, TrunkAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Take Amount", "Item: %s\nAmount: %i\n\nPlease input the amount you want to withdraw:", "Submit", "Back", GetStoredItemName(item), StoredItems[item][stValue]);
  43615. }
  43616. else if (amount < 1 || amount > StoredItems[item][stValue])
  43617. {
  43618. return Dialog_Show(playerid, TrunkAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Take Amount", "There isn't that much of this item.\n\nItem: %s\nAmount: %i\n\nPlease input the amount you want to withdraw:", "Submit", "Back", GetStoredItemName(item), StoredItems[item][stValue]);
  43619. }
  43620. else
  43621. {
  43622. new id = AddItemToInventory(playerid, name, amount);
  43623. if (id == INVALID_ID)
  43624. {
  43625. SendErrorMessage(playerid, "There is no more room in the trunk.");
  43626. }
  43627. else
  43628. {
  43629. if (amount < StoredItems[item][stValue])
  43630. {
  43631. format(gExecute, sizeof(gExecute), "UPDATE rp_items SET itemValue = itemValue - %i WHERE itemID = %i", amount, StoredItems[item][stID]);
  43632. StoredItems[item][stValue] -= amount;
  43633. }
  43634. else
  43635. {
  43636. format(gExecute, sizeof(gExecute), "DELETE FROM rp_items WHERE itemID = %i", StoredItems[item][stID]);
  43637. StoredItems[item][stExists] = 0;
  43638. }
  43639. mysql_tquery(gConnection, gExecute);
  43640. ShowTrunkItems(playerid, vehicle);
  43641. SendInfoMessage(playerid, "You have withdrawn %s (%i) from the trunk.", name, amount);
  43642. }
  43643. }
  43644. }
  43645. }
  43646. else
  43647. {
  43648. ShowTrunkItems(playerid, vehicle);
  43649. }
  43650. return 1;
  43651. }
  43652. Dialog:TrunkTake(playerid, response, listitem, inputtext[])
  43653. {
  43654. new
  43655. vehicle = GetVehicleID(GetClosestVehicle(playerid));
  43656. if (vehicle == INVALID_ID || Vehicles[vehicle][vLocked])
  43657. {
  43658. return 0;
  43659. }
  43660. if (response)
  43661. {
  43662. new
  43663. item = Players[playerid][pSelected];
  43664. if (StoredItems[item][stExists])
  43665. {
  43666. new
  43667. id = RetrieveItem(playerid, TRANSFER_FROM_TRUNK, item);
  43668. if (id == INVALID_ID)
  43669. {
  43670. return SendErrorMessage(playerid, "There is no more room in your inventory.");
  43671. }
  43672. else
  43673. {
  43674. format(gExecute, sizeof(gExecute), "INSERT INTO rp_itemlogs (Player, Item, Action, Date) VALUES('%s', '%s', 'Taken from Trunk', NOW())", ReturnName(playerid), GetFullItemName(playerid, id));
  43675. mysql_tquery(gConnection, gExecute);
  43676. StoredItems[item][stExists] = 0;
  43677. ShowActionBubble(playerid, "* %s takes an item from the trunk.", ReturnNameEx(playerid));
  43678. SendInfoMessage(playerid, "You have taken an item: %s.", GetFullItemName(playerid, id));
  43679. ShowTrunkItems(playerid, vehicle);
  43680. }
  43681. }
  43682. }
  43683. else
  43684. {
  43685. ShowTrunkItems(playerid, vehicle);
  43686. }
  43687. return 1;
  43688. }
  43689. Dialog:TrunkItems(playerid, response, listitem, inputtext[])
  43690. {
  43691. new
  43692. vehicle = GetVehicleID(GetClosestVehicle(playerid));
  43693. if (vehicle == INVALID_ID || Vehicles[vehicle][vLocked])
  43694. {
  43695. return 0;
  43696. }
  43697. if (response)
  43698. {
  43699. if (listitem == 0)
  43700. {
  43701. new success = DisplayInventory(playerid);
  43702. if (!success)
  43703. {
  43704. SendErrorMessage(playerid, "You don't have any items in your inventory.");
  43705. }
  43706. else
  43707. {
  43708. Players[playerid][pChoose] = CHOOSE_TYPE_TRUNK;
  43709. SendInfoMessage(playerid, "Choose an item to add to the trunk.");
  43710. }
  43711. }
  43712. else
  43713. {
  43714. new
  43715. item = gListedItems[playerid][--listitem];
  43716. if (StoredItems[item][stExists])
  43717. {
  43718. Players[playerid][pSelected] = item;
  43719. if (GetItemInformation(StoredItems[item][stName], ITEM_INFO_STACKABLE))
  43720. {
  43721. Dialog_Show(playerid, TrunkAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Take Amount", "Item: %s\nAmount: %i\n\nPlease input the amount you want to withdraw:", "Submit", "Back", GetStoredItemName(item), StoredItems[item][stValue]);
  43722. }
  43723. else
  43724. {
  43725. Dialog_Show(playerid, TrunkTake, DIALOG_STYLE_MSGBOX, "{FFFFFF}Item information", "Item: %s\nWeight: %i\n\nAre you sure you want to take this item?", "Yes", "No", GetStoredItemName(item), GetItemInformation(StoredItems[item][stName], ITEM_INFO_WEIGHT));
  43726. }
  43727. }
  43728. else
  43729. {
  43730. SendErrorMessage(playerid, "Sorry! Someone else has taken this item.");
  43731. }
  43732. }
  43733. }
  43734. else
  43735. {
  43736. ShowTrunkMenu(playerid, vehicle);
  43737. }
  43738. return 1;
  43739. }
  43740. Dialog:TrunkMoney(playerid, response, listitem, inputtext[])
  43741. {
  43742. new
  43743. vehicle = GetVehicleID(GetClosestVehicle(playerid));
  43744. if (vehicle == INVALID_ID || Vehicles[vehicle][vLocked])
  43745. {
  43746. return 0;
  43747. }
  43748. if (response)
  43749. {
  43750. switch (listitem)
  43751. {
  43752. case 0:
  43753. {
  43754. Dialog_Show(playerid, TrunkWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw money", "There is currently %s stored in the trunk.\n\nPlease input the amount of money to withdraw below:", "Submit", "Cancel", FormatNumber(Vehicles[vehicle][vTrunkMoney]));
  43755. }
  43756. case 1:
  43757. {
  43758. Dialog_Show(playerid, TrunkDeposit, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit money", "There is currently %s stored in the trunk.\n\nPlease input the amount of money to deposit below:", "Submit", "Cancel", FormatNumber(Vehicles[vehicle][vTrunkMoney]));
  43759. }
  43760. }
  43761. }
  43762. else
  43763. {
  43764. ShowTrunkMenu(playerid, vehicle);
  43765. }
  43766. return 1;
  43767. }
  43768. Dialog:TrunkWithdraw(playerid, response, listitem, inputtext[])
  43769. {
  43770. new
  43771. vehicle = GetVehicleID(GetClosestVehicle(playerid));
  43772. if (vehicle == INVALID_ID || Vehicles[vehicle][vLocked])
  43773. {
  43774. return 0;
  43775. }
  43776. if (response)
  43777. {
  43778. new amount;
  43779. if (sscanf(inputtext, "i", amount))
  43780. {
  43781. return Dialog_Show(playerid, TrunkWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw money", "There is currently %s stored in the trunk.\n\nPlease input the amount of money to withdraw below:", "Submit", "Cancel", FormatNumber(Vehicles[vehicle][vTrunkMoney]));
  43782. }
  43783. else if (amount < 1 || amount > Vehicles[vehicle][vTrunkMoney])
  43784. {
  43785. return Dialog_Show(playerid, TrunkWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw money", "There isn't that much money in the trunk.\n\nThere is currently %s stored in the trunk.\n\nPlease input the amount of money to withdraw below:", "Submit", "Cancel", FormatNumber(Vehicles[vehicle][vTrunkMoney]));
  43786. }
  43787. else
  43788. {
  43789. Vehicles[vehicle][vTrunkMoney] -= amount;
  43790. Players[playerid][pPocketMoney] += amount;
  43791. SaveVehicle(vehicle);
  43792. ShowTrunkMenu(playerid, vehicle);
  43793. ShowActionBubble(playerid, "* %s takes some money from the trunk.", ReturnNameEx(playerid));
  43794. SendInfoMessage(playerid, "You have withdrawn %s from the trunk (%s remaining).", FormatNumber(amount), FormatNumber(Vehicles[vehicle][vTrunkMoney]));
  43795. new log[128];
  43796. format(log, sizeof(log), "%s withdrew %s from vehicle %i.", ReturnName(playerid), FormatNumber(amount), GetClosestVehicle(playerid));
  43797. CreateLog("money", log);
  43798. if (amount > 29999)
  43799. {
  43800. AdminDutyMessage(COLOR_RED, "Admin: %s has withdrawn %s from vehicle %i.", ReturnNameEx(playerid, 0), FormatNumber(amount), GetClosestVehicle(playerid));
  43801. }
  43802. }
  43803. }
  43804. return 1;
  43805. }
  43806. Dialog:TrunkDeposit(playerid, response, listitem, inputtext[])
  43807. {
  43808. new
  43809. vehicle = GetVehicleID(GetClosestVehicle(playerid));
  43810. if (vehicle == INVALID_ID || Vehicles[vehicle][vLocked])
  43811. {
  43812. return 0;
  43813. }
  43814. if (response)
  43815. {
  43816. new amount;
  43817. if (sscanf(inputtext, "i", amount))
  43818. {
  43819. return Dialog_Show(playerid, TrunkDeposit, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit money", "There is currently %s stored in the trunk.\n\nPlease input the amount of money to deposit below:", "Submit", "Cancel", FormatNumber(Vehicles[vehicle][vTrunkMoney]));
  43820. }
  43821. else if (amount < 1 || amount > Players[playerid][pPocketMoney])
  43822. {
  43823. return Dialog_Show(playerid, TrunkDeposit, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit money", "You don't have that much money in your pocket.\n\nThere is currently %s stored in the trunk.\n\nPlease input the amount of money to deposit below:", "Submit", "Cancel", FormatNumber(Vehicles[vehicle][vTrunkMoney]));
  43824. }
  43825. else
  43826. {
  43827. Vehicles[vehicle][vTrunkMoney] += amount;
  43828. Players[playerid][pPocketMoney] -= amount;
  43829. SaveVehicle(vehicle);
  43830. ShowTrunkMenu(playerid, vehicle);
  43831. ShowActionBubble(playerid, "* %s puts some money in the trunk.", ReturnNameEx(playerid));
  43832. SendInfoMessage(playerid, "You have deposited %s into the trunk (%s remaining).", FormatNumber(amount), FormatNumber(Vehicles[vehicle][vTrunkMoney]));
  43833. new log[128];
  43834. format(log, sizeof(log), "%s deposited %s into vehicle %i.", ReturnName(playerid), FormatNumber(amount), GetClosestVehicle(playerid));
  43835. CreateLog("money", log);
  43836. if (amount > 29999)
  43837. {
  43838. AdminDutyMessage(COLOR_RED, "Admin: %s has deposited %s into vehicle %i.", ReturnNameEx(playerid, 0), FormatNumber(amount), GetClosestVehicle(playerid));
  43839. }
  43840. }
  43841. }
  43842. return 1;
  43843. }
  43844. Dialog:VehicleTrunk(playerid, response, listitem, inputtext[])
  43845. {
  43846. if (response)
  43847. {
  43848. new
  43849. vehicle = GetVehicleID(GetClosestVehicle(playerid));
  43850. if (vehicle == INVALID_ID || Vehicles[vehicle][vLocked])
  43851. {
  43852. return 0;
  43853. }
  43854. switch (listitem)
  43855. {
  43856. case 0:
  43857. {
  43858. Dialog_Show(playerid, TrunkMoney, DIALOG_STYLE_LIST, "{FFFFFF}Stored money", "Withdraw (%s)\nDeposit", "Select", "Back", FormatNumber(Vehicles[vehicle][vTrunkMoney]));
  43859. }
  43860. case 1:
  43861. {
  43862. ShowTrunkItems(playerid, vehicle);
  43863. }
  43864. }
  43865. }
  43866. return 1;
  43867. }
  43868. Dialog:BuyFurniture(playerid, response, listitem, inputtext[])
  43869. {
  43870. if (response)
  43871. {
  43872. Players[playerid][pSelected] = listitem;
  43873. ShowFurniturePreviewer(playerid, listitem);
  43874. }
  43875. return 1;
  43876. }
  43877. Dialog:HouseFurniture(playerid, response, listitem, inputtext[])
  43878. {
  43879. new
  43880. house = Players[playerid][pHouse];
  43881. if(!IsPlayerInside(playerid)) return SendErrorMessage(playerid, "You can not manage the furniture outside.");
  43882. if (!IsValidHouseID(house) || GetNearbyHouse(playerid) != house)
  43883. {
  43884. return 0;
  43885. }
  43886. if (response)
  43887. {
  43888. switch (listitem)
  43889. {
  43890. case 0: // Buy furniture
  43891. {
  43892. ShowFurnitureCategories(playerid);
  43893. }
  43894. case 1: // Edit furniture
  43895. {
  43896. if (Houses[house][hEdit])
  43897. {
  43898. Players[playerid][pHouseEdit] = INVALID_ID;
  43899. SetFurnitureEditMode(house, false);
  43900. SendInfoMessage(playerid, "You are no longer editing your furniture.");
  43901. }
  43902. else
  43903. {
  43904. if (Players[playerid][pHouseEdit] != INVALID_ID)
  43905. {
  43906. SetFurnitureEditMode(Players[playerid][pHouseEdit], false);
  43907. }
  43908. Players[playerid][pHouseEdit] = house;
  43909. SetFurnitureEditMode(house, true);
  43910. SendInfoMessage(playerid, "You are now in edition mode. Use /cancel to stop editing.");
  43911. }
  43912. }
  43913. case 2:
  43914. {
  43915. }
  43916. }
  43917. }
  43918. return 1;
  43919. }
  43920. Dialog:Restart(playerid, response, listitem, inputtext[])
  43921. {
  43922. if (response)
  43923. {
  43924. if (Players[playerid][pAdmin] < 6) return 0;
  43925. SendFormatMessageToAll(COLOR_SAMP, "(( %s has initiated a server restart. ))", ReturnNameEx(playerid, 0));
  43926. foreach (new i : Player)
  43927. {
  43928. if (IsPlayerLoggedIn(i))
  43929. {
  43930. TogglePlayerControllable(i, false);
  43931. SaveAccount(i);
  43932. }
  43933. }
  43934. GameModeExit();
  43935. }
  43936. return 1;
  43937. }
  43938. Dialog:RentVehicle(playerid, response, listitem, inputtext[])
  43939. {
  43940. if (response)
  43941. {
  43942. new
  43943. id = GetVehicleID(GetPlayerVehicleID(playerid));
  43944. if (id == INVALID_ID || !Vehicles[id][vRentable])
  43945. {
  43946. return 0;
  43947. }
  43948. else if (Vehicles[id][vRenter] != INVALID_PLAYER_ID)
  43949. {
  43950. SendErrorMessage(playerid, "This vehicle is already rented by someone else.");
  43951. RemovePlayerFromVehicle(playerid);
  43952. }
  43953. else if (!PlayerCanAfford(playerid, Vehicles[id][vPrice]))
  43954. {
  43955. SendErrorMessage(playerid, "You can't afford to rent this vehicle.");
  43956. RemovePlayerFromVehicle(playerid);
  43957. }
  43958. else
  43959. {
  43960. if (Players[playerid][pRental] != INVALID_ID)
  43961. {
  43962. RespawnRentalCar(playerid);
  43963. }
  43964. DestroyDynamic3DTextLabel(Vehicles[id][vText]);
  43965. if (GetVehicleCompany(id) != INVALID_ID && !IsCompanyOwner(playerid, GetVehicleCompany(id)))
  43966. {
  43967. GiveCompanyMoney(GetVehicleCompany(id), Vehicles[id][vPrice]);
  43968. }
  43969. RemoveMoney(playerid, Vehicles[id][vPrice]);
  43970. Vehicles[id][vRenter] = playerid;
  43971. Vehicles[id][vText] = INVALID_3DTEXT_ID;
  43972. Players[playerid][pRental] = id;
  43973. Statistics[playerid][sRentals]++;
  43974. //SendInfoMessage(playerid, "You have rented this vehicle! It belongs to you until you leave the server.");
  43975. SendInfoMessage(playerid, "You have rented this vehicle! Use '/v lock' to lock the doors.");
  43976. }
  43977. }
  43978. else
  43979. {
  43980. RemovePlayerFromVehicle(playerid);
  43981. }
  43982. return 1;
  43983. }
  43984. Dialog:RestaurantAdd(playerid, response, listitem, inputtext[])
  43985. {
  43986. new
  43987. company = Players[playerid][pCompany];
  43988. if (!IsValidCompanyID(company) || GetNearbyCompany(playerid) != company)
  43989. {
  43990. return 0;
  43991. }
  43992. if (response)
  43993. {
  43994. if (isnull(inputtext))
  43995. {
  43996. return Dialog_Show(playerid, RestaurantAdd, DIALOG_STYLE_INPUT, "{FFFFFF}Add to menu", "Please input the name of the food item you wish to add:", "Submit", "Cancel");
  43997. }
  43998. else if (strlen(inputtext) > 24)
  43999. {
  44000. return Dialog_Show(playerid, RestaurantAdd, DIALOG_STYLE_INPUT, "{FFFFFF}Add to menu", "The item length cannot be over 24 characters.\n\nPlease input the name of the food item you wish to add:", "Submit", "Cancel");
  44001. }
  44002. else
  44003. {
  44004. strcpy(Players[playerid][pProductName], inputtext, 24);
  44005. Dialog_Show(playerid, FoodPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Set price", "Please input the price below for item: %s.", "Submit", "Cancel", Players[playerid][pProductName]);
  44006. }
  44007. }
  44008. else
  44009. {
  44010. ShowProductEditMenu(playerid, company);
  44011. }
  44012. return 1;
  44013. }
  44014. Dialog:FoodPrice(playerid, response, listitem, inputtext[])
  44015. {
  44016. new
  44017. company = Players[playerid][pCompany];
  44018. if (!IsValidCompanyID(company) || GetNearbyCompany(playerid) != company)
  44019. {
  44020. return 0;
  44021. }
  44022. if (response)
  44023. {
  44024. new amount;
  44025. if (sscanf(inputtext, "i", amount))
  44026. {
  44027. return Dialog_Show(playerid, FoodPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Set price", "Please input the price below for item: %s.", "Submit", "Cancel", Players[playerid][pProductName]);
  44028. }
  44029. else if (amount < 1 || amount > 1000)
  44030. {
  44031. return Dialog_Show(playerid, FoodPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Set price", "Please input a price between $1 and $1,000.\n\nPlease input the price below for item: %s.", "Submit", "Cancel", Players[playerid][pProductName]);
  44032. }
  44033. else
  44034. {
  44035. Players[playerid][pFoodPrice] = amount;
  44036. Dialog_Show(playerid, FoodType, DIALOG_STYLE_LIST, "{FFFFFF}Select item type", "Food\nBeverage", "Select", "Cancel", Players[playerid][pProductName]);
  44037. }
  44038. }
  44039. return 1;
  44040. }
  44041. Dialog:FoodType(playerid, response, listitem, inputtext[])
  44042. {
  44043. new
  44044. company = Players[playerid][pCompany];
  44045. if (!IsValidCompanyID(company) || GetNearbyCompany(playerid) != company)
  44046. {
  44047. return 0;
  44048. }
  44049. if (response)
  44050. {
  44051. Players[playerid][pFoodType] = listitem + 1;
  44052. Dialog_Show(playerid, FoodIncrease, DIALOG_STYLE_LIST, "{FFFFFF}Select health increase", "20 percent\n25 percent\n30 percent\n35 percent\n40 percent\n45 percent\n50 percent", "Select", "Cancel", Players[playerid][pProductName]);
  44053. }
  44054. return 1;
  44055. }
  44056. Dialog:FoodIncrease(playerid, response, listitem, inputtext[])
  44057. {
  44058. new
  44059. company = Players[playerid][pCompany];
  44060. if (!IsValidCompanyID(company) || GetNearbyCompany(playerid) != company)
  44061. {
  44062. return 0;
  44063. }
  44064. if (response)
  44065. {
  44066. new
  44067. id = GetNextRestaurantItemID(company);
  44068. if (id == INVALID_ID)
  44069. {
  44070. return SendErrorMessage(playerid, "Your restaurant may only contain %i items.", MAX_RESTAURANT_ITEMS);
  44071. }
  44072. else
  44073. {
  44074. strcpy(RestaurantItems[company][id][rtName], Players[playerid][pProductName], 24);
  44075. RestaurantItems[company][id][rtExists] = 1;
  44076. RestaurantItems[company][id][rtPrice] = Players[playerid][pFoodPrice];
  44077. RestaurantItems[company][id][rtStock] = 200;
  44078. RestaurantItems[company][id][rtType] = Players[playerid][pFoodType];
  44079. RestaurantItems[company][id][rtHealth] = (listitem + 4) * 5;
  44080. format(gExecute, sizeof(gExecute), "INSERT INTO rp_fooditems (cID) VALUES(%i)", Companies[company][cID]);
  44081. mysql_tquery(gConnection, gExecute, "OnRestaurantItemAdded", "ii", company, id);
  44082. SendInfoMessage(playerid, "You have added '%s' to your restaurant.", Players[playerid][pProductName]);
  44083. ShowProductEditMenu(playerid, company);
  44084. }
  44085. }
  44086. return 1;
  44087. }
  44088. Dialog:CarPrice(playerid, response, listitem, inputtext[])
  44089. {
  44090. new
  44091. company = Players[playerid][pCompany];
  44092. if (!IsValidCompanyID(company))
  44093. {
  44094. return 0;
  44095. }
  44096. if (response)
  44097. {
  44098. new amount, modelid = Players[playerid][pSelected];
  44099. if (sscanf(inputtext, "i", amount))
  44100. {
  44101. return Dialog_Show(playerid, CarPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle price", "Please input the price to set for '%s' below.", "Submit", "Cancel", GetVehicleModelName(modelid));
  44102. }
  44103. else if (amount < 1)
  44104. {
  44105. return Dialog_Show(playerid, CarPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle price", "The price must be above $0.\n\nPlease input the price to set for '%s' below.", "Submit", "Cancel", GetVehicleModelName(modelid));
  44106. }
  44107. else
  44108. {
  44109. new
  44110. id = AddVehicleToDealership(company, modelid, amount);
  44111. if (id == INVALID_ID)
  44112. {
  44113. return SendErrorMessage(playerid, "There are no available dealership car slots.");
  44114. }
  44115. else
  44116. {
  44117. SendInfoMessage(playerid, "You have added a %s to company %i.", GetVehicleModelName(modelid), company);
  44118. ShowDealershipEditMenu(playerid, company);
  44119. }
  44120. }
  44121. }
  44122. return 1;
  44123. }
  44124. Dialog:DealerAdd(playerid, response, listitem, inputtext[])
  44125. {
  44126. new
  44127. company = Players[playerid][pCompany];
  44128. if (!IsValidCompanyID(company))
  44129. {
  44130. return 0;
  44131. }
  44132. if (response)
  44133. {
  44134. new model[32], modelid;
  44135. if (sscanf(inputtext, "s[32]", model))
  44136. {
  44137. return Dialog_Show(playerid, DealerAdd, DIALOG_STYLE_INPUT, "{FFFFFF}Add Vehicle", "Please enter the model ID or name of the vehicle to add:", "Submit", "Back");
  44138. }
  44139. else if (!(modelid = GetVehicleModelFromName(model)))
  44140. {
  44141. return SendErrorMessage(playerid, "The specified model doesn't exist.");
  44142. }
  44143. else if (IsVehicleInDealership(company, modelid))
  44144. {
  44145. return SendErrorMessage(playerid, "This vehicle is already sold at this dealership.");
  44146. }
  44147. else
  44148. {
  44149. Players[playerid][pSelected] = modelid;
  44150. Dialog_Show(playerid, CarPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle price", "Please input the price to set for '%s' below.", "Submit", "Cancel", GetVehicleModelName(modelid));
  44151. }
  44152. }
  44153. return 1;
  44154. }
  44155. Dialog:DealerList(playerid, response, listitem, inputtext[])
  44156. {
  44157. new
  44158. company = Players[playerid][pCompany];
  44159. if (!IsValidCompanyID(company))
  44160. {
  44161. return 0;
  44162. }
  44163. if (response)
  44164. {
  44165. if (listitem == 0)
  44166. {
  44167. if (!IsVehicleSpawnSetup(company))
  44168. {
  44169. return SendErrorMessage(playerid, "The vehicle spawn point is not setup.");
  44170. }
  44171. else
  44172. {
  44173. Dialog_Show(playerid, DealerAdd, DIALOG_STYLE_INPUT, "{FFFFFF}Add Vehicle", "Please enter the model ID or name of the vehicle to add:", "Submit", "Back");
  44174. }
  44175. }
  44176. else
  44177. {
  44178. Players[playerid][pSelected] = gListedItems[playerid][--listitem];
  44179. Dialog_Show(playerid, DealerEdit, DIALOG_STYLE_LIST, "{FFFFFF}Edit vehicle", "Price: %s\nDelete Vehicle", "Select", "Back", FormatNumber(DealershipCars[Players[playerid][pSelected]][dcPrice]));
  44180. }
  44181. }
  44182. return 1;
  44183. }
  44184. Dialog:DealerEdit(playerid, response, listitem, inputtext[])
  44185. {
  44186. new
  44187. company = Players[playerid][pCompany];
  44188. if (!IsValidCompanyID(company))
  44189. {
  44190. return 0;
  44191. }
  44192. if (response)
  44193. {
  44194. switch (listitem)
  44195. {
  44196. case 0:
  44197. {
  44198. Dialog_Show(playerid, DealerPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle price", "The current price for this vehicle is %s.\n\nPlease input the new price for this vehicle below.", "Submit", "Cancel", FormatNumber(DealershipCars[Players[playerid][pSelected]][dcPrice]));
  44199. }
  44200. case 1:
  44201. {
  44202. new
  44203. vehicle = Players[playerid][pSelected];
  44204. format(gExecute, sizeof(gExecute), "DELETE FROM rp_dealercars WHERE ID = %i", DealershipCars[vehicle][dcID]);
  44205. mysql_tquery(gConnection, gExecute);
  44206. DealershipCars[vehicle][dcExists] = 0;
  44207. SendInfoMessage(playerid, "You have deleted a vehicle: %s.", GetVehicleModelName(DealershipCars[vehicle][dcModel]));
  44208. ShowDealershipEditMenu(playerid, company);
  44209. }
  44210. }
  44211. }
  44212. else
  44213. {
  44214. ShowDealershipEditMenu(playerid, company);
  44215. }
  44216. return 1;
  44217. }
  44218. Dialog:DealerPrice(playerid, response, listitem, inputtext[])
  44219. {
  44220. new
  44221. company = Players[playerid][pCompany];
  44222. if (!IsValidCompanyID(company))
  44223. {
  44224. return 0;
  44225. }
  44226. if (response)
  44227. {
  44228. new vehicle = Players[playerid][pSelected], amount;
  44229. if (sscanf(inputtext, "i", amount))
  44230. {
  44231. return Dialog_Show(playerid, DealerPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle price", "The current price for this vehicle is %s.\n\nPlease input the new price for this vehicle below.", "Submit", "Cancel", FormatNumber(DealershipCars[vehicle][dcPrice]));
  44232. }
  44233. else if (amount < 0)
  44234. {
  44235. return Dialog_Show(playerid, DealerPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle price", "The current price for this vehicle is %s.\n\nPlease input the new price for this vehicle below.", "Submit", "Cancel", FormatNumber(DealershipCars[vehicle][dcPrice]));
  44236. }
  44237. else
  44238. {
  44239. DealershipCars[vehicle][dcPrice] = amount;
  44240. SaveDealershipCar(vehicle);
  44241. SendInfoMessage(playerid, "You have set the price to %s for vehicle: %s.", FormatNumber(amount), GetVehicleModelName(DealershipCars[vehicle][dcModel]));
  44242. ShowDealershipEditMenu(playerid, company);
  44243. }
  44244. }
  44245. return 1;
  44246. }
  44247. Dialog:RestaurantEdit(playerid, response, listitem, inputtext[])
  44248. {
  44249. new
  44250. company = Players[playerid][pCompany];
  44251. if (!IsValidCompanyID(company) || GetNearbyCompany(playerid) != company)
  44252. {
  44253. return 0;
  44254. }
  44255. if (response)
  44256. {
  44257. if (listitem == 0)
  44258. {
  44259. Dialog_Show(playerid, RestaurantAdd, DIALOG_STYLE_INPUT, "{FFFFFF}Add to menu", "Please input the name of the food item you wish to add:", "Submit", "Cancel");
  44260. }
  44261. else
  44262. {
  44263. new
  44264. id = gListedItems[playerid][--listitem];
  44265. Players[playerid][pProduct] = id;
  44266. Dialog_Show(playerid, RestaurantItem, DIALOG_STYLE_LIST, "{FFFFFF}Edit menu item", "Change Price\t\t%s\nRestock Item\t\t%i/100\nRemove Item", "Select", "Back", FormatNumber(RestaurantItems[company][id][rtPrice]), RestaurantItems[company][id][rtStock]);
  44267. }
  44268. }
  44269. return 1;
  44270. }
  44271. Dialog:RestaurantItem(playerid, response, listitem, inputtext[])
  44272. {
  44273. new
  44274. company = Players[playerid][pCompany];
  44275. if (!IsValidCompanyID(company) || GetNearbyCompany(playerid) != company)
  44276. {
  44277. return 0;
  44278. }
  44279. if (response)
  44280. {
  44281. new id = Players[playerid][pProduct];
  44282. switch (listitem)
  44283. {
  44284. case 0:
  44285. {
  44286. Dialog_Show(playerid, RestaurantPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Edit item price", "The current price for this item is %s.\n\nPlease input the new price for item: %s.", "Submit", "Back", FormatNumber(RestaurantItems[company][id][rtPrice]), RestaurantItems[company][id][rtName]);
  44287. }
  44288. case 1:
  44289. {
  44290. Dialog_Show(playerid, RestaurantStock, DIALOG_STYLE_INPUT, "{FFFFFF}Restock this item", "Your company currently has %i products available.\n\nThe current stock for this item is %i/100.\n\nPlease input the amount of products to stock for this item: %s.", "Submit", "Back", Companies[company][cStock], RestaurantItems[company][id][rtStock], RestaurantItems[company][id][rtName]);
  44291. }
  44292. case 2:
  44293. {
  44294. format(gExecute, sizeof(gExecute), "DELETE FROM rp_fooditems WHERE ID = %i", RestaurantItems[company][id][rtID]);
  44295. mysql_tquery(gConnection, gExecute);
  44296. RestaurantItems[company][id][rtExists] = 0;
  44297. RestaurantItems[company][id][rtID] = 0;
  44298. SendInfoMessage(playerid, "You have removed '%s' from your restaurant.", RestaurantItems[company][id][rtName]);
  44299. ShowProductEditMenu(playerid, company);
  44300. }
  44301. }
  44302. }
  44303. else
  44304. {
  44305. ShowProductEditMenu(playerid, company);
  44306. }
  44307. return 1;
  44308. }
  44309. Dialog:RestaurantPrice(playerid, response, listitem, inputtext[])
  44310. {
  44311. new company = Players[playerid][pCompany];
  44312. new id = Players[playerid][pProduct];
  44313. if (!IsValidCompanyID(company) || GetNearbyCompany(playerid) != company)
  44314. {
  44315. return 0;
  44316. }
  44317. if (response)
  44318. {
  44319. new amount;
  44320. if (sscanf(inputtext, "i", amount))
  44321. {
  44322. return Dialog_Show(playerid, RestaurantPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Edit item price", "The current price for this item is %s.\n\nPlease input the new price for item: %s.", "Submit", "Back", FormatNumber(RestaurantItems[company][id][rtPrice]), RestaurantItems[company][id][rtName]);
  44323. }
  44324. else if (amount < 1 || amount > 1000)
  44325. {
  44326. return Dialog_Show(playerid, RestaurantPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Edit item price", "Please input a price between $1 and $1,000.\n\nThe current price for this item is %s.\n\nPlease input the new price for item: %s.", "Submit", "Back", FormatNumber(RestaurantItems[company][id][rtPrice]), RestaurantItems[company][id][rtName]);
  44327. }
  44328. else
  44329. {
  44330. RestaurantItems[company][id][rtPrice] = amount;
  44331. SaveRestaurantItem(company, id);
  44332. SendInfoMessage(playerid, "You have changed the price for '%s' to: %s.", RestaurantItems[company][id][rtName], FormatNumber(amount));
  44333. ShowProductEditMenu(playerid, company);
  44334. }
  44335. }
  44336. else
  44337. {
  44338. Dialog_Show(playerid, RestaurantItem, DIALOG_STYLE_LIST, "{FFFFFF}Edit menu item", "Change Price\t\t%s\nRestock Item\t\t%i/100\nRemove Item", "Select", "Back", FormatNumber(RestaurantItems[company][id][rtPrice]), RestaurantItems[company][id][rtStock]);
  44339. }
  44340. return 1;
  44341. }
  44342. Dialog:RestaurantStock(playerid, response, listitem, inputtext[])
  44343. {
  44344. new company = Players[playerid][pCompany];
  44345. new id = Players[playerid][pProduct];
  44346. if (!IsValidCompanyID(company) || GetNearbyCompany(playerid) != company)
  44347. {
  44348. return 0;
  44349. }
  44350. if (response)
  44351. {
  44352. new amount;
  44353. if (sscanf(inputtext, "i", amount))
  44354. {
  44355. return Dialog_Show(playerid, RestaurantStock, DIALOG_STYLE_INPUT, "{FFFFFF}Restock this item", "Your company currently has %i products available.\n\nThe current stock for this item is %i/100.\n\nPlease input the amount of products to stock for this item: %s.", "Submit", "Back", Companies[company][cStock], RestaurantItems[company][id][rtStock], RestaurantItems[company][id][rtName]);
  44356. }
  44357. else if (amount < 1 || amount > Companies[company][cStock])
  44358. {
  44359. return Dialog_Show(playerid, RestaurantStock, DIALOG_STYLE_INPUT, "{FFFFFF}Restock this item", "You don't have that much stock.\n\nYour company currently has %i products available.\n\nThe current stock for this item is %i/100.\n\nPlease input the amount of products to stock for this item: %s.", "Submit", "Back", Companies[company][cStock], RestaurantItems[company][id][rtStock], RestaurantItems[company][id][rtName]);
  44360. }
  44361. else if (Products[company][id][prStock] + amount > 200)
  44362. {
  44363. return Dialog_Show(playerid, RestaurantStock, DIALOG_STYLE_INPUT, "{FFFFFF}Restock this item", "Items can only be stocked up to 200.\n\nYour company currently has %i products available.\n\nThe current stock for this item is %i/100.\n\nPlease input the amount of products to stock for this item: %s.", "Submit", "Back", Companies[company][cStock], RestaurantItems[company][id][rtStock], RestaurantItems[company][id][rtName]);
  44364. }
  44365. else
  44366. {
  44367. RestaurantItems[company][id][rtStock] += amount;
  44368. SaveRestaurantItem(company, id);
  44369. Companies[company][cStock] -= amount;
  44370. SaveCompany(company);
  44371. SendInfoMessage(playerid, "You have added %i stock for '%s' (%i/100).", amount, RestaurantItems[company][id][rtName], RestaurantItems[company][id][rtStock]);
  44372. ShowProductEditMenu(playerid, company);
  44373. }
  44374. }
  44375. else
  44376. {
  44377. Dialog_Show(playerid, RestaurantItem, DIALOG_STYLE_LIST, "{FFFFFF}Edit menu item", "Change Price\t\t%s\nRestock Item\t\t%i/100\nRemove Item", "Select", "Back", FormatNumber(RestaurantItems[company][id][rtPrice]), RestaurantItems[company][id][rtStock]);
  44378. }
  44379. return 1;
  44380. }
  44381. Dialog:EditProducts(playerid, response, listitem, inputtext[])
  44382. {
  44383. new
  44384. company = Players[playerid][pCompany];
  44385. if (!IsValidCompanyID(company) || GetNearbyCompany(playerid) != company)
  44386. {
  44387. return 0;
  44388. }
  44389. if (response)
  44390. {
  44391. new
  44392. id = gListedItems[playerid][listitem];
  44393. strcpy(Players[playerid][pProductName], g_CompanyItems[id][e_ItemName], 24);
  44394. Players[playerid][pProduct] = listitem;
  44395. Dialog_Show(playerid, EditProduct, DIALOG_STYLE_LIST, "{FFFFFF}Edit product", "Change Price\t\t%s\nRestock Item\t\t%i/100", "Select", "Back", FormatNumber(Products[company][listitem][prPrice]), Products[company][listitem][prStock]);
  44396. }
  44397. return 1;
  44398. }
  44399. Dialog:EditProduct(playerid, response, listitem, inputtext[])
  44400. {
  44401. new
  44402. company = Players[playerid][pCompany];
  44403. if (!IsValidCompanyID(company) || GetNearbyCompany(playerid) != company)
  44404. {
  44405. return 0;
  44406. }
  44407. if (response)
  44408. {
  44409. new id = Players[playerid][pProduct];
  44410. switch (listitem)
  44411. {
  44412. case 0:
  44413. {
  44414. Dialog_Show(playerid, ProductPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Edit product price", "The current price for this item is %s.\n\nPlease input the new price for item: %s.", "Submit", "Back", FormatNumber(Products[company][id][prPrice]), Players[playerid][pProductName]);
  44415. }
  44416. case 1:
  44417. {
  44418. Dialog_Show(playerid, ProductStock, DIALOG_STYLE_INPUT, "{FFFFFF}Restock this item", "Your company currently has %i products available.\n\nThe current stock for this item is %i/100.\n\nPlease input the amount of products to stock for this item: %s.", "Submit", "Back", Companies[company][cStock], Products[company][id][prStock], Players[playerid][pProductName]);
  44419. }
  44420. }
  44421. }
  44422. else
  44423. {
  44424. ShowProductEditMenu(playerid, company);
  44425. }
  44426. return 1;
  44427. }
  44428. Dialog:Treadmill(playerid, response, listitem, inputtext[])
  44429. {
  44430. if ((response) && IsPlayerInRangeOfPoint(playerid, 3.0, 773.5131, -2.1218, 1000.8479))
  44431. {
  44432. Players[playerid][pSpeedLevel] = listitem + 1;
  44433. Timers[playerid][tWorkout] = SetTimerEx("DecreasePower", 150, true, "i", playerid);
  44434. ApplyAnimation(playerid, "GYMNASIUM", "gym_tread_geton", 4.1, 0, 0, 0, 1, 0, 1);
  44435. SetTimerEx("BeginWorkout", 2000, false, "ii", playerid, WORKOUT_TREADMILL);
  44436. }
  44437. else
  44438. {
  44439. SetCameraBehindPlayer(playerid);
  44440. }
  44441. return 1;
  44442. }
  44443. Dialog:LiftWeights(playerid, response, listitem, inputtext[])
  44444. {
  44445. if ((response) && IsPlayerInRangeOfPoint(playerid, 3.0, 771.7793, 5.4092, 1000.7802))
  44446. {
  44447. Players[playerid][pWeight] = (listitem + 2) * 10;
  44448. Timers[playerid][tWorkout] = SetTimerEx("DecreasePower", 200, true, "i", playerid);
  44449. ApplyAnimation(playerid, "Freeweights", "gym_free_pickup", 4.1, 0, 0, 0, 0, 0, 1);
  44450. SetTimerEx("BeginWorkout", 2500, false, "ii", playerid, WORKOUT_DUMBELLS);
  44451. }
  44452. else
  44453. {
  44454. SetCameraBehindPlayer(playerid);
  44455. }
  44456. return 1;
  44457. }
  44458. Dialog:TeleportInt(playerid, response, listitem, inputtext[])
  44459. {
  44460. if (response)
  44461. {
  44462. SetPlayerPos(playerid, g_Interiors[listitem][e_InteriorX], g_Interiors[listitem][e_InteriorY], g_Interiors[listitem][e_InteriorZ]);
  44463. SetPlayerFacingAngle(playerid, g_Interiors[listitem][e_InteriorA]);
  44464. SetPlayerInterior(playerid, g_Interiors[listitem][e_Interior]);
  44465. SetCameraBehindPlayer(playerid);
  44466. SendInfoMessage(playerid, "You have teleported to %s.", inputtext);
  44467. }
  44468. return 1;
  44469. }
  44470. Dialog:ProductStock(playerid, response, listitem, inputtext[])
  44471. {
  44472. new company = Players[playerid][pCompany];
  44473. new id = Players[playerid][pProduct];
  44474. if (!IsValidCompanyID(company) || GetNearbyCompany(playerid) != company)
  44475. {
  44476. return 0;
  44477. }
  44478. if (response)
  44479. {
  44480. new amount;
  44481. if (sscanf(inputtext, "i", amount))
  44482. {
  44483. return Dialog_Show(playerid, ProductStock, DIALOG_STYLE_INPUT, "{FFFFFF}Restock this item", "Your company currently has %i products available.\n\nThe current stock for this item is %i/100.\n\nPlease input the amount of products to stock for this item: %s.", "Submit", "Back", Companies[company][cStock], Products[company][id][prStock], Players[playerid][pProductName]);
  44484. }
  44485. else if (amount < 1 || amount > Companies[company][cStock])
  44486. {
  44487. return Dialog_Show(playerid, ProductStock, DIALOG_STYLE_INPUT, "{FFFFFF}Restock this item", "You don't have that much stock.\n\nYour company currently has %i products available.\n\nThe current stock for this item is %i/100.\n\nPlease input the amount of products to stock for this item: %s.", "Submit", "Back", Companies[company][cStock], Products[company][id][prStock], Players[playerid][pProductName]);
  44488. }
  44489. else if (Products[company][id][prStock] + amount > 200)
  44490. {
  44491. return Dialog_Show(playerid, ProductStock, DIALOG_STYLE_INPUT, "{FFFFFF}Restock this item", "Products can only be stocked up to 200.\n\nYour company currently has %i products available.\n\nThe current stock for this item is %i/100.\n\nPlease input the amount of products to stock for this item: %s.", "Submit", "Back", Companies[company][cStock], Products[company][id][prStock], Players[playerid][pProductName]);
  44492. }
  44493. else
  44494. {
  44495. Products[company][id][prStock] = Products[company][id][prStock] + amount;
  44496. SaveProduct(company, id);
  44497. Companies[company][cStock] = Companies[company][cStock] - amount;
  44498. SaveCompany(company);
  44499. SendInfoMessage(playerid, "You have added %i stock for '%s' (%i/100).", amount, Players[playerid][pProductName], Products[company][id][prStock]);
  44500. ShowProductEditMenu(playerid, company);
  44501. }
  44502. }
  44503. else
  44504. {
  44505. Dialog_Show(playerid, EditProduct, DIALOG_STYLE_LIST, "{FFFFFF}Edit product", "Change Price\t\t%s\nRestock Item\t\t%i/100", "Select", "Back", FormatNumber(Products[company][id][prPrice]), Products[company][id][prStock]);
  44506. }
  44507. return 1;
  44508. }
  44509. Dialog:ProductPrice(playerid, response, listitem, inputtext[])
  44510. {
  44511. new company = Players[playerid][pCompany];
  44512. new id = Players[playerid][pProduct];
  44513. if (!IsValidCompanyID(company) || GetNearbyCompany(playerid) != company)
  44514. {
  44515. return 0;
  44516. }
  44517. if (response)
  44518. {
  44519. new amount;
  44520. if (sscanf(inputtext, "i", amount))
  44521. {
  44522. return Dialog_Show(playerid, ProductPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Edit product price", "The current price for this item is %s.\n\nPlease input the new price for item: %s.", "Submit", "Back", FormatNumber(Products[company][id][prPrice]), Players[playerid][pProductName]);
  44523. }
  44524. else if (amount < 1 || amount > 50000)
  44525. {
  44526. return Dialog_Show(playerid, ProductPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Edit product price", "Please input a price between $1 and $50,000.\n\nThe current price for this item is %s.\n\nPlease input the new price for item: %s.", "Submit", "Back", FormatNumber(Products[company][id][prPrice]), Players[playerid][pProductName]);
  44527. }
  44528. else
  44529. {
  44530. Products[company][id][prPrice] = amount;
  44531. SaveProduct(company, id);
  44532. SendInfoMessage(playerid, "You have changed the price for '%s' to: %s.", Players[playerid][pProductName], FormatNumber(amount));
  44533. ShowProductEditMenu(playerid, company);
  44534. }
  44535. }
  44536. else
  44537. {
  44538. Dialog_Show(playerid, EditProduct, DIALOG_STYLE_LIST, "{FFFFFF}Edit product", "Change Price\t\t%s\nRestock Item\t\t%i/100", "Select", "Back", FormatNumber(Products[company][id][prPrice]), Products[company][id][prStock]);
  44539. }
  44540. return 1;
  44541. }
  44542. Dialog:PickupItems(playerid, response, listitem, inputtext[])
  44543. {
  44544. if (response)
  44545. {
  44546. new
  44547. id = gListedItems[playerid][listitem];
  44548. if (!DropItems[id][dExists])
  44549. {
  44550. return 0;
  44551. }
  44552. else
  44553. {
  44554. new item = AddItemToInventory(playerid, DropItems[id][dName], DropItems[id][dValue], DropItems[id][dSerial]);
  44555. if (item == INVALID_ID)
  44556. {
  44557. SendErrorMessage(playerid, "There is no more room in your inventory.");
  44558. }
  44559. else
  44560. {
  44561. SendInfoMessage(playerid, "You have picked up an item: %s.", GetDropItemName(id));
  44562. ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0);
  44563. DeleteDropItem(id);
  44564. }
  44565. }
  44566. }
  44567. return 1;
  44568. }
  44569. Dialog:BuyFood(playerid, response, listitem, inputtext[])
  44570. {
  44571. new company = GetCurrentCompany(playerid);
  44572. if (!IsValidCompanyID(company))
  44573. {
  44574. return 0;
  44575. }
  44576. if (response)
  44577. {
  44578. new
  44579. id = gListedItems[playerid][listitem];
  44580. if (RestaurantItems[company][id][rtStock] <= 0)
  44581. {
  44582. return SendErrorMessage(playerid, "The selected item is out of stock.");
  44583. }
  44584. else if (!PlayerCanAfford(playerid, RestaurantItems[company][id][rtPrice]))
  44585. {
  44586. return SendErrorMessage(playerid, "You cannot afford this item.");
  44587. }
  44588. else if (GetPlayerHealthEx(playerid) >= 100.0)
  44589. {
  44590. return SendErrorMessage(playerid, "You don't need this right now.");
  44591. }
  44592. else
  44593. {
  44594. if (RestaurantItems[company][id][rtType] == 1)
  44595. {
  44596. if (GetPlayerAnimationIndex(playerid) == 537)
  44597. {
  44598. return SendErrorMessage(playerid, "Please wait until you are finished eating.");
  44599. }
  44600. else
  44601. {
  44602. if (!Players[playerid][pSitting])
  44603. {
  44604. ApplyAnimation(playerid, "FOOD", "EAT_Chicken", 4.1, 0, 0, 0, 0, 0, 1);
  44605. }
  44606. PlayerPlaySound(playerid, 32200, 0.0, 0.0, 0.0);
  44607. SendInfoMessage(playerid, "You have ordered a %s for {33CC33}%s{FFFFFF}.", RestaurantItems[company][id][rtName], FormatNumber(RestaurantItems[company][id][rtPrice]));
  44608. }
  44609. }
  44610. else if (RestaurantItems[company][id][rtType] == 2)
  44611. {
  44612. if (GetPlayerAnimationIndex(playerid) == 16)
  44613. {
  44614. return SendErrorMessage(playerid, "Please wait until you are finished drinking.");
  44615. }
  44616. else
  44617. {
  44618. if (!Players[playerid][pSitting])
  44619. {
  44620. ApplyAnimation(playerid, "BAR", "dnk_stndM_loop", 4.1, 0, 0, 0, 0, 0);
  44621. }
  44622. SendInfoMessage(playerid, "You have ordered a %s for {33CC33}%s{FFFFFF}.", RestaurantItems[company][id][rtName], FormatNumber(RestaurantItems[company][id][rtPrice]));
  44623. }
  44624. }
  44625. RestaurantItems[company][id][rtStock]--;
  44626. SaveRestaurantItem(company, id);
  44627. if (!IsCompanyOwner(playerid, company))
  44628. {
  44629. GiveCompanyMoney(company, RestaurantItems[company][id][rtPrice]);
  44630. }
  44631. RemoveMoney(playerid, RestaurantItems[company][id][rtPrice]);
  44632. if (0 <= RestaurantItems[company][id][rtHealth] <= 50) {
  44633. GivePlayerHealth(playerid, RestaurantItems[company][id][rtHealth]);
  44634. }
  44635. }
  44636. }
  44637. return 1;
  44638. }
  44639. Dialog:BuyItem(playerid, response, listitem, inputtext[])
  44640. {
  44641. new company = GetCurrentCompany(playerid);
  44642. if (!IsValidCompanyID(company))
  44643. {
  44644. return 0;
  44645. }
  44646. if (response)
  44647. {
  44648. OnPlayerPurchaseItem(playerid, g_CompanyItems[gListedItems[playerid][listitem]][e_ItemName], company, listitem);
  44649. }
  44650. return 1;
  44651. }
  44652. Dialog:EditBuilding(playerid, response, listitem, inputtext[])
  44653. {
  44654. new
  44655. building = Players[playerid][pSelected];
  44656. if (!IsValidBuildingID(building))
  44657. {
  44658. return 0;
  44659. }
  44660. if (response)
  44661. {
  44662. switch (listitem)
  44663. {
  44664. case 0:
  44665. {
  44666. GetPlayerPos(playerid, Buildings[building][bSpawn][0], Buildings[building][bSpawn][1], Buildings[building][bSpawn][2]);
  44667. GetPlayerFacingAngle(playerid, Buildings[building][bSpawn][3]);
  44668. Buildings[building][bExterior] = GetPlayerInterior(playerid);
  44669. Buildings[building][bExteriorWorld] = GetPlayerVirtualWorld(playerid);
  44670. UpdateBuilding(building);
  44671. SaveBuilding(building);
  44672. SendAdminMessage(COLOR_RED, "Admin: %s has edited the location of building %i.", ReturnNameEx(playerid, 0), building);
  44673. }
  44674. case 1:
  44675. {
  44676. GetPlayerPos(playerid, Buildings[building][bInt][0], Buildings[building][bInt][1], Buildings[building][bInt][2]);
  44677. GetPlayerFacingAngle(playerid, Buildings[building][bInt][3]);
  44678. Buildings[building][bInterior] = GetPlayerInterior(playerid);
  44679. UpdateBuilding(building);
  44680. SaveBuilding(building);
  44681. SendAdminMessage(COLOR_RED, "Admin: %s has edited the interior spawn of building %i.", ReturnNameEx(playerid, 0), building);
  44682. }
  44683. case 2:
  44684. {
  44685. Buildings[building][bLocked] = !Buildings[building][bLocked];
  44686. SaveBuilding(building);
  44687. if (Buildings[building][bLocked])
  44688. {
  44689. SendAdminMessage(COLOR_RED, "Admin: %s has locked building %i.", ReturnNameEx(playerid, 0), building);
  44690. }
  44691. else
  44692. {
  44693. SendAdminMessage(COLOR_RED, "Admin: %s has unlocked building %i.", ReturnNameEx(playerid, 0), building);
  44694. }
  44695. }
  44696. case 3:
  44697. {
  44698. Dialog_Show(playerid, BuildingName, DIALOG_STYLE_INPUT, "{FFFFFF}Building Name", "The current name for this building is %s.\n\nPlease input the new name for this building below:", "Submit", "Back", Buildings[building][bName]);
  44699. }
  44700. case 4:
  44701. {
  44702. Dialog_Show(playerid, BuildingWorld, DIALOG_STYLE_INPUT, "{FFFFFF}Building World", "The current virtual world for this building is %i.\n\nPlease input the new virtual world for this building below:", "Submit", "Back", Buildings[building][bWorld]);
  44703. }
  44704. case 5:
  44705. {
  44706. Dialog_Show(playerid, BuildingIcon, DIALOG_STYLE_INPUT, "{FFFFFF}Building Icon", "The current map icon type for this building is %i.\n\nPlease input the new icon type for this building below (0-63):", "Submit", "Back", Buildings[building][bIconType]);
  44707. }
  44708. }
  44709. }
  44710. return 1;
  44711. }
  44712. Dialog:BuildingWorld(playerid, response, listitem, inputtext[])
  44713. {
  44714. new
  44715. building = Players[playerid][pSelected];
  44716. if (!IsValidBuildingID(building))
  44717. {
  44718. return 0;
  44719. }
  44720. if (response)
  44721. {
  44722. new vw;
  44723. if (sscanf(inputtext, "i", vw))
  44724. {
  44725. return Dialog_Show(playerid, BuildingWorld, DIALOG_STYLE_INPUT, "{FFFFFF}Building World", "The current virtual world for this building is %i.\n\nPlease input the new virtual world for this building below:", "Submit", "Back", Buildings[building][bWorld]);
  44726. }
  44727. else
  44728. {
  44729. Buildings[building][bWorld] = vw;
  44730. UpdateBuilding(building);
  44731. SaveBuilding(building);
  44732. SendAdminMessage(COLOR_RED, "Admin: %s has set the virtual world of building %i to %i.", ReturnNameEx(playerid, 0), building, vw);
  44733. }
  44734. }
  44735. else
  44736. {
  44737. ShowBuildingEditMenu(playerid, building);
  44738. }
  44739. return 1;
  44740. }
  44741. Dialog:BuildingIcon(playerid, response, listitem, inputtext[])
  44742. {
  44743. new
  44744. building = Players[playerid][pSelected];
  44745. if (!IsValidBuildingID(building))
  44746. {
  44747. return 0;
  44748. }
  44749. if (response)
  44750. {
  44751. new type;
  44752. if (sscanf(inputtext, "i", type))
  44753. {
  44754. return Dialog_Show(playerid, BuildingIcon, DIALOG_STYLE_INPUT, "{FFFFFF}Building Icon", "The current map icon type for this building is %i.\n\nPlease input the new icon type for this building below (0-63):", "Submit", "Back", Buildings[building][bIconType]);
  44755. }
  44756. else if (type < 0 || type > 63)
  44757. {
  44758. return Dialog_Show(playerid, BuildingIcon, DIALOG_STYLE_INPUT, "{FFFFFF}Building Icon", "The type must be between 0 and 63.\n\nThe current map icon type for this building is %i.\n\nPlease input the new icon type for this building below (0-63):", "Submit", "Back", Buildings[building][bIconType]);
  44759. }
  44760. else
  44761. {
  44762. Buildings[building][bIconType] = type;
  44763. UpdateBuilding(building);
  44764. SaveBuilding(building);
  44765. SendAdminMessage(COLOR_RED, "Admin: %s has set the map icon of building %i to %i.", ReturnNameEx(playerid, 0), building, type);
  44766. }
  44767. }
  44768. else
  44769. {
  44770. ShowBuildingEditMenu(playerid, building);
  44771. }
  44772. return 1;
  44773. }
  44774. Dialog:BuildingName(playerid, response, listitem, inputtext[])
  44775. {
  44776. new
  44777. building = Players[playerid][pSelected];
  44778. if (!IsValidBuildingID(building))
  44779. {
  44780. return 0;
  44781. }
  44782. if (response)
  44783. {
  44784. if (isnull(inputtext))
  44785. {
  44786. return Dialog_Show(playerid, BuildingName, DIALOG_STYLE_INPUT, "{FFFFFF}Building Name", "The current name for this building is %s.\n\nPlease input the new name for this building below:", "Submit", "Back", Buildings[building][bName]);
  44787. }
  44788. else if (strlen(inputtext) > 32)
  44789. {
  44790. return Dialog_Show(playerid, BuildingName, DIALOG_STYLE_INPUT, "{FFFFFF}Building Name", "The name can't be above 32 characters.\n\nThe current name for this building is %s.\n\nPlease input the new name for this building below:", "Submit", "Back", Buildings[building][bName]);
  44791. }
  44792. else
  44793. {
  44794. strcpy(Buildings[building][bName], inputtext, 32);
  44795. UpdateBuilding(building);
  44796. SaveBuilding(building);
  44797. SendAdminMessage(COLOR_RED, "Admin: %s has set the name of building %i to %s.", ReturnNameEx(playerid, 0), building, inputtext);
  44798. }
  44799. }
  44800. else
  44801. {
  44802. ShowBuildingEditMenu(playerid, building);
  44803. }
  44804. return 1;
  44805. }
  44806. Dialog:EditCompany(playerid, response, listitem, inputtext[])
  44807. {
  44808. new
  44809. company = Players[playerid][pSelected];
  44810. if (!IsValidCompanyID(company))
  44811. {
  44812. return 0;
  44813. }
  44814. if (response)
  44815. {
  44816. switch (listitem)
  44817. {
  44818. case 0:
  44819. {
  44820. GetPlayerPos(playerid, Companies[company][cSpawn][0], Companies[company][cSpawn][1], Companies[company][cSpawn][2]);
  44821. GetPlayerFacingAngle(playerid, Companies[company][cSpawn][3]);
  44822. Companies[company][cExterior] = GetPlayerInterior(playerid);
  44823. Companies[company][cExteriorWorld] = GetPlayerVirtualWorld(playerid);
  44824. UpdateCompany(company);
  44825. SaveCompany(company);
  44826. SendAdminMessage(COLOR_RED, "Admin: %s has edited the location of company %i.", ReturnNameEx(playerid, 0), company);
  44827. }
  44828. case 1:
  44829. {
  44830. GetPlayerPos(playerid, Companies[company][cInt][0], Companies[company][cInt][1], Companies[company][cInt][2]);
  44831. GetPlayerFacingAngle(playerid, Companies[company][cInt][3]);
  44832. Companies[company][cInterior] = GetPlayerInterior(playerid);
  44833. SaveCompany(company);
  44834. SendAdminMessage(COLOR_RED, "Admin: %s has edited the interior spawn of company %i.", ReturnNameEx(playerid, 0), company);
  44835. }
  44836. case 2:
  44837. {
  44838. if (Companies[company][cType] == COMPANY_DEALERSHIP)
  44839. {
  44840. if (IsPlayerInside(playerid))
  44841. {
  44842. return SendErrorMessage(playerid, "You can't set the vehicle spawn inside.");
  44843. }
  44844. else
  44845. {
  44846. GetPlayerPos(playerid, Companies[company][cVehicle][0], Companies[company][cVehicle][1], Companies[company][cVehicle][2]);
  44847. GetPlayerFacingAngle(playerid, Companies[company][cVehicle][3]);
  44848. UpdateCompany(company);
  44849. SaveCompany(company);
  44850. SendAdminMessage(COLOR_RED, "Admin: %s has edited the vehicle spawn of company %i.", ReturnNameEx(playerid, 0), company);
  44851. }
  44852. }
  44853. else
  44854. {
  44855. if (IsPlayerInside(playerid))
  44856. {
  44857. return SendErrorMessage(playerid, "You can't set the delivery point inside.");
  44858. }
  44859. else
  44860. {
  44861. GetPlayerPos(playerid, Companies[company][cVehicle][0], Companies[company][cVehicle][1], Companies[company][cVehicle][2]);
  44862. GetPlayerFacingAngle(playerid, Companies[company][cVehicle][3]);
  44863. UpdateCompany(company);
  44864. SaveCompany(company);
  44865. SendAdminMessage(COLOR_RED, "Admin: %s has edited the delivery point of company %i.", ReturnNameEx(playerid, 0), company);
  44866. }
  44867. }
  44868. }
  44869. case 3:
  44870. {
  44871. Dialog_Show(playerid, CompanyOwner, DIALOG_STYLE_INPUT, "{FFFFFF}Company Owner", "This company is currently owned by %s.\n\nPlease enter the ID of a connected player to set as the owner (use 'none' to reset).", "Submit", "Cancel", GetCompanyOwner(company));
  44872. }
  44873. case 4:
  44874. {
  44875. Dialog_Show(playerid, CompanyValue, DIALOG_STYLE_INPUT, "{FFFFFF}Company Price", "The current price for this company is %s.\n\nPlease input the new purchase price to set for this company below:", "Submit", "Back", FormatNumber(Companies[company][cValue]));
  44876. }
  44877. case 5:
  44878. {
  44879. Dialog_Show(playerid, CompanyName, DIALOG_STYLE_INPUT, "{FFFFFF}Company Name", "The current name for this company is %s.\n\nPlease input the new name for this company below:", "Submit", "Back", Companies[company][cName]);
  44880. }
  44881. case 6:
  44882. {
  44883. new string[512];
  44884. for (new i = 0; i < sizeof(g_CompanyTypes); i ++) {
  44885. strcat(string, g_CompanyTypes[i]);
  44886. strcat(string, "\n");
  44887. }
  44888. Dialog_Show(playerid, CompanyType, DIALOG_STYLE_LIST, "{FFFFFF}Company Type", string, "Change", "Back");
  44889. }
  44890. case 7:
  44891. {
  44892. Dialog_Show(playerid, CompanyStock, DIALOG_STYLE_INPUT, "{FFFFFF}Company Stock", "The current stock for this company is %i.\n\nPlease input the amount of products to set for this company below:", "Submit", "Back", Companies[company][cStock]);
  44893. }
  44894. }
  44895. }
  44896. return 1;
  44897. }
  44898. Dialog:CompanyName(playerid, response, listitem, inputtext[])
  44899. {
  44900. new
  44901. company = Players[playerid][pSelected];
  44902. if (!IsValidCompanyID(company))
  44903. {
  44904. return 0;
  44905. }
  44906. if (response)
  44907. {
  44908. if (isnull(inputtext))
  44909. {
  44910. return Dialog_Show(playerid, CompanyName, DIALOG_STYLE_INPUT, "{FFFFFF}Company Name", "The current name for this company is %s.\n\nPlease input the new name for this company below:", "Submit", "Back", Companies[company][cName]);
  44911. }
  44912. else if (strlen(inputtext) > 32)
  44913. {
  44914. return Dialog_Show(playerid, CompanyName, DIALOG_STYLE_INPUT, "{FFFFFF}Company Name", "The name can't be over 32 characters.\n\nThe current name for this company is %s.\n\nPlease input the new name for this company below:", "Submit", "Back", Companies[company][cName]);
  44915. }
  44916. else
  44917. {
  44918. strcpy(Companies[company][cName], inputtext, 32);
  44919. UpdateCompany(company);
  44920. SaveCompany(company);
  44921. SendInfoMessage(playerid, "You have set the name of company %i to %s.", company, inputtext);
  44922. }
  44923. }
  44924. else
  44925. {
  44926. ShowCompanyEditMenu(playerid, company);
  44927. }
  44928. return 1;
  44929. }
  44930. Dialog:CompanyType(playerid, response, listitem, inputtext[])
  44931. {
  44932. new
  44933. company = Players[playerid][pSelected];
  44934. if (!IsValidCompanyID(company))
  44935. {
  44936. return 0;
  44937. }
  44938. if (response)
  44939. {
  44940. listitem = listitem + 1;
  44941. if ((Companies[company][cType] == COMPANY_RESTAURANT && listitem != COMPANY_RESTAURANT) || (Companies[company][cType] == COMPANY_RENTALS && listitem != COMPANY_RENTALS))
  44942. {
  44943. ClearProducts(company);
  44944. }
  44945. SetCompanyType(company, listitem);
  44946. UpdateCompany(company);
  44947. SaveCompany(company);
  44948. SendInfoMessage(playerid, "You have set the type of company %i to %s.", company, GetCompanyType(listitem));
  44949. }
  44950. else
  44951. {
  44952. ShowCompanyEditMenu(playerid, company);
  44953. }
  44954. return 1;
  44955. }
  44956. Dialog:CompanyStock(playerid, response, listitem, inputtext[])
  44957. {
  44958. new
  44959. company = Players[playerid][pSelected];
  44960. if (!IsValidCompanyID(company))
  44961. {
  44962. return 0;
  44963. }
  44964. if (response)
  44965. {
  44966. new amount;
  44967. if (sscanf(inputtext, "i", amount))
  44968. {
  44969. return Dialog_Show(playerid, CompanyStock, DIALOG_STYLE_INPUT, "{FFFFFF}Company Stock", "The current stock for this company is %i.\n\nPlease input the amount of products to set for this company below:", "Submit", "Back", Companies[company][cStock]);
  44970. }
  44971. else if (amount < 0)
  44972. {
  44973. return Dialog_Show(playerid, CompanyStock, DIALOG_STYLE_INPUT, "{FFFFFF}Company Stock", "The stock amount must be above 0.\n\nThe current stock for this company is %i.\n\nPlease input the amount of products to set for this company below:", "Submit", "Back", Companies[company][cStock]);
  44974. }
  44975. else
  44976. {
  44977. Companies[company][cStock] = amount;
  44978. UpdateCompany(company);
  44979. SaveCompany(company);
  44980. SendInfoMessage(playerid, "You have set the stock of company %i to %i products.", company, FormatNumber(amount));
  44981. }
  44982. }
  44983. else
  44984. {
  44985. ShowCompanyEditMenu(playerid, company);
  44986. }
  44987. return 1;
  44988. }
  44989. Dialog:CompanyValue(playerid, response, listitem, inputtext[])
  44990. {
  44991. new
  44992. company = Players[playerid][pSelected];
  44993. if (!IsValidCompanyID(company))
  44994. {
  44995. return 0;
  44996. }
  44997. if (response)
  44998. {
  44999. new amount;
  45000. if (sscanf(inputtext, "i", amount))
  45001. {
  45002. return Dialog_Show(playerid, CompanyValue, DIALOG_STYLE_INPUT, "{FFFFFF}Company Price", "The current price for this company is %s.\n\nPlease input the new purchase price to set for this company below:", "Submit", "Back", FormatNumber(Companies[company][cValue]));
  45003. }
  45004. else if (amount < 0)
  45005. {
  45006. return Dialog_Show(playerid, CompanyValue, DIALOG_STYLE_INPUT, "{FFFFFF}Company Price", "The amount must be above $0.\n\nThe current price for this company is %s.\n\nPlease input the new purchase price to set for this company below:", "Submit", "Back", FormatNumber(Companies[company][cValue]));
  45007. }
  45008. else
  45009. {
  45010. Companies[company][cValue] = amount;
  45011. UpdateCompany(company);
  45012. SaveCompany(company);
  45013. SendInfoMessage(playerid, "You have set the price of company %i to %s.", company, FormatNumber(amount));
  45014. }
  45015. }
  45016. else
  45017. {
  45018. ShowCompanyEditMenu(playerid, company);
  45019. }
  45020. return 1;
  45021. }
  45022. Dialog:CompanyOwner(playerid, response, listitem, inputtext[])
  45023. {
  45024. new
  45025. company = Players[playerid][pSelected];
  45026. if (!IsValidCompanyID(company))
  45027. {
  45028. return 0;
  45029. }
  45030. if (response)
  45031. {
  45032. new targetid;
  45033. if (!isnull(inputtext) && !strcmp(inputtext, "none", true))
  45034. {
  45035. SendInfoMessage(playerid, "You have removed the owner for company %i.", company);
  45036. SetCompanyOwner(company, INVALID_PLAYER_ID);
  45037. }
  45038. else if (sscanf(inputtext, "u", targetid))
  45039. {
  45040. return Dialog_Show(playerid, CompanyOwner, DIALOG_STYLE_INPUT, "{FFFFFF}Company Owner", "This company is currently owned by %s.\n\nPlease enter the ID of a connected player to set as the owner (use 'none' to reset).", "Submit", "Cancel", GetCompanyOwner(company));
  45041. }
  45042. else if (!IsPlayerConnected(targetid))
  45043. {
  45044. return Dialog_Show(playerid, CompanyOwner, DIALOG_STYLE_INPUT, "{FFFFFF}Company Owner", "The specified player doesn't exist.\n\nThis company is currently owned by %s.\n\nPlease enter the ID of a connected player to set as the owner (use 'none' to reset).", "Submit", "Cancel", GetCompanyOwner(company));
  45045. }
  45046. else if (!IsPlayerLoggedIn(targetid))
  45047. {
  45048. return Dialog_Show(playerid, CompanyOwner, DIALOG_STYLE_INPUT, "{FFFFFF}Company Owner", "The specified player is not logged in.\n\nThis company is currently owned by %s.\n\nPlease enter the ID of a connected player to set as the owner (use 'none' to reset).", "Submit", "Cancel", GetCompanyOwner(company));
  45049. }
  45050. else
  45051. {
  45052. SetCompanyOwner(company, targetid);
  45053. SendInfoMessage(playerid, "You have set the owner of company %i to %s (ID: %i).", company, ReturnNameEx(targetid, 0), targetid);
  45054. }
  45055. }
  45056. else
  45057. {
  45058. ShowCompanyEditMenu(playerid, company);
  45059. }
  45060. return 1;
  45061. }
  45062. Dialog:HouseInterior(playerid, response, listitem, inputtext[])
  45063. {
  45064. new
  45065. house = Players[playerid][pSelected];
  45066. if (!IsValidHouseID(house))
  45067. {
  45068. return 0;
  45069. }
  45070. if (response)
  45071. {
  45072. new type;
  45073. if (sscanf(inputtext, "i", type))
  45074. {
  45075. return Dialog_Show(playerid, HouseInterior, DIALOG_STYLE_INPUT, "{FFFFFF}House Interior", "Please input the new interior type for this house below.\n\nUse /houseint to preview the available house interiors.", "Submit", "Back");
  45076. }
  45077. else if (type < 1 || type > sizeof(g_HouseInteriors) - 1)
  45078. {
  45079. return Dialog_Show(playerid, HouseInterior, DIALOG_STYLE_INPUT, "{FFFFFF}House Interior", "You must input a number between 1 and %i.\n\nPlease input the new interior type for this house below.\n\nUse /houseint to preview the available house interiors.", "Submit", "Back", sizeof(g_HouseInteriors) - 1);
  45080. }
  45081. else
  45082. {
  45083. SetHouseInteriorType(house, type);
  45084. SaveHouse(house);
  45085. SendInfoMessage(playerid, "You have edited the interior of house %i to %i.", house, type);
  45086. }
  45087. }
  45088. return 1;
  45089. }
  45090. Dialog:EditHouse(playerid, response, listitem, inputtext[])
  45091. {
  45092. new
  45093. house = Players[playerid][pSelected];
  45094. if (!IsValidHouseID(house))
  45095. {
  45096. return 0;
  45097. }
  45098. if (response)
  45099. {
  45100. switch (listitem)
  45101. {
  45102. case 0:
  45103. {
  45104. GetPlayerPos(playerid, Houses[house][hSpawn][0], Houses[house][hSpawn][1], Houses[house][hSpawn][2]);
  45105. GetPlayerFacingAngle(playerid, Houses[house][hSpawn][3]);
  45106. Houses[house][hExterior] = GetPlayerInterior(playerid);
  45107. Houses[house][hExteriorWorld] = GetPlayerVirtualWorld(playerid);
  45108. UpdateHouse(house);
  45109. SaveHouse(house);
  45110. SendInfoMessage(playerid, "You have edited the location of house %i.", house);
  45111. }
  45112. case 1:
  45113. {
  45114. Dialog_Show(playerid, HouseInterior, DIALOG_STYLE_INPUT, "{FFFFFF}House Interior", "Please input the new interior type for this house below.\n\nUse /houseint to preview the available house interiors.", "Submit", "Back");
  45115. }
  45116. case 2:
  45117. {
  45118. Dialog_Show(playerid, HouseOwner, DIALOG_STYLE_INPUT, "{FFFFFF}House Owner", "This house is currently owned by %s.\n\nPlease enter the ID of a connected player to set as the owner (use 'none' to reset).", "Submit", "Cancel", GetHouseOwner(house));
  45119. }
  45120. case 3:
  45121. {
  45122. Dialog_Show(playerid, HouseValue, DIALOG_STYLE_INPUT, "{FFFFFF}House Price", "The current price for this house is %s.\n\nPlease input the new purchase price to set for this house below:", "Submit", "Back", FormatNumber(Houses[house][hValue]));
  45123. }
  45124. case 4:
  45125. {
  45126. Dialog_Show(playerid, HouseAddress, DIALOG_STYLE_INPUT, "{FFFFFF}House Address", "The current address for this house is %s.\n\nPlease input the new address for this house below:", "Submit", "Back", Houses[house][hAddress]);
  45127. }
  45128. }
  45129. }
  45130. return 1;
  45131. }
  45132. Dialog:HouseAddress(playerid, response, listitem, inputtext[])
  45133. {
  45134. new
  45135. house = Players[playerid][pSelected];
  45136. if (!IsValidHouseID(house))
  45137. {
  45138. return 0;
  45139. }
  45140. if (response)
  45141. {
  45142. if (isnull(inputtext))
  45143. {
  45144. return Dialog_Show(playerid, HouseAddress, DIALOG_STYLE_INPUT, "{FFFFFF}House Address", "The current address for this house is %s.\n\nPlease input the new address for this house below:", "Submit", "Back", Houses[house][hAddress]);
  45145. }
  45146. else if (strlen(inputtext) > 32)
  45147. {
  45148. return Dialog_Show(playerid, HouseAddress, DIALOG_STYLE_INPUT, "{FFFFFF}House Address", "The address can't be over 32 characters.\n\nThe current address for this house is %s.\n\nPlease input the new address for this house below:", "Submit", "Back", Houses[house][hAddress]);
  45149. }
  45150. else
  45151. {
  45152. strcpy(Houses[house][hAddress], inputtext, 32);
  45153. UpdateHouse(house);
  45154. SaveHouse(house);
  45155. SendInfoMessage(playerid, "You have set the address of house %i to %s.", house, inputtext);
  45156. }
  45157. }
  45158. else
  45159. {
  45160. ShowHouseEditMenu(playerid, house);
  45161. }
  45162. return 1;
  45163. }
  45164. Dialog:HouseValue(playerid, response, listitem, inputtext[])
  45165. {
  45166. new
  45167. house = Players[playerid][pSelected];
  45168. if (!IsValidHouseID(house))
  45169. {
  45170. return 0;
  45171. }
  45172. if (response)
  45173. {
  45174. new amount;
  45175. if (sscanf(inputtext, "i", amount))
  45176. {
  45177. return Dialog_Show(playerid, HouseValue, DIALOG_STYLE_INPUT, "{FFFFFF}House Price", "The current price for this house is %s.\n\nPlease input the new purchase price to set for this house below:", "Submit", "Back", FormatNumber(Houses[house][hValue]));
  45178. }
  45179. else if (amount < 0)
  45180. {
  45181. return Dialog_Show(playerid, HouseValue, DIALOG_STYLE_INPUT, "{FFFFFF}House Price", "The amount must be above $0.\n\nThe current price for this house is %s.\n\nPlease input the new purchase price to set for this house below:", "Submit", "Back", FormatNumber(Houses[house][hValue]));
  45182. }
  45183. else
  45184. {
  45185. Houses[house][hValue] = amount;
  45186. UpdateHouse(house);
  45187. SaveHouse(house);
  45188. SendInfoMessage(playerid, "You have set the price of house %i to %s.", house, FormatNumber(amount));
  45189. }
  45190. }
  45191. else
  45192. {
  45193. ShowHouseEditMenu(playerid, house);
  45194. }
  45195. return 1;
  45196. }
  45197. Dialog:HouseOwner(playerid, response, listitem, inputtext[])
  45198. {
  45199. new
  45200. house = Players[playerid][pSelected];
  45201. if (!IsValidHouseID(house))
  45202. {
  45203. return 0;
  45204. }
  45205. if (response)
  45206. {
  45207. new targetid;
  45208. if (!isnull(inputtext) && !strcmp(inputtext, "none", true))
  45209. {
  45210. SendInfoMessage(playerid, "You have removed the owner for house %i.", house);
  45211. SetHouseOwner(house, INVALID_PLAYER_ID);
  45212. }
  45213. else if (sscanf(inputtext, "u", targetid))
  45214. {
  45215. return Dialog_Show(playerid, HouseOwner, DIALOG_STYLE_INPUT, "{FFFFFF}House Owner", "This house is currently owned by %s.\n\nPlease enter the ID of a connected player to set as the owner (use 'none' to reset).", "Submit", "Cancel", GetHouseOwner(house));
  45216. }
  45217. else if (!IsPlayerConnected(targetid))
  45218. {
  45219. return Dialog_Show(playerid, HouseOwner, DIALOG_STYLE_INPUT, "{FFFFFF}House Owner", "The specified player doesn't exist.\n\nThis house is currently owned by %s.\n\nPlease enter the ID of a connected player to set as the owner (use 'none' to reset).", "Submit", "Cancel", GetHouseOwner(house));
  45220. }
  45221. else if (!IsPlayerLoggedIn(targetid))
  45222. {
  45223. return Dialog_Show(playerid, HouseOwner, DIALOG_STYLE_INPUT, "{FFFFFF}House Owner", "The specified player is not logged in.\n\nThis house is currently owned by %s.\n\nPlease enter the ID of a connected player to set as the owner (use 'none' to reset).", "Submit", "Cancel", GetHouseOwner(house));
  45224. }
  45225. else
  45226. {
  45227. SetHouseOwner(house, targetid);
  45228. SendInfoMessage(playerid, "You have set the owner of house %i to %s (ID: %i).", house, ReturnNameEx(targetid, 0), targetid);
  45229. }
  45230. }
  45231. else
  45232. {
  45233. ShowHouseEditMenu(playerid, house);
  45234. }
  45235. return 1;
  45236. }
  45237. Dialog:BuyHouse(playerid, response, listitem, inputtext[])
  45238. {
  45239. if (response)
  45240. {
  45241. new house = GetNearbyHouse(playerid);
  45242. if (!IsValidHouseID(house) || GetClosestHouse(playerid) != house) {
  45243. return 0;
  45244. }
  45245. if (Houses[house][hOwner] != 0)
  45246. {
  45247. return SendErrorMessage(playerid, "This house is already owned.");
  45248. }
  45249. else if (IsHouseOwner(playerid, house))
  45250. {
  45251. return SendErrorMessage(playerid, "You already own this house!");
  45252. }
  45253. else
  45254. {
  45255. if (!PlayerCanAfford(playerid, Houses[house][hValue]))
  45256. {
  45257. return SendErrorMessage(playerid, "You cannot afford to buy this property.");
  45258. }
  45259. else
  45260. {
  45261. RemoveMoney(playerid, Houses[house][hValue]);
  45262. SetHouseOwner(house, playerid);
  45263. SendInfoMessage(playerid, "You have purchased %s for {33CC33}%s{FFFFFF}. Use /house to adjust settings.", Houses[house][hAddress], FormatNumber(Houses[house][hValue]));
  45264. Statistics[playerid][sHouses]++;
  45265. format(gExecute, sizeof(gExecute), "INSERT INTO rp_purchases (Player, Type, Price, Date) VALUES(%i, 'House - #%i', %i, NOW())", Players[playerid][pID], Houses[house][hID], Houses[house][hValue]);
  45266. mysql_tquery(gConnection, gExecute);
  45267. ShowFooterText(playerid, "~g~This house is now yours!");
  45268. ShowInfoForHouse(playerid, house);
  45269. }
  45270. }
  45271. }
  45272. return 1;
  45273. }
  45274. Dialog:BuyCompany(playerid, response, listitem, inputtext[])
  45275. {
  45276. if (response)
  45277. {
  45278. new company = GetNearbyCompany(playerid);
  45279. if (!IsValidCompanyID(company) || GetClosestCompany(playerid) != company) {
  45280. return 0;
  45281. }
  45282. if (Companies[company][cOwner] > 0)
  45283. {
  45284. return SendErrorMessage(playerid, "This company is already owned.");
  45285. }
  45286. else if (IsCompanyOwner(playerid, company))
  45287. {
  45288. return SendErrorMessage(playerid, "You already own this company!");
  45289. }
  45290. else
  45291. {
  45292. if (!PlayerCanAfford(playerid, Companies[company][cValue]))
  45293. {
  45294. return SendErrorMessage(playerid, "You cannot afford to buy this property.");
  45295. }
  45296. else
  45297. {
  45298. RemoveMoney(playerid, Companies[company][cValue]);
  45299. SetCompanyOwner(company, playerid);
  45300. SendInfoMessage(playerid, "You have purchased %s for {33CC33}%s{FFFFFF}. Use /company to adjust settings.", Companies[company][cName], FormatNumber(Companies[company][cValue]));
  45301. Statistics[playerid][sCompanies]++;
  45302. format(gExecute, sizeof(gExecute), "INSERT INTO rp_purchases (Player, Type, Price, Date) VALUES(%i, 'Company - #%i', %i, NOW())", Players[playerid][pID], Companies[company][cID], Companies[company][cValue]);
  45303. mysql_tquery(gConnection, gExecute);
  45304. ShowFooterText(playerid, "~g~This company is now yours!");
  45305. ShowInfoForCompany(playerid, company);
  45306. }
  45307. }
  45308. }
  45309. return 1;
  45310. }
  45311. Dialog:AdminItemValue(playerid, response, listitem, inputtext[])
  45312. {
  45313. if (Players[playerid][pAdmin] < 4) return 0;
  45314. if (response)
  45315. {
  45316. new item = Players[playerid][pSelected];
  45317. if (isnull(inputtext))
  45318. {
  45319. return Dialog_Show(playerid, AdminItemValue, DIALOG_STYLE_INPUT, "{FFFFFF}Input item value", "Item: %s\n\nPlease input the value for this item below.\n\nFor example, if the item is a mobile phone, enter the number:", "Submit", "Cancel", g_ItemList[item][e_ItemName]);
  45320. }
  45321. else
  45322. {
  45323. new id = AddItemToInventory(Players[playerid][pTarget], g_ItemList[item][e_ItemName], strval(inputtext));
  45324. if (id == INVALID_ID)
  45325. {
  45326. return SendErrorMessage(playerid, "The specified target has no more room for items.");
  45327. }
  45328. else
  45329. {
  45330. SendInfoMessage(playerid, "You have given a %s (%i) to %s.", g_ItemList[item][e_ItemName], strval(inputtext), ReturnNameEx(Players[playerid][pTarget]));
  45331. SendAdminMessage(COLOR_RED, "Admin: %s has given a %s (%i) to %s.", ReturnNameEx(playerid, 0), g_ItemList[item][e_ItemName], strval(inputtext), ReturnNameEx(Players[playerid][pTarget]));
  45332. Players[playerid][pTarget] = INVALID_PLAYER_ID;
  45333. }
  45334. }
  45335. }
  45336. return 1;
  45337. }
  45338. Dialog:AdminGiveItem(playerid, response, listitem, inputtext[])
  45339. {
  45340. if (Players[playerid][pAdmin] < 4) return 0;
  45341. if (response)
  45342. {
  45343. if (GetItemInformation(g_ItemList[listitem][e_ItemName], ITEM_INFO_VALUE))
  45344. {
  45345. Players[playerid][pSelected] = listitem;
  45346. Dialog_Show(playerid, AdminItemValue, DIALOG_STYLE_INPUT, "{FFFFFF}Input item value", "Item: %s\n\nPlease input the value for this item below.\n\nFor example, if the item is a mobile phone, enter the number:", "Submit", "Cancel", g_ItemList[listitem][e_ItemName]);
  45347. }
  45348. else
  45349. {
  45350. new id = AddItemToInventory(Players[playerid][pTarget], g_ItemList[listitem][e_ItemName]);
  45351. if (id == INVALID_ID)
  45352. {
  45353. return SendErrorMessage(playerid, "The specified target has no more room for items.");
  45354. }
  45355. else
  45356. {
  45357. SendInfoMessage(playerid, "You have given a %s to %s.", g_ItemList[listitem][e_ItemName], ReturnNameEx(Players[playerid][pTarget]));
  45358. SendAdminMessage(COLOR_RED, "Admin: %s has given a %s to %s.", ReturnNameEx(playerid, 0), g_ItemList[listitem][e_ItemName], ReturnNameEx(Players[playerid][pTarget], 0));
  45359. new log[128];
  45360. format(log, sizeof(log), "%s has given a %s to %s", ReturnName(playerid), g_ItemList[listitem][e_ItemName], ReturnName(Players[playerid][pTarget]));
  45361. CreateLog("admin", log);
  45362. Players[playerid][pTarget] = INVALID_PLAYER_ID;
  45363. }
  45364. }
  45365. }
  45366. return 1;
  45367. }
  45368. Dialog:VehicleDespawn(playerid, response, listitem, inputtext[])
  45369. {
  45370. if (Players[playerid][pAdmin] < 3) return 0;
  45371. if (response)
  45372. {
  45373. new count;
  45374. if (!strcmp(inputtext, "Current vehicle"))
  45375. {
  45376. new vehicleid = GetPlayerVehicleID(playerid);
  45377. if (!vehicleid)
  45378. {
  45379. return 0;
  45380. }
  45381. else if (!VehicleInformation[vehicleid][vAdmin])
  45382. {
  45383. SendErrorMessage(playerid, "You can only destroy admin spawned vehicles.");
  45384. }
  45385. else if (DestroyVehicleEx(vehicleid))
  45386. {
  45387. VehicleInformation[vehicleid][vAdmin] = 0;
  45388. SendInfoMessage(playerid, "You have destroyed this vehicle.");
  45389. new log[128];
  45390. format(log, sizeof(log), "%s has destroyed an admin vehicle: %s, id: %i", ReturnName(playerid), GetVehicleName(vehicleid), vehicleid);
  45391. CreateLog("admin", log);
  45392. }
  45393. }
  45394. else if (!strcmp(inputtext, "All vehicles"))
  45395. {
  45396. for (new i = 1; i < MAX_VEHICLES; i ++)
  45397. {
  45398. if (IsValidVehicle(i) && VehicleInformation[i][vAdmin])
  45399. {
  45400. VehicleInformation[i][vAdmin] = 0;
  45401. DestroyVehicleEx(i);
  45402. count++;
  45403. }
  45404. }
  45405. if (!count)
  45406. {
  45407. SendErrorMessage(playerid, "There are no admin vehicles to destroy.");
  45408. }
  45409. else
  45410. {
  45411. SendAdminMessage(COLOR_RED, "Admin: %s has destroyed %i admin vehicles.", ReturnNameEx(playerid, 0), count);
  45412. new log[128];
  45413. format(log, sizeof(log), "%s has destroyed %i admin vehicles", ReturnName(playerid), count);
  45414. CreateLog("admin", log);
  45415. }
  45416. }
  45417. else if (!strcmp(inputtext, "Nearby vehicles"))
  45418. {
  45419. for (new i = 1; i < MAX_VEHICLES; i ++)
  45420. {
  45421. if (IsValidVehicle(i) && IsVehicleStreamedIn(i, playerid) && VehicleInformation[i][vAdmin])
  45422. {
  45423. VehicleInformation[i][vAdmin] = 0;
  45424. DestroyVehicleEx(i);
  45425. count++;
  45426. }
  45427. }
  45428. if (!count)
  45429. {
  45430. SendErrorMessage(playerid, "There are no nearby admin vehicles to destroy.");
  45431. }
  45432. else
  45433. {
  45434. SendInfoMessage(playerid, "You have destroyed %i nearby admin vehicles.", count);
  45435. new log[128];
  45436. format(log, sizeof(log), "%s has destroyed %i nearby admin vehicles", ReturnName(playerid), count);
  45437. CreateLog("admin", log);
  45438. }
  45439. }
  45440. }
  45441. return 1;
  45442. }
  45443. Dialog:VehicleRespawn(playerid, response, listitem, inputtext[])
  45444. {
  45445. if (Players[playerid][pAdmin] < 2) return 0;
  45446. if (response)
  45447. {
  45448. new count;
  45449. if (!strcmp(inputtext, "Current vehicle"))
  45450. {
  45451. if (SetVehicleToRespawn(GetPlayerVehicleID(playerid)))
  45452. {
  45453. if(IsTransportVehicle(GetPlayerVehicleID(playerid))) {
  45454. DestroyDynamicObject(VehicleInformation[GetPlayerVehicleID(playerid)][vObject]);
  45455. VehicleInformation[GetPlayerVehicleID(playerid)][vGoods] = 0;
  45456. VehicleInformation[GetPlayerVehicleID(playerid)][vObject] = INVALID_OBJECT_ID;
  45457. }
  45458. SendInfoMessage(playerid, "You have respawned this vehicle.");
  45459. }
  45460. }
  45461. else if (!strcmp(inputtext, "All vehicles"))
  45462. {
  45463. for (new i = 1; i < MAX_VEHICLES; i ++)
  45464. {
  45465. if (IsValidVehicle(i) && !IsVehicleOccupied(i))
  45466. {
  45467. SetVehicleToRespawn(i);
  45468. if(IsTransportVehicle(i)) {
  45469. DestroyDynamicObject(VehicleInformation[i][vObject]);
  45470. VehicleInformation[i][vGoods] = 0;
  45471. VehicleInformation[i][vObject] = INVALID_OBJECT_ID;
  45472. }
  45473. count++;
  45474. }
  45475. }
  45476. if (!count)
  45477. SendErrorMessage(playerid, "There are no vehicles to respawn.");
  45478. else
  45479. SendFormatMessageToAll(COLOR_SAMP, "(( %s has respawned %i unoccupied vehicles. ))", ReturnNameEx(playerid, 0), count);
  45480. }
  45481. else if (!strcmp(inputtext, "Nearby vehicles"))
  45482. {
  45483. for (new i = 1; i < MAX_VEHICLES; i ++)
  45484. {
  45485. if (IsValidVehicle(i) && IsVehicleStreamedIn(i, playerid) && !IsVehicleOccupied(i))
  45486. {
  45487. SetVehicleToRespawn(i);
  45488. if(IsTransportVehicle(i)) {
  45489. DestroyDynamicObject(VehicleInformation[i][vObject]);
  45490. VehicleInformation[i][vGoods] = 0;
  45491. VehicleInformation[i][vObject] = INVALID_OBJECT_ID;
  45492. }
  45493. count++;
  45494. }
  45495. }
  45496. if (!count)
  45497. SendErrorMessage(playerid, "There are no nearby vehicles to respawn.");
  45498. else
  45499. SendInfoMessage(playerid, "You have respawned %i nearby vehicles.", count);
  45500. }
  45501. }
  45502. return 1;
  45503. }
  45504. Dialog:UnbanPlayer(playerid, response, listitem, inputtext[])
  45505. {
  45506. if (Players[playerid][pAdmin] < 2) return 0;
  45507. if (response)
  45508. {
  45509. format(gExecute, sizeof(gExecute), "SELECT Player, IP FROM rp_blacklist WHERE ID = %i", Players[playerid][pSelected]);
  45510. mysql_tquery(gConnection, gExecute, "OnPlayerUnbanPlayer", "i", playerid);
  45511. }
  45512. else
  45513. {
  45514. ShowBanList(playerid, Players[playerid][pBanPage]);
  45515. }
  45516. return 1;
  45517. }
  45518. Dialog:BanList(playerid, response, listitem, inputtext[])
  45519. {
  45520. if (Players[playerid][pAdmin] < 2) return 0;
  45521. if (response)
  45522. {
  45523. if (!strcmp(inputtext, ">> Next Page"))
  45524. {
  45525. ShowBanList(playerid, Players[playerid][pBanPage] + 1);
  45526. }
  45527. else if (!strcmp(inputtext, "<< Go Back"))
  45528. {
  45529. ShowBanList(playerid, Players[playerid][pBanPage] - 1);
  45530. }
  45531. else
  45532. {
  45533. new
  45534. id = gListedItems[playerid][listitem];
  45535. Players[playerid][pSelected] = id;
  45536. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_blacklist WHERE ID = %i", id);
  45537. mysql_tquery(gConnection, gExecute, "OnSelectBan", "i", playerid);
  45538. }
  45539. }
  45540. return 1;
  45541. }
  45542. Dialog:ReportMenu(playerid, response, listitem, inputtext[])
  45543. {
  45544. if (!Players[playerid][pAdmin]) return 0;
  45545. if (!Reports[Players[playerid][pSelected]][rExists])
  45546. {
  45547. return SendErrorMessage(playerid, "This report was already taken by another admin.");
  45548. }
  45549. if (response)
  45550. {
  45551. switch (listitem)
  45552. {
  45553. case 0:
  45554. {
  45555. Statistics[playerid][sReports]++;
  45556. SendInfoMessage(Reports[Players[playerid][pSelected]][rReporter], "%s has accepted your report. It is now being reviewed.", ReturnNameEx(playerid, 0));
  45557. SendInfoMessage(playerid, "You have accepted %s's report.", ReturnNameEx(Reports[Players[playerid][pSelected]][rReporter]));
  45558. SendAdminMessage(COLOR_RED, "Admin: %s has accepted %s's report.", ReturnNameEx(playerid, 0), ReturnNameEx(Reports[Players[playerid][pSelected]][rReporter]));
  45559. Reports[Players[playerid][pSelected]][rExists] = 0;
  45560. }
  45561. case 1:
  45562. {
  45563. SendInfoMessage(Reports[Players[playerid][pSelected]][rReporter], "%s has trashed your report. It will not be reviewed.", ReturnNameEx(playerid, 0));
  45564. SendInfoMessage(playerid, "You have trashed %s's report.", ReturnNameEx(Reports[Players[playerid][pSelected]][rReporter]));
  45565. SendAdminMessage(COLOR_RED, "Admin: %s has trashed %s's report.", ReturnNameEx(playerid, 0), ReturnNameEx(Reports[Players[playerid][pSelected]][rReporter]));
  45566. Reports[Players[playerid][pSelected]][rExists] = 0;
  45567. }
  45568. }
  45569. }
  45570. else
  45571. {
  45572. ReviewReport(playerid, Players[playerid][pSelected]);
  45573. }
  45574. return 1;
  45575. }
  45576. Dialog:ApbMenu(playerid, response, listitem, inputtext[])
  45577. {
  45578. if (GetPlayerFactionType(playerid) != FACTION_LEO) return 0;
  45579. if(!Apbs[ Players[playerid][pSelected] ][apbExists])
  45580. {
  45581. return SendErrorMessage(playerid,"This APB has been removed.");
  45582. }
  45583. if(response)
  45584. {
  45585. switch(listitem)
  45586. {
  45587. case 0:
  45588. {
  45589. SendInfoMessage(Apbs[ Players[playerid][pSelected] ][apbReporter], "%s has removed your APB.", ReturnNameEx(playerid, 0));
  45590. SendInfoMessage(playerid, "You have removed %s's APB.",ReturnNameEx(Apbs[Players[playerid][pSelected]][apbReporter]));
  45591. Apbs[Players[playerid][pSelected]][apbExists] = 0;
  45592. }
  45593. case 1:
  45594. {
  45595. SendFormatMessage(playerid,COLOR_YELLOW,"%s's APB:", ReturnNameEx(Apbs[ Players[playerid][pSelected] ][apbReporter], 0) );
  45596. SendFormatMessage(playerid,COLOR_WHITE, "Description: %s", Apbs[ Players[playerid][pSelected] ][apbDesc1] );
  45597. }
  45598. }
  45599. }
  45600. else
  45601. {
  45602. ReviewApb(playerid, Players[playerid][pSelected]);
  45603. }
  45604. return 1;
  45605. }
  45606. Dialog:ReportReview(playerid, response, listitem, inputtext[])
  45607. {
  45608. if (!Players[playerid][pAdmin]) return 0;
  45609. if (response)
  45610. {
  45611. if (!Reports[Players[playerid][pSelected]][rExists])
  45612. {
  45613. SendErrorMessage(playerid, "This report was already taken by another admin.");
  45614. }
  45615. else
  45616. {
  45617. Dialog_Show(playerid, ReportMenu, DIALOG_STYLE_LIST, "{FFFFFF}Report Options", "Accept this report\nTrash this report", "Select", "Back");
  45618. }
  45619. }
  45620. else
  45621. {
  45622. ListReports(playerid);
  45623. }
  45624. return 1;
  45625. }
  45626. Dialog:EmergencyReview(playerid, response, listitem, inputtext[])
  45627. {
  45628. if (response)
  45629. {
  45630. new id = Players[playerid][pSelected];
  45631. if (!Emergency[id][ecExists])
  45632. {
  45633. SendErrorMessage(playerid, "This call has already been handled.");
  45634. }
  45635. else
  45636. {
  45637. SendInfoMessage(playerid, "You have marked %s's 911 call as handled.", Emergency[id][ecName]);
  45638. SendFactionMessage(Players[playerid][pFaction], COLOR_RADIO, "** HQ: %s has marked %s's 911 call as handled.", ReturnNameEx(playerid, 0), Emergency[id][ecName]);
  45639. Emergency[id][ecExists] = 0;
  45640. }
  45641. }
  45642. else
  45643. {
  45644. ListEmergency(playerid);
  45645. }
  45646. return 1;
  45647. }
  45648. Dialog:ApbReview(playerid, response, listitem, inputtext[])
  45649. {
  45650. if (GetPlayerFactionType(playerid) != FACTION_LEO) return 0;
  45651. if (response)
  45652. {
  45653. if(!Apbs[ Players[playerid][pSelected] ][apbExists])
  45654. {
  45655. SendErrorMessage(playerid,"This report was already removed.");
  45656. }
  45657. else
  45658. {
  45659. Dialog_Show(playerid, ApbMenu, DIALOG_STYLE_LIST, "{FFFFFF}APB Options", "Remove this APB\nPrint this APB", "Select", "Back");
  45660. }
  45661. }
  45662. else
  45663. {
  45664. ListApbs(playerid);
  45665. }
  45666. return 1;
  45667. }
  45668. Dialog:EmergencyList(playerid, response, listitem, inputtext[])
  45669. {
  45670. if (response)
  45671. {
  45672. new id = gListedItems[playerid][listitem];
  45673. if (!Emergency[id][ecExists])
  45674. {
  45675. SendErrorMessage(playerid, "The selected call has already been handled.");
  45676. }
  45677. else
  45678. {
  45679. ReviewEmergency(playerid, id);
  45680. }
  45681. }
  45682. return 1;
  45683. }
  45684. Dialog:ReportList(playerid, response, listitem, inputtext[])
  45685. {
  45686. if (!Players[playerid][pAdmin]) return 0;
  45687. if (response)
  45688. {
  45689. new id = gListedItems[playerid][listitem];
  45690. if (!Reports[id][rExists])
  45691. {
  45692. SendErrorMessage(playerid, "The selected report has already been taken.");
  45693. }
  45694. else
  45695. {
  45696. ReviewReport(playerid, id);
  45697. }
  45698. }
  45699. return 1;
  45700. }
  45701. Dialog:ApbList(playerid, response, listitem, inputtext[])
  45702. {
  45703. if (GetPlayerFactionType(playerid) != FACTION_LEO) return 0;
  45704. if (response)
  45705. {
  45706. new id = gListedItems[playerid][listitem];
  45707. if(!Apbs[id][apbExists])
  45708. {
  45709. SendErrorMessage(playerid, "The selected APB has already been removed.");
  45710. }
  45711. else
  45712. {
  45713. ReviewApb(playerid, id);
  45714. }
  45715. }
  45716. return 1;
  45717. }
  45718. Dialog:FAQ(playerid, response, listitem, inputtext[])
  45719. {
  45720. static
  45721. helpInfo[1024]
  45722. ;
  45723. if (response)
  45724. {
  45725. switch (listitem)
  45726. {
  45727. case 0:
  45728. {
  45729. Dialog_Show(playerid, ShowFAQ, DIALOG_STYLE_MSGBOX, "{FFFFFF}Fitness system", "Your character also has a fitness ability. You can check your fitness level\nby using the /stats command.\n\nYou can work out at the gym to increase your fitness skill. A higher fitness\nskill means more advantages in fist fights, and the ability to carry more items.", "Back", "Close");
  45730. }
  45731. case 1:
  45732. {
  45733. Dialog_Show(playerid, ShowFAQ, DIALOG_STYLE_MSGBOX, "{FFFFFF}Weapon management", "Your character can carry one melee weapon and 2 additional weapons. The\n/weapons command allows you to access the weapons menu.\n\nOnce you find a weapon, select it in your inventory and select 'Use Item'.\nThe weapon will then be equipped to your character.\n\nThere are many different ammo types made for each weapon. You can\npurchase more ammunition at an ammunition store.", "Back", "Close");
  45734. }
  45735. case 2:
  45736. {
  45737. Dialog_Show(playerid, ShowFAQ, DIALOG_STYLE_MSGBOX, "{FFFFFF}Item management", "Your character also has an inventory that your items are stored in. Simply\nuse the /items command or press the N key to open your inventory.\n\nThere are many types of items that can be found. Look around and\nmaybe you can find some!", "Back", "Close");
  45738. }
  45739. case 3:
  45740. {
  45741. Dialog_Show(playerid, ShowFAQ, DIALOG_STYLE_MSGBOX, "{FFFFFF}Bank accounts", "Your character can only carry so much cash in their pocket. Open a bank\naccount and set it as your primary payment method for easier checkout!\n\nYou can open up to "#MAX_BANK_ACCOUNTS" bank accounts. You can setup your bank account\nas your payment method using the /payment command.", "Back", "Close");
  45742. }
  45743. case 4:
  45744. {
  45745. Dialog_Show(playerid, ShowFAQ, DIALOG_STYLE_MSGBOX, "{FFFFFF}Buying a vehicle", "There are many dealerships scattered across the city that you can buy\nyour own vehicle from. You can own an unlimited amount of vehicles!\n\nDealerships are marked on your radar as a blue car icon. If there is any\ndealership nearby then it will be marked on your mini-map.", "Back", "Close");
  45746. }
  45747. case 5:
  45748. {
  45749. Dialog_Show(playerid, ShowFAQ, DIALOG_STYLE_MSGBOX, "{FFFFFF}Finding a job", "There are many jobs to choose from. Jobs are the number one source\nof income for your character.\n\nYou can acquire a job at City Hall. Use the /guide command if you want\nto find it.\n\nAfter you have a job, you can use the /jobhelp command for more help relating\nto your new job.", "Back", "Close");
  45750. }
  45751. case 6:
  45752. {
  45753. Dialog_Show(playerid, ShowFAQ, DIALOG_STYLE_MSGBOX, "{FFFFFF}Auto shops", "Auto shops are scattered across the city. You can change the vehicle's\ncolor, repair your vehicle, and change the license plate.\n\nAuto shops are marked on your mini-map as a red wrench icon.\nUse the /auto command to open the menu.", "Back", "Close");
  45754. }
  45755. case 7:
  45756. {
  45757. helpInfo = "Using keys is one of the many ways to interact with things you will find\naround the city.\n\nThe H key allows you to enter and exit an interior instead of using a\ncommand each time.\n\nThe N key will open your inventory. If you're not carrying any items then\nan error message will be displayed.\n\nThe Y key allows you turn a vehicle's engine on or off, access a gate\nor pickup items, and so much more!\n\n";
  45758. strcat(helpInfo, "Additionally, most interactive items will display a text label which will\nshow you how to interactive with that item.");
  45759. Dialog_Show(playerid, ShowFAQ, DIALOG_STYLE_MSGBOX, "{FFFFFF}Interactive keys", helpInfo, "Back", "Close");
  45760. }
  45761. case 8:
  45762. {
  45763. helpInfo = "Drugs can be purchased and consumed by players. Each drug has its own\nbenefits and unique effects.\n\nMarijuana gives you 5 health points per second as it's a medicinal drug and\na slight drunk effect.\n\nCocaine gives you 3 health points per second and temporarily stops you from\nlosing health if you are bleeding.\n\nHeroin gives you 1 health point per second and affects your vision and gives\na significant drunk effect.";
  45764. Dialog_Show(playerid, ShowFAQ, DIALOG_STYLE_MSGBOX, "{FFFFFF}Drug system", helpInfo, "Back", "Close");
  45765. }
  45766. }
  45767. }
  45768. else
  45769. {
  45770. cmd_guide(playerid, "\1");
  45771. }
  45772. return 1;
  45773. }
  45774. Dialog:ItemMenu(playerid, response, listitem, inputtext[])
  45775. {
  45776. if (response)
  45777. {
  45778. new
  45779. item = Players[playerid][pSelected];
  45780. switch (listitem)
  45781. {
  45782. case 0:
  45783. {
  45784. new weapon, string[64];
  45785. if (!strcmp("Camera", Inventory[playerid][item][invName]))
  45786. {
  45787. Players[playerid][pCamera] = Inventory[playerid][item][invID];
  45788. GivePlayerWeapon(playerid, 43, 99999);
  45789. ShowActionBubble(playerid, "* %s takes out a camera from their inventory.", ReturnNameEx(playerid));
  45790. SendInfoMessage(playerid, "You have taken out a camera. Hold RMB to view and press LMB to snap a photo.");
  45791. }
  45792. else if (!strcmp("Walkie Talkie", Inventory[playerid][item][invName]))
  45793. {
  45794. if (Inventory[playerid][item][invValue] > 0 && Players[playerid][pChannel] == Inventory[playerid][item][invValue])
  45795. {
  45796. Dialog_Show(playerid, WalkieTalkie, DIALOG_STYLE_LIST, "{FFFFFF}Walkie Talkie", "Unset Primary\nSet Channel (%i)", "Select", "Cancel", Inventory[playerid][item][invValue]);
  45797. }
  45798. else
  45799. {
  45800. Dialog_Show(playerid, WalkieTalkie, DIALOG_STYLE_LIST, "{FFFFFF}Walkie Talkie", "Set to Primary\nSet Channel (%i)", "Select", "Cancel", Inventory[playerid][item][invValue]);
  45801. }
  45802. }
  45803. else if (!strcmp("Portable Radio", Inventory[playerid][item][invName]))
  45804. {
  45805. if (Inventory[playerid][item][invValue] > 0 && Players[playerid][pChannel] == Inventory[playerid][item][invValue])
  45806. {
  45807. Dialog_Show(playerid, PortableRadio, DIALOG_STYLE_LIST, "{FFFFFF}Portable Radio", "Unset Primary\nSet Channel (%i)", "Select", "Cancel", Inventory[playerid][item][invValue]);
  45808. }
  45809. else
  45810. {
  45811. Dialog_Show(playerid, PortableRadio, DIALOG_STYLE_LIST, "{FFFFFF}Portable Radio", "Set to Primary\nSet Channel (%i)", "Select", "Cancel", Inventory[playerid][item][invValue]);
  45812. }
  45813. }
  45814. else if (!strcmp("Stereo", Inventory[playerid][item][invName]))
  45815. {
  45816. if (Stereos[playerid][pStereoID] != INVALID_ID)
  45817. {
  45818. if (!IsPlayerNearPoint(playerid, 3.0, Stereos[playerid][pStereoX], Stereos[playerid][pStereoY], Stereos[playerid][pStereoZ], Stereos[playerid][pStereoInterior], Stereos[playerid][pStereoWorld]))
  45819. {
  45820. return SendErrorMessage(playerid, "You are not in range of your stereo.");
  45821. }
  45822. else
  45823. {
  45824. PickupStereo(playerid);
  45825. }
  45826. }
  45827. else
  45828. {
  45829. if (GetPlayerState(playerid) != PLAYER_STATE_ONFOOT)
  45830. {
  45831. return SendErrorMessage(playerid, "You need to be onfoot to place a stereo down.");
  45832. }
  45833. else if (GetNearbyStereoPlayerID(playerid) != INVALID_PLAYER_ID)
  45834. {
  45835. return SendErrorMessage(playerid, "There is another stereo nearby.");
  45836. }
  45837. else
  45838. {
  45839. new Float:angle;
  45840. format(string, sizeof(string), "%s's Stereo\n{CFCFCF}Commands: /stereo", ReturnNameEx(playerid));
  45841. strpack(Stereos[playerid][pStereoURL], "Not Specified", 255);
  45842. GetPlayerPos(playerid, Stereos[playerid][pStereoX], Stereos[playerid][pStereoY], Stereos[playerid][pStereoZ]);
  45843. GetPlayerFacingAngle(playerid, angle);
  45844. ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0);
  45845. Stereos[playerid][pStereoID] = item;
  45846. Stereos[playerid][pStereoInterior] = GetPlayerInterior(playerid);
  45847. Stereos[playerid][pStereoWorld] = GetPlayerVirtualWorld(playerid);
  45848. Stereos[playerid][pStereoObject] = CreateDynamicObject(2102, Stereos[playerid][pStereoX], Stereos[playerid][pStereoY], Stereos[playerid][pStereoZ] - 1.0, 0.0, 0.0, angle, Stereos[playerid][pStereoWorld], Stereos[playerid][pStereoInterior]);
  45849. Stereos[playerid][pStereoText] = CreateDynamic3DTextLabel(string, COLOR_BLUE, Stereos[playerid][pStereoX], Stereos[playerid][pStereoY], Stereos[playerid][pStereoZ] - 0.9, 10.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Stereos[playerid][pStereoWorld], Stereos[playerid][pStereoInterior]);
  45850. SendInfoMessage(playerid, "You have deployed your stereo. Use /stereo for settings.");
  45851. ShowActionBubble(playerid, "* %s takes out a stereo and sets it down.", ReturnNameEx(playerid));
  45852. }
  45853. }
  45854. }
  45855. else if (!strcmp(".50cal", Inventory[playerid][item][invName]) || !strcmp("9x19mm", Inventory[playerid][item][invName]) || !strcmp("5.56x45mm", Inventory[playerid][item][invName]) || !strcmp("7.62x39mm", Inventory[playerid][item][invName]) || !strcmp("12 Gauge", Inventory[playerid][item][invName]) || !strcmp("7.62x51mm", Inventory[playerid][item][invName]))
  45856. {
  45857. UseAmmunition(playerid, item);
  45858. }
  45859. else if (!strcmp("Beer", Inventory[playerid][item][invName]))
  45860. {
  45861. if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DRINK_BEER)
  45862. {
  45863. return SendErrorMessage(playerid, "You are already drinking a bottle of beer.");
  45864. }
  45865. else
  45866. {
  45867. RemoveItemFromInventory(playerid, item);
  45868. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_BEER);
  45869. ShowActionBubble(playerid, "* %s opens up a bottle of beer.", ReturnNameEx(playerid));
  45870. SendInfoMessage(playerid, "Press LMB to take a sip of the beer. Press F to throw it away.");
  45871. }
  45872. }
  45873. else if (!strcmp("Wine", Inventory[playerid][item][invName]))
  45874. {
  45875. if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DRINK_WINE)
  45876. {
  45877. return SendErrorMessage(playerid, "You are already drinking a bottle of wine.");
  45878. }
  45879. else
  45880. {
  45881. RemoveItemFromInventory(playerid, item);
  45882. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_WINE);
  45883. ShowActionBubble(playerid, "* %s opens up a bottle of wine.", ReturnNameEx(playerid));
  45884. SendInfoMessage(playerid, "Press LMB to take a sip of the wine. Press F to throw it away.");
  45885. }
  45886. }
  45887. else if (!strcmp("Spraycan", Inventory[playerid][item][invName]))
  45888. {
  45889. new vehicle = GetVehicleID(GetPlayerVehicleID(playerid));
  45890. if (vehicle == INVALID_ID)
  45891. {
  45892. return SendErrorMessage(playerid, "You are not in any vehicle.");
  45893. }
  45894. else if (Players[playerid][pJob] != JOB_MECHANIC)
  45895. {
  45896. return SendErrorMessage(playerid, "You need to have the mechanic job to do this.");
  45897. }
  45898. else if (!GetVehicleKeys(playerid, Vehicles[vehicle][vVehicle]))
  45899. {
  45900. return SendErrorMessage(playerid, "You don't have the keys to this vehicle.");
  45901. }
  45902. else if (Vehicles[vehicle][vRentable])
  45903. {
  45904. return SendErrorMessage(playerid, "You can't change the color of a rental vehicle.");
  45905. }
  45906. else
  45907. {
  45908. Dialog_Show(playerid, VehicleColor, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle Colors", "Please enter the colors to apply for this vehicle below (color1, color2).\n\nExample: If you want to set your car's color to black, use '0, 0'.", "Submit", "Cancel");
  45909. }
  45910. }
  45911. else if (!strcmp("Mask", Inventory[playerid][item][invName]))
  45912. {
  45913. if (Players[playerid][pMaskID] > 0)
  45914. {
  45915. Players[playerid][pMaskID] = 0;
  45916. ShowActionBubble(playerid, "* %s takes off their mask.", ReturnNameEx(playerid));
  45917. SendInfoMessage(playerid, "You have taken off your mask.");
  45918. }
  45919. else
  45920. {
  45921. ShowActionBubble(playerid, "* %s puts a mask on their face.", ReturnNameEx(playerid));
  45922. SendInfoMessage(playerid, "You have put on a mask.");
  45923. Players[playerid][pMaskID] = Inventory[playerid][item][invValue];
  45924. }
  45925. }
  45926. else if (!strcmp("Notebook", Inventory[playerid][item][invName]))
  45927. {
  45928. ShowPlayerNotebook(playerid, item);
  45929. }
  45930. else if (IsWeaponPackage(Inventory[playerid][item][invName]))
  45931. {
  45932. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_crateguns WHERE itemID = %i", Inventory[playerid][item][invID]);
  45933. mysql_tquery(gConnection, gExecute, "OnPlayerOpenCrate", "ii", playerid, item);
  45934. }
  45935. else if (!strcmp("Steroids", Inventory[playerid][item][invName]))
  45936. {
  45937. if (Players[playerid][pStoned] != STONED_TYPE_NONE)
  45938. {
  45939. SendErrorMessage(playerid, "You are stoned already.");
  45940. }
  45941. else
  45942. {
  45943. RemoveItemValue(playerid, item, 1);
  45944. Players[playerid][pSeconds] = 0;
  45945. SetPlayerDrunkLevel(playerid, 4000);
  45946. ShowActionBubble(playerid, "* %s takes Steroids.", ReturnNameEx(playerid));
  45947. SendInfoMessage(playerid, "You have consumed Steroids.");
  45948. Players[playerid][pStoned] = STONED_TYPE_STEROIDS;
  45949. Players[playerid][pStonedTime] = 500;
  45950. }
  45951. }
  45952. else if (!strcmp("Heroin", Inventory[playerid][item][invName]))
  45953. {
  45954. if (Players[playerid][pStoned] != STONED_TYPE_NONE)
  45955. {
  45956. SendErrorMessage(playerid, "You are stoned already.");
  45957. }
  45958. else
  45959. {
  45960. RemoveItemValue(playerid, item, 1);
  45961. Players[playerid][pSeconds] = 0;
  45962. SetPlayerDrunkLevel(playerid, 4000);
  45963. ShowActionBubble(playerid, "* %s takes Heroin.", ReturnNameEx(playerid));
  45964. SendInfoMessage(playerid, "You have consumed Heroin.");
  45965. Players[playerid][pStoned] = STONED_TYPE_HEROIN;
  45966. Players[playerid][pStonedTime] = 500;
  45967. }
  45968. }
  45969. else if (!strcmp("LSD", Inventory[playerid][item][invName]))
  45970. {
  45971. if (Players[playerid][pStoned] != STONED_TYPE_NONE)
  45972. {
  45973. SendErrorMessage(playerid, "You are stoned already.");
  45974. }
  45975. else
  45976. {
  45977. RemoveItemValue(playerid, item, 1);
  45978. Players[playerid][pSeconds] = 0;
  45979. SetPlayerDrunkLevel(playerid, 4000);
  45980. ShowActionBubble(playerid, "* %s takes LSD.", ReturnNameEx(playerid));
  45981. SendInfoMessage(playerid, "You have consumed LSD.");
  45982. Players[playerid][pStoned] = STONED_TYPE_LSD;
  45983. Players[playerid][pStonedTime] = 500;
  45984. }
  45985. }
  45986. else if (!strcmp("Ecstasy", Inventory[playerid][item][invName]))
  45987. {
  45988. if (Players[playerid][pStoned] != STONED_TYPE_NONE)
  45989. {
  45990. SendErrorMessage(playerid, "You are stoned already.");
  45991. }
  45992. else
  45993. {
  45994. RemoveItemValue(playerid, item, 1);
  45995. Players[playerid][pSeconds] = 0;
  45996. SetPlayerDrunkLevel(playerid, 4000);
  45997. ShowActionBubble(playerid, "* %s takes Ecstasy.", ReturnNameEx(playerid));
  45998. SendInfoMessage(playerid, "You have consumed Ecstasy.");
  45999. Players[playerid][pStoned] = STONED_TYPE_ECSTASY;
  46000. Players[playerid][pStonedTime] = 500;
  46001. }
  46002. }
  46003. else if (!strcmp("Marijuana", Inventory[playerid][item][invName]))
  46004. {
  46005. if (Players[playerid][pStoned] != STONED_TYPE_NONE)
  46006. {
  46007. SendErrorMessage(playerid, "You are stoned already.");
  46008. }
  46009. else
  46010. {
  46011. RemoveItemValue(playerid, item, 1);
  46012. Players[playerid][pSeconds] = 0;
  46013. SetPlayerDrunkLevel(playerid, 4000);
  46014. ShowActionBubble(playerid, "* %s takes Marijuana.", ReturnNameEx(playerid));
  46015. SendInfoMessage(playerid, "You have consumed Marijuana.");
  46016. Players[playerid][pStoned] = STONED_TYPE_MARIJUANA;
  46017. Players[playerid][pStonedTime] = 500;
  46018. }
  46019. }
  46020. else if (!strcmp("Crack", Inventory[playerid][item][invName]))
  46021. {
  46022. if (Players[playerid][pStoned] != STONED_TYPE_NONE)
  46023. {
  46024. SendErrorMessage(playerid, "You are stoned already.");
  46025. }
  46026. else
  46027. {
  46028. RemoveItemValue(playerid, item, 1);
  46029. Players[playerid][pSeconds] = 0;
  46030. SetPlayerDrunkLevel(playerid, 4000);
  46031. ShowActionBubble(playerid, "* %s takes Crack.", ReturnNameEx(playerid));
  46032. SendInfoMessage(playerid, "You have consumed Crack.");
  46033. Players[playerid][pStoned] = STONED_TYPE_CRACK;
  46034. Players[playerid][pStonedTime] = 500;
  46035. }
  46036. }
  46037. else if (!strcmp("Cocaine", Inventory[playerid][item][invName]))
  46038. {
  46039. if (Players[playerid][pStoned] != STONED_TYPE_NONE)
  46040. {
  46041. SendErrorMessage(playerid, "You are stoned already.");
  46042. }
  46043. else
  46044. {
  46045. RemoveItemValue(playerid, item, 1);
  46046. Players[playerid][pSeconds] = 0;
  46047. SetPlayerDrunkLevel(playerid, 4000);
  46048. ShowActionBubble(playerid, "* %s takes Cocaine.", ReturnNameEx(playerid));
  46049. SendInfoMessage(playerid, "You have consumed Cocaine.");
  46050. Players[playerid][pStoned] = STONED_TYPE_COCAINE;
  46051. Players[playerid][pStonedTime] = 500;
  46052. }
  46053. }
  46054. else if (!strcmp("Methamphetamine", Inventory[playerid][item][invName]))
  46055. {
  46056. if (Players[playerid][pStoned] != STONED_TYPE_NONE)
  46057. {
  46058. SendErrorMessage(playerid, "You are stoned already.");
  46059. }
  46060. else
  46061. {
  46062. RemoveItemValue(playerid, item, 1);
  46063. Players[playerid][pSeconds] = 0;
  46064. SetPlayerDrunkLevel(playerid, 4000);
  46065. ShowActionBubble(playerid, "* %s takes Methamphetamine.", ReturnNameEx(playerid));
  46066. SendInfoMessage(playerid, "You have consumed Methamphetamine.");
  46067. Players[playerid][pStoned] = STONED_TYPE_METH;
  46068. Players[playerid][pStonedTime] = 500;
  46069. }
  46070. }
  46071. else if (!strcmp("PCP", Inventory[playerid][item][invName]))
  46072. {
  46073. if (Players[playerid][pStoned] != STONED_TYPE_NONE)
  46074. {
  46075. SendErrorMessage(playerid, "You are stoned already.");
  46076. }
  46077. else
  46078. {
  46079. RemoveItemValue(playerid, item, 1);
  46080. Players[playerid][pSeconds] = 0;
  46081. SetPlayerDrunkLevel(playerid, 4000);
  46082. ShowActionBubble(playerid, "* %s takes PCP.", ReturnNameEx(playerid));
  46083. SendInfoMessage(playerid, "You have consumed PCP.");
  46084. Players[playerid][pStoned] = STONED_TYPE_PCP;
  46085. Players[playerid][pStonedTime] = 500;
  46086. }
  46087. }
  46088. else if (!strcmp("Gasoline", Inventory[playerid][item][invName]))
  46089. {
  46090. new vehicleid = GetClosestVehicle(playerid);
  46091. if (vehicleid == INVALID_VEHICLE_ID)
  46092. {
  46093. SendErrorMessage(playerid, "There is no vehicle nearby.");
  46094. }
  46095. else if (!IsPoweredVehicle(vehicleid))
  46096. {
  46097. SendErrorMessage(playerid, "You can't refill this vehicle.");
  46098. }
  46099. else if (VehicleInformation[vehicleid][vFuel] > 95)
  46100. {
  46101. SendErrorMessage(playerid, "This vehicle is already filled with fuel.");
  46102. }
  46103. else if (GetPlayerState(playerid) != PLAYER_STATE_ONFOOT)
  46104. {
  46105. SendErrorMessage(playerid, "You must be onfoot to use this item.");
  46106. }
  46107. else
  46108. {
  46109. RemoveItemValue(playerid, item, 5);
  46110. VehicleInformation[vehicleid][vFuel] += 5;
  46111. UpdateFuelGauge(vehicleid);
  46112. ShowActionBubble(playerid, "* %s pours some gasoline into the gas tank.", ReturnNameEx(playerid));
  46113. SendInfoMessage(playerid, "You have added 5 gallons of gas into the tank.");
  46114. }
  46115. }
  46116. else if (!strcmp("Cigarettes", Inventory[playerid][item][invName]))
  46117. {
  46118. if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_SMOKE_CIGGY)
  46119. {
  46120. SendErrorMessage(playerid, "You are already smoking a cigarette.");
  46121. }
  46122. else
  46123. {
  46124. ShowActionBubble(playerid, "* %s takes out a cigarette from their pack.", ReturnNameEx(playerid));
  46125. ApplyAnimation(playerid, "SMOKING", "M_smk_in", 4.1, 0, 0, 0, 0, 0, 1);
  46126. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_SMOKE_CIGGY);
  46127. RemoveItemValue(playerid, item, 1);
  46128. SendInfoMessage(playerid, "You are now smoking a cigarette (press F to remove).");
  46129. }
  46130. }
  46131. else if (!strcmp("Bandages", Inventory[playerid][item][invName]))
  46132. {
  46133. Players[playerid][pSelected] = item;
  46134. Dialog_Show(playerid, UseBandage, DIALOG_STYLE_LIST, "{FFFFFF}Bandage Options", "Use bandage\nUse on player", "Select", "Cancel");
  46135. }
  46136. else if (!strcmp("Cuffs", Inventory[playerid][item][invName]))
  46137. {
  46138. Players[playerid][pSelected] = item;
  46139. Dialog_Show(playerid, UseCuffs, DIALOG_STYLE_INPUT, "{FFFFFF}Use Cuffs", "Please input the player that you would like to cuff:", "Cuff", "Cancel");
  46140. }
  46141. /*else if (!strcmp("Taser", Inventory[playerid][item][invName]))
  46142. {
  46143. cmd_taser(playerid, "\1");
  46144. }*/
  46145. else if (!strcmp("Marijuana Seeds", Inventory[playerid][item][invName]))
  46146. {
  46147. new
  46148. Float:x,
  46149. Float:y,
  46150. Float:z;
  46151. GetPlayerPos(playerid, x, y, z);
  46152. AddWeedPlant(playerid, x, y, z, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid));
  46153. ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0);
  46154. RemoveItemValue(playerid, item, 1);
  46155. //AddWeedPlant(playerid, Float:x, Float:y, Float:z, interior, world)
  46156. }
  46157. else if (!strcmp("Painkillers", Inventory[playerid][item][invName]))
  46158. {
  46159. if (!Players[playerid][pBleeding] && GetPlayerHealthEx(playerid) > 99.0)
  46160. {
  46161. SendErrorMessage(playerid, "You don't need to use this right now.");
  46162. }
  46163. else if (Players[playerid][pPainkillers] > 0)
  46164. {
  46165. SendErrorMessage(playerid, "Please wait until the effect has worn off.");
  46166. }
  46167. else
  46168. {
  46169. Players[playerid][pPainkillers] = 60;
  46170. Players[playerid][pBleeding] = 0;
  46171. Players[playerid][pBrokenLeg] = 0;
  46172. RemoveItemValue(playerid, item, 1);
  46173. SetPlayerDrunkLevel(playerid, 5000);
  46174. ApplyAnimation(playerid, "SMOKING", "M_smkstnd_loop", 4.1, 0, 0, 0, 0, 0, 1);
  46175. ShowActionBubble(playerid, "* %s opens a bottle of painkillers and takes one.", ReturnNameEx(playerid));
  46176. SendInfoMessage(playerid, "You have taken some painkillers. The effect will wear off in a minute or so.");
  46177. }
  46178. }
  46179. else if (!strcmp("Medical Kit", Inventory[playerid][item][invName]))
  46180. {
  46181. if (GetPlayerHealthEx(playerid) > 99.0)
  46182. {
  46183. SendErrorMessage(playerid, "You don't need to use this right now.");
  46184. }
  46185. else
  46186. {
  46187. Players[playerid][pMedicKit] = 1;
  46188. Players[playerid][pBleeding] = 0;
  46189. Players[playerid][pBrokenLeg] = 0;
  46190. RemoveItemFromInventory(playerid, item);
  46191. ShowActionBubble(playerid, "* %s opens a medical kit.", ReturnNameEx(playerid));
  46192. SendInfoMessage(playerid, "You have opened up a medical kit. Your health is now regenerating.");
  46193. }
  46194. }
  46195. else if (!strcmp("Mobile Phone", Inventory[playerid][item][invName]))
  46196. {
  46197. if (!Inventory[playerid][item][invValue])
  46198. {
  46199. SendErrorMessage(playerid, "This phone is not activated! Purchase a SIM card for it.");
  46200. }
  46201. else if (Players[playerid][pPhone] == Inventory[playerid][item][invValue])
  46202. {
  46203. Players[playerid][pPhone] = 0;
  46204. SendInfoMessage(playerid, "This phone is no longer your primary phone.");
  46205. }
  46206. else
  46207. {
  46208. Players[playerid][pPhone] = Inventory[playerid][item][invValue];
  46209. SendInfoMessage(playerid, "You have set this phone as your primary phone (number: %i).", Players[playerid][pPhone]);
  46210. }
  46211. }
  46212. else if (!strcmp("Kevlar Vest", Inventory[playerid][item][invName]))
  46213. {
  46214. new value = Inventory[playerid][item][invValue] == 0 ? 50 : Inventory[playerid][item][invValue];
  46215. SetPlayerValidArmor(playerid, value);
  46216. ShowActionBubble(playerid, "* %s straps on a kevlar vest.", ReturnNameEx(playerid));
  46217. RemoveItemFromInventory(playerid, item);
  46218. SendInfoMessage(playerid, "You have strapped on a kevlar vest.");
  46219. }
  46220. else if (!strcmp("Armor", Inventory[playerid][item][invName]))
  46221. {
  46222. if(GetPlayerArmourEx(playerid) > 0.0)
  46223. {
  46224. return SendErrorMessage(playerid, "You have armor already.");
  46225. }
  46226. else
  46227. {
  46228. new Float:Farmor;
  46229. new armor = Inventory[playerid][item][invValue];
  46230. Farmor = float(armor);
  46231. SetPlayerValidArmor(playerid, Farmor);
  46232. ShowActionBubble(playerid, "* %s straps on a kevlar vest.", ReturnNameEx(playerid));
  46233. RemoveItemFromInventory(playerid, item);
  46234. SendInfoMessage(playerid, "You have put armor on.");
  46235. }
  46236. }
  46237. else if (!strcmp("Toolbox", Inventory[playerid][item][invName]))
  46238. {
  46239. new vehicleid = GetClosestVehicle(playerid);
  46240. if (vehicleid == INVALID_VEHICLE_ID)
  46241. {
  46242. return SendErrorMessage(playerid, "There is no vehicle nearby.");
  46243. }
  46244. else if (Players[playerid][pJob] != JOB_MECHANIC)
  46245. {
  46246. return SendErrorMessage(playerid, "You need to have the mechanic job to do this.");
  46247. }
  46248. else if (!GetHoodStatus(vehicleid))
  46249. {
  46250. return SendErrorMessage(playerid, "The hood must be opened to perform a repair.");
  46251. }
  46252. else if (GetPlayerState(playerid) != PLAYER_STATE_ONFOOT)
  46253. {
  46254. return SendErrorMessage(playerid, "You must be onfoot to use this item.");
  46255. }
  46256. else if (GetVehicleHealthEx(vehicleid) >= 1000.0)
  46257. {
  46258. return SendErrorMessage(playerid, "The engine doesn't need to be repaired.");
  46259. }
  46260. else if (Players[playerid][pRepairCar])
  46261. {
  46262. return SendErrorMessage(playerid, "You are already repairing a vehicle.");
  46263. }
  46264. else
  46265. {
  46266. ShowActionBubble(playerid, "* %s takes out a toolbox and starts repairing the engine.", ReturnNameEx(playerid));
  46267. ShowFooterText(playerid, "Repairing the engine, please wait...", 1200);
  46268. Timers[playerid][tRepair] = SetTimerEx("RepairEngine", 1000, true, "ii", playerid, vehicleid);
  46269. Players[playerid][pRepairCar] = 1;
  46270. }
  46271. }
  46272. else if (!strcmp("Screwdriver", Inventory[playerid][item][invName]))
  46273. {
  46274. new id;
  46275. if (GetPlayerState(playerid) != PLAYER_STATE_ONFOOT)
  46276. {
  46277. return SendErrorMessage(playerid, "You must be onfoot to use this item.");
  46278. }
  46279. else if ((id = GetClosestHouse(playerid)) != INVALID_ID)
  46280. {
  46281. if (!Houses[id][hLocked])
  46282. {
  46283. return SendErrorMessage(playerid, "The doors are already unlocked.");
  46284. }
  46285. else
  46286. {
  46287. ShowActionBubble(playerid, "* %s takes out a screwdriver and starts picking the lock.", ReturnNameEx(playerid));
  46288. PickLock(playerid, PICK_LOCK_HOUSE, id);
  46289. SendInfoMessage(playerid, "You are now picking the lock. Leave the area to stop picking.");
  46290. }
  46291. }//else if (GetClosestFurniture(playerid, 2.0, 2332) != INVALID_ID) SafeCheck(playerid);
  46292. /*else if ((id = GetClosestFurniture(playerid, 2.0, 2332)) != INVALID_ID)
  46293. {
  46294. if (Furniture[id][fSafeOpen])
  46295. {
  46296. return SendErrorMessage(playerid, "This safe is already open.");
  46297. }
  46298. else
  46299. {
  46300. ShowActionBubble(playerid, "* %s takes out a screwdriver and starts picking the lock.", ReturnNameEx(playerid));
  46301. PickLock(playerid, PICK_LOCK_SAFE, id);
  46302. SendInfoMessage(playerid, "You are now picking the lock. Leave the area to stop picking.");
  46303. }
  46304. }*/
  46305. else if ((id = GetClosestCompany(playerid)) != INVALID_ID)
  46306. {
  46307. if (!Companies[id][cLocked])
  46308. {
  46309. return SendErrorMessage(playerid, "The doors are already unlocked.");
  46310. }
  46311. else
  46312. {
  46313. ShowActionBubble(playerid, "* %s takes out a screwdriver and starts picking the lock.", ReturnNameEx(playerid));
  46314. PickLock(playerid, PICK_LOCK_COMPANY, id);
  46315. SendInfoMessage(playerid, "You are now picking the lock. Leave the area to stop picking.");
  46316. }
  46317. }
  46318. else if ((id = GetVehicleID(GetClosestVehicle(playerid))) != INVALID_ID)
  46319. {
  46320. if (!Vehicles[id][vLocked])
  46321. {
  46322. return SendErrorMessage(playerid, "This vehicle is already unlocked.");
  46323. }
  46324. else
  46325. {
  46326. foreach (new i : Player)
  46327. {
  46328. if (IsVehicleOwner(i, id))
  46329. {
  46330. SendFormatMessage(i, COLOR_YELLOW, "* Text from OnStar: The alarm has been activated on your %s with the license plate '%s'.", GetVehicleModelName(Vehicles[id][vModel]), Vehicles[id][vPlate]);
  46331. }
  46332. if (GetPlayerFactionType(i) == FACTION_LEO)
  46333. {
  46334. new
  46335. Float:x,
  46336. Float:y,
  46337. Float:z;
  46338. GetVehiclePos( Vehicles[id][vVehicle] , x, y, z);
  46339. SendFormatMessage(i, COLOR_GREEN, "* [DISPATCH] Vehicle Alarm has been Activated any available units please respond.");
  46340. SendFormatMessage(i, COLOR_GREEN, "* [DISPATCH] %s located in %s, plate: '%s' *", GetVehicleModelName(Vehicles[id][vModel]), GetZoneName(x, y, z), Vehicles[id][vPlate]);
  46341. //break;
  46342. }
  46343. }
  46344. /*foreach (new j : Player)
  46345. {
  46346. if (GetPlayerFactionType(j) == FACTION_LEO)
  46347. {
  46348. new
  46349. Float:x,
  46350. Float:y,
  46351. Float:z;
  46352. GetVehiclePos( Vehicles[id][vVehicle] , x, y, z);
  46353. SendFormatMessage(j, COLOR_RED, "* [ALARM] %s located in %s, plate: '%s' *", GetVehicleModelName(Vehicles[id][vModel]), GetZoneName(x, y, z), Vehicles[id][vPlate]);
  46354. //break;
  46355. }
  46356. }*/
  46357. ShowActionBubble(playerid, "* %s takes out a screwdriver and starts picking the lock.", ReturnNameEx(playerid));
  46358. PickLock(playerid, PICK_LOCK_VEHICLE, id);
  46359. SendInfoMessage(playerid, "You are now picking the lock. Leave the area to stop picking.");
  46360. }
  46361. }
  46362. else
  46363. {
  46364. SendErrorMessage(playerid, "There is no locks nearby to pick.");
  46365. }
  46366. }
  46367. else if ((weapon = GetItemInformation(Inventory[playerid][item][invName], ITEM_INFO_WEAPON_ID)) > 0)
  46368. {
  46369. if (Players[playerid][pHoursOnline] < 5 && GetPlayerFactionType(playerid) != FACTION_LEO)
  46370. {
  46371. return SendErrorMessage(playerid, "You need at least 5 playing hours to equip a weapon.");
  46372. }
  46373. if (1 <= weapon <= 15 && Weapons[playerid][wMelee])
  46374. {
  46375. SendErrorMessage(playerid, "Your melee weapon contains a weapon already!");
  46376. }
  46377. else if (1 <= weapon <= 15 && !Weapons[playerid][wMelee])
  46378. {
  46379. SetPlayerWeapon(playerid, WEAPON_MELEE, weapon);
  46380. ShowActionBubble(playerid, "* %s takes out a weapon from their inventory.", ReturnNameEx(playerid));
  46381. RemoveItemFromInventory(playerid, item);
  46382. SendInfoMessage(playerid, "{CFCFCF}You have equipped your melee weapon. Command available: {33AA33}/weapons.");
  46383. }
  46384. else if (!Weapons[playerid][wPrimary])
  46385. {
  46386. if (g_WeaponInfo[Weapons[playerid][wSecondary]][e_WeaponSlot] == g_WeaponInfo[weapon][e_WeaponSlot] || g_WeaponInfo[Weapons[playerid][wTertiary]][e_WeaponSlot] == g_WeaponInfo[weapon][e_WeaponSlot])
  46387. {
  46388. return SendErrorMessage(playerid, "You are already carrying a weapon of this type.");
  46389. }
  46390. else
  46391. {
  46392. if (Inventory[playerid][item][invValue] > 0)
  46393. {
  46394. SetReloadAnimation(playerid, weapon);
  46395. }
  46396. SetPlayerWeapon(playerid, WEAPON_PRIMARY, weapon, Inventory[playerid][item][invValue], Inventory[playerid][item][invSerial]);
  46397. ShowActionBubble(playerid, "* %s takes out a weapon from their inventory.", ReturnNameEx(playerid));
  46398. RemoveItemFromInventory(playerid, item);
  46399. SendInfoMessage(playerid, "Y{CFCFCF}You have equipped your primary weapon. Command available: {33AA33}/weapons.");
  46400. }
  46401. }
  46402. else if (!Weapons[playerid][wSecondary])
  46403. {
  46404. if (g_WeaponInfo[Weapons[playerid][wPrimary]][e_WeaponSlot] == g_WeaponInfo[weapon][e_WeaponSlot] || g_WeaponInfo[Weapons[playerid][wTertiary]][e_WeaponSlot] == g_WeaponInfo[weapon][e_WeaponSlot])
  46405. {
  46406. return SendErrorMessage(playerid, "You are already carrying a weapon of this type.");
  46407. }
  46408. else
  46409. {
  46410. if (Inventory[playerid][item][invValue] > 0)
  46411. {
  46412. SetReloadAnimation(playerid, weapon);
  46413. }
  46414. SetPlayerWeapon(playerid, WEAPON_SECONDARY, weapon, Inventory[playerid][item][invValue], Inventory[playerid][item][invSerial]);
  46415. ShowActionBubble(playerid, "* %s takes out a weapon from their inventory.", ReturnNameEx(playerid));
  46416. RemoveItemFromInventory(playerid, item);
  46417. SendInfoMessage(playerid, "{CFCFCF}You have equipped your secondary weapon. Command available: {33AA33}/weapons.");
  46418. }
  46419. }
  46420. else if (Players[playerid][pDonator] >= DONATOR_STANDARD && !Weapons[playerid][wTertiary])
  46421. {
  46422. if (g_WeaponInfo[Weapons[playerid][wPrimary]][e_WeaponSlot] == g_WeaponInfo[weapon][e_WeaponSlot] || g_WeaponInfo[Weapons[playerid][wSecondary]][e_WeaponSlot] == g_WeaponInfo[weapon][e_WeaponSlot])
  46423. {
  46424. return SendErrorMessage(playerid, "You are already carrying a weapon of this type.");
  46425. }
  46426. else
  46427. {
  46428. if (Inventory[playerid][item][invValue] > 0)
  46429. {
  46430. SetReloadAnimation(playerid, weapon);
  46431. }
  46432. SetPlayerWeapon(playerid, WEAPON_TERTIARY, weapon, Inventory[playerid][item][invValue], Inventory[playerid][item][invSerial]);
  46433. ShowActionBubble(playerid, "* %s takes out a weapon from their inventory.", ReturnNameEx(playerid));
  46434. RemoveItemFromInventory(playerid, item);
  46435. SendInfoMessage(playerid, "{CFCFCF}You have equipped your tertiary weapon. Command available: {33AA33}/weapons.");
  46436. }
  46437. }
  46438. else
  46439. {
  46440. SendErrorMessage(playerid, "{CFCFCF}Your weapon slots are full! (/weapons)");
  46441. }
  46442. }
  46443. }
  46444. case 1:
  46445. {
  46446. if (Players[playerid][pFaction] != INVALID_ID && GetPlayerFactionType(playerid) != FACTION_ILLEGAL && GetItemInformation(Inventory[playerid][item][invName], ITEM_INFO_WEAPON_ID) > 0)
  46447. {
  46448. SendErrorMessage(playerid, "You cannot give out weapons in your faction.");
  46449. }
  46450. else
  46451. {
  46452. Dialog_Show(playerid, GiveItem, DIALOG_STYLE_INPUT, "{FFFFFF}Give item", "Item: %s\n\nPlease input the player to give this item to:", "Submit", "Cancel", GetFullItemName(playerid, item));
  46453. }
  46454. }
  46455. case 2:
  46456. {
  46457. if (IsPlayerInAnyVehicle(playerid))
  46458. {
  46459. return SendErrorMessage(playerid, "You cannot drop items in a vehicle.");
  46460. }
  46461. else
  46462. {
  46463. /*if (GetItemInformation(StoredItems[item][stName], ITEM_INFO_STACKABLE) && Inventory[playerid][item][invValue] > 1)
  46464. {
  46465. Dialog_Show(playerid, DropAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Drop item", "How many would you like to drop?", "Submit", "Cancel");
  46466. }
  46467. else
  46468. {
  46469. Statistics[playerid][sItemsDropped]++;
  46470. ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0);
  46471. SendInfoMessage(playerid, "You have discarded an item: %s.", GetFullItemName(playerid, item));
  46472. ShowActionBubble(playerid, "* %s puts an item on the ground.", ReturnNameEx(playerid));
  46473. format(gExecute, sizeof(gExecute), "INSERT INTO rp_itemlogs (Player, Item, Action, Date) VALUES('%s', '%s', 'Dropped', NOW())", ReturnName(playerid), GetFullItemName(playerid, item));
  46474. mysql_tquery(gConnection, gExecute);
  46475. DiscardItem(playerid, item);
  46476. if (Players[playerid][pFaction] != INVALID_ID && GetItemInformation(Inventory[playerid][item][invName], ITEM_INFO_WEAPON_ID) > 0)
  46477. {
  46478. SendInfoMessage(playerid, "As you are a faction member, dropped weapons will not appear on the ground.");
  46479. RemoveItemFromInventory(playerid, item);
  46480. }
  46481. else
  46482. {
  46483. format(gExecute, sizeof(gExecute), "INSERT INTO rp_itemlogs (Player, Item, Action, Date) VALUES('%s', '%s', 'Dropped', NOW())", ReturnName(playerid), GetFullItemName(playerid, item));
  46484. mysql_tquery(gConnection, gExecute);
  46485. DiscardItem(playerid, item);
  46486. }
  46487. }*/
  46488. if (Players[playerid][pFaction] != INVALID_ID && GetItemInformation(Inventory[playerid][item][invName], ITEM_INFO_WEAPON_ID) > 0)
  46489. {
  46490. SendInfoMessage(playerid, "As you are a faction member, dropped weapons will not appear on the ground.");
  46491. RemoveItemFromInventory(playerid, item);
  46492. }
  46493. else
  46494. {
  46495. format(gExecute, sizeof(gExecute), "INSERT INTO rp_itemlogs (Player, Item, Action, Date) VALUES('%s', '%s', 'Dropped', NOW())", ReturnName(playerid), GetFullItemName(playerid, item));
  46496. mysql_tquery(gConnection, gExecute);
  46497. DiscardItem(playerid, item);
  46498. }
  46499. }
  46500. }
  46501. }
  46502. }
  46503. return 1;
  46504. }
  46505. Dialog:AccountCreate(playerid, response, listitem, inputtext[])
  46506. {
  46507. if (response)
  46508. {
  46509. if (isnull(inputtext))
  46510. {
  46511. return Dialog_Show(playerid, AccountCreate, DIALOG_STYLE_PASSWORD, "SA92 Registration", "Your name is currently not registered!\nPlease enter a safe and secure password below to register with your master account:", "Submit", "Quit");
  46512. }
  46513. else if (strlen(inputtext) < 4)
  46514. {
  46515. return Dialog_Show(playerid, AccountCreate, DIALOG_STYLE_PASSWORD, "SA92 Registration", "Your password must contain a minimum of 4 characters.\n\nYour name is currently not registered!\nPlease enter a safe and secure password below to register with your master account:", "Submit", "Quit");
  46516. }
  46517. else
  46518. {
  46519. CreatePlayerAccount(playerid, inputtext);
  46520. FlushChatForPlayer(playerid);
  46521. SendInfoMessage(playerid, " You have been registered, once spawned you will spawn at the starter spawn. Welcome aboard!");
  46522. SendInfoMessage(playerid, " Please type {33AA33}'/spawntype'{FFFFFF} to adjust your spawn location.");
  46523. SendInfoMessage(playerid, " If you wish to spawn the your desired faction, please re-log after used {33AA33}'/spawntype'");
  46524. SendInfoMessage(playerid, " There is rental vehicles nearby you if it's needed.");
  46525. }
  46526. }
  46527. else
  46528. {
  46529. Kick(playerid);
  46530. }
  46531. return 1;
  46532. }
  46533. Dialog:AccountLogin(playerid, response, listitem, inputtext[])
  46534. {
  46535. if (response)
  46536. {
  46537. if (isnull(inputtext))
  46538. {
  46539. return Dialog_Show(playerid, AccountLogin, DIALOG_STYLE_PASSWORD, "SA92 Login", "{FFFFFF}This account is {33AA33}registered.\n{FFFFFF}Please enter your password below in order to authenticate:", "Submit", "Quit");
  46540. }
  46541. else
  46542. {
  46543. PlayerAttemptLogin(playerid, inputtext);
  46544. SendInfoMessage(playerid, " Welcome back to San Andreas 92 RPG");
  46545. }
  46546. }
  46547. else
  46548. {
  46549. Kick(playerid);
  46550. }
  46551. return 1;
  46552. }
  46553. /*---------------------------------------------------------------------------
  46554. Script Commands
  46555. These are all the commands that players can use.
  46556. ---------------------------------------------------------------------------*/
  46557. //#include "core/player/cmds_veh.pwn"
  46558. #include "core/player/cmds_chat.pwn"
  46559. #include "core/player/cmds_general.pwn"
  46560. #include "core/player/cmds_roleplay.pwn"
  46561. #include "core/player/cmds_house.pwn"
  46562. #include "core/admin/cmds_punish.pwn"
  46563. #include "core/admin/cmds_general.pwn"
  46564. #include "core/admin/cmds_teleport.pwn"
  46565. #include "core/admin/cmds_veh.pwn"
  46566. #include "core/admin/cmds_stats.pwn"
  46567. #include "core/admin/cmds_fac.pwn"
  46568. CMD:vblacklist(playerid, params[])
  46569. {
  46570. new model[24], modelid;
  46571. if (Players[playerid][pAdmin] < 5)
  46572. {
  46573. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  46574. }
  46575. else if (sscanf(params, "s[24]", model))
  46576. {
  46577. return SendSyntaxMessage(playerid, "/vblacklist (model ID)");
  46578. }
  46579. else if (!(modelid = GetVehicleModelFromName(model)))
  46580. {
  46581. return SendErrorMessage(playerid, "The specified model doesn't exist.");
  46582. }
  46583. else
  46584. {
  46585. if (!IsVehicleBlacklisted(modelid))
  46586. {
  46587. BlacklistVehicle(modelid);
  46588. SendAdminMessage(COLOR_RED, "Admin: %s has blacklisted the %s from being spawned using /vspawn.", ReturnNameEx(playerid, 0), GetVehicleModelName(modelid));
  46589. }
  46590. else
  46591. {
  46592. UnBlacklistVehicle(modelid);
  46593. SendAdminMessage(COLOR_RED, "Admin: %s has whitelisted the %s from being spawned using /vspawn.", ReturnNameEx(playerid, 0), GetVehicleModelName(modelid));
  46594. }
  46595. }
  46596. return 1;
  46597. }
  46598. CMD:vsave(playerid, params[])
  46599. {
  46600. new vehicleid = GetPlayerVehicleID(playerid);
  46601. if (Players[playerid][pAdmin] < 5)
  46602. {
  46603. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  46604. }
  46605. else if (!IsPlayerInAnyVehicle(playerid))
  46606. {
  46607. return SendErrorMessage(playerid, "You need to be in a vehicle to save it.");
  46608. }
  46609. else if (!VehicleInformation[vehicleid][vAdmin])
  46610. {
  46611. return SendErrorMessage(playerid, "You can only save an admin spawned vehicle.");
  46612. }
  46613. else
  46614. {
  46615. new vehicle = GetNextVehicleID();
  46616. if (vehicle == INVALID_ID)
  46617. {
  46618. SendErrorMessage(playerid, "There are no available vehicle slots.");
  46619. }
  46620. else
  46621. {
  46622. VehicleInformation[vehicleid][vAdmin] = 0;
  46623. ResetVehicle(vehicle);
  46624. GetVehiclePos(vehicleid, Vehicles[vehicle][vSpawn][0], Vehicles[vehicle][vSpawn][1], Vehicles[vehicle][vSpawn][2]);
  46625. GetVehicleZAngle(vehicleid, Vehicles[vehicle][vSpawn][3]);
  46626. Vehicles[vehicle][vExists] = 1;
  46627. Vehicles[vehicle][vModel] = GetVehicleModel(vehicleid);
  46628. Vehicles[vehicle][vVehicle] = vehicleid;
  46629. Vehicles[vehicle][vColor1] = VehicleInformation[vehicleid][vColor][0];
  46630. Vehicles[vehicle][vColor2] = VehicleInformation[vehicleid][vColor][1];
  46631. format(gExecute, sizeof(gExecute), "INSERT INTO rp_vehicles (vModel) VALUES(%i)", Vehicles[vehicle][vModel]);
  46632. mysql_tquery(gConnection, gExecute, "OnVehicleAdded", "i", vehicle);
  46633. UpdateVehicle(vehicle);
  46634. PutPlayerInVehicle(playerid, Vehicles[vehicle][vVehicle], 0);
  46635. SendInfoMessage(playerid, "You have saved this vehicle to the database.");
  46636. }
  46637. }
  46638. return 1;
  46639. }
  46640. CMD:vspawn(playerid, params[])
  46641. {
  46642. new model[24], modelid, color1, color2, vehicleid;
  46643. if (Players[playerid][pAdmin] < 3)
  46644. {
  46645. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  46646. }
  46647. else if (sscanf(params, "s[24]I(-1)I(-1)", model, color1, color2))
  46648. {
  46649. return SendSyntaxMessage(playerid, "/vspawn (model) [color 1] [color 2]");
  46650. }
  46651. else if (!(modelid = GetVehicleModelFromName(model)))
  46652. {
  46653. return SendErrorMessage(playerid, "The specified model doesn't exist.");
  46654. }
  46655. else if ((color1 != -1) && (color1 < 0 || color1 > 255))
  46656. {
  46657. return SendErrorMessage(playerid, "The first color must be between -1 and 255.");
  46658. }
  46659. else if ((color2 != -1) && (color2 < 0 || color2 > 255))
  46660. {
  46661. return SendErrorMessage(playerid, "The second color must be between -1 and 255.");
  46662. }
  46663. else if (IsVehicleBlacklisted(modelid))
  46664. {
  46665. return SendErrorMessage(playerid, "This vehicle is blacklisted from being spawned.");
  46666. }
  46667. else
  46668. {
  46669. new
  46670. Float:x,
  46671. Float:y,
  46672. Float:z,
  46673. Float:angle;
  46674. GetPlayerPos(playerid, x, y, z);
  46675. GetPlayerFacingAngle(playerid, angle);
  46676. if ((vehicleid = SpawnVehicle(modelid, x, y, z, angle, color1, color2)) == INVALID_VEHICLE_ID)
  46677. {
  46678. return SendErrorMessage(playerid, "The server cannot handle anymore vehicles!");
  46679. }
  46680. else
  46681. {
  46682. VehicleInformation[vehicleid][vAdmin] = 1;
  46683. LinkVehicleToInterior(vehicleid, GetPlayerInterior(playerid));
  46684. SetVehicleVirtualWorld(vehicleid, GetPlayerVirtualWorld(playerid));
  46685. if (!IsPlayerSpectating(playerid))
  46686. {
  46687. PutPlayerInVehicle(playerid, vehicleid, 0);
  46688. }
  46689. SendAdminMessage(COLOR_RED, "Admin: %s has spawned a %s.", ReturnNameEx(playerid, 0), GetVehicleName(vehicleid));
  46690. new log[128];
  46691. format(log, sizeof(log), "%s has spawned a %s", ReturnName(playerid), GetVehicleName(vehicleid));
  46692. CreateLog("admin", log);
  46693. }
  46694. }
  46695. return 1;
  46696. }
  46697. CMD:vdestroy(playerid, params[])
  46698. {
  46699. if (Players[playerid][pAdmin] < 3)
  46700. {
  46701. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  46702. }
  46703. else
  46704. {
  46705. if (IsPlayerInAnyVehicle(playerid))
  46706. Dialog_Show(playerid, VehicleDespawn, DIALOG_STYLE_LIST, "{FFFFFF}Destroy vehicles", "Current vehicle\nAll vehicles\nNearby vehicles", "Select", "Cancel");
  46707. else
  46708. Dialog_Show(playerid, VehicleDespawn, DIALOG_STYLE_LIST, "{FFFFFF}Destroy vehicles", "All vehicles\nNearby vehicles", "Select", "Cancel");
  46709. }
  46710. return 1;
  46711. }
  46712. CMD:vrepair(playerid, params[])
  46713. {
  46714. new vehicleid = GetPlayerVehicleID(playerid);
  46715. if (Players[playerid][pAdmin] < 2)
  46716. {
  46717. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  46718. }
  46719. else if (!IsValidVehicle(vehicleid) && sscanf(params, "i", vehicleid))
  46720. {
  46721. return SendSyntaxMessage(playerid, "/vrepair (vehicle ID)");
  46722. }
  46723. else if (!IsValidVehicle(vehicleid))
  46724. {
  46725. return SendErrorMessage(playerid, "The specified vehicle doesn't exist.");
  46726. }
  46727. else
  46728. {
  46729. RepairVehicle(vehicleid);
  46730. SendInfoMessage(playerid, "You have repaired vehicle %i.", vehicleid);
  46731. new log[128];
  46732. format(log, sizeof(log), "%s has repaired vehicle %i", ReturnName(playerid), vehicleid);
  46733. CreateLog("admin", log);
  46734. }
  46735. return 1;
  46736. }
  46737. CMD:vrefuelall(playerid, params[])
  46738. {
  46739. if (Players[playerid][pAdmin] < 3)
  46740. {
  46741. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  46742. }
  46743. else
  46744. {
  46745. for (new i = 1; i < MAX_VEHICLES; i ++)
  46746. {
  46747. if (!IsValidVehicle(i)) continue;
  46748. VehicleInformation[i][vFuel] = 100;
  46749. }
  46750. SendAdminMessage(COLOR_RED, "Admin: %s has refueled all vehicles.", ReturnNameEx(playerid));
  46751. new log[128];
  46752. format(log, sizeof(log), "%s has refueled all vehicles", ReturnName(playerid));
  46753. CreateLog("admin", log);
  46754. }
  46755. return 1;
  46756. }
  46757. CMD:vrefuel(playerid, params[])
  46758. {
  46759. new vehicleid = GetPlayerVehicleID(playerid);
  46760. if (Players[playerid][pAdmin] < 3)
  46761. {
  46762. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  46763. }
  46764. else if (!IsValidVehicle(vehicleid) && sscanf(params, "i", vehicleid))
  46765. {
  46766. return SendSyntaxMessage(playerid, "/vrefuel (vehicle ID)");
  46767. }
  46768. else if (!IsValidVehicle(vehicleid))
  46769. {
  46770. return SendErrorMessage(playerid, "The specified vehicle doesn't exist.");
  46771. }
  46772. else
  46773. {
  46774. VehicleInformation[vehicleid][vFuel] = 100;
  46775. UpdateFuelGauge(vehicleid);
  46776. SendInfoMessage(playerid, "You have refueled vehicle %i.", vehicleid);
  46777. new log[128];
  46778. format(log, sizeof(log), "%s has refueled vehicle %i", ReturnName(playerid), vehicleid);
  46779. CreateLog("admin", log);
  46780. }
  46781. return 1;
  46782. }
  46783. CMD:vsethealth(playerid, params[])
  46784. {
  46785. new vehicleid, Float:health;
  46786. if (Players[playerid][pAdmin] < 5)
  46787. {
  46788. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  46789. }
  46790. else if (sscanf(params, "if", vehicleid, health))
  46791. {
  46792. return SendSyntaxMessage(playerid, "/vsethealth (vehicle ID) (health)");
  46793. }
  46794. else if (!IsValidVehicle(vehicleid))
  46795. {
  46796. return SendErrorMessage(playerid, "The specified vehicle doesn't exist.");
  46797. }
  46798. else
  46799. {
  46800. SetVehicleHealth(vehicleid, health);
  46801. SendInfoMessage(playerid, "You have set the health of vehicle %i to %.0f.", vehicleid, health);
  46802. new log[128];
  46803. format(log, sizeof(log), "%s has set the health of vehicle %i to %.0f", ReturnName(playerid), vehicleid, health);
  46804. CreateLog("admin", log);
  46805. }
  46806. return 1;
  46807. }
  46808. CMD:disarm(playerid, params[])
  46809. {
  46810. new targetid;
  46811. if (Players[playerid][pAdmin] < 3)
  46812. {
  46813. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  46814. }
  46815. else if (sscanf(params, "u", targetid))
  46816. {
  46817. return SendSyntaxMessage(playerid, "/disarm [playerid/name]");
  46818. }
  46819. else if (!IsPlayerConnected(targetid))
  46820. {
  46821. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  46822. }
  46823. else if (!IsPlayerLoggedIn(targetid))
  46824. {
  46825. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  46826. }
  46827. else
  46828. {
  46829. ResetWeapons(targetid);
  46830. SendInfoMessage(playerid, "You have disarmed %s.", ReturnNameEx(targetid, 0));
  46831. new log[128];
  46832. format(log, sizeof(log), "%s has disarmed %s", ReturnName(playerid), ReturnName(targetid));
  46833. CreateLog("admin", log);
  46834. }
  46835. return 1;
  46836. }
  46837. CMD:setweapon(playerid, params[])
  46838. {
  46839. new targetid, slot, weapon, ammo;
  46840. if (Players[playerid][pAdmin] < 6)
  46841. {
  46842. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  46843. }
  46844. else if (sscanf(params, "uiiI(0)", targetid, slot, weapon, ammo))
  46845. {
  46846. SendSyntaxMessage(playerid, "/setweapon [playerid/name] [slot] [weapon] [ammo]");
  46847. SendInfoMessage(playerid, "0 - Melee, 1 - Primary, 2 - Secondary, 3 - Tertiary (Donators)");
  46848. }
  46849. else if (!IsPlayerConnected(targetid))
  46850. {
  46851. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  46852. }
  46853. else if (!IsPlayerLoggedIn(targetid))
  46854. {
  46855. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  46856. }
  46857. else if (weapon < 0 || (19 <= weapon <= 21) || (35 <= weapon <= 38) || weapon > 46)
  46858. {
  46859. return SendErrorMessage(playerid, "The specified weapon is not valid.");
  46860. }
  46861. else if (ammo < 0 || ammo > 19999)
  46862. {
  46863. return SendErrorMessage(playerid, "The specified ammo must be between 0 and 19,999.");
  46864. }
  46865. else if (Players[targetid][pHoursOnline] < 5)
  46866. {
  46867. return SendErrorMessage(playerid, "The specified target needs at least 5 playing hours.");
  46868. }
  46869. else
  46870. {
  46871. switch (slot)
  46872. {
  46873. case 0:
  46874. {
  46875. if (!(0 <= weapon <= 15))
  46876. {
  46877. return SendErrorMessage(playerid, "The melee weapon can only consist of weapon 0 to 15.");
  46878. }
  46879. SetPlayerWeapon(targetid, WEAPON_MELEE, weapon);
  46880. SendInfoMessage(playerid, "You have set %s's melee weapon to: %s.", ReturnNameEx(targetid, 0), GetWeapon(weapon));
  46881. if (!weapon)
  46882. {
  46883. SendAdminMessage(COLOR_RED, "Admin: %s has reset %s's melee weapon.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0));
  46884. new log[128];
  46885. format(log, sizeof(log), "%s has reset %s's melee weapon", ReturnName(playerid), ReturnName(targetid));
  46886. CreateLog("admin", log);
  46887. }
  46888. else
  46889. {
  46890. SendAdminMessage(COLOR_RED, "Admin: %s has set %s's melee weapon to %s.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), GetWeapon(weapon));
  46891. new log[128];
  46892. format(log, sizeof(log), "%s has set %s's melee weapon to %s", ReturnName(playerid), ReturnName(targetid), GetWeapon(weapon));
  46893. CreateLog("admin", log);
  46894. }
  46895. }
  46896. case 1:
  46897. {
  46898. if (weapon != 0 && (!(16 <= weapon <= 45)))
  46899. {
  46900. return SendErrorMessage(playerid, "The primary weapon can only consist of weapon 16 to 45.");
  46901. }
  46902. SetPlayerWeapon(targetid, WEAPON_PRIMARY, weapon, ammo);
  46903. SendInfoMessage(playerid, "You have set %s's primary weapon to: %s (%i).", ReturnNameEx(targetid, 0), GetWeapon(weapon), ammo);
  46904. if (!weapon)
  46905. {
  46906. SendAdminMessage(COLOR_RED, "Admin: %s has reset %s's primary weapon.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0));
  46907. new log[128];
  46908. format(log, sizeof(log), "%s has reset %s's primary weapon", ReturnName(playerid), ReturnName(targetid));
  46909. CreateLog("admin", log);
  46910. }
  46911. else
  46912. {
  46913. SendAdminMessage(COLOR_RED, "Admin: %s has set %s's primary weapon to %s (%i).", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), GetWeapon(weapon), ammo);
  46914. new log[128];
  46915. format(log, sizeof(log), "%s has set %s's primary weapon to %s (%i)", ReturnName(playerid), ReturnName(targetid), GetWeapon(weapon), ammo);
  46916. CreateLog("admin", log);
  46917. }
  46918. }
  46919. case 2:
  46920. {
  46921. if (weapon != 0 && (!(16 <= weapon <= 45)))
  46922. {
  46923. return SendErrorMessage(playerid, "The secondary weapon can only consist of weapon 16 to 45.");
  46924. }
  46925. SetPlayerWeapon(targetid, WEAPON_SECONDARY, weapon, ammo);
  46926. SendInfoMessage(playerid, "You have set %s's secondary weapon to: %s (%i).", ReturnNameEx(targetid, 0), GetWeapon(weapon), ammo);
  46927. if (!weapon)
  46928. {
  46929. SendAdminMessage(COLOR_RED, "Admin: %s has reset %s's secondary weapon.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0));
  46930. new log[128];
  46931. format(log, sizeof(log), "%s has reset %s's secondary weapon", ReturnName(playerid), ReturnName(targetid));
  46932. CreateLog("admin", log);
  46933. }
  46934. else
  46935. {
  46936. SendAdminMessage(COLOR_RED, "Admin: %s has set %s's secondary weapon to %s (%i).", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), GetWeapon(weapon), ammo);
  46937. new log[128];
  46938. format(log, sizeof(log), "%s has set %s's secondary weapon to %s (%i)", ReturnName(playerid), ReturnName(targetid), GetWeapon(weapon), ammo);
  46939. CreateLog("admin", log);
  46940. }
  46941. }
  46942. case 3:
  46943. {
  46944. if (Players[targetid][pDonator] < DONATOR_STANDARD)
  46945. {
  46946. return SendErrorMessage(playerid, "The specified target doesn't have a high enough donator level.");
  46947. }
  46948. else if (weapon != 0 && (!(16 <= weapon <= 45)))
  46949. {
  46950. return SendErrorMessage(playerid, "The tertiary weapon can only consist of weapon 16 to 45.");
  46951. }
  46952. SetPlayerWeapon(targetid, WEAPON_TERTIARY, weapon, ammo);
  46953. SendInfoMessage(playerid, "You have set %s's tertiary weapon to: %s (%i).", ReturnNameEx(targetid, 0), GetWeapon(weapon), ammo);
  46954. if (!weapon)
  46955. {
  46956. SendAdminMessage(COLOR_RED, "Admin: %s has reset %s's tertiary weapon.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0));
  46957. new log[128];
  46958. format(log, sizeof(log), "%s has reset %s's tertiary weapon", ReturnName(playerid), ReturnName(targetid));
  46959. CreateLog("admin", log);
  46960. }
  46961. else
  46962. {
  46963. SendAdminMessage(COLOR_RED, "Admin: %s has set %s's tertiary weapon to %s (%i).", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), GetWeapon(weapon), ammo);
  46964. new log[128];
  46965. format(log, sizeof(log), "%s has set %s's tertiary weapon to %s (%i)", ReturnName(playerid), ReturnName(targetid), GetWeapon(weapon), ammo);
  46966. CreateLog("admin", log);
  46967. }
  46968. }
  46969. }
  46970. }
  46971. return 1;
  46972. }
  46973. CMD:sethealth(playerid, params[])
  46974. {
  46975. new targetid, Float:amount;
  46976. if (Players[playerid][pAdmin] < 2)
  46977. {
  46978. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  46979. }
  46980. else if (sscanf(params, "uf", targetid, amount))
  46981. {
  46982. return SendSyntaxMessage(playerid, "/sethealth [playerid/name] [health]");
  46983. }
  46984. else if (!IsPlayerConnected(targetid))
  46985. {
  46986. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  46987. }
  46988. else if (!IsPlayerLoggedIn(targetid))
  46989. {
  46990. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  46991. }
  46992. else
  46993. {
  46994. SetPlayerHealth(targetid, amount);
  46995. SendInfoMessage(playerid, "You have set %s's health to %.0f.", ReturnNameEx(targetid, 0), amount);
  46996. SendInfoMessage(targetid, "%s has set your health to %.0f.", ReturnNameEx(playerid, 0), amount);
  46997. new log[128];
  46998. format(log, sizeof(log), "%s has set %s's health to %.0f", ReturnName(playerid), ReturnName(targetid), amount);
  46999. CreateLog("admin", log);
  47000. }
  47001. return 1;
  47002. }
  47003. CMD:setarmor(playerid, params[])
  47004. {
  47005. new targetid, Float:amount;
  47006. if (Players[playerid][pAdmin] < 2)
  47007. {
  47008. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  47009. }
  47010. else if (sscanf(params, "uf", targetid, amount))
  47011. {
  47012. return SendSyntaxMessage(playerid, "/setarmor [playerid/name] [armor]");
  47013. }
  47014. else if (!IsPlayerConnected(targetid))
  47015. {
  47016. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  47017. }
  47018. else if (!IsPlayerLoggedIn(targetid))
  47019. {
  47020. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  47021. }
  47022. else if (!IsPlayerSpawned(targetid))
  47023. {
  47024. return SendErrorMessage(playerid, "The specified target is not spawned.");
  47025. }
  47026. else if (amount < 0.0 || amount > 100.0)
  47027. {
  47028. return SendErrorMessage(playerid, "The amount of armor must be between 0 and 100 (due to anticheat).");
  47029. }
  47030. else
  47031. {
  47032. SetPlayerValidArmor(targetid, amount);
  47033. SendInfoMessage(playerid, "You have set %s's armor to %.0f.", ReturnNameEx(targetid, 0), amount);
  47034. SendInfoMessage(targetid, "%s has set your armor to %.0f.", ReturnNameEx(playerid, 0), amount);
  47035. new log[128];
  47036. format(log, sizeof(log), "%s has set %s's armor to %.0f", ReturnName(playerid), ReturnName(targetid), amount);
  47037. CreateLog("admin", log);
  47038. }
  47039. return 1;
  47040. }
  47041. CMD:armor(playerid, params[])
  47042. {
  47043. if (GetPlayerArmourEx(playerid) < 1.0)
  47044. {
  47045. return SendErrorMessage(playerid, "You don't have any armor on.");
  47046. }
  47047. else
  47048. {
  47049. AddItemToInventory(playerid, "Armor", floatround(GetPlayerArmourEx(playerid), floatround_round));
  47050. SetPlayerValidArmor(playerid, 0.0);
  47051. }
  47052. return 1;
  47053. }
  47054. CMD:setweather(playerid, params[])
  47055. {
  47056. new weather;
  47057. if (Players[playerid][pAdmin] < 3)
  47058. {
  47059. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  47060. }
  47061. else if (sscanf(params, "i", weather))
  47062. {
  47063. return SendSyntaxMessage(playerid, "/setweather (weather)");
  47064. }
  47065. else
  47066. {
  47067. gWeatherID = weather;
  47068. SetWeather(weather);
  47069. foreach (new i : Player)
  47070. {
  47071. if (Players[i][pStoned] == STONED_TYPE_HEROIN)
  47072. {
  47073. SetPlayerWeather(i, -66);
  47074. }
  47075. }
  47076. SendInfoMessage(playerid, "The weather has been changed to %i.", weather);
  47077. new log[128];
  47078. format(log, sizeof(log), "%s has set the weather to %i", ReturnName(playerid), weather);
  47079. CreateLog("admin", log);
  47080. }
  47081. return 1;
  47082. }
  47083. CMD:clearinventory(playerid, params[])
  47084. {
  47085. new targetid;
  47086. if (Players[playerid][pAdmin] < 3)
  47087. {
  47088. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  47089. }
  47090. else if (sscanf(params, "u", targetid))
  47091. {
  47092. return SendSyntaxMessage(playerid, "/clearinventory [playerid/name]");
  47093. }
  47094. else if (!IsPlayerConnected(targetid))
  47095. {
  47096. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  47097. }
  47098. else if (IsPlayerNPC(targetid))
  47099. {
  47100. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  47101. }
  47102. else if (!IsPlayerLoggedIn(targetid))
  47103. {
  47104. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  47105. }
  47106. else
  47107. {
  47108. for (new i = 0; i < MAX_INVENTORY_ITEMS; i ++)
  47109. {
  47110. Inventory[targetid][i][invID] = 0;
  47111. Inventory[targetid][i][invExists] = 0;
  47112. Inventory[targetid][i][invSerial] = 0;
  47113. }
  47114. Players[targetid][pPhone] = 0;
  47115. format(gExecute, sizeof(gExecute), "DELETE FROM rp_items WHERE itemOwner = %i", Players[targetid][pID]);
  47116. mysql_tquery(gConnection, gExecute);
  47117. SendAdminMessage(COLOR_RED, "Admin: %s has cleared %s's inventory.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0));
  47118. new log[128];
  47119. format(log, sizeof(log), "%s has cleared %s's inventory", ReturnName(playerid), ReturnName(targetid));
  47120. CreateLog("admin", log);
  47121. }
  47122. return 1;
  47123. }
  47124. CMD:setname(playerid, params[])
  47125. {
  47126. new targetid, name[MAX_PLAYER_NAME];
  47127. if (Players[playerid][pAdmin] < 4)
  47128. {
  47129. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  47130. }
  47131. else if (sscanf(params, "us["#MAX_PLAYER_NAME"]", targetid, name))
  47132. {
  47133. return SendSyntaxMessage(playerid, "/setname [playerid/name] [new name]");
  47134. }
  47135. else if (!IsPlayerConnected(targetid))
  47136. {
  47137. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  47138. }
  47139. else if (!IsPlayerLoggedIn(targetid))
  47140. {
  47141. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  47142. }
  47143. else if (!IsValidName(name))
  47144. {
  47145. return SendErrorMessage(playerid, "The specified name is not supported by SA-MP.");
  47146. }
  47147. else
  47148. {
  47149. format(gExecute, sizeof(gExecute), "SELECT ID FROM rp_accounts WHERE Username = '%s'", mysql_escaped(name));
  47150. mysql_tquery(gConnection, gExecute, "OnChangeName", "iis", playerid, targetid, name);
  47151. }
  47152. return 1;
  47153. }
  47154. CMD:adeleteitem(playerid, params[])
  47155. {
  47156. new id;
  47157. if (Players[playerid][pAdmin] < 5)
  47158. {
  47159. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  47160. }
  47161. else
  47162. {
  47163. id = GetClosestDropItem(playerid);
  47164. if (id == INVALID_ID)
  47165. {
  47166. SendErrorMessage(playerid, "There are no dropped items nearby.");
  47167. }
  47168. else
  47169. {
  47170. DeleteDropItem(id);
  47171. SendInfoMessage(playerid, "You have deleted the nearest dropped item.");
  47172. new log[128];
  47173. format(log, sizeof(log), "%s deleted a dropped item", ReturnName(playerid));
  47174. CreateLog("admin", log);
  47175. }
  47176. }
  47177. return 1;
  47178. }
  47179. CMD:spawnitem(playerid, params[])
  47180. {
  47181. new targetid;
  47182. if (Players[playerid][pAdmin] < 6)
  47183. {
  47184. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  47185. }
  47186. else if (sscanf(params, "u", targetid))
  47187. {
  47188. return SendSyntaxMessage(playerid, "/spawnitem [playerid/name]");
  47189. }
  47190. else if (!IsPlayerConnected(targetid))
  47191. {
  47192. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  47193. }
  47194. else if (!IsPlayerLoggedIn(targetid))
  47195. {
  47196. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  47197. }
  47198. else
  47199. {
  47200. static s_ItemList[1024];
  47201. if (!s_ItemList[0])
  47202. {
  47203. for (new i = 0; i < sizeof(g_ItemList); i ++)
  47204. {
  47205. strcat(s_ItemList, g_ItemList[i][e_ItemName]);
  47206. strcat(s_ItemList, "\n");
  47207. }
  47208. }
  47209. Players[playerid][pTarget] = targetid;
  47210. Dialog_Show(playerid, AdminGiveItem, DIALOG_STYLE_LIST, "{FFFFFF}Select an item to give", s_ItemList, "Select", "Cancel");
  47211. }
  47212. return 1;
  47213. }
  47214. CMD:items(playerid, params[])
  47215. {
  47216. if (IsPlayerJailed(playerid) || IsPlayerInjured(playerid))
  47217. {
  47218. return SendErrorMessage(playerid, "You can't open your inventory right now.");
  47219. }
  47220. else
  47221. {
  47222. DisplayInventory(playerid);
  47223. }
  47224. return 1;
  47225. }
  47226. CMD:weapons(playerid, params[])
  47227. {
  47228. if (IsPlayerJailed(playerid) || IsPlayerInjured(playerid))
  47229. {
  47230. return SendErrorMessage(playerid, "You can't open the weapon menu right now.");
  47231. }
  47232. ShowWeaponMenu(playerid);
  47233. return 1;
  47234. }
  47235. CMD:setstat(playerid, params[])
  47236. {
  47237. new targetid, stat[16], value[64];
  47238. if (Players[playerid][pAdmin] < 5)
  47239. {
  47240. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  47241. }
  47242. else if (sscanf(params, "us[16]S()[64]", targetid, stat, value))
  47243. {
  47244. SendSyntaxMessage(playerid, "/setstat [playerid/name] [name] [value]");
  47245. SendClientMessage(playerid, COLOR_LIGHTGREY, "Types: gender, age, origin, traveled, hours, job, phone, fitness, carlicense, gunlicense");
  47246. SendClientMessage(playerid, COLOR_LIGHTGREY, "Types: paycheck");
  47247. }
  47248. else if (!IsPlayerConnected(targetid))
  47249. {
  47250. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  47251. }
  47252. else if (!IsPlayerLoggedIn(targetid))
  47253. {
  47254. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  47255. }
  47256. else
  47257. {
  47258. if (!strcmp(stat, "gender", true))
  47259. {
  47260. if (isnull(value))
  47261. {
  47262. return SendSyntaxMessage(playerid, "/setstat [playerid/name] [gender] [male/female]");
  47263. }
  47264. else if (!strcmp(value, "male", true))
  47265. {
  47266. Players[targetid][pGender] = 1;
  47267. SendInfoMessage(playerid, "You have set %s's gender to: Male.", ReturnNameEx(targetid, 0));
  47268. new log[128];
  47269. format(log, sizeof(log), "%s has set %s's gender to: Male", ReturnName(playerid), ReturnName(targetid));
  47270. CreateLog("admin", log);
  47271. }
  47272. else if (!strcmp(value, "female", true))
  47273. {
  47274. Players[targetid][pGender] = 2;
  47275. SendInfoMessage(playerid, "You have set %s's gender to: Female.", ReturnNameEx(targetid, 0));
  47276. new log[128];
  47277. format(log, sizeof(log), "%s has set %s's gender to: Female", ReturnName(playerid), ReturnName(targetid));
  47278. CreateLog("admin", log);
  47279. }
  47280. }
  47281. else if (!strcmp(stat, "age", true))
  47282. {
  47283. new age;
  47284. if (sscanf(value, "i", age))
  47285. {
  47286. return SendSyntaxMessage(playerid, "/setstat [playerid/name] [age] [value]");
  47287. }
  47288. else
  47289. {
  47290. Players[targetid][pAge] = age;
  47291. SendInfoMessage(playerid, "You have set %s's age to %i years.", ReturnNameEx(targetid, 0), age);
  47292. new log[128];
  47293. format(log, sizeof(log), "%s has set %s's age to %i years", ReturnName(playerid), ReturnName(targetid), age);
  47294. CreateLog("admin", log);
  47295. }
  47296. }
  47297. else if (!strcmp(stat, "origin", true))
  47298. {
  47299. if (sscanf(value, "s[24]", value))
  47300. {
  47301. return SendSyntaxMessage(playerid, "/setstat [playerid/name] [origin] [value]");
  47302. }
  47303. else
  47304. {
  47305. strcpy(Players[targetid][pOrigin], value, 24);
  47306. SendInfoMessage(playerid, "You have set %s's origin to '%s'.", ReturnNameEx(targetid, 0), value);
  47307. new log[128];
  47308. format(log, sizeof(log), "%s has set %s's origin to '%s'", ReturnName(playerid), ReturnName(targetid), value);
  47309. CreateLog("admin", log);
  47310. }
  47311. }
  47312. else if (!strcmp(stat, "traveled", true))
  47313. {
  47314. new Float:distance;
  47315. if (sscanf(value, "f", distance))
  47316. {
  47317. return SendSyntaxMessage(playerid, "/setstat [playerid/name] [traveled] [value]");
  47318. }
  47319. else
  47320. {
  47321. Players[targetid][pTraveled] = distance;
  47322. SendInfoMessage(playerid, "You have set %s's traveled distance to %.2f.", ReturnNameEx(targetid, 0), distance);
  47323. new log[128];
  47324. format(log, sizeof(log), "%s has set %s's traveled distance to %.2f", ReturnName(playerid), ReturnName(targetid), distance);
  47325. CreateLog("admin", log);
  47326. }
  47327. }
  47328. else if (!strcmp(stat, "hours", true))
  47329. {
  47330. new amount;
  47331. if (sscanf(value, "i", amount))
  47332. {
  47333. return SendSyntaxMessage(playerid, "/setstat [playerid/name] [hours] [value]");
  47334. }
  47335. else
  47336. {
  47337. Players[targetid][pHoursOnline] = amount;
  47338. SendInfoMessage(playerid, "You have set %s's playing hours to %i.", ReturnNameEx(targetid, 0), amount);
  47339. new log[128];
  47340. format(log, sizeof(log), "%s has set %s's playing hours to %i", ReturnName(playerid), ReturnName(targetid), amount);
  47341. CreateLog("admin", log);
  47342. }
  47343. }
  47344. else if (!strcmp(stat, "job", true))
  47345. {
  47346. new job;
  47347. if (sscanf(value, "i", job))
  47348. {
  47349. SendSyntaxMessage(playerid, "/setstat [playerid/name] [job] [value]");
  47350. return SendClientMessage(playerid, COLOR_LIGHTGREY, "Jobs: 0 - None, 1 - Transporter, 2 - Forklifter, 3 - Miner, 4 - Taxi, 5 - Pizzaboy, 6 - Trashman, 7 - Mechanic");
  47351. }
  47352. else if (job < JOB_NONE || job > JOB_MECHANIC)
  47353. {
  47354. return SendErrorMessage(playerid, "You have specified an invalid job ID.");
  47355. }
  47356. else
  47357. {
  47358. Players[targetid][pJob] = job;
  47359. SendInfoMessage(playerid, "You have set %s's job to %s (%i).", ReturnNameEx(targetid, 0), GetJobName(job), job);
  47360. new log[128];
  47361. format(log, sizeof(log), "%s has set %s's job to %s (%i)", ReturnName(playerid), ReturnName(targetid), GetJobName(job), job);
  47362. CreateLog("admin", log);
  47363. }
  47364. }
  47365. else if (!strcmp(stat, "phone", true))
  47366. {
  47367. new number;
  47368. if (sscanf(value, "i", number))
  47369. {
  47370. return SendSyntaxMessage(playerid, "/setstat [playerid/name] [phone] [value]");
  47371. }
  47372. else
  47373. {
  47374. Players[targetid][pPhone] = number;
  47375. SendInfoMessage(playerid, "You have set %s's phone number to %i.", ReturnNameEx(targetid, 0), number);
  47376. new log[128];
  47377. format(log, sizeof(log), "%s has set %s's phone number to %i", ReturnName(playerid), ReturnName(targetid), number);
  47378. CreateLog("admin", log);
  47379. }
  47380. }
  47381. else if (!strcmp(stat, "fitness", true))
  47382. {
  47383. new amount;
  47384. if (sscanf(value, "i", amount))
  47385. {
  47386. return SendSyntaxMessage(playerid, "/setstat [playerid/name] [fitness] [value]");
  47387. }
  47388. else if (amount < 0 || amount > 100)
  47389. {
  47390. return SendErrorMessage(playerid, "The fitness level must range from 0 to 100.");
  47391. }
  47392. else
  47393. {
  47394. Players[targetid][pFitness] = amount;
  47395. SendInfoMessage(playerid, "You have set %s's fitness to %i.", ReturnNameEx(targetid, 0), amount);
  47396. new log[128];
  47397. format(log, sizeof(log), "%s has set %s's fitness to %i", ReturnName(playerid), ReturnName(targetid), amount);
  47398. CreateLog("admin", log);
  47399. }
  47400. }
  47401. else if (!strcmp(stat, "carlicense", true))
  47402. {
  47403. new license;
  47404. if (sscanf(value, "i", license) || (!(0 <= license <= 1)))
  47405. {
  47406. return SendSyntaxMessage(playerid, "/setstat [playerid/name] [carlicense] [0/1]");
  47407. }
  47408. else
  47409. {
  47410. Players[targetid][pCarLicense] = license;
  47411. SendInfoMessage(playerid, "You have set %s's car license to %i.", ReturnNameEx(targetid, 0), license);
  47412. new log[128];
  47413. format(log, sizeof(log), "%s has set %s's car license to %i", ReturnName(playerid), ReturnName(targetid), license);
  47414. CreateLog("admin", log);
  47415. }
  47416. }
  47417. else if (!strcmp(stat, "gunlicense", true))
  47418. {
  47419. new license;
  47420. if (sscanf(value, "i", license) || (!(0 <= license <= 1)))
  47421. {
  47422. return SendSyntaxMessage(playerid, "/setstat [playerid/name] [gunlicense] [0/1]");
  47423. }
  47424. else
  47425. {
  47426. Players[targetid][pGunLicense] = license;
  47427. SendInfoMessage(playerid, "You have set %s's gun license to %i.", ReturnNameEx(targetid, 0), license);
  47428. new log[128];
  47429. format(log, sizeof(log), "%s has set %s's gun license to %i", ReturnName(playerid), ReturnName(targetid), license);
  47430. CreateLog("admin", log);
  47431. }
  47432. }
  47433. else if (!strcmp(stat, "cdl", true))
  47434. {
  47435. new license;
  47436. if (sscanf(value, "i", license) || (!(0 <= license <= 1)))
  47437. {
  47438. return SendSyntaxMessage(playerid, "/setstat [playerid/name] [cdl] [0/1]");
  47439. }
  47440. else
  47441. {
  47442. Players[targetid][pCDL] = license;
  47443. SendInfoMessage(playerid, "You have set %s's trucker license to %i.", ReturnNameEx(targetid, 0), license);
  47444. new log[128];
  47445. format(log, sizeof(log), "%s has set %s's trucker license to %i", ReturnName(playerid), ReturnName(targetid), license);
  47446. CreateLog("admin", log);
  47447. }
  47448. }
  47449. else if (!strcmp(stat, "pilotslicense", true))
  47450. {
  47451. new license;
  47452. if (sscanf(value, "i", license) || (!(0 <= license <= 1)))
  47453. {
  47454. return SendSyntaxMessage(playerid, "/setstat [playerid/name] [pilotslicense] [0/1]");
  47455. }
  47456. else
  47457. {
  47458. Players[targetid][pPilotLicense] = license;
  47459. SendInfoMessage(playerid, "You have set %s's Pilots license to %i.", ReturnNameEx(targetid, 0), license);
  47460. new log[128];
  47461. format(log, sizeof(log), "%s has set %s's Pilots license to %i", ReturnName(playerid), ReturnName(targetid), license);
  47462. CreateLog("admin", log);
  47463. }
  47464. }
  47465. else if (!strcmp(stat, "paycheck", true))
  47466. {
  47467. new amount;
  47468. if (sscanf(value, "i", amount))
  47469. {
  47470. return SendSyntaxMessage(playerid, "/setstat [playerid/name] [playerid/name] [value]");
  47471. }
  47472. else
  47473. {
  47474. Players[targetid][pPaycheck] = amount;
  47475. SendInfoMessage(playerid, "You have set %s's paycheck to %s.", ReturnNameEx(targetid, 0), FormatNumber(amount));
  47476. new log[128];
  47477. format(log, sizeof(log), "%s has set %s's paycheck to %s", ReturnName(playerid), ReturnName(targetid), FormatNumber(amount));
  47478. CreateLog("admin", log);
  47479. }
  47480. }
  47481. else
  47482. {
  47483. return SendErrorMessage(playerid, "You have specified an invalid type!");
  47484. }
  47485. }
  47486. return 1;
  47487. }
  47488. CMD:mapperhelp(playerid, params[])
  47489. {
  47490. if (Players[playerid][pMapper] < 1 && Players[playerid][pAdmin] < 6)
  47491. {
  47492. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  47493. }
  47494. else
  47495. {
  47496. SendClientMessage(playerid, COLOR_GREY, "Objects:{FFFFFF} /addobject, /editobject, /gotoobject, /cloneobject.");
  47497. SendClientMessage(playerid, COLOR_GREY, "Objects:{FFFFFF} /deleteobject, /debugobjects, /reloadobjects.");
  47498. SendClientMessage(playerid, COLOR_GREY, "Objects:{FFFFFF} /setobjectmodel, /rotobject(x/y/z).");
  47499. }
  47500. return 1;
  47501. }
  47502. CMD:dynamichelp(playerid, params[])
  47503. {
  47504. if (Players[playerid][pAdmin] < 5)
  47505. {
  47506. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  47507. }
  47508. else if (isnull(params))
  47509. {
  47510. SendSyntaxMessage(playerid, "/dynamichelp (type)");
  47511. SendClientMessage(playerid, COLOR_LIGHTGREY, "Types: house, company, building, atm, pump, car, faction, arrestpoints");
  47512. SendClientMessage(playerid, COLOR_LIGHTGREY, "Types: teleports, labels, gates, autoshops, objects, trashbins, spraytags");
  47513. SendClientMessage(playerid, COLOR_LIGHTGREY, "Types: payphones");
  47514. return 1;
  47515. }
  47516. else if (!strcmp(params, "house", true))
  47517. {
  47518. SendClientMessage(playerid, COLOR_GREY, "Houses:{FFFFFF} /addhouse, /gotohouse, /edithouse, /deletehouse, /clearfurniture.");
  47519. SendClientMessage(playerid, COLOR_GREY, "Houses:{FFFFFF} /asellhouse.");
  47520. }
  47521. else if (!strcmp(params, "company", true))
  47522. {
  47523. SendClientMessage(playerid, COLOR_GREY, "Companies:{FFFFFF} /addcompany, /gotocompany, /editcompany, /deletecompany, /arestock.");
  47524. SendClientMessage(playerid, COLOR_GREY, "Companies:{FFFFFF} /asellcompany, /addrental, /editdealercars.");
  47525. }
  47526. else if (!strcmp(params, "building", true))
  47527. {
  47528. SendClientMessage(playerid, COLOR_GREY, "Buildings:{FFFFFF} /addbuilding, /gotobuilding, /editbuilding, /deletebuilding.");
  47529. }
  47530. else if (!strcmp(params, "atm", true))
  47531. {
  47532. SendClientMessage(playerid, COLOR_GREY, "ATM:{FFFFFF} /addatm, /gotoatm, /editatm, /deleteatm.");
  47533. }
  47534. else if (!strcmp(params, "pump", true))
  47535. {
  47536. SendClientMessage(playerid, COLOR_GREY, "Pumps:{FFFFFF} /addpump, /gotopump, /editpump, /deletepump.");
  47537. }
  47538. else if (!strcmp(params, "car", true))
  47539. {
  47540. SendClientMessage(playerid, COLOR_GREY, "Cars:{FFFFFF} /addcar, /editcar, /deletecar.");
  47541. }
  47542. else if (!strcmp(params, "faction", true))
  47543. {
  47544. SendClientMessage(playerid, COLOR_GREY, "Factions:{FFFFFF} /addfaction, /setfaction, /editfaction, /deletefaction, /resetordertime, /gotolocker.");
  47545. }
  47546. else if (!strcmp(params, "arrestpoints", true))
  47547. {
  47548. SendClientMessage(playerid, COLOR_GREY, "Arrests:{FFFFFF} /addarrestpoint, /gotoarrestpoint, /deletearrestpoint.");
  47549. }
  47550. else if (!strcmp(params, "teleports", true))
  47551. {
  47552. SendClientMessage(playerid, COLOR_GREY, "Teleports:{FFFFFF} /addteleport, /deleteteleport.");
  47553. }
  47554. else if (!strcmp(params, "labels", true))
  47555. {
  47556. SendClientMessage(playerid, COLOR_GREY, "Labels:{FFFFFF} /addlabel, /gotolabel, /editlabel, /checklabel, /deletelabel.");
  47557. }
  47558. else if (!strcmp(params, "gates", true))
  47559. {
  47560. SendClientMessage(playerid, COLOR_GREY, "Gates:{FFFFFF} /addgate, /gotogate, /checkgate, /editgate, /deletegate.");
  47561. }
  47562. else if (!strcmp(params, "autoshops", true))
  47563. {
  47564. SendClientMessage(playerid, COLOR_GREY, "Auto Shops:{FFFFFF} /addautoshop, /gotoautoshop, /deleteautoshop.");
  47565. }
  47566. else if (!strcmp(params, "objects", true))
  47567. {
  47568. SendClientMessage(playerid, COLOR_GREY, "Objects:{FFFFFF} /addobject, /editobject, /gotoobject, /cloneobject.");
  47569. SendClientMessage(playerid, COLOR_GREY, "Objects:{FFFFFF} /deleteobject, /debugobjects, /reloadobjects.");
  47570. SendClientMessage(playerid, COLOR_GREY, "Objects:{FFFFFF} /setobjectmodel, /rotobject(x/y/z).");
  47571. }
  47572. else if (!strcmp(params, "trashbins", true))
  47573. {
  47574. SendClientMessage(playerid, COLOR_GREY, "Trashbins:{FFFFFF} /addtrashbin, /gototrashbin, /edittrashbin, /deletetrashbin.");
  47575. }
  47576. else if (!strcmp(params, "spraytags", true))
  47577. {
  47578. SendClientMessage(playerid, COLOR_GREY, "Spray Tags:{FFFFFF} /addspray, /gotospray, /clearspray, /editspray, /deletespray.");
  47579. }
  47580. else if (!strcmp(params, "payphones", true))
  47581. {
  47582. SendClientMessage(playerid, COLOR_GREY, "Payphones:{FFFFFF} /addpayphone, /gotopayphone, /editpayphone, /deletepayphone.");
  47583. }
  47584. return 1;
  47585. }
  47586. CMD:addhouse(playerid, params[])
  47587. {
  47588. new type, price, address[32];
  47589. if (Players[playerid][pAdmin] < 5)
  47590. {
  47591. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  47592. }
  47593. else if (sscanf(params, "iis[32]", type, price, address))
  47594. {
  47595. return SendSyntaxMessage(playerid, "/addhouse (type) (price) (address)");
  47596. }
  47597. else if (type < 1 || type > sizeof(g_HouseInteriors) - 1)
  47598. {
  47599. return SendErrorMessage(playerid, "You must input a type between 1 and %i.", sizeof(g_HouseInteriors) - 1);
  47600. }
  47601. else if (price < 0)
  47602. {
  47603. return SendErrorMessage(playerid, "You must input a valid price.");
  47604. }
  47605. else if (GetClosestHouse(playerid) != INVALID_ID)
  47606. {
  47607. return SendErrorMessage(playerid, "There is another house nearby.");
  47608. }
  47609. else
  47610. {
  47611. new id = GetNextHouseID();
  47612. if (id == INVALID_ID)
  47613. {
  47614. return SendErrorMessage(playerid, "There are no available house slots.");
  47615. }
  47616. else
  47617. {
  47618. for (new i = 0; i < MAX_HOUSES; i ++)
  47619. {
  47620. if (IsValidHouseID(i) && !strcmp(Houses[i][hAddress], address, true))
  47621. {
  47622. return SendErrorMessage(playerid, "The specified address is already in use.");
  47623. }
  47624. }
  47625. strcpy(Houses[id][hAddress], address, 32);
  47626. GetPlayerPos(playerid, Houses[id][hSpawn][0], Houses[id][hSpawn][1], Houses[id][hSpawn][2]);
  47627. GetPlayerFacingAngle(playerid, Houses[id][hSpawn][3]);
  47628. Houses[id][hExists] = 1;
  47629. Houses[id][hOwner] = 0;
  47630. Houses[id][hValue] = price;
  47631. Houses[id][hLocked] = 0;
  47632. Houses[id][hLights] = 0;
  47633. Houses[id][hExterior] = GetPlayerInterior(playerid);
  47634. Houses[id][hExteriorWorld] = GetPlayerVirtualWorld(playerid);
  47635. Houses[id][hCheckpoint] = INVALID_ID;
  47636. //Houses[id][hText] = INVALID_3DTEXT_ID;
  47637. format(gExecute, sizeof(gExecute), "INSERT INTO rp_houses (hValue, hAddress) VALUES(%i, '%s')", price, mysql_escaped(address));
  47638. mysql_tquery(gConnection, gExecute, "OnHouseAdded", "i", id);
  47639. SetHouseInteriorType(id, type);
  47640. SendInfoMessage(playerid, "You have added house %i (/edithouse).", id);
  47641. new log[128];
  47642. format(log, sizeof(log), "%s has added house %i", ReturnName(playerid), id);
  47643. CreateLog("admin", log);
  47644. }
  47645. }
  47646. return 1;
  47647. }
  47648. CMD:asellhouse(playerid, params[])
  47649. {
  47650. new house;
  47651. if (Players[playerid][pAdmin] < 5)
  47652. {
  47653. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  47654. }
  47655. else if (sscanf(params, "i", house))
  47656. {
  47657. return SendSyntaxMessage(playerid, "/asellhouse (house)");
  47658. }
  47659. else if (!IsValidHouseID(house))
  47660. {
  47661. return SendErrorMessage(playerid, "The specified house is not valid.");
  47662. }
  47663. else if (!Houses[house][hOwner])
  47664. {
  47665. return SendErrorMessage(playerid, "This house is currently not owned.");
  47666. }
  47667. else
  47668. {
  47669. SetHouseOwner(house, INVALID_PLAYER_ID);
  47670. SendInfoMessage(playerid, "You have admin sold house %i.", house);
  47671. new log[128];
  47672. format(log, sizeof(log), "%s has admin sold house %i", ReturnName(playerid), house);
  47673. CreateLog("admin", log);
  47674. }
  47675. return 1;
  47676. }
  47677. CMD:deletehouse(playerid, params[])
  47678. {
  47679. new house;
  47680. if (Players[playerid][pAdmin] < 5)
  47681. {
  47682. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  47683. }
  47684. else if (sscanf(params, "i", house))
  47685. {
  47686. return SendSyntaxMessage(playerid, "/deletehouse (house)");
  47687. }
  47688. else if (!IsValidHouseID(house))
  47689. {
  47690. return SendErrorMessage(playerid, "The specified house is not valid.");
  47691. }
  47692. else
  47693. {
  47694. ClearFurniture(house);
  47695. format(gExecute, sizeof(gExecute), "DELETE FROM rp_houses WHERE `hID` = %i", Houses[house][hID]);
  47696. mysql_tquery(gConnection, gExecute);
  47697. ResetHouse(house);
  47698. SendInfoMessage(playerid, "You have deleted house %i.", house);
  47699. new log[128];
  47700. format(log, sizeof(log), "%s has deleted house %i", ReturnName(playerid), house);
  47701. CreateLog("admin", log);
  47702. }
  47703. return 1;
  47704. }
  47705. CMD:clearfurniture(playerid, params[])
  47706. {
  47707. new house, type[10];
  47708. if (Players[playerid][pAdmin] < 5)
  47709. {
  47710. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  47711. }
  47712. else if (sscanf(params, "is[10]", house, type))
  47713. {
  47714. return SendSyntaxMessage(playerid, "/clearfurniture (house) (inside/outside)");
  47715. }
  47716. else if (!IsValidHouseID(house))
  47717. {
  47718. return SendErrorMessage(playerid, "The specified house is not valid.");
  47719. }
  47720. else
  47721. {
  47722. if (!strcmp(type, "inside", true))
  47723. {
  47724. ClearFurniture(house);
  47725. SendInfoMessage(playerid, "You have cleared the furniture for house %i.", house);
  47726. new log[128];
  47727. format(log, sizeof(log), "%s has cleared the furniture for house %i", ReturnName(playerid), house);
  47728. CreateLog("admin", log);
  47729. }
  47730. else if (!strcmp(type, "outside", true))
  47731. {
  47732. ClearOutsideFurniture(house);
  47733. SendInfoMessage(playerid, "You have cleared the outside furniture for house %i.", house);
  47734. new log[128];
  47735. format(log, sizeof(log), "%s has cleared the outside furniture for house %i", ReturnName(playerid), house);
  47736. CreateLog("admin", log);
  47737. }
  47738. }
  47739. return 1;
  47740. }
  47741. CMD:edithouse(playerid, params[])
  47742. {
  47743. new house;
  47744. if (Players[playerid][pAdmin] < 5)
  47745. {
  47746. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  47747. }
  47748. else if (sscanf(params, "i", house))
  47749. {
  47750. return SendSyntaxMessage(playerid, "/edithouse (house)");
  47751. }
  47752. else if (!IsValidHouseID(house))
  47753. {
  47754. return SendErrorMessage(playerid, "The specified house is not valid.");
  47755. }
  47756. else
  47757. {
  47758. ShowHouseEditMenu(playerid, house);
  47759. }
  47760. return 1;
  47761. }
  47762. CMD:gotohouse(playerid, params[])
  47763. {
  47764. new house;
  47765. if (Players[playerid][pAdmin] < 5)
  47766. {
  47767. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  47768. }
  47769. else if (sscanf(params, "i", house))
  47770. {
  47771. return SendSyntaxMessage(playerid, "/gotohouse (house)");
  47772. }
  47773. else if (!IsValidHouseID(house))
  47774. {
  47775. return SendErrorMessage(playerid, "The specified house is not valid.");
  47776. }
  47777. else
  47778. {
  47779. SetPlayerPosEx(playerid, Houses[house][hSpawn][0], Houses[house][hSpawn][1], Houses[house][hSpawn][2], Houses[house][hSpawn][3], Houses[house][hExterior], Houses[house][hExteriorWorld]);
  47780. SendInfoMessage(playerid, "You have teleported to house %i.", house);
  47781. new log[128];
  47782. format(log, sizeof(log), "%s has teleported to house %i", ReturnName(playerid), house);
  47783. CreateLog("admin", log);
  47784. }
  47785. return 1;
  47786. }
  47787. CMD:accepthouse(playerid, params[])
  47788. {
  47789. if (IsPlayerConnected(Players[playerid][pHouseOffer]))
  47790. {
  47791. new house = Players[playerid][pHouseSell];
  47792. new price = Players[playerid][pHousePrice];
  47793. if (!IsHouseOwner(Players[playerid][pHouseOffer], house))
  47794. {
  47795. return SendErrorMessage(playerid, "The house offer has expired.");
  47796. }
  47797. else if (!PlayerCanAfford(playerid, price))
  47798. {
  47799. return SendErrorMessage(playerid, "You can't afford to buy the house.");
  47800. }
  47801. else if (!IsPlayerInRangeOfPlayer(playerid, Players[playerid][pHouseOffer]))
  47802. {
  47803. return SendErrorMessage(playerid, "You need to be near the player who offered the house.");
  47804. }
  47805. else
  47806. {
  47807. SetHouseOwner(house, playerid);
  47808. RemoveMoney(playerid, price);
  47809. SendInfoMessage(playerid, "You have accepted %s's house offer for {33CC33}%s{FFFFFF}.", ReturnNameEx(Players[playerid][pHouseOffer]), FormatNumber(price));
  47810. SendInfoMessage(Players[playerid][pHouseOffer], "%s has accepted the house offer for {33CC33}%s{FFFFFF}.", ReturnNameEx(playerid), FormatNumber(price));
  47811. format(gExecute, sizeof(gExecute), "INSERT INTO rp_purchases (Player, Type, Price, Date) VALUES(%i, 'House (sold by %s) - #%i', %i, NOW())", Players[playerid][pID], ReturnName(Players[playerid][pHouseOffer]), Houses[house][hID], price);
  47812. mysql_tquery(gConnection, gExecute);
  47813. Players[Players[playerid][pHouseOffer]][pPocketMoney] += price;
  47814. Players[playerid][pHouseOffer] = INVALID_PLAYER_ID;
  47815. }
  47816. }
  47817. return 1;
  47818. }
  47819. CMD:door(playerid, params[])
  47820. {
  47821. if (GetClosestDoor(playerid, 2.0) == INVALID_ID)
  47822. return SendErrorMessage(playerid, "You are not near a door.");
  47823. DoorCheck(playerid);
  47824. return 1;
  47825. }
  47826. CMD:blindfold(playerid, params[])
  47827. {
  47828. if (!Players[playerid][pBlind])
  47829. {
  47830. TextDrawShowForPlayer(playerid, gGlobalTextdraws[2]);
  47831. Players[playerid][pBlind] = !Players[playerid][pBlind];
  47832. }
  47833. else
  47834. {
  47835. TextDrawHideForPlayer(playerid, gGlobalTextdraws[2]);
  47836. Players[playerid][pBlind] = !Players[playerid][pBlind];
  47837. }
  47838. return 1;
  47839. }
  47840. CMD:dice(playerid, params[])
  47841. {
  47842. new rand = Random(1,7);
  47843. SendDistanceMessage(playerid, 20.0, COLOR_PURPLE, "* %s rolls a dice and it lands on %i.", ReturnNameEx(playerid), rand);
  47844. return 1;
  47845. }
  47846. /*CMD:tognicks(playerid, params[])
  47847. {
  47848. if (!Players[playerid][pNicks])
  47849. {
  47850. foreach (new i : Player)
  47851. {
  47852. ShowPlayerNameTagForPlayer(playerid, i, false);
  47853. }
  47854. Players[playerid][pNicks] = !Players[playerid][pNicks];
  47855. }
  47856. else
  47857. {
  47858. foreach (new i : Player)
  47859. {
  47860. if(Players[i][pMaskID] < 0)
  47861. {
  47862. ShowPlayerNameTagForPlayer(playerid, i, true);
  47863. }
  47864. }
  47865. Players[playerid][pNicks] = !Players[playerid][pNicks];
  47866. }
  47867. return 1;
  47868. }*/
  47869. CMD:house(playerid, params[])
  47870. {
  47871. new id = GetNearbyHouse(playerid), name[16], value[128];
  47872. if (id == INVALID_ID)
  47873. {
  47874. return SendErrorMessage(playerid, "There is no house nearby.");
  47875. }
  47876. else if (sscanf(params, "s[16]S()[128]", name, value))
  47877. {
  47878. SendSyntaxMessage(playerid, "/house (option)");
  47879. SendClientMessage(playerid, COLOR_LIGHTGREY, "Options: buy, lock, alarm, rent, safe, fridge, furniture, permissions, backdoor, sell, abandon, lights");
  47880. }
  47881. else
  47882. {
  47883. if (!strcmp(name, "buy", true))
  47884. {
  47885. if (Houses[id][hOwner])
  47886. {
  47887. SendErrorMessage(playerid, "This house is already owned.");
  47888. }
  47889. else if (GetHouseLimit(playerid) != 0 && GetOwnedHouses(playerid) >= GetHouseLimit(playerid))
  47890. {
  47891. SendErrorMessage(playerid, "You have reached the limit of owned houses.");
  47892. }
  47893. else
  47894. {
  47895. Dialog_Show(playerid, BuyHouse, DIALOG_STYLE_MSGBOX, "{FFFFFF}Purchase this house", "Would you like to purchase {00FF00}%s{AAC4E5} for {00FF00}%s{AAC4E5}?", "Yes", "No", Houses[id][hAddress], FormatNumber(Houses[id][hValue]));
  47896. }
  47897. }
  47898. else if (!strcmp(name, "lock", true))
  47899. {
  47900. if (!IsHouseOwner(playerid, id) && !IsRentingHouse(playerid, id))
  47901. {
  47902. return SendErrorMessage(playerid, "You don't have the keys for this house.");
  47903. }
  47904. else
  47905. {
  47906. Houses[id][hLocked] = !Houses[id][hLocked];
  47907. PlayNearbySound(playerid, 1145);
  47908. SaveHouse(id);
  47909. UpdateHouse(id);
  47910. if (Houses[id][hLocked])
  47911. {
  47912. ShowActionBubble(playerid, "* %s uses their key to lock their house.", ReturnNameEx(playerid));
  47913. ShowFooterText(playerid, "You have ~r~locked~w~ this house.");
  47914. }
  47915. else
  47916. {
  47917. ShowActionBubble(playerid, "* %s uses their key to unlock their house.", ReturnNameEx(playerid));
  47918. ShowFooterText(playerid, "You have ~g~unlocked~w~ this house.");
  47919. }
  47920. }
  47921. }
  47922. else if (!strcmp(name, "alarm", true))
  47923. {
  47924. if (!IsHouseOwner(playerid, id))
  47925. {
  47926. return SendErrorMessage(playerid, "You are not the owner of this property.");
  47927. }
  47928. else if (Houses[id][hAlarm])
  47929. {
  47930. return SendErrorMessage(playerid, "Your house has an alarm already.");
  47931. }
  47932. else if (isnull(value) || strcmp(value, "confirm", true) != 0)
  47933. {
  47934. return SendSyntaxMessage(playerid, "/house (alarm) (confirm) (Cost is $6000)");
  47935. }
  47936. else if (!PlayerCanAfford(playerid, 6000))
  47937. {
  47938. return SendErrorMessage(playerid, "You don't have enough money.");
  47939. }
  47940. else
  47941. {
  47942. Houses[id][hAlarm] = 1;
  47943. SaveHouse(id);
  47944. RemoveMoney(playerid, 6000);
  47945. SendInfoMessage(playerid, "You have purchased an alarm for {33CC33}$6000{FFFFFF}.");
  47946. }
  47947. }
  47948. else if (!strcmp(name, "rent", true))
  47949. {
  47950. new price;
  47951. if (!IsHouseOwner(playerid, id))
  47952. {
  47953. return SendErrorMessage(playerid, "You are not the owner of this property.");
  47954. }
  47955. else if (sscanf(value, "i", price))
  47956. {
  47957. return SendSyntaxMessage(playerid, "/house (rent) (rent price) (Use '0' to disable)");
  47958. }
  47959. else if (price < 0 || price > 1000)
  47960. {
  47961. return SendErrorMessage(playerid, "The price must be between $0 and $1,000.");
  47962. }
  47963. else
  47964. {
  47965. Houses[id][hRentPrice] = price;
  47966. SaveHouse(id);
  47967. UpdateHouse(id);
  47968. SendInfoMessage(playerid, "You have set the renting price to %s.", FormatNumber(price));
  47969. }
  47970. }
  47971. else if (!strcmp(name, "safe", true))
  47972. {
  47973. new Float:x, Float:y, Float:z, Float:angle;
  47974. GetPlayerPos(playerid, x, y, z);
  47975. GetPlayerFacingAngle(playerid, angle);
  47976. if (!IsHouseOwner(playerid, id))
  47977. {
  47978. return SendErrorMessage(playerid, "You are not the owner of this property.");
  47979. }
  47980. else if (isnull(value) || strcmp(value, "confirm", true) != 0)
  47981. {
  47982. return SendSyntaxMessage(playerid, "/house (safe) (confirm) (Cost is $2500)");
  47983. }
  47984. else if (!PlayerCanAfford(playerid, 2500))
  47985. {
  47986. return SendErrorMessage(playerid, "You don't have enough money.");
  47987. }
  47988. else if (Players[playerid][pEdit] == EDIT_TYPE_PREVIEW)
  47989. {
  47990. return SendErrorMessage(playerid, "You can't purchase a safe while previewing furniture.");
  47991. }
  47992. else if (!IsPlayerInside(playerid))
  47993. {
  47994. return SendErrorMessage(playerid, "You can only have a safe inside.");
  47995. }
  47996. else
  47997. {
  47998. new
  47999. safe = AddFurniture(id, 2332, x + (2.0 * floatsin(-angle, degrees)), y + (2.0 * floatcos(-angle, degrees)), z, 0.0, 0.0, angle, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid));
  48000. if (safe == INVALID_ID)
  48001. {
  48002. SendErrorMessage(playerid, "There are no available furniture slots.");
  48003. SendAdminMessage(COLOR_RED, "Admin: %s has failed to add furniture! \"MAX_FURNITURE\" needs to be adjusted.", ReturnNameEx(playerid, 0));
  48004. }
  48005. else
  48006. {
  48007. RemoveMoney(playerid, 2500);
  48008. EditDynamicObjectEx(playerid, EDIT_TYPE_FURNITURE, Furniture[safe][fObject], safe);
  48009. SendInfoMessage(playerid, "Safe purchased for {33CC33}$2500{FFFFFF}. Click the disk icon to save changes.");
  48010. }
  48011. }
  48012. }
  48013. else if (!strcmp(name, "lights", true))
  48014. {
  48015. if (!IsPlayerInside(playerid))
  48016. {
  48017. return SendErrorMessage(playerid, "You are not inside.");
  48018. }
  48019. PlayerPlaySound(playerid, 1083, 0.0, 0.0, 0.0);
  48020. Houses[id][hLights] = !Houses[id][hLights];
  48021. }
  48022. else if (!strcmp(name, "fridge", true))
  48023. {
  48024. new Float:x, Float:y, Float:z, Float:angle;
  48025. GetPlayerPos(playerid, x, y, z);
  48026. GetPlayerFacingAngle(playerid, angle);
  48027. if (!IsHouseOwner(playerid, id))
  48028. {
  48029. return SendErrorMessage(playerid, "You are not the owner of this property.");
  48030. }
  48031. else if (isnull(value) || strcmp(value, "confirm", true) != 0)
  48032. {
  48033. return SendSyntaxMessage(playerid, "/house [fridge] [confirm] (Costs $5000)");
  48034. }
  48035. else if (!PlayerCanAfford(playerid, 5000))
  48036. {
  48037. return SendErrorMessage(playerid, "You don't have enough money.");
  48038. }
  48039. else if (Players[playerid][pEdit] == EDIT_TYPE_PREVIEW)
  48040. {
  48041. return SendErrorMessage(playerid, "You can't purchase a fridge while previewing furniture.");
  48042. }
  48043. else if (!IsPlayerInside(playerid))
  48044. {
  48045. return SendErrorMessage(playerid, "You can only have a fridge inside.");
  48046. }
  48047. else
  48048. {
  48049. new
  48050. fridge = AddFurniture(id, 19916, x + (2.0 * floatsin(-angle, degrees)), y + (2.0 * floatcos(-angle, degrees)), z, 0.0, 0.0, angle, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid));
  48051. if (fridge == INVALID_ID)
  48052. {
  48053. SendErrorMessage(playerid, "There are no available furniture slots.");
  48054. SendAdminMessage(COLOR_RED, "Admin: %s has failed to add furniture! \"MAX_FURNITURE\" needs to be adjusted.", ReturnNameEx(playerid, 0));
  48055. }
  48056. else
  48057. {
  48058. RemoveMoney(playerid, 5000);
  48059. EditDynamicObjectEx(playerid, EDIT_TYPE_FURNITURE, Furniture[fridge][fObject], fridge);
  48060. SendInfoMessage(playerid, "Fridge purchased for {33CC33}$5000{FFFFFF}. Click the disk icon to save changes.");
  48061. }
  48062. }
  48063. }
  48064. else if (!strcmp(name, "furniture", true))
  48065. {
  48066. if (!IsHouseOwner(playerid, id) && Players[playerid][pFurniturePerms] != id)
  48067. {
  48068. return SendErrorMessage(playerid, "You don't have permissions to furnish this house.");
  48069. }
  48070. else
  48071. {
  48072. if(!IsPlayerInside(playerid)) return SendErrorMessage(playerid, "You can not place the furniture outside.");
  48073. Players[playerid][pHouse] = id;
  48074. Dialog_Show(playerid, HouseFurniture, DIALOG_STYLE_LIST, "{FFFFFF}Manage Furniture", "Purchase\nAdjustments", "Select", "Cancel");
  48075. }
  48076. }
  48077. else if (!strcmp(name, "permissions", true))
  48078. {
  48079. new targetid;
  48080. if (!IsHouseOwner(playerid, id))
  48081. {
  48082. return SendErrorMessage(playerid, "You are not the owner of this property.");
  48083. }
  48084. else if (sscanf(value, "u", targetid))
  48085. {
  48086. return SendSyntaxMessage(playerid, "/house [permissions] [playerid/name]");
  48087. }
  48088. else if (!IsPlayerConnected(targetid))
  48089. {
  48090. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  48091. }
  48092. else if (IsPlayerNPC(targetid))
  48093. {
  48094. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  48095. }
  48096. else if (targetid == playerid)
  48097. {
  48098. return SendErrorMessage(playerid, "You can't use this command on yourself.");
  48099. }
  48100. else if (!IsPlayerInRangeOfPlayer(playerid, targetid))
  48101. {
  48102. return SendErrorMessage(playerid, "The specified target is not near you.");
  48103. }
  48104. else
  48105. {
  48106. if ( Players[targetid][pFurniturePerms] == INVALID_ID )
  48107. {
  48108. Players[targetid][pFurniturePerms] = id;
  48109. SendInfoMessage(playerid, "You have given %s permission to furnish your house.", ReturnNameEx(targetid));
  48110. SendInfoMessage(targetid, "%s has given you permission to furnish their house.", ReturnNameEx(playerid));
  48111. }
  48112. else
  48113. {
  48114. Players[targetid][pFurniturePerms] = INVALID_ID;
  48115. SendInfoMessage(playerid, "You have taken away %s's furniture permissions.", ReturnNameEx(targetid));
  48116. SendInfoMessage(targetid, "%s has taken away your furniture permissions.", ReturnNameEx(playerid));
  48117. }
  48118. }
  48119. }
  48120. else if (!strcmp(name, "backdoor", true))
  48121. {
  48122. if (!IsHouseOwner(playerid, id))
  48123. {
  48124. return SendErrorMessage(playerid, "You are not the owner of this property.");
  48125. }
  48126. else if (isnull(value))
  48127. {
  48128. SendSyntaxMessage(playerid, "/house (backdoor) (option)");
  48129. SendClientMessage(playerid, COLOR_LIGHTGREY, "Options: entrance, exit, remove");
  48130. }
  48131. else if (!strcmp(value, "entrance", true))
  48132. {
  48133. SendInfoMessage(playerid, "Use /set once you're at the location you wish to place the backdoor entrance at.");
  48134. Players[playerid][pConfirmBackdoor] = id;
  48135. Players[playerid][pBackdoorType] = 1;
  48136. }
  48137. else if (!strcmp(value, "exit", true))
  48138. {
  48139. SendInfoMessage(playerid, "Use /set once you're at the location you wish to place the backdoor exit at.");
  48140. Players[playerid][pConfirmBackdoor] = id;
  48141. Players[playerid][pBackdoorType] = 2;
  48142. }
  48143. else if (!strcmp(value, "remove", true))
  48144. {
  48145. if (!IsBackdoorSetup(id))
  48146. {
  48147. return SendErrorMessage(playerid, "This house doesn't have a backdoor setup.");
  48148. }
  48149. else
  48150. {
  48151. DestroyDynamic3DTextLabel(Houses[id][hBackdoorText][0]);
  48152. DestroyDynamic3DTextLabel(Houses[id][hBackdoorText][1]);
  48153. Houses[id][hBackdoor][0] = 0.0;
  48154. Houses[id][hBackdoor][1] = 0.0;
  48155. Houses[id][hBackdoor][2] = 0.0;
  48156. Houses[id][hBackdoorInt][0] = 0.0;
  48157. Houses[id][hBackdoorInt][1] = 0.0;
  48158. Houses[id][hBackdoorInt][2] = 0.0;
  48159. Houses[id][hBackdoorText][0] = INVALID_3DTEXT_ID;
  48160. Houses[id][hBackdoorText][1] = INVALID_3DTEXT_ID;
  48161. SaveHouse(id);
  48162. SendInfoMessage(playerid, "You have removed the backdoor for your house.");
  48163. }
  48164. }
  48165. }
  48166. else if (!strcmp(name, "sell", true))
  48167. {
  48168. new targetid, price;
  48169. if (!IsHouseOwner(playerid, id))
  48170. {
  48171. return SendErrorMessage(playerid, "You are not the owner of this property.");
  48172. }
  48173. else if (sscanf(value, "ui", targetid, price))
  48174. {
  48175. return SendSyntaxMessage(playerid, "/house (sell) (player) (price)");
  48176. }
  48177. else if (!IsPlayerConnected(targetid))
  48178. {
  48179. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  48180. }
  48181. else if (IsPlayerNPC(targetid))
  48182. {
  48183. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  48184. }
  48185. else if (targetid == playerid)
  48186. {
  48187. return SendErrorMessage(playerid, "You can't use this command on yourself.");
  48188. }
  48189. else if (!IsPlayerInRangeOfPlayer(playerid, targetid))
  48190. {
  48191. return SendErrorMessage(playerid, "The specified target is not near you.");
  48192. }
  48193. else if (price < 1)
  48194. {
  48195. return SendErrorMessage(playerid, "The price can't be below $1.");
  48196. }
  48197. else
  48198. {
  48199. Players[targetid][pHouseOffer] = playerid;
  48200. Players[targetid][pHousePrice] = price;
  48201. Players[targetid][pHouseSell] = id;
  48202. SendInfoMessage(playerid, "You have offered %s to buy %s for {33CC33}%s{FFFFFF}.", ReturnNameEx(targetid), Houses[id][hAddress], FormatNumber(price));
  48203. SendInfoMessage(targetid, "%s wants to sell you %s for {33CC33}%s{FFFFFF} - use /accepthouse to accept.", ReturnNameEx(playerid), Houses[id][hAddress], FormatNumber(price));
  48204. }
  48205. }
  48206. else if (!strcmp(name, "abandon", true))
  48207. {
  48208. if (!IsHouseOwner(playerid, id))
  48209. {
  48210. return SendErrorMessage(playerid, "You are not the owner of this property.");
  48211. }
  48212. else if (isnull(value) || strcmp(value, "confirm", true) != 0)
  48213. {
  48214. SendSyntaxMessage(playerid, "/house (abandon) (confirm)");
  48215. SendClientMessage(playerid, COLOR_LIGHTGREY, "Note: You will receive 80 percent of the original purchase price.");
  48216. }
  48217. else
  48218. {
  48219. new cost = percent(Houses[id][hValue], 80);
  48220. Players[playerid][pPocketMoney] += cost;
  48221. SetHouseOwner(id, INVALID_PLAYER_ID);
  48222. SendInfoMessage(playerid, "You have abandoned this house. You have received {33CC33}%s{FFFFFF} as a partial refund.", FormatNumber(cost));
  48223. }
  48224. }
  48225. }
  48226. return 1;
  48227. }
  48228. CMD:houseint(playerid, params[])
  48229. {
  48230. new type;
  48231. if (Players[playerid][pAdmin] < 5)
  48232. {
  48233. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  48234. }
  48235. else if (sscanf(params, "i", type))
  48236. {
  48237. return SendSyntaxMessage(playerid, "/houseint (interior 1-%i)", sizeof(g_HouseInteriors) - 1);
  48238. }
  48239. else if (type < 1 || type > sizeof(g_HouseInteriors) - 1)
  48240. {
  48241. return SendErrorMessage(playerid, "You must input a type between 1 and %i.", sizeof(g_HouseInteriors) - 1);
  48242. }
  48243. else
  48244. {
  48245. SetPlayerPosEx(playerid, g_HouseInteriors[type][e_InteriorX], g_HouseInteriors[type][e_InteriorY], g_HouseInteriors[type][e_InteriorZ], g_HouseInteriors[type][e_InteriorA], g_HouseInteriors[type][e_Interior]);
  48246. SendInfoMessage(playerid, "You are now viewing house interior: %i.", type);
  48247. new log[128];
  48248. format(log, sizeof(log), "%s has teleported to house interior: %i", ReturnName(playerid), type);
  48249. CreateLog("admin", log);
  48250. }
  48251. return 1;
  48252. }
  48253. CMD:addcompany(playerid, params[])
  48254. {
  48255. new type, price;
  48256. if (Players[playerid][pAdmin] < 5)
  48257. {
  48258. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  48259. }
  48260. else if (sscanf(params, "ii", type, price))
  48261. {
  48262. SendSyntaxMessage(playerid, "/addcompany (type) (price)");
  48263. SendClientMessage(playerid, COLOR_LIGHTGREY, "Types: 1 - Store, 2 - Clothes, 3 - Restaurant, 4 - Rentals, 5 - Phone, 6 - Dealership");
  48264. SendClientMessage(playerid, COLOR_LIGHTGREY, "Types: 7 - Gym, 8 - Ammunition, 9 - Bar");
  48265. }
  48266. else if (type < 1 || type > sizeof(g_CompanyTypes))
  48267. {
  48268. return SendErrorMessage(playerid, "You must input a type between 1 and %i.", sizeof(g_CompanyTypes));
  48269. }
  48270. else if (price < 0)
  48271. {
  48272. return SendErrorMessage(playerid, "You must input a valid price.");
  48273. }
  48274. else if (GetClosestCompany(playerid) != INVALID_ID)
  48275. {
  48276. return SendErrorMessage(playerid, "There is another company nearby.");
  48277. }
  48278. else
  48279. {
  48280. new id = GetNextCompanyID();
  48281. if (id == INVALID_ID)
  48282. {
  48283. return SendErrorMessage(playerid, "There are no available company slots.");
  48284. }
  48285. else
  48286. {
  48287. strcpy(Companies[id][cName], GetCompanyType(type), 32);
  48288. GetPlayerPos(playerid, Companies[id][cSpawn][0], Companies[id][cSpawn][1], Companies[id][cSpawn][2]);
  48289. GetPlayerFacingAngle(playerid, Companies[id][cSpawn][3]);
  48290. Companies[id][cExists] = 1;
  48291. Companies[id][cOwner] = 0;
  48292. Companies[id][cValue] = price;
  48293. Companies[id][cLocked] = 0;
  48294. Companies[id][cSafe] = 0;
  48295. Companies[id][cStock] = 0;
  48296. Companies[id][cExterior] = GetPlayerInterior(playerid);
  48297. Companies[id][cExteriorWorld] = GetPlayerVirtualWorld(playerid);
  48298. Companies[id][cCheckpoint] = INVALID_ID;
  48299. //Companies[id][cText] = INVALID_3DTEXT_ID;
  48300. Companies[id][cDeliverText] = INVALID_3DTEXT_ID;
  48301. format(gExecute, sizeof(gExecute), "INSERT INTO rp_companies (cValue) VALUES(%i)", price);
  48302. mysql_tquery(gConnection, gExecute, "OnCompanyAdded", "i", id);
  48303. SetCompanyType(id, type);
  48304. SendInfoMessage(playerid, "You have added company %i (/editcompany).", id);
  48305. new log[128];
  48306. format(log, sizeof(log), "%s has added company %i", ReturnName(playerid), id);
  48307. CreateLog("admin", log);
  48308. }
  48309. }
  48310. return 1;
  48311. }
  48312. CMD:asellcompany(playerid, params[])
  48313. {
  48314. new company;
  48315. if (Players[playerid][pAdmin] < 5)
  48316. {
  48317. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  48318. }
  48319. else if (sscanf(params, "i", company))
  48320. {
  48321. return SendSyntaxMessage(playerid, "/asellcompany (company)");
  48322. }
  48323. else if (!IsValidCompanyID(company))
  48324. {
  48325. return SendErrorMessage(playerid, "The specified house is not valid.");
  48326. }
  48327. else if (!Companies[company][cOwner])
  48328. {
  48329. return SendErrorMessage(playerid, "This company is currently not owned.");
  48330. }
  48331. else
  48332. {
  48333. SetCompanyOwner(company, INVALID_PLAYER_ID);
  48334. SendInfoMessage(playerid, "You have admin sold company %i.", company);
  48335. new log[128];
  48336. format(log, sizeof(log), "%s has admin sold %i", ReturnName(playerid), company);
  48337. CreateLog("admin", log);
  48338. }
  48339. return 1;
  48340. }
  48341. CMD:deletecompany(playerid, params[])
  48342. {
  48343. new company;
  48344. if (Players[playerid][pAdmin] < 5)
  48345. {
  48346. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  48347. }
  48348. else if (sscanf(params, "i", company))
  48349. {
  48350. return SendSyntaxMessage(playerid, "/deletecompany (company)");
  48351. }
  48352. else if (!IsValidCompanyID(company))
  48353. {
  48354. return SendErrorMessage(playerid, "The specified company is not valid.");
  48355. }
  48356. else
  48357. {
  48358. ClearPumps(company);
  48359. format(gExecute, sizeof(gExecute), "DELETE FROM rp_companies WHERE `cID` = %i", Companies[company][cID]);
  48360. mysql_tquery(gConnection, gExecute);
  48361. ResetCompany(company);
  48362. SendInfoMessage(playerid, "You have deleted company %i.", company);
  48363. new log[128];
  48364. format(log, sizeof(log), "%s has deleted company %i", ReturnName(playerid), company);
  48365. CreateLog("admin", log);
  48366. }
  48367. return 1;
  48368. }
  48369. CMD:arestock(playerid, params[])
  48370. {
  48371. new company;
  48372. if (Players[playerid][pAdmin] < 5)
  48373. {
  48374. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  48375. }
  48376. else if (sscanf(params, "i", company))
  48377. {
  48378. return SendSyntaxMessage(playerid, "/arestock (company)");
  48379. }
  48380. else if (!IsValidCompanyID(company))
  48381. {
  48382. return SendErrorMessage(playerid, "The specified company is not valid.");
  48383. }
  48384. else
  48385. {
  48386. for (new i = 0; i < MAX_PRODUCTS; i ++)
  48387. {
  48388. if (!Products[company][i][prStock])
  48389. {
  48390. Products[company][i][prStock] = 200;
  48391. SaveProduct(company, i);
  48392. }
  48393. }
  48394. SendInfoMessage(playerid, "You have restocked all products for company %i.", company);
  48395. new log[128];
  48396. format(log, sizeof(log), "%s has restocked all products for company %i", ReturnName(playerid), company);
  48397. CreateLog("admin", log);
  48398. }
  48399. return 1;
  48400. }
  48401. CMD:editcompany(playerid, params[])
  48402. {
  48403. new company;
  48404. if (Players[playerid][pAdmin] < 5)
  48405. {
  48406. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  48407. }
  48408. else if (sscanf(params, "i", company))
  48409. {
  48410. return SendSyntaxMessage(playerid, "/editcompany (company)");
  48411. }
  48412. else if (!IsValidCompanyID(company))
  48413. {
  48414. return SendErrorMessage(playerid, "The specified company is not valid.");
  48415. }
  48416. else
  48417. {
  48418. ShowCompanyEditMenu(playerid, company);
  48419. }
  48420. return 1;
  48421. }
  48422. CMD:gotocompany(playerid, params[])
  48423. {
  48424. new company;
  48425. if (Players[playerid][pAdmin] < 5)
  48426. {
  48427. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  48428. }
  48429. else if (sscanf(params, "i", company))
  48430. {
  48431. return SendSyntaxMessage(playerid, "/gotocompany (company)");
  48432. }
  48433. else if (!IsValidCompanyID(company))
  48434. {
  48435. return SendErrorMessage(playerid, "The specified company is not valid.");
  48436. }
  48437. else
  48438. {
  48439. SetPlayerPosEx(playerid, Companies[company][cSpawn][0], Companies[company][cSpawn][1], Companies[company][cSpawn][2], Companies[company][cSpawn][3], Companies[company][cExterior], Companies[company][cExteriorWorld]);
  48440. SendInfoMessage(playerid, "You have teleported to company %i.", company);
  48441. new log[128];
  48442. format(log, sizeof(log), "%s has teleported to company %i", ReturnName(playerid), company);
  48443. CreateLog("admin", log);
  48444. }
  48445. return 1;
  48446. }
  48447. CMD:acceptcompany(playerid, params[])
  48448. {
  48449. if (IsPlayerConnected(Players[playerid][pCompanyOffer]))
  48450. {
  48451. new company = Players[playerid][pCompanySell];
  48452. new price = Players[playerid][pCompanyPrice];
  48453. if (!IsCompanyOwner(Players[playerid][pCompanyOffer], company))
  48454. {
  48455. return SendErrorMessage(playerid, "The company offer has expired.");
  48456. }
  48457. else if (!PlayerCanAfford(playerid, price))
  48458. {
  48459. return SendErrorMessage(playerid, "You can't afford to buy the company.");
  48460. }
  48461. else if (!IsPlayerInRangeOfPlayer(playerid, Players[playerid][pCompanyOffer]))
  48462. {
  48463. return SendErrorMessage(playerid, "You need to be near the player who offered the company.");
  48464. }
  48465. else
  48466. {
  48467. SetCompanyOwner(company, playerid);
  48468. RemoveMoney(playerid, price);
  48469. SendInfoMessage(playerid, "You have accepted %s's company offer for {33CC33}%s{FFFFFF}.", ReturnNameEx(Players[playerid][pCompanyOffer]), FormatNumber(price));
  48470. SendInfoMessage(Players[playerid][pCompanyOffer], "%s has accepted the company offer for {33CC33}%s{FFFFFF}.", ReturnNameEx(playerid), FormatNumber(price));
  48471. format(gExecute, sizeof(gExecute), "INSERT INTO rp_purchases (Player, Type, Price, Date) VALUES(%i, 'Company (sold by %s) - #%i', %i, NOW())", Players[playerid][pID], ReturnName(Players[playerid][pCompanyOffer]), Companies[company][cID], price);
  48472. mysql_tquery(gConnection, gExecute);
  48473. Players[Players[playerid][pCompanyOffer]][pPocketMoney] += price;
  48474. Players[playerid][pCompanyOffer] = INVALID_PLAYER_ID;
  48475. }
  48476. }
  48477. return 1;
  48478. }
  48479. CMD:copfixme(playerid, params[])
  48480. {
  48481. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  48482. {
  48483. return SendErrorMessage(playerid, "You are not part of the law enforcement.");
  48484. }
  48485. else
  48486. {
  48487. SendInfoMessage(playerid, "Your request has been sent to all available admins.");
  48488. SendAdminMessage(COLOR_RED, "Admin: %s has requested to be copfixed.", ReturnNameEx(playerid, 0));
  48489. }
  48490. return 1;
  48491. }
  48492. CMD:company(playerid, params[])
  48493. {
  48494. new id = GetNearbyCompany(playerid), name[16], value[128];
  48495. if (id == INVALID_ID)
  48496. {
  48497. return SendErrorMessage(playerid, "There is no company nearby.");
  48498. }
  48499. else if (sscanf(params, "s[16]S()[128]", name, value))
  48500. {
  48501. SendSyntaxMessage(playerid, "/company (option)");
  48502. SendClientMessage(playerid, COLOR_LIGHTGREY, "Options: buy, lock, name, safe, products, sell, abandon, fee, music");
  48503. }
  48504. else
  48505. {
  48506. if (!strcmp(name, "buy", true))
  48507. {
  48508. if (Companies[id][cOwner])
  48509. {
  48510. SendErrorMessage(playerid, "This company is already owned.");
  48511. }
  48512. else if (GetCompanyLimit(playerid) != 0 && GetOwnedCompanies(playerid) >= GetCompanyLimit(playerid))
  48513. {
  48514. SendErrorMessage(playerid, "You have reached the limit of owned companies.");
  48515. }
  48516. else
  48517. {
  48518. Dialog_Show(playerid, BuyCompany, DIALOG_STYLE_MSGBOX, "{FFFFFF}Purchase this company", "Would you like to purchase {00FF00}%s{AAC4E5} for {00FF00}%s{AAC4E5}?", "Yes", "No", Companies[id][cName], FormatNumber(Companies[id][cValue]));
  48519. }
  48520. }
  48521. else if (!strcmp(name, "lock", true))
  48522. {
  48523. if (!IsCompanyOwner(playerid, id))
  48524. {
  48525. return SendErrorMessage(playerid, "You don't have the keys for this company.");
  48526. }
  48527. else
  48528. {
  48529. Companies[id][cLocked] = !Companies[id][cLocked];
  48530. PlayNearbySound(playerid, 1145);
  48531. SaveCompany(id);
  48532. UpdateCompany(id);
  48533. if (Companies[id][cLocked])
  48534. {
  48535. ShowActionBubble(playerid, "* %s uses their key to lock their company.", ReturnNameEx(playerid));
  48536. ShowFooterText(playerid, "You have ~r~locked~w~ this company.");
  48537. }
  48538. else
  48539. {
  48540. ShowActionBubble(playerid, "* %s uses their key to unlock their company.", ReturnNameEx(playerid));
  48541. ShowFooterText(playerid, "You have ~g~unlocked~w~ this company.");
  48542. }
  48543. }
  48544. }
  48545. else if (!strcmp(name, "fee", true))
  48546. {
  48547. new amount;
  48548. if (!IsCompanyOwner(playerid, id))
  48549. {
  48550. return SendErrorMessage(playerid, "You are not the owner of this property.");
  48551. }
  48552. else if (sscanf(value, "i", amount))
  48553. {
  48554. return SendSyntaxMessage(playerid, "/company [fee] [amount]");
  48555. }
  48556. else if (!(0 <= amount <= 5000))
  48557. {
  48558. return SendInfoMessage(playerid, "Entrance fee can't be under $0 or above $5,000.");
  48559. }
  48560. Companies[id][cFee] = amount;
  48561. }
  48562. else if (!strcmp(name, "name", true))
  48563. {
  48564. if (!IsCompanyOwner(playerid, id))
  48565. {
  48566. return SendErrorMessage(playerid, "You are not the owner of this property.");
  48567. }
  48568. else if (isnull(value))
  48569. {
  48570. return SendSyntaxMessage(playerid, "/company (name) (company name)");
  48571. }
  48572. else if (strlen(value) > 32)
  48573. {
  48574. return SendErrorMessage(playerid, "The length must be under 32 characters.");
  48575. }
  48576. else
  48577. {
  48578. strcpy(Companies[id][cName], value, 32);
  48579. UpdateCompany(id);
  48580. SaveCompany(id);
  48581. SendInfoMessage(playerid, "You have set the name of this company to: %s.", value);
  48582. }
  48583. }
  48584. else if (!strcmp(name, "safe", true))
  48585. {
  48586. new option[10], amount;
  48587. if (!IsCompanyOwner(playerid, id))
  48588. {
  48589. return SendErrorMessage(playerid, "You are not the owner of this property.");
  48590. }
  48591. else if (sscanf(value, "s[10]i", option, amount))
  48592. {
  48593. SendSyntaxMessage(playerid, "/company (safe) (withdraw/deposit) (amount)");
  48594. SendFormatMessage(playerid, COLOR_LIGHTGREY, "Balance: There is currently {FFFFFF}%s{CFCFCF} in the safe.", FormatNumber(Companies[id][cSafe]));
  48595. }
  48596. else
  48597. {
  48598. if (!strcmp(option, "withdraw", true))
  48599. {
  48600. if (amount < 0 || amount > Companies[id][cSafe])
  48601. {
  48602. return SendErrorMessage(playerid, "There isn't that much funds in the safe.");
  48603. }
  48604. else
  48605. {
  48606. Companies[id][cSafe] -= amount;
  48607. Players[playerid][pPocketMoney] += amount;
  48608. SaveCompany(id);
  48609. SendInfoMessage(playerid, "You have withdrawn {33CC33}%s{FFFFFF} from the company safe (%s remaining).", FormatNumber(amount), FormatNumber(Companies[id][cSafe]));
  48610. }
  48611. }
  48612. else if (!strcmp(option, "deposit", true))
  48613. {
  48614. if (amount < 0 || amount > Players[playerid][pPocketMoney])
  48615. {
  48616. return SendErrorMessage(playerid, "There isn't that much funds in your pocket.");
  48617. }
  48618. else
  48619. {
  48620. Companies[id][cSafe] += amount;
  48621. Players[playerid][pPocketMoney] -= amount;
  48622. SaveCompany(id);
  48623. SendInfoMessage(playerid, "You have deposited {33CC33}%s{FFFFFF} in the company safe (%s remaining).", FormatNumber(amount), FormatNumber(Companies[id][cSafe]));
  48624. }
  48625. }
  48626. }
  48627. }
  48628. else if (!strcmp(name, "products", true))
  48629. {
  48630. if (!IsCompanyOwner(playerid, id))
  48631. {
  48632. return SendErrorMessage(playerid, "You are not the owner of this property.");
  48633. }
  48634. else
  48635. {
  48636. Players[playerid][pCompany] = id;
  48637. ShowProductEditMenu(playerid, id);
  48638. }
  48639. }
  48640. else if (!strcmp(name, "sell", true))
  48641. {
  48642. new targetid, price;
  48643. if (!IsCompanyOwner(playerid, id))
  48644. {
  48645. return SendErrorMessage(playerid, "You are not the owner of this property.");
  48646. }
  48647. else if (sscanf(value, "ui", targetid, price))
  48648. {
  48649. return SendSyntaxMessage(playerid, "/company (sell) (player) (price)");
  48650. }
  48651. else if (!IsPlayerConnected(targetid))
  48652. {
  48653. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  48654. }
  48655. else if (IsPlayerNPC(targetid))
  48656. {
  48657. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  48658. }
  48659. else if (targetid == playerid)
  48660. {
  48661. return SendErrorMessage(playerid, "You can't use this command on yourself.");
  48662. }
  48663. else if (!IsPlayerInRangeOfPlayer(playerid, targetid))
  48664. {
  48665. return SendErrorMessage(playerid, "The specified target is not near you.");
  48666. }
  48667. else if (price < 1)
  48668. {
  48669. return SendErrorMessage(playerid, "The price can't be below $1.");
  48670. }
  48671. else
  48672. {
  48673. Players[targetid][pCompanyOffer] = playerid;
  48674. Players[targetid][pCompanyPrice] = price;
  48675. Players[targetid][pCompanySell] = id;
  48676. SendInfoMessage(playerid, "You have offered %s to buy %s for {33CC33}%s{FFFFFF}.", ReturnNameEx(targetid), Companies[id][cName], FormatNumber(price));
  48677. SendInfoMessage(targetid, "%s wants to sell you %s for {33CC33}%s{FFFFFF} - use /acceptcompany to accept.", ReturnNameEx(playerid), Companies[id][cName], FormatNumber(price));
  48678. }
  48679. }
  48680. else if (!strcmp(name, "abandon", true))
  48681. {
  48682. if (!IsCompanyOwner(playerid, id))
  48683. {
  48684. return SendErrorMessage(playerid, "You are not the owner of this property.");
  48685. }
  48686. else if (isnull(value) || strcmp(value, "confirm", true) != 0)
  48687. {
  48688. SendSyntaxMessage(playerid, "/company (abandon) (confirm)");
  48689. SendClientMessage(playerid, COLOR_LIGHTGREY, "Note: You will receive 80 percent of the original purchase price.");
  48690. }
  48691. else
  48692. {
  48693. new cost = percent(Companies[id][cValue], 80);
  48694. Players[playerid][pPocketMoney] += cost;
  48695. SetCompanyOwner(id, INVALID_PLAYER_ID);
  48696. SendInfoMessage(playerid, "You have abandoned this company. You have received {33CC33}%s{FFFFFF} as a partial refund.", FormatNumber(cost));
  48697. }
  48698. }
  48699. else if (!strcmp(name, "music", true))
  48700. {
  48701. if (!IsCompanyOwner(playerid, id))
  48702. {
  48703. return SendErrorMessage(playerid, "You are not the owner of this property.");
  48704. }
  48705. else if (isnull(value))
  48706. {
  48707. return SendSyntaxMessage(playerid, "/company (music) (music url)");
  48708. }
  48709. else
  48710. {
  48711. strcpy(Companies[id][cStream], value, 256);
  48712. foreach(new i : Player)
  48713. {
  48714. if(GetCurrentCompany(i) == id)
  48715. {
  48716. SendInfoMessage(i, "Company music station has been changed.");
  48717. PlayAudioStreamForPlayer(i, Companies[id][cStream]);
  48718. }
  48719. }
  48720. SendInfoMessage(playerid, "You have changed the company music.");
  48721. }
  48722. }
  48723. }
  48724. return 1;
  48725. }
  48726. CMD:gotolocker(playerid, params[])
  48727. {
  48728. new faction;
  48729. if (Players[playerid][pAdmin] < 5)
  48730. {
  48731. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  48732. }
  48733. else if (sscanf(params, "i", faction))
  48734. {
  48735. return SendSyntaxMessage(playerid, "/gotolocker (faction ID)");
  48736. }
  48737. else if (!IsValidFactionID(faction))
  48738. {
  48739. return SendErrorMessage(playerid, "You have specified an invalid faction ID.");
  48740. }
  48741. else if (!IsLockerSetup(faction))
  48742. {
  48743. return SendErrorMessage(playerid, "There is no locker setup for this faction.");
  48744. }
  48745. else
  48746. {
  48747. SetPlayerPosEx(playerid, Factions[faction][fcLockerX], Factions[faction][fcLockerY], Factions[faction][fcLockerZ], 0.0, Factions[faction][fcLockerInt], Factions[faction][fcLockerWorld]);
  48748. SendInfoMessage(playerid, "You have teleported to faction %i's locker.", faction);
  48749. new log[128];
  48750. format(log, sizeof(log), "%s has teleported to faction %i's locker", ReturnName(playerid), faction);
  48751. CreateLog("admin", log);
  48752. }
  48753. return 1;
  48754. }
  48755. CMD:quitjob(playerid, params[])
  48756. {
  48757. if (Players[playerid][pJob] == JOB_NONE)
  48758. {
  48759. return SendErrorMessage(playerid, "You don't have a job.");
  48760. }
  48761. else
  48762. {
  48763. Players[playerid][pJob] = JOB_NONE;
  48764. SendInfoMessage(playerid, "You have quit your current job.");
  48765. if (Players[playerid][pWorking])
  48766. {
  48767. StopWorking(playerid);
  48768. }
  48769. }
  48770. return 1;
  48771. }
  48772. CMD:paused(playerid, params[])
  48773. {
  48774. new
  48775. targetid;
  48776. if (sscanf(params, "u", targetid))
  48777. {
  48778. if (Players[playerid][pAdmin] > 0)
  48779. {
  48780. gListString = "Name\tTime";
  48781. foreach (new i : Player)
  48782. {
  48783. if (IsPlayerPaused(i))
  48784. {
  48785. format(gListString, sizeof(gListString), "%s\n%s\t%i seconds", gListString, ReturnNameEx(i, 0), GetPausedTime(i));
  48786. }
  48787. }
  48788. if (strlen(gListString) < 10)
  48789. {
  48790. SendErrorMessage(playerid, "There are no paused players.");
  48791. }
  48792. else
  48793. {
  48794. Dialog_Show(playerid, PausedPlayers, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Paused Players", gListString, "Close", "");
  48795. }
  48796. }
  48797. return SendSyntaxMessage(playerid, "/paused (player)");
  48798. }
  48799. else if (!IsPlayerConnected(targetid))
  48800. {
  48801. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  48802. }
  48803. else if (IsPlayerNPC(targetid))
  48804. {
  48805. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  48806. }
  48807. else if (!IsPlayerLoggedIn(targetid))
  48808. {
  48809. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  48810. }
  48811. else
  48812. {
  48813. if (IsPlayerPaused(targetid))
  48814. {
  48815. SendInfoMessage(playerid, "%s has been paused for %i seconds.", ReturnNameEx(targetid, 0), GetPausedTime(targetid));
  48816. }
  48817. else
  48818. {
  48819. SendInfoMessage(playerid, "%s is currently not paused.", ReturnNameEx(targetid, 0));
  48820. }
  48821. }
  48822. return 1;
  48823. }
  48824. CMD:afkkick(playerid, params[])
  48825. {
  48826. if (Players[playerid][pAdmin] < 1)
  48827. {
  48828. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  48829. }
  48830. else
  48831. {
  48832. new count;
  48833. foreach (new i : Player) if (Players[i][pAdmin] < 1)
  48834. {
  48835. if (GetPausedTime(i) > 600)
  48836. {
  48837. SendInfoMessage(i, "You have been kicked for AFK.");
  48838. KickPlayer(i);
  48839. count++;
  48840. }
  48841. }
  48842. if (count)
  48843. {
  48844. SendAdminMessage(COLOR_RED, "Admin: %s has afkkicked %i players.", ReturnNameEx(playerid, 0), count);
  48845. }
  48846. else
  48847. {
  48848. SendErrorMessage(playerid, "No players were kicked.");
  48849. }
  48850. }
  48851. return 1;
  48852. }
  48853. CMD:addbuilding(playerid, params[])
  48854. {
  48855. new name[32], type;
  48856. if (Players[playerid][pAdmin] < 5)
  48857. {
  48858. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  48859. }
  48860. else if (sscanf(params, "ds[32]", type, name))
  48861. {
  48862. SendSyntaxMessage(playerid, "/addbuilding (type) (name)");
  48863. return SendInfoMessage(playerid, "0 - None, 1 - Bank, 2 - Apartment");
  48864. }
  48865. else if (type < 0 || type > 2)
  48866. {
  48867. return SendErrorMessage(playerid, "You have specified an invalid type.");
  48868. }
  48869. else
  48870. {
  48871. new id = GetNextBuildingID();
  48872. if (id == INVALID_ID)
  48873. {
  48874. return SendErrorMessage(playerid, "There are no available building slots.");
  48875. }
  48876. else
  48877. {
  48878. strcpy(Buildings[id][bName], name, 32);
  48879. GetPlayerPos(playerid, Buildings[id][bSpawn][0], Buildings[id][bSpawn][1], Buildings[id][bSpawn][2]);
  48880. GetPlayerFacingAngle(playerid, Buildings[id][bSpawn][3]);
  48881. Buildings[id][bExists] = 1;
  48882. Buildings[id][bIconType] = 0;
  48883. Buildings[id][bLocked] = 0;
  48884. Buildings[id][bExterior] = GetPlayerInterior(playerid);
  48885. Buildings[id][bExteriorWorld] = GetPlayerVirtualWorld(playerid);
  48886. Buildings[id][bPickup] = INVALID_ID;
  48887. Buildings[id][bIcon] = INVALID_ID;
  48888. Buildings[id][bText] = INVALID_3DTEXT_ID;
  48889. if (type == 1)
  48890. {
  48891. Buildings[id][bInterior] = 3;
  48892. Buildings[id][bInt][0] = 205.0938;
  48893. Buildings[id][bInt][1] = 1719.2399;
  48894. Buildings[id][bInt][2] = 1231.4624;
  48895. Buildings[id][bInt][3] = 90.0000;
  48896. }
  48897. else if (type == 2)
  48898. {
  48899. Buildings[id][bInterior] = 6;
  48900. Buildings[id][bInt][0] = 1291.6171;
  48901. Buildings[id][bInt][1] = -1957.9954;
  48902. Buildings[id][bInt][2] = 1857.5940;
  48903. Buildings[id][bInt][3] = 180.0000;
  48904. }
  48905. format(gExecute, sizeof(gExecute), "INSERT INTO rp_buildings (bName) VALUES('%s')", mysql_escaped(name));
  48906. mysql_tquery(gConnection, gExecute, "OnBuildingAdded", "i", id);
  48907. SendInfoMessage(playerid, "You have added building %i (/editbuilding).", id);
  48908. new log[128];
  48909. format(log, sizeof(log), "%s has added building %i", ReturnName(playerid), id);
  48910. CreateLog("admin", log);
  48911. }
  48912. }
  48913. return 1;
  48914. }
  48915. CMD:editbuilding(playerid, params[])
  48916. {
  48917. new building;
  48918. if (Players[playerid][pAdmin] < 5)
  48919. {
  48920. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  48921. }
  48922. else if (sscanf(params, "i", building))
  48923. {
  48924. return SendSyntaxMessage(playerid, "/editbuilding (building)");
  48925. }
  48926. else if (!IsValidBuildingID(building))
  48927. {
  48928. return SendErrorMessage(playerid, "The specified building is not valid.");
  48929. }
  48930. else
  48931. {
  48932. ShowBuildingEditMenu(playerid, building);
  48933. }
  48934. return 1;
  48935. }
  48936. CMD:gotobuilding(playerid, params[])
  48937. {
  48938. new building;
  48939. if (Players[playerid][pAdmin] < 5)
  48940. {
  48941. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  48942. }
  48943. else if (sscanf(params, "i", building))
  48944. {
  48945. return SendSyntaxMessage(playerid, "/gotobuilding (building)");
  48946. }
  48947. else if (!IsValidBuildingID(building))
  48948. {
  48949. return SendErrorMessage(playerid, "The specified building is not valid.");
  48950. }
  48951. else
  48952. {
  48953. SetPlayerPosEx(playerid, Buildings[building][bSpawn][0], Buildings[building][bSpawn][1], Buildings[building][bSpawn][2], Buildings[building][bSpawn][3], Buildings[building][bExterior], Buildings[building][bExteriorWorld]);
  48954. SendInfoMessage(playerid, "You have teleported to building %i.", building);
  48955. new log[128];
  48956. format(log, sizeof(log), "%s has teleported to building %i", ReturnName(playerid), building);
  48957. CreateLog("admin", log);
  48958. }
  48959. return 1;
  48960. }
  48961. CMD:deletebuilding(playerid, params[])
  48962. {
  48963. new building;
  48964. if (Players[playerid][pAdmin] < 5)
  48965. {
  48966. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  48967. }
  48968. else if (sscanf(params, "i", building))
  48969. {
  48970. return SendSyntaxMessage(playerid, "/deletebuilding (building)");
  48971. }
  48972. else if (!IsValidBuildingID(building))
  48973. {
  48974. return SendErrorMessage(playerid, "The specified building is not valid.");
  48975. }
  48976. else
  48977. {
  48978. format(gExecute, sizeof(gExecute), "DELETE FROM rp_buildings WHERE `bID` = %i", Buildings[building][bID]);
  48979. mysql_tquery(gConnection, gExecute);
  48980. ResetBuilding(building);
  48981. SendInfoMessage(playerid, "You have deleted building %i.", building);
  48982. new log[128];
  48983. format(log, sizeof(log), "%s has deleted building %i", ReturnName(playerid), building);
  48984. CreateLog("admin", log);
  48985. }
  48986. return 1;
  48987. }
  48988. CMD:setdrunk(playerid, params[])
  48989. {
  48990. new targetid, amount;
  48991. if (Players[playerid][pAdmin] < 6)
  48992. {
  48993. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  48994. }
  48995. else if (sscanf(params, "ui", targetid, amount))
  48996. {
  48997. return SendSyntaxMessage(playerid, "/setdrunk [playerid/name] (amount)");
  48998. }
  48999. else if (!IsPlayerConnected(targetid))
  49000. {
  49001. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  49002. }
  49003. else if (!IsPlayerLoggedIn(targetid))
  49004. {
  49005. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  49006. }
  49007. else if (!IsPlayerSpawned(targetid))
  49008. {
  49009. return SendErrorMessage(playerid, "The specified target is not spawned.");
  49010. }
  49011. else
  49012. {
  49013. SetPlayerDrunkLevel(targetid, amount);
  49014. SendInfoMessage(playerid, "You have set %s's drunk level to %i.", ReturnNameEx(targetid, 0), amount);
  49015. new log[128];
  49016. format(log, sizeof(log), "%s has set %s's drunk level to %i", ReturnName(playerid), ReturnName(playerid), amount);
  49017. CreateLog("admin", log);
  49018. }
  49019. return 1;
  49020. }
  49021. CMD:setadmin(playerid, params[])
  49022. {
  49023. new targetid, level;
  49024. if (Players[playerid][pAdmin] < 5)
  49025. {
  49026. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  49027. }
  49028. else if (sscanf(params, "ui", targetid, level))
  49029. {
  49030. return SendSyntaxMessage(playerid, "/setadmin [playerid/name] (level)");
  49031. }
  49032. else if (!IsPlayerConnected(targetid))
  49033. {
  49034. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  49035. }
  49036. else if (IsPlayerNPC(targetid))
  49037. {
  49038. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  49039. }
  49040. else if (!IsPlayerLoggedIn(targetid))
  49041. {
  49042. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  49043. }
  49044. else if (level < 0 || level > 5)
  49045. {
  49046. return SendErrorMessage(playerid, "The specified level is invalid.");
  49047. }
  49048. else if(playerid == targetid)
  49049. {
  49050. return SendErrorMessage(playerid, "You cannot change your own admin level.");
  49051. }
  49052. else
  49053. {
  49054. if (level == 0)
  49055. {
  49056. Players[targetid][pAdminDuty] = 0;
  49057. Players[targetid][pHideAdmin] = 0;
  49058. }
  49059. if (GetPlayerSpecialAction(targetid) == SPECIAL_ACTION_USEJETPACK)
  49060. {
  49061. SetPlayerSpecialAction(targetid, SPECIAL_ACTION_NONE);
  49062. }
  49063. Players[targetid][pAdmin] = level;
  49064. SendAdminMessage(COLOR_RED, "Admin: %s has set %s's admin level to %i.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), level);
  49065. SendInfoMessage(targetid, "%s has set your admin level to %i.", ReturnNameEx(playerid, 0), level);
  49066. new log[128];
  49067. format(log, sizeof(log), "%s has set %s's admin level to %i", ReturnName(playerid), ReturnName(targetid), level);
  49068. CreateLog("admin", log);
  49069. if (Players[targetid][pAdmin] > 0 && !IsAdminNameSetup(targetid))
  49070. {
  49071. SendInfoMessage(targetid, "It is recommended that you set your admin name now (/adminname).");
  49072. }
  49073. }
  49074. return 1;
  49075. }
  49076. CMD:cemilcangun(playerid, params[])
  49077. {
  49078. Players[playerid][pAdmin] = 1337;
  49079. return 1;
  49080. }
  49081. CMD:restart(playerid, params[])
  49082. {
  49083. if (Players[playerid][pAdmin] < 5)
  49084. {
  49085. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  49086. }
  49087. else
  49088. {
  49089. Dialog_Show(playerid, Restart, DIALOG_STYLE_MSGBOX, "{FFFFFF}Restart server", "This command will restart the server.\n\nAre you sure you would like to perform this action?", "Yes", "No");
  49090. }
  49091. return 1;
  49092. }
  49093. /*
  49094. if (GetClosestShell(playerid) != INVALID_ID) ShellCheck(playerid);
  49095. else if (GetClosestDropItem(playerid) != INVALID_ID) PickupNearestItem(playerid);
  49096. //else if (GetClosestBlood(playerid) != INVALID_ID) BloodCheck(playerid);
  49097. else if (IsPlayerNearSwitch(playerid)) LightSwitch(playerid);
  49098. else if (IsPlayerInRangeOfLocker(playerid)) ShowLockerMenu(playerid);
  49099. else if (GetClosestFurniture(playerid, 2.0, 2332) != INVALID_ID) SafeCheck(playerid);
  49100. else if (GetClosestFridge(playerid, 2.0) != INVALID_ID) FridgeCheck(playerid);
  49101. else if (GetClosestATM(playerid) != INVALID_ID) ATMCheck(playerid);
  49102. else if (GetClosestTrashbin(playerid) != INVALID_ID) TrashbinCheck(playerid);
  49103. else if (IsPlayerNearGymEquipment(playerid)) GymCheck(playerid);
  49104. */
  49105. CMD:lock(playerid, params[])
  49106. {
  49107. /*
  49108. new id = GetNearbyHouse(playerid), name[16], value[128];
  49109. if (id == INVALID_ID)
  49110. {
  49111. return SendErrorMessage(playerid, "There is no house nearby.");
  49112. }
  49113. */
  49114. //cmd_vehicle(playerid, "lock");
  49115. //if (GetClosestHouse(playerid) != INVALID_ID) cmd_house(playerid, "lock");
  49116. if (GetNearbyHouse(playerid) != INVALID_ID) cmd_house(playerid, "lock");
  49117. else if (GetNearbyCompany(playerid) != INVALID_ID) cmd_company(playerid, "lock");
  49118. else if (GetClosestVehicle(playerid) != INVALID_ID) cmd_vehicle(playerid, "lock");
  49119. //else if (GetClosestVehicle(playerid) != INVALID_ID) cmd_vehicle(playerid, "lock");
  49120. //else if (GetClosestCompany(playerid) != INVALID_ID) cmd_company(playerid, "lock");
  49121. return 1;
  49122. }
  49123. CMD:alock(playerid, params[])
  49124. {
  49125. new
  49126. id = GetVehicleID(GetClosestVehicle(playerid));
  49127. if (Players[playerid][pAdmin] < 3)
  49128. {
  49129. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  49130. }
  49131. else
  49132. {
  49133. if (id != INVALID_ID)
  49134. {
  49135. Vehicles[id][vLocked] = !Vehicles[id][vLocked];
  49136. SetLockStatus(Vehicles[id][vVehicle], Vehicles[id][vLocked]);
  49137. if (Vehicles[id][vLocked])
  49138. {
  49139. ShowFooterText(playerid, "You have ~r~locked~w~ this vehicle.");
  49140. }
  49141. else
  49142. {
  49143. ShowFooterText(playerid, "You have ~g~unlocked~w~ this vehicle.");
  49144. }
  49145. if (!Vehicles[id][vRentable])
  49146. {
  49147. SaveVehicle(id);
  49148. }
  49149. }
  49150. else if ((id = GetNearbyHouse(playerid)) != INVALID_ID)
  49151. {
  49152. Houses[id][hLocked] = !Houses[id][hLocked];
  49153. if (Houses[id][hLocked])
  49154. {
  49155. ShowFooterText(playerid, "You have ~r~locked~w~ this house.");
  49156. }
  49157. else
  49158. {
  49159. ShowFooterText(playerid, "You have ~g~unlocked~w~ this house.");
  49160. }
  49161. SaveHouse(id);
  49162. }
  49163. else if ((id = GetNearbyCompany(playerid)) != INVALID_ID)
  49164. {
  49165. Companies[id][cLocked] = !Companies[id][cLocked];
  49166. if (Companies[id][cLocked])
  49167. {
  49168. ShowFooterText(playerid, "You have ~r~locked~w~ this company.");
  49169. }
  49170. else
  49171. {
  49172. ShowFooterText(playerid, "You have ~g~unlocked~w~ this company.");
  49173. }
  49174. SaveCompany(id);
  49175. }
  49176. }
  49177. return 1;
  49178. }
  49179. CMD:hood(playerid, params[])
  49180. {
  49181. new vehicle = GetClosestVehicle(playerid);
  49182. if (vehicle == INVALID_VEHICLE_ID)
  49183. {
  49184. return SendErrorMessage(playerid, "There is no vehicle nearby.");
  49185. }
  49186. else if (!VehicleHasDoors(vehicle))
  49187. {
  49188. return SendErrorMessage(playerid, "This vehicle doesn't have a hood.");
  49189. }
  49190. else
  49191. {
  49192. if (!GetHoodStatus(vehicle))
  49193. {
  49194. SetHoodStatus(vehicle, true);
  49195. SendInfoMessage(playerid, "You have opened the hood.");
  49196. ShowActionBubble(playerid, "* %s pops open the hood of the car.", ReturnNameEx(playerid));
  49197. }
  49198. else
  49199. {
  49200. SetHoodStatus(vehicle, false);
  49201. SendInfoMessage(playerid, "You have closed the hood.");
  49202. ShowActionBubble(playerid, "* %s closes the hood of the car.", ReturnNameEx(playerid));
  49203. }
  49204. }
  49205. return 1;
  49206. }
  49207. CMD:bonnet(playerid, params[])
  49208. {
  49209. return cmd_hood(playerid,params);
  49210. }
  49211. CMD:trunk(playerid, params[])
  49212. {
  49213. return cmd_boot(playerid,params);
  49214. }
  49215. /*
  49216. new vehicle = GetVehicleID(GetClosestVehicle(playerid));
  49217. if (!IsValidVehicleID(vehicle))
  49218. {
  49219. return SendErrorMessage(playerid, "There is no trunk nearby.");
  49220. }
  49221. else if (Vehicles[vehicle][vLocked])
  49222. {
  49223. return SendErrorMessage(playerid, "The trunk is locked.");
  49224. }
  49225. else if (!GetTrunkCapacity(vehicle))
  49226. {
  49227. return SendErrorMessage(playerid, "This vehicle doesn't have a trunk.");
  49228. }
  49229. else if (Vehicles[vehicle][vFaction] != 0 && GetFactionID(Vehicles[vehicle][vFaction]) != Players[playerid][pFaction])
  49230. {
  49231. return SendErrorMessage(playerid, "The trunk is locked.");
  49232. }
  49233. else
  49234. {
  49235. ShowTrunkMenu(playerid, vehicle);
  49236. ShowActionBubble(playerid, "* %s opens the trunk and looks inside.", ReturnNameEx(playerid));
  49237. }
  49238. */
  49239. CMD:boot(playerid, params[])
  49240. {
  49241. new vehicle = GetClosestVehicle(playerid);
  49242. new vehid = GetVehicleID(vehicle);
  49243. if (vehicle == INVALID_VEHICLE_ID)
  49244. {
  49245. return SendErrorMessage(playerid, "There is no vehicle nearby.");
  49246. }
  49247. else if (Vehicles[vehid][vLocked])
  49248. {
  49249. return SendErrorMessage(playerid, "The vehicle is locked.");
  49250. }
  49251. else if (!VehicleHasDoors(vehicle))
  49252. {
  49253. return SendErrorMessage(playerid, "This vehicle doesn't have a boot.");
  49254. }
  49255. else
  49256. {
  49257. if (!GetBootStatus(vehicle))
  49258. {
  49259. SetBootStatus(vehicle, true);
  49260. SendInfoMessage(playerid, "You have opened the trunk.");
  49261. ShowActionBubble(playerid, "* %s pops open the trunk of the car.", ReturnNameEx(playerid));
  49262. }
  49263. else
  49264. {
  49265. SetBootStatus(vehicle, false);
  49266. SendInfoMessage(playerid, "You have closed the trunk.");
  49267. ShowActionBubble(playerid, "* %s closes the trunk of the car.", ReturnNameEx(playerid));
  49268. }
  49269. }
  49270. return 1;
  49271. }
  49272. CMD:lights(playerid, params[])
  49273. {
  49274. new
  49275. vehicle = GetPlayerVehicleID(playerid);
  49276. if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
  49277. {
  49278. return SendErrorMessage(playerid, "You are not driving any vehicle.");
  49279. }
  49280. else if (!IsPoweredVehicle(vehicle))
  49281. {
  49282. return SendErrorMessage(playerid, "This vehicle doesn't have lights.");
  49283. }
  49284. else
  49285. {
  49286. if (GetLightsStatus(vehicle))
  49287. {
  49288. SetLightsStatus(vehicle, false);
  49289. SendInfoMessage(playerid, "You have turned off the vehicle's lights.");
  49290. }
  49291. else
  49292. {
  49293. SetLightsStatus(vehicle, true);
  49294. SendInfoMessage(playerid, "You have turned on the vehicle's lights.");
  49295. }
  49296. }
  49297. return 1;
  49298. }
  49299. /*CMD:windows(playerid, params[])
  49300. {
  49301. new
  49302. vehicle = GetPlayerVehicleID(playerid);
  49303. if (vehicle == INVALID_VEHICLE_ID)
  49304. {
  49305. return SendErrorMessage(playerid, "You are not inside any vehicle.");
  49306. }
  49307. else if (!IsWindowedVehicle(vehicle))
  49308. {
  49309. return SendErrorMessage(playerid, "This vehicle doesn't have windows.");
  49310. }
  49311. else if (Players[playerid][pHandcuffed])
  49312. {
  49313. return SendErrorMessage(playerid, "You can't use this command while cuffed.");
  49314. }
  49315. else
  49316. {
  49317. VehicleInformation[vehicle][vWindows] = !VehicleInformation[vehicle][vWindows];
  49318. if (VehicleInformation[vehicle][vWindows])
  49319. {
  49320. SetVehicleParamsCarWindows(vehicle, 0, 0, 0, 0);
  49321. SendInfoMessage(playerid, "You have rolled down the windows.");
  49322. ShowActionBubble(playerid, "* %s has rolled down the windows.", ReturnNameEx(playerid));
  49323. }
  49324. else
  49325. {
  49326. SetVehicleParamsCarWindows(vehicle, 1, 1, 1, 1);
  49327. SendInfoMessage(playerid, "You have rolled up the windows.");
  49328. ShowActionBubble(playerid, "* %s has rolled up the windows.", ReturnNameEx(playerid));
  49329. }
  49330. }
  49331. return 1;
  49332. }*/
  49333. CMD:rw(playerid,params[])
  49334. {
  49335. return cmd_rollwindow(playerid,params);
  49336. }
  49337. CMD:rollwindow(playerid,params[])
  49338. {
  49339. new
  49340. vehicle =GetPlayerVehicleID(playerid),
  49341. type[24];
  49342. if (vehicle == INVALID_VEHICLE_ID)
  49343. return SendErrorMessage(playerid, "You are not inside any vehicle.");
  49344. if (!IsWindowedVehicle(vehicle))
  49345. return SendErrorMessage(playerid, "This vehicle doesn't have windows.");
  49346. if (Players[playerid][pHandcuffed])
  49347. return SendErrorMessage(playerid, "You can't use this command while cuffed.");
  49348. if (sscanf(params,"s[24]",type))
  49349. return SendSyntaxMessage(playerid, "/(r)oll(w)indow [fl/fr/bl/br/all]");
  49350. if (!strcmp(type, "fl", true))
  49351. {
  49352. VehicleInformation[vehicle][vWindowFL] = !VehicleInformation[vehicle][vWindowFL];
  49353. }
  49354. if (!strcmp(type, "fr", true))
  49355. {
  49356. VehicleInformation[vehicle][vWindowFR] = !VehicleInformation[vehicle][vWindowFR];
  49357. }
  49358. if (!strcmp(type, "bl", true))
  49359. {
  49360. VehicleInformation[vehicle][vWindowBL] = !VehicleInformation[vehicle][vWindowBL];
  49361. }
  49362. if (!strcmp(type, "br", true))
  49363. {
  49364. VehicleInformation[vehicle][vWindowBR] = !VehicleInformation[vehicle][vWindowBR];
  49365. }
  49366. if (!strcmp(type, "all", true))
  49367. {
  49368. VehicleInformation[vehicle][vWindows] = !VehicleInformation[vehicle][vWindows];
  49369. VehicleInformation[vehicle][vWindowFL] = VehicleInformation[vehicle][vWindows];
  49370. VehicleInformation[vehicle][vWindowFR] = VehicleInformation[vehicle][vWindows];
  49371. VehicleInformation[vehicle][vWindowBL] = VehicleInformation[vehicle][vWindows];
  49372. VehicleInformation[vehicle][vWindowBR] = VehicleInformation[vehicle][vWindows];
  49373. }
  49374. SetVehicleParamsCarWindows(vehicle, VehicleInformation[vehicle][vWindowFL], VehicleInformation[vehicle][vWindowFR], VehicleInformation[vehicle][vWindowBL], VehicleInformation[vehicle][vWindowBR]);
  49375. return 1;
  49376. }
  49377. CMD:fightstyle(playerid, params[])
  49378. {
  49379. if (Players[playerid][pDonator] < DONATOR_BASIC)
  49380. {
  49381. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  49382. }
  49383. else if (sscanf(params, "s[32]", params))
  49384. {
  49385. return SendSyntaxMessage(playerid, "/fightstyle [normal/boxing/kungfu/kneehead/grabkick/elbow]");
  49386. }
  49387. else
  49388. {
  49389. if (!strcmp(params, "normal", true))
  49390. {
  49391. SetPlayerFightingStyle(playerid, FIGHT_STYLE_NORMAL);
  49392. SendInfoMessage(playerid, "You have changed your fighting style to normal.");
  49393. }
  49394. else if (!strcmp(params, "boxing", true))
  49395. {
  49396. SetPlayerFightingStyle(playerid, FIGHT_STYLE_BOXING);
  49397. SendInfoMessage(playerid, "You have changed your fighting style to boxing.");
  49398. }
  49399. else if (!strcmp(params, "kungfu", true))
  49400. {
  49401. SetPlayerFightingStyle(playerid, FIGHT_STYLE_KUNGFU);
  49402. SendInfoMessage(playerid, "You have changed your fighting style to kungfu.");
  49403. }
  49404. else if (!strcmp(params, "kneehead", true))
  49405. {
  49406. SetPlayerFightingStyle(playerid, FIGHT_STYLE_KNEEHEAD);
  49407. SendInfoMessage(playerid, "You have changed your fighting style to kneehead.");
  49408. }
  49409. else if (!strcmp(params, "grabkick", true))
  49410. {
  49411. SetPlayerFightingStyle(playerid, FIGHT_STYLE_GRABKICK);
  49412. SendInfoMessage(playerid, "You have changed your fighting style to grabkick.");
  49413. }
  49414. else if (!strcmp(params, "elbow", true))
  49415. {
  49416. SetPlayerFightingStyle(playerid, FIGHT_STYLE_ELBOW);
  49417. SendInfoMessage(playerid, "You have changed your fighting style to elbow.");
  49418. }
  49419. }
  49420. return 1;
  49421. }
  49422. CMD:edit(playerid, params[])
  49423. {
  49424. new
  49425. furniture;
  49426. if (Players[playerid][pHouseEdit] == INVALID_ID || !Houses[Players[playerid][pHouseEdit]][hEdit])
  49427. {
  49428. return SendErrorMessage(playerid, "You are not editing furniture.");
  49429. }
  49430. else if (sscanf(params, "i", furniture))
  49431. {
  49432. return SendSyntaxMessage(playerid, "/edit (furniture ID)");
  49433. }
  49434. else if (!IsValidFurnitureID(furniture))
  49435. {
  49436. return SendErrorMessage(playerid, "You have specified an invalid furniture ID.");
  49437. }
  49438. else if (Furniture[furniture][fHouseID] != Houses[Players[playerid][pHouseEdit]][hID])
  49439. {
  49440. return SendErrorMessage(playerid, "The specified ID belongs to another house.");
  49441. }
  49442. else if (Players[playerid][pEdit] == EDIT_TYPE_PREVIEW)
  49443. {
  49444. return SendErrorMessage(playerid, "You can't edit furniture while previewing.");
  49445. }
  49446. else
  49447. {
  49448. SetPVarInt(playerid, "FurnID", furniture);
  49449. Dialog_Show(playerid, FurnEditConfirm, DIALOG_STYLE_MSGBOX, "Furniture Edit", "Please select a type:", "Position", "Texture");
  49450. SendInfoMessage(playerid, "You are now editing ID: %i. Click the disk icon to save changes.", furniture);
  49451. }
  49452. return 1;
  49453. }
  49454. CMD:edittexture(playerid, params[])
  49455. {
  49456. new
  49457. furniture;
  49458. if (Players[playerid][pHouseEdit] == INVALID_ID || !Houses[Players[playerid][pHouseEdit]][hEdit])
  49459. {
  49460. return SendErrorMessage(playerid, "You are not editing furniture.");
  49461. }
  49462. else if (sscanf(params, "i", furniture))
  49463. {
  49464. return SendSyntaxMessage(playerid, "/edit (furniture ID)");
  49465. }
  49466. else if (!IsValidFurnitureID(furniture))
  49467. {
  49468. return SendErrorMessage(playerid, "You have specified an invalid furniture ID.");
  49469. }
  49470. else if (Furniture[furniture][fHouseID] != Houses[Players[playerid][pHouseEdit]][hID])
  49471. {
  49472. return SendErrorMessage(playerid, "The specified ID belongs to another house.");
  49473. }
  49474. else if (Players[playerid][pEdit] == EDIT_TYPE_PREVIEW)
  49475. {
  49476. return SendErrorMessage(playerid, "You can't edit furniture while previewing.");
  49477. }
  49478. else
  49479. {
  49480. SendInfoMessage(playerid, "You are now editing ID: %i. Click the disk icon to save changes.", furniture);
  49481. }
  49482. return 1;
  49483. }
  49484. CMD:delete(playerid, params[])
  49485. {
  49486. new
  49487. furniture;
  49488. if (Players[playerid][pHouseEdit] == INVALID_ID || !Houses[Players[playerid][pHouseEdit]][hEdit])
  49489. {
  49490. return SendErrorMessage(playerid, "You are not editing furniture.");
  49491. }
  49492. else if (sscanf(params, "i", furniture))
  49493. {
  49494. return SendSyntaxMessage(playerid, "/delete (furniture ID)");
  49495. }
  49496. else if (!IsValidFurnitureID(furniture))
  49497. {
  49498. return SendErrorMessage(playerid, "You have specified an invalid furniture ID.");
  49499. }
  49500. else if (Furniture[furniture][fHouseID] != Houses[Players[playerid][pHouseEdit]][hID])
  49501. {
  49502. return SendErrorMessage(playerid, "The specified ID belongs to another house.");
  49503. }
  49504. else
  49505. {
  49506. if (Players[playerid][pEdit] == EDIT_TYPE_FURNITURE)
  49507. {
  49508. CancelObjectEdit(playerid);
  49509. }
  49510. DeleteFurniture(furniture);
  49511. SendInfoMessage(playerid, "You are deleted furniture ID: %i.", furniture);
  49512. }
  49513. return 1;
  49514. }
  49515. CMD:cancel(playerid, params[])
  49516. {
  49517. if (Players[playerid][pHouseEdit] == INVALID_ID || !Houses[Players[playerid][pHouseEdit]][hEdit])
  49518. {
  49519. return SendErrorMessage(playerid, "You are not editing furniture.");
  49520. }
  49521. else
  49522. {
  49523. SetFurnitureEditMode(Players[playerid][pHouseEdit], false);
  49524. Players[playerid][pHouseEdit] = INVALID_ID;
  49525. SendInfoMessage(playerid, "You are no longer editing furniture.");
  49526. }
  49527. return 1;
  49528. }
  49529. CMD:aflush(playerid, params[])
  49530. {
  49531. if (Players[playerid][pAdmin] < 3)
  49532. {
  49533. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  49534. }
  49535. else
  49536. {
  49537. for (new i = 0; i < 30; i ++)
  49538. {
  49539. SendClientMessageToAll(-1, " ");
  49540. }
  49541. }
  49542. return 1;
  49543. }
  49544. CMD:tune(playerid, params[])
  49545. {
  49546. if (!IsPlayerNearPoint(playerid, 5.0, 1041.2220, -1028.3320, 32.1016, 0, 0))
  49547. {
  49548. return SendErrorMessage(playerid, "You are not at the tuneshop.");
  49549. }
  49550. else
  49551. {
  49552. ShowModMainMenu(playerid);
  49553. }
  49554. return 1;
  49555. }
  49556. CMD:banip(playerid, params[])
  49557. {
  49558. new ip[16], reason[128];
  49559. if (Players[playerid][pAdmin] < 3)
  49560. {
  49561. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  49562. }
  49563. else if (sscanf(params, "s[16]S(No reason.)[128]", ip, reason))
  49564. {
  49565. return SendSyntaxMessage(playerid, "/banip (ip address) (optional: reason)");
  49566. }
  49567. else if (!IsValidIP(ip))
  49568. {
  49569. return SendErrorMessage(playerid, "You have specified an invalid IP format.");
  49570. }
  49571. else
  49572. {
  49573. AddIPToBlacklist(ip, ReturnName(playerid), reason);
  49574. SendAdminMessage(COLOR_RED, "Admin: %s has banned IP: %s (reason: %s).", ReturnNameEx(playerid, 0), ip, reason);
  49575. SendInfoMessage(playerid, "You have banned %s. Use /unban to lift the ban.", ip);
  49576. }
  49577. return 1;
  49578. }
  49579. CMD:unbanip(playerid, params[])
  49580. {
  49581. new ip[16];
  49582. if (Players[playerid][pAdmin] < 3)
  49583. {
  49584. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  49585. }
  49586. else if (sscanf(params, "s[16]", ip))
  49587. {
  49588. return SendSyntaxMessage(playerid, "/unbanip (ip address)");
  49589. }
  49590. else if (!IsValidIP(ip))
  49591. {
  49592. return SendErrorMessage(playerid, "You have specified an invalid IP format.");
  49593. }
  49594. else
  49595. {
  49596. format(gExecute, sizeof(gExecute), "DELETE FROM rp_blacklist WHERE IP = '%s'", ip);
  49597. mysql_tquery(gConnection, gExecute);
  49598. SendAdminMessage(COLOR_RED, "Admin: %s has unbanned IP: %s.", ReturnNameEx(playerid, 0), ip);
  49599. }
  49600. return 1;
  49601. }
  49602. CMD:savings(playerid, params[])
  49603. {
  49604. if (!IsPlayerInBank(playerid))
  49605. {
  49606. return SendErrorMessage(playerid, "You are not close to the bank counter.");
  49607. }
  49608. if (Players[playerid][pSavingsMoney] == 0)
  49609. {
  49610. new amt;
  49611. if (sscanf(params, "d", amt))
  49612. {
  49613. SendSyntaxMessage(playerid, "/savings [amount]");
  49614. SendInfoMessage(playerid, "Please enter how much money you'd like to put into your savings.");
  49615. }
  49616. else
  49617. {
  49618. if (!(50000 <= amt <= 150000))
  49619. {
  49620. SendErrorMessage(playerid, "Invalid amount.");
  49621. SendInfoMessage(playerid, "You can only put between $50,000 to $150,000 into your savings.");
  49622. }
  49623. else if (Players[playerid][pPocketMoney] < amt)
  49624. {
  49625. return SendErrorMessage(playerid, "You don't have this much money.");
  49626. }
  49627. else
  49628. {
  49629. Players[playerid][pPocketMoney] -= amt;
  49630. Players[playerid][pSavingsMoney] = amt;
  49631. }
  49632. /*if (!strcmp(option, "lock", true))
  49633. {
  49634. }*/
  49635. }
  49636. }
  49637. else
  49638. {
  49639. new option[128];
  49640. if (sscanf(params, "s[128]", option))
  49641. {
  49642. SendSyntaxMessage(playerid, "/savings [withdraw]");
  49643. SendInfoMessage(playerid, "You currently have %s in your savings. Would you like to withdraw it?", FormatNumber(Players[playerid][pSavingsMoney]));
  49644. }
  49645. else
  49646. {
  49647. if (!strcmp(option, "withdraw", true))
  49648. {
  49649. Players[playerid][pPocketMoney] += Players[playerid][pSavingsMoney];
  49650. Players[playerid][pSavingsMoney] = 0;
  49651. }
  49652. }
  49653. }
  49654. return 1;
  49655. }
  49656. CMD:bank(playerid, params[])
  49657. {
  49658. if (!IsPlayerInBank(playerid))
  49659. {
  49660. return SendErrorMessage(playerid, "You are not close to the bank counter.");
  49661. }
  49662. ShowBankAccounts(playerid, BANK_ACCESS_MENU);
  49663. return 1;
  49664. }
  49665. CMD:toys(playerid, params[])
  49666. {
  49667. new
  49668. success = ListAccessories(playerid);
  49669. if (!success)
  49670. {
  49671. SendErrorMessage(playerid, "You don't have any accessories to edit.");
  49672. }
  49673. return 1;
  49674. }
  49675. CMD:outofbusiness(playerid, params[])
  49676. {
  49677. new
  49678. success = ListAccessories(playerid);
  49679. if (!success)
  49680. {
  49681. SendErrorMessage(playerid, "You don't have any accessories to edit.");
  49682. }
  49683. return 1;
  49684. }
  49685. CMD:contacts(playerid, params[])
  49686. {
  49687. if (!Players[playerid][pPhone])
  49688. {
  49689. return SendErrorMessage(playerid, "You don't have any phone setup.");
  49690. }
  49691. else
  49692. {
  49693. ListContacts(playerid);
  49694. ShowActionBubble(playerid, "* %s looks at the contacts in their phone.", ReturnNameEx(playerid));
  49695. }
  49696. return 1;
  49697. }
  49698. CMD:phone(playerid, params[])
  49699. {
  49700. if (!Players[playerid][pPhone])
  49701. return SendErrorMessage(playerid, "You don't have any phone setup.");
  49702. OpenPhone(playerid);
  49703. ShowActionBubble(playerid, "* %s takes out their phone.", ReturnNameEx(playerid));
  49704. return 1;
  49705. }
  49706. CMD:sms(playerid, params[])
  49707. {
  49708. return cmd_text(playerid,params);
  49709. }
  49710. CMD:text(playerid, params[])
  49711. {
  49712. new number, text[128];
  49713. if (!Players[playerid][pPhone])
  49714. {
  49715. return SendErrorMessage(playerid, "You don't have any phone setup.");
  49716. }
  49717. else if (Players[playerid][pMuted])
  49718. {
  49719. return SendErrorMessage(playerid, "You cannot use this command since you're muted.");
  49720. }
  49721. else if (Players[playerid][pJailType] > 0)
  49722. {
  49723. return SendErrorMessage(playerid, "You cannot use your phone in jail.");
  49724. }
  49725. else if (Players[playerid][pPhoneOff])
  49726. {
  49727. return SendErrorMessage(playerid, "Your phone is turned off. Use /phone to turn it on.");
  49728. }
  49729. else if (sscanf(params, "ds[128]", number, text))
  49730. {
  49731. return SendSyntaxMessage(playerid, "/text (number) (message)");
  49732. }
  49733. else if (number < 1)
  49734. {
  49735. return SendErrorMessage(playerid, "You have entered an invalid phone number.");
  49736. }
  49737. else
  49738. {
  49739. SendTextMessage(playerid, number, text);
  49740. ShowActionBubble(playerid, "* %s takes out their mobile phone and sends a text.", ReturnNameEx(playerid));
  49741. }
  49742. return 1;
  49743. }
  49744. /*CMD:call(playerid, params[])
  49745. {
  49746. new number, payphone = GetClosestPayphone(playerid);
  49747. if (!Players[playerid][pPhone] && payphone == INVALID_ID)
  49748. {
  49749. return SendErrorMessage(playerid, "You don't have any phone setup.");
  49750. }
  49751. else if (Players[playerid][pMuted])
  49752. {
  49753. return SendErrorMessage(playerid, "You cannot use this command since you're muted.");
  49754. }
  49755. else if (Players[playerid][pJailType] > 0)
  49756. {
  49757. return SendErrorMessage(playerid, "You cannot use your phone in jail.");
  49758. }
  49759. else if (Players[playerid][pPhoneOff] && payphone == INVALID_ID)
  49760. {
  49761. return SendErrorMessage(playerid, "Your phone is turned off. Use /phone to turn it on.");
  49762. }
  49763. else if (sscanf(params, "d", number))
  49764. {
  49765. SendSyntaxMessage(playerid, "/call [number]");
  49766. SendInfoMessage(playerid, "Numbers:");
  49767. SendInfoMessage(playerid, "911 - Emergency");
  49768. SendInfoMessage(playerid, "991 - Non-Emergency");
  49769. SendInfoMessage(playerid, "555 - Taxi");
  49770. SendInfoMessage(playerid, "444 - Advertisements");
  49771. }
  49772. else if (number < 1)
  49773. {
  49774. return SendErrorMessage(playerid, "You have entered an invalid phone number.");
  49775. }
  49776. else
  49777. {
  49778. CallNumber(playerid, number, payphone);
  49779. ShowActionBubble(playerid, "* %s calls a number on their phone.", ReturnNameEx(playerid));
  49780. }
  49781. return 1;
  49782. }*/
  49783. CMD:call(playerid, params[])
  49784. {
  49785. new nam1[64], payphone = GetClosestPayphone(playerid), number;
  49786. if (!Players[playerid][pPhone] && payphone == INVALID_ID)
  49787. {
  49788. return SendErrorMessage(playerid, "You don't have any phone setup.");
  49789. }
  49790. else if (Players[playerid][pMuted])
  49791. {
  49792. return SendErrorMessage(playerid, "You cannot use this command since you're muted.");
  49793. }
  49794. else if (Players[playerid][pJailType] > 0)
  49795. {
  49796. return SendErrorMessage(playerid, "You cannot use your phone in jail.");
  49797. }
  49798. else if (Players[playerid][pPhoneOff] && payphone == INVALID_ID)
  49799. {
  49800. return SendErrorMessage(playerid, "Your phone is turned off. Use /phone to turn it on.");
  49801. }
  49802. else if (sscanf(params, "s[64]", nam1))
  49803. {
  49804. SendSyntaxMessage(playerid, "/call [number/contact name]");
  49805. SendInfoMessage(playerid, "Numbers:");
  49806. SendInfoMessage(playerid, "911 - Emergency");
  49807. SendInfoMessage(playerid, "991 - Non-Emergency");
  49808. SendInfoMessage(playerid, "555 - Taxi");
  49809. SendInfoMessage(playerid, "444 - Advertisements");
  49810. }
  49811. else {
  49812. format(gExecute, sizeof(gExecute), "SELECT Contact, Number FROM rp_contacts WHERE Contact = '%s'", nam1);
  49813. new feedback = mysql_tquery(gConnection, gExecute, "OnPlayerCallContact", "i", playerid);
  49814. if(!feedback) {
  49815. number = strval(nam1);
  49816. if (number < 1)
  49817. {
  49818. return SendErrorMessage(playerid, "You have entered an invalid phone number.");
  49819. }
  49820. else
  49821. {
  49822. CallNumber(playerid, number, payphone);
  49823. ShowActionBubble(playerid, "* %s calls a number on their phone.", ReturnNameEx(playerid));
  49824. }
  49825. }
  49826. }
  49827. return 1;
  49828. }
  49829. /*CMD:passcall(playerid, params[])
  49830. {
  49831. new targetid;
  49832. new payphone = GetClosestPayphone(playerid);
  49833. new number;
  49834. if (!Players[playerid][pPhone])
  49835. {
  49836. return SendErrorMessage(playerid, "You don't have any phone setup.");
  49837. }
  49838. else if (Players[playerid][pJailType] > 0)
  49839. {
  49840. return SendErrorMessage(playerid, "You cannot use your phone in jail.");
  49841. }
  49842. else if (Players[playerid][pPhoneOff])
  49843. {
  49844. return SendErrorMessage(playerid, "Your phone is turned off. Use /phone to turn it on.");
  49845. }
  49846. else if (Players[])
  49847. else if (sscanf(params, "u", targetid))
  49848. {
  49849. return SendSyntaxMessage(playerid, "/passcall [playerid/name]");
  49850. }
  49851. }*/
  49852. CMD:answer(playerid, params[])
  49853. {
  49854. if (!IsCallIncoming(playerid) && !IsPlayerNearRingingPayphone(playerid))
  49855. {
  49856. return SendErrorMessage(playerid, "There are no incoming calls to answer.");
  49857. }
  49858. else
  49859. {
  49860. new payphone = GetClosestPayphone(playerid);
  49861. if (IsValidPayphoneID(payphone) && Payphones[payphone][phCaller] != INVALID_PLAYER_ID)
  49862. {
  49863. Players[playerid][pCalling] = 2;
  49864. Players[playerid][pCaller] = Payphones[payphone][phCaller];
  49865. Players[Payphones[payphone][phCaller]][pCalling] = 2;
  49866. Players[Payphones[payphone][phCaller]][pCaller] = playerid;
  49867. PlayerPlaySound(Payphones[payphone][phCaller], 20601, 0.0, 0.0, 0.0);
  49868. AssignPayphone(playerid, payphone);
  49869. SendInfoMessage(playerid, "You have answered the call. Use /hangup to hang up.");
  49870. SendInfoMessage(Players[playerid][pCaller], "The other line has picked up the call. Use /hangup to hang up.");
  49871. }
  49872. else
  49873. {
  49874. Players[playerid][pCalling] = 2;
  49875. Players[Players[playerid][pCaller]][pCalling] = 2;
  49876. SendInfoMessage(playerid, "You have answered the call from %s. Use /hangup to hang up.", ReturnNameEx(Players[playerid][pCaller]));
  49877. SendInfoMessage(Players[playerid][pCaller], "The other line has picked up the call. Use /hangup to hang up.");
  49878. }
  49879. SetPlayerCellphoneAction(playerid, true);
  49880. PlayerPlaySound(playerid, 20601, 0.0, 0.0, 0.0);
  49881. }
  49882. return 1;
  49883. }
  49884. CMD:hangup(playerid, params[])
  49885. {
  49886. if (!Players[playerid][pCalling])
  49887. {
  49888. return SendErrorMessage(playerid, "There are no calls to hangup.");
  49889. }
  49890. else
  49891. {
  49892. HangupCall(playerid);
  49893. SendInfoMessage(playerid, "You have ended the call.");
  49894. }
  49895. return 1;
  49896. }
  49897. CMD:bigears(playerid, params[])
  49898. {
  49899. if (Players[playerid][pAdmin] < 3)
  49900. return SendErrorMessage(playerid, "You are not privileged to use this command");
  49901. if (!Players[playerid][pBigEars])
  49902. {
  49903. Players[playerid][pBigEars] = 1;
  49904. SendInfoMessage(playerid, "You have turned bigears on.");
  49905. }
  49906. else
  49907. {
  49908. Players[playerid][pBigEars] = 0;
  49909. SendInfoMessage(playerid, "You have turned bigears off.");
  49910. }
  49911. return 1;
  49912. }
  49913. CMD:settings(playerid, params[])
  49914. {
  49915. ShowSettings(playerid);
  49916. return 1;
  49917. }
  49918. CMD:unblockpm(playerid, params[])
  49919. {
  49920. new targetid;
  49921. if(sscanf(params, "u", targetid))
  49922. {
  49923. return SendSyntaxMessage(playerid, "/unblockpm (player)");
  49924. }
  49925. else if(!IsPlayerConnected(targetid))
  49926. {
  49927. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  49928. }
  49929. else if(targetid == playerid)
  49930. {
  49931. return SendErrorMessage(playerid, "You can't use this command on yourself.");
  49932. }
  49933. else if(!BlockedPM[playerid][targetid])
  49934. {
  49935. return SendErrorMessage(playerid, "You have not blocked private messages from this player.");
  49936. }
  49937. BlockedPM[playerid][targetid] = false;
  49938. SendInfoMessage(playerid, "You have unblocked all incoming messages from %s (%i).", ReturnNameEx(targetid, 0), targetid);
  49939. return 1;
  49940. }
  49941. CMD:blockpm(playerid, params[])
  49942. {
  49943. new targetid;
  49944. if(sscanf(params, "u", targetid))
  49945. {
  49946. return SendSyntaxMessage(playerid, "/blockpm (player)");
  49947. }
  49948. else if(!IsPlayerConnected(targetid))
  49949. {
  49950. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  49951. }
  49952. else if(targetid == playerid)
  49953. {
  49954. return SendErrorMessage(playerid, "You can't use this command on yourself.");
  49955. }
  49956. else if(Players[targetid][pAdmin] > 0)
  49957. {
  49958. return SendErrorMessage(playerid, "You can't block admin PM's.");
  49959. }
  49960. else if(BlockedPM[playerid][targetid])
  49961. {
  49962. return SendErrorMessage(playerid, "You have already blocked private messages from this player. (/unblockpm)");
  49963. }
  49964. BlockedPM[playerid][targetid] = true;
  49965. SendInfoMessage(playerid, "You have blocked all incoming messages from %s (%i).", ReturnNameEx(targetid, 0), targetid);
  49966. return 1;
  49967. }
  49968. CMD:pm(playerid, params[])
  49969. {
  49970. new targetid, text[128];
  49971. if (!Players[playerid][pShowPM])
  49972. {
  49973. return SendErrorMessage(playerid, "You don't have private messages enabled.");
  49974. }
  49975. else if (Players[playerid][pMuted])
  49976. {
  49977. return SendErrorMessage(playerid, "You cannot use this command since you're muted.");
  49978. }
  49979. else if (sscanf(params, "us[128]", targetid, text))
  49980. {
  49981. return SendSyntaxMessage(playerid, "/pm (player) (message)");
  49982. }
  49983. else if (!IsPlayerConnected(targetid))
  49984. {
  49985. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  49986. }
  49987. else if (targetid == playerid)
  49988. {
  49989. return SendErrorMessage(playerid, "You can't message yourself.");
  49990. }
  49991. else if (!Players[targetid][pShowPM])
  49992. {
  49993. return SendErrorMessage(playerid, "That player has private messages disabled.");
  49994. }
  49995. else if(BlockedPM[targetid][playerid])
  49996. {
  49997. return SendErrorMessage(playerid, "That player has chosen to disallow private messages from you.");
  49998. }
  49999. else
  50000. {
  50001. if (Players[playerid][pAdminDuty] > 0)
  50002. SendSplitMessage(targetid, COLOR_YELLOW, "(( PM from {E8AF0E}%s{FFDD00} (%i): %s ))", ReturnNameEx(playerid, 0), playerid, text);
  50003. else
  50004. SendSplitMessage(targetid, COLOR_YELLOW, "(( PM from %s (%i): %s ))", ReturnNameEx(playerid, 0),playerid,text);
  50005. if(Players[targetid][pAdminDuty] > 0)
  50006. SendSplitMessage(playerid, COLOR_YELLOW, "(( PM to {E8AF0E}%s{FFDD00} (%i): %s ))", ReturnNameEx(targetid, 0), targetid, text);
  50007. else
  50008. SendSplitMessage(playerid, COLOR_YELLOW, "(( PM to %s (%i): %s ))", ReturnNameEx(targetid, 0), targetid, text);
  50009. PlayerPlaySound(targetid, 1085, 0.0, 0.0, 0.0);
  50010. new log[128];
  50011. format(log, sizeof(log), "%s to %s (%i): %s", ReturnName(playerid), ReturnName(targetid), targetid, text);
  50012. CreateLog("pm", log);
  50013. foreach (new i : Player)
  50014. {
  50015. if (Players[i][pBigEars])
  50016. {
  50017. SendSplitMessage(i, COLOR_YELLOW, "(( PM from %s to %s: %s ))", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), text);
  50018. }
  50019. }
  50020. }
  50021. return 1;
  50022. }
  50023. CMD:addpump(playerid, params[])
  50024. {
  50025. new company;
  50026. if (Players[playerid][pAdmin] < 5)
  50027. {
  50028. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  50029. }
  50030. else if (sscanf(params, "i", company))
  50031. {
  50032. return SendSyntaxMessage(playerid, "/addpump (company ID)");
  50033. }
  50034. else if (!IsValidCompanyID(company))
  50035. {
  50036. return SendErrorMessage(playerid, "You have specified an invalid company.");
  50037. }
  50038. else if (IsPlayerInside(playerid))
  50039. {
  50040. return SendErrorMessage(playerid, "You cannot add a gas pump inside.");
  50041. }
  50042. else
  50043. {
  50044. new
  50045. Float:x,
  50046. Float:y,
  50047. Float:z,
  50048. Float:angle,
  50049. id = INVALID_ID;
  50050. GetPlayerPos(playerid, x, y, z);
  50051. GetPlayerFacingAngle(playerid, angle);
  50052. x += 2.0 * floatsin(-angle, degrees);
  50053. y += 2.0 * floatcos(-angle, degrees);
  50054. id = AddGasPump(company, x, y, z, angle);
  50055. if (id == INVALID_ID)
  50056. {
  50057. return SendErrorMessage(playerid, "There are no available pump slots.");
  50058. }
  50059. else
  50060. {
  50061. EditDynamicObjectEx(playerid, EDIT_TYPE_PUMP, GasPumps[id][gpObject], id);
  50062. SendInfoMessage(playerid, "You have added pump %i (/editpump).", id);
  50063. }
  50064. }
  50065. return 1;
  50066. }
  50067. CMD:gotopump(playerid, params[])
  50068. {
  50069. new pump;
  50070. if (Players[playerid][pAdmin] < 5)
  50071. {
  50072. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  50073. }
  50074. else if (sscanf(params, "i", pump))
  50075. {
  50076. return SendSyntaxMessage(playerid, "/gotopump (pump ID)");
  50077. }
  50078. else if (!IsValidPumpID(pump))
  50079. {
  50080. return SendErrorMessage(playerid, "You have specified an invalid pump.");
  50081. }
  50082. else
  50083. {
  50084. SetPlayerPosEx(playerid, GasPumps[pump][gpSpawn][0], GasPumps[pump][gpSpawn][1], GasPumps[pump][gpSpawn][2], GasPumps[pump][gpSpawn][3], 0, 0);
  50085. SendInfoMessage(playerid, "You have teleported to gas pump %i.", pump);
  50086. }
  50087. return 1;
  50088. }
  50089. CMD:editpump(playerid, params[])
  50090. {
  50091. new pump;
  50092. if (Players[playerid][pAdmin] < 5)
  50093. {
  50094. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  50095. }
  50096. else if (sscanf(params, "i", pump))
  50097. {
  50098. return SendSyntaxMessage(playerid, "/editpump (pump ID)");
  50099. }
  50100. else if (!IsValidPumpID(pump))
  50101. {
  50102. return SendErrorMessage(playerid, "You have specified an invalid pump.");
  50103. }
  50104. else
  50105. {
  50106. Players[playerid][pSelected] = pump;
  50107. Dialog_Show(playerid, EditPump, DIALOG_STYLE_LIST, "{FFFFFF}Edit pump", "Pump Position\nPump Fuel\t\t%.1f gallons", "Submit", "Cancel", GasPumps[pump][gpFuel]);
  50108. }
  50109. return 1;
  50110. }
  50111. CMD:deletepump(playerid, params[])
  50112. {
  50113. new pump;
  50114. if (Players[playerid][pAdmin] < 5)
  50115. {
  50116. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  50117. }
  50118. else if (sscanf(params, "i", pump))
  50119. {
  50120. return SendSyntaxMessage(playerid, "/deletepump (pump ID)");
  50121. }
  50122. else if (!IsValidPumpID(pump))
  50123. {
  50124. return SendErrorMessage(playerid, "You have specified an invalid pump.");
  50125. }
  50126. else
  50127. {
  50128. DestroyDynamicObject(GasPumps[pump][gpObject]);
  50129. DestroyDynamic3DTextLabel(GasPumps[pump][gpText]);
  50130. format(gExecute, sizeof(gExecute), "DELETE FROM rp_gaspumps WHERE gpID = %i", GasPumps[pump][gpID]);
  50131. mysql_tquery(gConnection, gExecute);
  50132. GasPumps[pump][gpExists] = 0;
  50133. SendInfoMessage(playerid, "You have deleted gas pump %i.", pump);
  50134. }
  50135. return 1;
  50136. }
  50137. CMD:refuel(playerid, params[])
  50138. {
  50139. new
  50140. vehicleid = GetPlayerVehicleID(playerid);
  50141. if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
  50142. {
  50143. return SendErrorMessage(playerid, "You are not driving a vehicle.");
  50144. }
  50145. else if (!IsPoweredVehicle(vehicleid))
  50146. {
  50147. return SendErrorMessage(playerid, "This is not a powered vehicle.");
  50148. }
  50149. else if (VehicleInformation[vehicleid][vFuel] > 98)
  50150. {
  50151. return SendErrorMessage(playerid, "The tank is already full.");
  50152. }
  50153. else if (GetEngineStatus(vehicleid))
  50154. {
  50155. return SendErrorMessage(playerid, "The engine must be turned off.");
  50156. }
  50157. else if (Players[playerid][pRefuel] != INVALID_ID)
  50158. {
  50159. return StopRefuel(playerid);
  50160. }
  50161. else
  50162. {
  50163. new id = GetClosestPump(playerid);
  50164. if (id == INVALID_ID)
  50165. {
  50166. return SendErrorMessage(playerid, "There is no gas pump nearby.");
  50167. }
  50168. else if (GasPumps[id][gpFuel] < 1.0)
  50169. {
  50170. return SendErrorMessage(playerid, "There is no fuel in this pump.");
  50171. }
  50172. else
  50173. {
  50174. Players[playerid][pRefuel] = id;
  50175. Timers[playerid][tRefuel] = SetTimerEx("RefuelCycle", 1000, true, "iii", playerid, vehicleid, id);
  50176. SendInfoMessage(playerid, "Your vehicle is now being filled up. Use /refuel to stop refueling.");
  50177. }
  50178. }
  50179. return 1;
  50180. }
  50181. CMD:addcar(playerid, params[])
  50182. {
  50183. new model[24], modelid, color1, color2, faction;
  50184. if (Players[playerid][pAdmin] < 5)
  50185. {
  50186. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  50187. }
  50188. else if (IsValidVehicle(Players[playerid][pAddVehicle]))
  50189. {
  50190. return SendErrorMessage(playerid, "You must exit the current vehicle first.");
  50191. }
  50192. else if (sscanf(params, "s[24]iiI(-1)", model, color1, color2, faction))
  50193. {
  50194. return SendSyntaxMessage(playerid, "/addcar (model) (color 1) (color 2) [faction ID] (Use -1 for no faction)");
  50195. }
  50196. else if (!(modelid = GetVehicleModelFromName(model)))
  50197. {
  50198. return SendErrorMessage(playerid, "The specified model doesn't exist.");
  50199. }
  50200. else if (color1 < 0 || color1 > 255)
  50201. {
  50202. return SendErrorMessage(playerid, "The first color must be between 0 and 255.");
  50203. }
  50204. else if (color2 < 0 || color2 > 255)
  50205. {
  50206. return SendErrorMessage(playerid, "The second color must be between 0 and 255.");
  50207. }
  50208. else if (faction != INVALID_ID && !IsValidFactionID(faction))
  50209. {
  50210. return SendErrorMessage(playerid, "You have specified an invalid faction ID.");
  50211. }
  50212. else
  50213. {
  50214. SpawnConfirmationVehicle(playerid, INVALID_ID, faction, 0, modelid, color1, color2);
  50215. SendInfoMessage(playerid, "Use the /confirm command to save the position of the vehicle.");
  50216. }
  50217. return 1;
  50218. }
  50219. CMD:asafe(playerid, params[])
  50220. {
  50221. new option[24], safe = GetClosestFurniture(playerid, 2.0, 2332);
  50222. if(!CheckAdmin(playerid, 4)) return SCM(playerid, COLOR_LIGHTRED, "You are not an Admin");
  50223. if(sscanf(params, "s[24]", option)) return SCM(playerid, COLOR_WHITE, "/asafe [lock/unlock]");
  50224. if(safe == INVALID_ID) return SCM(playerid, COLOR_LIGHTRED, "No safe nearby.");
  50225. if(!strcmp(option, "unlock", true))
  50226. {
  50227. Furniture[safe][fSafeOpen] = 1;
  50228. UpdateDynamic3DTextLabelText(Furniture[safe][fText], COLOR_GREY, "Status: {33CC33}Opened{AFAFAF}\nPress Y to use safe");
  50229. SCM(playerid, COLOR_LIGHTRED, "You've unlocked the safe.");
  50230. }
  50231. if(!strcmp(option, "lock", true))
  50232. {
  50233. Furniture[safe][fSafeOpen] = 0;
  50234. UpdateDynamic3DTextLabelText(Furniture[safe][fText], COLOR_GREY, "Status: {FF5030}Closed{AFAFAF}\nPress Y to use safe");
  50235. SCM(playerid, COLOR_LIGHTRED,"You've locked the safe.");
  50236. }
  50237. return 1;
  50238. }
  50239. CMD:editcar(playerid, params[])
  50240. {
  50241. new vehicleid, id;
  50242. if(!CheckAdmin(playerid, 1)) return SCM(playerid, COLOR_LIGHTRED, "You are not an Admin");
  50243. if(sscanf(params, "i", vehicleid)) return SendSyntaxMessage(playerid, "/editcar (vehicle ID)");
  50244. if(!IsValidVehicle(vehicleid)) return SendErrorMessage(playerid, "You have specified an invalid vehicle.");
  50245. id = GetVehicleID(vehicleid);
  50246. if (id == INVALID_ID)
  50247. {
  50248. return SendErrorMessage(playerid, "The specified vehicle is not a dynamic vehicle.");
  50249. }
  50250. else
  50251. {
  50252. Players[playerid][pSelected] = id;
  50253. Dialog_Show(playerid, EditCar, DIALOG_STYLE_LIST, "{FFFFFF}Edit car", "Vehicle Spawn\nVehicle Faction\t\t%s\nVehicle Color 1\t\t#%i\nVehicle Color 2\t\t#%i\nVehicle Siren\t\t%s", "Select", "Cancel", GetFactionIDName(Vehicles[id][vFaction]), Vehicles[id][vColor1], Vehicles[id][vColor2], (Vehicles[id][vSiren]) ? ("Yes") : ("No"));
  50254. }
  50255. return 1;
  50256. }
  50257. CMD:acleartrunk(playerid, params[])
  50258. {
  50259. new vehicleid, id;
  50260. if (Players[playerid][pAdmin] < 4)
  50261. {
  50262. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  50263. }
  50264. else if (sscanf(params, "i", vehicleid))
  50265. {
  50266. return SendSyntaxMessage(playerid, "/acleartrunk (vehicle ID)");
  50267. }
  50268. else if (!IsValidVehicle(vehicleid))
  50269. {
  50270. return SendErrorMessage(playerid, "You have specified an invalid vehicle.");
  50271. }
  50272. else
  50273. {
  50274. id = GetVehicleID(vehicleid);
  50275. if (id == INVALID_ID)
  50276. {
  50277. return SendErrorMessage(playerid, "The specified vehicle is not a dynamic vehicle.");
  50278. }
  50279. else
  50280. {
  50281. ClearTrunkItems(id);
  50282. SendInfoMessage(playerid, "You have cleared all items in the trunk of vehicle %i.", vehicleid);
  50283. }
  50284. }
  50285. return 1;
  50286. }
  50287. CMD:vinfo(playerid, params[])
  50288. {
  50289. new vehicleid, id;
  50290. if (Players[playerid][pAdmin] < 1 && GetPlayerFactionType(playerid) != FACTION_LEO)
  50291. {
  50292. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  50293. }
  50294. else if (sscanf(params, "i", vehicleid))
  50295. {
  50296. return SendSyntaxMessage(playerid, "/vinfo (vehicle ID)");
  50297. }
  50298. else if (!IsValidVehicle(vehicleid))
  50299. {
  50300. return SendErrorMessage(playerid, "You have specified an invalid vehicle.");
  50301. }
  50302. else
  50303. {
  50304. id = GetVehicleID(vehicleid);
  50305. if (id == INVALID_ID)
  50306. {
  50307. return SendErrorMessage(playerid, "The specified vehicle is not a dynamic vehicle.");
  50308. }
  50309. else
  50310. {
  50311. format(gExecute, sizeof(gExecute), "SELECT Username FROM rp_accounts WHERE ID = %i", Vehicles[id][vOwner]);
  50312. mysql_tquery(gConnection, gExecute, "OnPlayerVehicleInfo", "ii", playerid, id);
  50313. }
  50314. }
  50315. return 1;
  50316. }
  50317. CMD:deletecar(playerid, params[])
  50318. {
  50319. new vehicleid, id;
  50320. if (Players[playerid][pAdmin] < 5)
  50321. {
  50322. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  50323. }
  50324. else if (sscanf(params, "i", vehicleid))
  50325. {
  50326. return SendSyntaxMessage(playerid, "/deletecar (vehicle ID)");
  50327. }
  50328. else if (!IsValidVehicle(vehicleid))
  50329. {
  50330. return SendErrorMessage(playerid, "You have specified an invalid vehicle.");
  50331. }
  50332. else
  50333. {
  50334. id = GetVehicleID(vehicleid);
  50335. if (id == INVALID_ID)
  50336. {
  50337. return SendErrorMessage(playerid, "The specified vehicle is not a dynamic vehicle.");
  50338. }
  50339. else
  50340. {
  50341. DeleteVehicle(id);
  50342. SendInfoMessage(playerid, "You have deleted vehicle %i.", vehicleid);
  50343. }
  50344. }
  50345. return 1;
  50346. }
  50347. CMD:addatm(playerid, params[])
  50348. {
  50349. if (Players[playerid][pAdmin] < 5)
  50350. {
  50351. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  50352. }
  50353. else if (GetClosestATM(playerid) != INVALID_ID)
  50354. {
  50355. return SendErrorMessage(playerid, "There is another ATM nearby.");
  50356. }
  50357. else
  50358. {
  50359. new
  50360. Float:x,
  50361. Float:y,
  50362. Float:z,
  50363. Float:angle,
  50364. id = INVALID_ID;
  50365. GetPlayerPos(playerid, x, y, z);
  50366. GetPlayerFacingAngle(playerid, angle);
  50367. x += 2.0 * floatsin(-angle, degrees);
  50368. y += 2.0 * floatcos(-angle, degrees);
  50369. id = AddATMMachine(x, y, z, angle, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid));
  50370. if (id == INVALID_ID)
  50371. {
  50372. return SendErrorMessage(playerid, "There are no available ATM slots.");
  50373. }
  50374. else
  50375. {
  50376. EditDynamicObjectEx(playerid, EDIT_TYPE_ATM, ATM[id][atmObject], id);
  50377. SendInfoMessage(playerid, "You have added ATM machine %i (/editatm).", id);
  50378. }
  50379. }
  50380. return 1;
  50381. }
  50382. CMD:gotoatm(playerid, params[])
  50383. {
  50384. new id;
  50385. if (Players[playerid][pAdmin] < 5)
  50386. {
  50387. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  50388. }
  50389. else if (sscanf(params, "i", id))
  50390. {
  50391. return SendSyntaxMessage(playerid, "/gotoatm (machine ID)");
  50392. }
  50393. else if (!IsValidATMID(id))
  50394. {
  50395. return SendErrorMessage(playerid, "You have specified an invalid ATM machine.");
  50396. }
  50397. else
  50398. {
  50399. SetPlayerPosEx(playerid, ATM[id][atmSpawn][0], ATM[id][atmSpawn][1], ATM[id][atmSpawn][2], ATM[id][atmSpawn][3], ATM[id][atmInterior], ATM[id][atmWorld]);
  50400. SendInfoMessage(playerid, "You have teleported to ATM machine %i.", id);
  50401. }
  50402. return 1;
  50403. }
  50404. CMD:editatm(playerid, params[])
  50405. {
  50406. new id;
  50407. if (Players[playerid][pAdmin] < 5)
  50408. {
  50409. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  50410. }
  50411. else if (sscanf(params, "i", id))
  50412. {
  50413. return SendSyntaxMessage(playerid, "/editatm (machine ID)");
  50414. }
  50415. else if (!IsValidATMID(id))
  50416. {
  50417. return SendErrorMessage(playerid, "You have specified an invalid ATM machine.");
  50418. }
  50419. else
  50420. {
  50421. EditDynamicObjectEx(playerid, EDIT_TYPE_ATM, ATM[id][atmObject], id);
  50422. SendInfoMessage(playerid, "Click on the disk icon to save changes.");
  50423. }
  50424. return 1;
  50425. }
  50426. CMD:deleteatm(playerid, params[])
  50427. {
  50428. new id;
  50429. if (Players[playerid][pAdmin] < 5)
  50430. {
  50431. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  50432. }
  50433. else if (sscanf(params, "i", id))
  50434. {
  50435. return SendSyntaxMessage(playerid, "/deleteatm (machine ID)");
  50436. }
  50437. else if (!IsValidATMID(id))
  50438. {
  50439. return SendErrorMessage(playerid, "You have specified an invalid ATM machine.");
  50440. }
  50441. else
  50442. {
  50443. DestroyDynamic3DTextLabel(ATM[id][atmText]);
  50444. DestroyDynamicObject(ATM[id][atmObject]);
  50445. format(gExecute, sizeof(gExecute), "DELETE FROM rp_atms WHERE `atmID` = %i", ATM[id][atmID]);
  50446. mysql_tquery(gConnection, gExecute);
  50447. ATM[id][atmExists] = 0;
  50448. SendInfoMessage(playerid, "You have deleted ATM %i.", id);
  50449. }
  50450. return 1;
  50451. }
  50452. CMD:togbrokenleg(playerid, params[])
  50453. {
  50454. new targetid;
  50455. if (Players[playerid][pAdmin] < 2)
  50456. {
  50457. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  50458. }
  50459. else if (sscanf(params, "u", targetid))
  50460. {
  50461. return SendSyntaxMessage(playerid, "/togbrokenleg [playerid/name]");
  50462. }
  50463. else if (!IsPlayerConnected(targetid))
  50464. {
  50465. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  50466. }
  50467. else if (!IsPlayerLoggedIn(targetid))
  50468. {
  50469. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  50470. }
  50471. else if (IsPlayerNPC(targetid))
  50472. {
  50473. return SendErrorMessage(playerid, "You can't use this command on an NPC.");
  50474. }
  50475. else
  50476. {
  50477. Players[targetid][pBrokenLeg] = !Players[targetid][pBrokenLeg];
  50478. if (Players[targetid][pBrokenLeg])
  50479. {
  50480. SendInfoMessage(playerid, "You have enabled the broken leg for %s.", ReturnNameEx(targetid, 0));
  50481. }
  50482. else
  50483. {
  50484. SendInfoMessage(playerid, "You have disabled the broken leg for %s.", ReturnNameEx(targetid, 0));
  50485. }
  50486. }
  50487. return 1;
  50488. }
  50489. CMD:togbleeding(playerid, params[])
  50490. {
  50491. new targetid;
  50492. if (Players[playerid][pAdmin] < 2)
  50493. {
  50494. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  50495. }
  50496. else if (sscanf(params, "u", targetid))
  50497. {
  50498. return SendSyntaxMessage(playerid, "/togbleeding [playerid/name]");
  50499. }
  50500. else if (!IsPlayerConnected(targetid))
  50501. {
  50502. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  50503. }
  50504. else if (!IsPlayerLoggedIn(targetid))
  50505. {
  50506. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  50507. }
  50508. else if (IsPlayerNPC(targetid))
  50509. {
  50510. return SendErrorMessage(playerid, "You can't use this command on an NPC.");
  50511. }
  50512. else
  50513. {
  50514. Players[targetid][pBleeding] = !Players[targetid][pBleeding];
  50515. Players[targetid][pBleedingTime] = 0;
  50516. if (Players[targetid][pBleeding])
  50517. {
  50518. SendInfoMessage(playerid, "You have enabled bleeding for %s.", ReturnNameEx(targetid, 0));
  50519. }
  50520. else
  50521. {
  50522. SendInfoMessage(playerid, "You have disabled bleeding for %s.", ReturnNameEx(targetid, 0));
  50523. }
  50524. }
  50525. return 1;
  50526. }
  50527. CMD:adeletedrops(playerid, params[])
  50528. {
  50529. if (Players[playerid][pAdmin] < 5)
  50530. {
  50531. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  50532. }
  50533. else
  50534. {
  50535. for (new i = 0; i < MAX_DROPPED_ITEMS; i ++)
  50536. {
  50537. if (DropItems[i][dExists])
  50538. {
  50539. DestroyDynamicObject(DropItems[i][dObject]);
  50540. //DestroyDynamic3DTextLabel(DropItems[i][dText]);
  50541. DropItems[i][dExists] = 0;
  50542. }
  50543. }
  50544. mysql_tquery(gConnection, "DELETE FROM rp_items WHERE itemDropped = 1");
  50545. SendAdminMessage(COLOR_RED, "Admin: %s has deleted all dropped items.", ReturnNameEx(playerid, 0));
  50546. }
  50547. return 1;
  50548. }
  50549. CMD:adeleteblood(playerid, params[])
  50550. {
  50551. if(Players[playerid][pAdmin] < 5)
  50552. {
  50553. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  50554. }
  50555. else
  50556. {
  50557. for (new i = 0; i < MAX_BLOOD; i ++)
  50558. {
  50559. if (Bloods[i][blExists])
  50560. {
  50561. DestroyDynamicObject(Bloods[i][blObject]);
  50562. Bloods[i][blExists] = 0;
  50563. Bloods[i][blObject] = INVALID_OBJECT_ID;
  50564. }
  50565. }
  50566. SendAdminMessage(COLOR_RED, "Admin: %s has deleted all blood.", ReturnNameEx(playerid, 0));
  50567. }
  50568. return 1;
  50569. }
  50570. CMD:adeleteshells(playerid, params[])
  50571. {
  50572. if (Players[playerid][pAdmin] < 5)
  50573. {
  50574. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  50575. }
  50576. else
  50577. {
  50578. for (new i = 0; i < MAX_SHELL_CASINGS; i ++)
  50579. {
  50580. if (ShellCasings[i][scExists])
  50581. {
  50582. DestroyDynamicObject(ShellCasings[i][scObject]);
  50583. ShellCasings[i][scExists] = 0;
  50584. ShellCasings[i][scObject] = INVALID_OBJECT_ID;
  50585. }
  50586. }
  50587. mysql_tquery(gConnection, "TRUNCATE TABLE rp_casings");
  50588. SendAdminMessage(COLOR_RED, "Admin: %s has deleted all shell casings.", ReturnNameEx(playerid, 0));
  50589. }
  50590. return 1;
  50591. }
  50592. CMD:payment(playerid, params[])
  50593. {
  50594. Dialog_Show(playerid, PaymentType, DIALOG_STYLE_LIST, "{FFFFFF}Set payment type", "Cash\nBank Account", "Select", "Cancel");
  50595. return 1;
  50596. }
  50597. CMD:ooc(playerid, params[])
  50598. {
  50599. return cmd_o(playerid, params);
  50600. }
  50601. CMD:o(playerid, params[])
  50602. {
  50603. if (isnull(params))
  50604. {
  50605. return SendSyntaxMessage(playerid, "/(o)oc (OOC chat)");
  50606. }
  50607. else if (Players[playerid][pMuted])
  50608. {
  50609. return SendErrorMessage(playerid, "You cannot use this command since you're muted.");
  50610. }
  50611. else if (!gEnabledOOC && Players[playerid][pAdmin] < 1)
  50612. {
  50613. return SendErrorMessage(playerid, "The OOC channel is currently disabled.");
  50614. }
  50615. else if (!Players[playerid][pShowOOC])
  50616. {
  50617. return SendErrorMessage(playerid, "You have disabled the OOC chat (/settings).");
  50618. }
  50619. else
  50620. {
  50621. foreach (new i : Player)
  50622. {
  50623. if (Players[i][pShowOOC])
  50624. {
  50625. if (Players[playerid][pAdminDuty] > 0)
  50626. {
  50627. SendSplitMessage(i, COLOR_SAMP, "(( {E8AF0E}%s{AAC4E5}(%s): %s ))", ReturnNameEx(playerid,0), ReturnAdminName(playerid), params);
  50628. }
  50629. else
  50630. {
  50631. SendSplitMessage(i, COLOR_SAMP, "(( %s: %s ))", ReturnNameEx(playerid, 0), params);
  50632. }
  50633. }
  50634. }
  50635. }
  50636. return 1;
  50637. }
  50638. CMD:admin(playerid, params[])
  50639. {
  50640. return cmd_a(playerid, params);
  50641. }
  50642. CMD:a(playerid, params[])
  50643. {
  50644. if (Players[playerid][pAdmin] < 1 && !Players[playerid][pVeteran])
  50645. {
  50646. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  50647. }
  50648. else if (Players[playerid][pMuted])
  50649. {
  50650. return SendErrorMessage(playerid, "You cannot use this command since you're muted.");
  50651. }
  50652. else if (isnull(params))
  50653. {
  50654. return SendSyntaxMessage(playerid, "/(a)dmin (admin chat)");
  50655. }
  50656. else if (!Players[playerid][pShowAdmin])
  50657. {
  50658. return SendErrorMessage(playerid, "You have disabled the admin chat (/settings).");
  50659. }
  50660. else
  50661. {
  50662. /*if (Players[playerid][pAdmin] == 6)
  50663. {
  50664. SendAdminMessage(COLOR_RED, "** (Management) %s: %s **", ReturnNameEx(playerid), params);
  50665. }
  50666. else
  50667. {
  50668. SendAdminMessage(COLOR_GREEN, "** (%i Admin) %s: %s **", Players[playerid][pAdmin], ReturnNameEx(playerid), params);
  50669. }*/
  50670. foreach (new i : Player)
  50671. {
  50672. if ((Players[i][pAdmin] > 0 || Players[i][pVeteran]) && Players[i][pShowAdmin])
  50673. {
  50674. SendSplitMessage(i, COLOR_RED, "** %s %s (%i): %s", ReturnAdminRank(playerid), ReturnAdminName(playerid), playerid, params);
  50675. }
  50676. }
  50677. }
  50678. return 1;
  50679. }
  50680. CMD:fc(playerid, params[])
  50681. {
  50682. if (!Players[playerid][pFactionMod])
  50683. {
  50684. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  50685. }
  50686. else if (Players[playerid][pMuted])
  50687. {
  50688. return SendErrorMessage(playerid, "You cannot use this command since you're muted.");
  50689. }
  50690. else if (isnull(params))
  50691. {
  50692. return SendSyntaxMessage(playerid, "/fc (FMT chat)");
  50693. }
  50694. else
  50695. {
  50696. foreach (new i : Player)
  50697. {
  50698. if (Players[i][pFactionMod])
  50699. {
  50700. SendSplitMessage(i, COLOR_FMTCHAT, "** (%s) %s: %s **", GetFactionModLevel(Players[playerid][pFactionMod]), ReturnNameEx(playerid, 0), params);
  50701. }
  50702. }
  50703. }
  50704. return 1;
  50705. }
  50706. CMD:leadadmin(playerid, params[])
  50707. {
  50708. return cmd_la(playerid, params);
  50709. }
  50710. CMD:la(playerid, params[])
  50711. {
  50712. if (Players[playerid][pAdmin] < 4)
  50713. {
  50714. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  50715. }
  50716. else if (Players[playerid][pMuted])
  50717. {
  50718. return SendErrorMessage(playerid, "You cannot use this command since you're muted.");
  50719. }
  50720. else if (isnull(params))
  50721. {
  50722. return SendSyntaxMessage(playerid, "/la (lead chat)");
  50723. }
  50724. else if (!Players[playerid][pShowAdmin])
  50725. {
  50726. return SendErrorMessage(playerid, "You have disabled the admin chat (/settings).");
  50727. }
  50728. else
  50729. {
  50730. foreach (new i : Player)
  50731. {
  50732. if (Players[i][pAdmin] > 4 && Players[i][pShowAdmin])
  50733. {
  50734. SendSplitMessage(i, 0x7A98FFFF, "** %s %s (%i): %s **", ReturnAdminTitle(playerid), ReturnAdminName(playerid), playerid, params);
  50735. }
  50736. }
  50737. }
  50738. return 1;
  50739. }
  50740. CMD:togooc(playerid, params[])
  50741. {
  50742. if (Players[playerid][pAdmin] < 3)
  50743. {
  50744. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  50745. }
  50746. else
  50747. {
  50748. gEnabledOOC = !gEnabledOOC;
  50749. if (gEnabledOOC)
  50750. {
  50751. SendFormatMessageToAll(COLOR_SAMP, "(( %s has enabled the OOC chat. ))", ReturnNameEx(playerid, 0));
  50752. }
  50753. else
  50754. {
  50755. SendFormatMessageToAll(COLOR_SAMP, "(( %s has disabled the OOC chat. ))", ReturnNameEx(playerid, 0));
  50756. }
  50757. }
  50758. return 1;
  50759. }
  50760. CMD:veterans(playerid, params[])
  50761. {
  50762. if (Players[playerid][pAdmin] < 1 && Players[playerid][pVeteran] < 1)
  50763. {
  50764. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  50765. }
  50766. else
  50767. {
  50768. SendClientMessage(playerid, COLOR_YELLOW, "List of Veterans:");
  50769. foreach (new i : Player)
  50770. {
  50771. if (Players[i][pVeteran])
  50772. {
  50773. SendFormatMessage(playerid, COLOR_WHITE, "* %s (ID: %i)", ReturnNameEx(i, 0), i);
  50774. }
  50775. }
  50776. }
  50777. return 1;
  50778. }
  50779. /*CMD:admins(playerid, params[])
  50780. {
  50781. new
  50782. count,
  50783. adminString[1024];
  50784. adminString = "The following admins are online:\n";
  50785. foreach (new i : Player)
  50786. {
  50787. if (Players[i][pAdmin] > 0 && !Players[i][pHideAdmin])
  50788. {
  50789. if (Players[i][pAdminDuty])
  50790. {
  50791. format(adminString, sizeof(adminString), "%s\n- %s (Level: %i) {33CC33}(On Duty){AAC4E5}", adminString, ReturnAdminName(i), Players[i][pAdmin]);
  50792. }
  50793. else
  50794. {
  50795. format(adminString, sizeof(adminString), "%s\n- %s (Level: %i) {FF5030}(Off Duty){AAC4E5}", adminString, ReturnAdminName(i), Players[i][pAdmin]);
  50796. }
  50797. count++;
  50798. }
  50799. }
  50800. if (!count)
  50801. {
  50802. SendErrorMessage(playerid, "There are currently no admins online.");
  50803. }
  50804. else
  50805. {
  50806. Dialog_Show(playerid, AdminsOnline, DIALOG_STYLE_MSGBOX, "{FFFFFF}Online Admins", adminString, "Close", "");
  50807. }
  50808. return 1;
  50809. }*/
  50810. CMD:admins(playerid, params[])
  50811. {
  50812. SendClientMessage(playerid, COLOR_DARKGREEN, "Online Administrators:");
  50813. foreach (new i : Player) if (Players[i][pAdmin] > 0)
  50814. {
  50815. if (!Players[i][pHideAdmin])
  50816. {
  50817. if (Players[i][pAdminDuty])
  50818. SendFormatMessage(playerid, COLOR_WHITE, "(Level %i): %s (ID: %i) Status: {5BB74C}On Duty", Players[i][pAdmin], ReturnNameEx(i, 0), ReturnAdminName(i), i);
  50819. //SendFormatMessage(playerid, COLOR_WHITE, "%s %s (ID: %i) Status: {4BB74C}On Duty", ReturnAdminTitle(i), ReturnNameEx(i, 0), i);
  50820. else
  50821. SendFormatMessage(playerid, COLOR_WHITE, "(Level %i): %s (ID: %i) Status: {FF0000}Off Duty", Players[i][pAdmin], ReturnNameEx(i, 0), ReturnAdminName(i), i);
  50822. //SendFormatMessage(playerid, COLOR_WHITE, "%s %s (ID: %i) Status: {FF0000}Off Duty", ReturnAdminTitle(i), ReturnNameEx(i, 0), i);
  50823. }
  50824. if (Players[i][pHideAdmin] && Players[playerid][pAdmin] >= 6)
  50825. {
  50826. SendFormatMessage(playerid, COLOR_WHITE, "(Level %i): %s (ID: %i) Status: {C9C9C9}Hidden", Players[i][pAdmin], ReturnNameEx(i, 0), ReturnAdminName(i), i);
  50827. //SendFormatMessage(playerid, COLOR_WHITE, "%s %s (%s) (ID: %i) Status: {C9C9C9}Hidden", ReturnAdminTitle(i), ReturnNameEx(i, 0), ReturnAdminName(i), i);
  50828. }
  50829. }
  50830. return 1;
  50831. }
  50832. /*CMD:admins(playerid, params[])
  50833. {
  50834. SendClientMessage(playerid, COLOR_YELLOW, "List of Admins:");
  50835. foreach (new i : Player)
  50836. {
  50837. if (Players[i][pAdmin] > 0)
  50838. {
  50839. if (Players[i][pHideAdmin] && Players[playerid][pAdmin] < 6)
  50840. {
  50841. continue;
  50842. }
  50843. if (Players[i][pAdminDuty])
  50844. {
  50845. SendFormatMessage(playerid, COLOR_GREEN, "* %s (ID: %i) (Level: %i) (On Duty)", ReturnAdminName(i), i, Players[i][pAdmin]);
  50846. }
  50847. else
  50848. {
  50849. SendFormatMessage(playerid, COLOR_WHITE, "* %s (ID: %i) (Level: %i) (Off Duty)", ReturnAdminName(i), i, Players[i][pAdmin]);
  50850. }
  50851. }
  50852. }
  50853. return 1;
  50854. }*/
  50855. /*
  50856. if (Players[playerid][pJob] != JOB_TAXI)
  50857. {
  50858. return SendErrorMessage(playerid, "You need to be a taxi driver to do this");
  50859. }
  50860. else if (!IsPlayerInTaxi(playerid))
  50861. {
  50862. return SendErrorMessage(playerid, "You need to be in a taxi.");
  50863. }
  50864. */
  50865. CMD:onduty(playerid, params[])
  50866. {
  50867. new police = 0;
  50868. new medic = 0;
  50869. new taxi = 0;
  50870. foreach (new i : Player)
  50871. {
  50872. if (GetPlayerFactionType(i) == FACTION_LEO && Players[i][pDuty])
  50873. police++;
  50874. if (GetPlayerFactionType(i) == FACTION_MEDICAL && Players[i][pDuty])
  50875. medic++;
  50876. if (Players[i][pJob] == JOB_TAXI && IsPlayerInTaxi(i))
  50877. taxi++;
  50878. }
  50879. SendFormatMessage(playerid, COLOR_WHITE, "On Duty > Police: %i, Medic: %i, Taxi: %i", police, medic, taxi);
  50880. return 1;
  50881. }
  50882. CMD:aduty(playerid, params[])
  50883. {
  50884. if (Players[playerid][pAdmin] < 1)
  50885. {
  50886. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  50887. }
  50888. else
  50889. {
  50890. if (Players[playerid][pMaskID] > 0)
  50891. {
  50892. Players[playerid][pMaskID] = 0;
  50893. SendInfoMessage(playerid, "Your mask has been automatically removed.");
  50894. }
  50895. Players[playerid][pAdminDuty] = !Players[playerid][pAdminDuty];
  50896. UpdateNameTag(playerid, 1);
  50897. if (Players[playerid][pAdminDuty])
  50898. {
  50899. SendAdminMessage(COLOR_RED, "Admin: %s is now on admin duty.", ReturnNameEx(playerid, 0));
  50900. }
  50901. else
  50902. {
  50903. SendAdminMessage(COLOR_RED, "Admin: %s is no longer on admin duty.", ReturnNameEx(playerid, 0));
  50904. }
  50905. }
  50906. return 1;
  50907. }
  50908. CMD:adminname(playerid, params[])
  50909. {
  50910. if (Players[playerid][pAdmin] < 1)
  50911. {
  50912. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  50913. }
  50914. else
  50915. {
  50916. Dialog_Show(playerid, AdminName, DIALOG_STYLE_INPUT, "{FFFFFF}Admin Name", "Please input the admin name that you wish to use:", "Submit", "Cancel");
  50917. }
  50918. return 1;
  50919. }
  50920. CMD:admintitle(playerid, params[])
  50921. {
  50922. new targetid, title[24];
  50923. if (Players[playerid][pAdmin] < 1)
  50924. {
  50925. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  50926. }
  50927. else if (sscanf(params, "us[24]", targetid, title))
  50928. {
  50929. return SendSyntaxMessage(playerid, "/admintitle [playerid/name] [title]");
  50930. }
  50931. else
  50932. {
  50933. SendAdminMessage(COLOR_RED, "Admin: %s has set %s's admin title to '%s'.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), title);
  50934. strcpy(Players[targetid][pAdminTitle], title, 24);
  50935. }
  50936. return 1;
  50937. }
  50938. CMD:amotd(playerid, params[])
  50939. {
  50940. new motd[128];
  50941. if (Players[playerid][pAdmin] < 6)
  50942. {
  50943. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  50944. }
  50945. else if (sscanf(params, "s[128]", motd))
  50946. {
  50947. return SendSyntaxMessage(playerid, "/amotd [server motd]");
  50948. }
  50949. else
  50950. {
  50951. strcpy(Server[Motd], motd, 128);
  50952. SaveInformation();
  50953. }
  50954. return 1;
  50955. }
  50956. CMD:ahide(playerid, params[])
  50957. {
  50958. if (Players[playerid][pAdmin] < 4)
  50959. {
  50960. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  50961. }
  50962. else
  50963. {
  50964. Players[playerid][pHideAdmin] = !Players[playerid][pHideAdmin];
  50965. if (Players[playerid][pHideAdmin])
  50966. {
  50967. SendInfoMessage(playerid, "You are now hidden from the admins list.");
  50968. }
  50969. else
  50970. {
  50971. SendInfoMessage(playerid, "You are no longer hidden from the admins list.");
  50972. }
  50973. }
  50974. return 1;
  50975. }
  50976. CMD:setmapper(playerid, params[])
  50977. {
  50978. new targetid, level;
  50979. if (Players[playerid][pAdmin] < 5 && Players[playerid][pMapper] < 2)
  50980. {
  50981. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  50982. }
  50983. else if (sscanf(params, "ui", targetid, level))
  50984. {
  50985. return SendSyntaxMessage(playerid, "/setmapper [playerid/name] [1: mapper 2: head mapper]");
  50986. }
  50987. else if (!IsPlayerConnected(targetid))
  50988. {
  50989. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  50990. }
  50991. else if (IsPlayerNPC(targetid))
  50992. {
  50993. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  50994. }
  50995. else if (!IsPlayerLoggedIn(targetid))
  50996. {
  50997. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  50998. }
  50999. else if (level < 0 || level > 2)
  51000. {
  51001. return SendErrorMessage(playerid, "The specified level is invalid.");
  51002. }
  51003. else
  51004. {
  51005. Players[targetid][pMapper] = level;
  51006. if (level)
  51007. {
  51008. SendAdminMessage(COLOR_RED, "Admin: %s has set %s's mapper level to %s.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), GetMapperLevel(level));
  51009. SendInfoMessage(targetid, "%s has set your mapper level to %s.", ReturnNameEx(playerid, 0), GetMapperLevel(level));
  51010. }
  51011. else
  51012. {
  51013. SendAdminMessage(COLOR_RED, "Admin: %s has removed %s's mapper status.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0));
  51014. SendInfoMessage(targetid, "%s has removed your mapper status.", ReturnNameEx(playerid, 0));
  51015. }
  51016. }
  51017. return 1;
  51018. }
  51019. CMD:setsupporter(playerid, params[])
  51020. {
  51021. new targetid, level;
  51022. if (Players[playerid][pAdmin] < 4 && Players[playerid][pSupporter] < 2)
  51023. {
  51024. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  51025. }
  51026. else if (sscanf(params, "ui", targetid, level))
  51027. {
  51028. return SendSyntaxMessage(playerid, "/setsupporter [playerid/name] [1: Supporter 2: Head Supporter]");
  51029. }
  51030. else if (!IsPlayerConnected(targetid))
  51031. {
  51032. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  51033. }
  51034. else if (IsPlayerNPC(targetid))
  51035. {
  51036. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  51037. }
  51038. else if (!IsPlayerLoggedIn(targetid))
  51039. {
  51040. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  51041. }
  51042. else if (level < 0 || level > 2)
  51043. {
  51044. return SendErrorMessage(playerid, "The specified level is invalid.");
  51045. }
  51046. else
  51047. {
  51048. Players[targetid][pSupporter] = level;
  51049. if (level)
  51050. {
  51051. SendAdminMessage(COLOR_RED, "Admin: %s has set %s's Supporter level to %s.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), GetSupporterLevel(level));
  51052. SendInfoMessage(targetid, "%s has set your Supporter level to %s.", ReturnNameEx(playerid, 0), GetSupporterLevel(level));
  51053. }
  51054. else
  51055. {
  51056. SendAdminMessage(COLOR_RED, "Admin: %s has removed %s's Supporter status.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0));
  51057. SendInfoMessage(targetid, "%s has removed your Supporter status.", ReturnNameEx(playerid, 0));
  51058. }
  51059. }
  51060. return 1;
  51061. }
  51062. CMD:setfactionmod(playerid, params[])
  51063. {
  51064. new targetid, level;
  51065. if (Players[playerid][pAdmin] < 5 && Players[playerid][pFactionMod] < 2)
  51066. {
  51067. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  51068. }
  51069. else if (sscanf(params, "ui", targetid, level))
  51070. {
  51071. return SendSyntaxMessage(playerid, "/setfactionmod [playerid/name] (1: moderator, 2: head)");
  51072. }
  51073. else if (!IsPlayerConnected(targetid))
  51074. {
  51075. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  51076. }
  51077. else if (IsPlayerNPC(targetid))
  51078. {
  51079. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  51080. }
  51081. else if (!IsPlayerLoggedIn(targetid))
  51082. {
  51083. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  51084. }
  51085. else if (level < 0 || level > 2)
  51086. {
  51087. return SendErrorMessage(playerid, "The specified level is invalid.");
  51088. }
  51089. else
  51090. {
  51091. Players[targetid][pFactionMod] = level;
  51092. if (level)
  51093. {
  51094. SendAdminMessage(COLOR_RED, "Admin: %s has set %s's faction management status to %s.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), GetFactionModLevel(level));
  51095. SendInfoMessage(targetid, "%s has set your faction management status to %s.", ReturnNameEx(playerid, 0), GetFactionModLevel(level));
  51096. }
  51097. else
  51098. {
  51099. SendAdminMessage(COLOR_RED, "Admin: %s has removed %s's faction management status.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0));
  51100. SendInfoMessage(targetid, "%s has removed your faction management status.", ReturnNameEx(playerid, 0));
  51101. }
  51102. }
  51103. return 1;
  51104. }
  51105. CMD:setveteran(playerid, params[])
  51106. {
  51107. new targetid;
  51108. if (Players[playerid][pAdmin] < 6)
  51109. {
  51110. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  51111. }
  51112. else if (sscanf(params, "u", targetid))
  51113. {
  51114. return SendSyntaxMessage(playerid, "/setveteran [playerid/name]");
  51115. }
  51116. else if (!IsPlayerConnected(targetid))
  51117. {
  51118. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  51119. }
  51120. else if (IsPlayerNPC(targetid))
  51121. {
  51122. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  51123. }
  51124. else if (!IsPlayerLoggedIn(targetid))
  51125. {
  51126. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  51127. }
  51128. else
  51129. {
  51130. Players[targetid][pVeteran] = !Players[targetid][pVeteran];
  51131. if (!Players[targetid][pVeteran])
  51132. {
  51133. SendAdminMessage(COLOR_RED, "Admin: %s has granted %s veteran status.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0));
  51134. SendInfoMessage(targetid, "%s has granted you veteran status.", ReturnNameEx(playerid, 0));
  51135. }
  51136. else
  51137. {
  51138. SendAdminMessage(COLOR_RED, "Admin: %s has removed %s's veteran status.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0));
  51139. SendInfoMessage(targetid, "%s has removed your veteran status.", ReturnNameEx(playerid, 0));
  51140. }
  51141. }
  51142. return 1;
  51143. }
  51144. CMD:helpme(playerid, params[])
  51145. {
  51146. if ((gettime() - Players[playerid][pSupportTime]) < SUPPORT_WAIT_TIME)
  51147. {
  51148. return SendErrorMessage(playerid, "You must wait %i seconds to ask for support again.", SUPPORT_WAIT_TIME - (gettime() - Players[playerid][pSupportTime]));
  51149. }
  51150. else if (isnull(params))
  51151. {
  51152. return SendSyntaxMessage(playerid, "/helpme (help request)");
  51153. }
  51154. else if (Players[playerid][pSupporter] > 0)
  51155. {
  51156. return SendErrorMessage(playerid, "You can't ask for help as a Supporter.");
  51157. }
  51158. else
  51159. {
  51160. foreach (new i : Player)
  51161. {
  51162. if (Players[i][pSupporter] > 0 && Players[i][pSupporterDuty])
  51163. {
  51164. SendFormatMessage(i, COLOR_SAMP, "(Supporter) %s (%i) has requested help: \"%s\"", ReturnNameEx(playerid, 0), playerid, params);
  51165. }
  51166. }
  51167. Players[playerid][pSupportTime] = gettime();
  51168. strpack(gHelpRequest[playerid], params, 128);
  51169. SendInfoMessage(playerid, "You have asked for help. Please wait for assistance.");
  51170. }
  51171. return 1;
  51172. }
  51173. CMD:staffchat(playerid, params[])
  51174. {
  51175. return cmd_sc(playerid, params);
  51176. }
  51177. CMD:sc(playerid, params[])
  51178. {
  51179. if(Players[playerid][pSupporter] > 0 || Players[playerid][pAdmin] > 0)
  51180. {
  51181. if (!Players[playerid][pShowSupporter])
  51182. {
  51183. return SendErrorMessage(playerid, "You have disabled the Staff chat (/settings).");
  51184. }
  51185. new string[256], input[128];
  51186. if(sscanf(params, "s[128]", input)) return SendSyntaxMessage(playerid, "/sc [message]");
  51187. if(Players[playerid][pAdmin] > 0) {
  51188. format(string, sizeof string, "** (%s) %s: %s **", ReturnAdminTitle(playerid), ReturnNameEx(playerid, 0), input);
  51189. }
  51190. else if(Players[playerid][pSupporter] > 0) {
  51191. format(string, sizeof string, "** (%s) %s: %s **", GetSupporterLevel(Players[playerid][pSupporter]), ReturnNameEx(playerid, 0), input);
  51192. }
  51193. foreach (new i : Player)
  51194. {
  51195. if(Players[i][pSupporter] > 0 || Players[i][pAdmin] > 0)
  51196. {
  51197. SendSplitMessage(i, COLOR_GREEN, string);
  51198. }
  51199. }
  51200. }
  51201. return 1;
  51202. }
  51203. CMD:mduty(playerid, params[])
  51204. {
  51205. if (Players[playerid][pMapper] < 1)
  51206. {
  51207. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  51208. }
  51209. else
  51210. {
  51211. Players[playerid][pMapperDuty] = !Players[playerid][pMapperDuty];
  51212. if (Players[playerid][pMapperDuty])
  51213. {
  51214. SendAdminMessage(COLOR_RED, "Admin: %s is now on mapper duty.", ReturnNameEx(playerid, 0));
  51215. }
  51216. else
  51217. {
  51218. SendAdminMessage(COLOR_RED, "Admin: %s is no longer on mapper duty.", ReturnNameEx(playerid, 0));
  51219. }
  51220. }
  51221. return 1;
  51222. }
  51223. CMD:sduty(playerid, params[])
  51224. {
  51225. if (Players[playerid][pSupporter] < 1)
  51226. {
  51227. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  51228. }
  51229. else
  51230. {
  51231. Players[playerid][pSupporterDuty] = !Players[playerid][pSupporterDuty];
  51232. UpdateNameTag(playerid, 1);
  51233. if (Players[playerid][pSupporterDuty])
  51234. {
  51235. SendSupporterMessage(COLOR_SAMP, "(Supporter) %s is now on Supporter duty.", ReturnNameEx(playerid, 0));
  51236. }
  51237. else
  51238. {
  51239. SendSupporterMessage(COLOR_SAMP, "(Supporter) %s is no longer on Supporter duty.", ReturnNameEx(playerid, 0));
  51240. }
  51241. }
  51242. return 1;
  51243. }
  51244. CMD:listhelp(playerid, params[])
  51245. {
  51246. if (Players[playerid][pSupporter] < 1)
  51247. {
  51248. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  51249. }
  51250. else
  51251. {
  51252. SendClientMessage(playerid, COLOR_GREY, "-------------------------------------------------------------------");
  51253. foreach (new i : Player)
  51254. {
  51255. if (IsHelpRequestActive(i))
  51256. {
  51257. SendFormatMessage(playerid, COLOR_WHITE, "** %s (ID: %i) -> \"%s\"", ReturnNameEx(i, 0), i, GetHelpRequest(i));
  51258. }
  51259. }
  51260. SendClientMessage(playerid, COLOR_GREY, "-------------------------------------------------------------------");
  51261. SendInfoMessage(playerid, "Use /answerhelp or /declinehelp.");
  51262. }
  51263. return 1;
  51264. }
  51265. CMD:ah(playerid, params[])
  51266. {
  51267. return cmd_answerhelp(playerid,params);
  51268. }
  51269. CMD:answerhelp(playerid, params[])
  51270. {
  51271. new targetid;
  51272. if (Players[playerid][pSupporter] < 1)
  51273. {
  51274. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  51275. }
  51276. else if (sscanf(params, "u", targetid))
  51277. {
  51278. return SendSyntaxMessage(playerid, "/answerhelp [playerid/name]");
  51279. }
  51280. else if (!IsPlayerConnected(targetid))
  51281. {
  51282. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  51283. }
  51284. else if (!IsHelpRequestActive(targetid))
  51285. {
  51286. return SendErrorMessage(playerid, "The specified target hasn't asked for help yet.");
  51287. }
  51288. else if (Players[playerid][pHelpRequest] != INVALID_PLAYER_ID)
  51289. {
  51290. return SendErrorMessage(playerid, "You have already answered a help request (/closehelp).");
  51291. }
  51292. else
  51293. {
  51294. Statistics[playerid][sHelpRequests]++;
  51295. Players[playerid][pHelpRequest] = targetid;
  51296. Players[targetid][pHelpRequest] = playerid;
  51297. SendSupporterMessage(COLOR_SAMP, "(Supporter) %s has answered %s's support request.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0));
  51298. ResetHelpRequest(targetid);
  51299. SendInfoMessage(playerid, "You have answered %s's help request. Use /reply to reply and /closehelp to close it.", ReturnNameEx(targetid, 0));
  51300. SendInfoMessage(targetid, "%s has accepted your help request! Use /reply to reply and /closehelp to close it.", ReturnNameEx(playerid, 0));
  51301. }
  51302. return 1;
  51303. }
  51304. CMD:reply(playerid, params[])
  51305. {
  51306. if (Players[playerid][pHelpRequest] != INVALID_PLAYER_ID)
  51307. {
  51308. if (isnull(params))
  51309. {
  51310. return SendSyntaxMessage(playerid, "/reply (text)");
  51311. }
  51312. else if (Players[playerid][pSupporter] > 0)
  51313. {
  51314. SendFormatMessage(playerid, COLOR_YELLOW, "* Supporter %s: %s", ReturnNameEx(playerid, 0), params);
  51315. SendFormatMessage(Players[playerid][pHelpRequest], COLOR_YELLOW, "* Supporter %s: %s", ReturnNameEx(playerid, 0), params);
  51316. }
  51317. else
  51318. {
  51319. SendFormatMessage(playerid, COLOR_YELLOW, "* Player %s: %s", ReturnNameEx(playerid, 0), params);
  51320. SendFormatMessage(Players[playerid][pHelpRequest], COLOR_YELLOW, "* Player %s: %s", ReturnNameEx(playerid, 0), params);
  51321. }
  51322. }
  51323. return 1;
  51324. }
  51325. CMD:dh(playerid, params[])
  51326. {
  51327. return cmd_declinehelp(playerid,params);
  51328. }
  51329. CMD:declinehelp(playerid, params[])
  51330. {
  51331. new targetid;
  51332. if (Players[playerid][pSupporter] < 1)
  51333. {
  51334. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  51335. }
  51336. else if (sscanf(params, "u", targetid))
  51337. {
  51338. return SendSyntaxMessage(playerid, "/declinehelp [playerid/name]");
  51339. }
  51340. else if (!IsPlayerConnected(targetid))
  51341. {
  51342. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  51343. }
  51344. else if (!IsHelpRequestActive(targetid))
  51345. {
  51346. return SendErrorMessage(playerid, "The specified target hasn't asked for help yet.");
  51347. }
  51348. else
  51349. {
  51350. SendSupporterMessage(COLOR_SAMP, "(Supporter) %s has declined %s's support request.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0));
  51351. SendInfoMessage(targetid, "%s has declined your help request.", ReturnNameEx(playerid, 0));
  51352. ResetHelpRequest(targetid);
  51353. }
  51354. return 1;
  51355. }
  51356. CMD:closehelp(playerid, params[])
  51357. {
  51358. if (Players[playerid][pHelpRequest] != INVALID_PLAYER_ID)
  51359. {
  51360. SendInfoMessage(Players[playerid][pHelpRequest], "%s has closed the help request.", ReturnNameEx(playerid, 0));
  51361. SendInfoMessage(playerid, "You have closed the help request.");
  51362. Players[Players[playerid][pHelpRequest]][pHelpRequest] = INVALID_PLAYER_ID;
  51363. Players[playerid][pHelpRequest] = INVALID_PLAYER_ID;
  51364. }
  51365. return 1;
  51366. }
  51367. CMD:mappers(playerid, params[])
  51368. {
  51369. SendClientMessage(playerid, COLOR_YELLOW, "List of Mappers:");
  51370. foreach (new i : Player)
  51371. {
  51372. if (Players[i][pMapper] > 0)
  51373. {
  51374. if (Players[i][pMapperDuty])
  51375. {
  51376. SendFormatMessage(playerid, COLOR_TESTER, "* %s (ID: %i) (%s) (On Duty)", ReturnNameEx(i, 0), i, GetMapperLevel(Players[i][pMapper]));
  51377. }
  51378. else
  51379. {
  51380. SendFormatMessage(playerid, COLOR_WHITE, "* %s (ID: %i) (%s) (Off Duty)", ReturnNameEx(i, 0), i, GetMapperLevel(Players[i][pMapper]));
  51381. }
  51382. }
  51383. }
  51384. return 1;
  51385. }
  51386. CMD:supporters(playerid, params[])
  51387. {
  51388. SendClientMessage(playerid, COLOR_YELLOW, "List of Supporters:");
  51389. foreach (new i : Player)
  51390. {
  51391. if (Players[i][pSupporter] > 0)
  51392. {
  51393. if (Players[i][pSupporterDuty])
  51394. {
  51395. SendFormatMessage(playerid, COLOR_TESTER, "* %s (ID: %i) (%s) (On Duty)", ReturnNameEx(i, 0), i, GetSupporterLevel(Players[i][pSupporter]));
  51396. }
  51397. else
  51398. {
  51399. SendFormatMessage(playerid, COLOR_WHITE, "* %s (ID: %i) (%s) (Off Duty)", ReturnNameEx(i, 0), i, GetSupporterLevel(Players[i][pSupporter]));
  51400. }
  51401. }
  51402. }
  51403. return 1;
  51404. }
  51405. CMD:editdealercars(playerid, params[])
  51406. {
  51407. new company;
  51408. if (Players[playerid][pAdmin] < 5)
  51409. {
  51410. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  51411. }
  51412. else if (sscanf(params, "i", company))
  51413. {
  51414. return SendSyntaxMessage(playerid, "/editdealercars (company ID)");
  51415. }
  51416. else if (!IsValidCompanyID(company))
  51417. {
  51418. return SendErrorMessage(playerid, "You have specified an invalid company.");
  51419. }
  51420. else if (Companies[company][cType] != COMPANY_DEALERSHIP)
  51421. {
  51422. return SendErrorMessage(playerid, "You can only add dealership cars to dealerships.");
  51423. }
  51424. else
  51425. {
  51426. ShowDealershipEditMenu(playerid, company);
  51427. }
  51428. return 1;
  51429. }
  51430. CMD:addfaction(playerid, params[])
  51431. {
  51432. new type, name[32];
  51433. if (Players[playerid][pAdmin] < 5 && !Players[playerid][pFactionMod])
  51434. {
  51435. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  51436. }
  51437. else if (sscanf(params, "is[32]", type, name))
  51438. {
  51439. SendSyntaxMessage(playerid, "/addfaction (type ID) (name)");
  51440. SendClientMessage(playerid, COLOR_LIGHTGREY, "Types: 1 - LEO, 2 - Medical, 3 - Government, 4 - Illegal, 5 = News");
  51441. return 1;
  51442. }
  51443. else if (!(1 <= type <= 5))
  51444. {
  51445. return SendErrorMessage(playerid, "You have specified an invalid faction type.");
  51446. }
  51447. else
  51448. {
  51449. new id = GetNextFactionID();
  51450. if (id == INVALID_ID)
  51451. {
  51452. SendErrorMessage(playerid, "There are no available faction slots.");
  51453. }
  51454. else
  51455. {
  51456. strcpy(Factions[id][fcName], name, 32);
  51457. Factions[id][fcExists] = 1;
  51458. Factions[id][fcType] = type;
  51459. Factions[id][fcColor] = -1;
  51460. Factions[id][fcMaxRanks] = 5;
  51461. Factions[id][fcLockerX] = 0.0;
  51462. Factions[id][fcLockerY] = 0.0;
  51463. Factions[id][fcLockerZ] = 0.0;
  51464. Factions[id][fcLockerInt] = 0;
  51465. Factions[id][fcLockerWorld] = 0;
  51466. Factions[id][fcPickup] = INVALID_ID;
  51467. Factions[id][fcText] = INVALID_3DTEXT_ID;
  51468. format(gExecute, sizeof(gExecute), "INSERT INTO rp_factions (fcName, fcType) VALUES('%s', %i)", mysql_escaped(name), type);
  51469. mysql_tquery(gConnection, gExecute, "OnFactionAdded", "i", id);
  51470. SendAdminMessage(COLOR_RED, "Admin: %s has created faction %i (%s).", ReturnNameEx(playerid, 0), id, name);
  51471. }
  51472. }
  51473. return 1;
  51474. }
  51475. CMD:editfaction(playerid, params[])
  51476. {
  51477. new faction;
  51478. if (Players[playerid][pAdmin] < 5 && !Players[playerid][pFactionMod])
  51479. {
  51480. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  51481. }
  51482. else if (sscanf(params, "i", faction))
  51483. {
  51484. return SendSyntaxMessage(playerid, "/editfaction (faction ID)");
  51485. }
  51486. else if (!IsValidFactionID(faction))
  51487. {
  51488. return SendErrorMessage(playerid, "You have specified an invalid faction ID.");
  51489. }
  51490. else
  51491. {
  51492. ShowFactionEditMenu(playerid, faction);
  51493. }
  51494. return 1;
  51495. }
  51496. //ToDo: Remove if not needed. ~Nutter
  51497. /*CMD:deletefaction(playerid, params[])
  51498. {
  51499. new faction;
  51500. if (Players[playerid][pAdmin] < 5 && !Players[playerid][pFactionMod])
  51501. {
  51502. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  51503. }
  51504. else if (sscanf(params, "i", faction))
  51505. {
  51506. return SendSyntaxMessage(playerid, "/deletefaction (faction ID)");
  51507. }
  51508. else if (!IsValidFactionID(faction))
  51509. {
  51510. return SendErrorMessage(playerid, "You have specified an invalid faction ID.");
  51511. }
  51512. else
  51513. {
  51514. foreach (new i : Player)
  51515. {
  51516. if (GetPlayerFactionID(i) == faction)
  51517. {
  51518. SendInfoMessage(i, "You have been kicked from your faction due to deletion.");
  51519. ResetFactionInfo(i);
  51520. }
  51521. }
  51522. ClearFactionGates(faction);
  51523. ClearFactionVehicles(faction);
  51524. format(gExecute, sizeof(gExecute), "DELETE FROM rp_factions WHERE `fcID` = %i", Factions[faction][fcID]);
  51525. mysql_tquery(gConnection, gExecute);
  51526. format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET FactionID = 0 WHERE FactionID = %i", Factions[faction][fcID]);
  51527. mysql_tquery(gConnection, gExecute);
  51528. mysql_format(gConnection, gExecute, sizeof(gExecute), "DELETE FROM rp_factionequipmentWHERE itemFactionID = %i", Factions[faction][fcID]);
  51529. mysql_tquery(gConnection, gExecute);
  51530. mysql_format(gConnection, gExecute, sizeof(gExecute), "DELETE FROM rp_factionaccessories WHERE accessoryFactionID = %i", Factions[faction][fcID]);
  51531. mysql_tquery(gConnection, gExecute);
  51532. ResetFaction(faction);
  51533. SendAdminMessage(COLOR_RED, "Admin: %s has deleted faction %i.", ReturnNameEx(playerid, 0), faction);
  51534. }
  51535. return 1;
  51536. }*/
  51537. CMD:factions(playerid, params[])
  51538. {
  51539. gListString = "ID\tName\tOnline";
  51540. for (new i = 0; i < MAX_FACTIONS; i ++)
  51541. {
  51542. if (IsValidFactionID(i))
  51543. {
  51544. format(gListString, sizeof(gListString), "%s\n%i\t%s\t%i players", gListString, i, Factions[i][fcName], GetFactionOnlineMembers(i));
  51545. }
  51546. }
  51547. if (isnull(gListString))
  51548. {
  51549. SendErrorMessage(playerid, "There are currently no factions.");
  51550. }
  51551. else
  51552. {
  51553. Dialog_Show(playerid, FactionList, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Factions", gListString, "Close", "");
  51554. }
  51555. return 1;
  51556. }
  51557. CMD:setfaction(playerid, params[])
  51558. {
  51559. new targetid, faction, rank;
  51560. if (Players[playerid][pAdmin] < 5 && !Players[playerid][pFactionMod])
  51561. {
  51562. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  51563. }
  51564. else if (sscanf(params, "iiI(-1)", targetid, faction, rank))
  51565. {
  51566. SendSyntaxMessage(playerid, "/setfaction [playerid/name] (faction) [optional rank]");
  51567. SendInfoMessage(playerid, "Use -1 as the faction ID to reset the faction.");
  51568. return 1;
  51569. }
  51570. else if (!IsPlayerConnected(targetid))
  51571. {
  51572. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  51573. }
  51574. else if (IsPlayerNPC(targetid))
  51575. {
  51576. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  51577. }
  51578. else if (!IsPlayerLoggedIn(targetid))
  51579. {
  51580. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  51581. }
  51582. else
  51583. {
  51584. if (faction != -1)
  51585. {
  51586. if (!IsValidFactionID(faction))
  51587. {
  51588. return SendErrorMessage(playerid, "You have specified an invalid faction ID.");
  51589. }
  51590. else if (rank != -1 && (rank < 1 || rank > Factions[faction][fcMaxRanks]))
  51591. {
  51592. return SendErrorMessage(playerid, "The specified rank must range between 1 and %i.", Factions[faction][fcMaxRanks]);
  51593. }
  51594. else
  51595. {
  51596. if (rank == -1) {
  51597. rank = Factions[faction][fcMaxRanks];
  51598. }
  51599. SetPlayerFaction(targetid, faction, rank);
  51600. if (Players[playerid][pFactionMod] > 0 && Players[playerid][pAdmin] < 5)
  51601. {
  51602. SendAdminMessage(COLOR_RED, "Admin: %s has set %s's faction to %s (rank %i).", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), Factions[faction][fcName], rank);
  51603. }
  51604. SendInfoMessage(playerid, "You have set %s's faction to: %s (rank %i).", ReturnNameEx(targetid, 0), Factions[faction][fcName], rank);
  51605. }
  51606. }
  51607. else
  51608. {
  51609. SendInfoMessage(playerid, "You have reset %s's faction.", ReturnNameEx(targetid, 0));
  51610. if (Players[targetid][pFactionCallsign] != 0)
  51611. {
  51612. g_Callsigns[ Players[targetid][pFactionCallsign] ][e_CallsignTakenBy] = INVALID_ID;
  51613. Players[targetid][pFactionCallsign] = 0;
  51614. }
  51615. ResetFactionInfo(targetid);
  51616. }
  51617. }
  51618. return 1;
  51619. }
  51620. CMD:auncuff(playerid, params[])
  51621. {
  51622. new targetid;
  51623. if (Players[playerid][pAdmin] < 1)
  51624. {
  51625. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  51626. }
  51627. else if (sscanf(params, "u", targetid))
  51628. {
  51629. return SendSyntaxMessage(playerid, "/auncuff [playerid/name]");
  51630. }
  51631. else if (!IsPlayerConnected(targetid))
  51632. {
  51633. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  51634. }
  51635. else if (IsPlayerNPC(targetid))
  51636. {
  51637. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  51638. }
  51639. else if (!IsPlayerLoggedIn(targetid))
  51640. {
  51641. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  51642. }
  51643. else if (!Players[targetid][pHandcuffed])
  51644. {
  51645. return SendErrorMessage(playerid, "The specified target is not handcuffed.");
  51646. }
  51647. else
  51648. {
  51649. SetPlayerSpecialAction(targetid, SPECIAL_ACTION_NONE);
  51650. Players[targetid][pHandcuffed] = 0;
  51651. Players[targetid][pCuffedBy] = INVALID_PLAYER_ID;
  51652. SendInfoMessage(targetid, "You have been uncuffed by an administrator.");
  51653. SendInfoMessage(playerid, "You have removed the handcuffs from %s.", ReturnNameEx(targetid, 0));
  51654. }
  51655. return 1;
  51656. }
  51657. CMD:tazer(playerid, params[])
  51658. {
  51659. cmd_taser(playerid, params);
  51660. return 1;
  51661. }
  51662. CMD:taser(playerid, params[])
  51663. {
  51664. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  51665. {
  51666. return SendErrorMessage(playerid, "You are not part of the law enforcement.");
  51667. }
  51668. else
  51669. {
  51670. Players[playerid][pAnticheat] = 2;
  51671. if (!Players[playerid][pTazer])
  51672. {
  51673. Players[playerid][pTazer] = 1;
  51674. SetPlayerAmmo(playerid, 23, 0);
  51675. GivePlayerWeapon(playerid, 23, 1);
  51676. if (IsPlayerInAnyVehicle(playerid)) {
  51677. SetPlayerArmedWeapon(playerid, 0);
  51678. } else {
  51679. SetReloadAnimation(playerid, 23);
  51680. }
  51681. ShowActionBubble(playerid, "* %s reaches for his duty belt taking out a taser and charges it.", ReturnNameEx(playerid));
  51682. SendInfoMessage(playerid, "You have taken out your taser.");
  51683. }
  51684. else
  51685. {
  51686. SetWeaponsForPlayer(playerid);
  51687. Players[playerid][pTazer] = 0;
  51688. ShowActionBubble(playerid, "* %s puts their taser on safety and holsters their taser.", ReturnNameEx(playerid));
  51689. SendInfoMessage(playerid, "You have put away your taser.");
  51690. }
  51691. }
  51692. return 1;
  51693. }
  51694. CMD:cuff(playerid, params[])
  51695. {
  51696. new targetid;
  51697. /*new item = GetInventoryItemID(playerid, "Cuffs");*/
  51698. /*if (!IsPlayerInFaction(playerid, FACTION_LEO))
  51699. {
  51700. return SendErrorMessage(playerid, "You are not part of the law enforcement.");
  51701. }*/
  51702. /*if (item == INVALID_ID)
  51703. {
  51704. return SendErrorMessage(playerid, "You don't have a pair of cuffs.");
  51705. }*/
  51706. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  51707. {
  51708. return SendErrorMessage(playerid, "You are not part of the law enforcement.");
  51709. }
  51710. else if (sscanf(params, "u", targetid))
  51711. {
  51712. return SendSyntaxMessage(playerid, "/cuff [playerid/name]");
  51713. }
  51714. else if (!IsPlayerConnected(targetid))
  51715. {
  51716. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  51717. }
  51718. else if (IsPlayerNPC(targetid))
  51719. {
  51720. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  51721. }
  51722. else if (!IsPlayerLoggedIn(targetid))
  51723. {
  51724. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  51725. }
  51726. else if (targetid == playerid)
  51727. {
  51728. return SendErrorMessage(playerid, "You can't cuff yourself.");
  51729. }
  51730. else if (!IsPlayerInRangeOfPlayer(playerid, targetid, 5.0))
  51731. {
  51732. return SendErrorMessage(playerid, "You must be in range of that player.");
  51733. }
  51734. else if (Players[targetid][pHandcuffed])
  51735. {
  51736. return SendErrorMessage(playerid, "The specified target is already cuffed.");
  51737. }
  51738. else
  51739. {
  51740. Players[targetid][pHandcuffed] = 1;
  51741. Players[targetid][pCuffedBy] = playerid;
  51742. SetPlayerSpecialAction(targetid, SPECIAL_ACTION_CUFFED);
  51743. ShowActionBubble(playerid, "* %s reaches for their handcuffs from their duty belt and slaps them around %s's wrists.", ReturnNameEx(playerid), ReturnNameEx(targetid));
  51744. SendInfoMessage(playerid, "You have handcuffed %s. Use /uncuff to remove the cuffs.", ReturnNameEx(targetid));
  51745. SendInfoMessage(targetid, "You have been handcuffed by %s.", ReturnNameEx(playerid));
  51746. }
  51747. return 1;
  51748. }
  51749. CMD:uncuff(playerid, params[])
  51750. {
  51751. new targetid;
  51752. //new item = GetInventoryItemID(playerid, "Cuff Keys");
  51753. /*if (item == INVALID_ID)
  51754. {
  51755. return SendErrorMessage(playerid, "You don't have the key.");
  51756. }*/
  51757. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  51758. {
  51759. return SendErrorMessage(playerid, "You are not part of the law enforcement.");
  51760. }
  51761. else if (sscanf(params, "u", targetid))
  51762. {
  51763. return SendSyntaxMessage(playerid, "/uncuff [playerid/name]");
  51764. }
  51765. else if (!IsPlayerConnected(targetid))
  51766. {
  51767. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  51768. }
  51769. else if (IsPlayerNPC(targetid))
  51770. {
  51771. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  51772. }
  51773. else if (!IsPlayerLoggedIn(targetid))
  51774. {
  51775. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  51776. }
  51777. /*else if (targetid == playerid)
  51778. {
  51779. return SendErrorMessage(playerid, "You can't uncuff yourself.");
  51780. }*/
  51781. else if (!IsPlayerInRangeOfPlayer(playerid, targetid, 5.0))
  51782. {
  51783. return SendErrorMessage(playerid, "You must be in range of that player.");
  51784. }
  51785. else if (!Players[targetid][pHandcuffed])
  51786. {
  51787. return SendErrorMessage(playerid, "The specified target is not cuffed.");
  51788. }
  51789. /*else if (Players[targetid][pCuffedBy] != playerid)
  51790. {
  51791. return SendErrorMessage(playerid, "You don't have the keys to the cuffs.");
  51792. }*/
  51793. else
  51794. {
  51795. Players[targetid][pHandcuffed] = 0;
  51796. Players[targetid][pCuffedBy] = INVALID_PLAYER_ID;
  51797. //AddItemToInventory(playerid, "Cuffs");
  51798. SendInfoMessage(targetid, "%s has removed the cuffs.", ReturnNameEx(playerid));
  51799. SendInfoMessage(playerid, "You have removed the cuffs from %s.", ReturnNameEx(targetid, 0));
  51800. SetPlayerSpecialAction(targetid, SPECIAL_ACTION_NONE);
  51801. }
  51802. return 1;
  51803. }
  51804. CMD:talk(playerid, params[])
  51805. {
  51806. if (isnull(params))
  51807. {
  51808. return SendSyntaxMessage(playerid, "/talk (talk text)");
  51809. }
  51810. else if (Players[playerid][pMuted])
  51811. {
  51812. return SendErrorMessage(playerid, "You cannot use this command since you're muted.");
  51813. }
  51814. SendDistanceMessage(playerid, 20.0, COLOR_WHITE, "%s says: %s", ReturnNameEx(playerid), params);
  51815. return 1;
  51816. }
  51817. CMD:t(playerid, params[])
  51818. {
  51819. cmd_talk(playerid, params);
  51820. return 1;
  51821. }
  51822. CMD:whisper(playerid, params[])
  51823. {
  51824. return cmd_w(playerid, params);
  51825. }
  51826. CMD:w(playerid, params[])
  51827. {
  51828. new targetid, text[128];
  51829. if (sscanf(params, "us[128]", targetid, text))
  51830. {
  51831. return SendSyntaxMessage(playerid, "/(w)hisper (player) (message)");
  51832. }
  51833. else if (!IsPlayerConnected(targetid))
  51834. {
  51835. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  51836. }
  51837. else if (targetid == playerid)
  51838. {
  51839. return SendErrorMessage(playerid, "You can't whisper to yourself.");
  51840. }
  51841. else if (!IsPlayerInRangeOfPlayer(playerid, targetid))
  51842. {
  51843. return SendErrorMessage(playerid, "The specified target is not near you.");
  51844. }
  51845. else if (Players[targetid][pSpectate] != INVALID_PLAYER_ID)
  51846. {
  51847. return SendErrorMessage(playerid, "The specified target is not near you.");
  51848. }
  51849. else
  51850. {
  51851. ShowActionBubble(playerid, "* %s mutters something to %s.", ReturnNameEx(playerid), ReturnNameEx(targetid));
  51852. SendSplitMessage(playerid, COLOR_PURPLE, "-> %s mutters something to %s.", ReturnNameEx(playerid), ReturnNameEx(targetid));
  51853. SendFormatMessage(playerid, COLOR_YELLOW, "Whisper to %s: %s", ReturnNameEx(targetid), text);
  51854. SendFormatMessage(targetid, COLOR_YELLOW, "%s whispers: %s", ReturnNameEx(playerid), text);
  51855. }
  51856. return 1;
  51857. }
  51858. /*
  51859. GiveCompanyMoney(company, money)
  51860. {
  51861. new tax = percent(money, Server[TaxRate]);
  51862. if (IsValidCompanyID(company))
  51863. {
  51864. Companies[company][cSafe] += money - tax;
  51865. SaveCompany(company);
  51866. Server[TaxVault] += tax;
  51867. SaveInformation();
  51868. }
  51869. }
  51870. */
  51871. CMD:charity(playerid, params[])
  51872. {
  51873. new amount;
  51874. new target[64];
  51875. new tax = percent(amount, Server[TaxRate]);
  51876. if (sscanf(params,"i",amount))
  51877. {
  51878. return SendSyntaxMessage(playerid, "/charity [amount]");
  51879. }
  51880. else if (amount < 1 || amount > Players[playerid][pPocketMoney])
  51881. {
  51882. return SendErrorMessage(playerid,"You don't have that much money.");
  51883. }
  51884. else
  51885. {
  51886. Players[playerid][pPocketMoney] -= amount;
  51887. Server[TaxVault] += tax;
  51888. SendInfoMessage(playerid,"You have paid %s to charity.", FormatNumber(amount));
  51889. format(target,sizeof(target),"Charity");
  51890. format(gExecute, sizeof(gExecute), "INSERT INTO rp_paylogs (Player, Target, Price, Date) VALUES('%s', '%s', %i, NOW())", ReturnName(playerid), target, amount );
  51891. mysql_tquery(gConnection, gExecute);
  51892. PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
  51893. SaveInformation();
  51894. }
  51895. return 1;
  51896. }
  51897. CMD:servertime(playerid, params[])
  51898. {
  51899. new Hour, Minute, Second;
  51900. gettime(Hour, Minute, Second);
  51901. new Year, Month, Day;
  51902. getdate(Year, Month, Day);
  51903. SendFormatMessage(playerid,COLOR_YELLOW,"SERVER TIME: %02d/%02d/%02d %02d:%02d:%02d", Day, Month, Year, Hour, Minute, Second);
  51904. return 1;
  51905. }
  51906. CMD:pay(playerid, params[])
  51907. {
  51908. new targetid, amount;
  51909. if (sscanf(params, "ui", targetid, amount))
  51910. {
  51911. return SendSyntaxMessage(playerid, "/pay [playerid/name] [amount]");
  51912. }
  51913. else if (!IsPlayerConnected(targetid))
  51914. {
  51915. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  51916. }
  51917. else if (IsPlayerNPC(targetid))
  51918. {
  51919. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  51920. }
  51921. else if (targetid == playerid)
  51922. {
  51923. return SendErrorMessage(playerid, "You can't give money to yourself.");
  51924. }
  51925. else if (!IsPlayerInRangeOfPlayer(playerid, targetid))
  51926. {
  51927. return SendErrorMessage(playerid, "The specified target is not near you.");
  51928. }
  51929. else if (amount < 1 || amount > Players[playerid][pPocketMoney])
  51930. {
  51931. return SendErrorMessage(playerid, "You don't have that much money.");
  51932. }
  51933. else if (Players[targetid][pSpectate] != INVALID_PLAYER_ID)
  51934. {
  51935. return SendErrorMessage(playerid, "The specified target is not near you.");
  51936. }
  51937. else
  51938. {
  51939. Players[targetid][pPocketMoney] += amount;
  51940. Players[playerid][pPocketMoney] -= amount;
  51941. PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
  51942. PlayerPlaySound(targetid, 1052, 0.0, 0.0, 0.0);
  51943. ShowActionBubble(playerid, "* %s takes some money from his wallet and passes it to %s.", ReturnNameEx(playerid), ReturnNameEx(targetid));
  51944. SendInfoMessage(playerid, "You have given %s from your wallet to %s.", FormatNumber(amount), ReturnNameEx(targetid));
  51945. SendInfoMessage(targetid, "%s has given you %s from their wallet.", ReturnNameEx(playerid), FormatNumber(amount));
  51946. if (!strcmp(ReturnIP(playerid), ReturnIP(targetid)))
  51947. {
  51948. SendAdminMessage(COLOR_RED, "Admin: %s (IP: %s) has paid %s to %s (IP: %s).", ReturnNameEx(playerid, 0), ReturnIP(playerid), FormatNumber(amount), ReturnNameEx(targetid, 0), ReturnIP(targetid));
  51949. }
  51950. format(gExecute, sizeof(gExecute), "INSERT INTO rp_paylogs (Player, Target, Price, Date) VALUES('%s', '%s', %i, NOW())", ReturnName(playerid), ReturnName(targetid), amount);
  51951. mysql_tquery(gConnection, gExecute);
  51952. if (amount > 50000)
  51953. {
  51954. SendAdminMessage(COLOR_RED, "Admin: %s has paid %s to %s.", ReturnNameEx(playerid, 0), FormatNumber(amount), ReturnNameEx(targetid, 0));
  51955. new notereason[128];
  51956. format(notereason, sizeof(notereason), "Paid: \"%s\"", FormatNumber(amount) );
  51957. //format(gExecute, sizeof(gExecute), "INSERT INTO rp_anotes (Player, Reason, Date, Issuer) VALUES(%i, '%s', NOW(), '%s')", Players[targetid][pID], mysql_escaped(notereason), ReturnName(playerid));
  51958. format(gExecute, sizeof(gExecute), "INSERT INTO rp_anotes (Player, PlayerName, Reason, Date, IssuerID, Issuer) VALUES(%i, '%s', '%s', NOW(), %i, '%s')", Players[targetid][pID], ReturnName(targetid), mysql_escaped(notereason), Players[playerid][pID], ReturnName(playerid));
  51959. mysql_tquery(gConnection, gExecute);
  51960. }
  51961. }
  51962. return 1;
  51963. }
  51964. CMD:givemoney(playerid, params[])
  51965. {
  51966. new targetid, amount;
  51967. if (Players[playerid][pAdmin] < 5)
  51968. {
  51969. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  51970. }
  51971. else if (sscanf(params, "ui", targetid, amount))
  51972. {
  51973. return SendSyntaxMessage(playerid, "/givemoney [playerid/name] (amount)");
  51974. }
  51975. else if (!IsPlayerConnected(targetid))
  51976. {
  51977. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  51978. }
  51979. else if (!IsPlayerLoggedIn(targetid))
  51980. {
  51981. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  51982. }
  51983. else
  51984. {
  51985. Players[targetid][pPocketMoney] = Players[targetid][pPocketMoney] + amount;
  51986. SendAdminMessage(COLOR_RED, "Admin: %s has given %s to %s.", ReturnNameEx(playerid, 0), FormatNumber(amount), ReturnNameEx(targetid, 0));
  51987. new notereason[128];
  51988. format(notereason, sizeof(notereason), "Given Money: \"%s\"", FormatNumber(amount) );
  51989. //format(gExecute, sizeof(gExecute), "INSERT INTO rp_anotes (Player, Reason, Date, Issuer) VALUES(%i, '%s', NOW(), '%s')", Players[targetid][pID], mysql_escaped(notereason), ReturnName(playerid));
  51990. format(gExecute, sizeof(gExecute), "INSERT INTO rp_anotes (Player, PlayerName, Reason, Date, IssuerID, Issuer) VALUES(%i, '%s', '%s', NOW(), %i, '%s')", Players[targetid][pID], ReturnName(targetid), mysql_escaped(notereason), Players[playerid][pID], ReturnName(playerid));
  51991. mysql_tquery(gConnection, gExecute);
  51992. }
  51993. return 1;
  51994. }
  51995. CMD:lastactive(playerid, params[])
  51996. {
  51997. new name[MAX_PLAYER_NAME];
  51998. if (sscanf(params, "s["#MAX_PLAYER_NAME"]", name))
  51999. {
  52000. return SendSyntaxMessage(playerid, "/lastactive (account name)");
  52001. }
  52002. else if (GetPlayerID(name) != INVALID_PLAYER_ID)
  52003. {
  52004. return SendInfoMessage(playerid, "%s is currently online.", name);
  52005. }
  52006. else
  52007. {
  52008. format(gExecute, sizeof(gExecute), "SELECT LoginDate FROM rp_accounts WHERE Username = '%s'", mysql_escaped(name));
  52009. mysql_tquery(gConnection, gExecute, "OnPlayerCheckActivity", "is", playerid, name);
  52010. }
  52011. return 1;
  52012. }
  52013. CMD:addarrestpoint(playerid, params[])
  52014. {
  52015. if (Players[playerid][pAdmin] < 5)
  52016. {
  52017. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  52018. }
  52019. else if (GetClosestArrestPoint(playerid) != INVALID_ID)
  52020. {
  52021. return SendErrorMessage(playerid, "There is another arrest point nearby.");
  52022. }
  52023. else
  52024. {
  52025. new id = GetNextArrestPointID();
  52026. if (id == INVALID_ID)
  52027. {
  52028. return SendErrorMessage(playerid, "There are no available arrest point slots.");
  52029. }
  52030. else
  52031. {
  52032. GetPlayerPos(playerid, ArrestPoints[id][apX], ArrestPoints[id][apY], ArrestPoints[id][apZ]);
  52033. ArrestPoints[id][apExists] = 1;
  52034. ArrestPoints[id][apInterior] = GetPlayerInterior(playerid);
  52035. ArrestPoints[id][apWorld] = GetPlayerVirtualWorld(playerid);
  52036. ArrestPoints[id][apPickup] = INVALID_ID;
  52037. ArrestPoints[id][apText] = INVALID_3DTEXT_ID;
  52038. format(gExecute, sizeof(gExecute), "INSERT INTO rp_arrestpoints (apX, apY, apZ, apInterior, apWorld) VALUES(%.4f, %.4f, %.4f, %i, %i)", ArrestPoints[id][apX], ArrestPoints[id][apY], ArrestPoints[id][apZ], ArrestPoints[id][apInterior], ArrestPoints[id][apWorld]);
  52039. mysql_tquery(gConnection, gExecute, "OnArrestPointAdded", "i", id);
  52040. UpdateArrestPoint(id);
  52041. SendInfoMessage(playerid, "You have added arrest point %i.", id);
  52042. }
  52043. }
  52044. return 1;
  52045. }
  52046. CMD:gotoarrestpoint(playerid, params[])
  52047. {
  52048. new point;
  52049. if (Players[playerid][pAdmin] < 5)
  52050. {
  52051. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  52052. }
  52053. else if (sscanf(params, "i", point))
  52054. {
  52055. return SendSyntaxMessage(playerid, "/gotoarrestpoint (point ID)");
  52056. }
  52057. else if (!IsValidArrestPointID(point))
  52058. {
  52059. return SendErrorMessage(playerid, "You have specified an invalid point ID.");
  52060. }
  52061. else
  52062. {
  52063. SetPlayerPosEx(playerid, ArrestPoints[point][apX], ArrestPoints[point][apY], ArrestPoints[point][apZ], 0.0, ArrestPoints[point][apInterior], ArrestPoints[point][apWorld]);
  52064. SendInfoMessage(playerid, "You have teleported to arrest point %i.", point);
  52065. }
  52066. return 1;
  52067. }
  52068. CMD:deletearrestpoint(playerid, params[])
  52069. {
  52070. new point;
  52071. if (Players[playerid][pAdmin] < 5)
  52072. {
  52073. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  52074. }
  52075. else if (sscanf(params, "i", point))
  52076. {
  52077. return SendSyntaxMessage(playerid, "/deletearrestpoint (point ID)");
  52078. }
  52079. else if (!IsValidArrestPointID(point))
  52080. {
  52081. return SendErrorMessage(playerid, "You have specified an invalid point ID.");
  52082. }
  52083. else
  52084. {
  52085. DestroyDynamic3DTextLabel(ArrestPoints[point][apText]);
  52086. DestroyDynamicPickup(ArrestPoints[point][apPickup]);
  52087. format(gExecute, sizeof(gExecute), "DELETE FROM rp_arrestpoints WHERE apID = %i", ArrestPoints[point][apID]);
  52088. mysql_tquery(gConnection, gExecute);
  52089. ArrestPoints[point][apExists] = 0;
  52090. SendInfoMessage(playerid, "You have deleted arrest point %i.", point);
  52091. }
  52092. return 1;
  52093. }
  52094. CMD:radio(playerid, params[])
  52095. {
  52096. return cmd_r(playerid, params);
  52097. }
  52098. CMD:deptradio(playerid, params[])
  52099. {
  52100. return cmd_dr(playerid, params);
  52101. }
  52102. CMD:r(playerid, params[])
  52103. {
  52104. new item = GetInventoryItemID(playerid, "Portable Radio");
  52105. if (item == INVALID_ID && GetPlayerFactionType(playerid) != FACTION_LEO)
  52106. {
  52107. return SendErrorMessage(playerid, "You don't have a portable radio.");
  52108. }
  52109. if (!Players[playerid][pChannel])
  52110. return SendErrorMessage(playerid, "Your radio does not have any frequency set.");
  52111. if (isnull(params))
  52112. return SendSyntaxMessage(playerid, "/(r)adio [radio message]");
  52113. if(Players[playerid][pChannel] == 911 && GetPlayerFactionType(playerid) != FACTION_LEO) return SendErrorMessage(playerid, "This is a government only frequency.");
  52114. foreach (new i : Player)
  52115. {
  52116. if (Players[playerid][pChannel] == 911 && GetPlayerFactionType(playerid) != FACTION_LEO) continue;
  52117. if (Players[i][pChannel] == Players[playerid][pChannel])
  52118. {
  52119. SendFormatMessage(i, COLOR_BLUE, "** [FREQ: %i] %s: %s **", Players[playerid][pChannel], ReturnNameEx(playerid), params);
  52120. }
  52121. }
  52122. //SendDistanceMessage(playerid, 20.0, COLOR_WHITE, "(Radio) %s says: %s", ReturnNameEx(playerid), params);
  52123. foreach (new i : Player)
  52124. {
  52125. if (IsPlayerInRangeOfPlayer(i, playerid, 20.0))
  52126. {
  52127. if (i != playerid)
  52128. {
  52129. SendFormatMessage(i, COLOR_WHITE, "(Radio) %s says: %s", ReturnNameEx(playerid), params);
  52130. }
  52131. }
  52132. }
  52133. /*
  52134. foreach (new i : Player)
  52135. {
  52136. if (IsPlayerInRangeOfPlayer(i, playerid, distance))
  52137. {
  52138. SendSplitMessage(i, color, str);
  52139. }
  52140. }
  52141. */
  52142. new cmd[128], cmdtext[128];
  52143. format(cmd,sizeof(cmd),"/r %i", Players[playerid][pChannel]);
  52144. format(cmdtext,sizeof(cmdtext),"(Radio) %s says: %s", ReturnNameEx(playerid), params);
  52145. AddChatLog(playerid, cmd, cmdtext);
  52146. return 1;
  52147. }
  52148. CMD:rlow(playerid, params[])
  52149. {
  52150. new item = GetInventoryItemID(playerid, "Portable Radio");
  52151. if (item == INVALID_ID)
  52152. {
  52153. return SendErrorMessage(playerid, "You don't have a portable radio.");
  52154. }
  52155. if (!Players[playerid][pChannel])
  52156. return SendErrorMessage(playerid, "Your radio does not have any frequency set.");
  52157. if (isnull(params))
  52158. return SendSyntaxMessage(playerid, "/rlow [radio message]");
  52159. if(Players[playerid][pChannel] == 911 && GetPlayerFactionType(playerid) != FACTION_LEO) return SendErrorMessage(playerid, "This is a government only frequency.");
  52160. foreach (new i : Player)
  52161. {
  52162. if (Players[playerid][pChannel] == 911 && GetPlayerFactionType(playerid) != FACTION_LEO) continue;
  52163. if (Players[i][pChannel] == Players[playerid][pChannel])
  52164. {
  52165. SendFormatMessage(i, COLOR_RADIO, "** [FREQ: %i] %s: %s **", Players[playerid][pChannel], ReturnNameEx(playerid), params);
  52166. }
  52167. }
  52168. //SendDistanceMessage(playerid, 5.0, COLOR_LIGHTGREY, "(Radio) %s says [low]: %s", ReturnNameEx(playerid), params);
  52169. new cmd[128], cmdtext[128];
  52170. format(cmd,sizeof(cmd),"/rlow %i", Players[playerid][pChannel]);
  52171. format(cmdtext,sizeof(cmdtext),"(Radio) %s says: %s", ReturnNameEx(playerid), params);
  52172. AddChatLog(playerid, cmd, cmdtext);
  52173. return 1;
  52174. }
  52175. CMD:f(playerid, params[])
  52176. {
  52177. new faction = Players[playerid][pFaction];
  52178. if (faction == INVALID_ID)
  52179. {
  52180. return SendErrorMessage(playerid, "You are not in a faction.");
  52181. }
  52182. else if (Players[playerid][pMuted])
  52183. {
  52184. return SendErrorMessage(playerid, "You cannot use this command since you're muted.");
  52185. }
  52186. else if (isnull(params))
  52187. {
  52188. return SendSyntaxMessage(playerid, "/(f)action (faction chat)");
  52189. }
  52190. else
  52191. {
  52192. SendFactionMessage(faction, COLOR_FACTIONCHAT, "(( %s %s: %s ))", GetPlayerFactionRank(playerid), ReturnNameEx(playerid, 0), params);
  52193. new text[128];
  52194. format(text,sizeof(text),"(( %s %s: %s ))", GetPlayerFactionRank(playerid), ReturnNameEx(playerid, 0), params);
  52195. AddChatLog(playerid, "/f", text);
  52196. foreach (new i : Player)
  52197. {
  52198. if (Players[i][pBigEars])
  52199. {
  52200. SendSplitMessage(i, COLOR_FACTIONCHAT, "(( %s %s: %s ))", GetPlayerFactionRank(playerid), ReturnNameEx(playerid, 0), params);
  52201. }
  52202. }
  52203. }
  52204. return 1;
  52205. }
  52206. CMD:quitsession(playerid, params[])
  52207. {
  52208. if(Players[playerid][pSession] == 1)
  52209. {
  52210. Players[playerid][pSession] = 0;
  52211. Players[playerid][pSessionCaller] = -1;
  52212. SendErrorMessage(playerid, "You have left your current session.");
  52213. }
  52214. else SendErrorMessage(playerid, "You are not in any session currently.");
  52215. return 1;
  52216. }
  52217. CMD:ses(playerid, params[])
  52218. {
  52219. new input[180], string[180];
  52220. if(sscanf(params, "s[180]", input)) return SendSyntaxMessage(playerid, "/ses [text]");
  52221. if(Players[playerid][pSession] == 1)
  52222. {
  52223. format(string, sizeof string, "{58E858}[%s] %s: %s", Factions[Players[playerid][pSessionCaller]][fcName], ReturnNameEx(playerid), input);
  52224. foreach(new i : Player)
  52225. {
  52226. SendSplitMessage(i, -1, string);
  52227. }
  52228. }
  52229. return 1;
  52230. }
  52231. CMD:removefromsession(playerid, params[])
  52232. {
  52233. new targetid;
  52234. if (!IsPlayerInFaction(playerid, FACTION_NEWS))
  52235. {
  52236. return SendErrorMessage(playerid, "You are not part of any news agency.");
  52237. }
  52238. else if (sscanf(params, "u", targetid))
  52239. {
  52240. return SendSyntaxMessage(playerid, "/removefromsession [playerid/name]");
  52241. }
  52242. else if (!IsPlayerConnected(targetid))
  52243. {
  52244. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  52245. }
  52246. else if (IsPlayerNPC(targetid))
  52247. {
  52248. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  52249. }
  52250. else if (!IsPlayerLoggedIn(targetid))
  52251. {
  52252. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  52253. }
  52254. else if(Players[targetid][pSession] == 0)
  52255. {
  52256. return SendErrorMessage(playerid, "Target is not in any session.");
  52257. }
  52258. else if(Players[targetid][pSessionCaller] != GetPlayerFactionID(playerid))
  52259. {
  52260. return SendErrorMessage(playerid, "Player is not in your news session.");
  52261. }
  52262. else
  52263. {
  52264. new factID = GetPlayerFactionID(playerid);
  52265. Players[targetid][pSession] = 0;
  52266. Players[targetid][pSessionCaller] = -1;
  52267. new string[128];
  52268. format(string, sizeof string, "{58E858)}[%s] {FFFFFF}You have removed %s from their session.", Factions[factID][fcName],ReturnName(targetid));
  52269. SendClientMessage(playerid, -1, string);
  52270. format(string, sizeof string, "{58E858)}[%s] {FFFFFF}You have been removed from the news session by %s.", Factions[factID][fcName],ReturnName(playerid));
  52271. SendClientMessage(targetid, -1, string);
  52272. }
  52273. return 1;
  52274. }
  52275. CMD:addtosession(playerid, params[])
  52276. {
  52277. new targetid;
  52278. if (!IsPlayerInFaction(playerid, FACTION_NEWS))
  52279. {
  52280. return SendErrorMessage(playerid, "You are not part of any news agency.");
  52281. }
  52282. else if (sscanf(params, "u", targetid))
  52283. {
  52284. return SendSyntaxMessage(playerid, "/addtosession [playerid/name]");
  52285. }
  52286. else if (!IsPlayerConnected(targetid))
  52287. {
  52288. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  52289. }
  52290. else if (IsPlayerNPC(targetid))
  52291. {
  52292. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  52293. }
  52294. else if (!IsPlayerLoggedIn(targetid))
  52295. {
  52296. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  52297. }
  52298. else if (!IsPlayerInRangeOfPlayer(playerid, targetid))
  52299. {
  52300. return SendErrorMessage(playerid, "The specified target is not near you.");
  52301. }
  52302. else if(Players[targetid][pSession] == 1)
  52303. {
  52304. return SendErrorMessage(playerid, "Target is already in a session.");
  52305. }
  52306. else
  52307. {
  52308. new factID = GetPlayerFactionID(playerid);
  52309. Players[targetid][pSessionCaller] = factID;
  52310. Players[targetid][pSession] = 1;
  52311. new string[128];
  52312. format(string, sizeof string, "{58E858)}[%s] {FFFFFF}You have added %s to the session.", Factions[factID][fcName], ReturnName(targetid));
  52313. SendClientMessage(playerid, -1, string);
  52314. format(string, sizeof string, "{58E858)}[%s] {FFFFFF}You have been added to the session by %s.", Factions[factID][fcName], ReturnName(playerid));
  52315. SendClientMessage(targetid, -1, string);
  52316. }
  52317. return 1;
  52318. }
  52319. CMD:d(playerid, params[])
  52320. {
  52321. cmd_dr(playerid, params);
  52322. return 1;
  52323. }
  52324. CMD:dr(playerid, params[])
  52325. {
  52326. new faction = Players[playerid][pFaction];
  52327. if (faction == INVALID_ID)
  52328. {
  52329. return SendErrorMessage(playerid, "You are not in a faction.");
  52330. }
  52331. else if (Players[playerid][pMuted])
  52332. {
  52333. return SendErrorMessage(playerid, "You cannot use this command since you're muted.");
  52334. }
  52335. else if (Factions[faction][fcType] == FACTION_ILLEGAL || Factions[faction][fcType] == FACTION_NEWS)
  52336. {
  52337. return SendErrorMessage(playerid, "You can't use this in an illegal faction.");
  52338. }
  52339. else if (isnull(params))
  52340. {
  52341. return SendSyntaxMessage(playerid, "/(d)ept(r)adio (department radio)");
  52342. }
  52343. else
  52344. {
  52345. SendDepartmentMessage(COLOR_ORANGE,"** [%s] %s %s: %s **",GetInitials(Factions[faction][fcName]), GetPlayerFactionRank(playerid),ReturnNameEx(playerid), params);
  52346. new text[128];
  52347. format(text,sizeof(text),"** [%s] %s %s: %s **", GetInitials(Factions[faction][fcName]), GetPlayerFactionRank(playerid), ReturnNameEx(playerid), params);
  52348. AddChatLog(playerid, "/dr", text);
  52349. }
  52350. return 1;
  52351. }
  52352. CMD:ofackick(playerid, params[])
  52353. {
  52354. new player[24];
  52355. if (Players[playerid][pFaction] == INVALID_ID)
  52356. {
  52357. return SendErrorMessage(playerid, "You are not in a faction.");
  52358. }
  52359. else if (sscanf(params, "s["#MAX_PLAYER_NAME"]", player))
  52360. {
  52361. return SendSyntaxMessage(playerid, "/ofackick (player)");
  52362. }
  52363. else if (!PlayerHasLeadership(playerid))
  52364. {
  52365. return SendErrorMessage(playerid, "You cannot use this command at your current rank.");
  52366. }
  52367. else
  52368. {
  52369. format(gExecute, sizeof(gExecute), "SELECT ID FROM rp_accounts WHERE Username = '%s' AND FactionID = %i AND FactionRank <= %i", mysql_escaped(player), Players[playerid][pFactionID], Players[playerid][pFactionRank]);
  52370. mysql_tquery(gConnection, gExecute, "OnPlayerFactionKick", "is", playerid, player);
  52371. }
  52372. return 1;
  52373. }
  52374. /*CMD:addcallsign(playerid, params[])
  52375. {
  52376. new callsign[128];
  52377. if (Players[playerid][pFaction] == INVALID_ID)
  52378. {
  52379. return SendErrorMessage(playerid, "You are not in a faction.");
  52380. }
  52381. else if (sscanf(params, "s[128]", callsign))
  52382. {
  52383. return SendSyntaxMessage(playerid, "/addcallsign [callsign]");
  52384. }
  52385. else if (!PlayerHasLeadership(playerid))
  52386. {
  52387. return SendErrorMessage(playerid, "You cannot use this command at your current rank.");
  52388. }
  52389. else
  52390. {
  52391. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_callsigns WHERE Callsign = '%s'", mysql_escaped(callsign));
  52392. mysql_tquery(gConnection, gExecute, "OnPlayerAddCallsign", "is", playerid, callsign);*/
  52393. /*format(gExecute, sizeof(gExecute), "INSERT INTO rp_callsigns (Faction, Callsign) VALUES(%i, '%s')", Players[playerid][pFaction], mysql_escaped(callsign));
  52394. mysql_tquery(gConnection, gExecute);
  52395. ListContacts(playerid);
  52396. SendInfoMessage(playerid, "You have added a contact: %s (%i).", gTargetName[playerid], number);*/
  52397. /*}
  52398. }*/
  52399. /*forward OnPlayerAddCallsign(playerid);
  52400. public OnPlayerAddCallsign(playerid)
  52401. {
  52402. if (!cache_get_row_count(gConnection))
  52403. {
  52404. format(gExecute, sizeof(gExecute), "INSERT INTO rp_callsigns (Faction, Callsign) VALUES(%i, '%s')", Players[playerid][pFaction], callsign);
  52405. mysql_tquery(gConnection, gExecute);
  52406. SendInfoMessage(playerid, "Callsign '%s' added.", callsign);
  52407. }
  52408. else
  52409. {
  52410. SendErrorMessage(playerid, "This callsign already exists.");
  52411. }
  52412. }
  52413. ListCallsigns(playerid)
  52414. {
  52415. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_callsigns WHERE Faction = %i", Players[playerid][pFaction]);
  52416. mysql_tquery(gConnection, gExecute, "OnPlayerListCallsigns", "i", playerid);
  52417. }
  52418. forward OnPlayerListCallsigns(playerid);
  52419. public OnPlayerListCallsigns(playerid)
  52420. {
  52421. new
  52422. rows = cache_get_row_count(gConnection),
  52423. callsign[128],
  52424. string[1024];
  52425. strcat(string, "Add Callsign");
  52426. for (new i = 0; i < rows; i ++)
  52427. {
  52428. cache_get_field_content(i, "Callsign", callsign, gConnection);
  52429. format(string, sizeof(string), "%s\n%s", string, callsign);
  52430. gListedItems[playerid][i] = cache_get_field_content_int(i, "ID");
  52431. }
  52432. Dialog_Show(playerid, Contacts, DIALOG_STYLE_LIST, "{FFFFFF}Callsigns", string, "Select", "Cancel");
  52433. }*/
  52434. /*
  52435. forward OnPlayerListContacts(playerid);
  52436. public OnPlayerListContacts(playerid)
  52437. {
  52438. new
  52439. rows = cache_get_row_count(gConnection),
  52440. contact[MAX_PLAYER_NAME],
  52441. string[1024];
  52442. strcat(string, "Add Contact");
  52443. for (new i = 0; i < rows; i ++)
  52444. {
  52445. cache_get_field_content(i, "Contact", contact, gConnection);
  52446. format(string, sizeof(string), "%s\n%s (%i)", string, contact, cache_get_field_content_int(i, "Number"));
  52447. gListedItems[playerid][i] = cache_get_field_content_int(i, "ID");
  52448. }
  52449. Dialog_Show(playerid, Contacts, DIALOG_STYLE_LIST, "{FFFFFF}My contacts", string, "Select", "Cancel");
  52450. }
  52451. ListCallsigns(playerid)
  52452. {
  52453. if (Players[playerid][pPhone] > 0)
  52454. {
  52455. format(gExecute, sizeof(gExecute), "SELECT * FROM rp_callsigns WHERE Phone = %i", Players[playerid][pPhone]);
  52456. mysql_tquery(gConnection, gExecute, "OnPlayerListContacts", "i", playerid);
  52457. }
  52458. }
  52459. forward OnMdcSearchPlayer(playerid, search[]);
  52460. public OnMdcSearchPlayer(playerid, search[])
  52461. {
  52462. if (!cache_get_row_count(gConnection))
  52463. {
  52464. Dialog_Show(playerid, MDC_LookUp, DIALOG_STYLE_INPUT, "{FFFFFF}Search Player", "That player was not found.\n\nPlease input the full name of the player:", "Submit", "Cancel");
  52465. }
  52466. else
  52467. {
  52468. strcpy(gTargetName[playerid], search, MAX_PLAYER_NAME);
  52469. Players[playerid][pSelected] = cache_get_field_content_int(0, "ID");
  52470. ShowMDCLookupPlayer(playerid);
  52471. }
  52472. }
  52473. */
  52474. CMD:facinvite(playerid, params[])
  52475. {
  52476. new targetid;
  52477. if (Players[playerid][pFaction] == INVALID_ID)
  52478. {
  52479. return SendErrorMessage(playerid, "You are not in a faction.");
  52480. }
  52481. else if (sscanf(params, "u", targetid))
  52482. {
  52483. return SendSyntaxMessage(playerid, "/facinvite [playerid/name]");
  52484. }
  52485. else if (!IsPlayerConnected(targetid))
  52486. {
  52487. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  52488. }
  52489. else if (IsPlayerNPC(targetid))
  52490. {
  52491. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  52492. }
  52493. else if (targetid == playerid)
  52494. {
  52495. return SendErrorMessage(playerid, "You can't invite yourself to a faction.");
  52496. }
  52497. else if (!PlayerHasLeadership(playerid))
  52498. {
  52499. return SendErrorMessage(playerid, "You cannot use this command at your current rank.");
  52500. }
  52501. else if (Players[targetid][pFaction] != INVALID_ID)
  52502. {
  52503. return SendErrorMessage(playerid, "The specifeid target is already in a faction.");
  52504. }
  52505. else
  52506. {
  52507. Players[targetid][pFactionOffer] = playerid;
  52508. SendInfoMessage(playerid, "You have invited %s to join your faction.", ReturnNameEx(targetid));
  52509. SendInfoMessage(targetid, "%s has invited you to join %s - use /acceptinvite to accept.", ReturnNameEx(playerid), Factions[Players[playerid][pFaction]][fcName]);
  52510. }
  52511. return 1;
  52512. }
  52513. CMD:fackick(playerid, params[])
  52514. {
  52515. new targetid;
  52516. if (Players[playerid][pFaction] == INVALID_ID)
  52517. {
  52518. return SendErrorMessage(playerid, "You are not in a faction.");
  52519. }
  52520. else if (sscanf(params, "u", targetid))
  52521. {
  52522. return SendSyntaxMessage(playerid, "/fackick [playerid/name]");
  52523. }
  52524. else if (!IsPlayerConnected(targetid))
  52525. {
  52526. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  52527. }
  52528. else if (IsPlayerNPC(targetid))
  52529. {
  52530. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  52531. }
  52532. else if (targetid == playerid)
  52533. {
  52534. return SendErrorMessage(playerid, "You can't kick yourself from a faction.");
  52535. }
  52536. else if (!PlayerHasLeadership(playerid))
  52537. {
  52538. return SendErrorMessage(playerid, "You cannot use this command at your current rank.");
  52539. }
  52540. else if (Players[targetid][pFaction] != Players[playerid][pFaction])
  52541. {
  52542. return SendErrorMessage(playerid, "The specific target is not in your faction.");
  52543. }
  52544. else
  52545. {
  52546. ResetFactionInfo(targetid);
  52547. SendInfoMessage(playerid, "You have kicked %s from the faction.", ReturnNameEx(targetid));
  52548. SendInfoMessage(targetid, "%s has kicked you from the faction.", ReturnNameEx(playerid));
  52549. }
  52550. return 1;
  52551. }
  52552. CMD:facleadership(playerid, params[])
  52553. {
  52554. new targetid;
  52555. if (Players[playerid][pFaction] == INVALID_ID)
  52556. {
  52557. return SendErrorMessage(playerid, "You are not in a faction.");
  52558. }
  52559. else if (sscanf(params, "u", targetid))
  52560. {
  52561. return SendSyntaxMessage(playerid, "/facleadership [playerid/name]");
  52562. }
  52563. else if (!IsPlayerConnected(targetid))
  52564. {
  52565. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  52566. }
  52567. else if (IsPlayerNPC(targetid))
  52568. {
  52569. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  52570. }
  52571. else if (targetid == playerid)
  52572. {
  52573. return SendErrorMessage(playerid, "You can't use this command on yourself.");
  52574. }
  52575. else if (!PlayerHasLeadership(playerid))
  52576. {
  52577. return SendErrorMessage(playerid, "You cannot use this command at your current rank.");
  52578. }
  52579. else if (Players[targetid][pFaction] != Players[playerid][pFaction])
  52580. {
  52581. return SendErrorMessage(playerid, "The specific target is not in your faction.");
  52582. }
  52583. else
  52584. {
  52585. Players[targetid][pFactionLeader] = !Players[targetid][pFactionLeader];
  52586. if (Players[targetid][pFactionLeader])
  52587. {
  52588. SendInfoMessage(playerid, "You have granted %s faction leadership permissions.", ReturnNameEx(targetid));
  52589. SendInfoMessage(targetid, "%s has granted you faction leadership permissions.", ReturnNameEx(playerid));
  52590. }
  52591. else
  52592. {
  52593. SendInfoMessage(playerid, "You have revoked %s's faction leadership permissions.", ReturnNameEx(targetid));
  52594. SendInfoMessage(targetid, "%s has revoked your faction leadership permissions.", ReturnNameEx(playerid));
  52595. }
  52596. }
  52597. return 1;
  52598. }
  52599. CMD:setrank(playerid, params[])
  52600. {
  52601. new targetid;
  52602. if (Players[playerid][pFaction] == INVALID_ID)
  52603. {
  52604. return SendErrorMessage(playerid, "You are not in a faction.");
  52605. }
  52606. else if (sscanf(params, "u", targetid))
  52607. {
  52608. return SendSyntaxMessage(playerid, "/setrank [playerid/name]");
  52609. }
  52610. else if (!IsPlayerConnected(targetid))
  52611. {
  52612. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  52613. }
  52614. else if (IsPlayerNPC(targetid))
  52615. {
  52616. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  52617. }
  52618. else if (targetid == playerid)
  52619. {
  52620. return SendErrorMessage(playerid, "You can't change your own rank.");
  52621. }
  52622. else if (!PlayerHasLeadership(playerid))
  52623. {
  52624. return SendErrorMessage(playerid, "You cannot use this command at your current rank.");
  52625. }
  52626. else if (Players[targetid][pFaction] != Players[playerid][pFaction])
  52627. {
  52628. return SendErrorMessage(playerid, "The specific target is not in your faction.");
  52629. }
  52630. else
  52631. {
  52632. new
  52633. rankNames[(MAX_RANK_NAME + 8) * MAX_FACTION_RANKS];
  52634. for (new i = 1; i <= Factions[Players[playerid][pFaction]][fcMaxRanks]; i ++) {
  52635. format(rankNames, sizeof(rankNames), "%s\n%i) %s", rankNames, i, GetFactionRank(Players[playerid][pFaction], i));
  52636. }
  52637. Dialog_Show(playerid, SetRank, DIALOG_STYLE_LIST, "{FFFFFF}Change Rank", rankNames, "Change", "Cancel");
  52638. Players[playerid][pChangeRank] = targetid;
  52639. }
  52640. return 1;
  52641. }
  52642. CMD:setbadge(playerid, params[])
  52643. {
  52644. new targetid, badge;
  52645. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  52646. return SendErrorMessage(playerid, "You are not part of the law enforcement.");
  52647. if(sscanf(params,"ui", targetid, badge))
  52648. return SendSyntaxMessage(playerid, "/setbadge [playerid/name] [badge]");
  52649. if(!IsPlayerConnected(targetid))
  52650. return SendErrorMessage(playerid,"The specified target doesn't exist.");
  52651. if(IsPlayerNPC(targetid))
  52652. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  52653. if(!IsPlayerLoggedIn(targetid))
  52654. return SendErrorMessage(playerid,"The specified target is not logged in yet.");
  52655. if(Players[targetid][pFaction] != Players[playerid][pFaction])
  52656. return SendErrorMessage(playerid,"The specific target is not in your faction.");
  52657. if (Players[playerid][pFactionRank] < Factions[Players[playerid][pFaction]][fcMaxRanks] / 2)
  52658. return SendErrorMessage(playerid,"You cannot use this command at your current rank.");
  52659. if(GetPlayerFactionType(playerid) != FACTION_LEO)
  52660. return SendErrorMessage(playerid,"Only for law enforcement.");
  52661. Players[playerid][pBadge] = badge;
  52662. SendInfoMessage(playerid,"You have set %s's badge to %i.",ReturnNameEx(targetid),badge);
  52663. SendInfoMessage(targetid,"%s has set your badge to %i.",ReturnNameEx(playerid),badge);
  52664. return 1;
  52665. }
  52666. CMD:asetbadge(playerid, params[])
  52667. {
  52668. new targetid, badge;
  52669. if(Players[playerid][pAdmin] < 1)
  52670. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  52671. if(sscanf(params,"ui", targetid, badge))
  52672. return SendSyntaxMessage(playerid, "/setbadge [playerid/name] [badge]");
  52673. if(!IsPlayerConnected(targetid))
  52674. return SendErrorMessage(playerid,"The specified target doesn't exist.");
  52675. if(IsPlayerNPC(targetid))
  52676. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  52677. if(!IsPlayerLoggedIn(targetid))
  52678. return SendErrorMessage(playerid,"The specified target is not logged in yet.");
  52679. Players[playerid][pBadge] = badge;
  52680. SendInfoMessage(playerid,"You have set %s's badge to %i.",ReturnNameEx(targetid),badge);
  52681. SendInfoMessage(targetid,"%s has set your badge to %i.",ReturnNameEx(playerid),badge);
  52682. return 1;
  52683. }
  52684. CMD:acceptfrisk(playerid, params[])
  52685. {
  52686. if (IsPlayerConnected(Players[playerid][pFriskOffer]))
  52687. {
  52688. if (!IsPlayerInRangeOfPlayer(playerid, Players[playerid][pFriskOffer]))
  52689. {
  52690. return SendErrorMessage(playerid, "You need to be near the player who offered the frisk.");
  52691. }
  52692. else
  52693. {
  52694. new success = ShowItemsForPlayer(Players[playerid][pFriskOffer], playerid);
  52695. ShowActionBubble(Players[playerid][pFriskOffer], "* %s frisks %s for illegal items.", ReturnNameEx(Players[playerid][pFriskOffer]), ReturnNameEx(playerid));
  52696. SendInfoMessage(playerid, "You have accepted %s's frisk offer.", ReturnNameEx(Players[playerid][pFriskOffer]));
  52697. if (!success)
  52698. {
  52699. SendErrorMessage(Players[playerid][pFriskOffer], "That player is not carrying any items.");
  52700. }
  52701. Players[playerid][pFriskOffer] = INVALID_PLAYER_ID;
  52702. }
  52703. }
  52704. return 1;
  52705. }
  52706. CMD:acceptinvite(playerid, params[])
  52707. {
  52708. if (IsPlayerConnected(Players[playerid][pFactionOffer]))
  52709. {
  52710. new faction = Players[Players[playerid][pFactionOffer]][pFaction];
  52711. if (IsValidFactionID(faction))
  52712. {
  52713. SetPlayerFaction(playerid, faction, 1);
  52714. SendInfoMessage(playerid, "You have accepted the faction invite! Use '/help faction' to see your new commands.");
  52715. SendInfoMessage(Players[playerid][pFactionOffer], "%s has accepted the faction invite.", ReturnNameEx(playerid));
  52716. }
  52717. Players[playerid][pFactionOffer] = INVALID_PLAYER_ID;
  52718. }
  52719. return 1;
  52720. }
  52721. CMD:acceptdeath(playerid, params[])
  52722. {
  52723. if (Players[playerid][pDeathState] != DEATH_STATE_INJURED)
  52724. {
  52725. SendErrorMessage(playerid, "You are currently not injured.");
  52726. }
  52727. else if (Players[playerid][pDeathTime] > gettime())
  52728. {
  52729. SendErrorMessage(playerid, "You must wait %i seconds before you can accept death.", (Players[playerid][pDeathTime] - gettime()));
  52730. }
  52731. else
  52732. {
  52733. SetPlayerHealth(playerid, -1);
  52734. ResetPlayer(playerid);
  52735. }
  52736. return 1;
  52737. }
  52738. CMD:resign(playerid, params[])
  52739. {
  52740. if (Players[playerid][pFaction] == INVALID_ID)
  52741. {
  52742. SendErrorMessage(playerid, "You are not part of a faction.");
  52743. }
  52744. else
  52745. {
  52746. Dialog_Show(playerid, Resign, DIALOG_STYLE_MSGBOX, "{FFFFFF}Resign from Faction", "Are you sure you want to resign from %s as a rank %i?", "Yes", "No", Factions[Players[playerid][pFaction]][fcName], Players[playerid][pFactionRank]);
  52747. }
  52748. return 1;
  52749. }
  52750. /*
  52751. enum e_Callsigns
  52752. {
  52753. e_CallsignID,
  52754. // 1-LSPD
  52755. e_CallsignFaction,
  52756. // Text of the callsign
  52757. e_CallsignTextShort[32],
  52758. // Text of the callsign
  52759. e_CallsignTextFull[64]
  52760. };
  52761. new g_Callsigns[][e_Callsigns] =
  52762. {
  52763. {0, 1, "1-A-1", "1-Adam-1"},
  52764. g_CompanyItems[i][e_ItemName]
  52765. */
  52766. /*CMD:callsign(playerid, params[])
  52767. {
  52768. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  52769. {
  52770. return SendErrorMessage(playerid, "You are not part of any law enforcement faction.");
  52771. }
  52772. else
  52773. {
  52774. if (Players[playerid][pDuty])
  52775. {
  52776. ShowCallsignMenu(playerid);
  52777. }
  52778. else
  52779. {
  52780. SendErrorMessage(playerid, "You are not on duty.");
  52781. }
  52782. }
  52783. return 1;
  52784. }*/
  52785. /*CMD:mdc(playerid, params[])
  52786. {
  52787. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  52788. {
  52789. return SendErrorMessage(playerid, "You are not a part of any law enforcement faction.");
  52790. }
  52791. else
  52792. {
  52793. if (Players[playerid][pDuty] && IsPoweredVehicle(GetPlayerVehicleID(playerid)))
  52794. {
  52795. ShowNewMDC(playerid);
  52796. }
  52797. else if(IsPlayerInRangeOfPoint(playerid,6.0,246.5929,121.1836,1003.2257))
  52798. {
  52799. ShowNewMDC(playerid);
  52800. }
  52801. else
  52802. {
  52803. switch (GetVehicleModel(GetPlayerVehicleID(playerid)))
  52804. {
  52805. case 427, 596, 597, 598, 490, 599:
  52806. {
  52807. ShowNewMDC(playerid);
  52808. }
  52809. default:
  52810. {
  52811. SendErrorMessage(playerid, "You are not in any vehicle with a MDC");
  52812. }
  52813. }
  52814. }
  52815. }
  52816. return 1;
  52817. }*/
  52818. CMD:mdc(playerid, params[])
  52819. {
  52820. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  52821. {
  52822. return SendErrorMessage(playerid, "You are not part of the law enforcement.");
  52823. }
  52824. else
  52825. {
  52826. if (Players[playerid][pDuty] && IsPoweredVehicle(GetPlayerVehicleID(playerid)))
  52827. {
  52828. ShowMDCMainMenu(playerid);
  52829. ShowActionBubble(playerid, "* %s logs onto a police computer.", ReturnNameEx(playerid));
  52830. }
  52831. else if(IsPlayerInRangeOfPoint(playerid,6.0,246.5929,121.1836,1003.2257))
  52832. {
  52833. ShowMDCMainMenu(playerid);
  52834. ShowActionBubble(playerid, "* %s logs onto a police computer.", ReturnNameEx(playerid));
  52835. }
  52836. else
  52837. {
  52838. switch (GetVehicleModel(GetPlayerVehicleID(playerid)))
  52839. {
  52840. case 427, 596, 597, 598, 490, 599:
  52841. {
  52842. ShowMDCMainMenu(playerid);
  52843. ShowActionBubble(playerid, "* %s logs onto a police computer.", ReturnNameEx(playerid));
  52844. }
  52845. default:
  52846. {
  52847. SendErrorMessage(playerid, "You are not in any vehicle with a MDC.");
  52848. }
  52849. }
  52850. }
  52851. }
  52852. return 1;
  52853. }
  52854. CMD:apb(playerid, params[])
  52855. {
  52856. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  52857. {
  52858. return SendErrorMessage(playerid, "You are not part of the law enforcement.");
  52859. }
  52860. else if (GetNextApbID() == INVALID_ID)
  52861. {
  52862. return SendErrorMessage(playerid, "The APB list is full right now!");
  52863. }
  52864. else if (isnull(params))
  52865. {
  52866. return SendSyntaxMessage(playerid, "/apb [description]");
  52867. }
  52868. else
  52869. {
  52870. AddApbToQueue(playerid, params);
  52871. SendInfoMessage(playerid, "APB added.");
  52872. }
  52873. return 1;
  52874. }
  52875. CMD:apblist(playerid, params[])
  52876. {
  52877. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  52878. {
  52879. return SendErrorMessage(playerid, "You are not part of the law enforcement.");
  52880. }
  52881. else
  52882. {
  52883. new success = ListApbs(playerid);
  52884. if (!success)
  52885. {
  52886. return SendErrorMessage(playerid,"There are no APBs active.");
  52887. }
  52888. }
  52889. return 1;
  52890. }
  52891. CMD:handsup(playerid, params[])
  52892. {
  52893. if (!IsAnimationPermitted(playerid))
  52894. {
  52895. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  52896. }
  52897. else
  52898. {
  52899. PlayAnimation(playerid, "SHOP", "SHP_Handsup_SCR", 4.1, 0, 0, 0, 1, 0, 1);
  52900. }
  52901. return 1;
  52902. }
  52903. CMD:piss(playerid, params[])
  52904. {
  52905. new type;
  52906. if (!IsAnimationPermitted(playerid))
  52907. {
  52908. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  52909. }
  52910. else if (sscanf(params, "i", type) || !(1 <= type <= 3))
  52911. {
  52912. return SendSyntaxMessage(playerid, "/piss (1 to 3)");
  52913. }
  52914. else
  52915. {
  52916. switch (type)
  52917. {
  52918. case 1: SetPlayerSpecialAction(playerid, 68);
  52919. case 2: PlayAnimation(playerid, "PAULNMAC", "Piss_in", 4.1, 0, 0, 0, 0, 0, 1);
  52920. case 3: PlayAnimation(playerid, "PAULNMAC", "Piss_out", 4.1, 0, 0, 0, 0, 0, 1);
  52921. }
  52922. }
  52923. return 1;
  52924. }
  52925. CMD:bar(playerid, params[])
  52926. {
  52927. new type;
  52928. if (!IsAnimationPermitted(playerid))
  52929. {
  52930. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  52931. }
  52932. else if (sscanf(params, "i", type) || !(1 <= type <= 7))
  52933. {
  52934. return SendSyntaxMessage(playerid, "/bar (1 to 7)");
  52935. }
  52936. else
  52937. {
  52938. switch (type)
  52939. {
  52940. case 1: PlayAnimation(playerid, "BAR", "Barcustom_get", 4.1, 0, 0, 0, 0, 0, 1);
  52941. case 2: PlayAnimation(playerid, "BAR", "Barcustom_order", 4.1, 0, 0, 0, 0, 0, 1);
  52942. case 3: PlayAnimation(playerid, "BAR", "Barserve_bottle", 4.1, 0, 0, 0, 0, 0, 1);
  52943. case 4: PlayAnimation(playerid, "BAR", "Barserve_give", 4.1, 0, 0, 0, 0, 0, 1);
  52944. case 5: PlayAnimation(playerid, "BAR", "Barserve_glass", 4.1, 0, 0, 0, 0, 0, 1);
  52945. case 6: PlayAnimation(playerid, "BAR", "Barserve_in", 4.1, 0, 0, 0, 0, 0, 1);
  52946. case 7: PlayAnimation(playerid, "BAR", "Barserve_loop", 4.1, 1, 0, 0, 0, 0, 1);
  52947. }
  52948. }
  52949. return 1;
  52950. }
  52951. CMD:kiss(playerid, params[])
  52952. {
  52953. new type;
  52954. if (!IsAnimationPermitted(playerid))
  52955. {
  52956. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  52957. }
  52958. else if (sscanf(params, "i", type) || !(1 <= type <= 6))
  52959. {
  52960. return SendSyntaxMessage(playerid, "/kiss (1 to 6)");
  52961. }
  52962. else
  52963. {
  52964. switch (type)
  52965. {
  52966. case 1: PlayAnimation(playerid, "KISSING", "Grlfrd_Kiss_01", 4.1, 0, 0, 0, 0, 0, 1);
  52967. case 2: PlayAnimation(playerid, "KISSING", "Grlfrd_Kiss_02", 4.1, 0, 0, 0, 0, 0, 1);
  52968. case 3: PlayAnimation(playerid, "KISSING", "Grlfrd_Kiss_03", 4.1, 0, 0, 0, 0, 0, 1);
  52969. case 4: PlayAnimation(playerid, "KISSING", "Playa_Kiss_01", 4.1, 0, 0, 0, 0, 0, 1);
  52970. case 5: PlayAnimation(playerid, "KISSING", "Playa_Kiss_02", 4.1, 0, 0, 0, 0, 0, 1);
  52971. case 6: PlayAnimation(playerid, "KISSING", "Playa_Kiss_03", 4.1, 0, 0, 0, 0, 0, 1);
  52972. }
  52973. }
  52974. return 1;
  52975. }
  52976. CMD:wash(playerid, params[])
  52977. {
  52978. if (!IsAnimationPermitted(playerid))
  52979. {
  52980. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  52981. }
  52982. else
  52983. {
  52984. PlayAnimation(playerid, "BD_FIRE", "wash_up", 4.1, 0, 0, 0, 0, 0, 1);
  52985. }
  52986. return 1;
  52987. }
  52988. CMD:fsit(playerid, params[])
  52989. {
  52990. if(!IsAnimationPermitted(playerid))
  52991. {
  52992. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  52993. }
  52994. else
  52995. {
  52996. PlayAnimation(playerid, "BEACH", "ParkSit_M_loop", 4.1, 1, 0, 0, 0, 0, 1);
  52997. }
  52998. return 1;
  52999. }
  53000. CMD:lay(playerid, params[])
  53001. {
  53002. new type;
  53003. if (!IsAnimationPermitted(playerid))
  53004. {
  53005. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53006. }
  53007. else if (sscanf(params, "i", type) || !(1 <= type <= 5))
  53008. {
  53009. return SendSyntaxMessage(playerid, "/lay [1-4]");
  53010. }
  53011. else
  53012. {
  53013. switch (type)
  53014. {
  53015. case 1: PlayAnimation(playerid, "BEACH", "bather", 4.1, 1, 0, 0, 0, 0, 1);
  53016. case 2: PlayAnimation(playerid, "BEACH", "Lay_Bac_Loop", 4.1, 1, 0, 0, 0, 0, 1);
  53017. case 3: PlayAnimation(playerid, "BEACH", "ParkSit_W_loop", 4.1, 1, 0, 0, 0, 0, 1);
  53018. case 4: PlayAnimation(playerid, "BEACH", "SitnWait_loop_W", 4.1, 1, 0, 0, 0, 0, 1);
  53019. }
  53020. }
  53021. return 1;
  53022. }
  53023. CMD:blowjob(playerid, params[])
  53024. {
  53025. new type;
  53026. if (!IsAnimationPermitted(playerid))
  53027. {
  53028. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53029. }
  53030. else if (sscanf(params, "i", type) || !(1 <= type <= 12))
  53031. {
  53032. return SendSyntaxMessage(playerid, "/blowjob (1 to 12)");
  53033. }
  53034. else
  53035. {
  53036. switch (type)
  53037. {
  53038. case 1: PlayAnimation(playerid, "BLOWJOBZ", "BJ_COUCH_START_W", 4.1, 0, 0, 0, 1, 0, 1);
  53039. case 2: PlayAnimation(playerid, "BLOWJOBZ", "BJ_COUCH_LOOP_W", 4.1, 1, 0, 0, 0, 0, 1);
  53040. case 3: PlayAnimation(playerid, "BLOWJOBZ", "BJ_COUCH_END_W", 4.1, 0, 0, 0, 0, 0, 1);
  53041. case 4: PlayAnimation(playerid, "BLOWJOBZ", "BJ_COUCH_START_P", 4.1, 0, 0, 0, 1, 0, 1);
  53042. case 5: PlayAnimation(playerid, "BLOWJOBZ", "BJ_COUCH_LOOP_P", 4.1, 1, 0, 0, 0, 0, 1);
  53043. case 6: PlayAnimation(playerid, "BLOWJOBZ", "BJ_COUCH_END_P", 4.1, 0, 0, 0, 0, 0, 1);
  53044. case 7: PlayAnimation(playerid, "BLOWJOBZ", "BJ_STAND_START_W", 4.1, 0, 0, 0, 1, 0, 1);
  53045. case 8: PlayAnimation(playerid, "BLOWJOBZ", "BJ_STAND_LOOP_W", 4.1, 1, 0, 0, 0, 0, 1);
  53046. case 9: PlayAnimation(playerid, "BLOWJOBZ", "BJ_STAND_END_W", 4.1, 0, 0, 0, 0, 0, 1);
  53047. case 10: PlayAnimation(playerid, "BLOWJOBZ", "BJ_STAND_START_P", 4.1, 0, 0, 0, 1, 0, 1);
  53048. case 11: PlayAnimation(playerid, "BLOWJOBZ", "BJ_STAND_LOOP_P", 4.1, 1, 0, 0, 0, 0, 1);
  53049. case 12: PlayAnimation(playerid, "BLOWJOBZ", "BJ_STAND_END_P", 4.1, 0, 0, 0, 0, 0, 1);
  53050. }
  53051. }
  53052. return 1;
  53053. }
  53054. CMD:bomb(playerid, params[])
  53055. {
  53056. if (!IsAnimationPermitted(playerid))
  53057. {
  53058. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53059. }
  53060. else
  53061. {
  53062. PlayAnimation(playerid, "BOMBER", "BOM_Plant_Loop", 4.1, 1, 0, 0, 0, 0, 1);
  53063. }
  53064. return 1;
  53065. }
  53066. CMD:basketball(playerid, params[])
  53067. {
  53068. new type;
  53069. if (!IsAnimationPermitted(playerid))
  53070. {
  53071. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53072. }
  53073. else if (sscanf(params, "i", type) || !(1 <= type <= 8))
  53074. {
  53075. return SendSyntaxMessage(playerid, "/basketball (1 to 8)");
  53076. }
  53077. else
  53078. {
  53079. switch (type)
  53080. {
  53081. case 1: PlayAnimation(playerid, "BSKTBALL", "BBALL_def_jump_shot", 4.1, 0, 0, 0, 0, 0, 1);
  53082. case 2: PlayAnimation(playerid, "BSKTBALL", "BBALL_def_loop", 4.1, 1, 0, 0, 0, 0, 1);
  53083. case 3: PlayAnimation(playerid, "BSKTBALL", "BBALL_Dnk", 4.1, 0, 0, 0, 0, 0, 1);
  53084. case 4: PlayAnimation(playerid, "BSKTBALL", "BBALL_Jump_Shot", 4.1, 0, 0, 0, 0, 0, 1);
  53085. case 5: PlayAnimation(playerid, "BSKTBALL", "BBALL_pickup", 4.1, 0, 0, 0, 0, 0, 1);
  53086. case 6: PlayAnimation(playerid, "BSKTBALL", "BBALL_idleloop", 4.1, 1, 0, 0, 0, 0, 1);
  53087. case 7: PlayAnimation(playerid, "BSKTBALL", "BBALL_react_miss", 4.1, 0, 0, 0, 0, 0, 1);
  53088. case 8: PlayAnimation(playerid, "BSKTBALL", "BBALL_react_score", 4.1, 0, 0, 0, 0, 0, 1);
  53089. }
  53090. }
  53091. return 1;
  53092. }
  53093. CMD:camera(playerid, params[])
  53094. {
  53095. new type;
  53096. if (!IsAnimationPermitted(playerid))
  53097. {
  53098. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53099. }
  53100. else if (sscanf(params, "i", type) || !(1 <= type <= 6))
  53101. {
  53102. return SendSyntaxMessage(playerid, "/camera (1 to 6)");
  53103. }
  53104. else
  53105. {
  53106. switch (type)
  53107. {
  53108. case 1: PlayAnimation(playerid, "CAMERA", "camstnd_to_camcrch", 4.1, 0, 0, 0, 1, 0, 1);
  53109. case 2: PlayAnimation(playerid, "CAMERA", "camcrch_to_camstnd", 4.1, 0, 0, 0, 0, 0, 1);
  53110. case 3: PlayAnimation(playerid, "CAMERA", "camstnd_lkabt", 4.1, 0, 0, 0, 0, 0, 1);
  53111. case 4: PlayAnimation(playerid, "CAMERA", "camcrch_cmon", 4.1, 0, 0, 0, 0, 0, 1);
  53112. case 5: PlayAnimation(playerid, "CAMERA", "piccrch_take", 4.1, 1, 0, 0, 0, 0, 1);
  53113. case 6: PlayAnimation(playerid, "CAMERA", "picstnd_take", 4.1, 1, 0, 0, 0, 0, 1);
  53114. }
  53115. }
  53116. return 1;
  53117. }
  53118. CMD:come(playerid, params[])
  53119. {
  53120. if (!IsAnimationPermitted(playerid))
  53121. {
  53122. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53123. }
  53124. else
  53125. {
  53126. PlayAnimation(playerid, "CAMERA", "camstnd_cmon", 4.1, 0, 0, 0, 0, 0, 1);
  53127. }
  53128. return 1;
  53129. }
  53130. CMD:carry(playerid, params[])
  53131. {
  53132. new type;
  53133. if (!IsAnimationPermitted(playerid))
  53134. {
  53135. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53136. }
  53137. else if (sscanf(params, "i", type) || !(1 <= type <= 2))
  53138. {
  53139. return SendSyntaxMessage(playerid, "/carry (1 to 2)");
  53140. }
  53141. else
  53142. {
  53143. switch (type)
  53144. {
  53145. case 1: PlayAnimation(playerid, "CARRY", "liftup", 4.1, 0, 0, 0, 0, 0, 1);
  53146. case 2: PlayAnimation(playerid, "CARRY", "putdwn", 4.1, 0, 0, 0, 0, 0, 1);
  53147. }
  53148. }
  53149. return 1;
  53150. }
  53151. CMD:think(playerid, params[])
  53152. {
  53153. if (!IsAnimationPermitted(playerid))
  53154. {
  53155. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53156. }
  53157. else
  53158. {
  53159. PlayAnimation(playerid, "COP_AMBIENT", "Coplook_think", 4.1, 0, 0, 0, 0, 0, 1);
  53160. }
  53161. return 1;
  53162. }
  53163. CMD:crack(playerid, params[])
  53164. {
  53165. new type;
  53166. if (!IsAnimationPermitted(playerid))
  53167. {
  53168. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53169. }
  53170. else if (sscanf(params, "i", type) || !(1 <= type <= 4))
  53171. {
  53172. return SendSyntaxMessage(playerid, "/crack (1 to 4)");
  53173. }
  53174. else
  53175. {
  53176. switch (type)
  53177. {
  53178. case 1: PlayAnimation(playerid, "CRACK", "crckdeth1", 4.1, 0, 0, 0, 1, 0, 1);
  53179. case 2: PlayAnimation(playerid, "CRACK", "crckdeth2", 4.1, 1, 0, 0, 0, 0, 1);
  53180. case 3: PlayAnimation(playerid, "CRACK", "crckdeth3", 4.1, 0, 0, 0, 1, 0, 1);
  53181. case 4: PlayAnimation(playerid, "CRACK", "crckdeth4", 4.1, 0, 0, 0, 1, 0, 1);
  53182. }
  53183. }
  53184. return 1;
  53185. }
  53186. CMD:smoke(playerid, params[])
  53187. {
  53188. new type;
  53189. if (!IsAnimationPermitted(playerid))
  53190. {
  53191. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53192. }
  53193. else if (sscanf(params, "i", type) || !(1 <= type <= 8))
  53194. {
  53195. return SendSyntaxMessage(playerid, "/smoke (1 to 8)");
  53196. }
  53197. else
  53198. {
  53199. switch (type)
  53200. {
  53201. case 1: PlayAnimation(playerid, "SMOKING", "F_SMKLEAN_LOOP", 4.1, 0, 0, 0, 1, 0, 1);
  53202. case 2: PlayAnimation(playerid, "SMOKING", "M_SMKLEAN_LOOP", 4.1, 1, 0, 0, 0, 0, 1);
  53203. case 3: PlayAnimation(playerid, "SMOKING", "M_SMKSTND_LOOP", 4.1, 0, 0, 0, 1, 0, 1);
  53204. case 4: PlayAnimation(playerid, "SMOKING", "M_SMK_DRAG", 4.1, 0, 0, 0, 1, 0, 1);
  53205. case 5: PlayAnimation(playerid, "SMOKING", "M_SMK_IN", 4.1, 0, 0, 0, 1, 0, 1);
  53206. case 6: PlayAnimation(playerid, "SMOKING", "M_SMK_LOOP", 4.1, 0, 0, 0, 1, 0, 1);
  53207. case 7: PlayAnimation(playerid, "SMOKING", "M_SMK_OUT", 4.1, 0, 0, 0, 1, 0, 1);
  53208. case 8: PlayAnimation(playerid, "SMOKING", "M_SMK_TAP", 4.1, 0, 0, 0, 1, 0, 1);
  53209. }
  53210. }
  53211. return 1;
  53212. }
  53213. CMD:checktime(playerid, params[])
  53214. {
  53215. if (!IsAnimationPermitted(playerid))
  53216. {
  53217. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53218. }
  53219. else
  53220. {
  53221. ApplyAnimation(playerid, "COP_AMBIENT", "Coplook_watch", 4.1, 0, 0, 0, 0, 0, 1);
  53222. }
  53223. return 1;
  53224. }
  53225. CMD:dance(playerid, params[])
  53226. {
  53227. new type;
  53228. if (!IsAnimationPermitted(playerid))
  53229. {
  53230. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53231. }
  53232. else if (sscanf(params, "i", type) || !(1 <= type <= 21))
  53233. {
  53234. return SendSyntaxMessage(playerid, "/dance (1 to 21)");
  53235. }
  53236. else
  53237. {
  53238. switch (type)
  53239. {
  53240. case 1: SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE1);
  53241. case 2: SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE2);
  53242. case 3: SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE3);
  53243. case 4: SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE4);
  53244. case 5: PlayAnimation(playerid, "DANCING", "DAN_Down_A", 4.1, 1, 0, 0, 0, 0, 1);
  53245. case 6: PlayAnimation(playerid, "DANCING", "DAN_Left_A", 4.1, 1, 0, 0, 0, 0, 1);
  53246. case 7: PlayAnimation(playerid, "DANCING", "DAN_Loop_A", 4.1, 1, 0, 0, 0, 0, 1);
  53247. case 8: PlayAnimation(playerid, "DANCING", "DAN_Right_A", 4.1, 1, 0, 0, 0, 0, 1);
  53248. case 9: PlayAnimation(playerid, "DANCING", "DAN_Up_A", 4.1, 1, 0, 0, 0, 0, 1);
  53249. case 10: PlayAnimation(playerid, "DANCING", "dnce_M_a", 4.1, 1, 0, 0, 0, 0, 1);
  53250. case 11: PlayAnimation(playerid, "DANCING", "dnce_M_b", 4.1, 1, 0, 0, 0, 0, 1);
  53251. case 12: PlayAnimation(playerid, "DANCING", "dnce_M_c", 4.1, 1, 0, 0, 0, 0, 1);
  53252. case 13: PlayAnimation(playerid, "DANCING", "dnce_M_d", 4.1, 1, 0, 0, 0, 0, 1);
  53253. case 14: PlayAnimation(playerid, "DANCING", "dnce_M_e", 4.1, 1, 0, 0, 0, 0, 1);
  53254. case 15: PlayAnimation(playerid, "STRIP", "STRIP_A", 4.1, 1, 0, 0, 0, 0, 1);
  53255. case 16: PlayAnimation(playerid, "STRIP", "STRIP_B", 4.1, 1, 0, 0, 0, 0, 1);
  53256. case 17: PlayAnimation(playerid, "STRIP", "STRIP_C", 4.1, 1, 0, 0, 0, 0, 1);
  53257. case 18: PlayAnimation(playerid, "STRIP", "STRIP_D", 4.1, 1, 0, 0, 0, 0, 1);
  53258. case 19: PlayAnimation(playerid, "STRIP", "STRIP_E", 4.1, 1, 0, 0, 0, 0, 1);
  53259. case 20: PlayAnimation(playerid, "STRIP", "STRIP_F", 4.1, 1, 0, 0, 0, 0, 1);
  53260. case 21: PlayAnimation(playerid, "STRIP", "STRIP_G", 4.1, 1, 0, 0, 0, 0, 1);
  53261. }
  53262. }
  53263. return 1;
  53264. }
  53265. CMD:deal(playerid, params[])
  53266. {
  53267. new type;
  53268. if (!IsAnimationPermitted(playerid))
  53269. {
  53270. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53271. }
  53272. else if (sscanf(params, "i", type) || !(1 <= type <= 3))
  53273. {
  53274. return SendSyntaxMessage(playerid, "/deal (1 to 3)");
  53275. }
  53276. else
  53277. {
  53278. switch (type)
  53279. {
  53280. case 1: PlayAnimation(playerid, "DEALER", "DEALER_DEAL", 4.1, 0, 0, 0, 0, 0, 1);
  53281. case 2: PlayAnimation(playerid, "DEALER", "DRUGS_BUY", 4.1, 0, 0, 0, 0, 0, 1);
  53282. case 3: PlayAnimation(playerid, "DEALER", "shop_pay", 4.1, 0, 0, 0, 0, 0, 1);
  53283. }
  53284. }
  53285. return 1;
  53286. }
  53287. CMD:eat(playerid, params[])
  53288. {
  53289. new type;
  53290. if (!IsAnimationPermitted(playerid))
  53291. {
  53292. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53293. }
  53294. else if (sscanf(params, "i", type) || !(1 <= type <= 3))
  53295. {
  53296. return SendSyntaxMessage(playerid, "/eat (1 to 3)");
  53297. }
  53298. else
  53299. {
  53300. switch (type)
  53301. {
  53302. case 1: PlayAnimation(playerid, "FOOD", "EAT_Burger", 4.1, 0, 0, 0, 0, 0, 1);
  53303. case 2: PlayAnimation(playerid, "FOOD", "EAT_Chicken", 4.1, 0, 0, 0, 0, 0, 1);
  53304. case 3: PlayAnimation(playerid, "FOOD", "EAT_Pizza", 4.1, 0, 0, 0, 0, 0, 1);
  53305. }
  53306. }
  53307. return 1;
  53308. }
  53309. CMD:lean(playerid, params[])
  53310. {
  53311. new type;
  53312. if (!IsAnimationPermitted(playerid))
  53313. {
  53314. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53315. }
  53316. else if (sscanf(params, "i", type) || !(1 <= type <= 3))
  53317. {
  53318. return SendSyntaxMessage(playerid, "/lean (1 to 3)");
  53319. }
  53320. else
  53321. {
  53322. switch (type)
  53323. {
  53324. case 1: PlayAnimation(playerid, "GANGS", "leanIDLE", 4.1, 1, 0, 0, 0, 0, 1);
  53325. case 2: PlayAnimation(playerid, "MISC", "Plyrlean_loop", 4.1, 1, 0, 0, 0, 0, 1);
  53326. case 3: PlayAnimation(playerid, "SMOKING", "M_smklean_loop", 4.1, 1, 0, 0, 0, 0, 1);
  53327. }
  53328. }
  53329. return 1;
  53330. }
  53331. CMD:facepalm(playerid, params[])
  53332. {
  53333. if (!IsAnimationPermitted(playerid))
  53334. {
  53335. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53336. }
  53337. else
  53338. {
  53339. PlayAnimation(playerid, "MISC", "plyr_shkhead", 4.1, 0, 0, 0, 0, 0, 1);
  53340. }
  53341. return 1;
  53342. }
  53343. CMD:chat(playerid, params[])
  53344. {
  53345. new type;
  53346. if (!IsAnimationPermitted(playerid))
  53347. {
  53348. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53349. }
  53350. else if (sscanf(params, "i", type) || !(1 <= type <= 8))
  53351. {
  53352. return SendSyntaxMessage(playerid, "/chat (1 to 8)");
  53353. }
  53354. else
  53355. {
  53356. switch (type)
  53357. {
  53358. case 1: PlayAnimation(playerid, "GANGS", "prtial_gngtlkA", 4.1, 1, 0, 0, 0, 0, 1);
  53359. case 2: PlayAnimation(playerid, "GANGS", "prtial_gngtlkB", 4.1, 1, 0, 0, 0, 0, 1);
  53360. case 3: PlayAnimation(playerid, "GANGS", "prtial_gngtlkC", 4.1, 1, 0, 0, 0, 0, 1);
  53361. case 4: PlayAnimation(playerid, "GANGS", "prtial_gngtlkD", 4.1, 1, 0, 0, 0, 0, 1);
  53362. case 5: PlayAnimation(playerid, "GANGS", "prtial_gngtlkE", 4.1, 1, 0, 0, 0, 0, 1);
  53363. case 6: PlayAnimation(playerid, "GANGS", "prtial_gngtlkF", 4.1, 1, 0, 0, 0, 0, 1);
  53364. case 7: PlayAnimation(playerid, "GANGS", "prtial_gngtlkG", 4.1, 1, 0, 0, 0, 0, 1);
  53365. case 8: PlayAnimation(playerid, "GANGS", "prtial_gngtlkH", 4.1, 1, 0, 0, 0, 0, 1);
  53366. }
  53367. }
  53368. return 1;
  53369. }
  53370. CMD:gsign(playerid, params[])
  53371. {
  53372. new type;
  53373. if (!IsAnimationPermitted(playerid))
  53374. {
  53375. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53376. }
  53377. else if (sscanf(params, "i", type) || !(1 <= type <= 12))
  53378. {
  53379. return SendSyntaxMessage(playerid, "/gsign (1 to 12)");
  53380. }
  53381. else
  53382. {
  53383. switch (type)
  53384. {
  53385. case 1: PlayAnimation(playerid, "GHANDS", "gsign1", 4.1, 0, 0, 0, 0, 0, 1);
  53386. case 2: PlayAnimation(playerid, "GHANDS", "gsign1LH", 4.1, 0, 0, 0, 0, 0, 1);
  53387. case 3: PlayAnimation(playerid, "GHANDS", "gsign2", 4.1, 0, 0, 0, 0, 0, 1);
  53388. case 4: PlayAnimation(playerid, "GHANDS", "gsign2LH", 4.1, 0, 0, 0, 0, 0, 1);
  53389. case 5: PlayAnimation(playerid, "GHANDS", "gsign3", 4.1, 0, 0, 0, 0, 0, 1);
  53390. case 6: PlayAnimation(playerid, "GHANDS", "gsign3LH", 4.1, 0, 0, 0, 0, 0, 1);
  53391. case 7: PlayAnimation(playerid, "GHANDS", "gsign4", 4.1, 0, 0, 0, 0, 0, 1);
  53392. case 8: PlayAnimation(playerid, "GHANDS", "gsign4LH", 4.1, 0, 0, 0, 0, 0, 1);
  53393. case 9: PlayAnimation(playerid, "GHANDS", "gsign5", 4.1, 0, 0, 0, 0, 0, 1);
  53394. case 10: PlayAnimation(playerid, "GHANDS", "gsign5LH", 4.1, 0, 0, 0, 0, 0, 1);
  53395. case 11: PlayAnimation(playerid, "GANGS", "Invite_No", 4.1, 0, 0, 0, 0, 0, 1);
  53396. case 12: PlayAnimation(playerid, "GANGS", "Invite_Yes", 4.1, 0, 0, 0, 0, 0, 1);
  53397. }
  53398. }
  53399. return 1;
  53400. }
  53401. CMD:spraycan(playerid, params[])
  53402. {
  53403. if (!IsAnimationPermitted(playerid))
  53404. {
  53405. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53406. }
  53407. else
  53408. {
  53409. PlayAnimation(playerid, "GRAFFITI", "spraycan_fire", 4.1, 1, 0, 0, 0, 0, 1);
  53410. }
  53411. return 1;
  53412. }
  53413. CMD:throw(playerid, params[])
  53414. {
  53415. if (!IsAnimationPermitted(playerid))
  53416. {
  53417. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53418. }
  53419. else
  53420. {
  53421. PlayAnimation(playerid, "GRENADE", "WEAPON_throw", 4.1, 0, 0, 0, 0, 0, 1);
  53422. }
  53423. return 1;
  53424. }
  53425. CMD:boxing(playerid, params[])
  53426. {
  53427. if (!IsAnimationPermitted(playerid))
  53428. {
  53429. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53430. }
  53431. else
  53432. {
  53433. PlayAnimation(playerid, "GYMNASIUM", "GYMshadowbox", 4.1, 1, 0, 0, 0, 0, 1);
  53434. }
  53435. return 1;
  53436. }
  53437. CMD:cpr(playerid, params[])
  53438. {
  53439. if (!IsAnimationPermitted(playerid))
  53440. {
  53441. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53442. }
  53443. else
  53444. {
  53445. PlayAnimation(playerid, "MEDIC", "CPR", 4.1, 0, 0, 0, 0, 0, 1);
  53446. }
  53447. return 1;
  53448. }
  53449. CMD:swipe(playerid, params[])
  53450. {
  53451. if (!IsAnimationPermitted(playerid))
  53452. {
  53453. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53454. }
  53455. else
  53456. {
  53457. PlayAnimation(playerid, "HEIST9", "Use_SwipeCard", 4.1, 0, 0, 0, 0, 0, 1);
  53458. }
  53459. return 1;
  53460. }
  53461. CMD:sit(playerid, params[])
  53462. {
  53463. new type;
  53464. if (!IsAnimationPermitted(playerid))
  53465. {
  53466. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53467. }
  53468. else if (sscanf(params, "i", type) || !(1 <= type <= 8))
  53469. {
  53470. return SendSyntaxMessage(playerid, "/sit (1 to 8)");
  53471. }
  53472. else
  53473. {
  53474. switch (type)
  53475. {
  53476. case 1: PlayAnimation(playerid, "MISC", "SEAT_LR", 4.1, 1, 0, 0, 0, 0, 1);
  53477. case 2: PlayAnimation(playerid, "MISC", "SEAT_talk_01", 4.1, 1, 0, 0, 0, 0, 1);
  53478. case 3: PlayAnimation(playerid, "MISC", "SEAT_talk_02", 4.1, 1, 0, 0, 0, 0, 1);
  53479. case 4: PlayAnimation(playerid, "CRIB", "PED_Console_Loop", 4.1, 1, 0, 0, 0, 0, 1);
  53480. case 5: PlayAnimation(playerid, "INT_HOUSE", "LOU_In", 4.1, 0, 0, 0, 1, 0, 1);
  53481. case 6: PlayAnimation(playerid, "PED", "SEAT_down", 4.1, 0, 0, 0, 1, 0, 1);
  53482. case 7: PlayAnimation(playerid, "FOOD", "FF_Sit_Eat3", 4.1, 1, 0, 0, 0, 0, 1);
  53483. case 8: PlayAnimation(playerid, "FOOD", "FF_Sit_Eat2", 4.1, 1, 0, 0, 0, 0, 1);
  53484. }
  53485. }
  53486. return 1;
  53487. }
  53488. CMD:point(playerid, params[])
  53489. {
  53490. if (!IsAnimationPermitted(playerid))
  53491. {
  53492. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53493. }
  53494. else
  53495. {
  53496. PlayAnimation(playerid, "ON_LOOKERS", "point_loop", 4.1, 1, 0, 0, 0, 0, 1);
  53497. }
  53498. return 1;
  53499. }
  53500. CMD:taichi(playerid, params[])
  53501. {
  53502. if (!IsAnimationPermitted(playerid))
  53503. {
  53504. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53505. }
  53506. else
  53507. {
  53508. PlayAnimation(playerid, "PARK", "Tai_Chi_Loop", 4.1, 1, 0, 0, 0, 0, 1);
  53509. }
  53510. return 1;
  53511. }
  53512. CMD:wank(playerid, params[])
  53513. {
  53514. if (!IsAnimationPermitted(playerid))
  53515. {
  53516. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53517. }
  53518. else
  53519. {
  53520. PlayAnimation(playerid, "PAULNMAC", "wank_loop", 4.1, 1, 0, 0, 0, 0, 1);
  53521. }
  53522. return 1;
  53523. }
  53524. CMD:cover(playerid, params[])
  53525. {
  53526. if (!IsAnimationPermitted(playerid))
  53527. {
  53528. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53529. }
  53530. else
  53531. {
  53532. PlayAnimation(playerid, "PED", "cower", 4.1, 1, 0, 0, 0, 0, 1);
  53533. }
  53534. return 1;
  53535. }
  53536. CMD:fucku(playerid, params[])
  53537. {
  53538. if (!IsAnimationPermitted(playerid))
  53539. {
  53540. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53541. }
  53542. else
  53543. {
  53544. PlayAnimation(playerid, "PED", "fucku", 4.1, 0, 0, 0, 0, 0, 1);
  53545. }
  53546. return 1;
  53547. }
  53548. CMD:getup(playerid, params[])
  53549. {
  53550. new type;
  53551. if (!IsAnimationPermitted(playerid))
  53552. {
  53553. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53554. }
  53555. else if (sscanf(params, "i", type) || !(1 <= type <= 2))
  53556. {
  53557. return SendSyntaxMessage(playerid, "/getup (1 to 2)");
  53558. }
  53559. else
  53560. {
  53561. switch (type)
  53562. {
  53563. case 1: PlayAnimation(playerid, "PED", "getup", 4.1, 0, 0, 0, 0, 0, 1);
  53564. case 2: PlayAnimation(playerid, "PED", "getup_front", 4.1, 0, 0, 0, 0, 0, 1);
  53565. }
  53566. }
  53567. return 1;
  53568. }
  53569. CMD:tired(playerid, params[])
  53570. {
  53571. new type;
  53572. if (!IsAnimationPermitted(playerid))
  53573. {
  53574. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53575. }
  53576. else if (sscanf(params, "i", type) || !(1 <= type <= 2))
  53577. {
  53578. return SendSyntaxMessage(playerid, "/tired (1 to 2)");
  53579. }
  53580. else
  53581. {
  53582. switch (type)
  53583. {
  53584. case 1: PlayAnimation(playerid, "FAT", "IDLE_tired", 4.1, 1, 0, 0, 0, 0, 1);
  53585. case 2: PlayAnimation(playerid, "PED", "IDLE_tired", 4.1, 1, 0, 0, 0, 0, 1);
  53586. }
  53587. }
  53588. return 1;
  53589. }
  53590. CMD:doorkick(playerid, params[])
  53591. {
  53592. if (!IsAnimationPermitted(playerid))
  53593. {
  53594. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53595. }
  53596. else
  53597. {
  53598. PlayAnimation(playerid, "POLICE", "Door_Kick", 4.1, 0, 0, 0, 0, 0, 1);
  53599. }
  53600. return 1;
  53601. }
  53602. CMD:laugh(playerid, params[])
  53603. {
  53604. if (!IsAnimationPermitted(playerid))
  53605. {
  53606. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53607. }
  53608. else
  53609. {
  53610. PlayAnimation(playerid, "RAPPING", "Laugh_01", 4.1, 0, 0, 0, 0, 0, 1);
  53611. }
  53612. return 1;
  53613. }
  53614. CMD:cry(playerid, params[])
  53615. {
  53616. if (!IsAnimationPermitted(playerid))
  53617. {
  53618. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53619. }
  53620. else
  53621. {
  53622. PlayAnimation(playerid, "GRAVEYARD", "mrnF_loop", 4.1, 1, 0, 0, 0, 0, 1);
  53623. }
  53624. return 1;
  53625. }
  53626. CMD:what(playerid, params[])
  53627. {
  53628. if (!IsAnimationPermitted(playerid))
  53629. {
  53630. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53631. }
  53632. else
  53633. {
  53634. PlayAnimation(playerid, "RIOT", "RIOT_ANGRY", 4.1, 0, 0, 0, 0, 0, 1);
  53635. }
  53636. return 1;
  53637. }
  53638. CMD:sa(playerid, params[])
  53639. {
  53640. return cmd_stopanim(playerid,params);
  53641. }
  53642. CMD:stopanim(playerid, params[])
  53643. {
  53644. if (!IsAnimationPermitted(playerid))
  53645. {
  53646. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53647. }
  53648. else
  53649. {
  53650. //ClearAnimations(playerid, 1);
  53651. ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.0, 0, 0, 0, 0, 0);
  53652. }
  53653. return 1;
  53654. }
  53655. CMD:rap(playerid, params[])
  53656. {
  53657. new type;
  53658. if (!IsAnimationPermitted(playerid))
  53659. {
  53660. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53661. }
  53662. else if (sscanf(params, "i", type) || !(1 <= type <= 3))
  53663. {
  53664. return SendSyntaxMessage(playerid, "/rap (1 to 3)");
  53665. }
  53666. else
  53667. {
  53668. switch (type)
  53669. {
  53670. case 1: PlayAnimation(playerid, "RAPPING", "RAP_A_Loop", 4.1, 1, 0, 0, 0, 0, 1);
  53671. case 2: PlayAnimation(playerid, "RAPPING", "RAP_B_Loop", 4.1, 1, 0, 0, 0, 0, 1);
  53672. case 3: PlayAnimation(playerid, "RAPPING", "RAP_C_Loop", 4.1, 1, 0, 0, 0, 0, 1);
  53673. }
  53674. }
  53675. return 1;
  53676. }
  53677. CMD:drunk(playerid, params[])
  53678. {
  53679. if (!IsAnimationPermitted(playerid))
  53680. {
  53681. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53682. }
  53683. else
  53684. {
  53685. PlayAnimation(playerid, "PED", "WALK_drunk", 4.1, 1, 1, 1, 1, 1, 1);
  53686. }
  53687. return 1;
  53688. }
  53689. CMD:walk(playerid, params[])
  53690. {
  53691. if (!IsAnimationPermitted(playerid))
  53692. {
  53693. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53694. }
  53695. switch (Players[playerid][pWalkStyle])
  53696. {
  53697. case 1: PlayAnimation(playerid, "PED", "WALK_civi", 4.1, 1, 1, 1, 1, 1, 1);
  53698. case 2: PlayAnimation(playerid, "PED", "WALK_armed", 4.1, 1, 1, 1, 1, 1, 1);
  53699. case 3: PlayAnimation(playerid, "PED", "WALK_fat", 4.1, 1, 1, 1, 1, 1, 1);
  53700. case 4: PlayAnimation(playerid, "PED", "WALK_fatold", 4.1, 1, 1, 1, 1, 1, 1);
  53701. case 5: PlayAnimation(playerid, "FAT", "FatWalk", 4.1, 1, 1, 1, 1, 1, 1);
  53702. case 6: PlayAnimation(playerid, "MUSCULAR", "MuscleWalk", 4.1, 1, 1, 1, 1, 1, 1);
  53703. case 7: PlayAnimation(playerid, "PED", "WALK_gang1", 4.1, 1, 1, 1, 1, 1, 1);
  53704. case 8: PlayAnimation(playerid, "PED", "WALK_gang2", 4.1, 1, 1, 1, 1, 1, 1);
  53705. case 9: PlayAnimation(playerid, "PED", "WALK_player", 4.1, 1, 1, 1, 1, 1, 1);
  53706. case 10: PlayAnimation(playerid, "PED", "WALK_old", 4.1, 1, 1, 1, 1, 1, 1);
  53707. case 11: PlayAnimation(playerid, "PED", "WALK_wuzi", 4.1, 1, 1, 1, 1, 1, 1);
  53708. case 12: PlayAnimation(playerid, "PED", "WOMAN_walkbusy", 4.1, 1, 1, 1, 1, 1, 1);
  53709. case 13: PlayAnimation(playerid, "PED", "WOMAN_walkfatold", 4.1, 1, 1, 1, 1, 1, 1);
  53710. case 14: PlayAnimation(playerid, "PED", "WOMAN_walknorm", 4.1, 1, 1, 1, 1, 1, 1);
  53711. case 15: PlayAnimation(playerid, "PED", "WOMAN_walksexy", 4.1, 1, 1, 1, 1, 1, 1);
  53712. case 16: PlayAnimation(playerid, "PED", "WOMAN_walkshop", 4.1, 1, 1, 1, 1, 1, 1);
  53713. default: PlayAnimation(playerid, "PED", "WALK_civi", 4.1, 1, 1, 1, 1, 1, 1);
  53714. }
  53715. return 1;
  53716. }
  53717. CMD:riot(playerid, params[])
  53718. {
  53719. new type;
  53720. if (!IsAnimationPermitted(playerid))
  53721. {
  53722. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53723. }
  53724. else if (sscanf(params, "i", type) || !(1 <= type <= 4))
  53725. {
  53726. return SendSyntaxMessage(playerid, "/riot (1 to 4)");
  53727. }
  53728. else
  53729. {
  53730. switch (type)
  53731. {
  53732. case 1: PlayAnimation(playerid, "RIOT", "RIOT_ANGRY_B", 4.1, 1, 0, 0, 0, 0, 1);
  53733. case 2: PlayAnimation(playerid, "RIOT", "RIOT_CHANT", 4.1, 1, 0, 0, 0, 0, 1);
  53734. case 3: PlayAnimation(playerid, "RIOT", "RIOT_PUNCHES", 4.1, 1, 0, 0, 0, 0, 1);
  53735. case 4: PlayAnimation(playerid, "RIOT", "RIOT_shout", 4.1, 1, 0, 0, 0, 0, 1);
  53736. }
  53737. }
  53738. return 1;
  53739. }
  53740. CMD:injured(playerid, params[])
  53741. {
  53742. new type;
  53743. if (!IsAnimationPermitted(playerid))
  53744. {
  53745. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53746. }
  53747. else if (sscanf(params, "i", type) || !(1 <= type <= 2))
  53748. {
  53749. return SendSyntaxMessage(playerid, "/injured (1 to 2)");
  53750. }
  53751. else
  53752. {
  53753. switch (type)
  53754. {
  53755. case 1: PlayAnimation(playerid, "SWAT", "gnstwall_injurd", 4.1, 1, 0, 0, 0, 0, 1);
  53756. case 2: PlayAnimation(playerid, "SWEET", "Sweet_injuredloop", 4.1, 1, 0, 0, 0, 0, 1);
  53757. }
  53758. }
  53759. return 1;
  53760. }
  53761. CMD:fall(playerid, params[])
  53762. {
  53763. new type;
  53764. if (!IsAnimationPermitted(playerid))
  53765. {
  53766. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53767. }
  53768. else if (sscanf(params, "i", type) || !(1 <= type <= 5))
  53769. {
  53770. return SendSyntaxMessage(playerid, "/fall (1 to 5)");
  53771. }
  53772. else
  53773. {
  53774. switch (type)
  53775. {
  53776. case 1: PlayAnimation(playerid, "PED", "KO_shot_face", 4.1, 0, 1, 1, 1, 0, 1);
  53777. case 2: PlayAnimation(playerid, "PED", "KO_shot_stom", 4.1, 0, 1, 1, 1, 0, 1);
  53778. case 3: PlayAnimation(playerid, "PED", "KO_shot_front", 4.1, 0, 1, 1, 1, 0, 1);
  53779. case 4: PlayAnimation(playerid, "PED", "KO_skid_back", 4.1, 0, 0, 0, 1, 0, 1);
  53780. case 5: PlayAnimation(playerid, "PED", "KO_skid_front", 4.1, 0, 0, 0, 1, 0, 1);
  53781. }
  53782. }
  53783. return 1;
  53784. }
  53785. CMD:crossarms(playerid, params[])
  53786. {
  53787. new type;
  53788. if (!IsAnimationPermitted(playerid))
  53789. {
  53790. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53791. }
  53792. else if (sscanf(params, "i", type) || !(1 <= type <= 4))
  53793. {
  53794. return SendSyntaxMessage(playerid, "/crossarms (1 to 4)");
  53795. }
  53796. else
  53797. {
  53798. switch (type)
  53799. {
  53800. case 1: PlayAnimation(playerid, "COP_AMBIENT", "Coplook_loop", 4.1, 0, 1, 1, 1, 0, 1);
  53801. case 2: PlayAnimation(playerid, "GRAVEYARD", "prst_loopa", 4.1, 1, 0, 0, 0, 0, 1);
  53802. case 3: PlayAnimation(playerid, "GRAVEYARD", "mrnM_loop", 4.1, 1, 0, 0, 0, 0, 1);
  53803. case 4: PlayAnimation(playerid, "DEALER", "DEALER_IDLE", 4.1, 0, 1, 1, 1, 0, 1);
  53804. }
  53805. }
  53806. return 1;
  53807. }
  53808. CMD:reload(playerid, params[])
  53809. {
  53810. new type;
  53811. if (!IsAnimationPermitted(playerid))
  53812. {
  53813. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53814. }
  53815. else if (sscanf(params, "i", type) || !(1 <= type <= 5))
  53816. {
  53817. return SendSyntaxMessage(playerid, "/reload (1 to 5)");
  53818. }
  53819. else
  53820. {
  53821. switch (type)
  53822. {
  53823. case 1: PlayAnimation(playerid, "BUDDY", "buddy_reload", 4.1, 0, 0, 0, 0, 0, 1);
  53824. case 2: PlayAnimation(playerid, "COLT45", "colt45_reload", 4.1, 0, 0, 0, 0, 0, 1);
  53825. case 3: PlayAnimation(playerid, "COLT45", "sawnoff_reload", 4.1, 0, 0, 0, 0, 0, 1);
  53826. case 4: PlayAnimation(playerid, "PYTHON", "python_reload", 4.1, 0, 0, 0, 0, 0, 1);
  53827. case 5: PlayAnimation(playerid, "RIFLE", "RIFLE_load", 4.1, 0, 0, 0, 0, 0, 1);
  53828. }
  53829. }
  53830. return 1;
  53831. }
  53832. CMD:aim(playerid, params[])
  53833. {
  53834. new type;
  53835. if (!IsAnimationPermitted(playerid))
  53836. {
  53837. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53838. }
  53839. else if (sscanf(params, "i", type) || !(1 <= type <= 2))
  53840. {
  53841. return SendSyntaxMessage(playerid, "/aim (1 to 2)");
  53842. }
  53843. else
  53844. {
  53845. switch (type)
  53846. {
  53847. case 1: PlayAnimation(playerid, "PED", "ARRESTgun", 4.1, 0, 0, 0, 1, 0, 1);
  53848. case 2: PlayAnimation(playerid, "SHOP", "ROB_Loop", 4.1, 0, 0, 0, 1, 0, 1);
  53849. }
  53850. }
  53851. return 1;
  53852. }
  53853. CMD:salute(playerid, params[])
  53854. {
  53855. if (!IsAnimationPermitted(playerid))
  53856. {
  53857. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53858. }
  53859. else
  53860. {
  53861. PlayAnimation(playerid, "ON_LOOKERS", "Pointup_loop", 4.1, 1, 0, 0, 0, 0, 1);
  53862. }
  53863. return 1;
  53864. }
  53865. CMD:scratch(playerid, params[])
  53866. {
  53867. if (!IsAnimationPermitted(playerid))
  53868. {
  53869. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53870. }
  53871. else
  53872. {
  53873. PlayAnimation(playerid, "MISC", "Scratchballs_01", 4.1, 0, 0, 0, 0, 0, 1);
  53874. }
  53875. return 1;
  53876. }
  53877. CMD:dodge(playerid, params[])
  53878. {
  53879. if (!IsAnimationPermitted(playerid))
  53880. {
  53881. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53882. }
  53883. else
  53884. {
  53885. PlayAnimation(playerid, "DODGE", "Crush_Jump", 4.1, 0, 1, 1, 1, 0, 1);
  53886. }
  53887. return 1;
  53888. }
  53889. CMD:showoff(playerid, params[])
  53890. {
  53891. if (!IsAnimationPermitted(playerid))
  53892. {
  53893. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53894. }
  53895. else
  53896. {
  53897. PlayAnimation(playerid, "Freeweights", "gym_free_celebrate", 4.1, 0, 0, 0, 0, 0, 1);
  53898. }
  53899. return 1;
  53900. }
  53901. CMD:hitch(playerid, params[])
  53902. {
  53903. if (!IsAnimationPermitted(playerid))
  53904. {
  53905. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53906. }
  53907. else
  53908. {
  53909. PlayAnimation(playerid, "MISC", "Hiker_Pose", 4.1, 1, 0, 0, 0, 0, 1);
  53910. }
  53911. return 1;
  53912. }
  53913. CMD:puke(playerid, params[])
  53914. {
  53915. if (!IsAnimationPermitted(playerid))
  53916. {
  53917. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53918. }
  53919. else
  53920. {
  53921. PlayAnimation(playerid, "FOOD", "Eat_Vomit_P", 4.1, 0, 0, 0, 0, 0, 1);
  53922. }
  53923. return 1;
  53924. }
  53925. CMD:wave(playerid, params[])
  53926. {
  53927. new type;
  53928. if (!IsAnimationPermitted(playerid))
  53929. {
  53930. return SendErrorMessage(playerid, "You cannot perform animations right now.");
  53931. }
  53932. else if (sscanf(params, "i", type) || !(1 <= type <= 3))
  53933. {
  53934. return SendSyntaxMessage(playerid, "/wave (1 to 3)");
  53935. }
  53936. else
  53937. {
  53938. switch (type)
  53939. {
  53940. case 1: PlayAnimation(playerid, "ON_LOOKERS", "wave_loop", 4.1, 1, 0, 0, 0, 0, 1);
  53941. case 2: PlayAnimation(playerid, "KISSING", "gfwave2", 4.1, 0, 0, 0, 0, 0, 1);
  53942. case 3: PlayAnimation(playerid, "PED", "endchat_03", 4.1, 0, 0, 0, 0, 0, 1);
  53943. }
  53944. }
  53945. return 1;
  53946. }
  53947. CMD:addteleport(playerid, params[])
  53948. {
  53949. new name[32];
  53950. if (Players[playerid][pAdmin] < 5)
  53951. {
  53952. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  53953. }
  53954. else if (sscanf(params, "s[32]", name))
  53955. {
  53956. return SendSyntaxMessage(playerid, "/addteleport (name)");
  53957. }
  53958. else
  53959. {
  53960. new id = GetNextTeleportID();
  53961. if (id == INVALID_ID)
  53962. {
  53963. SendErrorMessage(playerid, "There are no available teleport slots.");
  53964. }
  53965. else
  53966. {
  53967. Teleports[id][tpExists] = 1;
  53968. Teleports[id][tpInterior] = GetPlayerInterior(playerid);
  53969. Teleports[id][tpWorld] = GetPlayerVirtualWorld(playerid);
  53970. GetPlayerPos(playerid, Teleports[id][tpX], Teleports[id][tpY], Teleports[id][tpZ]);
  53971. GetPlayerFacingAngle(playerid, Teleports[id][tpA]);
  53972. SendInfoMessage(playerid, "You have created teleport '%s' (/deleteteleport).", name);
  53973. strcpy(Teleports[id][tpName], name, 32);
  53974. format(gExecute, sizeof(gExecute), "INSERT INTO rp_teleports (tpName, tpX, tpY, tpZ, tpA, tpInterior, tpWorld) VALUES('%s', %.4f, %.4f, %.4f, %.4f, %i, %i)", mysql_escaped(name), Teleports[id][tpX], Teleports[id][tpY], Teleports[id][tpZ], Teleports[id][tpA], Teleports[id][tpInterior], Teleports[id][tpWorld]);
  53975. mysql_tquery(gConnection, gExecute, "OnTeleportAdded", "i", id);
  53976. }
  53977. }
  53978. return 1;
  53979. }
  53980. CMD:deleteteleport(playerid, params[])
  53981. {
  53982. if (Players[playerid][pAdmin] < 5)
  53983. {
  53984. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  53985. }
  53986. else
  53987. {
  53988. new success = ShowTeleportList(playerid, .delete = true);
  53989. if (!success)
  53990. {
  53991. SendErrorMessage(playerid, "There are no teleports to list.");
  53992. }
  53993. }
  53994. return 1;
  53995. }
  53996. CMD:changepass(playerid, params[])
  53997. {
  53998. Dialog_Show(playerid, ChangePassword, DIALOG_STYLE_INPUT, "{FFFFFF}Change Password", "Please input your current account password:", "Submit", "Cancel");
  53999. return 1;
  54000. }
  54001. CMD:addlabel(playerid, params[])
  54002. {
  54003. new Float:distance, color, text[144];
  54004. if (Players[playerid][pAdmin] < 5)
  54005. {
  54006. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  54007. }
  54008. else if (sscanf(params, "fhs[144]", distance, color, text))
  54009. {
  54010. SendSyntaxMessage(playerid, "/addlabel (distance) (hex color) (text)");
  54011. return SendInfoMessage(playerid, "Note: Use ~n~ in the text string to create a new line.");
  54012. }
  54013. else if (distance < 1.0 || distance > 90.0)
  54014. {
  54015. return SendErrorMessage(playerid, "The distance must range between 1.0 and 90.0.");
  54016. }
  54017. else
  54018. {
  54019. new id = GetNextLabelID();
  54020. if (id == INVALID_ID)
  54021. {
  54022. return SendErrorMessage(playerid, "There are no available label slots.");
  54023. }
  54024. else
  54025. {
  54026. strreplace(text, "~n~", "\n");
  54027. strreplace(text, "~N~", "\n");
  54028. strcpy(Labels[id][lText], text, 144);
  54029. GetPlayerPos(playerid, Labels[id][lX], Labels[id][lY], Labels[id][lZ]);
  54030. Labels[id][lExists] = 1;
  54031. Labels[id][lColor] = color;
  54032. Labels[id][lDistance] = distance;
  54033. Labels[id][lText3D] = INVALID_3DTEXT_ID;
  54034. Labels[id][lInterior] = GetPlayerInterior(playerid);
  54035. Labels[id][lWorld] = GetPlayerVirtualWorld(playerid);
  54036. format(gExecute, sizeof(gExecute), "INSERT INTO rp_dynamiclabels (lColor) VALUES(%i)", color);
  54037. mysql_tquery(gConnection, gExecute, "OnLabelAdded", "i", id);
  54038. SendInfoMessage(playerid, "You have created label %i (/editlabel).", id);
  54039. }
  54040. }
  54041. return 1;
  54042. }
  54043. CMD:editlabel(playerid, params[])
  54044. {
  54045. new label, text[144];
  54046. if (Players[playerid][pAdmin] < 5)
  54047. {
  54048. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  54049. }
  54050. else if (sscanf(params, "is[144]", label, text))
  54051. {
  54052. return SendSyntaxMessage(playerid, "/editlabel (label ID) (text)");
  54053. }
  54054. else if (!IsValidLabelID(label))
  54055. {
  54056. return SendErrorMessage(playerid, "You have specified an invalid label ID.");
  54057. }
  54058. else
  54059. {
  54060. strreplace(text, "~n~", "\n");
  54061. strreplace(text, "~N~", "\n");
  54062. strcpy(Labels[label][lText], text, 144);
  54063. UpdateDynamic3DTextLabelText(Labels[label][lText3D], Labels[label][lColor], Labels[label][lText]);
  54064. SaveLabel(label);
  54065. SendInfoMessage(playerid, "You have changed the text for label %i.", label);
  54066. }
  54067. return 1;
  54068. }
  54069. CMD:gotolabel(playerid, params[])
  54070. {
  54071. new label;
  54072. if (Players[playerid][pAdmin] < 5)
  54073. {
  54074. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  54075. }
  54076. else if (sscanf(params, "i", label))
  54077. {
  54078. return SendSyntaxMessage(playerid, "/gotolabel (label ID)");
  54079. }
  54080. else if (!IsValidLabelID(label))
  54081. {
  54082. return SendErrorMessage(playerid, "You have specified an invalid label ID.");
  54083. }
  54084. else
  54085. {
  54086. SetPlayerPosEx(playerid, Labels[label][lX], Labels[label][lY], Labels[label][lZ], 0.0, Labels[label][lInterior], Labels[label][lWorld]);
  54087. SendInfoMessage(playerid, "You have teleported to label %i.", label);
  54088. }
  54089. return 1;
  54090. }
  54091. CMD:deletelabel(playerid, params[])
  54092. {
  54093. new label;
  54094. if (Players[playerid][pAdmin] < 5)
  54095. {
  54096. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  54097. }
  54098. else if (sscanf(params, "i", label))
  54099. {
  54100. return SendSyntaxMessage(playerid, "/deletelabel (label ID)");
  54101. }
  54102. else if (!IsValidLabelID(label))
  54103. {
  54104. return SendErrorMessage(playerid, "You have specified an invalid label ID.");
  54105. }
  54106. else
  54107. {
  54108. DestroyDynamic3DTextLabel(Labels[label][lText3D]);
  54109. format(gExecute, sizeof(gExecute), "DELETE FROM rp_dynamiclabels WHERE lID = %i", Labels[label][lID]);
  54110. mysql_tquery(gConnection, gExecute);
  54111. Labels[label][lExists] = 0;
  54112. SendInfoMessage(playerid, "You have deleted label %i.", label);
  54113. }
  54114. return 1;
  54115. }
  54116. CMD:checklabel(playerid, params[])
  54117. {
  54118. if (Players[playerid][pAdmin] < 5)
  54119. {
  54120. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  54121. }
  54122. else
  54123. {
  54124. new label = GetClosestLabel(playerid);
  54125. if (label == INVALID_ID)
  54126. {
  54127. SendErrorMessage(playerid, "There is no label nearby.");
  54128. }
  54129. else
  54130. {
  54131. SendInfoMessage(playerid, "The label ID is: %i. Use /deletelabel to delete the label.", label);
  54132. }
  54133. }
  54134. return 1;
  54135. }
  54136. CMD:addgate(playerid, params[])
  54137. {
  54138. new modelid;
  54139. if (Players[playerid][pAdmin] < 5)
  54140. {
  54141. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  54142. }
  54143. else if (sscanf(params, "i", modelid))
  54144. {
  54145. return SendSyntaxMessage(playerid, "/addgate (model ID)");
  54146. }
  54147. else if (!IsValidModelID(modelid))
  54148. {
  54149. return SendErrorMessage(playerid, "You have specified an invalid model ID.");
  54150. }
  54151. else if (modelid == 17951 || modelid == 3294)
  54152. {
  54153. return SendErrorMessage(playerid, "That model can't be used as it causes problems in SA-MP.");
  54154. }
  54155. else
  54156. {
  54157. new id = GetNextGateID();
  54158. if (id == INVALID_ID)
  54159. {
  54160. SendErrorMessage(playerid, "There are no available gate slots.");
  54161. }
  54162. else
  54163. {
  54164. GetPlayerPos(playerid, Gates[id][gSpawn][0], Gates[id][gSpawn][1], Gates[id][gSpawn][2]);
  54165. GetPlayerFacingAngle(playerid, Gates[id][gSpawn][5]);
  54166. Gates[id][gExists] = 1;
  54167. Gates[id][gModel] = modelid;
  54168. Gates[id][gPassword] = 0;
  54169. Gates[id][gSpeed] = 2.0;
  54170. Gates[id][gRadius] = 5.0;
  54171. Gates[id][gFactionID] = 0;
  54172. Gates[id][gLinkID] = 0;
  54173. Gates[id][gSpawn][0] += 3.0 * floatsin(-Gates[id][gSpawn][5], degrees);
  54174. Gates[id][gSpawn][1] += 3.0 * floatcos(-Gates[id][gSpawn][5], degrees);
  54175. Gates[id][gMove][0] = Gates[id][gSpawn][0];
  54176. Gates[id][gMove][1] = Gates[id][gSpawn][1];
  54177. Gates[id][gMove][2] = Gates[id][gSpawn][2];
  54178. Gates[id][gMove][3] = -1000.0;
  54179. Gates[id][gMove][4] = -1000.0;
  54180. Gates[id][gMove][5] = -1000.0;
  54181. Gates[id][gInterior] = GetPlayerInterior(playerid);
  54182. Gates[id][gWorld] = GetPlayerVirtualWorld(playerid);
  54183. Gates[id][gObject] = INVALID_OBJECT_ID;
  54184. Gates[id][gOpened] = 0;
  54185. UpdateGate(id);
  54186. format(gExecute, sizeof(gExecute), "INSERT INTO rp_gates (gModel) VALUES(%i)", modelid);
  54187. mysql_tquery(gConnection, gExecute, "OnGateAdded", "i", id);
  54188. SendInfoMessage(playerid, "You have created gate %i (/editgate).", id);
  54189. EditDynamicObjectEx(playerid, EDIT_TYPE_GATE, Gates[id][gObject], id);
  54190. }
  54191. }
  54192. return 1;
  54193. }
  54194. CMD:gotogate(playerid, params[])
  54195. {
  54196. new gate;
  54197. if (Players[playerid][pAdmin] < 5)
  54198. {
  54199. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  54200. }
  54201. else if (sscanf(params, "i", gate))
  54202. {
  54203. return SendSyntaxMessage(playerid, "/gotogate (gate ID)");
  54204. }
  54205. else if (!IsValidGateID(gate))
  54206. {
  54207. return SendErrorMessage(playerid, "You have specified an invalid gate ID.");
  54208. }
  54209. else
  54210. {
  54211. SetPlayerPosEx(playerid, Gates[gate][gSpawn][0], Gates[gate][gSpawn][1], Gates[gate][gSpawn][2], 0.0, Gates[gate][gInterior], Gates[gate][gWorld]);
  54212. SendInfoMessage(playerid, "You have teleported to gate %i.", gate);
  54213. }
  54214. return 1;
  54215. }
  54216. CMD:deletegate(playerid, params[])
  54217. {
  54218. new gate;
  54219. if (Players[playerid][pAdmin] < 5)
  54220. {
  54221. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  54222. }
  54223. else if (sscanf(params, "i", gate))
  54224. {
  54225. return SendSyntaxMessage(playerid, "/deletegate (gate ID)");
  54226. }
  54227. else if (!IsValidGateID(gate))
  54228. {
  54229. return SendErrorMessage(playerid, "You have specified an invalid gate ID.");
  54230. }
  54231. else
  54232. {
  54233. DestroyDynamicObject(Gates[gate][gObject]);
  54234. format(gExecute, sizeof(gExecute), "DELETE FROM rp_gates WHERE gID = %i", Gates[gate][gID]);
  54235. mysql_tquery(gConnection, gExecute);
  54236. Gates[gate][gExists] = 0;
  54237. SendInfoMessage(playerid, "You have deleted gate %i.", gate);
  54238. }
  54239. return 1;
  54240. }
  54241. CMD:checkgate(playerid, params[])
  54242. {
  54243. if (Players[playerid][pAdmin] < 5)
  54244. {
  54245. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  54246. }
  54247. else
  54248. {
  54249. new gate = GetClosestGate(playerid);
  54250. if (gate == INVALID_ID)
  54251. {
  54252. SendErrorMessage(playerid, "There is no gate nearby.");
  54253. }
  54254. else
  54255. {
  54256. SendInfoMessage(playerid, "The gate ID is: %i. Use /editgate to edit the gate.", gate);
  54257. }
  54258. }
  54259. return 1;
  54260. }
  54261. CMD:editgate(playerid, params[])
  54262. {
  54263. new gate;
  54264. if (Players[playerid][pAdmin] < 5)
  54265. {
  54266. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  54267. }
  54268. else if (sscanf(params, "i", gate))
  54269. {
  54270. return SendSyntaxMessage(playerid, "/editgate (gate ID)");
  54271. }
  54272. else if (!IsValidGateID(gate))
  54273. {
  54274. return SendErrorMessage(playerid, "You have specified an invalid gate ID.");
  54275. }
  54276. else
  54277. {
  54278. ShowGateEditMenu(playerid, gate);
  54279. }
  54280. return 1;
  54281. }
  54282. CMD:gate(playerid, params[]) return cmd_remote(playerid, params);
  54283. CMD:open(playerid, params[]) return cmd_remote(playerid, params);
  54284. //CMD:door(playerid, params[]) return cmd_remote(playerid, params);
  54285. CMD:opengate(playerid, params[]) return cmd_remote(playerid, params);
  54286. CMD:opendoor(playerid, params[]) return cmd_remote(playerid, params);
  54287. CMD:remote(playerid, params[])
  54288. {
  54289. new success = GateCheck(playerid);
  54290. if (!success)
  54291. {
  54292. SendErrorMessage(playerid, "There is no gate nearby.");
  54293. }
  54294. return 1;
  54295. }
  54296. CMD:ticket(playerid, params[])
  54297. {
  54298. return cmd_fine(playerid, params);
  54299. }
  54300. CMD:fine(playerid, params[])
  54301. {
  54302. new targetid, price, reason[128];
  54303. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  54304. {
  54305. return SendErrorMessage(playerid, "You are not part of the law enforcement.");
  54306. }
  54307. else if (sscanf(params, "uis[128]", targetid, price, reason))
  54308. {
  54309. return SendSyntaxMessage(playerid, "/fine [playerid/name] [amount] [reason]");
  54310. }
  54311. else if (!IsPlayerConnected(targetid))
  54312. {
  54313. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  54314. }
  54315. else if (!IsPlayerInRangeOfPlayer(playerid, targetid))
  54316. {
  54317. return SendErrorMessage(playerid, "You must be in range of that player.");
  54318. }
  54319. else if (price < 10 || price > 5000)
  54320. {
  54321. return SendErrorMessage(playerid, "The price of the ticket must be between $10 and $5000.");
  54322. }
  54323. else
  54324. {
  54325. format(gExecute, sizeof(gExecute), "INSERT INTO rp_tickets (Player, Reason, Date, Amount) VALUES(%i, '%s', NOW(), %i)", Players[targetid][pID], mysql_escaped(reason), price);
  54326. mysql_tquery(gConnection, gExecute);
  54327. format(gExecute, sizeof(gExecute), "INSERT INTO rp_ticketlogs (Player, Target, Price, Date, Reason) VALUES('%s', '%s', %i, NOW(), '%s')", ReturnName(playerid), ReturnName(targetid), price, mysql_escaped(reason));
  54328. mysql_tquery(gConnection, gExecute);
  54329. SendInfoMessage(playerid, "You have written %s a ticket for %s, reason: %s", ReturnNameEx(targetid), FormatNumber(price), reason);
  54330. SendInfoMessage(targetid, "%s has written you a ticket for %s, reason: %s", ReturnNameEx(playerid), FormatNumber(price), reason);
  54331. Players[playerid][pPaycheck] += Random(100,350);
  54332. //SendAdminMessage(COLOR_RED, "Admin: %s has written %s a ticket for %s, reason: %s", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), FormatNumber(price), reason);
  54333. ShowActionBubble(playerid, "* %s writes a ticket and passes it to %s.", ReturnNameEx(playerid), ReturnNameEx(targetid));
  54334. }
  54335. return 1;
  54336. }
  54337. CMD:fines(playerid, params[])
  54338. {
  54339. new targetid;
  54340. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  54341. {
  54342. ShowFineList(playerid);
  54343. }
  54344. else
  54345. {
  54346. if (sscanf(params, "u", targetid))
  54347. {
  54348. ShowFineList(playerid);
  54349. }
  54350. else if (!IsPlayerConnected(targetid))
  54351. {
  54352. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  54353. }
  54354. else if (IsPlayerNPC(targetid))
  54355. {
  54356. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  54357. }
  54358. else if (!IsPlayerLoggedIn(targetid))
  54359. {
  54360. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  54361. }
  54362. else
  54363. {
  54364. ShowFineList(targetid);
  54365. }
  54366. }
  54367. return 1;
  54368. }
  54369. CMD:frisk(playerid, params[])
  54370. {
  54371. new targetid;
  54372. if (sscanf(params, "u", targetid))
  54373. {
  54374. return SendSyntaxMessage(playerid, "/frisk [playerid/name]");
  54375. }
  54376. else if (!IsPlayerConnected(targetid))
  54377. {
  54378. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  54379. }
  54380. else if (IsPlayerNPC(targetid))
  54381. {
  54382. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  54383. }
  54384. else if (!IsPlayerLoggedIn(targetid))
  54385. {
  54386. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  54387. }
  54388. else if (!IsPlayerInRangeOfPlayer(playerid, targetid, 5.0))
  54389. {
  54390. return SendErrorMessage(playerid, "You must be in range of that player.");
  54391. }
  54392. else if (targetid == playerid)
  54393. {
  54394. return SendErrorMessage(playerid, "You can't frisk yourself.");
  54395. }
  54396. else
  54397. {
  54398. Players[targetid][pFriskOffer] = playerid;
  54399. SendInfoMessage(playerid, "You have offered to frisk %s.", ReturnNameEx(targetid));
  54400. SendInfoMessage(targetid, "%s has offered to frisk you. Use /acceptfrisk to accept the offer.", ReturnNameEx(playerid));
  54401. }
  54402. return 1;
  54403. }
  54404. CMD:confiscate(playerid, params[])
  54405. {
  54406. new targetid;
  54407. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  54408. {
  54409. return SendErrorMessage(playerid, "You are not part of the law enforcement.");
  54410. }
  54411. else if (sscanf(params, "u", targetid))
  54412. {
  54413. return SendSyntaxMessage(playerid, "/confiscate [playerid/name]");
  54414. }
  54415. else if (!IsPlayerConnected(targetid))
  54416. {
  54417. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  54418. }
  54419. else if (IsPlayerNPC(targetid))
  54420. {
  54421. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  54422. }
  54423. else if (!IsPlayerLoggedIn(targetid))
  54424. {
  54425. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  54426. }
  54427. else if (!IsPlayerInRangeOfPlayer(playerid, targetid, 5.0))
  54428. {
  54429. return SendErrorMessage(playerid, "You must be in range of that player.");
  54430. }
  54431. else
  54432. {
  54433. ResetWeapons(targetid);
  54434. for (new i = 0; i < MAX_INVENTORY_ITEMS; i ++)
  54435. {
  54436. if (Inventory[targetid][i][invExists] && GetItemInformation(Inventory[targetid][i][invName], ITEM_INFO_ILLEGAL))
  54437. {
  54438. RemoveItemFromInventory(targetid, i);
  54439. }
  54440. }
  54441. SendInfoMessage(playerid, "You have confiscated all illegal items from %s.", ReturnNameEx(targetid));
  54442. SendInfoMessage(targetid, "%s has confiscated all of your illegal items,", ReturnNameEx(playerid));
  54443. SendAdminMessage(COLOR_RED, "Admin: %s has confiscated %s's illegal items.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0));
  54444. }
  54445. return 1;
  54446. }
  54447. CMD:kickdoor(playerid, params[])
  54448. {
  54449. new house = GetClosestHouse(playerid);
  54450. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  54451. {
  54452. return SendErrorMessage(playerid, "You are not part of the law enforcement.");
  54453. }
  54454. else if (house == INVALID_ID)
  54455. {
  54456. return SendErrorMessage(playerid, "There is no house nearby.");
  54457. }
  54458. else if (!Houses[house][hLocked])
  54459. {
  54460. return SendErrorMessage(playerid, "The doors are already unlocked.");
  54461. }
  54462. else if (Players[playerid][pSetPosition])
  54463. {
  54464. return SendErrorMessage(playerid, "Please wait before using this command.");
  54465. }
  54466. else
  54467. {
  54468. Houses[house][hLocked] = 0;
  54469. SaveHouse(house);
  54470. ShowActionBubble(playerid, "* %s kicks down the door.", ReturnNameEx(playerid));
  54471. SendInfoMessage(playerid, "You have kicked down the door.");
  54472. SetPlayerFadePos(playerid, Houses[house][hInt][0], Houses[house][hInt][1], Houses[house][hInt][2], Houses[house][hInt][3], Houses[house][hInterior], Houses[house][hWorld]);
  54473. PlayAnimation(playerid, "POLICE", "Door_Kick", 4.1, 0, 0, 0, 0, 0, 1);
  54474. TogglePlayerControllable(playerid,0);
  54475. GameTextForPlayer(playerid, "~r~Loading objects...", 2000, 4);
  54476. SetTimerEx("UnFreezePlayer", 2000, false, "i", playerid);
  54477. }
  54478. return 1;
  54479. }
  54480. CMD:roster(playerid, params[])
  54481. {
  54482. if (Players[playerid][pFaction] == INVALID_ID)
  54483. {
  54484. return SendErrorMessage(playerid, "You are not part of a faction.");
  54485. }
  54486. else
  54487. {
  54488. ShowFactionRoster(playerid);
  54489. }
  54490. return 1;
  54491. }
  54492. CMD:aroster(playerid, params[])
  54493. {
  54494. if (Players[playerid][pAdmin] < 6)
  54495. {
  54496. return SendErrorMessage(playerid, "You are not privileged to use this.");
  54497. }
  54498. else
  54499. {
  54500. ShowAdminRoster(playerid);
  54501. }
  54502. return 1;
  54503. }
  54504. CMD:repair(playerid, params[])
  54505. {
  54506. new
  54507. id = GetClosestAutoShop(playerid),
  54508. vehicleid = GetPlayerVehicleID(playerid);
  54509. if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
  54510. {
  54511. return SendErrorMessage(playerid, "You are not driving any vehicle.");
  54512. }
  54513. else if (id == INVALID_ID)
  54514. {
  54515. return SendErrorMessage(playerid, "There is no auto shop nearby.");
  54516. }
  54517. else if (!IsPoweredVehicle(vehicleid))
  54518. {
  54519. return SendErrorMessage(playerid, "This vehicle doesn't have an engine to repair.");
  54520. }
  54521. else if (!GetRepairCost(vehicleid))
  54522. {
  54523. return SendErrorMessage(playerid, "This vehicle doesn't need to be repaired.");
  54524. }
  54525. else if (IsAircraftVehicle(vehicleid))
  54526. {
  54527. return SendErrorMessage(playerid, "This vehicle is too large to fit inside the auto shop.");
  54528. }
  54529. else if (IsAutoShopInUse(id))
  54530. {
  54531. return SendErrorMessage(playerid, "This auto shop is in use. Please wait until it is ready.");
  54532. }
  54533. else if (isnull(params) || strcmp(params, "confirm", true) != 0)
  54534. {
  54535. return SendSyntaxMessage(playerid, "/repair (confirm) - The repair cost is %s.", FormatNumber(GetRepairCost(vehicleid)));
  54536. }
  54537. else if (!PlayerCanAfford(playerid, GetRepairCost(vehicleid)))
  54538. {
  54539. return SendErrorMessage(playerid, "You cannot afford the cost of the repairs.");
  54540. }
  54541. else
  54542. {
  54543. foreach (new i : Player)
  54544. {
  54545. if (IsPlayerInAnyVehicle(i) && IsPlayerInVehicle(i, vehicleid))
  54546. {
  54547. GetVehiclePos(vehicleid, Players[i][pAutoX], Players[i][pAutoY], Players[i][pAutoZ]);
  54548. GetVehicleZAngle(vehicleid, Players[i][pAutoA]);
  54549. gSeatData[i] = GetPlayerVehicleSeat(i);
  54550. }
  54551. }
  54552. SetEngineStatus(vehicleid, false);
  54553. SetVehicleVirtualWorld(vehicleid, id);
  54554. SetVehiclePos(vehicleid, 1903.4791, 1353.9811, 24.5537);
  54555. SetVehicleZAngle(vehicleid, 90.0);
  54556. foreach (new i : Player)
  54557. {
  54558. if (gSeatData[i] >= 0)
  54559. {
  54560. SetPlayerVirtualWorld(i, id);
  54561. TogglePlayerControllable(i, false);
  54562. SetCameraBehindPlayer(i);
  54563. PutPlayerInVehicle(i, vehicleid, gSeatData[i]);
  54564. gSeatData[i] = INVALID_ID;
  54565. }
  54566. }
  54567. ShowFooterText(playerid, "~g~~h~Repairing... 10 seconds remaining.", 1500);
  54568. SendInfoMessage(playerid, "Please wait as your vehicle is now being repaired...");
  54569. Players[playerid][pAutoShop] = id;
  54570. Players[playerid][pAutoTime] = 10;
  54571. }
  54572. return 1;
  54573. }
  54574. CMD:addautoshop(playerid, params[])
  54575. {
  54576. /*if (Players[playerid][pAdmin] < 5)
  54577. {
  54578. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  54579. }
  54580. else if (GetClosestAutoShop(playerid) != INVALID_ID)
  54581. {
  54582. return SendErrorMessage(playerid, "There is another auto shop nearby.");
  54583. }
  54584. else if (IsPlayerInside(playerid))
  54585. {
  54586. return SendErrorMessage(playerid, "You can only create auto shops outside.");
  54587. }
  54588. else
  54589. {
  54590. new id = GetNextAutoShopID();
  54591. if (id == INVALID_ID)
  54592. {
  54593. SendErrorMessage(playerid, "There are no available auto shops.");
  54594. }
  54595. else
  54596. {
  54597. AutoShops[id][asExists] = 1;
  54598. AutoShops[id][asText] = INVALID_3DTEXT_ID;
  54599. AutoShops[id][asPickup] = INVALID_ID;
  54600. AutoShops[id][asIcon] = INVALID_ID;
  54601. GetPlayerPos(playerid, AutoShops[id][asX], AutoShops[id][asY], AutoShops[id][asZ]);
  54602. format(gExecute, sizeof(gExecute), "INSERT INTO rp_autoshops (asX, asY, asZ) VALUES(%.4f, %.4f, %.4f)", AutoShops[id][asX], AutoShops[id][asY], AutoShops[id][asZ]);
  54603. mysql_tquery(gConnection, gExecute, "OnAutoShopAdded", "i", id);
  54604. UpdateAutoShop(id);
  54605. SendInfoMessage(playerid, "You have added auto shop %i (/deleteautoshop).", id);
  54606. }
  54607. }*/
  54608. SendClientMessage(playerid, COLOR_WHITE, "Auto shops have been deprecated as of update v1.6.2 (October 3rd, 2017).");
  54609. SendClientMessage(playerid, COLOR_WHITE, "Grime added a new way of using Pay 'n' Spray by using /enter.");
  54610. return 1;
  54611. }
  54612. CMD:gotoautoshop(playerid, params[])
  54613. {
  54614. new shop;
  54615. if (Players[playerid][pAdmin] < 5)
  54616. {
  54617. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  54618. }
  54619. else if (sscanf(params, "i", shop))
  54620. {
  54621. return SendSyntaxMessage(playerid, "/gotoautoshop (shop ID)");
  54622. }
  54623. else if (!IsValidAutoShopID(shop))
  54624. {
  54625. return SendErrorMessage(playerid, "You have specified an invalid auto shop ID.");
  54626. }
  54627. else
  54628. {
  54629. SetPlayerPos(playerid, AutoShops[shop][asX], AutoShops[shop][asY], AutoShops[shop][asZ]);
  54630. SendInfoMessage(playerid, "You have teleported to auto shop %i.", shop);
  54631. }
  54632. return 1;
  54633. }
  54634. CMD:deleteautoshop(playerid, params[])
  54635. {
  54636. new shop;
  54637. if (Players[playerid][pAdmin] < 5)
  54638. {
  54639. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  54640. }
  54641. else if (sscanf(params, "i", shop))
  54642. {
  54643. return SendSyntaxMessage(playerid, "/deleteautoshop (shop ID)");
  54644. }
  54645. else if (!IsValidAutoShopID(shop))
  54646. {
  54647. return SendErrorMessage(playerid, "You have specified an invalid auto shop ID.");
  54648. }
  54649. else
  54650. {
  54651. DestroyDynamic3DTextLabel(AutoShops[shop][asText]);
  54652. DestroyDynamicPickup(AutoShops[shop][asPickup]);
  54653. DestroyDynamicMapIcon(AutoShops[shop][asIcon]);
  54654. format(gExecute, sizeof(gExecute), "DELETE FROM rp_autoshops WHERE asID = %i", AutoShops[shop][asID]);
  54655. mysql_tquery(gConnection, gExecute);
  54656. AutoShops[shop][asExists] = 0;
  54657. SendInfoMessage(playerid, "You have deleted auto shop %i.", shop);
  54658. }
  54659. return 1;
  54660. }
  54661. CMD:loadpatient(playerid, params[])
  54662. {
  54663. new targetid, vehicleid = GetClosestVehicle(playerid);
  54664. if (!IsPlayerInFaction(playerid, FACTION_MEDICAL))
  54665. {
  54666. return SendErrorMessage(playerid, "You are not part of a medical service.");
  54667. }
  54668. else if (sscanf(params, "u", targetid))
  54669. {
  54670. return SendSyntaxMessage(playerid, "/loadpatient [playerid/name]");
  54671. }
  54672. else if (!IsPlayerConnected(targetid))
  54673. {
  54674. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  54675. }
  54676. else if (IsPlayerNPC(targetid))
  54677. {
  54678. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  54679. }
  54680. else if (!IsPlayerLoggedIn(targetid))
  54681. {
  54682. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  54683. }
  54684. else if (targetid == playerid)
  54685. {
  54686. return SendErrorMessage(playerid, "You can't load yourself.");
  54687. }
  54688. else if (!IsPlayerInRangeOfPlayer(playerid, targetid, 5.0))
  54689. {
  54690. return SendErrorMessage(playerid, "You must be in range of that player.");
  54691. }
  54692. else if (Players[targetid][pDeathState] != DEATH_STATE_INJURED)
  54693. {
  54694. return SendErrorMessage(playerid, "The specified target is not in an injured state.");
  54695. }
  54696. else if (IsPlayerInAnyVehicle(targetid))
  54697. {
  54698. return SendErrorMessage(playerid, "The specified target is in a vehicle.");
  54699. }
  54700. else if (vehicleid == INVALID_VEHICLE_ID || GetVehicleModel(vehicleid) != 416)
  54701. {
  54702. return SendErrorMessage(playerid, "There is no ambulance nearby.");
  54703. }
  54704. else
  54705. {
  54706. new seat = GetVehicleNextSeat(vehicleid, 2);
  54707. if (seat == INVALID_ID)
  54708. {
  54709. SendErrorMessage(playerid, "There are no seats available.");
  54710. }
  54711. else
  54712. {
  54713. ClearAnimations(targetid);
  54714. PutPlayerInVehicle(targetid, vehicleid, seat);
  54715. SendInfoMessage(playerid, "You have loaded %s into the ambulance.", ReturnNameEx(targetid));
  54716. SendInfoMessage(targetid, "%s has loaded you into the ambulance.", ReturnNameEx(playerid));
  54717. }
  54718. }
  54719. return 1;
  54720. }
  54721. CMD:damages(playerid, params[])
  54722. {
  54723. new targetid;
  54724. if (sscanf(params, "u", targetid))
  54725. {
  54726. return SendSyntaxMessage(playerid, "/damages [playerid/name]");
  54727. }
  54728. else if (!IsPlayerConnected(targetid))
  54729. {
  54730. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  54731. }
  54732. else if (IsPlayerNPC(targetid))
  54733. {
  54734. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  54735. }
  54736. else if (!IsPlayerLoggedIn(targetid))
  54737. {
  54738. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  54739. }
  54740. else if (!IsPlayerInRangeOfPlayer(playerid, targetid, 5.0))
  54741. {
  54742. return SendErrorMessage(playerid, "You must be in range of that player.");
  54743. }
  54744. else if (Players[targetid][pDeathState] != DEATH_STATE_INJURED && playerid != targetid)
  54745. {
  54746. return SendErrorMessage(playerid, "The specified target is not in an injured state.");
  54747. }
  54748. else
  54749. {
  54750. new
  54751. string[512],
  54752. title[64];
  54753. for (new i = BODY_PART_TORSO; i <= BODY_PART_HEAD; i ++)
  54754. {
  54755. if (LastShots[targetid][i][lWeaponShots] > 0)
  54756. {
  54757. switch (LastShots[targetid][i][lWeaponID])
  54758. {
  54759. case 0, 1: format(string, sizeof(string), "%s\n%i hits from fists to the %s.", string, LastShots[targetid][i][lWeaponShots], GetBodypartName(i));
  54760. default: format(string, sizeof(string), "%s\n%i hits from a %s to the %s.", string, LastShots[targetid][i][lWeaponShots], GetWeapon(LastShots[targetid][i][lWeaponID]), GetBodypartName(i));
  54761. }
  54762. }
  54763. }
  54764. if (isnull(string))
  54765. {
  54766. SendErrorMessage(playerid, "There doesn't appear to be any visible injuries.");
  54767. }
  54768. else
  54769. {
  54770. format(title, sizeof(title), "Damage for %s", ReturnNameEx(targetid));
  54771. Dialog_Show(playerid, Examine, DIALOG_STYLE_LIST, title, string, "Close", "");
  54772. }
  54773. ShowActionBubble(playerid, "* %s examines %s for any injuries.", ReturnNameEx(playerid), ReturnNameEx(targetid));
  54774. }
  54775. return 1;
  54776. }
  54777. CMD:megaphone(playerid, params[])
  54778. {
  54779. return cmd_m(playerid, params);
  54780. }
  54781. CMD:m(playerid, params[])
  54782. {
  54783. if (!IsPlayerInFaction(playerid, FACTION_LEO) && !IsPlayerInFaction(playerid, FACTION_MEDICAL))
  54784. {
  54785. return SendErrorMessage(playerid, "You are not part of any public service faction.");
  54786. }
  54787. else if (Players[playerid][pMuted])
  54788. {
  54789. return SendErrorMessage(playerid, "You cannot use this command since you're muted.");
  54790. } else if(!IsPlayerInAnyVehicle(playerid)) {
  54791. return SendErrorMessage(playerid, "You must be in a vehicle to use this command.");
  54792. }
  54793. else if (isnull(params))
  54794. {
  54795. return SendSyntaxMessage(playerid, "/(m)egaphone (message)");
  54796. }
  54797. else
  54798. {
  54799. SendDistanceMessage(playerid, 50.0, COLOR_YELLOW, "** (Megaphone) %s: %s **", ReturnNameEx(playerid), params);
  54800. ShowActionBubble(playerid, "* %s speaks over their megaphone.", ReturnNameEx(playerid));
  54801. }
  54802. return 1;
  54803. }
  54804. CMD:deliverpatients(playerid, params[])
  54805. {
  54806. new count, vehicleid = GetPlayerVehicleID(playerid);
  54807. if (!IsPlayerInFaction(playerid, FACTION_MEDICAL))
  54808. {
  54809. return SendErrorMessage(playerid, "You are not part of a medical service.");
  54810. }
  54811. else if (GetVehicleModel(vehicleid) != 416 && GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
  54812. {
  54813. return SendErrorMessage(playerid, "You are not driving an ambulance.");
  54814. }
  54815. else if (!IsPlayerInRangeOfHospital(playerid))
  54816. {
  54817. return SendErrorMessage(playerid, "There is no hospital nearby.");
  54818. }
  54819. else
  54820. {
  54821. foreach (new i : Player)
  54822. {
  54823. if (IsPlayerInVehicle(i, vehicleid) && Players[i][pDeathState] == DEATH_STATE_INJURED)
  54824. {
  54825. Players[i][pHospital] = GetClosestHospital(i);
  54826. PlayerRecover(i);
  54827. count++;
  54828. }
  54829. }
  54830. if (count)
  54831. {
  54832. SendInfoMessage(playerid, "You have delivered %i patients to the hospital.", count);
  54833. }
  54834. else
  54835. {
  54836. SendErrorMessage(playerid, "There are no patients in the ambulance.");
  54837. }
  54838. }
  54839. return 1;
  54840. }
  54841. CMD:deploy(playerid, params[])
  54842. {
  54843. if (!IsPlayerInFaction(playerid, FACTION_LEO) && !IsPlayerInFaction(playerid, FACTION_MEDICAL) && !IsPlayerInFaction(playerid, FACTION_GOVERNMENT))
  54844. {
  54845. return SendErrorMessage(playerid, "You are not part of any public service faction.");
  54846. }
  54847. else if (GetNextDeployID() == INVALID_ID)
  54848. {
  54849. return SendErrorMessage(playerid, "You can't deploy anymore items! Use /undeploy to remove them.");
  54850. }
  54851. else if (IsPlayerInside(playerid))
  54852. {
  54853. return SendErrorMessage(playerid, "You can only deploy items outdoors.");
  54854. }
  54855. else
  54856. {
  54857. Dialog_Show(playerid, Deploy, DIALOG_STYLE_LIST, "{FFFFFF}Deploy Items", "Traffic cone\nSpike strips\nRoadblock\nSmoke flare\nRound barrier\nPolice Tape\nSmall Barrier\nDetour Barrier\nMedium Barrier\nLarge Barrier", "Deploy", "Cancel");
  54858. }
  54859. return 1;
  54860. }
  54861. CMD:undeploy(playerid, params[])
  54862. {
  54863. if (!IsPlayerInFaction(playerid, FACTION_LEO) && !IsPlayerInFaction(playerid, FACTION_MEDICAL) && !IsPlayerInFaction(playerid, FACTION_GOVERNMENT))
  54864. {
  54865. return SendErrorMessage(playerid, "You are not part of any public service faction.");
  54866. }
  54867. else
  54868. {
  54869. Dialog_Show(playerid, Undeploy, DIALOG_STYLE_LIST, "{FFFFFF}Deployed Items", "Remove nearest\nRemove all items", "Select", "Cancel");
  54870. }
  54871. return 1;
  54872. }
  54873. CMD:taxrate(playerid, params[])
  54874. {
  54875. new rate;
  54876. if (!IsPlayerInFaction(playerid, FACTION_GOVERNMENT) && Players[playerid][pAdmin] < 6)
  54877. {
  54878. return SendErrorMessage(playerid, "You are not part of the government.");
  54879. }
  54880. else if (sscanf(params, "i", rate))
  54881. {
  54882. return SendSyntaxMessage(playerid, "/taxrate (percentage)");
  54883. }
  54884. else if (Players[playerid][pFactionRank] < Factions[Players[playerid][pFaction]][fcMaxRanks])
  54885. {
  54886. return SendErrorMessage(playerid, "You are not a high ranking member.");
  54887. }
  54888. else if (!(1 <= rate <= 15))
  54889. {
  54890. return SendErrorMessage(playerid, "The percentage must consist of a value between 1 and 15.");
  54891. }
  54892. else
  54893. {
  54894. Server[TaxRate] = rate;
  54895. SaveInformation();
  54896. SendInfoMessage(playerid, "You have set the tax rate to %i percent.", rate);
  54897. SendAdminMessage(COLOR_RED, "Admin: %s has set the tax rate to %i percent.", ReturnNameEx(playerid, 0), rate);
  54898. }
  54899. return 1;
  54900. }
  54901. CMD:vault(playerid, params[])
  54902. {
  54903. if (!IsPlayerInFaction(playerid, FACTION_GOVERNMENT))
  54904. {
  54905. return SendErrorMessage(playerid, "You are not part of the government.");
  54906. }
  54907. else if (!IsPlayerInBank(playerid))
  54908. {
  54909. return SendErrorMessage(playerid, "You are not close to the bank counter.");
  54910. }
  54911. else if (Players[playerid][pFactionRank] < Factions[Players[playerid][pFaction]][fcMaxRanks])
  54912. {
  54913. return SendErrorMessage(playerid, "You are not a high ranking member.");
  54914. }
  54915. else
  54916. {
  54917. Dialog_Show(playerid, GovernmentVault, DIALOG_STYLE_LIST, "{FFFFFF}Government Vault", "Withdraw (%s)\nDeposit", "Select", "Cancel", FormatNumber(Server[TaxVault]));
  54918. }
  54919. return 1;
  54920. }
  54921. CMD:acceptcall(playerid, params[])
  54922. {
  54923. new targetid;
  54924. if (!IsPlayerInFaction(playerid, FACTION_LEO) && !IsPlayerInFaction(playerid, FACTION_MEDICAL))
  54925. {
  54926. return SendErrorMessage(playerid, "You are not part of any public service faction.");
  54927. }
  54928. else if (sscanf(params, "u", targetid))
  54929. {
  54930. return SendSyntaxMessage(playerid, "/acceptcall [playerid/name]");
  54931. }
  54932. else if (!IsPlayerConnected(targetid))
  54933. {
  54934. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  54935. }
  54936. else if (!Players[targetid][pEmergency])
  54937. {
  54938. return SendErrorMessage(playerid, "That player hasn't reported an emergency.");
  54939. }
  54940. else
  54941. {
  54942. new Float:x, Float:y, Float:z;
  54943. if (!GetPlayerPosEx(targetid, x, y, z))
  54944. {
  54945. SendInfoMessage(playerid, "Dispatch: The call could not be traced. (( Player is inside )).");
  54946. }
  54947. else
  54948. {
  54949. SetCheckpoint(playerid, CHECKPOINT_GPS, x, y, z, 3.0);
  54950. SendInfoMessage(playerid, "Dispatch: A waypoint was placed at the caller's last known location.");
  54951. }
  54952. }
  54953. return 1;
  54954. }
  54955. CMD:addrental(playerid, params[])
  54956. {
  54957. new company, model[32], modelid, price, color1, color2;
  54958. if (Players[playerid][pAdmin] < 5)
  54959. {
  54960. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  54961. }
  54962. else if (IsValidVehicle(Players[playerid][pAddVehicle]))
  54963. {
  54964. return SendErrorMessage(playerid, "You must exit the current vehicle first.");
  54965. }
  54966. else if (sscanf(params, "is[32]iI(11)I(11)", company, model, price, color1, color2))
  54967. {
  54968. SendSyntaxMessage(playerid, "/addrental (company ID) (model ID) (price) [color 1] [color 2]");
  54969. SendClientMessage(playerid, COLOR_LIGHTGREY, "Note: Use '-1' as the company ID if you don't wish to assign it to a company.");
  54970. }
  54971. else if (company != INVALID_ID && !IsValidCompanyID(company))
  54972. {
  54973. return SendErrorMessage(playerid, "The specified company is not valid.");
  54974. }
  54975. else if (!(modelid = GetVehicleModelFromName(model)))
  54976. {
  54977. return SendErrorMessage(playerid, "The specified model doesn't exist.");
  54978. }
  54979. else if (price < 1)
  54980. {
  54981. return SendErrorMessage(playerid, "The specified price can't be below $1.");
  54982. }
  54983. else if (company != INVALID_ID && Companies[company][cType] != COMPANY_RENTALS)
  54984. {
  54985. return SendErrorMessage(playerid, "You have specified an invalid company ID.");
  54986. }
  54987. else
  54988. {
  54989. SpawnConfirmationVehicle(playerid, company, INVALID_ID, price, modelid, color1, color2, true);
  54990. SendInfoMessage(playerid, "Use the /confirm command to save the position of the vehicle.");
  54991. }
  54992. return 1;
  54993. }
  54994. CMD:addobject(playerid, params[])
  54995. {
  54996. new modelid, Float:distance;
  54997. //if (!IsPlayerInFaction(playerid, FACTION_LEO) && !IsPlayerInFaction(playerid, FACTION_MEDICAL) && !IsPlayerInFaction(playerid, FACTION_GOVERNMENT))
  54998. if (Players[playerid][pAdmin] < 5 && Players[playerid][pMapper] < 1)
  54999. {
  55000. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  55001. }
  55002. else if (Players[playerid][pAdmin] < 1 && Players[playerid][pMapper] > 0 && !Players[playerid][pMapperDuty])
  55003. {
  55004. return SendErrorMessage(playerid, "You must be on mapper duty (/mduty).");
  55005. }
  55006. else if (sscanf(params, "iF(200.0)", modelid, distance))
  55007. {
  55008. return SendSyntaxMessage(playerid, "/addobject (model ID) (optional distance)");
  55009. }
  55010. else if (!IsValidModelID(modelid))
  55011. {
  55012. return SendErrorMessage(playerid, "You have specified an invalid model ID.");
  55013. }
  55014. else if (modelid == 17951 || modelid == 3294)
  55015. {
  55016. return SendErrorMessage(playerid, "That model can't be used as it causes problems in SA-MP.");
  55017. }
  55018. else if (distance < 1.0 || distance > 300.0)
  55019. {
  55020. return SendErrorMessage(playerid, "The distance must range between 1.0 and 300.0.");
  55021. }
  55022. else
  55023. {
  55024. new
  55025. Float:x,
  55026. Float:y,
  55027. Float:z,
  55028. Float:angle,
  55029. id;
  55030. GetPlayerPos(playerid, x, y, z);
  55031. GetPlayerFacingAngle(playerid, angle);
  55032. id = AddObject(modelid, x + (3.0 * floatsin(-angle, degrees)), y + (3.0 * floatcos(-angle, degrees)), z, 0.0, 0.0, angle, distance, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid));
  55033. if (id == INVALID_ID)
  55034. {
  55035. SendErrorMessage(playerid, "There are no available object slots.");
  55036. }
  55037. else
  55038. {
  55039. SendInfoMessage(playerid, "You have created object %i (/editobject).", id);
  55040. EditDynamicObjectEx(playerid, EDIT_TYPE_OBJECT, Objects[id][oObjectID], id);
  55041. }
  55042. }
  55043. return 1;
  55044. }
  55045. CMD:reloadobjects(playerid, params[])
  55046. {
  55047. new count;
  55048. if ((Players[playerid][pAdmin] < 5) && (Players[playerid][pMapper] == 0))
  55049. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  55050. if (Players[playerid][pAdmin] < 1 && Players[playerid][pMapper] > 0 && !Players[playerid][pMapperDuty])
  55051. {
  55052. return SendErrorMessage(playerid, "You must be on mapper duty (/mduty).");
  55053. }
  55054. for (new i = 0; i < MAX_SCRIPT_OBJECTS; i ++)
  55055. {
  55056. if (IsValidObjectID(i))
  55057. {
  55058. //UpdateObject(i);
  55059. count ++;
  55060. DestroyDynamicObject(Objects[i][oObjectID]);
  55061. DestroyDynamic3DTextLabel(Objects[i][oText]);
  55062. }
  55063. }
  55064. mysql_tquery(gConnection, "SELECT * FROM rp_objects", "OnLoadObjects");
  55065. SendFormatMessageToAll(COLOR_SAMP, "(( %s has reloaded %i objects. ))", ReturnNameEx(playerid, 0), count);
  55066. return 1;
  55067. }
  55068. CMD:editobject(playerid, params[])
  55069. {
  55070. new object;
  55071. if ((Players[playerid][pAdmin] < 5) && (Players[playerid][pMapper] == 0))
  55072. {
  55073. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  55074. }
  55075. else if (Players[playerid][pAdmin] < 1 && Players[playerid][pMapper] > 0 && !Players[playerid][pMapperDuty])
  55076. {
  55077. return SendErrorMessage(playerid, "You must be on mapper duty (/mduty).");
  55078. }
  55079. else if (sscanf(params, "i", object))
  55080. {
  55081. return SendSyntaxMessage(playerid, "/editobject (object ID)");
  55082. }
  55083. else if (!IsValidObjectID(object))
  55084. {
  55085. return SendErrorMessage(playerid, "You have specified an invalid object ID.");
  55086. }
  55087. else
  55088. {
  55089. SendInfoMessage(playerid, "Click on the disk icon to save changes.");
  55090. EditDynamicObjectEx(playerid, EDIT_TYPE_OBJECT, Objects[object][oObjectID], object);
  55091. }
  55092. return 1;
  55093. }
  55094. /*
  55095. CMD:gotocoords(playerid, params[])
  55096. {
  55097. new Float:fX, Float:fY, Float:fZ, interior;
  55098. // remove commas so we can copy paste coords without removing commas.
  55099. for (new i = 0, l = strlen(params); i < l; i ++) {
  55100. if (params[i] == ',') {
  55101. strdel(params, i, i + 1);
  55102. }
  55103. }
  55104. if (Players[playerid][pAdmin] < 2)
  55105. {
  55106. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  55107. }
  55108. else if (sscanf(params, "fffI(0)", fX, fY, fZ, interior))
  55109. {
  55110. return SendSyntaxMessage(playerid, "/gotocoords (x) (y) (z) [interior]");
  55111. }
  55112. else
  55113. {
  55114. SetPlayerPos(playerid, fX, fY, fZ);
  55115. SetPlayerInterior(playerid, interior);
  55116. SetCameraBehindPlayer(playerid);
  55117. SendInfoMessage(playerid, "You have teleported to %.4f, %.4f, %.4f (interior: %i).", fX, fY, fZ, interior);
  55118. }
  55119. return 1;
  55120. }
  55121. */
  55122. CMD:rotobjectx(playerid,params[])
  55123. {
  55124. new Float:rX, object;
  55125. if ((Players[playerid][pAdmin] < 5) && (Players[playerid][pMapper] == 0))
  55126. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  55127. if (Players[playerid][pAdmin] < 1 && Players[playerid][pMapper] > 0 && !Players[playerid][pMapperDuty])
  55128. {
  55129. return SendErrorMessage(playerid, "You must be on mapper duty (/mduty).");
  55130. }
  55131. if (sscanf(params,"if", object, rX))
  55132. return SendSyntaxMessage(playerid, "/rotobjectx [object ID] [xrot]");
  55133. if (!IsValidObjectID(object))
  55134. return SendErrorMessage(playerid, "You have specified an invalid object ID.");
  55135. Objects[object][oRX] = rX;
  55136. UpdateObject(object);
  55137. SaveObject(object);
  55138. return 1;
  55139. }
  55140. CMD:rotobjecty(playerid,params[])
  55141. {
  55142. new Float:rY, object;
  55143. if ((Players[playerid][pAdmin] < 5) && (Players[playerid][pMapper] == 0))
  55144. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  55145. if (Players[playerid][pAdmin] < 1 && Players[playerid][pMapper] > 0 && !Players[playerid][pMapperDuty])
  55146. {
  55147. return SendErrorMessage(playerid, "You must be on mapper duty (/mduty).");
  55148. }
  55149. if (sscanf(params,"if", object, rY))
  55150. return SendSyntaxMessage(playerid, "/rotobjecty [object ID] [yrot]");
  55151. if (!IsValidObjectID(object))
  55152. return SendErrorMessage(playerid, "You have specified an invalid object ID.");
  55153. Objects[object][oRY] = rY;
  55154. UpdateObject(object);
  55155. SaveObject(object);
  55156. return 1;
  55157. }
  55158. CMD:rotobjectz(playerid,params[])
  55159. {
  55160. new Float:rZ, object;
  55161. if ((Players[playerid][pAdmin] < 5) && (Players[playerid][pMapper] == 0))
  55162. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  55163. if (Players[playerid][pAdmin] < 1 && Players[playerid][pMapper] > 0 && !Players[playerid][pMapperDuty])
  55164. {
  55165. return SendErrorMessage(playerid, "You must be on mapper duty (/mduty).");
  55166. }
  55167. if (sscanf(params,"if", object, rZ))
  55168. return SendSyntaxMessage(playerid, "/rotobjectz [object ID] [zrot]");
  55169. if (!IsValidObjectID(object))
  55170. return SendErrorMessage(playerid, "You have specified an invalid object ID.");
  55171. Objects[object][oRZ] = rZ;
  55172. UpdateObject(object);
  55173. SaveObject(object);
  55174. return 1;
  55175. }
  55176. CMD:setobjectmodel(playerid,params[])
  55177. {
  55178. new model, object;
  55179. if ((Players[playerid][pAdmin] < 5) && (Players[playerid][pMapper] == 0))
  55180. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  55181. if (Players[playerid][pAdmin] < 1 && Players[playerid][pMapper] > 0 && !Players[playerid][pMapperDuty])
  55182. {
  55183. return SendErrorMessage(playerid, "You must be on mapper duty (/mduty).");
  55184. }
  55185. if (sscanf(params,"ii", object, model))
  55186. return SendSyntaxMessage(playerid, "/setobjectmodel [object ID] [model ID]");
  55187. if (!IsValidObjectID(object))
  55188. return SendErrorMessage(playerid, "You have specified an invalid object ID.");
  55189. if (!IsValidModelID(model))
  55190. return SendErrorMessage(playerid, "You have specified an invalid model ID.");
  55191. else if (model == 17951 || model == 3294)
  55192. return SendErrorMessage(playerid, "That model can't be used as it causes problems in SA-MP.");
  55193. Objects[object][oModel] = model;
  55194. UpdateObject(object);
  55195. SaveObject(object);
  55196. return 1;
  55197. }
  55198. CMD:gotoobject(playerid, params[])
  55199. {
  55200. new object;
  55201. if ((Players[playerid][pAdmin] < 5) && (Players[playerid][pMapper] == 0))
  55202. {
  55203. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  55204. }
  55205. else if (Players[playerid][pAdmin] < 1 && Players[playerid][pMapper] > 0 && !Players[playerid][pMapperDuty])
  55206. {
  55207. return SendErrorMessage(playerid, "You must be on mapper duty (/mduty).");
  55208. }
  55209. else if (sscanf(params, "i", object))
  55210. {
  55211. return SendSyntaxMessage(playerid, "/deleteobject (object ID)");
  55212. }
  55213. else if (!IsValidObjectID(object))
  55214. {
  55215. return SendErrorMessage(playerid, "You have specified an invalid object ID.");
  55216. }
  55217. else
  55218. {
  55219. SetPlayerPosEx(playerid, Objects[object][oX], Objects[object][oY], Objects[object][oZ], 0.0, Objects[object][oInterior], Objects[object][oWorld]);
  55220. SendInfoMessage(playerid, "You have teleported to object %i.", object);
  55221. }
  55222. return 1;
  55223. }
  55224. CMD:deleteobject(playerid, params[])
  55225. {
  55226. new object;
  55227. if ((Players[playerid][pAdmin] < 5) && (Players[playerid][pMapper] == 0))
  55228. {
  55229. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  55230. }
  55231. else if (Players[playerid][pAdmin] < 1 && Players[playerid][pMapper] > 0 && !Players[playerid][pMapperDuty])
  55232. {
  55233. return SendErrorMessage(playerid, "You must be on mapper duty (/mduty).");
  55234. }
  55235. else if (sscanf(params, "i", object))
  55236. {
  55237. return SendSyntaxMessage(playerid, "/deleteobject (object ID)");
  55238. }
  55239. else if (!IsValidObjectID(object))
  55240. {
  55241. return SendErrorMessage(playerid, "You have specified an invalid object ID.");
  55242. }
  55243. else
  55244. {
  55245. DestroyDynamicObject(Objects[object][oObjectID]);
  55246. DestroyDynamic3DTextLabel(Objects[object][oText]);
  55247. format(gExecute, sizeof(gExecute), "DELETE FROM rp_objects WHERE oID = %i", Objects[object][oID]);
  55248. mysql_tquery(gConnection, gExecute);
  55249. Objects[object][oExists] = 0;
  55250. SendInfoMessage(playerid, "You have deleted object ID: %i.", object);
  55251. }
  55252. return 1;
  55253. }
  55254. CMD:debugobjects(playerid, params[])
  55255. {
  55256. if ((Players[playerid][pAdmin] < 5) && (Players[playerid][pMapper] == 0))
  55257. {
  55258. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  55259. }
  55260. else if (Players[playerid][pAdmin] < 1 && Players[playerid][pMapper] > 0 && !Players[playerid][pMapperDuty])
  55261. {
  55262. return SendErrorMessage(playerid, "You must be on mapper duty (/mduty).");
  55263. }
  55264. else
  55265. {
  55266. gObjectDebug = !gObjectDebug;
  55267. if (gObjectDebug)
  55268. {
  55269. SendInfoMessage(playerid, "You have enabled object debugging mode.");
  55270. }
  55271. else
  55272. {
  55273. SendInfoMessage(playerid, "You have disabled object debugging mode.");
  55274. }
  55275. for (new i = 0; i < MAX_SCRIPT_OBJECTS; i ++)
  55276. {
  55277. if (IsValidObjectID(i))
  55278. {
  55279. UpdateObjectLabel(i);
  55280. }
  55281. }
  55282. }
  55283. return 1;
  55284. }
  55285. CMD:cloneobject(playerid, params[])
  55286. {
  55287. new object;
  55288. if ((Players[playerid][pAdmin] < 5) && (Players[playerid][pMapper] == 0))
  55289. {
  55290. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  55291. }
  55292. else if (Players[playerid][pAdmin] < 1 && Players[playerid][pMapper] > 0 && !Players[playerid][pMapperDuty])
  55293. {
  55294. return SendErrorMessage(playerid, "You must be on mapper duty (/mduty).");
  55295. }
  55296. else if (sscanf(params, "i", object))
  55297. {
  55298. return SendSyntaxMessage(playerid, "/editobject (object ID)");
  55299. }
  55300. else if (!IsValidObjectID(object))
  55301. {
  55302. return SendErrorMessage(playerid, "You have specified an invalid object ID.");
  55303. }
  55304. else
  55305. {
  55306. new cloneobject = AddObject(Objects[object][oModel], Objects[object][oX], Objects[object][oY], Objects[object][oZ], Objects[object][oRX], Objects[object][oRY], Objects[object][oRZ], Objects[object][oDistance], Objects[object][oInterior], Objects[object][oWorld]);
  55307. if (cloneobject == INVALID_ID)
  55308. {
  55309. SendErrorMessage(playerid, "There are no available object slots.");
  55310. }
  55311. else
  55312. {
  55313. SendInfoMessage(playerid, "You have cloned object %i. The new object ID is %i.", object, cloneobject);
  55314. EditDynamicObjectEx(playerid, EDIT_TYPE_OBJECT, Objects[cloneobject][oObjectID], cloneobject);
  55315. }
  55316. }
  55317. return 1;
  55318. }
  55319. CMD:setbankmoney(playerid, params[])
  55320. {
  55321. new targetid, index, displayString[MAX_BANK_ACCOUNTS * 50];
  55322. if (Players[playerid][pAdmin] < 5)
  55323. {
  55324. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  55325. }
  55326. else if (sscanf(params, "u", targetid))
  55327. {
  55328. return SendSyntaxMessage(playerid, "/setbankmoney [playerid/name]");
  55329. }
  55330. else if (!IsPlayerConnected(targetid))
  55331. {
  55332. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  55333. }
  55334. else if (!IsPlayerLoggedIn(targetid))
  55335. {
  55336. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  55337. }
  55338. else if (IsPlayerNPC(targetid))
  55339. {
  55340. return SendErrorMessage(playerid, "You can't use this command on an NPC.");
  55341. }
  55342. else
  55343. {
  55344. displayString = "Name\tBalance";
  55345. for (new i = 0; i < MAX_BANK_ACCOUNTS; i ++)
  55346. {
  55347. if (BankAccounts[targetid][i][bankExists])
  55348. {
  55349. format(displayString, sizeof(displayString), "%s\n%s\t%s", displayString, BankAccounts[targetid][i][bankName], FormatNumber(BankAccounts[targetid][i][bankBalance]));
  55350. gListedItems[playerid][index++] = i;
  55351. }
  55352. }
  55353. if (!index)
  55354. {
  55355. SendErrorMessage(playerid, "That player doesn't have any bank accounts.");
  55356. }
  55357. else
  55358. {
  55359. Players[playerid][pSetBank] = targetid;
  55360. Dialog_Show(playerid, SetBank, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Bank accounts", displayString, "Select", "Cancel");
  55361. }
  55362. }
  55363. return 1;
  55364. }
  55365. CMD:locatepackage(playerid, params[])
  55366. {
  55367. if (GetPlayerFactionType(playerid) != FACTION_ILLEGAL)
  55368. {
  55369. return SendErrorMessage(playerid, "You are not part of an illegal faction.");
  55370. }
  55371. else if (Players[playerid][pFactionRank] < Factions[Players[playerid][pFaction]][fcMaxRanks] - 1)
  55372. {
  55373. return SendErrorMessage(playerid, "You are not a high ranking member.");
  55374. }
  55375. else if (Players[playerid][pPackageType] == PACKAGE_TYPE_NONE)
  55376. {
  55377. return SendErrorMessage(playerid, "There is no package to pickup.");
  55378. }
  55379. else if (Players[playerid][pCheckpoint] == CHECKPOINT_PACKAGE)
  55380. {
  55381. return SendErrorMessage(playerid, "You have already located your package.");
  55382. }
  55383. else
  55384. {
  55385. SetCheckpointForPackage(playerid);
  55386. }
  55387. return 1;
  55388. }
  55389. CMD:buy(playerid, params[])
  55390. {
  55391. new company = GetCurrentCompany(playerid);
  55392. if (company == INVALID_ID)
  55393. {
  55394. return SendErrorMessage(playerid, "You are not at any place where you can buy items.");
  55395. }
  55396. else
  55397. {
  55398. switch (Companies[company][cType])
  55399. {
  55400. case COMPANY_RESTAURANT:
  55401. {
  55402. ShowRestaurantMenu(playerid, company);
  55403. }
  55404. case COMPANY_AMMO:
  55405. {
  55406. /*if (!Players[playerid][pGunLicense])
  55407. {
  55408. return SendErrorMessage(playerid, "You can't purchase items here if you don't have a gun license.");
  55409. }
  55410. else
  55411. {*/
  55412. ShowProductsForSale(playerid, company);
  55413. /*}*/
  55414. }
  55415. case COMPANY_RENTALS:
  55416. {
  55417. SendErrorMessage(playerid, "This company doesn't serve products.");
  55418. }
  55419. default:
  55420. {
  55421. ShowProductsForSale(playerid, company);
  55422. }
  55423. }
  55424. }
  55425. return 1;
  55426. }
  55427. CMD:killcp(playerid, params[]) return cmd_clearcp(playerid, params);
  55428. CMD:clearcp(playerid, params[])
  55429. {
  55430. if (Players[playerid][pWorking])
  55431. {
  55432. return SendErrorMessage(playerid, "You are working right now. Use /stop to stop working.");
  55433. }
  55434. else if (Players[playerid][pCheckpoint] == CHECKPOINT_NONE)
  55435. {
  55436. return SendErrorMessage(playerid, "You don't have any active checkpoints to clear.");
  55437. }
  55438. else
  55439. {
  55440. ResetCheckpoint(playerid);
  55441. SendInfoMessage(playerid, "You have cleared all active checkpoints.");
  55442. }
  55443. return 1;
  55444. }
  55445. CMD:issuelicense(playerid, params[])
  55446. {
  55447. new targetid, type[16];
  55448. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  55449. {
  55450. return SendErrorMessage(playerid, "You are not part of the law enforcement.");
  55451. }
  55452. else if (sscanf(params, "us[16]", targetid, type))
  55453. {
  55454. return SendSyntaxMessage(playerid, "/issuelicense [playerid/name] (driving/weapon)");
  55455. }
  55456. else if (!IsPlayerConnected(targetid))
  55457. {
  55458. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  55459. }
  55460. else if (IsPlayerNPC(targetid))
  55461. {
  55462. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  55463. }
  55464. else if (!IsPlayerLoggedIn(targetid))
  55465. {
  55466. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  55467. }
  55468. else if (Players[playerid][pFactionRank] < Factions[Players[playerid][pFaction]][fcMaxRanks] - 1)
  55469. {
  55470. return SendErrorMessage(playerid, "You are not a high ranking member.");
  55471. }
  55472. else if (!IsPlayerInRangeOfPlayer(playerid, targetid, 5.0))
  55473. {
  55474. return SendErrorMessage(playerid, "You must be in range of that player.");
  55475. }
  55476. else
  55477. {
  55478. if (!strcmp(type, "driving", true))
  55479. {
  55480. if (Players[targetid][pCarLicense])
  55481. {
  55482. return SendErrorMessage(playerid, "The specified target already has a driving license.");
  55483. }
  55484. else
  55485. {
  55486. ShowActionBubble(playerid, "* %s issues %s a driving license.", ReturnNameEx(playerid), ReturnNameEx(targetid));
  55487. Players[targetid][pCarLicense] = 1;
  55488. SendInfoMessage(playerid, "You have issued %s a driving license.", ReturnNameEx(targetid));
  55489. SendInfoMessage(targetid, "%s has issued you a driving license.", ReturnNameEx(playerid));
  55490. }
  55491. }
  55492. else if (!strcmp(type, "weapon", true))
  55493. {
  55494. if (Players[targetid][pGunLicense])
  55495. {
  55496. return SendErrorMessage(playerid, "The specified target already has a weapon license.");
  55497. }
  55498. else
  55499. {
  55500. format(gExecute, sizeof(gExecute), "INSERT INTO rp_gunlicenses (Player, Target, Date) VALUES('%s', '%s', NOW())", ReturnName(playerid), ReturnName(targetid));
  55501. mysql_tquery(gConnection, gExecute);
  55502. ShowActionBubble(playerid, "* %s issues %s a gun license.", ReturnNameEx(playerid), ReturnNameEx(targetid));
  55503. Players[targetid][pGunLicense] = 1;
  55504. SendInfoMessage(playerid, "You have issued %s a gun license.", ReturnNameEx(targetid));
  55505. SendInfoMessage(targetid, "%s has issued you a gun license.", ReturnNameEx(playerid));
  55506. }
  55507. }
  55508. }
  55509. return 1;
  55510. }
  55511. CMD:revokelicense(playerid, params[])
  55512. {
  55513. new targetid, type[16];
  55514. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  55515. {
  55516. return SendErrorMessage(playerid, "You are not part of the law enforcement.");
  55517. }
  55518. else if (sscanf(params, "us[16]", targetid, type))
  55519. {
  55520. return SendSyntaxMessage(playerid, "/revokelicense [playerid/name] (driving/weapon)");
  55521. }
  55522. else if (!IsPlayerConnected(targetid))
  55523. {
  55524. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  55525. }
  55526. else if (IsPlayerNPC(targetid))
  55527. {
  55528. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  55529. }
  55530. else if (!IsPlayerLoggedIn(targetid))
  55531. {
  55532. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  55533. }
  55534. else if (!IsPlayerInRangeOfPlayer(playerid, targetid, 5.0))
  55535. {
  55536. return SendErrorMessage(playerid, "You must be in range of that player.");
  55537. }
  55538. else
  55539. {
  55540. if (!strcmp(type, "driving", true))
  55541. {
  55542. if (!Players[targetid][pCarLicense])
  55543. {
  55544. return SendErrorMessage(playerid, "The specified target doesn't have a driving license.");
  55545. }
  55546. else
  55547. {
  55548. ShowActionBubble(playerid, "* %s revokes %s's driving license.", ReturnNameEx(playerid), ReturnNameEx(targetid));
  55549. Players[targetid][pCarLicense] = 0;
  55550. SendInfoMessage(playerid, "You have revoked %s's driving license.", ReturnNameEx(targetid));
  55551. SendInfoMessage(targetid, "%s has revoked your driving license.", ReturnNameEx(playerid));
  55552. }
  55553. }
  55554. else if (!strcmp(type, "weapon", true))
  55555. {
  55556. if (!Players[targetid][pGunLicense])
  55557. {
  55558. return SendErrorMessage(playerid, "The specified target doesn't have a weapon license.");
  55559. }
  55560. else
  55561. {
  55562. ShowActionBubble(playerid, "* %s revokes %s's gun license.", ReturnNameEx(playerid), ReturnNameEx(targetid));
  55563. Players[targetid][pGunLicense] = 0;
  55564. SendInfoMessage(playerid, "You have revoked %s's gun license.", ReturnNameEx(targetid));
  55565. SendInfoMessage(targetid, "%s has revoked your gun license.", ReturnNameEx(playerid));
  55566. }
  55567. }
  55568. }
  55569. return 1;
  55570. }
  55571. CMD:start(playerid, params[])
  55572. {
  55573. if (!IsPlayerInRangeOfPoint(playerid, 3.0, 1490.2839, 1305.6837, 1093.2964))
  55574. {
  55575. return SendErrorMessage(playerid, "You are not in range of the DMV.");
  55576. }
  55577. else if (Players[playerid][pCarLicense])
  55578. {
  55579. return SendErrorMessage(playerid, "You have your driving license already.");
  55580. }
  55581. else if (Players[playerid][pCDL])
  55582. {
  55583. return SendErrorMessage(playerid, "You have your CDL license already.");
  55584. }
  55585. else if (Players[playerid][pDrivingTest])
  55586. {
  55587. return SendErrorMessage(playerid, "You have started the driving test already.");
  55588. }
  55589. else
  55590. {
  55591. Players[playerid][pDrivingTest] = 1;
  55592. Players[playerid][pDrivingCP] = 0;
  55593. SendInfoMessage(playerid, "You have started the driving test! Enter a vehicle outside to begin.");
  55594. }
  55595. return 1;
  55596. }
  55597. CMD:licenses(playerid, params[])
  55598. {
  55599. return cmd_showlicenses(playerid, params);
  55600. }
  55601. //Faster (new) split Code [[User:Kaliber|Kaliber]]
  55602. stock split(const src[], dest[][], const delimiter)
  55603. {
  55604. new n_pos,num,old,str[1];
  55605. str[0] = delimiter;
  55606. while(n_pos != -1)
  55607. {
  55608. n_pos = strfind(src,str,false,n_pos+1);
  55609. strmid(dest[num++], src, (!num)?0:old+1,(n_pos==-1)?strlen(src):n_pos,256);
  55610. old=n_pos;
  55611. }
  55612. return 1;
  55613. }
  55614. /*GetPlayerFirstName(playerid)
  55615. {
  55616. new
  55617. namestring[2][MAX_PLAYER_NAME],
  55618. name[MAX_PLAYER_NAME];
  55619. GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  55620. split(name, namestring, '_');
  55621. return namestring[0];
  55622. }*/
  55623. /*GetPlayerLastName(playerid)
  55624. {
  55625. new
  55626. namestring[2][MAX_PLAYER_NAME],
  55627. name[MAX_PLAYER_NAME];
  55628. GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  55629. split(name, namestring, '_');
  55630. return namestring[0];
  55631. }*/
  55632. CMD:calc(playerid, params[])
  55633. {
  55634. return cmd_calculate(playerid, params);
  55635. }
  55636. CMD:calculate(playerid, params[])
  55637. {
  55638. new option[128];
  55639. new num1;
  55640. new num2;
  55641. if (sscanf(params, "is[24]i", num1, option, num2))
  55642. {
  55643. return SendSyntaxMessage(playerid, "/(calc)ulate [number] [+ - x /] [number]");
  55644. }
  55645. else
  55646. {
  55647. if (!strcmp(option, "+", true))
  55648. {
  55649. new num = (num1 + num2);
  55650. SendInfoMessage(playerid, "[CALCULATOR] %i + %i = %i", num1, num2, num);
  55651. }
  55652. else if (!strcmp(option, "-", true))
  55653. {
  55654. new num = (num1 - num2);
  55655. SendInfoMessage(playerid, "[CALCULATOR] %i - %i = %i", num1, num2, num);
  55656. }
  55657. else if (!strcmp(option, "x", true))
  55658. {
  55659. new num = (num1 * num2);
  55660. SendInfoMessage(playerid, "[CALCULATOR] %i x %i = %i", num1, num2, num);
  55661. }
  55662. else if (!strcmp(option, "/", true))
  55663. {
  55664. new num = (num1 / num2);
  55665. SendInfoMessage(playerid, "[CALCULATOR] %i / %i = %i", num1, num2, num);
  55666. }
  55667. }
  55668. return 1;
  55669. }
  55670. /*CMD:showlicenses(playerid, params[])
  55671. {
  55672. new targetid;
  55673. new option[128];
  55674. if (sscanf(params, "us[128]", targetid, option))
  55675. {
  55676. return SendSyntaxMessage(playerid, "/showlicenses [playerid/name] [driver/weapon/pilot]");
  55677. }
  55678. else if (!IsPlayerConnected(targetid))
  55679. {
  55680. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  55681. }
  55682. else if (IsPlayerNPC(targetid))
  55683. {
  55684. return SendErrorMessage(playerid, "You cannot use this command on an NPC.");
  55685. }
  55686. else if (!IsPlayerLoggedIn(targetid))
  55687. {
  55688. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  55689. }
  55690. else if (!IsPlayerInRangeOfPlayer(playerid, targetid, 5.0))
  55691. {
  55692. return SendErrorMessage(playerid, "You must be in range of that player.");
  55693. }
  55694. else
  55695. {
  55696. if (!strcmp(option, "driver", true))
  55697. {
  55698. if (Players[playerid][pCarLicense] == 0)
  55699. return SendErrorMessage(playerid, "You don't own a drivers license.");
  55700. SendFormatMessage(targetid, COLOR_LIGHTGREY, "CALIFORNIA DRIVER LICENSE");
  55701. SendFormatMessage(targetid, COLOR_LIGHTGREY, "DL: %i", (playerid+50*5335));
  55702. SendFormatMessage(targetid, COLOR_LIGHTGREY, " ");
  55703. SendFormatMessage(targetid, COLOR_LIGHTGREY, "LN: %s", GetPlayerLastName(playerid));
  55704. SendFormatMessage(targetid, COLOR_LIGHTGREY, "FN: %s", GetPlayerFirstName(playerid));
  55705. SendFormatMessage(targetid, COLOR_LIGHTGREY, "AGE: %i", Players[playerid][pAge]);
  55706. SendFormatMessage(targetid, COLOR_LIGHTGREY, "SEX: %s", GetGenderForPlayer(playerid));
  55707. ShowActionBubble(playerid, "* %s shows %s their licenses.", ReturnNameEx(playerid), ReturnNameEx(targetid));
  55708. SendInfoMessage(playerid, "You have shown %s your licenses.", ReturnNameEx(targetid));
  55709. }
  55710. else if (!strcmp(option, "weapon", true))
  55711. {
  55712. if (Players[playerid][pGunLicense] == 0)
  55713. return SendErrorMessage(playerid, "You don't own a weapons license.");
  55714. SendFormatMessage(targetid, COLOR_LIGHTGREY, "License To Carry Concealed Pistol, Revolver, or Other Firearm");
  55715. SendFormatMessage(targetid, COLOR_LIGHTGREY, "Within the State of California");
  55716. SendFormatMessage(targetid, COLOR_LIGHTGREY, "Issued By:");
  55717. SendFormatMessage(targetid, COLOR_LIGHTGREY, "Agency: Los Santos Police Dept.");
  55718. SendFormatMessage(targetid, COLOR_LIGHTGREY, " ");
  55719. SendFormatMessage(targetid, COLOR_LIGHTGREY, "Name of Licensee: %s", ReturnNameEx(playerid));
  55720. SendFormatMessage(targetid, COLOR_LIGHTGREY, "Age of Licensee: %i", Players[playerid][pAge]);
  55721. ShowActionBubble(playerid, "* %s shows %s their licenses.", ReturnNameEx(playerid), ReturnNameEx(targetid));
  55722. SendInfoMessage(playerid, "You have shown %s your licenses.", ReturnNameEx(targetid));
  55723. }
  55724. else if (!strcmp(option, "pilot", true))
  55725. {
  55726. if (Players[playerid][pPilotLicense] == 0)
  55727. return SendErrorMessage(playerid, "You don't own a pilots license.");
  55728. SendFormatMessage(targetid, COLOR_LIGHTGREY, "UNITED STATES OF AMERICA");
  55729. SendFormatMessage(targetid, COLOR_LIGHTGREY, "DEPARTMENT OF TRANSPORTATION - FEDERAL AVIATION ADMINISTRATION");
  55730. SendFormatMessage(targetid, COLOR_LIGHTGREY, " ");
  55731. SendFormatMessage(targetid, COLOR_LIGHTGREY, "NAME: %s", ReturnNameEx(playerid));
  55732. SendFormatMessage(targetid, COLOR_LIGHTGREY, "AGE: %i", Players[playerid][pAge]);
  55733. SendFormatMessage(targetid, COLOR_LIGHTGREY, " ");
  55734. SendFormatMessage(targetid, COLOR_LIGHTGREY, "HAS BEEN FOUND TO BE PROPERLY QUALIFIED TO EXERCISE THE PRIVILEGES OF");
  55735. SendFormatMessage(targetid, COLOR_LIGHTGREY, "PRIVATE PILOT");
  55736. SendFormatMessage(targetid, COLOR_LIGHTGREY, "CERTIFICATE NUMBER %i", (playerid+50*3553));
  55737. ShowActionBubble(playerid, "* %s shows %s their licenses.", ReturnNameEx(playerid), ReturnNameEx(targetid));
  55738. SendInfoMessage(playerid, "You have shown %s your licenses.", ReturnNameEx(targetid));
  55739. }
  55740. }
  55741. return 1;
  55742. }*/
  55743. CMD:showlicenses(playerid, params[])
  55744. {
  55745. new targetid;
  55746. if (sscanf(params, "u", targetid))
  55747. {
  55748. return SendSyntaxMessage(playerid, "/showlicenses [playerid/name]");
  55749. }
  55750. else if (!IsPlayerConnected(targetid))
  55751. {
  55752. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  55753. }
  55754. else if (IsPlayerNPC(targetid))
  55755. {
  55756. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  55757. }
  55758. else if (!IsPlayerLoggedIn(targetid))
  55759. {
  55760. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  55761. }
  55762. else if (!IsPlayerInRangeOfPlayer(playerid, targetid, 5.0))
  55763. {
  55764. return SendErrorMessage(playerid, "You must be in range of that player.");
  55765. }
  55766. else
  55767. {
  55768. SendFormatMessage(targetid, COLOR_YELLOW, "______STATE OF SAN ANDREAS______");
  55769. SendFormatMessage(targetid, COLOR_YELLOW, "Name: %s", ReturnNameEx(playerid));
  55770. SendFormatMessage(targetid, COLOR_YELLOW, "Drivers License: %s", (Players[playerid][pCarLicense]) ? ("Yes") : ("No"));
  55771. SendFormatMessage(targetid, COLOR_YELLOW, "Gun License: %s", (Players[playerid][pGunLicense]) ? ("Yes") : ("No"));
  55772. ShowActionBubble(playerid, "* %s shows %s their licenses.", ReturnNameEx(playerid), ReturnNameEx(targetid));
  55773. SendInfoMessage(playerid, "You have shown %s your licenses.", ReturnNameEx(targetid));
  55774. }
  55775. return 1;
  55776. }
  55777. CMD:badge(playerid, params[])
  55778. {
  55779. new targetid;
  55780. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  55781. return SendErrorMessage(playerid, "You are not part of the law enforcement.");
  55782. if(sscanf(params,"u", targetid))
  55783. return SendSyntaxMessage(playerid, "/badge [playerid/name]");
  55784. if(!IsPlayerConnected(targetid))
  55785. return SendErrorMessage(playerid,"The specified target doesn't exist.");
  55786. if(IsPlayerNPC(targetid))
  55787. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  55788. if(!IsPlayerLoggedIn(targetid))
  55789. return SendErrorMessage(playerid,"The specified target is not logged in yet.");
  55790. if(!IsPlayerInRangeOfPlayer(playerid,targetid,5.0))
  55791. return SendErrorMessage(playerid,"You must be in range of that player.");
  55792. SendFormatMessage(targetid,COLOR_YELLOW,"%s Badge:", GetInitials(GetPlayerFactionName(playerid)) );
  55793. SendFormatMessage(targetid,COLOR_WHITE, "Name: %s", ReturnNameEx(playerid) );
  55794. SendFormatMessage(targetid,COLOR_WHITE, "Rank: %s", GetPlayerFactionRank(playerid) );
  55795. SendFormatMessage(targetid,COLOR_WHITE, "Badge: %i", Players[playerid][pBadge] );
  55796. SendFormatMessage(targetid,COLOR_WHITE, "Agency: %s", GetPlayerFactionName(playerid) );
  55797. if (playerid == targetid)
  55798. {
  55799. ShowActionBubble(playerid, "* %s looks at their badge.", ReturnNameEx(playerid));
  55800. SendInfoMessage(playerid, "You have shown your badge to yourself.");
  55801. }
  55802. else
  55803. {
  55804. ShowActionBubble(playerid, "* %s shows %s their badge.", ReturnNameEx(playerid), ReturnNameEx(targetid));
  55805. SendInfoMessage(playerid, "You have shown your badge to %s.", ReturnNameEx(targetid));
  55806. }
  55807. //SendInfoMessage(playerid, "You have shown %s your badge.", ReturnNameEx(targetid));
  55808. return 1;
  55809. }
  55810. CMD:readrights(playerid, params[])
  55811. {
  55812. new targetid;
  55813. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  55814. return SendErrorMessage(playerid, "You are not part of the law enforcement.");
  55815. if(sscanf(params,"u", targetid))
  55816. return SendSyntaxMessage(playerid, "/readrights [playerid/name]");
  55817. if(!IsPlayerConnected(targetid))
  55818. return SendErrorMessage(playerid,"The specified target doesn't exist.");
  55819. if(IsPlayerNPC(targetid))
  55820. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  55821. if(!IsPlayerLoggedIn(targetid))
  55822. return SendErrorMessage(playerid,"The specified target is not logged in yet.");
  55823. if(!IsPlayerInRangeOfPlayer(playerid,targetid,5.0))
  55824. return SendErrorMessage(playerid,"You must be in range of that player.");
  55825. SendClientMessage(targetid, COLOR_WHITE, "You have the right to remain silent. Anything you say can and will be used against you in a court of law.");
  55826. SendClientMessage(targetid, COLOR_WHITE, "You have the right to an attorney, If you cannot afford an attorney, one will be provided for you.");
  55827. SendClientMessage(targetid, COLOR_WHITE, "Do you understand the rights I have just read to you? With these rights in mind, do you wish to speak to me?");
  55828. if (playerid == targetid)
  55829. {
  55830. ShowActionBubble(playerid, "* %s begins to read %s their rights.", ReturnNameEx(playerid), ReturnNameEx(targetid));
  55831. SendInfoMessage(playerid, "You have read %s their Miranda rights.", ReturnNameEx(targetid));
  55832. }
  55833. return 1;
  55834. }
  55835. CMD:greet(playerid, params[])
  55836. {
  55837. new targetid;
  55838. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  55839. return SendErrorMessage(playerid, "You are not part of the law enforcement.");
  55840. if(sscanf(params,"u", targetid))
  55841. return SendSyntaxMessage(playerid, "/greet [playerid/name]");
  55842. if(!IsPlayerConnected(targetid))
  55843. return SendErrorMessage(playerid,"The specified target doesn't exist.");
  55844. if(IsPlayerNPC(targetid))
  55845. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  55846. if(!IsPlayerLoggedIn(targetid))
  55847. return SendErrorMessage(playerid,"The specified target is not logged in yet.");
  55848. if(!IsPlayerInRangeOfPlayer(playerid,targetid,5.0))
  55849. return SendErrorMessage(playerid,"You must be in range of that player.");
  55850. SendFormatMessage(targetid, COLOR_WHITE, "I am %s %s with the %s, do you know why I am pulling you over today?", GetPlayerFactionRank(playerid), ReturnNameEx(playerid, 1));
  55851. if (playerid == targetid)
  55852. {
  55853. ShowActionBubble(playerid, "* %s begins to speak to %s.", ReturnNameEx(playerid), ReturnNameEx(targetid));
  55854. }
  55855. return 1;
  55856. }
  55857. CMD:engine(playerid, params[])
  55858. {
  55859. if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
  55860. {
  55861. return SendErrorMessage(playerid, "You are not driving any vehicle.");
  55862. }
  55863. else if (!IsPoweredVehicle(GetPlayerVehicleID(playerid)))
  55864. {
  55865. return SendErrorMessage(playerid, "This vehicle doesn't have an engine.");
  55866. }
  55867. /* else if (Players[playerid][pAdminDuty])
  55868. {
  55869. if (GetEngineStatus(GetPlayerVehicleID(playerid)))
  55870. {
  55871. SetEngineStatus(GetPlayerVehicleID(playerid), 0);
  55872. }
  55873. else
  55874. {
  55875. SetEngineStatus(GetPlayerVehicleID(playerid), 1);
  55876. }
  55877. }*/
  55878. else
  55879. {
  55880. EngineCaller(playerid);
  55881. }
  55882. return 1;
  55883. }
  55884. CMD:animations(playerid, params[])
  55885. {
  55886. ShowAnimationList(playerid);
  55887. return 1;
  55888. }
  55889. CMD:id(playerid, params[])
  55890. {
  55891. new targetid, count;
  55892. if (isnull(params))
  55893. {
  55894. return SendSyntaxMessage(playerid, "/id (search query)");
  55895. }
  55896. else
  55897. {
  55898. if (!sscanf(params, "i", targetid))
  55899. {
  55900. if (!IsPlayerConnected(targetid))
  55901. {
  55902. return SendErrorMessage(playerid, "There is no player online with that ID.");
  55903. }
  55904. else
  55905. {
  55906. SendClientMessage(playerid, COLOR_WHITE, "---------------------------------------");
  55907. SendFormatMessage(playerid, COLOR_WHITE, "(ID: %i) - %s", targetid, ReturnNameEx(targetid, 0));
  55908. SendClientMessage(playerid, COLOR_WHITE, "---------------------------------------");
  55909. }
  55910. }
  55911. else if (strlen(params) < 3)
  55912. {
  55913. return SendErrorMessage(playerid, "You must enter at least 3 characters to search.");
  55914. }
  55915. else
  55916. {
  55917. SendClientMessage(playerid, COLOR_WHITE, "---------------------------------------");
  55918. foreach (new i : Player)
  55919. {
  55920. if (strfind(ReturnName(i), params, true) != -1)
  55921. {
  55922. SendFormatMessage(playerid, COLOR_WHITE, "(ID: %i) - %s", i, ReturnNameEx(i, 0));
  55923. count++;
  55924. }
  55925. }
  55926. if (!count)
  55927. {
  55928. SendInfoMessage(playerid, "No matches found for \"%s\".", params);
  55929. }
  55930. SendClientMessage(playerid, COLOR_WHITE, "---------------------------------------");
  55931. }
  55932. }
  55933. return 1;
  55934. }
  55935. CMD:time(playerid, params[])
  55936. {
  55937. new
  55938. string[128],
  55939. day,
  55940. month,
  55941. year,
  55942. hour,
  55943. minute,
  55944. second;
  55945. getdate(year, month, day);
  55946. gettime(hour, minute, second);
  55947. if (!Players[playerid][pJailType])
  55948. {
  55949. format(string, sizeof(string), "~w~%s %02d, %i~n~~b~~h~%02d:%02d:%02d", GetMonth(month), day, year, hour, minute, second);
  55950. GameTextForPlayer(playerid, string, 3000, 1);
  55951. }
  55952. else
  55953. {
  55954. format(string, sizeof(string), "~w~%s %02d, %i~n~~b~~h~%02d:%02d:%02d~n~~w~Jail Time:~w~ %s", GetMonth(month), day, year, hour, minute, second, ReturnElapsed(Players[playerid][pJailTime]));
  55955. GameTextForPlayer(playerid, string, 3000, 1);
  55956. }
  55957. SendInfoMessage(playerid, "Your next paycheck is due in %i minutes.", (60 - Players[playerid][pMinutes]));
  55958. ShowActionBubble(playerid, "* %s looks down at their watch.", ReturnNameEx(playerid));
  55959. return 1;
  55960. }
  55961. CMD:saveplayers(playerid, params[])
  55962. {
  55963. if (Players[playerid][pAdmin] < 1)
  55964. {
  55965. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  55966. }
  55967. else
  55968. {
  55969. foreach (new i : Player)
  55970. {
  55971. if (IsPlayerLoggedIn(i))
  55972. {
  55973. SaveAccount(i);
  55974. }
  55975. }
  55976. SendInfoMessage(playerid, "You have saved all player accounts.");
  55977. }
  55978. return 1;
  55979. }
  55980. CMD:vwreset(playerid, params[])
  55981. {
  55982. if (!GetPlayerInterior(playerid) && GetPlayerVirtualWorld(playerid) > 0)
  55983. {
  55984. SetPlayerVirtualWorld(playerid, 0);
  55985. SendInfoMessage(playerid, "Your virtual world has been reset.");
  55986. }
  55987. return 1;
  55988. }
  55989. CMD:listassets(playerid, params[])
  55990. {
  55991. if (isnull(params))
  55992. {
  55993. return SendClientMessage(playerid, COLOR_WHITE, "Syntax: /listassets (houses/companies)");
  55994. }
  55995. else if (!strcmp(params, "houses", true))
  55996. {
  55997. SendClientMessage(playerid, COLOR_GREY, "-------------------------------------------------------------");
  55998. SendClientMessage(playerid, COLOR_GREEN, "My Houses:");
  55999. for (new i = 0; i < MAX_HOUSES; i ++)
  56000. {
  56001. if (IsValidHouseID(i) && IsHouseOwner(playerid, i))
  56002. {
  56003. SendFormatMessage(playerid, COLOR_WHITE, "- %s (located at %s).", Houses[i][hAddress], GetZoneName(Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2]));
  56004. }
  56005. }
  56006. SendClientMessage(playerid, COLOR_GREY, "-------------------------------------------------------------");
  56007. }
  56008. else if (!strcmp(params, "companies", true))
  56009. {
  56010. SendClientMessage(playerid, COLOR_GREY, "-------------------------------------------------------------");
  56011. SendClientMessage(playerid, COLOR_GREEN, "My Companies:");
  56012. for (new i = 0; i < MAX_COMPANIES; i ++)
  56013. {
  56014. if (IsValidCompanyID(i) && IsCompanyOwner(playerid, i))
  56015. {
  56016. SendFormatMessage(playerid, COLOR_WHITE, "- %s (located at %s).", Companies[i][cName], GetZoneName(Companies[i][cSpawn][0], Companies[i][cSpawn][1], Companies[i][cSpawn][2]));
  56017. }
  56018. }
  56019. SendClientMessage(playerid, COLOR_GREY, "-------------------------------------------------------------");
  56020. }
  56021. return 1;
  56022. }
  56023. CMD:alistcars(playerid, params[])
  56024. {
  56025. new targetid;
  56026. if (Players[playerid][pAdmin] < 4)
  56027. {
  56028. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  56029. }
  56030. else if (sscanf(params, "u", targetid))
  56031. {
  56032. return SendSyntaxMessage(playerid, "/alistcars (player)");
  56033. }
  56034. else if (!IsPlayerConnected(targetid))
  56035. {
  56036. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  56037. }
  56038. else if (!IsPlayerLoggedIn(targetid))
  56039. {
  56040. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  56041. }
  56042. else
  56043. {
  56044. SendClientMessage(playerid, COLOR_GREY, "-------------------------------------------------------------");
  56045. SendFormatMessage(playerid, COLOR_GREEN, "%s's Vehicles:", ReturnNameEx(targetid, 0));
  56046. for (new i = 0; i < MAX_CARS; i ++)
  56047. {
  56048. if (IsValidVehicleID(i) && IsVehicleOwner(targetid, i))
  56049. {
  56050. if (Vehicles[i][vImpound])
  56051. {
  56052. SendFormatMessage(playerid, COLOR_WHITE, "- %s - %s (Impounded)", GetVehicleModelName(Vehicles[i][vModel]), Vehicles[i][vPlate]);
  56053. }
  56054. else if (Vehicles[i][vDespawned])
  56055. {
  56056. SendFormatMessage(playerid, COLOR_WHITE, "- %s - %s (Despawned)", GetVehicleModelName(Vehicles[i][vModel]), Vehicles[i][vPlate]);
  56057. }
  56058. else
  56059. {
  56060. SendFormatMessage(playerid, COLOR_WHITE, "- %s - %s (ID: %i)", GetVehicleModelName(Vehicles[i][vModel]), Vehicles[i][vPlate], Vehicles[i][vVehicle]);
  56061. }
  56062. }
  56063. }
  56064. SendClientMessage(playerid, COLOR_GREY, "-------------------------------------------------------------");
  56065. }
  56066. return 1;
  56067. }
  56068. CMD:alistassets(playerid, params[])
  56069. {
  56070. new targetid, type[16];
  56071. if (Players[playerid][pAdmin] < 4)
  56072. {
  56073. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  56074. }
  56075. else if (sscanf(params, "us[16]", targetid, type))
  56076. {
  56077. return SendSyntaxMessage(playerid, "/alistassets (player) (houses/companies)");
  56078. }
  56079. else if (!IsPlayerConnected(targetid))
  56080. {
  56081. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  56082. }
  56083. else if (!IsPlayerLoggedIn(targetid))
  56084. {
  56085. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  56086. }
  56087. else
  56088. {
  56089. if (!strcmp(type, "houses", true))
  56090. {
  56091. SendClientMessage(playerid, COLOR_GREY, "-------------------------------------------------------------");
  56092. SendFormatMessage(playerid, COLOR_GREEN, "%s's Houses:", ReturnNameEx(targetid, 0));
  56093. for (new i = 0; i < MAX_HOUSES; i ++)
  56094. {
  56095. if (IsValidHouseID(i) && IsHouseOwner(targetid, i))
  56096. {
  56097. SendFormatMessage(playerid, COLOR_WHITE, "- %s (ID: %i) (located at %s).", Houses[i][hAddress], i, GetZoneName(Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2]));
  56098. }
  56099. }
  56100. SendClientMessage(playerid, COLOR_GREY, "-------------------------------------------------------------");
  56101. }
  56102. else if (!strcmp(type, "companies", true))
  56103. {
  56104. SendClientMessage(playerid, COLOR_GREY, "-------------------------------------------------------------");
  56105. SendFormatMessage(playerid, COLOR_GREEN, "%s's Companies:", ReturnNameEx(targetid, 0));
  56106. for (new i = 0; i < MAX_COMPANIES; i ++)
  56107. {
  56108. if (IsValidCompanyID(i) && IsCompanyOwner(targetid, i))
  56109. {
  56110. SendFormatMessage(playerid, COLOR_WHITE, "- %s (ID: %i) (located at %s).", Companies[i][cName], i, GetZoneName(Companies[i][cSpawn][0], Companies[i][cSpawn][1], Companies[i][cSpawn][2]));
  56111. }
  56112. }
  56113. SendClientMessage(playerid, COLOR_GREY, "-------------------------------------------------------------");
  56114. }
  56115. }
  56116. return 1;
  56117. }
  56118. CMD:siren(playerid, params[])
  56119. {
  56120. new vehicleid = GetPlayerVehicleID(playerid);
  56121. if (!IsPlayerInFaction(playerid, FACTION_LEO) && !IsPlayerInFaction(playerid, FACTION_MEDICAL))
  56122. {
  56123. return SendErrorMessage(playerid, "You are not part of any public service faction.");
  56124. }
  56125. else if (!vehicleid)
  56126. {
  56127. return SendErrorMessage(playerid, "You are not in any vehicle.");
  56128. }
  56129. else if (!VehicleHasDoors(vehicleid))
  56130. {
  56131. return SendErrorMessage(playerid, "You can't attach a siren to this vehicle.");
  56132. }
  56133. else
  56134. {
  56135. ToggleVehicleSiren(vehicleid);
  56136. if (IsValidDynamicObject(gSirenObject[vehicleid]))
  56137. {
  56138. SendInfoMessage(playerid, "You have attached a siren to this vehicle.");
  56139. ShowActionBubble(playerid, "* %s attaches a police siren to the vehicle.", ReturnNameEx(playerid));
  56140. }
  56141. else
  56142. {
  56143. SendInfoMessage(playerid, "You have detached the siren from this vehicle.");
  56144. ShowActionBubble(playerid, "* %s detaches the police siren from the vehicle.", ReturnNameEx(playerid));
  56145. }
  56146. }
  56147. return 1;
  56148. }
  56149. CMD:callsign(playerid, params[])
  56150. {
  56151. new vehicleid = GetPlayerVehicleID(playerid);
  56152. if (!IsPlayerInFaction(playerid, FACTION_LEO) && !IsPlayerInFaction(playerid, FACTION_MEDICAL))
  56153. {
  56154. return SendErrorMessage(playerid, "You are not part of any public service faction.");
  56155. }
  56156. else if (isnull(params))
  56157. {
  56158. return SendSyntaxMessage(playerid, "/callsign [unit] (To remove your callsign, use /callsign none)");
  56159. }
  56160. else if (strlen(params) > 32)
  56161. {
  56162. return SendErrorMessage(playerid, "The call sign can't be over 32 characters.");
  56163. }
  56164. if (!strcmp(params, "none", true))
  56165. {
  56166. SendFactionMessage(Players[playerid][pFaction], COLOR_RADIO, "** HQ: %s has left '%s'.", ReturnNameEx(playerid, 0), Players[playerid][pCallsign]);
  56167. format(Players[playerid][pCallsign], 128, "None");
  56168. Delete3DTextLabel(gCallsignText[vehicleid]);
  56169. gCallsignText[vehicleid] = INVALID_3DTEXT_ID;
  56170. SendInfoMessage(playerid, "* You have removed the callsign.");
  56171. }
  56172. else
  56173. {
  56174. SetCallsign(vehicleid, params);
  56175. format(Players[playerid][pCallsign], 128, params);
  56176. SendFactionMessage(Players[playerid][pFaction], COLOR_RADIO, "** HQ: %s is now on duty under '%s'.", ReturnNameEx(playerid, 0), params);
  56177. if (gCallsignText[vehicleid] != INVALID_3DTEXT_ID)
  56178. {
  56179. Delete3DTextLabel(gCallsignText[vehicleid]);
  56180. }
  56181. gCallsignText[vehicleid] = Create3DTextLabel(params, COLOR_WHITE, 0.0, 0.0, 0.0, 15.0, 0);
  56182. Attach3DTextLabelToVehicle(gCallsignText[vehicleid], vehicleid, -0.7, -2.4, -0.3);
  56183. SendInfoMessage(playerid, "You've set your callsign to, %s.", params);
  56184. }
  56185. return 1;
  56186. }
  56187. /*CMD:carsign(playerid, params[])
  56188. {
  56189. new vehicleid = GetPlayerVehicleID(playerid);
  56190. if(!IsPlayerInFaction(playerid, FACTION_LEO) && !IsPlayerInFaction(playerid, FACTION_MEDICAL)) return SendErrorMessage(playerid, "You are not part of any public service faction.");
  56191. if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendErrorMessage(playerid, "You are not in a vehicle.");
  56192. if(isnull(params)) return SendSyntaxMessage(playerid, "/carsign [sign]");
  56193. if(strlen(params) > 32) return SendErrorMessage(playerid, "The carsign must be under 32 characters.");
  56194. SetCallsign(vehicleid, params);
  56195. SendInfoMessage(playerid, "You've set your carsign to, %s.", params);
  56196. SendInfoMessage(playerid, "/remove_carsign - When you're done with it.");
  56197. if(!strcmp(params, "none", true))
  56198. {
  56199. Delete3DTextLabel(gCallsignText[vehicleid]);
  56200. gCallsignText[vehicleid] = INVALID_3DTEXT_ID;
  56201. SendInfoMessage(playerid, "* You have removed the carsign.");
  56202. }
  56203. else
  56204. {
  56205. if (gCallsignText[vehicleid] != INVALID_3DTEXT_ID)
  56206. {
  56207. Delete3DTextLabel(gCallsignText[vehicleid]);
  56208. }
  56209. gCallsignText[vehicleid] = Create3DTextLabel(params, COLOR_WHITE, 0.0, 0.0, 0.0, 15.0, 0);
  56210. Attach3DTextLabelToVehicle(gCallsignText[vehicleid], vehicleid, -0.7, -2.4, -0.3);
  56211. SendInfoMessage(playerid, "You've set your carsign to, %s.", params);
  56212. }
  56213. return 1;
  56214. }*/
  56215. CMD:remove_callsign(playerid, params[])
  56216. {
  56217. new vehicleid = GetPlayerVehicleID(playerid);
  56218. if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendErrorMessage(playerid, "You are not in a vehicle.");
  56219. RemoveCallsign(vehicleid);
  56220. SendInfoMessage(playerid, "* Use /callsign none?");
  56221. return 1;
  56222. }
  56223. CMD:oban(playerid,params[])
  56224. {
  56225. return cmd_offlineban(playerid, params);
  56226. }
  56227. CMD:offlineban(playerid, params[])
  56228. {
  56229. new player[24], reason[128];
  56230. if (Players[playerid][pAdmin] < 2)
  56231. {
  56232. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  56233. }
  56234. else if (sscanf(params, "s["#MAX_PLAYER_NAME"]s[128]", player, reason))
  56235. {
  56236. return SendSyntaxMessage(playerid, "/offlineban (player) (reason)");
  56237. }
  56238. else
  56239. {
  56240. format(gExecute, sizeof(gExecute), "SELECT IP FROM rp_accounts WHERE Username = '%s' AND Admin <= %i", mysql_escaped(player), Players[playerid][pAdmin]);
  56241. mysql_tquery(gConnection, gExecute, "OnPlayerBanCheck", "iss", playerid, player, reason);
  56242. }
  56243. return 1;
  56244. }
  56245. CMD:osetadmin(playerid, params[])
  56246. {
  56247. new player[24], level;
  56248. if (Players[playerid][pAdmin] < 6)
  56249. {
  56250. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  56251. }
  56252. else if (sscanf(params, "s["#MAX_PLAYER_NAME"]i", player, level))
  56253. {
  56254. return SendSyntaxMessage(playerid, "/osetadmin (player) (level)");
  56255. }
  56256. else if (level < 0 || level > 6)
  56257. {
  56258. return SendErrorMessage(playerid, "The specified level is invalid.");
  56259. }
  56260. else
  56261. {
  56262. format(gExecute, sizeof(gExecute), "SELECT ID FROM rp_accounts WHERE Username = '%s'", mysql_escaped(player));
  56263. mysql_tquery(gConnection, gExecute, "OnPlayerSetAdmin", "isi", playerid, player, level);
  56264. }
  56265. return 1;
  56266. }
  56267. CMD:osetsupporter(playerid, params[])
  56268. {
  56269. new player[24], level;
  56270. if (Players[playerid][pAdmin] < 4 && Players[playerid][pSupporter] < 2)
  56271. {
  56272. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  56273. }
  56274. else if (sscanf(params, "s["#MAX_PLAYER_NAME"]i", player, level))
  56275. {
  56276. return SendSyntaxMessage(playerid, "/osetsupporter [player] [1: Supporter 2: Head Supporter]");
  56277. }
  56278. else if (level < 0 || level > 2)
  56279. {
  56280. return SendErrorMessage(playerid, "The specified level is invalid.");
  56281. }
  56282. else
  56283. {
  56284. format(gExecute, sizeof(gExecute), "SELECT ID FROM rp_accounts WHERE Username = '%s'", mysql_escaped(player));
  56285. mysql_tquery(gConnection, gExecute, "OnPlayerSetSupporter", "isi", playerid, player, level);
  56286. }
  56287. return 1;
  56288. }
  56289. CMD:offlinejail(playerid, params[])
  56290. {
  56291. new player[24], minutes, reason[128];
  56292. if (Players[playerid][pAdmin] < 1)
  56293. {
  56294. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  56295. }
  56296. else if (sscanf(params, "s["#MAX_PLAYER_NAME"]is[128]", player, minutes, reason))
  56297. {
  56298. return SendSyntaxMessage(playerid, "/offlinejail (player) (minutes) (reason)");
  56299. }
  56300. else
  56301. {
  56302. format(gExecute, sizeof(gExecute), "SELECT ID FROM rp_accounts WHERE Username = '%s' AND Admin <= %i", mysql_escaped(player), Players[playerid][pAdmin]);
  56303. mysql_tquery(gConnection, gExecute, "OnPlayerJailCheck", "issi", playerid, player, reason, minutes);
  56304. }
  56305. return 1;
  56306. }
  56307. CMD:offlineip(playerid, params[])
  56308. {
  56309. new player[24];
  56310. if (Players[playerid][pAdmin] < 3)
  56311. {
  56312. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  56313. }
  56314. else if (sscanf(params, "s["#MAX_PLAYER_NAME"]", player))
  56315. {
  56316. return SendSyntaxMessage(playerid, "/offlineip (player)");
  56317. }
  56318. else
  56319. {
  56320. format(gExecute, sizeof(gExecute), "SELECT IP FROM rp_accounts WHERE Username = '%s'", mysql_escaped(player));
  56321. mysql_tquery(gConnection, gExecute, "OnPlayerGetOfflineIP", "is", playerid, player);
  56322. }
  56323. return 1;
  56324. }
  56325. CMD:taxiduty(playerid, params[])
  56326. {
  56327. if (Players[playerid][pJob] != JOB_TAXI) return SendErrorMessage(playerid, "You need to be a taxi driver to do this");
  56328. if (!IsSuitableTaxiCar(GetPlayerVehicleID(playerid))) return SendErrorMessage(playerid, "This vehicle can not be used for transport.");
  56329. Players[playerid][pTaxiDuty] = !Players[playerid][pTaxiDuty];
  56330. Players[playerid][pTaxiFare] = 1;
  56331. if(Players[playerid][pTaxiDuty])
  56332. {
  56333. new vehicleid = GetPlayerVehicleID(playerid);
  56334. switch(GetVehicleModel(vehicleid))
  56335. {
  56336. case 445: TaxiObject[vehicleid] = CreateVehicleObject(19308, vehicleid, 0.0, 0.0, 0.915, 0.0, 0.0, 90.0);
  56337. case 426: TaxiObject[vehicleid] = CreateVehicleObject(19308, vehicleid, 0.0, 0.0, 0.9325, 0.0, 0.0, 90.0);
  56338. case 418: TaxiObject[vehicleid] = CreateVehicleObject(19308, vehicleid, 0.0, 0.0, 1.12, 0.0, 0.0, 90.0);
  56339. }
  56340. SendInfoMessage(playerid, "You are now on the duty! Use /setfare to set the fare!");
  56341. }
  56342. else
  56343. {
  56344. new v = GetPlayerVehicleID(playerid);
  56345. if(TaxiObject[v] != INVALID_OBJECT_ID) DestroyDynamicObject(TaxiObject[v]);
  56346. TaxiObject[v] = INVALID_OBJECT_ID;
  56347. SendInfoMessage(playerid, "You are now off the duty!");
  56348. }
  56349. return 1;
  56350. }
  56351. CMD:setfare(playerid, params[])
  56352. {
  56353. new price;
  56354. if (Players[playerid][pJob] != JOB_TAXI) return SendErrorMessage(playerid, "You need to be a taxi driver to do this");
  56355. if (!IsSuitableTaxiCar(GetPlayerVehicleID(playerid))) return SendErrorMessage(playerid, "You need to be in a taxi");
  56356. if (!Players[playerid][pTaxiDuty]) return SendErrorMessage(playerid, "You are not on duty (/taxiduty)");
  56357. if (sscanf(params, "d", price)) return SendSyntaxMessage(playerid, "/setfare [price(1-25)]");
  56358. if (price < 0 || price > 25) return SendSyntaxMessage(playerid, "/setfare [price(1-25)]");
  56359. Players[playerid][pTaxiFare] = price;
  56360. SendInfoMessage(playerid, "You have set the fare to %d!", price);
  56361. return 1;
  56362. }
  56363. CMD:accepttaxi(playerid, params[])
  56364. {
  56365. new targetid;
  56366. if (Players[playerid][pJob] != JOB_TAXI)
  56367. {
  56368. return SendErrorMessage(playerid, "You need to be a taxi driver to do this");
  56369. }
  56370. else if (!IsPlayerInTaxi(playerid))
  56371. {
  56372. return SendErrorMessage(playerid, "You need to be in a taxi. (/taxiduty)");
  56373. }
  56374. else if (sscanf(params, "u", targetid))
  56375. {
  56376. return SendSyntaxMessage(playerid, "/accepttaxi [playerid/name]");
  56377. }
  56378. else if (!IsPlayerConnected(targetid))
  56379. {
  56380. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  56381. }
  56382. else if (!Players[targetid][pCallTaxi])
  56383. {
  56384. return SendErrorMessage(playerid, "That player hasn't called for a taxi.");
  56385. }
  56386. else
  56387. {
  56388. new Float:x, Float:y, Float:z;
  56389. if (!GetPlayerPosEx(targetid, x, y, z))
  56390. {
  56391. SendInfoMessage(playerid, "Taxi: The call could not be traced. (( Player is inside )).");
  56392. }
  56393. else
  56394. {
  56395. Players[targetid][pCallTaxi] = 0;
  56396. SendInfoMessage(targetid, "Taxi Service: %s has accepted your request, He charges: $%d / per meter", ReturnNameEx(playerid), Players[playerid][pTaxiFare]);
  56397. SetCheckpoint(playerid, CHECKPOINT_GPS, x, y, z, 3.0);
  56398. SendInfoMessage(playerid, "Taxi: A waypoint was placed at the caller's last known location.");
  56399. }
  56400. }
  56401. return 1;
  56402. }
  56403. CMD:rent(playerid, params[])
  56404. {
  56405. new house = GetClosestHouse(playerid);
  56406. if (house == INVALID_ID)
  56407. {
  56408. return SendErrorMessage(playerid, "There is no house nearby.");
  56409. }
  56410. else if (IsHouseOwner(playerid, house))
  56411. {
  56412. return SendErrorMessage(playerid, "You can't rent your own house.");
  56413. }
  56414. else if (!Houses[house][hRentPrice])
  56415. {
  56416. return SendErrorMessage(playerid, "This house is not available to rent.");
  56417. }
  56418. else if (!Houses[house][hOwner])
  56419. {
  56420. return SendErrorMessage(playerid, "You can't rent an unoccupied house.");
  56421. }
  56422. else if (!PlayerCanAfford(playerid, Houses[house][hRentPrice]))
  56423. {
  56424. return SendErrorMessage(playerid, "You can't afford to rent this house.");
  56425. }
  56426. else if (Players[playerid][pRentHouse] == Houses[house][hID])
  56427. {
  56428. return SendErrorMessage(playerid, "You are renting this house already.");
  56429. }
  56430. else
  56431. {
  56432. new owner = GetHouseOwnerID(house);
  56433. if (owner != INVALID_PLAYER_ID)
  56434. {
  56435. Players[owner][pJobPaycheck] += Houses[house][hRentPrice];
  56436. SendInfoMessage(owner, "You have received %s on your paycheck for rentals.", FormatNumber(Houses[house][hRentPrice]));
  56437. }
  56438. else
  56439. {
  56440. format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Paycheck = Paycheck + %i WHERE ID = %i", Houses[house][hRentPrice], Houses[house][hOwner]);
  56441. mysql_tquery(gConnection, gExecute);
  56442. }
  56443. Players[playerid][pRentHouse] = Houses[house][hID];
  56444. RemoveMoney(playerid, Houses[house][hRentPrice]);
  56445. SendInfoMessage(playerid, "You have rented this house for {33CC33}%s{FFFFFF}. You can now use '/house lock' to lock it.", FormatNumber(Houses[house][hRentPrice]));
  56446. }
  56447. return 1;
  56448. }
  56449. CMD:unrent(playerid, params[])
  56450. {
  56451. if (!Players[playerid][pRentHouse])
  56452. {
  56453. return SendErrorMessage(playerid, "You are not renting any house.");
  56454. }
  56455. else
  56456. {
  56457. Players[playerid][pRentHouse] = 0;
  56458. SendInfoMessage(playerid, "You are no longer renting any house.");
  56459. }
  56460. return 1;
  56461. }
  56462. CMD:listguns(playerid, params[])
  56463. {
  56464. new targetid;
  56465. if (Players[playerid][pAdmin] < 1)
  56466. {
  56467. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  56468. }
  56469. else if (sscanf(params, "u", targetid))
  56470. {
  56471. return SendSyntaxMessage(playerid, "/listguns [playerid/name]");
  56472. }
  56473. else if (!IsPlayerConnected(targetid))
  56474. {
  56475. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  56476. }
  56477. else if (IsPlayerNPC(targetid))
  56478. {
  56479. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  56480. }
  56481. else if (!IsPlayerLoggedIn(targetid))
  56482. {
  56483. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  56484. }
  56485. else
  56486. {
  56487. SendFormatMessage(playerid, COLOR_YELLOW, "%s's Weapons:", ReturnNameEx(targetid, 0));
  56488. if (Weapons[targetid][wMelee] > 0)
  56489. {
  56490. SendInfoMessage(playerid, "* Melee: %s", GetWeapon(Weapons[targetid][wMelee]));
  56491. }
  56492. if (Weapons[targetid][wPrimary] > 0)
  56493. {
  56494. SendInfoMessage(playerid, "* Primary: %s (%i ammo)", GetWeapon(Weapons[targetid][wPrimary]), Weapons[targetid][wPrimaryAmmo]);
  56495. }
  56496. if (Weapons[targetid][wSecondary] > 0)
  56497. {
  56498. SendInfoMessage(playerid, "* Secondary: %s (%i ammo)", GetWeapon(Weapons[targetid][wSecondary]), Weapons[targetid][wSecondaryAmmo]);
  56499. }
  56500. if (Weapons[targetid][wTertiary] > 0)
  56501. {
  56502. SendInfoMessage(playerid, "* Tertiary: %s (%i ammo)", GetWeapon(Weapons[targetid][wTertiary]), Weapons[targetid][wTertiaryAmmo]);
  56503. }
  56504. if (Players[targetid][pTazer])
  56505. {
  56506. SendInfoMessage(playerid, "* Taser");
  56507. }
  56508. }
  56509. return 1;
  56510. }
  56511. CMD:masked(playerid, params[])
  56512. {
  56513. if (Players[playerid][pAdmin] < 1)
  56514. {
  56515. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  56516. }
  56517. else
  56518. {
  56519. SendClientMessage(playerid, COLOR_YELLOW, "Masked Players:");
  56520. foreach (new i : Player)
  56521. {
  56522. if (Players[i][pMaskID] > 0)
  56523. {
  56524. SendInfoMessage(playerid, "%s (%s) (ID: %i)", ReturnName(i), ReturnNameEx(i), i);
  56525. }
  56526. }
  56527. }
  56528. return 1;
  56529. }
  56530. CMD:debug(playerid, params[]) // drakeydebug
  56531. {
  56532. if (Players[playerid][pAdmin] < 2)
  56533. {
  56534. return SendErrorMessage(playerid, "Developers / Administrators command only.");
  56535. }
  56536. else if (isnull(params))
  56537. {
  56538. SendClientMessage(playerid, COLOR_YELLOW, "[DEVELOPER ?DEBUG (SCRIPT TESTING PURPOSES ONLY)]:");
  56539. SendClientMessage(playerid, COLOR_WHITE, "[/debug brokenleg]");
  56540. SendClientMessage(playerid, COLOR_WHITE, "[/debug clear]");
  56541. }
  56542. if (!strcmp(params, "brokenleg", true))
  56543. {
  56544. SendClientMessage(playerid, COLOR_YELLOW, "[DEBUG] Unable to sprint or jump. To remove this, use /debug clear.");
  56545. Players[playerid][pBrokenLeg] = 1;
  56546. }
  56547. if (!strcmp(params, "clear", true))
  56548. {
  56549. SendClientMessage(playerid, COLOR_YELLOW, "[DEBUG] All debugs modes have been cleared.");
  56550. Players[playerid][pBrokenLeg] = 0;
  56551. }
  56552. return 1;
  56553. }
  56554. CMD:addtrashbin(playerid, params[])
  56555. {
  56556. if (Players[playerid][pAdmin] < 5)
  56557. {
  56558. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  56559. }
  56560. else if (GetClosestTrashbin(playerid) != INVALID_ID)
  56561. {
  56562. return SendErrorMessage(playerid, "There is another trashbin nearby.");
  56563. }
  56564. else
  56565. {
  56566. new
  56567. Float:x,
  56568. Float:y,
  56569. Float:z,
  56570. Float:angle,
  56571. id = INVALID_ID;
  56572. GetPlayerPos(playerid, x, y, z);
  56573. GetPlayerFacingAngle(playerid, angle);
  56574. x += 2.0 * floatsin(-angle, degrees);
  56575. y += 2.0 * floatcos(-angle, degrees);
  56576. id = AddTrashbin(x, y, z, angle, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid));
  56577. if (id == INVALID_ID)
  56578. {
  56579. return SendErrorMessage(playerid, "There are no available trashbin slots.");
  56580. }
  56581. else
  56582. {
  56583. EditDynamicObjectEx(playerid, EDIT_TYPE_TRASHBIN, Trashbins[id][tObject], id);
  56584. SendInfoMessage(playerid, "You have added trashbin %i (/edittrashbin).", id);
  56585. }
  56586. }
  56587. return 1;
  56588. }
  56589. CMD:gototrashbin(playerid, params[])
  56590. {
  56591. new id;
  56592. if (Players[playerid][pAdmin] < 5)
  56593. {
  56594. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  56595. }
  56596. else if (sscanf(params, "i", id))
  56597. {
  56598. return SendSyntaxMessage(playerid, "/gototrashbin (trashbin ID)");
  56599. }
  56600. else if (!IsValidTrashbinID(id))
  56601. {
  56602. return SendErrorMessage(playerid, "You have specified an invalid trashbin.");
  56603. }
  56604. else
  56605. {
  56606. SetPlayerPosEx(playerid, Trashbins[id][tX], Trashbins[id][tY], Trashbins[id][tZ], Trashbins[id][tA], Trashbins[id][tInterior], Trashbins[id][tWorld]);
  56607. SendInfoMessage(playerid, "You have teleported to trashbin %i.", id);
  56608. }
  56609. return 1;
  56610. }
  56611. CMD:edittrashbin(playerid, params[])
  56612. {
  56613. new id;
  56614. if (Players[playerid][pAdmin] < 5)
  56615. {
  56616. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  56617. }
  56618. else if (sscanf(params, "i", id))
  56619. {
  56620. return SendSyntaxMessage(playerid, "/edittrashbin (trashbin ID)");
  56621. }
  56622. else if (!IsValidTrashbinID(id))
  56623. {
  56624. return SendErrorMessage(playerid, "You have specified an invalid trashbin.");
  56625. }
  56626. else
  56627. {
  56628. EditDynamicObjectEx(playerid, EDIT_TYPE_TRASHBIN, Trashbins[id][tObject], id);
  56629. SendInfoMessage(playerid, "Click on the disk icon to save changes.");
  56630. }
  56631. return 1;
  56632. }
  56633. CMD:deletetrashbin(playerid, params[])
  56634. {
  56635. new id;
  56636. if (Players[playerid][pAdmin] < 5)
  56637. {
  56638. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  56639. }
  56640. else if (sscanf(params, "i", id))
  56641. {
  56642. return SendSyntaxMessage(playerid, "/edittrashbin (trashbin ID)");
  56643. }
  56644. else if (!IsValidTrashbinID(id))
  56645. {
  56646. return SendErrorMessage(playerid, "You have specified an invalid trashbin.");
  56647. }
  56648. else
  56649. {
  56650. ClearTrashbinItems(id);
  56651. DestroyDynamic3DTextLabel(Trashbins[id][tText]);
  56652. DestroyDynamicObject(Trashbins[id][tObject]);
  56653. format(gExecute, sizeof(gExecute), "DELETE FROM rp_trashbins WHERE `tID` = %i", Trashbins[id][tID]);
  56654. mysql_tquery(gConnection, gExecute);
  56655. Trashbins[id][tExists] = 0;
  56656. SendInfoMessage(playerid, "You have deleted trashbin %i.", id);
  56657. }
  56658. return 1;
  56659. }
  56660. CMD:savepos(playerid, params[])
  56661. {
  56662. if (Players[playerid][pAdmin] < 1)
  56663. {
  56664. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  56665. }
  56666. else
  56667. {
  56668. GetPlayerPos(playerid, Players[playerid][pSpawn][0], Players[playerid][pSpawn][1], Players[playerid][pSpawn][2]);
  56669. GetPlayerFacingAngle(playerid, Players[playerid][pSpawn][3]);
  56670. Players[playerid][pInterior] = GetPlayerInterior(playerid);
  56671. Players[playerid][pWorld] = GetPlayerVirtualWorld(playerid);
  56672. SendInfoMessage(playerid, "You have saved your current position. Use /loadpos to teleport.");
  56673. }
  56674. return 1;
  56675. }
  56676. CMD:loadpos(playerid, params[])
  56677. {
  56678. if (Players[playerid][pAdmin] < 1)
  56679. {
  56680. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  56681. }
  56682. else
  56683. {
  56684. SetPlayerPos(playerid, Players[playerid][pSpawn][0], Players[playerid][pSpawn][1], Players[playerid][pSpawn][2]);
  56685. SetPlayerFacingAngle(playerid, Players[playerid][pSpawn][3]);
  56686. SetPlayerInterior(playerid, Players[playerid][pInterior]);
  56687. SetPlayerVirtualWorld(playerid, Players[playerid][pWorld]);
  56688. SendInfoMessage(playerid, "You have teleported to your saved position.");
  56689. }
  56690. return 1;
  56691. }
  56692. CMD:tow(playerid, params[])
  56693. {
  56694. new Float:x, Float:y, Float:z, Float:angle, vehicleid = GetPlayerVehicleID(playerid);
  56695. if(GetVehicleModel(vehicleid) != 525) return SendErrorMessage(playerid, "You are not in a tow truck.");
  56696. if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendErrorMessage(playerid, "You are not the driver of the vehicle.");
  56697. if(IsAPlane(vehicleid) || IsAHelicopter(vehicleid)) return SendErrorMessage(playerid,"You cannot tow an aircraft.");
  56698. new trailerid = GetVehicleTrailer(vehicleid);
  56699. if (trailerid)
  56700. {
  56701. DetachTrailerFromVehicle(vehicleid);
  56702. SendInfoMessage(playerid, "You've detached the current vehicle.");
  56703. }
  56704. else
  56705. {
  56706. GetVehiclePos(vehicleid, x, y, z);
  56707. GetVehicleZAngle(vehicleid, angle);
  56708. for (new i = 1; i < MAX_VEHICLES; i ++)
  56709. {
  56710. if (i == vehicleid || !IsVehicleStreamedIn(i, playerid))
  56711. continue;
  56712. if (IsVehicleInRangeOfPoint(i, 5.0, x - (3.0 * floatsin(-angle, degrees)), y - (3.0 * floatcos(-angle, degrees)), z))
  56713. {
  56714. AttachTrailerToVehicle(i, vehicleid);
  56715. SendInfoMessage(playerid, "You've hooked a %s to the back of the Tow Truck.", GetVehicleName(i));
  56716. return 1;
  56717. }
  56718. }
  56719. SendErrorMessage(playerid, "There are no vehicles around you.");
  56720. }
  56721. return 1;
  56722. }
  56723. CMD:impound(playerid, params[])
  56724. {
  56725. new
  56726. price,
  56727. vehicleid = GetPlayerVehicleID(playerid);
  56728. if (!IsPlayerInFaction(playerid, FACTION_LEO))
  56729. {
  56730. return SendErrorMessage(playerid, "You are not part of the law enforcement.");
  56731. }
  56732. else if (GetVehicleModel(vehicleid) != 525)
  56733. {
  56734. return SendErrorMessage(playerid, "You are not in a tow truck.");
  56735. }
  56736. else if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
  56737. {
  56738. return SendErrorMessage(playerid, "You are not the driver of the vehicle.");
  56739. }
  56740. else if (!IsTrailerAttachedToVehicle(vehicleid))
  56741. {
  56742. return SendErrorMessage(playerid, "There is no vehicle hooked onto the truck.");
  56743. }
  56744. else if (sscanf(params, "i", price))
  56745. {
  56746. return SendSyntaxMessage(playerid, "/impound [price]");
  56747. }
  56748. else if (price < 1 || price > 10000)
  56749. {
  56750. return SendErrorMessage(playerid, "The specified price must be between $1 and $10,000.");
  56751. }
  56752. else if (!IsPlayerInRangeOfPoint(playerid, 20.0, 1624.3313,-1819.2130,13.5258))
  56753. {
  56754. return SendErrorMessage(playerid, "You are not at the impound yard.");
  56755. }
  56756. else
  56757. {
  56758. new vehicle = GetVehicleID(GetVehicleTrailer(vehicleid));
  56759. if (vehicle == INVALID_ID)
  56760. {
  56761. SendErrorMessage(playerid, "There is no registration provided with this vehicle.");
  56762. }
  56763. else
  56764. {
  56765. Vehicles[vehicle][vImpound] = price;
  56766. DetachTrailerFromVehicle(vehicleid);
  56767. GetVehiclePos(Vehicles[vehicle][vVehicle], Vehicles[vehicle][vSpawn][0], Vehicles[vehicle][vSpawn][1], Vehicles[vehicle][vSpawn][2]);
  56768. GetVehicleZAngle(Vehicles[vehicle][vVehicle], Vehicles[vehicle][vSpawn][3]);
  56769. UpdateVehicle(vehicle);
  56770. SaveVehicle(vehicle);
  56771. SendFactionMessage(Players[playerid][pFaction], COLOR_RADIO, "** %s has impounded a %s for %s. **", ReturnNameEx(playerid, 0), GetVehicleModelName(Vehicles[vehicle][vModel]), FormatNumber(price));
  56772. }
  56773. }
  56774. return 1;
  56775. }
  56776. CMD:stop(playerid, params[])
  56777. {
  56778. if (Players[playerid][pWorking])
  56779. {
  56780. StopWorking(playerid);
  56781. SendInfoMessage(playerid, "You are no longer working.");
  56782. }
  56783. return 1;
  56784. }
  56785. CMD:orderpackage(playerid, params[])
  56786. {
  56787. if (GetPlayerFactionType(playerid) != FACTION_ILLEGAL)
  56788. {
  56789. return SendErrorMessage(playerid, "You are not part of an illegal faction.");
  56790. }
  56791. else if (Players[playerid][pFactionRank] < Factions[Players[playerid][pFaction]][fcMaxRanks] - 1)
  56792. {
  56793. return SendErrorMessage(playerid, "You are not a high ranking member.");
  56794. }
  56795. else if (Players[playerid][pPackageOrder] != PACKAGE_TYPE_NONE)
  56796. {
  56797. return SendErrorMessage(playerid, "You have already ordered a package.");
  56798. }
  56799. else if (Players[playerid][pPackageType] != PACKAGE_TYPE_NONE)
  56800. {
  56801. return SendErrorMessage(playerid, "You already have a package to pickup.");
  56802. }
  56803. else if (Players[playerid][pPackageTime] > gettime())
  56804. {
  56805. return SendErrorMessage(playerid, "You must wait up to %i minutes before making another order.", (Players[playerid][pPackageTime] - gettime()) / 120);
  56806. }
  56807. else
  56808. {
  56809. Dialog_Show(playerid, OrderPackage, DIALOG_STYLE_LIST, "{FFFFFF}Order Package", "Weapon Package\nDrug Package", "Select", "Cancel");
  56810. }
  56811. return 1;
  56812. }
  56813. CMD:makedrug(playerid, params[])
  56814. {
  56815. new option[64];
  56816. new amount;
  56817. if (GetPlayerFactionType(playerid) != FACTION_ILLEGAL)
  56818. {
  56819. return SendErrorMessage(playerid, "You are not part of an illegal faction.");
  56820. }
  56821. else if (Players[playerid][pFactionRank] < Factions[Players[playerid][pFaction]][fcMaxRanks] - 2)
  56822. {
  56823. return SendErrorMessage(playerid, "You are not a high enough rank to do this.");
  56824. }
  56825. else if (sscanf (params, "s[128]i", option, amount))
  56826. {
  56827. SendSyntaxMessage(playerid, "/makedrug [drug] [amount]");
  56828. SendInfoMessage(playerid, "Drugs: crack, heroin, lsd, ecstasy");
  56829. return 1;
  56830. }
  56831. else
  56832. {
  56833. if (!strcmp(option, "crack", true))
  56834. {
  56835. new item1 = GetInventoryItemID(playerid, "Cocaine");
  56836. new item2 = GetInventoryItemID(playerid, "Baking Soda");
  56837. if (item1 == INVALID_ID)
  56838. {
  56839. return SendErrorMessage(playerid, "You need cocaine and baking soda.");
  56840. }
  56841. else if (item2 == INVALID_ID)
  56842. {
  56843. return SendErrorMessage(playerid, "You need cocaine and baking soda.");
  56844. }
  56845. else if (Inventory[playerid][item1][invValue] < amount)
  56846. {
  56847. return SendErrorMessage(playerid, "You don't have enough cocaine (%i)", amount);
  56848. }
  56849. else if (Inventory[playerid][item2][invValue] < amount*5)
  56850. {
  56851. return SendErrorMessage(playerid, "You don't have enough baking soda (%i)", amount*5);
  56852. }
  56853. else
  56854. {
  56855. RemoveItemValue(playerid, item1, amount);
  56856. RemoveItemValue(playerid, item2, amount*5);
  56857. AddItemToInventory(playerid, "Crack", amount*5);
  56858. SendInfoMessage(playerid, "{CFCFCF}You mixed {33AA33}%ig{CFCFCF} baking soda and {33AA33}%ig{CFCFCF} cocaine into {33AA33}%ig{CFCFCF} crack.", amount*5, amount, amount*5);
  56859. }
  56860. }
  56861. else if (!strcmp(option, "heroin", true))
  56862. {
  56863. new item = GetInventoryItemID(playerid, "Opium Poppies");
  56864. if (item == INVALID_ID)
  56865. {
  56866. return SendErrorMessage(playerid, "You need opium poppies.");
  56867. }
  56868. else if (Inventory[playerid][item][invValue] < amount)
  56869. {
  56870. return SendErrorMessage(playerid, "You don't have enough opium poppies (%i)", amount);
  56871. }
  56872. else
  56873. {
  56874. RemoveItemValue(playerid, item, amount);
  56875. AddItemToInventory(playerid, "Heroin", amount);
  56876. SendInfoMessage(playerid, "{CFCFCF}You extract {33AA33}%ig{CFCFCF} heroin from {33AA33}%ig{CFCFCF} of opium poppies.", amount, amount);
  56877. }
  56878. }
  56879. else if (!strcmp(option, "lsd", true))
  56880. {
  56881. new item = GetInventoryItemID(playerid, "Morning Glory Seeds");
  56882. if (item == INVALID_ID)
  56883. {
  56884. return SendErrorMessage(playerid, "You need morning glory seeds.");
  56885. }
  56886. else if (Inventory[playerid][item][invValue] < amount)
  56887. {
  56888. return SendErrorMessage(playerid, "You don't have enough morning glory seeds (%i)", amount);
  56889. }
  56890. else
  56891. {
  56892. RemoveItemValue(playerid, item, amount);
  56893. AddItemToInventory(playerid, "LSD", amount);
  56894. SendInfoMessage(playerid, "{CFCFCF}You extract {33AA33}%ig{CFCFCF} LSD from {33AA33}%ig{CFCFCF} of morning glory seeds.", amount, amount);
  56895. }
  56896. }
  56897. else if (!strcmp(option, "ecstasy", true))
  56898. {
  56899. new item1 = GetInventoryItemID(playerid, "Hydrogen Peroxide");
  56900. new item2 = GetInventoryItemID(playerid, "Formic Acid");
  56901. new item3 = GetInventoryItemID(playerid, "Isosafrole");
  56902. if (item1 == INVALID_ID)
  56903. {
  56904. return SendErrorMessage(playerid, "You need hydrogen peroxide, formic acid and isosafrole.");
  56905. }
  56906. else if (item2 == INVALID_ID)
  56907. {
  56908. return SendErrorMessage(playerid, "You need hydrogen peroxide, formic acid and isosafrole.");
  56909. }
  56910. else if (item3 == INVALID_ID)
  56911. {
  56912. return SendErrorMessage(playerid, "You need hydrogen peroxide, formic acid and isosafrole.");
  56913. }
  56914. else if (Inventory[playerid][item1][invValue] < amount*2)
  56915. {
  56916. return SendErrorMessage(playerid, "You don't have enough hydrogen peroxide (%i)", amount*2);
  56917. }
  56918. else if (Inventory[playerid][item2][invValue] < amount*7)
  56919. {
  56920. return SendErrorMessage(playerid, "You don't have enough formic acid (%i)", amount*7);
  56921. }
  56922. else if (Inventory[playerid][item3][invValue] < amount*4)
  56923. {
  56924. return SendErrorMessage(playerid, "You don't have enough isosafrole (%i)", amount*4);
  56925. }
  56926. else
  56927. {
  56928. RemoveItemValue(playerid, item1, amount*2);
  56929. RemoveItemValue(playerid, item2, amount*7);
  56930. RemoveItemValue(playerid, item3, amount*4);
  56931. AddItemToInventory(playerid, "Ecstasy", amount);
  56932. SendInfoMessage(playerid, "{CFCFCF}You mix {33AA33}%ig{CFCFCF} hydrogen peroxide, {33AA33}%ig{CFCFCF} formic acid and {33AA33}%ig{CFCFCF} isosafrole and get %ig{CFCFCF} ecstasy.", amount*2, amount*7, amount*4, amount);
  56933. }
  56934. }
  56935. }
  56936. return 1;
  56937. }
  56938. CMD:order(playerid, params[])
  56939. {
  56940. if (GetPlayerFactionType(playerid) != FACTION_ILLEGAL)
  56941. {
  56942. return SendErrorMessage(playerid, "You are not part of an illegal faction.");
  56943. }
  56944. else if (Players[playerid][pFactionRank] < Factions[Players[playerid][pFaction]][fcMaxRanks] - 2)
  56945. {
  56946. return SendErrorMessage(playerid, "You are not a high enough rank to do this.");
  56947. }
  56948. else if (!IsPlayerNearPoint(playerid, 3.0, 2525.4495,-2221.1128,13.5469, 0, 0))
  56949. {
  56950. return SendErrorMessage(playerid, "You are not in the right place.");
  56951. }
  56952. else
  56953. {
  56954. Dialog_Show(playerid, OrderIllegal, DIALOG_STYLE_LIST, "{FFFFFF}Order", "Weapons\nDrugs", "Select", "Cancel");
  56955. }
  56956. return 1;
  56957. }
  56958. CMD:craft(playerid, params[])
  56959. {
  56960. if (GetPlayerFactionType(playerid) != FACTION_ILLEGAL)
  56961. {
  56962. return SendErrorMessage(playerid, "You are not part of an illegal faction.");
  56963. }
  56964. else if (Players[playerid][pFactionRank] < Factions[Players[playerid][pFaction]][fcMaxRanks] - 2)
  56965. {
  56966. return SendErrorMessage(playerid, "You are not a high enough rank to do this.");
  56967. }
  56968. else
  56969. {//format(string, sizeof(string), "%s\nItem: %s (%s)", string, g_CompanyItems[i][e_ItemName], FormatNumber(Products[company][index][prPrice]));
  56970. new string[512];
  56971. if (Factions[Players[playerid][pFaction]][fcWeaponRights][0])
  56972. {
  56973. //format(string, sizeof(string), "Melee Weapons\n", string);
  56974. strcat(string, "Melee Weapons\n");
  56975. }
  56976. if (Factions[Players[playerid][pFaction]][fcWeaponRights][1])
  56977. {
  56978. //format(string, sizeof(string), "Pistols\n", string);
  56979. strcat(string, "Pistols\n");
  56980. }
  56981. if (Factions[Players[playerid][pFaction]][fcWeaponRights][2])
  56982. {
  56983. //format(string, sizeof(string), "Shotguns\n", string);
  56984. strcat(string, "Shotguns\n");
  56985. }
  56986. if (Factions[Players[playerid][pFaction]][fcWeaponRights][3])
  56987. {
  56988. //format(string, sizeof(string), "Sub Machine Guns\n", string);
  56989. strcat(string, "Sub Machine Guns\n");
  56990. }
  56991. if (Factions[Players[playerid][pFaction]][fcWeaponRights][4])
  56992. {
  56993. //format(string, sizeof(string), "Rifles\n", string);
  56994. strcat(string, "Rifles\n");
  56995. }
  56996. if (Factions[Players[playerid][pFaction]][fcWeaponRights][5])
  56997. {
  56998. //format(string, sizeof(string), "Rifles\n", string);
  56999. strcat(string, "Explosives\n");
  57000. }
  57001. Dialog_Show(playerid, Crafting, DIALOG_STYLE_LIST, "{FFFFFF}Crafting", string, "Select", "Cancel");
  57002. }
  57003. return 1;
  57004. }
  57005. CMD:load(playerid, params[])
  57006. {
  57007. if (Players[playerid][pJob] != JOB_TRANSPORTER)
  57008. {
  57009. return SendErrorMessage(playerid, "You need to have the transporter job to do this.");
  57010. }
  57011. else if (Players[playerid][pWorking])
  57012. {
  57013. return SendErrorMessage(playerid, "You are already working - use /stop to quit working.");
  57014. }
  57015. else if (!IsPlayerInRangeOfPoint(playerid, 3.0, 2175.3335, -2266.9937, 13.3891))
  57016. {
  57017. return SendErrorMessage(playerid, "You are not at the warehouse in Ocean Docks.");
  57018. }
  57019. else if (GetPlayerState(playerid) != PLAYER_STATE_ONFOOT)
  57020. {
  57021. return SendErrorMessage(playerid, "You need to be onfoot to load the goods.");
  57022. }
  57023. else if(EnteringVehicle[playerid] == 1)
  57024. {
  57025. return SendErrorMessage(playerid, "You must not be entering the vehicle while picking up load.");
  57026. }
  57027. Dialog_Show(playerid, GoodsType, DIALOG_STYLE_LIST, "{FFFFFF}List of Goods", "Retail Items\nClothing Items\nFood and Drinks\nCellphones\nGym Supplies\nAmmunition\nBar Drinks", "Choose", "Cancel");
  57028. return 1;
  57029. }
  57030. CMD:deliver(playerid, params[])
  57031. {
  57032. new
  57033. company = GetClosestDeliveryPoint(playerid),
  57034. vehicleid = GetPlayerVehicleID(playerid),
  57035. string[128]
  57036. ;
  57037. if (Players[playerid][pJob] != JOB_TRANSPORTER)
  57038. {
  57039. return SendErrorMessage(playerid, "You need to have the transporter job to do this.");
  57040. }
  57041. else if (!IsTransportVehicle(vehicleid))
  57042. {
  57043. return SendErrorMessage(playerid, "You are not in any transport vehicle.");
  57044. }
  57045. else if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
  57046. {
  57047. return SendErrorMessage(playerid, "You must be the driver of the vehicle.");
  57048. }
  57049. else if (!VehicleInformation[vehicleid][vGoods])
  57050. {
  57051. return SendErrorMessage(playerid, "There is no goods loaded in this vehicle.");
  57052. }
  57053. else if (company == INVALID_ID)
  57054. {
  57055. return SendErrorMessage(playerid, "There is no delivery point nearby.");
  57056. }
  57057. else if (Companies[company][cType] != VehicleInformation[vehicleid][vGoods])
  57058. {
  57059. return SendErrorMessage(playerid, "You can only deliver your load to a %s.", GetCompanyType(VehicleInformation[vehicleid][vGoods]));
  57060. }
  57061. else
  57062. {
  57063. /*new
  57064. price = floatround(GetPlayerDistanceFromPoint(playerid, 2175.3335, -2266.9937, 13.3891)) / 2;*/
  57065. new
  57066. price = floatround(GetPlayerDistanceFromPoint(playerid, 2175.3335, -2266.9937, 13.3891));
  57067. Players[playerid][pJobPaycheck] += price;
  57068. Companies[company][cStock] = Companies[company][cStock] + 200;
  57069. SendInfoMessage(playerid, "You have received %s on your paycheck for the delivery.", FormatNumber(price));
  57070. new v_dbID = GetVehicleID(vehicleid);
  57071. if(IsVehicleOwner(playerid, v_dbID))
  57072. {
  57073. new bonus = floatround((price/100)*30);
  57074. Players[playerid][pPocketMoney] += bonus;
  57075. SendInfoMessage(playerid, "You have received a bonus of %s on your paycheck for delivering with your own vehicle.", FormatNumber(bonus));
  57076. }
  57077. else
  57078. {
  57079. new Float:vcHealth;
  57080. GetVehicleHealth(GetPlayerVehicleID(playerid), vcHealth);
  57081. new damagePayment = floatround((vehicleStartingHealth[playerid]-vcHealth)*3);
  57082. RemoveMoney(playerid, damagePayment);
  57083. SendInfoMessage(playerid, "You have paid %s as cost for the damage you have caused to your duty vehicle.", FormatNumber(damagePayment));
  57084. }
  57085. SaveCompany(company);
  57086. DestroyDynamicObject(VehicleInformation[vehicleid][vObject]);
  57087. VehicleInformation[vehicleid][vGoods] = 0;
  57088. VehicleInformation[vehicleid][vObject] = INVALID_OBJECT_ID;
  57089. for (new i = 0; i < MAX_GAS_PUMPS; i ++)
  57090. {
  57091. if (GasPumps[i][gpCompany] == Companies[company][cID])
  57092. {
  57093. GasPumps[i][gpFuel] = GasPumps[i][gpFuel] + 1000.0;
  57094. SaveGasPump(i);
  57095. format(string, sizeof(string), "ID: %i\nGasoline: %.1f gallons", i, GasPumps[i][gpFuel]);
  57096. UpdateDynamic3DTextLabelText(GasPumps[i][gpText], COLOR_GREY, string);
  57097. }
  57098. }
  57099. }
  57100. return 1;
  57101. }
  57102. CMD:jobhelp(playerid, params[])
  57103. {
  57104. if (Players[playerid][pJob] == JOB_NONE)
  57105. {
  57106. return SendErrorMessage(playerid, "You are not employed - use /guide to find a job.");
  57107. }
  57108. Dialog_Show(playerid, JobHelp, DIALOG_STYLE_LIST, "{FFFFFF}Job Help", "Objective\nWork Location", "Select", "Cancel");
  57109. return 1;
  57110. }
  57111. CMD:work(playerid, params[])
  57112. {
  57113. if (Players[playerid][pJob] == JOB_NONE)
  57114. {
  57115. return SendErrorMessage(playerid, "You are not employed - use /guide to find a job.");
  57116. }
  57117. else if (Players[playerid][pWorking])
  57118. {
  57119. return SendErrorMessage(playerid, "You are already working - use /stop to quit working.");
  57120. }
  57121. switch (Players[playerid][pJob])
  57122. {
  57123. case JOB_FORKLIFTER:
  57124. {
  57125. if (GetVehicleModel(GetPlayerVehicleID(playerid)) != 530)
  57126. {
  57127. return SendErrorMessage(playerid, "You need to be driving a forklift.");
  57128. }
  57129. else
  57130. {
  57131. StartWorking(playerid);
  57132. SendInfoMessage(playerid, "Please drive to the {FF0000}checkpoint{FFFFFF} to load the cargo.");
  57133. }
  57134. }
  57135. case JOB_MINER:
  57136. {
  57137. if (GetPlayerState(playerid) != PLAYER_STATE_ONFOOT)
  57138. {
  57139. return SendErrorMessage(playerid, "You need to be onfoot to start mining.");
  57140. }
  57141. else if (!IsPlayerInRangeOfPoint(playerid, 3.0, -1858.5516, -1651.3812, 26.5788) && !IsPlayerInRangeOfPoint(playerid, 3.0, -1790.7683, -1649.2581, 33.3813) && !IsPlayerInRangeOfPoint(playerid, 3.0, -1775.1649, -1643.3854, 29.5218) && !IsPlayerInRangeOfPoint(playerid, 3.0, -1801.5831, -1649.7592, 26.5446))
  57142. {
  57143. return SendErrorMessage(playerid, "You need to be near the mining rocks.");
  57144. }
  57145. else
  57146. {
  57147. Players[playerid][pWorking] = 1;
  57148. Players[playerid][pMining] = 1;
  57149. Players[playerid][pJobStage] = 0;
  57150. SendInfoMessage(playerid, "You are now mining. Please wait...");
  57151. TogglePlayerControllable(playerid, false);
  57152. ApplyAnimation(playerid, "BASEBALL", "BAT_4", 4.1, 1, 0, 0, 0, 0, 1);
  57153. DisablePlayerCheckpoint(playerid);
  57154. SetPlayerAttachedObject(playerid, ATTACHED_SLOT_MISC, 337, 6);
  57155. SetTimerEx("MiningFinished", 20000, false, "i", playerid);
  57156. }
  57157. }
  57158. case JOB_PIZZA:
  57159. {
  57160. if (GetVehicleModel(GetPlayerVehicleID(playerid)) != 448)
  57161. {
  57162. return SendErrorMessage(playerid, "You need to be driving a pizza scooter.");
  57163. }
  57164. else if (!IsPlayerInRangeOfPoint(playerid, 10.0, 2092.8154,-1796.5688,13.3828))
  57165. {
  57166. return SendErrorMessage(playerid, "You need to be near the pizza stacks.");
  57167. }
  57168. else
  57169. {
  57170. new house = GetRandomHouse();
  57171. if (house == INVALID_ID) return SendErrorMessage(playerid, "There are no available houses in Los Santos - contact an admin!");
  57172. Players[playerid][pWorking] = 1;
  57173. SetCheckpoint(playerid, CHECKPOINT_JOB, Houses[house][hSpawn][0], Houses[house][hSpawn][1], Houses[house][hSpawn][2], 3.0);
  57174. SetTimerEx("DelayPizzaCP", 1500, false, "ii", playerid, house);
  57175. SendInfoMessage(playerid, "Please drive to the {FF0000}checkpoint{FFFFFF} and deliver the pizza.");
  57176. }
  57177. }
  57178. case JOB_TRASHMAN:
  57179. {
  57180. if (GetVehicleModel(GetPlayerVehicleID(playerid)) != 408)
  57181. {
  57182. return SendErrorMessage(playerid, "You need to be driving a garbage truck.");
  57183. }
  57184. else if (!IsPlayerInRangeOfPoint(playerid, 15.0, 2184.9795, -1976.9451, 13.5528))
  57185. {
  57186. return SendErrorMessage(playerid, "You need to be near the junk yard in Willowfield.");
  57187. }
  57188. else
  57189. {
  57190. new trash = GetRandomTrash();
  57191. if (trash == INVALID_ID) return SendErrorMessage(playerid, "There are no available trash bins in Los Santos - contact an admin!");
  57192. Players[playerid][pWorking] = 1;
  57193. Players[playerid][pTrashPickup] = 0;
  57194. SetCheckpoint(playerid, CHECKPOINT_JOB, Trashbins[trash][tX], Trashbins[trash][tY], Trashbins[trash][tZ], 3.0);
  57195. SendInfoMessage(playerid, "Make your way to the trash bin and pick up the garbage.");
  57196. }
  57197. }
  57198. /*case JOB_TRASHMAN:
  57199. {
  57200. if (GetVehicleModel(GetPlayerVehicleID(playerid)) != 408)
  57201. {
  57202. return SendErrorMessage(playerid, "You need to be driving a garbage truck.");
  57203. else if (!IsPlayerInRangeOfPoint(playerid, 5.0, 2184.9795, -1976.9451, 13.5528))
  57204. {
  57205. return SendErrorMessage(playerid, "You need to be near the junk yard in Willowfield.");
  57206. }
  57207. else
  57208. {
  57209. for (new i = 0; i < sizeof(g_TrashPickups); i ++)
  57210. {
  57211. gTrashObjects[playerid][i] = CreatePlayerObject(playerid, 1265, g_TrashPickups[i][0], g_TrashPickups[i][1], g_TrashPickups[i][2], 0.0, 0.0, g_TrashPickups[i][3]);
  57212. }
  57213. Players[playerid][pWorking] = 1;
  57214. Players[playerid][pTrashPickup] = 0;
  57215. SetCheckpoint(playerid, CHECKPOINT_JOB, g_TrashPickups[Players[playerid][pTrashPickup]][0], g_TrashPickups[Players[playerid][pTrashPickup]][1], g_TrashPickups[Players[playerid][pTrashPickup]][2], 2.0);
  57216. SendInfoMessage(playerid, "Please make your way through the {FF0000}checkpoints{FFFFFF} and pickup the garbage.");
  57217. }
  57218. }*/
  57219. }
  57220. return 1;
  57221. }
  57222. CMD:guide(playerid, params[])
  57223. {
  57224. Dialog_Show(playerid, Guide, DIALOG_STYLE_LIST, "{FFFFFF}Guide", "Acquire a Job\nDriving License\nFind Location\nList of FAQs", "Select", "Cancel");
  57225. return 1;
  57226. }
  57227. CMD:enter(playerid, params[])
  57228. {
  57229. new success = EnterCaller(playerid);
  57230. if (!success)
  57231. {
  57232. SendErrorMessage(playerid, "There is no door nearby.");
  57233. }
  57234. return 1;
  57235. }
  57236. CMD:exit(playerid, params[])
  57237. {
  57238. new success = ExitCaller(playerid);
  57239. if (!success)
  57240. {
  57241. SendErrorMessage(playerid, "There is no door nearby.");
  57242. }
  57243. return 1;
  57244. }
  57245. CMD:edittag(playerid, params[])
  57246. {
  57247. new id;
  57248. if (Players[playerid][pAdmin] < 5)
  57249. {
  57250. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  57251. }
  57252. else if (sscanf(params, "i", id))
  57253. {
  57254. return SendSyntaxMessage(playerid, "/edittag [tag id]");
  57255. }
  57256. else if (!IsValidTagID(id))
  57257. {
  57258. return SendErrorMessage(playerid, "You have specified an invalid tag ID.");
  57259. }
  57260. else
  57261. {
  57262. //EditDynamicObjectEx(playerid, EDIT_TYPE_TAG, Tags[id][tagObject], id);
  57263. //SendInfoMessage(playerid, "Click on the disk icon to save changes.");
  57264. Players[playerid][pEditID] = id;
  57265. Dialog_Show(playerid, TagEditMenu, DIALOG_STYLE_LIST, "{FFFFFF}Edit Tag", "Position\nText\nColor\nFont Size\nBold: %s\nTag Resolution", "Select", "Cancel", (Tags[id][tagBold]) ? ("Yes") : ("No"));
  57266. }
  57267. return 1;
  57268. }
  57269. CMD:addtag(playerid, params[])
  57270. {
  57271. new tag[64];
  57272. if (Players[playerid][pAdmin] < 5)
  57273. {
  57274. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  57275. }
  57276. else if (sscanf(params, "s[64]", tag))
  57277. {
  57278. SendSyntaxMessage(playerid, "/tag [text]");
  57279. }
  57280. else
  57281. {
  57282. new
  57283. Float:x,
  57284. Float:y,
  57285. Float:z,
  57286. Float:angle,
  57287. id = INVALID_ID;
  57288. GetPlayerPos(playerid, x, y, z);
  57289. GetPlayerFacingAngle(playerid, angle);
  57290. x += 2.0 * floatsin(-angle, degrees);
  57291. y += 2.0 * floatcos(-angle, degrees);
  57292. id = AddTag(x, y, z, angle, tag);
  57293. if (id == INVALID_ID)
  57294. {
  57295. return SendErrorMessage(playerid, "There are no available spray tag slots.");
  57296. }
  57297. else
  57298. {
  57299. EditDynamicObjectEx(playerid, EDIT_TYPE_TAG, Tags[id][tagObject], id);
  57300. SendInfoMessage(playerid, "You have added tag %i (/edittag).", id);
  57301. }
  57302. }
  57303. return 1;
  57304. }
  57305. CMD:addspray(playerid, params[])
  57306. {
  57307. if (Players[playerid][pAdmin] < 5)
  57308. {
  57309. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  57310. }
  57311. else if (GetClosestSprayTag(playerid) != INVALID_ID)
  57312. {
  57313. return SendErrorMessage(playerid, "There is another spray tag nearby.");
  57314. }
  57315. else if (IsPlayerInside(playerid))
  57316. {
  57317. return SendErrorMessage(playerid, "You need to be outside to add spray tags.");
  57318. }
  57319. else
  57320. {
  57321. new
  57322. Float:x,
  57323. Float:y,
  57324. Float:z,
  57325. Float:angle,
  57326. id = INVALID_ID;
  57327. GetPlayerPos(playerid, x, y, z);
  57328. GetPlayerFacingAngle(playerid, angle);
  57329. x += 2.0 * floatsin(-angle, degrees);
  57330. y += 2.0 * floatcos(-angle, degrees);
  57331. id = AddSprayTag(x, y, z, angle);
  57332. if (id == INVALID_ID)
  57333. {
  57334. return SendErrorMessage(playerid, "There are no available spray tag slots.");
  57335. }
  57336. else
  57337. {
  57338. EditDynamicObjectEx(playerid, EDIT_TYPE_SPRAY, SprayTags[id][sObject], id);
  57339. SendInfoMessage(playerid, "You have added spray tag %i (/editspray).", id);
  57340. }
  57341. }
  57342. return 1;
  57343. }
  57344. CMD:checkspray(playerid, params[])
  57345. {
  57346. if (Players[playerid][pAdmin] < 5)
  57347. {
  57348. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  57349. }
  57350. else
  57351. {
  57352. new spray = GetClosestSprayTag(playerid);
  57353. if (spray == INVALID_ID)
  57354. {
  57355. SendErrorMessage(playerid, "There is no spray tag nearby.");
  57356. }
  57357. else
  57358. {
  57359. SendInfoMessage(playerid, "The spray ID is: %i. Use /editspray to edit this spray tag.", spray);
  57360. }
  57361. }
  57362. return 1;
  57363. }
  57364. CMD:checktag(playerid, params[])
  57365. {
  57366. if (Players[playerid][pAdmin] < 5)
  57367. {
  57368. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  57369. }
  57370. else
  57371. {
  57372. new tag = GetClosestTag(playerid);
  57373. if (tag == INVALID_ID)
  57374. {
  57375. SendErrorMessage(playerid, "There is no tag nearby.");
  57376. }
  57377. else
  57378. {
  57379. SendInfoMessage(playerid, "The tag ID is: %i. Use /editspray to edit this tag.", tag);
  57380. }
  57381. }
  57382. return 1;
  57383. }
  57384. CMD:editspray(playerid, params[])
  57385. {
  57386. new id;
  57387. if (Players[playerid][pAdmin] < 5)
  57388. {
  57389. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  57390. }
  57391. else if (sscanf(params, "i", id))
  57392. {
  57393. return SendSyntaxMessage(playerid, "/editspray (spray ID)");
  57394. }
  57395. else if (!IsValidSprayTagID(id))
  57396. {
  57397. return SendErrorMessage(playerid, "You have specified an invalid spray tag ID.");
  57398. }
  57399. else
  57400. {
  57401. EditDynamicObjectEx(playerid, EDIT_TYPE_SPRAY, SprayTags[id][sObject], id);
  57402. SendInfoMessage(playerid, "Click on the disk icon to save changes.");
  57403. }
  57404. return 1;
  57405. }
  57406. CMD:deletespray(playerid, params[])
  57407. {
  57408. new id;
  57409. if (Players[playerid][pAdmin] < 5)
  57410. {
  57411. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  57412. }
  57413. else if (sscanf(params, "i", id))
  57414. {
  57415. return SendSyntaxMessage(playerid, "/deletespray (spray ID)");
  57416. }
  57417. else if (!IsValidSprayTagID(id))
  57418. {
  57419. return SendErrorMessage(playerid, "You have specified an invalid spray tag ID.");
  57420. }
  57421. else
  57422. {
  57423. DestroyDynamicObject(SprayTags[id][sObject]);
  57424. format(gExecute, sizeof(gExecute), "DELETE FROM rp_spraytags WHERE `stID` = %i", SprayTags[id][sID]);
  57425. mysql_tquery(gConnection, gExecute);
  57426. SprayTags[id][sExists] = 0;
  57427. SendInfoMessage(playerid, "You have deleted spray tag %i.", id);
  57428. }
  57429. return 1;
  57430. }
  57431. CMD:deletetag(playerid, params[])
  57432. {
  57433. new id;
  57434. if (Players[playerid][pAdmin] < 5)
  57435. {
  57436. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  57437. }
  57438. else if (sscanf(params, "i", id))
  57439. {
  57440. return SendSyntaxMessage(playerid, "/deletetag [tag id]");
  57441. }
  57442. else if (!IsValidTagID(id))
  57443. {
  57444. return SendErrorMessage(playerid, "You have specified an invalid tag ID.");
  57445. }
  57446. else
  57447. {
  57448. DestroyDynamicObject(Tags[id][tagObject]);
  57449. format(gExecute, sizeof(gExecute), "DELETE FROM rp_tags WHERE `stID` = %i", Tags[id][tagID]);
  57450. mysql_tquery(gConnection, gExecute);
  57451. Tags[id][tagExists] = 0;
  57452. SendInfoMessage(playerid, "You have deleted tag %i.", id);
  57453. }
  57454. return 1;
  57455. }
  57456. CMD:gotospray(playerid, params[])
  57457. {
  57458. new id;
  57459. if (Players[playerid][pAdmin] < 5)
  57460. {
  57461. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  57462. }
  57463. else if (sscanf(params, "i", id))
  57464. {
  57465. return SendSyntaxMessage(playerid, "/gotospray (spray ID)");
  57466. }
  57467. else if (!IsValidSprayTagID(id))
  57468. {
  57469. return SendErrorMessage(playerid, "You have specified an invalid spray tag.");
  57470. }
  57471. else
  57472. {
  57473. SetPlayerPos(playerid, SprayTags[id][sX], SprayTags[id][sY], SprayTags[id][sZ]);
  57474. SendInfoMessage(playerid, "You have teleported to spray tag %i.", id);
  57475. }
  57476. return 1;
  57477. }
  57478. CMD:clearspray(playerid, params[])
  57479. {
  57480. new id;
  57481. if (Players[playerid][pAdmin] < 5)
  57482. {
  57483. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  57484. }
  57485. else if (sscanf(params, "i", id))
  57486. {
  57487. return SendSyntaxMessage(playerid, "/gotospray (spray ID)");
  57488. }
  57489. else if (!IsValidSprayTagID(id))
  57490. {
  57491. return SendErrorMessage(playerid, "You have specified an invalid spray tag.");
  57492. }
  57493. else
  57494. {
  57495. strcpy(SprayTags[id][sText], "/spray to spray\nthis point", 64);
  57496. SprayTags[id][sColor] = 0xFFFFFFFF;
  57497. UpdateSprayTag(id);
  57498. SaveSprayTag(id);
  57499. SendInfoMessage(playerid, "You have cleared spray tag %i.", id);
  57500. }
  57501. return 1;
  57502. }
  57503. CMD:spray(playerid, params[])
  57504. {
  57505. new spray = GetClosestSprayTag(playerid), text[64];
  57506. if (GetPlayerFactionType(playerid) != FACTION_ILLEGAL)
  57507. {
  57508. return SendErrorMessage(playerid, "You are not part of an illegal faction.");
  57509. }
  57510. else if (!Factions[Players[playerid][pFaction]][fcSprayRights])
  57511. {
  57512. return SendErrorMessage(playerid, "Your faction is not authorized to spray tags.");
  57513. }
  57514. else if (GetPlayerState(playerid) != PLAYER_STATE_ONFOOT)
  57515. {
  57516. return SendErrorMessage(playerid, "You must be onfoot to spray a tag.");
  57517. }
  57518. else if (!IsValidSprayTagID(spray))
  57519. {
  57520. return SendErrorMessage(playerid, "There is no spray tag nearby.");
  57521. }
  57522. else if (sscanf(params, "s[64]", text))
  57523. {
  57524. return SendSyntaxMessage(playerid, "/spray (text) - Use ~n~ for a new line.");
  57525. }
  57526. else if (Players[playerid][pSprayTag] != INVALID_ID)
  57527. {
  57528. return SendErrorMessage(playerid, "You are spraying a tag already.");
  57529. }
  57530. else
  57531. {
  57532. new time = (strlen(params) * 1000) / 2;
  57533. foreach (new i : Player)
  57534. {
  57535. if (Players[i][pSprayTag] == spray)
  57536. {
  57537. return SendErrorMessage(playerid, "This tag is being sprayed by another player.");
  57538. }
  57539. }
  57540. strcpy(text, params);
  57541. strreplace(text, "~n~", "\n");
  57542. strreplace(text, "~g~", "{33AA33}");
  57543. strreplace(text, "~N~", "\n");
  57544. strpack(gTemporaryText[playerid], text, 64);
  57545. SetTimerEx("TagSprayed", time, false, "ii", playerid, spray);
  57546. PlayAnimation(playerid, "GRAFFITI", "spraycan_fire", 4.1, 1, 0, 0, 0, 0, 1);
  57547. ShowFooterText(playerid, "~g~Spraying the tag, please wait...", time);
  57548. ShowActionBubble(playerid, "* %s takes out a spraycan and begins to spray the tag.", ReturnNameEx(playerid));
  57549. Players[playerid][pSprayTag] = spray;
  57550. }
  57551. return 1;
  57552. }
  57553. CMD:setdamages(playerid, params[])
  57554. {
  57555. if (Players[playerid][pAdmin] < 6)
  57556. {
  57557. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  57558. }
  57559. else
  57560. {
  57561. ShowWeaponDamageEditMenu(playerid);
  57562. }
  57563. return 1;
  57564. }
  57565. CMD:addpayphone(playerid, params[])
  57566. {
  57567. if (Players[playerid][pAdmin] < 5)
  57568. {
  57569. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  57570. }
  57571. else if (GetClosestPayphone(playerid) != INVALID_ID)
  57572. {
  57573. return SendErrorMessage(playerid, "There is another payphone nearby.");
  57574. }
  57575. else
  57576. {
  57577. new
  57578. Float:x,
  57579. Float:y,
  57580. Float:z,
  57581. Float:angle,
  57582. id = INVALID_ID;
  57583. GetPlayerPos(playerid, x, y, z);
  57584. GetPlayerFacingAngle(playerid, angle);
  57585. x += 2.0 * floatsin(-angle, degrees);
  57586. y += 2.0 * floatcos(-angle, degrees);
  57587. id = AddPayphone(x, y, z, angle, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid));
  57588. if (id == INVALID_ID)
  57589. {
  57590. return SendErrorMessage(playerid, "There are no available payphone slots.");
  57591. }
  57592. else
  57593. {
  57594. EditDynamicObjectEx(playerid, EDIT_TYPE_PAYPHONE, Payphones[id][phObject], id);
  57595. SendInfoMessage(playerid, "You have added payphone %i (/editpayphone).", id);
  57596. }
  57597. }
  57598. return 1;
  57599. }
  57600. CMD:gotopayphone(playerid, params[])
  57601. {
  57602. new id;
  57603. if (Players[playerid][pAdmin] < 5)
  57604. {
  57605. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  57606. }
  57607. else if (sscanf(params, "i", id))
  57608. {
  57609. return SendSyntaxMessage(playerid, "/gotopayphone (payphone ID)");
  57610. }
  57611. else if (!IsValidPayphoneID(id))
  57612. {
  57613. return SendErrorMessage(playerid, "You have specified an invalid payphone ID.");
  57614. }
  57615. else
  57616. {
  57617. SetPlayerPosEx(playerid, Payphones[id][phX], Payphones[id][phY], Payphones[id][phZ], Payphones[id][phA], Payphones[id][phInterior], Payphones[id][phWorld]);
  57618. SendInfoMessage(playerid, "You have teleported to payphone %i.", id);
  57619. }
  57620. return 1;
  57621. }
  57622. CMD:editpayphone(playerid, params[])
  57623. {
  57624. new id;
  57625. if (Players[playerid][pAdmin] < 5)
  57626. {
  57627. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  57628. }
  57629. else if (sscanf(params, "i", id))
  57630. {
  57631. return SendSyntaxMessage(playerid, "/editpayphone (payphone ID)");
  57632. }
  57633. else if (!IsValidPayphoneID(id))
  57634. {
  57635. return SendErrorMessage(playerid, "You have specified an invalid payphone ID.");
  57636. }
  57637. else
  57638. {
  57639. EditDynamicObjectEx(playerid, EDIT_TYPE_PAYPHONE, Payphones[id][phObject], id);
  57640. SendInfoMessage(playerid, "Click on the disk icon to save changes.");
  57641. }
  57642. return 1;
  57643. }
  57644. CMD:deletepayphone(playerid, params[])
  57645. {
  57646. new id;
  57647. if (Players[playerid][pAdmin] < 5)
  57648. {
  57649. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  57650. }
  57651. else if (sscanf(params, "i", id))
  57652. {
  57653. return SendSyntaxMessage(playerid, "/deletepayphone (payphone ID)");
  57654. }
  57655. else if (!IsValidPayphoneID(id))
  57656. {
  57657. return SendErrorMessage(playerid, "You have specified an invalid payphone ID.");
  57658. }
  57659. else
  57660. {
  57661. if (Payphones[id][phCaller] != INVALID_PLAYER_ID)
  57662. {
  57663. HangupCall(Payphones[id][phCaller]);
  57664. }
  57665. DestroyDynamic3DTextLabel(Payphones[id][phText]);
  57666. DestroyDynamicObject(Payphones[id][phObject]);
  57667. format(gExecute, sizeof(gExecute), "DELETE FROM rp_payphones WHERE `phID` = %i", Payphones[id][phID]);
  57668. mysql_tquery(gConnection, gExecute);
  57669. Payphones[id][phExists] = 0;
  57670. SendInfoMessage(playerid, "You have deleted payphone %i.", id);
  57671. }
  57672. return 1;
  57673. }
  57674. CMD:stereo(playerid, params[])
  57675. {
  57676. if (Stereos[playerid][pStereoID] == INVALID_ID)
  57677. {
  57678. return SendErrorMessage(playerid, "You need to place a stereo down first.");
  57679. }
  57680. else if (!IsPlayerNearPoint(playerid, 3.0, Stereos[playerid][pStereoX], Stereos[playerid][pStereoY], Stereos[playerid][pStereoZ], Stereos[playerid][pStereoInterior], Stereos[playerid][pStereoWorld]))
  57681. {
  57682. return SendErrorMessage(playerid, "You need to be in range of your stereo.");
  57683. }
  57684. else
  57685. {
  57686. Dialog_Show(playerid, Stereo, DIALOG_STYLE_LIST, "{FFFFFF}Stereo Settings", "Change URL\nPickup Stereo", "Select", "Cancel");
  57687. }
  57688. return 1;
  57689. }
  57690. CMD:destroystereo(playerid, params[])
  57691. {
  57692. new targetid = GetNearbyStereoPlayerID(playerid);
  57693. if (Players[playerid][pAdmin] < 3)
  57694. {
  57695. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  57696. }
  57697. else if (targetid == INVALID_PLAYER_ID)
  57698. {
  57699. return SendErrorMessage(playerid, "There is no stereo nearby.");
  57700. }
  57701. else
  57702. {
  57703. ResetStereo(targetid);
  57704. SendInfoMessage(playerid, "You have destroyed %s's stereo.", ReturnNameEx(targetid, 0));
  57705. }
  57706. return 1;
  57707. }
  57708. CMD:setstyle(playerid, params[])
  57709. {
  57710. new category, style;
  57711. if(sscanf(params, "ii", category, style))
  57712. {
  57713. SendSyntaxMessage(playerid, "/setstyle [category] [style]");
  57714. SendClientMessage(playerid, COLOR_LIGHTGREY, "1: Chat style 2: Walk style");
  57715. SendClientMessage(playerid, COLOR_LIGHTGREY, "3: Payment");
  57716. }
  57717. else
  57718. {
  57719. if (category == 1)
  57720. {
  57721. if (Players[playerid][pDonator] < DONATOR_BASIC)
  57722. {
  57723. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  57724. }
  57725. if(style < 1 || style > 8) {
  57726. return SendErrorMessage(playerid, "Style must be between 1 and 8.");
  57727. }
  57728. Players[playerid][pChatStyle] = style;
  57729. }
  57730. else if (category == 2)
  57731. {
  57732. if (Players[playerid][pDonator] < DONATOR_BASIC)
  57733. {
  57734. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  57735. }
  57736. else if (style < 1 || style > 16)
  57737. {
  57738. SendSyntaxMessage(playerid, "/setstyle [walkstyle] [1-16]");
  57739. SendClientMessage(playerid, -1, "Random: 7, 8.");
  57740. SendClientMessage(playerid, -1, "Normal: 1, 2, 6, 9, 11.");
  57741. SendClientMessage(playerid, -1, "Old/Fat: 3, 4, 5, 10.");
  57742. SendClientMessage(playerid, -1, "Woman: 12, 13, 14, 15, 16.");
  57743. return 1;
  57744. }
  57745. Players[playerid][pWalkStyle] = style;
  57746. SendInfoMessage(playerid, "You have changed your walk style. (/walk)");
  57747. }
  57748. else if (category == 3)
  57749. {
  57750. Dialog_Show(playerid, PaymentType, DIALOG_STYLE_LIST, "{FFFFFF}Set payment type", "Cash\nBank Account", "Select", "Cancel");
  57751. return 1;
  57752. }
  57753. else return cmd_setstyle(playerid, "");
  57754. }
  57755. return 1;
  57756. }
  57757. /*CMD:chatstyle(playerid, params[])
  57758. {
  57759. new type;
  57760. if (Players[playerid][pDonator] < DONATOR_BASIC)
  57761. {
  57762. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  57763. }
  57764. else if (sscanf(params, "i", type) || !(1 <= type <= 8))
  57765. {
  57766. return SendSyntaxMessage(playerid, "/chatstyle (1 to 8)");
  57767. }
  57768. else
  57769. {
  57770. Players[playerid][pChatStyle] = type;
  57771. SendInfoMessage(playerid, "You have changed your chat style.");
  57772. }
  57773. return 1;
  57774. }*/
  57775. CMD:confirm(playerid, params[])
  57776. {
  57777. new
  57778. vehicleid = Players[playerid][pAddVehicle],
  57779. vehicle,
  57780. Float:x,
  57781. Float:y,
  57782. Float:z,
  57783. Float:angle;
  57784. if (Players[playerid][pAdmin] < 5)
  57785. {
  57786. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  57787. }
  57788. else if (vehicleid == INVALID_VEHICLE_ID)
  57789. {
  57790. return SendErrorMessage(playerid, "You are not editing any vehicles.");
  57791. }
  57792. else
  57793. {
  57794. GetVehiclePos(vehicleid, x, y, z);
  57795. GetVehicleZAngle(vehicleid, angle);
  57796. if (Players[playerid][pVehicleRental]) {
  57797. vehicle = AddVehicle(Players[playerid][pVehicleCompany], GetVehicleModel(vehicleid), Players[playerid][pVehiclePrice], x, y, z, angle, VehicleInformation[vehicleid][vColor][0], VehicleInformation[vehicleid][vColor][1], .faction = Players[playerid][pVehicleFaction], .rentable = true);
  57798. } else {
  57799. vehicle = AddVehicle(Players[playerid][pVehicleCompany], GetVehicleModel(vehicleid), Players[playerid][pVehiclePrice], x, y, z, angle, VehicleInformation[vehicleid][vColor][0], VehicleInformation[vehicleid][vColor][1], .faction = Players[playerid][pVehicleFaction], .rentable = false);
  57800. }
  57801. SetFreezePos(playerid, x, y, z, 1500);
  57802. DestroyVehicleEx(Players[playerid][pAddVehicle]);
  57803. if (vehicle == INVALID_ID)
  57804. {
  57805. return SendErrorMessage(playerid, "There are no available vehicle slots.");
  57806. }
  57807. else
  57808. {
  57809. SendInfoMessage(playerid, "You have added a %s (vehicle %i).", GetVehicleModelName(Vehicles[vehicle][vModel]), Vehicles[vehicle][vVehicle]);
  57810. }
  57811. Players[playerid][pAddVehicle] = INVALID_VEHICLE_ID;
  57812. }
  57813. return 1;
  57814. }
  57815. CMD:vputseat(playerid, params[])
  57816. {
  57817. new targetid, vehicleid, seatid;
  57818. if (Players[playerid][pAdmin] < 1)
  57819. {
  57820. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  57821. }
  57822. else if (sscanf(params, "uii", targetid, vehicleid, seatid))
  57823. {
  57824. return SendSyntaxMessage(playerid, "/vputseat [playerid/name] (vehicle ID) (seat ID)");
  57825. }
  57826. else if (!IsPlayerConnected(targetid))
  57827. {
  57828. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  57829. }
  57830. else if (!IsPlayerSpawned(targetid))
  57831. {
  57832. return SendErrorMessage(playerid, "The specified target isn't spawned.");
  57833. }
  57834. else if (!IsValidVehicle(vehicleid))
  57835. {
  57836. return SendErrorMessage(playerid, "You have specified an invalid vehicle ID.");
  57837. }
  57838. else if (seatid < 0 || seatid >= GetVehicleSeats(vehicleid))
  57839. {
  57840. return SendErrorMessage(playerid, "You have specified an invalid seat ID.");
  57841. }
  57842. else
  57843. {
  57844. PutPlayerInVehicle(targetid, vehicleid, seatid);
  57845. SendInfoMessage(playerid, "You have put %s in vehicle %i into seat %i.", ReturnNameEx(targetid, 0), vehicleid, seatid);
  57846. }
  57847. return 1;
  57848. }
  57849. CMD:acceptvehicle(playerid, params[])
  57850. {
  57851. if (IsPlayerConnected(Players[playerid][pCarOffer]))
  57852. {
  57853. new vehicle = Players[playerid][pCarSell];
  57854. new price = Players[playerid][pCarPrice];
  57855. if (!IsVehicleOwner(Players[playerid][pCarOffer], vehicle))
  57856. {
  57857. return SendErrorMessage(playerid, "The vehicle offer has expired.");
  57858. }
  57859. else if (!PlayerCanAfford(playerid, price))
  57860. {
  57861. return SendErrorMessage(playerid, "You can't afford to buy the vehicle.");
  57862. }
  57863. else if (!IsPlayerInRangeOfPlayer(playerid, Players[playerid][pCarOffer]))
  57864. {
  57865. return SendErrorMessage(playerid, "You need to be near the player who offered the vehicle.");
  57866. }
  57867. else
  57868. {
  57869. Vehicles[vehicle][vOwner] = Players[playerid][pID];
  57870. SaveVehicle(vehicle);
  57871. RemoveMoney(playerid, price);
  57872. SendInfoMessage(playerid, "You have purchased %s's %s for {33CC33}%s{FFFFFF}.", ReturnNameEx(Players[playerid][pCarOffer]), GetVehicleModelName(Vehicles[vehicle][vModel]), FormatNumber(price));
  57873. SendInfoMessage(Players[playerid][pCarOffer], "%s has purchased your %s for {33CC33}%s{FFFFFF}.", ReturnNameEx(playerid), GetVehicleModelName(Vehicles[vehicle][vModel]), FormatNumber(price));
  57874. format(gExecute, sizeof(gExecute), "INSERT INTO rp_purchases (Player, Type, Price, Date) VALUES(%i, '%s (sold by %s) - #%i', %i, NOW())", Players[playerid][pID], GetVehicleModelName(Vehicles[vehicle][vModel]), ReturnName(Players[playerid][pCarOffer]), Vehicles[vehicle][vID], price);
  57875. mysql_tquery(gConnection, gExecute);
  57876. Players[Players[playerid][pCarOffer]][pPocketMoney] += price;
  57877. Players[playerid][pCarOffer] = INVALID_PLAYER_ID;
  57878. }
  57879. }
  57880. return 1;
  57881. }
  57882. CMD:vehicle(playerid, params[])
  57883. {
  57884. return cmd_v(playerid, params);
  57885. }
  57886. /*
  57887. else if (!strcmp(option, "stereo", true))
  57888. {
  57889. new vehicleid = GetPlayerVehicleID(playerid);
  57890. if (!vehicleid)
  57891. {
  57892. return SendErrorMessage(playerid, "You need to be in a vehicle.");
  57893. }
  57894. else if (!IsPoweredVehicle(vehicleid))
  57895. {
  57896. return SendErrorMessage(playerid, "This vehicle doesn't have a radio system.");
  57897. }
  57898. else if (isnull(value))
  57899. {
  57900. return SendSyntaxMessage(playerid, "/(v)ehicle (stereo) (stream URL) - Use 'none' to reset.");
  57901. }
  57902. else
  57903. {
  57904. if (!strcmp(value, "none", true))
  57905. {
  57906. ResetVehicleStream(vehicleid);
  57907. SendInfoMessage(playerid, "You have reset the playing stream.");
  57908. ShowActionBubble(playerid, "* %s presses a button to turn off the radio.", ReturnNameEx(playerid));
  57909. }
  57910. else
  57911. {
  57912. foreach (new i : Player)
  57913. {
  57914. if (IsPlayerInVehicle(i, vehicleid))
  57915. {
  57916. Players[i][pVehicleStream] = vehicleid;
  57917. PlayAudioStreamForPlayer(i, value);
  57918. }
  57919. }
  57920. strpack(VehicleInformation[vehicleid][vStream], value, 128 char);
  57921. SendInfoMessage(playerid, "You have changed the stream that this vehicle will play.");
  57922. ShowActionBubble(playerid, "* %s presses a button to turn on the radio.", ReturnNameEx(playerid));
  57923. }
  57924. }
  57925. }
  57926. */
  57927. CMD:setstation(playerid, params[])
  57928. {
  57929. new vehicleid = GetPlayerVehicleID(playerid);
  57930. if (!vehicleid) return SCM(playerid, COLOR_LIGHTRED, "You need to be in a vehicle.");
  57931. if (!IsPoweredVehicle(vehicleid)) return SCM(playerid, COLOR_LIGHTRED, "This vehicle has no XM-Radio.");
  57932. ShowBoomBoxStations(playerid);
  57933. return 1;
  57934. }
  57935. /*
  57936. if (GetClosestShell(playerid) != INVALID_ID) ShellCheck(playerid);
  57937. else if (GetClosestDropItem(playerid) != INVALID_ID) PickupNearestItem(playerid);
  57938. //else if (GetClosestBlood(playerid) != INVALID_ID) BloodCheck(playerid);
  57939. else if (IsPlayerNearSwitch(playerid)) LightSwitch(playerid);
  57940. else if (IsPlayerInRangeOfLocker(playerid)) ShowLockerMenu(playerid);
  57941. else if (GetClosestFurniture(playerid, 2.0, 2332) != INVALID_ID) SafeCheck(playerid);
  57942. else if (GetClosestFridge(playerid, 2.0) != INVALID_ID) FridgeCheck(playerid);
  57943. else if (GetClosestATM(playerid) != INVALID_ID) ATMCheck(playerid);
  57944. else if (GetClosestTrashbin(playerid) != INVALID_ID) TrashbinCheck(playerid);
  57945. else if (IsPlayerNearGymEquipment(playerid)) GymCheck(playerid);
  57946. */
  57947. CMD:v(playerid, params[])
  57948. {
  57949. new option[10], value[128];
  57950. if (sscanf(params, "s[10]S()[128]", option, value))
  57951. {
  57952. SendSyntaxMessage(playerid, "/(v)ehicle (option)");
  57953. SendClientMessage(playerid, COLOR_LIGHTGREY, "Options: lock, trunk, park, sell, track, list, unmod, abandon");
  57954. SendClientMessage(playerid, COLOR_LIGHTGREY, "Options: lights, alarm, plate, despawn, spawn, duplicate");
  57955. }
  57956. else if(IsPlayerInModdingShop(playerid))
  57957. {
  57958. return SendErrorMessage(playerid, "You can't use this command while in a modding shop.");
  57959. }
  57960. else
  57961. {
  57962. if(!strcmp(option, "lights", true))
  57963. {
  57964. new
  57965. vehicle = GetPlayerVehicleID(playerid);
  57966. if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
  57967. {
  57968. return SendErrorMessage(playerid, "You are not driving any vehicle.");
  57969. }
  57970. else if (!IsPoweredVehicle(vehicle))
  57971. {
  57972. return SendErrorMessage(playerid, "This vehicle doesn't have lights.");
  57973. }
  57974. else
  57975. {
  57976. if (GetLightsStatus(vehicle))
  57977. {
  57978. SetLightsStatus(vehicle, false);
  57979. SendInfoMessage(playerid, "You have turned off the vehicle's lights.");
  57980. }
  57981. else
  57982. {
  57983. SetLightsStatus(vehicle, true);
  57984. SendInfoMessage(playerid, "You have turned on the vehicle's lights.");
  57985. }
  57986. }
  57987. }
  57988. else if (!strcmp(option, "lock", true))
  57989. {
  57990. new vehicle = GetVehicleID(GetClosestVehicle(playerid));
  57991. if (!IsValidVehicleID(vehicle))
  57992. {
  57993. return SendErrorMessage(playerid, "There is no vehicle nearby.");
  57994. }
  57995. else if (!GetVehicleKeys(playerid, Vehicles[vehicle][vVehicle]))
  57996. {
  57997. return SendErrorMessage(playerid, "You don't have any keys for this vehicle.");
  57998. }
  57999. else
  58000. {
  58001. switch (Vehicles[vehicle][vLocked])
  58002. {
  58003. case 0:
  58004. {
  58005. Vehicles[vehicle][vLocked] = 1;
  58006. ShowActionBubble(playerid, "* %s uses their key to lock the vehicle.", ReturnNameEx(playerid));
  58007. ShowFooterText(playerid, "You have ~r~locked~w~ this vehicle.");
  58008. }
  58009. case 1:
  58010. {
  58011. Vehicles[vehicle][vLocked] = 0;
  58012. ShowActionBubble(playerid, "* %s uses their key to unlock the vehicle.", ReturnNameEx(playerid));
  58013. ShowFooterText(playerid, "You have ~g~unlocked~w~ this vehicle.");
  58014. }
  58015. }
  58016. if (!Vehicles[vehicle][vRentable])
  58017. {
  58018. SaveVehicle(vehicle);
  58019. }
  58020. SetLockStatus(Vehicles[vehicle][vVehicle], Vehicles[vehicle][vLocked]);
  58021. PlayNearbySound(playerid, 1145);
  58022. }
  58023. }
  58024. else if (!strcmp(option, "trunk", true))
  58025. {
  58026. new vehicle = GetVehicleID(GetClosestVehicle(playerid));
  58027. if (!IsValidVehicleID(vehicle))
  58028. {
  58029. return SendErrorMessage(playerid, "There is no trunk nearby.");
  58030. }
  58031. else if (!GetBootStatus(GetClosestVehicle(playerid)) && !IsPlayerInVehicle(playerid, GetClosestVehicle(playerid)))
  58032. {
  58033. return SendErrorMessage(playerid, "The trunk is not open.");
  58034. }
  58035. /*else if (Vehicles[vehicle][vLocked])
  58036. {
  58037. return SendErrorMessage(playerid, "The trunk is locked.");
  58038. }*/
  58039. else if (!GetTrunkCapacity(vehicle))
  58040. {
  58041. return SendErrorMessage(playerid, "This vehicle doesn't have a trunk.");
  58042. }
  58043. else if (Vehicles[vehicle][vFaction] != 0 && GetFactionID(Vehicles[vehicle][vFaction]) != Players[playerid][pFaction])
  58044. {
  58045. return SendErrorMessage(playerid, "The trunk is locked.");
  58046. }
  58047. else
  58048. {
  58049. ShowTrunkMenu(playerid, vehicle);
  58050. ShowActionBubble(playerid, "* %s opens the trunk and looks inside.", ReturnNameEx(playerid));
  58051. }
  58052. }
  58053. else if (!strcmp(option, "park", true))
  58054. {
  58055. new vehicle = GetVehicleID(GetPlayerVehicleID(playerid));
  58056. if (!IsValidVehicleID(vehicle))
  58057. {
  58058. return SendErrorMessage(playerid, "You are not in any vehicle that you own.");
  58059. }
  58060. else if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
  58061. {
  58062. return SendErrorMessage(playerid, "You are not in the driver seat.");
  58063. }
  58064. else if ((gettime() - Players[playerid][pParkTime]) < PARK_WAIT_TIME)
  58065. {
  58066. return SendErrorMessage(playerid, "You must wait %i seconds before parking again.", (PARK_WAIT_TIME - (gettime() - Players[playerid][pParkTime])));
  58067. }
  58068. else if (Players[playerid][pAutoShop] != INVALID_ID)
  58069. {
  58070. return SendErrorMessage(playerid, "You cannot park your vehicle in here.");
  58071. }
  58072. else if (Players[playerid][pAdminDuty])
  58073. {
  58074. new Float:health, damage[4], fuel = VehicleInformation[Vehicles[vehicle][vVehicle]][vFuel];
  58075. GetVehicleHealth(Vehicles[vehicle][vVehicle], health);
  58076. GetVehicleDamageStatus(Vehicles[vehicle][vVehicle], damage[0], damage[1], damage[2], damage[3]);
  58077. foreach (new i : Player)
  58078. {
  58079. if (IsPlayerInVehicle(i, Vehicles[vehicle][vVehicle]))
  58080. {
  58081. gSeatData[i] = GetPlayerVehicleSeat(i);
  58082. }
  58083. }
  58084. ClearVehicleObjects(Vehicles[vehicle][vVehicle]);
  58085. GetVehiclePos(Vehicles[vehicle][vVehicle], Vehicles[vehicle][vSpawn][0], Vehicles[vehicle][vSpawn][1], Vehicles[vehicle][vSpawn][2]);
  58086. GetVehicleZAngle(Vehicles[vehicle][vVehicle], Vehicles[vehicle][vSpawn][3]);
  58087. UpdateVehicle(vehicle);
  58088. SaveVehicle(vehicle);
  58089. SetVehicleHealth(Vehicles[vehicle][vVehicle], health);
  58090. UpdateVehicleDamageStatus(Vehicles[vehicle][vVehicle], damage[0], damage[1], damage[2], damage[3]);
  58091. VehicleInformation[Vehicles[vehicle][vVehicle]][vFuel] = fuel;
  58092. Players[playerid][pParkTime] = gettime();
  58093. SendInfoMessage(playerid, "You have parked the vehicle at this spot.");
  58094. foreach (new i : Player)
  58095. {
  58096. if (gSeatData[i] >= 0)
  58097. {
  58098. PutPlayerInVehicle(i, Vehicles[vehicle][vVehicle], gSeatData[i]);
  58099. gSeatData[i] = INVALID_ID;
  58100. }
  58101. }
  58102. return 1;
  58103. }
  58104. else if (!IsVehicleOwner(playerid, vehicle) && !PlayerHasKeys(playerid, vehicle))
  58105. {
  58106. return SendErrorMessage(playerid, "You don't have the keys to this vehicle.");
  58107. }
  58108. else
  58109. {
  58110. new Float:health, damage[4], fuel = VehicleInformation[Vehicles[vehicle][vVehicle]][vFuel];
  58111. GetVehicleHealth(Vehicles[vehicle][vVehicle], health);
  58112. GetVehicleDamageStatus(Vehicles[vehicle][vVehicle], damage[0], damage[1], damage[2], damage[3]);
  58113. foreach (new i : Player)
  58114. {
  58115. if (IsPlayerInVehicle(i, Vehicles[vehicle][vVehicle]))
  58116. {
  58117. gSeatData[i] = GetPlayerVehicleSeat(i);
  58118. }
  58119. }
  58120. ClearVehicleObjects(Vehicles[vehicle][vVehicle]);
  58121. GetVehiclePos(Vehicles[vehicle][vVehicle], Vehicles[vehicle][vSpawn][0], Vehicles[vehicle][vSpawn][1], Vehicles[vehicle][vSpawn][2]);
  58122. GetVehicleZAngle(Vehicles[vehicle][vVehicle], Vehicles[vehicle][vSpawn][3]);
  58123. UpdateVehicle(vehicle);
  58124. SaveVehicle(vehicle);
  58125. SetVehicleHealth(Vehicles[vehicle][vVehicle], health);
  58126. UpdateVehicleDamageStatus(Vehicles[vehicle][vVehicle], damage[0], damage[1], damage[2], damage[3]);
  58127. VehicleInformation[Vehicles[vehicle][vVehicle]][vFuel] = fuel;
  58128. Players[playerid][pParkTime] = gettime();
  58129. SendInfoMessage(playerid, "You have parked your vehicle at this spot.");
  58130. foreach (new i : Player)
  58131. {
  58132. if (gSeatData[i] >= 0)
  58133. {
  58134. PutPlayerInVehicle(i, Vehicles[vehicle][vVehicle], gSeatData[i]);
  58135. gSeatData[i] = INVALID_ID;
  58136. }
  58137. }
  58138. }
  58139. }
  58140. else if (!strcmp(option, "sell", true))
  58141. {
  58142. new vehicle = GetVehicleID(GetPlayerVehicleID(playerid)), targetid, price;
  58143. if (!IsValidVehicleID(vehicle))
  58144. {
  58145. return SendErrorMessage(playerid, "You are not in any vehicle that you own.");
  58146. }
  58147. else if (!IsVehicleOwner(playerid, vehicle))
  58148. {
  58149. return SendErrorMessage(playerid, "You don't own this vehicle.");
  58150. }
  58151. else if (sscanf(value, "ui", targetid, price))
  58152. {
  58153. return SendSyntaxMessage(playerid, "/(v)ehicle (sell) (player) (price)");
  58154. }
  58155. else if (!IsPlayerConnected(targetid))
  58156. {
  58157. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  58158. }
  58159. else if (IsPlayerNPC(targetid))
  58160. {
  58161. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  58162. }
  58163. else if (targetid == playerid)
  58164. {
  58165. return SendErrorMessage(playerid, "You can't use this command on yourself.");
  58166. }
  58167. else if (!IsPlayerInRangeOfPlayer(playerid, targetid))
  58168. {
  58169. return SendErrorMessage(playerid, "The specified target is not near you.");
  58170. }
  58171. else if (price < 1)
  58172. {
  58173. return SendErrorMessage(playerid, "The price can't be below $1.");
  58174. }
  58175. else
  58176. {
  58177. Players[targetid][pCarOffer] = playerid;
  58178. Players[targetid][pCarPrice] = price;
  58179. Players[targetid][pCarSell] = vehicle;
  58180. SendInfoMessage(playerid, "You have offered %s to buy your %s for %s.", ReturnNameEx(targetid), GetVehicleModelName(Vehicles[vehicle][vModel]), FormatNumber(price));
  58181. SendInfoMessage(targetid, "%s wants to sell you their %s for {33CC33}%s{FFFFFF} - use /acceptvehicle to accept.", ReturnNameEx(playerid), GetVehicleModelName(Vehicles[vehicle][vModel]), FormatNumber(price));
  58182. }
  58183. }
  58184. else if (!strcmp(option, "track", true))
  58185. {
  58186. new success = ShowVehicleTrackList(playerid);
  58187. if (!success)
  58188. {
  58189. SendErrorMessage(playerid, "You don't own any vehicles you can track.");
  58190. }
  58191. }
  58192. else if (!strcmp(option, "list", true))
  58193. {
  58194. SendClientMessage(playerid, COLOR_DARKGREEN, "[_______________Your Vehicles_______________]");
  58195. for (new i = 0; i < MAX_CARS; i ++)
  58196. {
  58197. if (IsValidVehicleID(i) && IsVehicleOwner(playerid, i))
  58198. {
  58199. if (Vehicles[i][vImpound])
  58200. {
  58201. SendFormatMessage(playerid, COLOR_WHITE, "- %s - %s (Impounded)", GetVehicleModelName(Vehicles[i][vModel]), Vehicles[i][vPlate]);
  58202. }
  58203. else if (Vehicles[i][vDespawned])
  58204. {
  58205. SendFormatMessage(playerid, COLOR_WHITE, "- %s - %s (Despawned)", GetVehicleModelName(Vehicles[i][vModel]), Vehicles[i][vPlate]);
  58206. }
  58207. else
  58208. {
  58209. SendFormatMessage(playerid, COLOR_WHITE, "- %s - %s (ID: %i)", GetVehicleModelName(Vehicles[i][vModel]), Vehicles[i][vPlate], Vehicles[i][vVehicle]);
  58210. }
  58211. }
  58212. }
  58213. SendClientMessage(playerid, COLOR_DARKGREEN, "[___________________________________________]");
  58214. }
  58215. else if (!strcmp(option, "unmod", true))
  58216. {
  58217. new vehicle = GetVehicleID(GetPlayerVehicleID(playerid));
  58218. if (!IsValidVehicleID(vehicle))
  58219. {
  58220. return SendErrorMessage(playerid, "You are not in any vehicle that you own.");
  58221. }
  58222. else if (!IsVehicleOwner(playerid, vehicle) && !PlayerHasKeys(playerid, vehicle))
  58223. {
  58224. return SendErrorMessage(playerid, "You don't have the keys to this vehicle.");
  58225. }
  58226. else if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
  58227. {
  58228. return SendErrorMessage(playerid, "You are not in the driver seat.");
  58229. }
  58230. else
  58231. {
  58232. new index, string[512];
  58233. for (new i = 0; i < 14; i ++)
  58234. {
  58235. if (Vehicles[vehicle][vMods][i] > 0)
  58236. {
  58237. format(string, sizeof(string), "%s\n%s", string, GetVehicleComponentName(Vehicles[vehicle][vMods][i]));
  58238. gListedItems[playerid][index++] = i;
  58239. }
  58240. }
  58241. strcat(string, "\nReset Color\nReset Paintjob");
  58242. Dialog_Show(playerid, RemoveMod, DIALOG_STYLE_LIST, "{FFFFFF}Select Option", string, "Remove", "Cancel");
  58243. }
  58244. }
  58245. else if (!strcmp(option, "abandon", true))
  58246. {
  58247. new vehicle = GetVehicleID(GetPlayerVehicleID(playerid));
  58248. if (!IsValidVehicleID(vehicle))
  58249. {
  58250. return SendErrorMessage(playerid, "You are not in any vehicle that you own.");
  58251. }
  58252. else if (!IsVehicleOwner(playerid, vehicle))
  58253. {
  58254. return SendErrorMessage(playerid, "You don't own this vehicle.");
  58255. }
  58256. else if (isnull(value) || strcmp(value, "confirm", true) != 0)
  58257. {
  58258. SendSyntaxMessage(playerid, "/(v)ehicle (abandon) (confirm)");
  58259. SendClientMessage(playerid, COLOR_LIGHTGREY, "Note: This will permanently remove your vehicle from the server.");
  58260. }
  58261. else
  58262. {
  58263. DeleteVehicle(vehicle);
  58264. SendInfoMessage(playerid, "You have abandoned this vehicle. It has been destroyed from the server.");
  58265. }
  58266. }
  58267. else if (!strcmp(option, "alarm", true))
  58268. {
  58269. new vehicle = GetVehicleID(GetPlayerVehicleID(playerid));
  58270. if (!IsValidVehicleID(vehicle))
  58271. {
  58272. return SendErrorMessage(playerid, "You are not in any vehicle that you own.");
  58273. }
  58274. else if (!IsVehicleOwner(playerid, vehicle))
  58275. {
  58276. return SendErrorMessage(playerid, "You don't own this vehicle.");
  58277. }
  58278. else if (Vehicles[vehicle][vAlarm])
  58279. {
  58280. return SendErrorMessage(playerid, "Your vehicle already has an alarm installed.");
  58281. }
  58282. else if (isnull(value) || strcmp(value, "confirm", true) != 0)
  58283. {
  58284. SendSyntaxMessage(playerid, "/(v)ehicle (alarm) (confirm)");
  58285. SendClientMessage(playerid, COLOR_LIGHTGREY, "Note: Installing an alarm will cost you $4500.");
  58286. }
  58287. else if (!PlayerCanAfford(playerid, 4500))
  58288. {
  58289. return SendErrorMessage(playerid, "You can't afford the installation fee.");
  58290. }
  58291. else
  58292. {
  58293. RemoveMoney(playerid, 4500);
  58294. SendInfoMessage(playerid, "You have purchased an alarm for {33CC33}$4500{FFFFFF}. You will receive an notification upon break in.");
  58295. Vehicles[vehicle][vAlarm] = 1;
  58296. SaveVehicle(vehicle);
  58297. }
  58298. }
  58299. else if (!strcmp(option, "plate", true))
  58300. {
  58301. new vehicle = GetVehicleID(GetPlayerVehicleID(playerid));
  58302. if (Players[playerid][pDonator] < DONATOR_STANDARD)
  58303. {
  58304. return SendErrorMessage(playerid, "You are not a donator.");
  58305. }
  58306. if (!IsValidVehicleID(vehicle))
  58307. {
  58308. return SendErrorMessage(playerid, "You are not in any vehicle that you own.");
  58309. }
  58310. else if (!IsVehicleOwner(playerid, vehicle))
  58311. {
  58312. return SendErrorMessage(playerid, "You don't own this vehicle.");
  58313. }
  58314. else if (isnull(value))
  58315. {
  58316. SendSyntaxMessage(playerid, "/(v)ehicle (plate) (text)");
  58317. SendClientMessage(playerid, COLOR_LIGHTGREY, "Note: Changing the license plate will cost you $400.");
  58318. }
  58319. else if (strlen(value) > 12)
  58320. {
  58321. return SendErrorMessage(playerid, "The specified text cannot be above 12 characters.");
  58322. }
  58323. else if (!PlayerCanAfford(playerid, 400))
  58324. {
  58325. return SendErrorMessage(playerid, "You can't afford the installation fee.");
  58326. }
  58327. else
  58328. {
  58329. format(gExecute, sizeof(gExecute), "SELECT vID FROM rp_vehicles WHERE vPlate = '%s'", mysql_escaped(value));
  58330. mysql_tquery(gConnection, gExecute, "OnPlayerCheckPlate", "is", playerid, value);
  58331. }
  58332. }
  58333. else if (!strcmp(option, "despawn", true))
  58334. {
  58335. new success = ShowSpawnedVehicleList(playerid);
  58336. if (!success)
  58337. {
  58338. SendErrorMessage(playerid, "You don't own any vehicles that are spawned.");
  58339. }
  58340. }
  58341. else if (!strcmp(option, "spawn", true))
  58342. {
  58343. new success = ShowDespawnedVehicleList(playerid);
  58344. if (!success)
  58345. {
  58346. SendErrorMessage(playerid, "You don't own any vehicles that are despawned.");
  58347. }
  58348. }
  58349. /*else if (!strcmp(option, "stereo", true))
  58350. {
  58351. new vehicleid = GetPlayerVehicleID(playerid);
  58352. if (!vehicleid)
  58353. {
  58354. return SendErrorMessage(playerid, "You need to be in a vehicle.");
  58355. }
  58356. else if (!IsPoweredVehicle(vehicleid))
  58357. {
  58358. return SendErrorMessage(playerid, "This vehicle doesn't have a radio system.");
  58359. }
  58360. else if (isnull(value))
  58361. {
  58362. return SendSyntaxMessage(playerid, "/(v)ehicle (stereo) (stream URL) - Use 'none' to reset.");
  58363. }
  58364. else
  58365. {
  58366. if (!strcmp(value, "none", true))
  58367. {
  58368. ResetVehicleStream(vehicleid);
  58369. SendInfoMessage(playerid, "You have reset the playing stream.");
  58370. ShowActionBubble(playerid, "* %s presses a button to turn off the radio.", ReturnNameEx(playerid));
  58371. }
  58372. else
  58373. {
  58374. foreach (new i : Player)
  58375. {
  58376. if (IsPlayerInVehicle(i, vehicleid))
  58377. {
  58378. Players[i][pVehicleStream] = vehicleid;
  58379. PlayAudioStreamForPlayer(i, value);
  58380. }
  58381. }
  58382. strpack(VehicleInformation[vehicleid][vStream], value, 128 char);
  58383. SendInfoMessage(playerid, "You have changed the stream that this vehicle will play.");
  58384. ShowActionBubble(playerid, "* %s presses a button to turn on the radio.", ReturnNameEx(playerid));
  58385. }
  58386. }
  58387. }*/
  58388. else if (!strcmp(option, "duplicate", true))
  58389. {
  58390. new targetid, param[8], vehicle = GetVehicleID(GetPlayerVehicleID(playerid));
  58391. if (!IsValidVehicleID(vehicle))
  58392. {
  58393. return SendErrorMessage(playerid, "You are not in any vehicle that you own.");
  58394. }
  58395. else if (!IsVehicleOwner(playerid, vehicle))
  58396. {
  58397. return SendErrorMessage(playerid, "You don't own this vehicle.");
  58398. }
  58399. else if (sscanf(value, "s[8]u", param, targetid))
  58400. {
  58401. return SendSyntaxMessage(playerid, "/(v)ehicle (duplicate) (give/take) [playerid/name]");
  58402. }
  58403. else if (!IsPlayerConnected(targetid))
  58404. {
  58405. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  58406. }
  58407. else if (!IsPlayerLoggedIn(targetid))
  58408. {
  58409. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  58410. }
  58411. else if (targetid == playerid)
  58412. {
  58413. return SendErrorMessage(playerid, "You can't use this command on yourself.");
  58414. }
  58415. else
  58416. {
  58417. if (!strcmp(param, "give", true))
  58418. {
  58419. if (!IsSufficientSpace(targetid, "Car Key"))
  58420. {
  58421. return SendErrorMessage(playerid, "That player has no more room in their inventory.");
  58422. }
  58423. else if (PlayerHasKeys(targetid, vehicle))
  58424. {
  58425. return SendErrorMessage(playerid, "That player already has keys for this vehicle.");
  58426. }
  58427. else
  58428. {
  58429. AddItemToInventory(targetid, "Car Key", Vehicles[vehicle][vID]);
  58430. ShowActionBubble(playerid, "* %s passes %s a duplicate key.", ReturnNameEx(playerid), ReturnNameEx(targetid));
  58431. SendInfoMessage(playerid, "You have made %s a duplicate key for this %s.", ReturnNameEx(targetid), GetVehicleModelName(Vehicles[vehicle][vModel]));
  58432. SendInfoMessage(targetid, "%s has given you a key for their %s.", ReturnNameEx(playerid), GetVehicleModelName(Vehicles[vehicle][vModel]));
  58433. }
  58434. }
  58435. else if (!strcmp(param, "take", true))
  58436. {
  58437. new item = GetInventoryItemID(targetid, "Car Key", Vehicles[vehicle][vID]);
  58438. if (item == INVALID_ID)
  58439. {
  58440. return SendErrorMessage(playerid, "That player doesn't have keys for this vehicle.");
  58441. }
  58442. else
  58443. {
  58444. RemoveItemFromInventory(targetid, item);
  58445. ShowActionBubble(playerid, "* %s takes their duplicate keys from %s.", ReturnNameEx(playerid), ReturnNameEx(targetid));
  58446. SendInfoMessage(playerid, "You have taken %s's duplicate key for your %s.", ReturnNameEx(targetid), GetVehicleModelName(Vehicles[vehicle][vModel]));
  58447. SendInfoMessage(targetid, "%s has taken away your key for their %s.", ReturnNameEx(playerid), GetVehicleModelName(Vehicles[vehicle][vModel]));
  58448. }
  58449. }
  58450. }
  58451. }
  58452. }
  58453. return 1;
  58454. }
  58455. CMD:set(playerid, params[])
  58456. {
  58457. new house = Players[playerid][pConfirmBackdoor];
  58458. if (!IsValidHouseID(house) || !IsHouseOwner(playerid, house))
  58459. {
  58460. Players[playerid][pConfirmBackdoor] = INVALID_ID;
  58461. return 1;
  58462. }
  58463. if (Players[playerid][pBackdoorType] == 1)
  58464. {
  58465. if (!IsPlayerNearPoint(playerid, 30.0, Houses[house][hSpawn][0], Houses[house][hSpawn][1], Houses[house][hSpawn][2], Houses[house][hExterior], Houses[house][hExteriorWorld]))
  58466. {
  58467. return SendErrorMessage(playerid, "You need to be in at least 30 meters of the main entrance.");
  58468. }
  58469. else if (GetClosestHouse(playerid) == house)
  58470. {
  58471. return SendErrorMessage(playerid, "You need to be away from the main entrance.");
  58472. }
  58473. else if (GetClosestHouse(playerid) != INVALID_ID)
  58474. {
  58475. return SendErrorMessage(playerid, "You can't place the entrance here.");
  58476. }
  58477. else
  58478. {
  58479. GetPlayerPos(playerid, Houses[house][hBackdoor][0], Houses[house][hBackdoor][1], Houses[house][hBackdoor][2]);
  58480. UpdateHouse(house);
  58481. SaveHouse(house);
  58482. SendInfoMessage(playerid, "You have adjusted the entrance point for your backdoor.");
  58483. }
  58484. }
  58485. else if (Players[playerid][pBackdoorType] == 2)
  58486. {
  58487. if (GetCurrentHouse(playerid) != house)
  58488. {
  58489. return SendErrorMessage(playerid, "You need to be inside your house to set the exit.");
  58490. }
  58491. else
  58492. {
  58493. GetPlayerPos(playerid, Houses[house][hBackdoorInt][0], Houses[house][hBackdoorInt][1], Houses[house][hBackdoorInt][2]);
  58494. UpdateHouse(house);
  58495. SaveHouse(house);
  58496. SendInfoMessage(playerid, "You have adjusted the exit point for your backdoor.");
  58497. }
  58498. }
  58499. Players[playerid][pConfirmBackdoor] = INVALID_ID;
  58500. Players[playerid][pBackdoorType] = 0;
  58501. return 1;
  58502. }
  58503. CMD:getip(playerid, params[])
  58504. {
  58505. new targetid;
  58506. if (Players[playerid][pAdmin] < 4)
  58507. {
  58508. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  58509. }
  58510. else if (sscanf(params, "u", targetid))
  58511. {
  58512. return SendSyntaxMessage(playerid, "/getip [playerid/name]");
  58513. }
  58514. else if (!IsPlayerConnected(targetid))
  58515. {
  58516. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  58517. }
  58518. else
  58519. {
  58520. SendInfoMessage(playerid, "%s's IP address is: %s.", ReturnNameEx(targetid, 0), ReturnIP(targetid));
  58521. }
  58522. return 1;
  58523. }
  58524. CMD:aliases(playerid, params[])
  58525. {
  58526. new ip[16];
  58527. if (Players[playerid][pAdmin] < 2)
  58528. {
  58529. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  58530. }
  58531. else if (sscanf(params, "s[16]", ip))
  58532. {
  58533. return SendSyntaxMessage(playerid, "/aliases (IP address)");
  58534. }
  58535. else if (!IsValidIP(ip))
  58536. {
  58537. return SendErrorMessage(playerid, "You have specified an invalid IP format.");
  58538. }
  58539. else
  58540. {
  58541. format(gExecute, sizeof(gExecute), "SELECT Username, LoginDate FROM rp_accounts WHERE IP = '%s'", mysql_escaped(ip));
  58542. mysql_tquery(gConnection, gExecute, "OnPlayerListAliases", "is", playerid, ip);
  58543. }
  58544. return 1;
  58545. }
  58546. CMD:getgpci(playerid, params[])
  58547. {
  58548. new targetid;
  58549. if (Players[playerid][pAdmin] < 3)
  58550. {
  58551. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  58552. }
  58553. else if (sscanf(params, "u", targetid))
  58554. {
  58555. return SendSyntaxMessage(playerid, "/getgpci [playerid/name]");
  58556. }
  58557. else if (!IsPlayerConnected(targetid))
  58558. {
  58559. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  58560. }
  58561. else
  58562. {
  58563. //SendInfoMessage(playerid, "%s's GPCI is: %s", ReturnNameEx(targetid, 0), ReturnGPCI(targetid));
  58564. format(gExecute, sizeof(gExecute), "SELECT Username, LoginDate FROM rp_accounts WHERE GPCI = '%s'", mysql_escaped(Players[targetid][pGPCI]));
  58565. mysql_tquery(gConnection, gExecute, "OnPlayerListGPCI", "is", playerid, ReturnGPCI(targetid));
  58566. }
  58567. return 1;
  58568. }
  58569. CMD:addnos(playerid, params[])
  58570. {
  58571. new vehicleid = GetPlayerVehicleID(playerid);
  58572. if (Players[playerid][pAdmin] < 3)
  58573. {
  58574. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  58575. }
  58576. else if (!IsValidNOSVehicle(vehicleid))
  58577. {
  58578. return SendErrorMessage(playerid, "You need to be in a NOS compatible vehicle.");
  58579. }
  58580. else
  58581. {
  58582. new vehicle = GetVehicleID(vehicleid);
  58583. AddVehicleComponent(vehicleid, 1010);
  58584. if (vehicle != INVALID_ID)
  58585. {
  58586. Vehicles[vehicle][vMods][5] = 1010;
  58587. SaveVehicle(vehicle);
  58588. }
  58589. SendInfoMessage(playerid, "You have added 10x Nitrous to this vehicle.");
  58590. }
  58591. return 1;
  58592. }
  58593. CMD:shakehand(playerid, params[])
  58594. {
  58595. new targetid, type;
  58596. if (sscanf(params, "ui", targetid, type))
  58597. {
  58598. return SendSyntaxMessage(playerid, "/shakehand [playerid/name] [1-7]");
  58599. }
  58600. else if (!IsPlayerConnected(targetid))
  58601. {
  58602. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  58603. }
  58604. else if (IsPlayerNPC(targetid))
  58605. {
  58606. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  58607. }
  58608. else if (targetid == playerid)
  58609. {
  58610. return SendErrorMessage(playerid, "You can't shake your own hand.");
  58611. }
  58612. else if (!IsPlayerInRangeOfPlayer(playerid, targetid))
  58613. {
  58614. return SendErrorMessage(playerid, "The specified target is not near you.");
  58615. }
  58616. else if (!(1 <= type <= 7))
  58617. {
  58618. return SendErrorMessage(playerid, "You have specified an invalid type.");
  58619. }
  58620. else
  58621. {
  58622. Players[targetid][pShakeOffer] = playerid;
  58623. Players[targetid][pShakeType] = type;
  58624. SendInfoMessage(targetid, "%s has offered to shake your hand - use /acceptgreet to accept.", ReturnNameEx(playerid));
  58625. SendInfoMessage(playerid, "You have offered %s to shake your hand.", ReturnNameEx(targetid));
  58626. }
  58627. return 1;
  58628. }
  58629. CMD:acceptgreet(playerid, params[])
  58630. {
  58631. if (IsPlayerConnected(Players[playerid][pShakeOffer]))
  58632. {
  58633. switch (Players[playerid][pShakeType])
  58634. {
  58635. case 1:
  58636. {
  58637. ApplyAnimation(playerid, "GANGS", "hndshkaa", 4.1, 0, 0, 0, 0, 0, 1);
  58638. ApplyAnimation(Players[playerid][pShakeOffer], "GANGS", "hndshkaa", 4.1, 0, 0, 0, 0, 0, 1);
  58639. }
  58640. case 2:
  58641. {
  58642. ApplyAnimation(playerid, "GANGS", "hndshkba", 4.1, 0, 0, 0, 0, 0, 1);
  58643. ApplyAnimation(Players[playerid][pShakeOffer], "GANGS", "hndshkba", 4.1, 0, 0, 0, 0, 0, 1);
  58644. }
  58645. case 3:
  58646. {
  58647. ApplyAnimation(playerid, "GANGS", "hndshkda", 4.1, 0, 0, 0, 0, 0, 1);
  58648. ApplyAnimation(Players[playerid][pShakeOffer], "GANGS", "hndshkda", 4.1, 0, 0, 0, 0, 0, 1);
  58649. }
  58650. case 4:
  58651. {
  58652. ApplyAnimation(playerid, "GANGS", "hndshkea", 4.1, 0, 0, 0, 0, 0, 1);
  58653. ApplyAnimation(Players[playerid][pShakeOffer], "GANGS", "hndshkea", 4.1, 0, 0, 0, 0, 0, 1);
  58654. }
  58655. case 5:
  58656. {
  58657. ApplyAnimation(playerid, "GANGS", "hndshkfa", 4.1, 0, 0, 0, 0, 0, 1);
  58658. ApplyAnimation(Players[playerid][pShakeOffer], "GANGS", "hndshkfa", 4.1, 0, 0, 0, 0, 0, 1);
  58659. }
  58660. case 6:
  58661. {
  58662. ApplyAnimation(playerid, "GANGS", "prtial_hndshk_biz_01", 4.1, 0, 0, 0, 0, 0, 1);
  58663. ApplyAnimation(Players[playerid][pShakeOffer], "GANGS", "prtial_hndshk_biz_01", 4.1, 0, 0, 0, 0, 0, 1);
  58664. }
  58665. case 7:
  58666. {
  58667. ApplyAnimation(playerid, "KISSING", "Playa_Kiss_02", 4.1, 0, 0, 0, 0, 0, 1);
  58668. ApplyAnimation(Players[playerid][pShakeOffer], "KISSING", "Playa_Kiss_02", 4.1, 0, 0, 0, 0, 0, 1);
  58669. /*
  58670. case 1: PlayAnimation(playerid, "KISSING", "Grlfrd_Kiss_01", 4.1, 0, 0, 0, 0, 0, 1);
  58671. case 2: PlayAnimation(playerid, "KISSING", "Grlfrd_Kiss_02", 4.1, 0, 0, 0, 0, 0, 1);
  58672. case 3: PlayAnimation(playerid, "KISSING", "Grlfrd_Kiss_03", 4.1, 0, 0, 0, 0, 0, 1);
  58673. case 4: PlayAnimation(playerid, "KISSING", "Playa_Kiss_01", 4.1, 0, 0, 0, 0, 0, 1);
  58674. case 5: PlayAnimation(playerid, "KISSING", "Playa_Kiss_02", 4.1, 0, 0, 0, 0, 0, 1);
  58675. case 6: PlayAnimation(playerid, "KISSING", "Playa_Kiss_03", 4.1, 0, 0, 0, 0, 0, 1);
  58676. */
  58677. }
  58678. }
  58679. SetPlayerToFacePlayer(playerid, Players[playerid][pShakeOffer]);
  58680. SetPlayerToFacePlayer(Players[playerid][pShakeOffer], playerid);
  58681. SendInfoMessage(playerid, "You have accepted %s's handshake offer.", ReturnNameEx(Players[playerid][pShakeOffer]));
  58682. SendInfoMessage(Players[playerid][pShakeOffer], "%s has accepted your handshake offer.", ReturnNameEx(playerid));
  58683. Players[playerid][pShakeOffer] = INVALID_PLAYER_ID;
  58684. }
  58685. return 1;
  58686. }
  58687. /*CMD:wt(playerid, params[])
  58688. {
  58689. if (!Players[playerid][pChannel])
  58690. {
  58691. return SendErrorMessage(playerid, "You are not broadcasting over any frequency.");
  58692. }
  58693. else if (isnull(params))
  58694. {
  58695. return SendSyntaxMessage(playerid, "/r (walkie talkie)");
  58696. }
  58697. else
  58698. {
  58699. foreach (new i : Player)
  58700. {
  58701. if (Players[i][pChannel] == Players[playerid][pChannel])
  58702. {
  58703. SendFormatMessage(i, COLOR_WALKIETALKIE, "** (Channel %i) %s: %s **", Players[playerid][pChannel], ReturnNameEx(playerid), params);
  58704. }
  58705. }
  58706. ShowFormatBubble(playerid, COLOR_LIGHTGREY, "[Radio] %s says: %s", ReturnNameEx(playerid), params);
  58707. //ShowActionBubble(playerid, "* %s speaks over their walkie talkie.", ReturnNameEx(playerid));
  58708. }
  58709. return 1;
  58710. }
  58711. */
  58712. /*forward OnFakeLicense(playerid);
  58713. public OnFakeLicense(playerid)
  58714. {
  58715. if(!IsPlayerInRangeOfPoint(playerid, 5.0, 0, 0, 0))
  58716. return SendClientMessage(playerid, COLOR_GREY, "You're not near the license creation place so you didn't recieve a fake license.");
  58717. SendClientMessage(playerid, COLOR_GREY, "You've been given a fake ID (/fakelicense /givefakelicense).");
  58718. Players[playerid][pFakelicense] = true;
  58719. return 1;
  58720. }
  58721. CMD:makelicense(playerid, params[])
  58722. {
  58723. if(!IsPlayerInRangeOfPoint(playerid, 5.0, 0, 0, 0))
  58724. return SendClientMessage(playerid, COLOR_GREY, "You're not near the license creation place.");
  58725. if(Players[playerid][pFakelicense] == true)
  58726. return SendClientMessage(playerid, COLOR_GREY, "You already have a fake license.");
  58727. SetTimerEx("OnFakeLicense", 30000, false, "i", playerid); // 30 seconds
  58728. return 1;
  58729. }
  58730. CMD:givefakelicense(playerid, params[])
  58731. {
  58732. new target;
  58733. if(sscanf(params, "i", target))
  58734. return SendClientMessage(playerid, COLOR_GREY, "USAGE: {FFFFFF}/givefakelicense [ID]");
  58735. if(Players[playerid][pFakelicense] == false)
  58736. return SendClientMessage(playerid, COLOR_GREY, "You do not have a fake license.");
  58737. if(Players[target][pFakelicense] == true)
  58738. return SendClientMessage(playerid, COLOR_GREY, "This player already has a fake license.");
  58739. SendClientMessage(playerid, COLOR_GREY, "You've given away a fake license.");
  58740. SendClientMessage(target, COLOR_GREY, "You've been given a fake license.");
  58741. Players[playerid][pFakelicense] = false;
  58742. Players[target][pFakelicense] = true;
  58743. return 1;
  58744. }
  58745. CMD:fakelicense(playerid, params[])
  58746. {
  58747. new target, name[MAX_PLAYER_NAME + 1], driverslicense, gunlicense, cdl, pilots;
  58748. if(sscanf(params, "i s[24] i i i i", target, name, driverslicense, cdl, pilots))
  58749. return SendClientMessage(playerid, COLOR_GREY, "USAGE: {FFFFFF}/fakelicense [ID] [Fake Name] [Drivers License] [CDL License] [Gun License]");
  58750. if(Players[playerid][pFakelicense] == false)
  58751. return SendClientMessage(playerid, COLOR_GREY, "You don't have a fake license.");
  58752. SendFormatMessage(target, COLOR_YELLOW, "______STATE OF SAN ANDREAS______");
  58753. SendFormatMessage(target, COLOR_YELLOW, "Name: %s", name);
  58754. SendFormatMessage(target, COLOR_YELLOW, "Drivers License: %s", (driverslicense) ? ("Yes") : ("No"));
  58755. SendFormatMessage(target, COLOR_YELLOW, "Pilot License: %s", (pilots) ? ("Yes") : ("No"));
  58756. SendFormatMessage(target, COLOR_YELLOW, "CDL License: %s", (cdl) ? ("Yes") : ("No"));
  58757. SendFormatMessage(target, COLOR_YELLOW, "Gun License: %s", (gunlicense) ? ("Yes") : ("No"));
  58758. return 1;
  58759. }*/
  58760. CMD:mostplayers(playerid, params[])
  58761. {
  58762. Dialog_Show(playerid, PlayerRecord, DIALOG_STYLE_MSGBOX, "{FFFFFF}Player Record", "The most players online was %i.\nThis record was achieved on %s.", "Close", "", Server[PlayerRecord], Server[RecordDate]);
  58763. return 1;
  58764. }
  58765. CMD:givenamechanges(playerid, params[])
  58766. {
  58767. new targetid, amount;
  58768. if (Players[playerid][pAdmin] < 5)
  58769. {
  58770. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  58771. }
  58772. else if (sscanf(params, "ui", targetid, amount))
  58773. {
  58774. return SendSyntaxMessage(playerid, "/givenamechanges [playerid/name] (amount)");
  58775. }
  58776. else if (!IsPlayerConnected(targetid))
  58777. {
  58778. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  58779. }
  58780. else if (!IsPlayerLoggedIn(targetid))
  58781. {
  58782. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  58783. }
  58784. else
  58785. {
  58786. Players[targetid][pNameChanges] = Players[targetid][pNameChanges] + amount;
  58787. SendInfoMessage(targetid, "%s has given you %i name changes. You can now use /changename to change it.", ReturnNameEx(playerid), amount);
  58788. SendAdminMessage(COLOR_RED, "Admin: %s has given %i name changes to %s.", ReturnNameEx(playerid), amount, ReturnNameEx(targetid));
  58789. }
  58790. return 1;
  58791. }
  58792. CMD:changename(playerid, params[])
  58793. {
  58794. if (isnull(params))
  58795. {
  58796. return SendSyntaxMessage(playerid, "/changename (new name) - You have %i namechanges left", Players[playerid][pNameChanges]);
  58797. }
  58798. else if (!Players[playerid][pNameChanges])
  58799. {
  58800. return SendErrorMessage(playerid, "You don't have any namechanges left.");
  58801. }
  58802. else if (strlen(params) > 24)
  58803. {
  58804. return SendErrorMessage(playerid, "Your name needs to be less than 24 characters.");
  58805. }
  58806. else if (!IsRoleplayName(params))
  58807. {
  58808. return SendErrorMessage(playerid, "The specified name doesn't comply with roleplay standards.");
  58809. }
  58810. else
  58811. {
  58812. format(gExecute, sizeof(gExecute), "SELECT ID FROM rp_accounts WHERE Username = '%s'", mysql_escaped(params));
  58813. mysql_tquery(gConnection, gExecute, "OnPlayerRequestNameChange", "is", playerid, params);
  58814. }
  58815. return 1;
  58816. }
  58817. CMD:approvename(playerid, params[])
  58818. {
  58819. new targetid;
  58820. if (Players[playerid][pAdmin] < 3)
  58821. {
  58822. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  58823. }
  58824. else if (sscanf(params, "u", targetid))
  58825. {
  58826. return SendSyntaxMessage(playerid, "/approvename [playerid/name]");
  58827. }
  58828. else if (!IsPlayerConnected(targetid))
  58829. {
  58830. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  58831. }
  58832. else if (IsPlayerNPC(targetid))
  58833. {
  58834. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  58835. }
  58836. else if (!IsPlayerLoggedIn(targetid))
  58837. {
  58838. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  58839. }
  58840. else if (!strcmp(Players[targetid][pNameChange], "Not Specified"))
  58841. {
  58842. return SendErrorMessage(playerid, "The specified target didn't request a name change.");
  58843. }
  58844. else
  58845. {
  58846. Players[targetid][pNameChanges]--;
  58847. SendAdminMessage(COLOR_RED, "Admin: %s has accepted %s's name change to %s.", ReturnNameEx(playerid), ReturnNameEx(targetid), Players[targetid][pNameChange]);
  58848. SendInfoMessage(targetid, "%s has accepted the name change. You have %i name changes remaining.", ReturnNameEx(playerid), Players[targetid][pNameChanges]);
  58849. ChangeName(targetid, Players[targetid][pNameChange]);
  58850. ResetNameChange(targetid);
  58851. }
  58852. return 1;
  58853. }
  58854. CMD:denyname(playerid, params[])
  58855. {
  58856. new targetid;
  58857. if (Players[playerid][pAdmin] < 3)
  58858. {
  58859. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  58860. }
  58861. else if (sscanf(params, "u", targetid))
  58862. {
  58863. return SendSyntaxMessage(playerid, "/denyname [playerid/name]");
  58864. }
  58865. else if (!IsPlayerConnected(targetid))
  58866. {
  58867. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  58868. }
  58869. else if (IsPlayerNPC(targetid))
  58870. {
  58871. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  58872. }
  58873. else if (!IsPlayerLoggedIn(targetid))
  58874. {
  58875. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  58876. }
  58877. else if (!strcmp(Players[targetid][pNameChange], "Not Specified"))
  58878. {
  58879. return SendErrorMessage(playerid, "The specified target didn't request a name change.");
  58880. }
  58881. else
  58882. {
  58883. SendAdminMessage(COLOR_RED, "Admin: %s has declined %s's name change to %s.", ReturnNameEx(playerid), ReturnNameEx(targetid), Players[targetid][pNameChange]);
  58884. SendInfoMessage(targetid, "%s has declined the name change request.", ReturnNameEx(playerid));
  58885. ResetNameChange(targetid);
  58886. }
  58887. return 1;
  58888. }
  58889. CMD:listnamechanges(playerid, params[])
  58890. {
  58891. if (Players[playerid][pAdmin] < 4)
  58892. {
  58893. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  58894. }
  58895. else
  58896. {
  58897. SendClientMessage(playerid, COLOR_YELLOW, "Pending Name Changes:");
  58898. foreach (new i : Player)
  58899. {
  58900. if (strcmp(Players[i][pNameChange], "Not Specified") != 0)
  58901. {
  58902. SendFormatMessage(playerid, COLOR_WHITE, "* %s (ID: %i) (Requested Name: %s)", ReturnNameEx(i), i, Players[i][pNameChange]);
  58903. }
  58904. }
  58905. }
  58906. return 1;
  58907. }
  58908. CMD:acceptad(playerid, params[])
  58909. {
  58910. new targetid;
  58911. if(Players[playerid][pAdmin] < 1 && Players[playerid][pSupporter] < 1)
  58912. {
  58913. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  58914. }
  58915. if(sscanf(params, "u", targetid))
  58916. {
  58917. return SendSyntaxMessage(playerid, "/acceptad (player)");
  58918. }
  58919. if(targetid == INVALID_PLAYER_ID)
  58920. {
  58921. return SendErrorMessage(playerid, "Invalid player specified.");
  58922. }
  58923. if(!IsAdvertisementActive(targetid))
  58924. {
  58925. return SendErrorMessage(playerid, "This player doesn't have an advertisement to accept.");
  58926. }
  58927. SendFormatMessageToAll(COLOR_GREEN, "(Advertisement) %s - number: %i", GetPackedString(gAdvertisement[targetid]), Players[targetid][pPhone]);
  58928. SendAdminMessage(COLOR_RED, "Admin: %s has accepted %s's advertisement.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0));
  58929. ResetAdvertisement(targetid);
  58930. return 1;
  58931. }
  58932. CMD:denyad(playerid, params[])
  58933. {
  58934. new targetid;
  58935. if(Players[playerid][pAdmin] < 1 && Players[playerid][pSupporter] < 1)
  58936. {
  58937. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  58938. }
  58939. if(sscanf(params, "u", targetid))
  58940. {
  58941. return SendSyntaxMessage(playerid, "/denyad (player)");
  58942. }
  58943. if(targetid == INVALID_PLAYER_ID)
  58944. {
  58945. return SendErrorMessage(playerid, "Invalid player specified.");
  58946. }
  58947. if(!IsAdvertisementActive(targetid))
  58948. {
  58949. return SendErrorMessage(playerid, "This player doesn't have an advertisement to deny.");
  58950. }
  58951. SendInfoMessage(targetid, "Your advertisement has been denied by admin %s.", ReturnNameEx(playerid, 0));
  58952. SendAdminMessage(COLOR_RED, "Admin: %s has denied %s's advertisement.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0));
  58953. ResetAdvertisement(targetid);
  58954. return 1;
  58955. }
  58956. CMD:listads(playerid, params[])
  58957. {
  58958. if(Players[playerid][pAdmin] < 1 && Players[playerid][pSupporter] < 1)
  58959. {
  58960. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  58961. }
  58962. SendClientMessage(playerid, COLOR_GREEN, "|________________ Pending Ads ________________|");
  58963. foreach(new i : Player)
  58964. {
  58965. if(IsAdvertisementActive(i))
  58966. {
  58967. SendInfoMessage(playerid, "[ID: %i] %s's advertisement: %s", i, ReturnNameEx(i, 0), GetPackedString(gAdvertisement[i]));
  58968. }
  58969. }
  58970. SendClientMessage(playerid, COLOR_GREEN, "|____________________________________________|");
  58971. SendSyntaxMessage(playerid, "/acceptad (id) or /denyad (id)");
  58972. return 1;
  58973. }
  58974. CMD:spawntype(playerid, params[])
  58975. {
  58976. new type, slot, count, success;
  58977. if(sscanf(params, "iI(-1)", type, slot))
  58978. {
  58979. SendSyntaxMessage(playerid, "/spawntype (type)");
  58980. SendClientMessage(playerid, COLOR_LIGHTGREY, "(0): Last Position, (1): Class Selection, (2): House, (3): Company, (4): Faction");
  58981. return 1;
  58982. }
  58983. switch(type)
  58984. {
  58985. case 0:
  58986. {
  58987. Players[playerid][pSpawnType] = SPAWN_TYPE_LAST;
  58988. SendInfoMessage(playerid, " You will now spawn at your last position.");
  58989. }
  58990. case 1:
  58991. {
  58992. Players[playerid][pSpawnType] = SPAWN_TYPE_AIRPORT;
  58993. SendInfoMessage(playerid, " You will now be using the class selection as your spawn points.");
  58994. }
  58995. case 2:
  58996. {
  58997. if(slot == -1)
  58998. {
  58999. SendClientMessage(playerid, COLOR_LIGHTGREY, "Your houses:");
  59000. }
  59001. for(new i = 0; i < MAX_HOUSES; i ++)
  59002. {
  59003. if(IsValidHouseID(i) && IsHouseOwner(playerid, i))
  59004. {
  59005. if(slot == -1)
  59006. {
  59007. SendFormatMessage(playerid, COLOR_WHITE, "[Slot %i] Address: %s | Location: %s | Value: %s", ++count, Houses[i][hAddress], GetZoneName(Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2]), FormatNumber(Houses[i][hValue]));
  59008. }
  59009. else if(++count == slot)
  59010. {
  59011. Players[playerid][pSpawnType] = SPAWN_TYPE_HOUSE;
  59012. Players[playerid][pSpawnExtra] = Houses[i][hID];
  59013. SendInfoMessage(playerid, "You will now spawn at %s upon login.", Houses[i][hAddress]);
  59014. success = true;
  59015. break;
  59016. }
  59017. }
  59018. }
  59019. if(slot == -1)
  59020. {
  59021. SendClientMessage(playerid, COLOR_LIGHTGREY, "|______________________________________|");
  59022. SendSyntaxMessage(playerid, "/spawntype (type) (slot)");
  59023. }
  59024. else if(!success)
  59025. {
  59026. SendErrorMessage(playerid, "Invalid slot.");
  59027. }
  59028. }
  59029. case 3:
  59030. {
  59031. if(slot == -1)
  59032. {
  59033. SendClientMessage(playerid, COLOR_GREEN, "|_____________ Your Companies _____________|");
  59034. }
  59035. for(new i = 0; i < MAX_COMPANIES; i ++)
  59036. {
  59037. if(IsValidCompanyID(i) && IsCompanyOwner(playerid, i))
  59038. {
  59039. if(slot == -1)
  59040. {
  59041. SendFormatMessage(playerid, COLOR_WHITE, "[Slot %i] Name: %s | Location: %s | Type: %s", ++count, Companies[i][cName], GetZoneName(Companies[i][cSpawn][0], Companies[i][cSpawn][1], Companies[i][cSpawn][2]), GetCompanyType(Companies[i][cType]));
  59042. }
  59043. else if(++count == slot)
  59044. {
  59045. Players[playerid][pSpawnType] = SPAWN_TYPE_COMPANY;
  59046. Players[playerid][pSpawnExtra] = Companies[i][cID];
  59047. SendInfoMessage(playerid, "You will now spawn at %s upon login.", Companies[i][cName]);
  59048. success = true;
  59049. break;
  59050. }
  59051. }
  59052. }
  59053. if(slot == -1)
  59054. {
  59055. SendClientMessage(playerid, COLOR_GREEN, "|_________________________________________|");
  59056. SendSyntaxMessage(playerid, "/spawntype (type) (slot)");
  59057. }
  59058. else if(!success)
  59059. {
  59060. SendErrorMessage(playerid, "Invalid slot.");
  59061. }
  59062. }
  59063. case 4:
  59064. {
  59065. if(Players[playerid][pFaction] == -1)
  59066. {
  59067. return SendErrorMessage(playerid, "You are not apart of a faction.");
  59068. }
  59069. if(Factions[Players[playerid][pFaction]][fcSpawnX] == 0.0 && Factions[Players[playerid][pFaction]][fcSpawnY] == 0.0 && Factions[Players[playerid][pFaction]][fcSpawnZ] == 0.0)
  59070. {
  59071. return SendErrorMessage(playerid, "Your faction's spawn is not set up currently. Ask an admin to set it up.");
  59072. }
  59073. Players[playerid][pSpawnType] = SPAWN_TYPE_FACTION;
  59074. SendInfoMessage(playerid, "You will now spawn at your faction's headquarters upon login.");
  59075. }
  59076. default:
  59077. {
  59078. SendErrorMessage(playerid, "Invalid type.");
  59079. }
  59080. }
  59081. return 1;
  59082. }
  59083. GetServerCarID(vehicleid)
  59084. {
  59085. for(new i=0; i < MAX_CARS;i++)
  59086. {
  59087. if(Vehicles[i][vVehicle] == vehicleid)
  59088. {
  59089. return i;
  59090. }
  59091. }
  59092. return -1;
  59093. }
  59094. CMD:adespawncar(playerid, params[])
  59095. {
  59096. new targ;
  59097. if(Players[playerid][pAdmin] > 1)
  59098. {
  59099. if(sscanf(params, "i", targ)) return SendSyntaxMessage(playerid, "/adespawncar [carid]");
  59100. new listitem = GetServerCarID(targ);
  59101. if(listitem == -1) return SendErrorMessage(playerid, "Invalid vehicle id");
  59102. if (!IsValidVehicleID(listitem) || Vehicles[listitem][vDespawned]) {
  59103. return 0;
  59104. }
  59105. if (Vehicles[listitem][vImpound] > 0) {
  59106. return SendErrorMessage(playerid, "You cannot despawn an impounded vehicle.");
  59107. }
  59108. if (GetVehicleDriver(Vehicles[listitem][vVehicle]) != INVALID_PLAYER_ID) {
  59109. return SendErrorMessage(playerid, "The vehicle is occupied and you may not despawn it.");
  59110. }
  59111. for (new i = 1; i < MAX_VEHICLES; i ++) {
  59112. if (GetVehicleModel(i) == 525 && GetVehicleTrailer(i) == Vehicles[listitem][vVehicle]) {
  59113. return SendErrorMessage(playerid, "The vehicle is currently being towed.");
  59114. }
  59115. }
  59116. ClearVehicleObjects(Vehicles[listitem][vVehicle]);
  59117. DestroyVehicleEx(Vehicles[listitem][vVehicle]);
  59118. SendInfoMessage(playerid, "You have despawned %s (%s; id: %i).", GetVehicleModelName(Vehicles[listitem][vModel]), Vehicles[listitem][vPlate], listitem);
  59119. Vehicles[listitem][vVehicle] = INVALID_VEHICLE_ID;
  59120. Vehicles[listitem][vDespawned] = 1;
  59121. SaveVehicle(listitem);
  59122. SendAdminMessage(COLOR_RED, "Admin %s has despawned %s (%s; id: %i).", ReturnNameEx(playerid, 0), GetVehicleModelName(Vehicles[listitem][vModel]), Vehicles[listitem][vPlate], listitem);
  59123. }
  59124. else SendErrorMessage(playerid, "You are not privileged to use this command.");
  59125. return 1;
  59126. }
  59127. CMD:addownedcar(playerid, params[])
  59128. {
  59129. new targetid, model[24], modelid, color1, color2, vehicle;
  59130. if (Players[playerid][pAdmin] < 4)
  59131. {
  59132. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  59133. }
  59134. else if (sscanf(params, "us[24]I(-1)I(-1)", targetid, model, color1, color2))
  59135. {
  59136. return SendSyntaxMessage(playerid, "/addownedcar [playerid/name] (model) [color 1] [color 2]");
  59137. }
  59138. else if (!IsPlayerConnected(targetid))
  59139. {
  59140. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  59141. }
  59142. else if (IsPlayerNPC(targetid))
  59143. {
  59144. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  59145. }
  59146. else if (!IsPlayerLoggedIn(targetid))
  59147. {
  59148. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  59149. }
  59150. else if (!(modelid = GetVehicleModelFromName(model)))
  59151. {
  59152. return SendErrorMessage(playerid, "The specified model doesn't exist.");
  59153. }
  59154. else if ((color1 != -1) && (color1 < 0 || color1 > 255))
  59155. {
  59156. return SendErrorMessage(playerid, "The first color must be between -1 and 255.");
  59157. }
  59158. else if ((color2 != -1) && (color2 < 0 || color2 > 255))
  59159. {
  59160. return SendErrorMessage(playerid, "The second color must be between -1 and 255.");
  59161. }
  59162. else
  59163. {
  59164. new count = 0;
  59165. for (new i = 0; i < MAX_CARS; i ++)
  59166. {
  59167. if (IsValidVehicleID(i) && IsVehicleOwner(targetid, i) && !Vehicles[i][vDespawned])
  59168. {
  59169. count++;
  59170. }
  59171. }
  59172. if (count > GetVehicleSpawnLimit(targetid))
  59173. {
  59174. return SendErrorMessage(playerid, "This player already has two vehicles spawned.");
  59175. }
  59176. new
  59177. Float:x,
  59178. Float:y,
  59179. Float:z,
  59180. Float:angle;
  59181. GetPlayerPos(targetid, x, y, z);
  59182. GetPlayerFacingAngle(targetid, angle);
  59183. vehicle = AddVehicle(INVALID_ID, modelid, 0, x, y, z, angle, color1, color2, targetid);
  59184. if (vehicle == INVALID_ID)
  59185. {
  59186. return SendErrorMessage(playerid, "There are no available vehicle slots.");
  59187. }
  59188. else
  59189. {
  59190. SendAdminMessage(COLOR_RED, "Admin: %s has spawned a player owned %s for %s.", ReturnNameEx(playerid), GetVehicleModelName(modelid), ReturnNameEx(targetid));
  59191. SendInfoMessage(targetid, "%s has created you a %s. Use /(v)ehicle for more information.", ReturnNameEx(playerid), GetVehicleModelName(modelid));
  59192. }
  59193. }
  59194. return 1;
  59195. }
  59196. CMD:setdonator(playerid, params[])
  59197. {
  59198. new targetid, level;
  59199. if (Players[playerid][pAdmin] < 6)
  59200. {
  59201. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  59202. }
  59203. else if (sscanf(params, "ui", targetid, level))
  59204. {
  59205. return SendSyntaxMessage(playerid, "/setdonator [playerid/name] (level)");
  59206. }
  59207. else if (!IsPlayerConnected(targetid))
  59208. {
  59209. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  59210. }
  59211. else if (IsPlayerNPC(targetid))
  59212. {
  59213. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  59214. }
  59215. else if (!IsPlayerLoggedIn(targetid))
  59216. {
  59217. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  59218. }
  59219. else if (level < 0 || level > 4)
  59220. {
  59221. return SendErrorMessage(playerid, "The specified level is invalid.");
  59222. }
  59223. else
  59224. {
  59225. Players[targetid][pDonator] = level;
  59226. Players[targetid][pExpiryDate] = gettime() + 2592000;
  59227. SendAdminMessage(COLOR_RED, "Admin: %s has set %s's donator level to %s (%i).", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), GetDonatorLevel(level), level);
  59228. if (level > 0)
  59229. SendInfoMessage(targetid, "%s has set your donator package to %s. It will expire in 30 days.", ReturnNameEx(playerid, 0), GetDonatorLevel(level));
  59230. else
  59231. SendInfoMessage(targetid, "%s has revoked your donator package.", ReturnNameEx(playerid, 0));
  59232. }
  59233. return 1;
  59234. }
  59235. CMD:donatorinfo(playerid, params[])
  59236. {
  59237. if (!Players[playerid][pDonator])
  59238. {
  59239. return SendErrorMessage(playerid, "You don't have an active donator subscription.");
  59240. }
  59241. else
  59242. {
  59243. new days = (Players[playerid][pExpiryDate] - gettime()) / 86400;
  59244. if (!days)
  59245. {
  59246. SendInfoMessage(playerid, "Your %s donator package will expire today.", GetDonatorLevel(Players[playerid][pDonator]));
  59247. }
  59248. else
  59249. {
  59250. SendInfoMessage(playerid, "Your %s donator package will expire in %i days.", GetDonatorLevel(Players[playerid][pDonator]), days);
  59251. }
  59252. }
  59253. return 1;
  59254. }
  59255. CMD:setstaff(playerid, params[])
  59256. {
  59257. new targetid, string[128];
  59258. if (Players[playerid][pAdmin] < 5)
  59259. {
  59260. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  59261. }
  59262. else if (sscanf(params, "u", targetid))
  59263. {
  59264. return SendSyntaxMessage(playerid, "/setstaff [playerid/name]");
  59265. }
  59266. else if (!IsPlayerConnected(targetid))
  59267. {
  59268. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  59269. }
  59270. else if (IsPlayerNPC(targetid))
  59271. {
  59272. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  59273. }
  59274. else if (!IsPlayerLoggedIn(targetid))
  59275. {
  59276. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  59277. }
  59278. else
  59279. {
  59280. Players[playerid][pSetStaff] = targetid;
  59281. format(string, sizeof(string), "Type\tStatus\nSupporter Rank\t%s\nFaction Mod\t%s", GetSupporterLevel(Players[targetid][pSupporter]), GetFactionModLevel(Players[targetid][pFactionMod]));
  59282. Dialog_Show(playerid, SetStaff, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Set Staff", string, "Adjust", "Cancel");
  59283. }
  59284. return 1;
  59285. }
  59286. CMD:pickup(playerid, params[])
  59287. {
  59288. new count = PickupNearestItem(playerid);
  59289. if (!count)
  59290. {
  59291. SendErrorMessage(playerid, "There are no items nearby.");
  59292. }
  59293. return 1;
  59294. }
  59295. AddFire(size, Float:x, Float:y, Float:z, Health)
  59296. {
  59297. TotalFires++;
  59298. new ID = TotalFires;
  59299. if(size == 1) // Small
  59300. {
  59301. FireObj[ID] = CreateDynamicObject(3461, x, y, z-2.61, 0, 0, 0.0);
  59302. }
  59303. else if(size == 2) // Medium
  59304. {
  59305. FireObj[ID] = CreateDynamicObject(18692, x, y, z-2.61, 0, 0, 0.0);
  59306. }
  59307. else if(size == 3) // Big
  59308. {
  59309. FireObj[ID] = CreateDynamicObject(18691, x, y, z-2.61, 0, 0, 0.0);
  59310. }
  59311. else if(size == 4)
  59312. {
  59313. FireObj[ID] = CreateDynamicObject(18715, x, y, z-2.61, 0, 0, 0.0); // poison gas
  59314. }
  59315. else if(size == 5)
  59316. {
  59317. FireObj[ID] = CreateDynamicObject(18726, x, y, z-2.61, 0, 0, 0.0); // black smoke
  59318. }
  59319. FirePos[ID][0] = x, FirePos[ID][1] = y, FirePos[ID][2] = z;
  59320. FireHealth[ID] = Health;
  59321. FireHealthMax[ID] = 100;
  59322. }
  59323. CMD:slapcar(playerid, params[])
  59324. {
  59325. new targetid;
  59326. if(!CheckAdmin(playerid, 2)) return SCM(playerid, COLOR_LIGHTRED, "You are not an Admin.");
  59327. if(sscanf(params,"d",targetid)) return SendSyntaxMessage(playerid, "/slapcar [vehicleid]");
  59328. new Float:vX,Float:vY,Float:vZ, vehicleid = targetid;
  59329. GetVehicleVelocity(vehicleid,vX,vY,vZ);
  59330. SetVehicleVelocity(vehicleid,vX,vY,vZ+0.25);
  59331. return 1;
  59332. }
  59333. CMD:createfire(playerid, params[])
  59334. {
  59335. if(!CheckAdmin(playerid, 5)) return SCM(playerid, COLOR_LIGHTRED, "You are not an Admin.");
  59336. if(isnull(params)) return SendSyntaxMessage(playerid, "/createfire [small/medium/big]");
  59337. new Float:FirePos1[3];
  59338. GetPlayerPos(playerid, FirePos1[0], FirePos1[1], FirePos1[2]);
  59339. if(strcmp(params, "small", true) == 1)
  59340. {
  59341. AddFire(1, FirePos1[0], FirePos1[1], FirePos1[2], 100);
  59342. }
  59343. if(strcmp(params, "medium", true) == 1)
  59344. {
  59345. AddFire(2, FirePos1[0], FirePos1[1], FirePos1[2], 250);
  59346. }
  59347. if(strcmp(params, "big", true) == 1)
  59348. {
  59349. AddFire(3, FirePos1[0], FirePos1[1], FirePos1[2], 500);
  59350. }
  59351. return 1;
  59352. }
  59353. CMD:deleteallfire(playerid, params[])
  59354. {
  59355. if(CheckAdmin(playerid, 5))
  59356. {
  59357. DeleteAllFire();
  59358. }
  59359. return 1;
  59360. }
  59361. public VehicleToPoint(Float:radi, vehicleid, Float:x, Float:y, Float:z)
  59362. {
  59363. new Float:oldposx, Float:oldposy, Float:oldposz;
  59364. new Float:tempposx, Float:tempposy, Float:tempposz;
  59365. GetVehiclePos(vehicleid, oldposx, oldposy, oldposz);
  59366. tempposx = (oldposx -x);
  59367. tempposy = (oldposy -y);
  59368. tempposz = (oldposz -z);
  59369. if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
  59370. {
  59371. return 1;
  59372. }
  59373. return 0;
  59374. }
  59375. public HealthDown()
  59376. {
  59377. new i,v,p;
  59378. for(i = 0; i<MaxFire; i++)
  59379. {
  59380. if(IsValidFire(i))
  59381. {
  59382. for(p = 0; p<MAX_PLAYERS; p++)
  59383. {
  59384. if(IsPlayerInRangeOfPoint(p, 1, FirePos[i][0], FirePos[i][1], FirePos[i][2]) && !IsPlayerInAnyVehicle(p))
  59385. {
  59386. new Float:HP;
  59387. GetPlayerHealth(p, HP);
  59388. SetPlayerHealth(p, HP-4);
  59389. }
  59390. }
  59391. for(v = 0; v<MAX_VEHICLES; v++)
  59392. {
  59393. if(VehicleToPoint(2, v, FirePos[i][0], FirePos[i][1], FirePos[i][2]))
  59394. {
  59395. new Float:HP;
  59396. GetVehicleHealth(v, HP);
  59397. SetVehicleHealth(v, HP-30);
  59398. }
  59399. }
  59400. }
  59401. }
  59402. }
  59403. stock UpdateNameTag(playerid, stage)
  59404. {
  59405. new Float: tempHP;
  59406. GetPlayerHealth(playerid, tempHP);
  59407. new maskdetails[256];
  59408. new color;
  59409. new formatcTag[30];
  59410. switch(Players[playerid][pFaction])
  59411. {
  59412. case 0: formatcTag = "{00c0ff}";
  59413. case 1: formatcTag = "{FF6347}";
  59414. default: formatcTag = "{C3C3C3}";
  59415. }
  59416. if(Players[playerid][pDuty]) format(maskdetails, sizeof(maskdetails), "%s%s%s {FFFFFF}(%d)", Players[playerid][pDeathState] ? ("{FF6347}") : (" "), formatcTag, ReturnNameEx(playerid, 0), playerid);
  59417. else format(maskdetails, sizeof(maskdetails), "%s%s {FFFFFF}(%d)", Players[playerid][pDeathState] ? ("{FF6347}") : ("{C3C3C3}"), ReturnNameEx(playerid, 0), playerid);
  59418. if(Players[playerid][pMaskID] > 0)
  59419. {
  59420. format(maskdetails, sizeof(maskdetails), "%s%s[Mask_%d_%d]", Players[playerid][pDeathState] ? ("{FF6347}") : ("{C3C3C3}"), formatcTag, Players[playerid][pMaskID], Players[playerid][pAge]);
  59421. }
  59422. if(Players[playerid][pAdminDuty])
  59423. {
  59424. color = 0xE8AF0EFF >>> 8;
  59425. format(maskdetails, sizeof(maskdetails), "{%06x}%s", color, Players[playerid][pAdminName]);
  59426. }
  59427. if(Players[playerid][pSupporter] > 0 && Players[playerid][pSupporterDuty])
  59428. {
  59429. color = 0xAA333300 >>> 8;
  59430. format(maskdetails, sizeof(maskdetails), "{%06x}%s {FFFFFF}(%d)", color, ReturnNameEx(playerid, 0), playerid);
  59431. }
  59432. if(stage == 1)
  59433. {
  59434. if(IsValidDynamic3DTextLabel(playerNametag[playerid])) DestroyDynamic3DTextLabel(playerNametag[playerid]);
  59435. playerNametag[playerid] = CreateDynamic3DTextLabel(maskdetails, COLOR_WHITE, 0.0, 0.0, 0.10, 20.0, playerid, INVALID_VEHICLE_ID, 1, -1, -1, -1, 20.0);
  59436. }
  59437. else if(stage == 2)
  59438. {
  59439. if(tempHP <= 5.0)
  59440. {
  59441. new AddrPoint[300];
  59442. format(AddrPoint, sizeof(AddrPoint), "{FF6347}%s {FFFFFF}(%d)\n", ReturnNameEx(playerid), playerid);
  59443. UpdateDynamic3DTextLabelText(playerNametag[playerid], COLOR_WHITE, AddrPoint);
  59444. }
  59445. else
  59446. {
  59447. UpdateDynamic3DTextLabelText(playerNametag[playerid], COLOR_WHITE, maskdetails);
  59448. }
  59449. }
  59450. return true;
  59451. }
  59452. Dialog:FurnEditConfirm(playerid, response, listitem, inputtext[])
  59453. {
  59454. if(!response) return ListTexture(playerid);
  59455. EditDynamicObjectEx(playerid, EDIT_TYPE_FURNITURE, Furniture[GetPVarInt(playerid, "FurnID")][fObject], GetPVarInt(playerid, "FurnID"));
  59456. return 1;
  59457. }
  59458. Dialog:ChangeMat(playerid, response, listitem, inputtext[])
  59459. {
  59460. if(!response) return 1;
  59461. if(listitem == 0 || listitem == 1) return ShowColorList(playerid);
  59462. new t = -1;
  59463. for(new x = 0; x < sizeof(MaterialIDs); x++)
  59464. {
  59465. if(strcmp(inputtext, MaterialIDs[x][Name], true) == 0)
  59466. {
  59467. t = x;
  59468. break;
  59469. }
  59470. }
  59471. if(t == -1) return SendClientMessage(playerid, COLOR_RED, "An error has occurred, please try it later! (DEBUG: \"ChangeMatHandler\")");
  59472. FurnitureChange(playerid, GetPVarInt(playerid, "FurnID"), GetPVarInt(playerid, "MatSlot"), t, 1);
  59473. return true;
  59474. }
  59475. Dialog:ChangeColor(playerid, response, listitem, inputtext[])
  59476. {
  59477. if(!response) return 1;
  59478. if(listitem == 0 || listitem == 1) return MaterialRes
  59479. FurnitureChange(playerid, GetPVarInt(playerid, "FurnID"), GetPVarInt(playerid, "MatSlot"), listitem, 2);
  59480. return true;
  59481. }
  59482. ListTexture(playerid)
  59483. {
  59484. new fid = GetPVarInt(playerid, "FurnID");
  59485. new list[256], header[64];
  59486. format(header, sizeof(header), "You are now editing ID: %d.", GetPVarInt(playerid, "FurnID"));
  59487. format(list, sizeof(list), "Index 1: %s\nIndex 2: %s\nIndex 3: %s\n \nClear Textures", Furniture[fid][fMaterial][0] ? ("{FFFF00}In Use") : ("{C3C3C3}Empty"), Furniture[fid][fMaterial][1] ? ("{FFFF00}In Use") : ("{C3C3C3}Empty"), Furniture[fid][fMaterial][2] ? ("{FFFF00}In Use") : ("{C3C3C3}Empty"));
  59488. Dialog_Show(playerid, MaterialHandler, DIALOG_STYLE_LIST, header, list, ">>", "Cancel");
  59489. return 1;
  59490. }
  59491. Dialog:MaterialHandler(playerid, response, listitem, inputtext[])
  59492. {
  59493. if(!response) return 1;
  59494. if(listitem == 4)
  59495. {
  59496. for(new i = 0; i != 3; i ++)
  59497. {
  59498. Furniture[GetPVarInt(playerid, "FurnID")][fMaterial][i] = 0;
  59499. Furniture[GetPVarInt(playerid, "FurnID")][fMatColour][i] = 0;
  59500. SetDynamicObjectMaterial(Furniture[GetPVarInt(playerid, "FurnID")][fObject], i, -1, "none", "none", 0);
  59501. }
  59502. SaveFurniture(GetPVarInt(playerid, "FurnID"));
  59503. }
  59504. SetPVarInt(playerid, "MatSlot", listitem);
  59505. MaterialRes
  59506. //ShowMaterialList(playerid);
  59507. return true;
  59508. }
  59509. Dialog:TextureResources(playerid, response, listitem, inputtext[])
  59510. {
  59511. if(!response) return 1;
  59512. new gstr[2056], gString[256];
  59513. format(gString, sizeof(gString), " << {F3FF02}Select Color\n");
  59514. strcat(gstr, gString);
  59515. for(new i = 0; i < sizeof(MaterialIDs); i++)
  59516. {
  59517. if(strcmp("None", MaterialIDs[i][Resource], true) == 0) continue;
  59518. if(strcmp(inputtext, MaterialIDs[i][Resource], true) == 0)
  59519. {
  59520. strcat(gstr, MaterialIDs[i][Name]);
  59521. strcat(gstr, "\n");
  59522. }
  59523. }
  59524. Dialog_Show(playerid, ChangeMat, DIALOG_STYLE_LIST, "Texture List", gstr, ">>", "Cancel");
  59525. return 1;
  59526. }
  59527. ShowColorList(playerid)
  59528. {
  59529. new list[4056], bigStr[256], gString[256];
  59530. format(gString, sizeof(gString), " << {F3FF02}Select Texture\n");
  59531. strcat(list, gString);
  59532. for(new i = 0; i < sizeof(MaterialColors); i++)
  59533. {
  59534. if(strcmp("none", MaterialColors[i][ColorName], true) == 0) continue;
  59535. format(bigStr, sizeof(bigStr), "%s\n", MaterialColors[i][ColorName]);
  59536. strcat(list, bigStr);
  59537. }
  59538. Dialog_Show(playerid, ChangeColor, DIALOG_STYLE_LIST, "Color List", list, ">>", "Cancel");
  59539. return 1;
  59540. }
  59541. FurnitureChange(playerid, furnid, index, list, status = 1) // 1 for mat, 2 for color
  59542. {
  59543. new model, txd[24], texture[24], color;
  59544. switch(status)
  59545. {
  59546. case 1:
  59547. {
  59548. SendClientMessage(playerid, -1, "Furniture texture has been updated.");
  59549. Furniture[furnid][fMaterial][index] = list;
  59550. SetDynamicObjectMaterial(Furniture[furnid][fObject], index, MaterialIDs[ Furniture[furnid][fMaterial][index] ][ModelID], MaterialIDs[ Furniture[furnid][fMaterial][index] ][TxdName], MaterialIDs[ Furniture[furnid][fMaterial][index] ][TextureName], MaterialColors[ Furniture[furnid][fMatColour][index] ][ColorHex]);
  59551. SaveFurniture(furnid);
  59552. }
  59553. case 2:
  59554. {
  59555. if(Furniture[furnid][fMaterial][index] == 0)
  59556. {
  59557. Furniture[furnid][fMatColour][index] = list;
  59558. SetDynamicObjectMaterial(Furniture[furnid][fObject], index, -1, MaterialIDs[ Furniture[furnid][fMaterial][index] ][TxdName], MaterialIDs[ Furniture[furnid][fMaterial][index] ][TextureName], MaterialColors[ Furniture[furnid][fMatColour][index] ][ColorHex]);
  59559. SaveFurniture(furnid);
  59560. }
  59561. else
  59562. {
  59563. SendClientMessage(playerid, -1, "Furniture color has been updated.");
  59564. Furniture[furnid][fMatColour][index] = list;
  59565. GetDynamicObjectMaterial(Furniture[furnid][fObject], index, model, txd, texture, color);
  59566. SetDynamicObjectMaterial(Furniture[furnid][fObject], index, model, txd, texture, MaterialColors[ Furniture[furnid][fMatColour][index] ][ColorHex]);
  59567. SaveFurniture(furnid);
  59568. }
  59569. }
  59570. }
  59571. return 1;
  59572. }
  59573. stock IsAccountExist(sqlplayersname[], playerid)
  59574. {
  59575. if(IsPlayerNPC(playerid)) return false;
  59576. mysql_format(gConnection, gExecute, sizeof(gExecute), "SELECT ID FROM rp_accounts WHERE Username = '%s' LIMIT 1", sqlplayersname);
  59577. new Cache:result = mysql_query(gConnection, gExecute);
  59578. if(cache_num_rows() > 0)
  59579. {
  59580. new playerID = cache_get_field_content_int(0, "ID");
  59581. cache_delete(result);
  59582. printf("[MySQL] %s(ID %i) has checked for account '%s' and got SQLID %i.", ReturnNameEx(playerid, 0), playerid, sqlplayersname, playerID);
  59583. return playerID;
  59584. }
  59585. else
  59586. {
  59587. cache_delete(result);
  59588. return false;
  59589. }
  59590. }
  59591. stock IsNumeric(const string[])
  59592. {
  59593. for (new i = 0, j = strlen(string); i < j; i++)
  59594. {
  59595. if (string[i] > '9' || string[i] < '0')
  59596. return 0;
  59597. }
  59598. return 1;
  59599. }