comandos.pwn 1.0 MB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018170191702017021170221702317024170251702617027170281702917030170311703217033170341703517036170371703817039170401704117042170431704417045170461704717048170491705017051170521705317054170551705617057170581705917060170611706217063170641706517066170671706817069170701707117072170731707417075170761707717078170791708017081170821708317084170851708617087170881708917090170911709217093170941709517096170971709817099171001710117102171031710417105171061710717108171091711017111171121711317114171151711617117171181711917120171211712217123171241712517126171271712817129171301713117132171331713417135171361713717138171391714017141171421714317144171451714617147171481714917150171511715217153171541715517156171571715817159171601716117162171631716417165171661716717168171691717017171171721717317174171751717617177171781717917180171811718217183171841718517186171871718817189171901719117192171931719417195171961719717198171991720017201172021720317204172051720617207172081720917210172111721217213172141721517216172171721817219172201722117222172231722417225172261722717228172291723017231172321723317234172351723617237172381723917240172411724217243172441724517246172471724817249172501725117252172531725417255172561725717258172591726017261172621726317264172651726617267172681726917270172711727217273172741727517276172771727817279172801728117282172831728417285172861728717288172891729017291172921729317294172951729617297172981729917300173011730217303173041730517306173071730817309173101731117312173131731417315173161731717318173191732017321173221732317324173251732617327173281732917330173311733217333173341733517336173371733817339173401734117342173431734417345173461734717348173491735017351173521735317354173551735617357173581735917360173611736217363173641736517366173671736817369173701737117372173731737417375173761737717378173791738017381173821738317384173851738617387173881738917390173911739217393173941739517396173971739817399174001740117402174031740417405174061740717408174091741017411174121741317414174151741617417174181741917420174211742217423174241742517426174271742817429174301743117432174331743417435174361743717438174391744017441174421744317444174451744617447174481744917450174511745217453174541745517456174571745817459174601746117462174631746417465174661746717468174691747017471174721747317474174751747617477174781747917480174811748217483174841748517486174871748817489174901749117492174931749417495174961749717498174991750017501175021750317504175051750617507175081750917510175111751217513175141751517516175171751817519175201752117522175231752417525175261752717528175291753017531175321753317534175351753617537175381753917540175411754217543175441754517546175471754817549175501755117552175531755417555175561755717558175591756017561175621756317564175651756617567175681756917570175711757217573175741757517576175771757817579175801758117582175831758417585175861758717588175891759017591175921759317594175951759617597175981759917600176011760217603176041760517606176071760817609176101761117612176131761417615176161761717618176191762017621176221762317624176251762617627176281762917630176311763217633176341763517636176371763817639176401764117642176431764417645176461764717648176491765017651176521765317654176551765617657176581765917660176611766217663176641766517666176671766817669176701767117672176731767417675176761767717678176791768017681176821768317684176851768617687176881768917690176911769217693176941769517696176971769817699177001770117702177031770417705177061770717708177091771017711177121771317714177151771617717177181771917720177211772217723177241772517726177271772817729177301773117732177331773417735177361773717738177391774017741177421774317744177451774617747177481774917750177511775217753177541775517756177571775817759177601776117762177631776417765177661776717768177691777017771177721777317774177751777617777177781777917780177811778217783177841778517786177871778817789177901779117792177931779417795177961779717798177991780017801178021780317804178051780617807178081780917810178111781217813178141781517816178171781817819178201782117822178231782417825178261782717828178291783017831178321783317834178351783617837178381783917840178411784217843178441784517846178471784817849178501785117852178531785417855178561785717858178591786017861178621786317864178651786617867178681786917870178711787217873178741787517876178771787817879178801788117882178831788417885178861788717888178891789017891178921789317894178951789617897178981789917900179011790217903179041790517906179071790817909179101791117912179131791417915179161791717918179191792017921179221792317924179251792617927179281792917930179311793217933179341793517936179371793817939179401794117942179431794417945179461794717948179491795017951179521795317954179551795617957179581795917960179611796217963179641796517966179671796817969179701797117972179731797417975179761797717978179791798017981179821798317984179851798617987179881798917990179911799217993179941799517996179971799817999180001800118002180031800418005180061800718008180091801018011180121801318014180151801618017180181801918020180211802218023180241802518026180271802818029180301803118032180331803418035180361803718038180391804018041180421804318044180451804618047180481804918050180511805218053180541805518056180571805818059180601806118062180631806418065180661806718068180691807018071180721807318074180751807618077180781807918080180811808218083180841808518086180871808818089180901809118092180931809418095180961809718098180991810018101181021810318104181051810618107181081810918110181111811218113181141811518116181171811818119181201812118122181231812418125181261812718128181291813018131181321813318134181351813618137181381813918140181411814218143181441814518146181471814818149181501815118152181531815418155181561815718158181591816018161181621816318164181651816618167181681816918170181711817218173181741817518176181771817818179181801818118182181831818418185181861818718188181891819018191181921819318194181951819618197181981819918200182011820218203182041820518206182071820818209182101821118212182131821418215182161821718218182191822018221182221822318224182251822618227182281822918230182311823218233182341823518236182371823818239182401824118242182431824418245182461824718248182491825018251182521825318254182551825618257182581825918260182611826218263182641826518266182671826818269182701827118272182731827418275182761827718278182791828018281182821828318284182851828618287182881828918290182911829218293182941829518296182971829818299183001830118302183031830418305183061830718308183091831018311183121831318314183151831618317183181831918320183211832218323183241832518326183271832818329183301833118332183331833418335183361833718338183391834018341183421834318344183451834618347183481834918350183511835218353183541835518356183571835818359183601836118362183631836418365183661836718368183691837018371183721837318374183751837618377183781837918380183811838218383183841838518386183871838818389183901839118392183931839418395183961839718398183991840018401184021840318404184051840618407184081840918410184111841218413184141841518416184171841818419184201842118422184231842418425184261842718428184291843018431184321843318434184351843618437184381843918440184411844218443184441844518446184471844818449184501845118452184531845418455184561845718458184591846018461184621846318464184651846618467184681846918470184711847218473184741847518476184771847818479184801848118482184831848418485184861848718488184891849018491184921849318494184951849618497184981849918500185011850218503185041850518506185071850818509185101851118512185131851418515185161851718518185191852018521185221852318524185251852618527185281852918530185311853218533185341853518536185371853818539185401854118542185431854418545185461854718548185491855018551185521855318554185551855618557185581855918560185611856218563185641856518566185671856818569185701857118572185731857418575185761857718578185791858018581185821858318584185851858618587185881858918590185911859218593185941859518596185971859818599186001860118602186031860418605186061860718608186091861018611186121861318614186151861618617186181861918620186211862218623186241862518626186271862818629186301863118632186331863418635186361863718638186391864018641186421864318644186451864618647186481864918650186511865218653186541865518656186571865818659186601866118662186631866418665186661866718668186691867018671186721867318674186751867618677186781867918680186811868218683186841868518686186871868818689186901869118692186931869418695186961869718698186991870018701187021870318704187051870618707187081870918710187111871218713187141871518716187171871818719187201872118722187231872418725187261872718728187291873018731187321873318734187351873618737187381873918740187411874218743187441874518746187471874818749187501875118752187531875418755187561875718758187591876018761187621876318764187651876618767187681876918770187711877218773187741877518776187771877818779187801878118782187831878418785187861878718788187891879018791187921879318794187951879618797187981879918800188011880218803188041880518806188071880818809188101881118812188131881418815188161881718818188191882018821188221882318824188251882618827188281882918830188311883218833188341883518836188371883818839188401884118842188431884418845188461884718848188491885018851188521885318854188551885618857188581885918860188611886218863188641886518866188671886818869188701887118872188731887418875188761887718878188791888018881188821888318884188851888618887188881888918890188911889218893188941889518896188971889818899189001890118902189031890418905189061890718908189091891018911189121891318914189151891618917189181891918920189211892218923189241892518926189271892818929189301893118932189331893418935189361893718938189391894018941189421894318944189451894618947189481894918950189511895218953189541895518956189571895818959189601896118962189631896418965189661896718968189691897018971189721897318974189751897618977189781897918980189811898218983189841898518986189871898818989189901899118992189931899418995189961899718998189991900019001190021900319004190051900619007190081900919010190111901219013190141901519016190171901819019190201902119022190231902419025190261902719028190291903019031190321903319034190351903619037190381903919040190411904219043190441904519046190471904819049190501905119052190531905419055190561905719058190591906019061190621906319064190651906619067190681906919070190711907219073190741907519076190771907819079190801908119082190831908419085190861908719088190891909019091190921909319094190951909619097190981909919100191011910219103191041910519106191071910819109191101911119112191131911419115191161911719118191191912019121191221912319124191251912619127191281912919130191311913219133191341913519136191371913819139191401914119142191431914419145191461914719148191491915019151191521915319154191551915619157191581915919160191611916219163191641916519166191671916819169191701917119172191731917419175191761917719178191791918019181191821918319184191851918619187191881918919190191911919219193191941919519196191971919819199192001920119202192031920419205192061920719208192091921019211192121921319214192151921619217192181921919220192211922219223192241922519226192271922819229192301923119232192331923419235192361923719238192391924019241192421924319244192451924619247192481924919250192511925219253192541925519256192571925819259192601926119262192631926419265192661926719268192691927019271192721927319274192751927619277192781927919280192811928219283192841928519286192871928819289192901929119292192931929419295192961929719298192991930019301193021930319304193051930619307193081930919310193111931219313193141931519316193171931819319193201932119322193231932419325193261932719328193291933019331193321933319334193351933619337193381933919340193411934219343193441934519346193471934819349193501935119352193531935419355193561935719358193591936019361193621936319364193651936619367193681936919370193711937219373193741937519376193771937819379193801938119382193831938419385193861938719388193891939019391193921939319394193951939619397193981939919400194011940219403194041940519406194071940819409194101941119412194131941419415194161941719418194191942019421194221942319424194251942619427194281942919430194311943219433194341943519436194371943819439194401944119442194431944419445194461944719448194491945019451194521945319454194551945619457194581945919460194611946219463194641946519466194671946819469194701947119472194731947419475194761947719478194791948019481194821948319484194851948619487194881948919490194911949219493194941949519496194971949819499195001950119502195031950419505195061950719508195091951019511195121951319514195151951619517195181951919520195211952219523195241952519526195271952819529195301953119532195331953419535195361953719538195391954019541195421954319544195451954619547195481954919550195511955219553195541955519556195571955819559195601956119562195631956419565195661956719568195691957019571195721957319574195751957619577195781957919580195811958219583195841958519586195871958819589195901959119592195931959419595195961959719598195991960019601196021960319604196051960619607196081960919610196111961219613196141961519616196171961819619196201962119622196231962419625196261962719628196291963019631196321963319634196351963619637196381963919640196411964219643196441964519646196471964819649196501965119652196531965419655196561965719658196591966019661196621966319664196651966619667196681966919670196711967219673196741967519676196771967819679196801968119682196831968419685196861968719688196891969019691196921969319694196951969619697196981969919700197011970219703197041970519706197071970819709197101971119712197131971419715197161971719718197191972019721197221972319724197251972619727197281972919730197311973219733197341973519736197371973819739197401974119742197431974419745197461974719748197491975019751197521975319754197551975619757197581975919760197611976219763197641976519766197671976819769197701977119772197731977419775197761977719778197791978019781197821978319784197851978619787197881978919790197911979219793197941979519796197971979819799198001980119802198031980419805198061980719808198091981019811198121981319814198151981619817198181981919820198211982219823198241982519826198271982819829198301983119832198331983419835198361983719838198391984019841198421984319844198451984619847198481984919850198511985219853198541985519856198571985819859198601986119862198631986419865198661986719868198691987019871198721987319874198751987619877198781987919880198811988219883198841988519886198871988819889198901989119892198931989419895198961989719898198991990019901199021990319904199051990619907199081990919910199111991219913199141991519916199171991819919199201992119922199231992419925199261992719928199291993019931199321993319934199351993619937199381993919940199411994219943199441994519946199471994819949199501995119952199531995419955199561995719958199591996019961199621996319964199651996619967199681996919970199711997219973199741997519976199771997819979199801998119982199831998419985199861998719988199891999019991199921999319994199951999619997199981999920000200012000220003200042000520006200072000820009200102001120012200132001420015200162001720018200192002020021200222002320024200252002620027200282002920030200312003220033200342003520036200372003820039200402004120042200432004420045200462004720048200492005020051200522005320054200552005620057200582005920060200612006220063200642006520066200672006820069200702007120072200732007420075200762007720078200792008020081200822008320084200852008620087200882008920090200912009220093200942009520096200972009820099201002010120102201032010420105201062010720108201092011020111201122011320114201152011620117201182011920120201212012220123201242012520126201272012820129201302013120132201332013420135201362013720138201392014020141201422014320144201452014620147201482014920150201512015220153201542015520156201572015820159201602016120162201632016420165201662016720168201692017020171201722017320174201752017620177201782017920180201812018220183201842018520186201872018820189201902019120192201932019420195201962019720198201992020020201202022020320204202052020620207202082020920210202112021220213202142021520216202172021820219202202022120222202232022420225202262022720228202292023020231202322023320234202352023620237202382023920240202412024220243202442024520246202472024820249202502025120252202532025420255202562025720258202592026020261202622026320264202652026620267202682026920270202712027220273202742027520276202772027820279202802028120282202832028420285202862028720288202892029020291202922029320294202952029620297202982029920300203012030220303203042030520306203072030820309203102031120312203132031420315203162031720318203192032020321203222032320324203252032620327203282032920330203312033220333203342033520336203372033820339203402034120342203432034420345203462034720348203492035020351203522035320354203552035620357203582035920360203612036220363203642036520366203672036820369203702037120372203732037420375203762037720378203792038020381203822038320384203852038620387203882038920390203912039220393203942039520396203972039820399204002040120402204032040420405204062040720408204092041020411204122041320414204152041620417204182041920420204212042220423204242042520426204272042820429204302043120432204332043420435204362043720438204392044020441204422044320444204452044620447204482044920450204512045220453204542045520456204572045820459204602046120462204632046420465204662046720468204692047020471204722047320474204752047620477204782047920480204812048220483204842048520486204872048820489204902049120492204932049420495204962049720498204992050020501205022050320504205052050620507205082050920510205112051220513205142051520516205172051820519205202052120522205232052420525205262052720528205292053020531205322053320534205352053620537205382053920540205412054220543205442054520546205472054820549205502055120552205532055420555205562055720558205592056020561205622056320564205652056620567205682056920570205712057220573205742057520576205772057820579205802058120582205832058420585205862058720588205892059020591205922059320594205952059620597205982059920600206012060220603206042060520606206072060820609206102061120612206132061420615206162061720618206192062020621206222062320624206252062620627206282062920630206312063220633206342063520636206372063820639206402064120642206432064420645206462064720648206492065020651206522065320654206552065620657206582065920660206612066220663206642066520666206672066820669206702067120672206732067420675206762067720678206792068020681206822068320684206852068620687206882068920690206912069220693206942069520696206972069820699207002070120702207032070420705207062070720708207092071020711207122071320714207152071620717207182071920720207212072220723207242072520726207272072820729207302073120732207332073420735207362073720738207392074020741207422074320744207452074620747207482074920750207512075220753207542075520756207572075820759207602076120762207632076420765207662076720768207692077020771207722077320774207752077620777207782077920780207812078220783207842078520786207872078820789207902079120792207932079420795207962079720798207992080020801208022080320804208052080620807208082080920810208112081220813208142081520816208172081820819208202082120822208232082420825208262082720828208292083020831208322083320834208352083620837208382083920840208412084220843208442084520846208472084820849208502085120852208532085420855208562085720858208592086020861208622086320864208652086620867208682086920870208712087220873208742087520876208772087820879208802088120882208832088420885208862088720888208892089020891208922089320894208952089620897208982089920900209012090220903209042090520906209072090820909209102091120912209132091420915209162091720918209192092020921209222092320924209252092620927209282092920930209312093220933209342093520936209372093820939209402094120942209432094420945209462094720948209492095020951209522095320954209552095620957209582095920960209612096220963209642096520966209672096820969209702097120972209732097420975209762097720978209792098020981209822098320984209852098620987209882098920990209912099220993209942099520996209972099820999210002100121002210032100421005210062100721008210092101021011210122101321014210152101621017210182101921020210212102221023210242102521026210272102821029210302103121032210332103421035210362103721038210392104021041210422104321044210452104621047210482104921050210512105221053210542105521056210572105821059210602106121062210632106421065210662106721068210692107021071210722107321074210752107621077210782107921080210812108221083210842108521086210872108821089210902109121092210932109421095210962109721098210992110021101211022110321104211052110621107211082110921110211112111221113211142111521116211172111821119211202112121122211232112421125211262112721128211292113021131211322113321134211352113621137211382113921140211412114221143211442114521146211472114821149211502115121152211532115421155211562115721158211592116021161211622116321164211652116621167211682116921170211712117221173211742117521176211772117821179211802118121182211832118421185211862118721188211892119021191211922119321194211952119621197211982119921200212012120221203212042120521206212072120821209212102121121212212132121421215212162121721218212192122021221212222122321224212252122621227212282122921230212312123221233212342123521236212372123821239212402124121242212432124421245212462124721248212492125021251212522125321254212552125621257212582125921260212612126221263212642126521266212672126821269212702127121272212732127421275212762127721278212792128021281212822128321284212852128621287212882128921290212912129221293212942129521296212972129821299213002130121302213032130421305213062130721308213092131021311213122131321314213152131621317213182131921320213212132221323213242132521326213272132821329213302133121332213332133421335213362133721338213392134021341213422134321344213452134621347213482134921350213512135221353213542135521356213572135821359213602136121362213632136421365213662136721368213692137021371213722137321374213752137621377213782137921380213812138221383213842138521386213872138821389213902139121392213932139421395213962139721398213992140021401214022140321404214052140621407214082140921410214112141221413214142141521416214172141821419214202142121422214232142421425214262142721428214292143021431214322143321434214352143621437214382143921440214412144221443214442144521446214472144821449214502145121452214532145421455214562145721458214592146021461214622146321464214652146621467214682146921470214712147221473214742147521476214772147821479214802148121482214832148421485214862148721488214892149021491214922149321494214952149621497214982149921500215012150221503215042150521506215072150821509215102151121512215132151421515215162151721518215192152021521215222152321524215252152621527215282152921530215312153221533215342153521536215372153821539215402154121542215432154421545215462154721548215492155021551215522155321554215552155621557215582155921560215612156221563215642156521566215672156821569215702157121572215732157421575215762157721578215792158021581215822158321584215852158621587215882158921590215912159221593215942159521596215972159821599216002160121602216032160421605216062160721608216092161021611216122161321614216152161621617216182161921620216212162221623216242162521626216272162821629216302163121632216332163421635216362163721638216392164021641216422164321644216452164621647216482164921650216512165221653216542165521656216572165821659216602166121662216632166421665216662166721668216692167021671216722167321674216752167621677216782167921680216812168221683216842168521686216872168821689216902169121692216932169421695216962169721698216992170021701217022170321704217052170621707217082170921710217112171221713217142171521716217172171821719217202172121722217232172421725217262172721728217292173021731217322173321734217352173621737217382173921740217412174221743217442174521746217472174821749217502175121752217532175421755217562175721758217592176021761217622176321764217652176621767217682176921770217712177221773217742177521776217772177821779217802178121782217832178421785217862178721788217892179021791217922179321794217952179621797217982179921800218012180221803218042180521806218072180821809218102181121812218132181421815218162181721818218192182021821218222182321824218252182621827218282182921830218312183221833218342183521836218372183821839218402184121842218432184421845218462184721848218492185021851218522185321854218552185621857218582185921860218612186221863218642186521866218672186821869218702187121872218732187421875218762187721878218792188021881218822188321884218852188621887218882188921890218912189221893218942189521896218972189821899219002190121902219032190421905219062190721908219092191021911219122191321914219152191621917219182191921920219212192221923219242192521926219272192821929219302193121932219332193421935219362193721938219392194021941219422194321944219452194621947219482194921950219512195221953219542195521956219572195821959219602196121962219632196421965219662196721968219692197021971219722197321974219752197621977219782197921980219812198221983219842198521986219872198821989219902199121992219932199421995219962199721998219992200022001220022200322004220052200622007220082200922010220112201222013220142201522016220172201822019220202202122022220232202422025220262202722028220292203022031220322203322034220352203622037220382203922040220412204222043220442204522046220472204822049220502205122052220532205422055220562205722058220592206022061220622206322064220652206622067220682206922070220712207222073220742207522076220772207822079220802208122082220832208422085220862208722088220892209022091220922209322094220952209622097220982209922100221012210222103221042210522106221072210822109221102211122112221132211422115221162211722118221192212022121221222212322124221252212622127221282212922130221312213222133221342213522136221372213822139221402214122142221432214422145221462214722148221492215022151221522215322154221552215622157221582215922160221612216222163221642216522166221672216822169221702217122172221732217422175221762217722178221792218022181221822218322184221852218622187221882218922190221912219222193221942219522196221972219822199222002220122202222032220422205222062220722208222092221022211222122221322214222152221622217222182221922220222212222222223222242222522226222272222822229222302223122232222332223422235222362223722238222392224022241222422224322244222452224622247222482224922250222512225222253222542225522256222572225822259222602226122262222632226422265222662226722268222692227022271222722227322274222752227622277222782227922280222812228222283222842228522286222872228822289222902229122292222932229422295222962229722298222992230022301223022230322304223052230622307223082230922310223112231222313223142231522316223172231822319223202232122322223232232422325223262232722328223292233022331223322233322334223352233622337223382233922340223412234222343223442234522346223472234822349223502235122352223532235422355223562235722358223592236022361223622236322364223652236622367223682236922370223712237222373223742237522376223772237822379223802238122382223832238422385223862238722388223892239022391223922239322394223952239622397223982239922400224012240222403224042240522406224072240822409224102241122412224132241422415224162241722418224192242022421224222242322424224252242622427224282242922430224312243222433224342243522436224372243822439224402244122442224432244422445224462244722448224492245022451224522245322454224552245622457224582245922460224612246222463224642246522466224672246822469224702247122472224732247422475224762247722478224792248022481224822248322484224852248622487224882248922490224912249222493224942249522496224972249822499225002250122502225032250422505225062250722508225092251022511225122251322514225152251622517225182251922520225212252222523225242252522526225272252822529225302253122532225332253422535225362253722538225392254022541225422254322544225452254622547225482254922550225512255222553225542255522556225572255822559225602256122562225632256422565225662256722568225692257022571225722257322574225752257622577225782257922580225812258222583225842258522586225872258822589225902259122592225932259422595225962259722598225992260022601226022260322604226052260622607226082260922610226112261222613226142261522616226172261822619226202262122622226232262422625226262262722628226292263022631226322263322634226352263622637226382263922640226412264222643226442264522646226472264822649226502265122652226532265422655226562265722658226592266022661226622266322664226652266622667226682266922670226712267222673226742267522676226772267822679226802268122682226832268422685226862268722688226892269022691226922269322694226952269622697226982269922700227012270222703227042270522706227072270822709227102271122712227132271422715227162271722718227192272022721227222272322724227252272622727227282272922730227312273222733227342273522736227372273822739227402274122742227432274422745227462274722748227492275022751227522275322754227552275622757227582275922760227612276222763227642276522766227672276822769227702277122772227732277422775227762277722778227792278022781227822278322784227852278622787227882278922790227912279222793227942279522796227972279822799228002280122802228032280422805228062280722808228092281022811228122281322814228152281622817228182281922820228212282222823228242282522826228272282822829228302283122832228332283422835228362283722838228392284022841228422284322844228452284622847228482284922850228512285222853228542285522856228572285822859228602286122862228632286422865228662286722868228692287022871228722287322874228752287622877228782287922880228812288222883228842288522886228872288822889228902289122892228932289422895228962289722898228992290022901229022290322904229052290622907229082290922910229112291222913229142291522916229172291822919229202292122922229232292422925229262292722928229292293022931229322293322934229352293622937229382293922940229412294222943229442294522946
  1. //COMANDOS
  2. CMD:down(playerid)
  3. {
  4. if(IsPlayerInRangeOfPoint(playerid, 2.5, -801.2491,-389.6520,1402.1588))
  5. SetPlayerPos(playerid,2268.0032,2448.8892,3.5313);
  6. SetPlayerInterior(playerid, 0);
  7. SetPlayerInterior(playerid, 5);
  8. SetPlayerVirtualWorldEx(playerid, 911);
  9. return 1;
  10. }
  11. CMD:up(playerid)
  12. {
  13. if(IsPlayerInRangeOfPoint(playerid, 2.5, 2268.0032,2448.8892,3.5313))
  14. SetPlayerPos(playerid,-801.2173,-389.4684,1402.1588);
  15. SetPlayerInterior(playerid, 5);
  16. SetPlayerVirtualWorldEx(playerid, 2);
  17. return 1;
  18. }
  19. //comandos de teste a cima 911
  20. CMD:reconnectmysql(playerid)
  21. {
  22. if(IsPlayerAdminLevelOK(playerid, 1))
  23. {
  24. mysql_reconnect(conn);
  25. if(mysql_errno() == 0)
  26. {
  27. SysMsg(playerid, "MySQL re-connected.");
  28. }
  29. }
  30. else return SysMsg(playerid, CMDFMSG);
  31. return true;
  32. }
  33. CMD:register(playerid)
  34. {
  35. if(Logged{playerid}) return SysMsg(playerid,"Você já está logado; você não precisa se registrar.");
  36. SysMsg(playerid, "O registro só está disponível on-line em greensiderp.com/register.");
  37. return true;
  38. }
  39. CMD:versao(playerid)
  40. {
  41. SysMsgF(playerid, "[Game Mode] %s - %s (/creditos)", GAMEMODE, VERSION);
  42. new hours, minutes, days, uptime;
  43. uptime = gServerUptime;
  44. if(uptime > 1440)
  45. {
  46. do
  47. {
  48. uptime -= 1440;
  49. days += 1;
  50. }
  51. while(uptime > 1440);
  52. }
  53. if(uptime > 60)
  54. {
  55. do
  56. {
  57. uptime -= 60;
  58. hours += 1;
  59. }
  60. while(uptime > 60);
  61. }
  62. minutes = uptime;
  63. SysMsgF(playerid, "Tempo de serviço do servidor: %i dias %i horas e %i minutos", days, hours, minutes);
  64. SysMsg(playerid, "Ver /statistics para algumas estatísticas interessantes relacionadas ao servidor!");
  65. return true;
  66. }
  67. CMD:statistics(playerid)
  68. {
  69. if(!Logged{playerid}) return true;
  70. #define query1 "SELECT COUNT(id) FROM masters"
  71. #define query2 "SELECT COUNT(id) FROM players"
  72. #define query3 "SELECT players FROM ucpplayerscron ORDER BY players DESC LIMIT 1"
  73. #define query4 "SELECT COUNT(id) FROM houses"
  74. #define query5 "SELECT COUNT(id) FROM bizz"
  75. #define query6 "SELECT COUNT(id) FROM hfurniture"
  76. mysql_format(conn, mquery, sizeof(mquery), "SELECT (%s) AS macount, (%s) AS charcount, (%s) AS highestplayercount, (%s) AS housecount, (%s) AS bizzcount, (%s) AS furncount", query1, query2, query3, query4, query5, query6);
  77. mysql_pquery(conn, mquery, "LoadStatisticsNumbers", "i", playerid);
  78. return true;
  79. }
  80. GREENSIDE::LoadStatisticsNumbers(playerid)
  81. {
  82. if(!cache_num_rows()) return SysMsg(playerid, "Error.");
  83. gstr[0] = EOS;
  84. #define MSG1 "Contagem de jogador mais alta: {FFFFFF}%i{A9C4E4}\nTotal de contas Master: {FFFFFF}%s{A9C4E4}\nTotal Character criados: {FFFFFF}%s{A9C4E4}\nTotal de Casas: {FFFFFF}%s{A9C4E4}\nTotal Negocio: {FFFFFF}%i{A9C4E4}\n"
  85. #define MSG2 "Total de mensagens de bate-papo enviadas: {FFFFFF}%s{A9C4E4}\nTotal de comandos enviados: {FFFFFF}%s{A9C4E4}\nTotal de /me feitos: {FFFFFF}%s{A9C4E4}\n\n"
  86. #define MSG3 "Estatísticas do plugin de streamer:\nTotal Objetos: {FFFFFF}%s{A9C4E4}\nTotal de Map Icons: {FFFFFF}%i{A9C4E4}\nTotal de Pickups: {FFFFFF}%s{A9C4E4}\nTotal de 3D Text labels: {FFFFFF}%s{A9C4E4}\n\nObjects visiveis para você: {FFFFFF}%i{A9C4E4}"
  87. new pcount, macount, charcount, housecount, bizzcount, furncount;
  88. pcount = cache_get_field_content_int(0, "highestplayercount");
  89. macount = cache_get_field_content_int(0, "macount");
  90. charcount = cache_get_field_content_int(0, "charcount");
  91. housecount = cache_get_field_content_int(0, "housecount");
  92. bizzcount = cache_get_field_content_int(0, "bizzcount");
  93. furncount = cache_get_field_content_int(0, "furncount");
  94. format(sgstr, sizeof(sgstr), MSG1, pcount, format_cash(macount), format_cash(charcount), format_cash(housecount), bizzcount);
  95. strcat(gstr, sgstr);
  96. format(tgstr, sizeof(tgstr), "Total Furniture: {FFFFFF}%s{A9C4E4}\n\n", format_cash(furncount));
  97. strcat(gstr, tgstr);
  98. format(sgstr, sizeof(sgstr), MSG2, format_cash(totalchat), format_cash(totalcmds), format_cash(totalmes));
  99. strcat(gstr, sgstr);
  100. format(sgstr, sizeof(sgstr), MSG3, format_cash(CountDynamicObjects()), CountDynamicMapIcons(), format_cash(CountDynamicPickups()), format_cash(CountDynamic3DTextLabels()), Streamer_CountVisibleItems(playerid, STREAMER_TYPE_OBJECT));
  101. strcat(gstr, sgstr);
  102. Dialog_Show(playerid, DIALOG_NONE, DIALOG_STYLE_MSGBOX, "Stats do servidor", gstr, "Fechar", "");
  103. return true;
  104. }
  105. CMD:uptime(playerid) return cmd_versao(playerid);
  106. /*CMD:credits(playerid)
  107. {
  108. if(!Logged{playerid}) return true;
  109. SendClientMessage(playerid, COLOR_WHITE, " ");
  110. SendClientMessage(playerid, COLOR_LIGHTRED, "Red County Roleplay");
  111. SendClientMessage(playerid, COLOR_WHITE, "Coded by Alec Rae | 2009-2013 | alec@redcountyrp.com");
  112. SendClientMessage(playerid, COLOR_WHITE, "Coded by Tommy Breshears | 2013 - Present");
  113. SendClientMessage(playerid, COLOR_WHITE, "Coded with the assistance of Adam Booth | 2013 - 2014");
  114. SendClientMessage(playerid, COLOR_WHITE, "Special thanks to Lionel, BigD, Peach and MP2 for certain script additions.");
  115. SendClientMessage(playerid, COLOR_WHITE, "Red County Roleplay makes use of plugins and libraries created by Incognito, Y_Less, MP2, BlueG and Zeex");
  116. SendClientMessage(playerid, COLOR_WHITE, " ");
  117. return true;
  118. }
  119. CMD:changelog(playerid)
  120. {
  121. if(!Logged{playerid}) return true;
  122. new changelog[3200];
  123. strcat(changelog, "{FF0000}2.3.11 R1 - 1 de junho de 2017{FFFFFF}\n");
  124. strcat(changelog, "/cinfo now shows phone signal.\n");
  125. strcat(changelog, "Added an engine start delay for helicopters/planes.\n");
  126. strcat(changelog, "Personal vehicles with their windows rolled down can now be unlocked by anybody.\n");
  127. strcat(changelog, "The type of fuel in a player's fuel can will now show in /inventario.\n");
  128. strcat(changelog, "Changed the warehouse interior to a blank space with only one wall object at the entrance. This will allow users to add bottom floors to their homes and etc.\n");
  129. strcat(changelog, "Fixed a bug where certain vehicle mods couldn't be removed with /removemods.\n");
  130. strcat(changelog, "Fixed a bug where /stopguestfurnish would save incorrect values.\n");
  131. strcat(changelog, "Fixed a bug where cancelling the repositioning of a clothing object wouldn't reapply its color if one was assigned.\n");
  132. strcat(changelog, "Fixed a bug where incorrect businesses were marked as 'Mall' businesses.\n");
  133. strcat(changelog, "Fixed some issues where the pizza vehicles could be put into repair garages, causing them to be removed permanently.\n");
  134. strcat(changelog, "Fixed a handful of issues with the impound system.\n");
  135. strcat(changelog, "Fixed a bug where being put in jail could send you to prison after a relog.\n");
  136. strcat(changelog, "Fixed bugs that prevented the engine oil alert textdraw from appearing.\n");
  137. strcat(changelog, "Fixed /resetvest once more.\n\n");
  138. strcat(changelog, "{FF0000}2.3.11 - May 12th 2016{FFFFFF}\n");
  139. strcat(changelog, "Phone SMS history will now show a list of numbers players have sent/received texts to/from.\n");
  140. strcat(changelog, "Added pagination to SMS history lists and modified the list slightly.\n");
  141. strcat(changelog, "Guest furnish access no longer disappears after logging out and must now be manually revoked.\n");
  142. strcat(changelog, "Internally remade phone contacts and increased the contacts limit based on donator level.\n");
  143. strcat(changelog, "Executing a downed player now requires one headshot instead of two.\n");
  144. strcat(changelog, "Flats will no longer show up in the unowned property list.\n");
  145. strcat(changelog, "Trunks can now be used on motorbikes with very limited weapon storage space.\n");
  146. strcat(changelog, "Fixed a bug where taxis could be called from indoors, giving incorrect beacons.\n");
  147. strcat(changelog, "Fixed a bug where armor vests could disappear after reconnecting.\n");
  148. strcat(changelog, "Fixed a bug where Taxi signs could get stuck on vehicles.\n");
  149. strcat(changelog, "Fixed a bug where the scrap vehicle timer wouldn't end when a player disconnected, occasionally causing incorrect vehicle deletions.\n");
  150. strcat(changelog, "Fixed more bugs with the weed system.\n\n");
  151. strcat(changelog, "{FF0000}2.3.10 - April 20th 2016{FFFFFF}\n");
  152. strcat(changelog, "Too large to show here. View at http://redcountyrp.com/changelog/server\n\n");
  153. strcat(changelog, "{FF0000}Find a full list of previous updates at http://redcountyrp.com/changelog/server!{FFFFFF}");
  154. ShowMessage(playerid, "Latest Updates", changelog, "Fechar!");
  155. return true;
  156. }*/
  157. CMD:limparchat(playerid, params[])
  158. {
  159. if(!Logged{playerid}) return true;
  160. for(new i = 0; i < 20; i++) SendClientMessage(playerid, COLOR_WHITE, " ");
  161. return true;
  162. }
  163. CMD:characters(playerid, params[])
  164. {
  165. if(!Logged{playerid}) return true;
  166. if(!MasterAccountLogged{playerid}) return SysMsg(playerid, "Você deve estar logado em uma Conta Mester primeiro.");
  167. mysql_format(conn, mquery, sizeof(mquery), "SELECT Name FROM players WHERE MasterAccount = %i ORDER BY id ASC LIMIT 4", MasterAccount[playerid]);
  168. mysql_pquery(conn, mquery, "ShowCharacters", "d", playerid);
  169. return true;
  170. }
  171. CMD:contamaster(playerid, params[])
  172. {
  173. if(!Logged{playerid}) return true;
  174. if(!MasterAccountLogged{playerid}) return SysMsg(playerid, "Você deve estar logado em uma conta Master primeiro. (/malogin)");
  175. mysql_format(conn, mquery, sizeof(mquery), "SELECT EMail, RecentIP, LastLog, State FROM masters WHERE id = %i", MasterAccount[playerid]);
  176. mysql_pquery(conn, mquery, "MAInfo", "d", playerid);
  177. return true;
  178. }
  179. CMD:ma(playerid, params[]) return cmd_contamaster(playerid, params);
  180. CMD:donation(playerid, params[])
  181. {
  182. if(!Logged{playerid}) return true;
  183. mysql_format(conn, mquery, sizeof(mquery), "SELECT DonationCash, DonationWLevel, DonationPLevel, DonationDLevel, DonationCarModel, RefundXP FROM players WHERE id = %i", SQLID[playerid]);
  184. mysql_pquery(conn, mquery, "ProcessDonation", "d", playerid);
  185. return true;
  186. }
  187. CMD:transferdonatorlevel(playerid, params[])
  188. {
  189. if(!Logged{playerid}) return true;
  190. if(!IsDonator[playerid]) return SysMsg(playerid, "Você não é um usuario donate.");
  191. new accountname[MAX_PLAYER_NAME];
  192. if(sscanf(params, "s[24]", accountname)) return SysMsg(playerid, "Use: /transferdonatorlevel [Nome_Sobrenome]");
  193. new sqlid = MySQLCheckAccount(accountname, playerid);
  194. if(sqlid == 0) return SysMsg(playerid, "O nome não foi encontrado. Inclua primeiro nome, sobrenome e um sublinhado (Nome_Sobrenome).");
  195. mysql_format(conn, mquery, sizeof(mquery), "SELECT IsDonator FROM players WHERE id = %i", sqlid);
  196. mysql_pquery(conn, mquery, "CheckDonationTransfer", "iis", playerid, sqlid, accountname);
  197. return true;
  198. }
  199. GREENSIDE::CheckDonationTransfer(playerid, sqlid, accountname[])
  200. {
  201. new donatorlevel = cache_get_field_content_int(0, "IsDonator");
  202. if(donatorlevel > 0) return SysMsg(playerid, "Essa conta já é Donate.");
  203. mysql_format(conn, mquery, sizeof(mquery), "SELECT AmountDonated FROM players WHERE id = %i", SQLID[playerid]);
  204. mysql_pquery(conn, mquery, "ProcessDonationTransfer", "iisi", playerid, sqlid, accountname);
  205. return true;
  206. }
  207. GREENSIDE::ProcessDonationTransfer(playerid, sqlid, accountname[])
  208. {
  209. new donatorlevel = IsDonator[playerid];
  210. new amountdonated = cache_get_field_content_int(0, "AmountDonated");
  211. IsDonator[playerid] = 0;
  212. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET IsDonator = %i, AmountDonated = %i WHERE id = %i", donatorlevel, amountdonated, sqlid);
  213. mysql_pquery(conn, mquery);
  214. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET IsDonator = 0, AmountDonated = 0 WHERE id = %i", SQLID[playerid]);
  215. mysql_pquery(conn, mquery);
  216. mysql_format(conn, mquery, sizeof(mquery), "DELETE FROM `ignore` WHERE PlayerSQLID=%i", SQLID[playerid]);
  217. mysql_pquery(conn, mquery);
  218. foreach(new i: Player)
  219. {
  220. if(SQLID[i] == sqlid)
  221. {
  222. IsDonator[i] = donatorlevel;
  223. SendClientMessageF(i, COLOR_WHITE, "%s deu level de Donate para você.", NameEx(playerid), donatorlevel);
  224. }
  225. }
  226. SendClientMessageF(playerid, COLOR_WHITE, "Você transferiu seu level de donate %i para %s. Você não é mais um usuario Donate nessa conta.", donatorlevel, accountname);
  227. return true;
  228. }
  229. CMD:mudarspawn(playerid, params[])
  230. {
  231. if(!Logged{playerid}) return true;
  232. new spawnid, bizzid = -1;
  233. if(sscanf(params, "iI(-1)", spawnid, bizzid)) return SysMsg(playerid,"Use: /mudarspawn [spawn id] - 1:Noob, 2:Facção HQ, 3:casa, 4:Motel, 5:Casa visitante, 6:Caravana 7:Negocio");
  234. if(spawnid < 1 || spawnid > 7) return SysMsg(playerid,"Use: /mudarspawn [spawn id] - 1:Noob, 2:Facção HQ, 3:Casa, 4:Motel, 5:Casa visitante, 6:Caravana, 7:Negocio");
  235. if(spawnid == 1)
  236. {
  237. if(MySpawnID[playerid] == 1) return SysMsg(playerid,"Você já está no spawn de noob.");
  238. ShowMessage(playerid, "Ponto de Spawn", "Agora você irá spawna no spawn de noob.", "Ok");
  239. MySpawnID[playerid] = 1;
  240. BizzSpawn[playerid] = 0;
  241. mysql_pqueryf(conn, "UPDATE players SET MySpawnID = %i, BizzSpawn = %i WHERE id = %i", MySpawnID[playerid], BizzSpawn[playerid], SQLID[playerid]);
  242. return true;
  243. }
  244. else if(spawnid == 2)
  245. {
  246. if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em nenhuma facção.");
  247. new locations[256], title[100];
  248. if(strlen(FACTIONS[Faction[playerid]][FactionSpawn1Name]) > 1)
  249. {
  250. strcat(locations, "1 - ");
  251. strcat(locations, FACTIONS[Faction[playerid]][FactionSpawn1Name]);
  252. strcat(locations, "\n");
  253. }
  254. if(strlen(FACTIONS[Faction[playerid]][FactionSpawn2Name]) > 1)
  255. {
  256. strcat(locations, "2 - ");
  257. strcat(locations, FACTIONS[Faction[playerid]][FactionSpawn2Name]);
  258. strcat(locations, "\n");
  259. }
  260. if(strlen(FACTIONS[Faction[playerid]][FactionSpawn3Name]) > 1)
  261. {
  262. strcat(locations, "3 - ");
  263. strcat(locations, FACTIONS[Faction[playerid]][FactionSpawn3Name]);
  264. strcat(locations, "\n");
  265. }
  266. if(strlen(FACTIONS[Faction[playerid]][FactionSpawn4Name]) > 1)
  267. {
  268. strcat(locations, "4 - ");
  269. strcat(locations, FACTIONS[Faction[playerid]][FactionSpawn4Name]);
  270. strcat(locations, "\n");
  271. }
  272. if(strlen(FACTIONS[Faction[playerid]][FactionSpawn5Name]) > 1)
  273. {
  274. strcat(locations, "5 - ");
  275. strcat(locations, FACTIONS[Faction[playerid]][FactionSpawn5Name]);
  276. strcat(locations, "\n");
  277. }
  278. format(title, 100, "Seleciona %s Spawn", GetFactionNameFromId(Faction[playerid]));
  279. Dialog_Show(playerid, FactionSubSpawn, DIALOG_STYLE_LIST, title, locations, "Selecionar", "Cancelar");
  280. return true;
  281. }
  282. else if(spawnid == 3)
  283. {
  284. if(HasHouseKey[playerid][0] != -1 || HasHouseKey[playerid][1] != -1)
  285. {
  286. new hid = bizzid;
  287. if(hid != 0 && hid != 1 && hid != -1) return SysMsg(playerid, "Número da casa inválida. Os números de casa válidos são 0 ou 1.");
  288. if(hid == -1)
  289. {
  290. for(new v = 0; v < MAX_HOUSE_PER_PLAYER; v++)
  291. {
  292. if(HasHouseKey[playerid][v] != -1)
  293. {
  294. SendClientMessageF(playerid, COLOR_WHITE, "Casa ID: %i - %s", v, HouseData[HasHouseKey[playerid][v]][HouseDescription]);
  295. }
  296. }
  297. SysMsg(playerid, "Use: /mudarspawn 3 [Número da casa acima]");
  298. return true;
  299. }
  300. if(HasHouseKey[playerid][hid] == -1) return SysMsg(playerid, "Você não tem uma casa neste slot.");
  301. if(MySpawnID[playerid] == 3 && SpawnAtHouse[playerid] == hid) return SysMsg(playerid,"Você já está spawnando nesta casa.");
  302. SpawnAtHouse[playerid] = hid;
  303. format(gstr, sizeof(gstr),"Agora você irá spawnar na sua casa. [%s]",HouseData[HasHouseKey[playerid][SpawnAtHouse[playerid]]][HouseDescription]);
  304. ShowMessage(playerid, "Ponto de Spawn", gstr, "Ok");
  305. MySpawnID[playerid] = 3;
  306. mysql_pqueryf(conn, "UPDATE players SET MySpawnID = %i, SpawnAtHouse = %i WHERE id = %i", MySpawnID[playerid], hid, SQLID[playerid]);
  307. return true;
  308. }
  309. SysMsg(playerid,"Você não tem uma casa.");
  310. }
  311. else if(spawnid == 4)
  312. {
  313. if(RentRoom[playerid] > 0)
  314. {
  315. if(MySpawnID[playerid] == 4) return SysMsg(playerid,"Você já está spawnando em um quarto de Motel.");
  316. ShowMessage(playerid, "Ponto de Spawn", "Agora você irá spawnar em um quarto de Motel.", "Ok");
  317. MySpawnID[playerid] = 4;
  318. BizzSpawn[playerid] = 0;
  319. mysql_pqueryf(conn, "UPDATE players SET MySpawnID = %i, BizzSpawn = %i WHERE id = %i", MySpawnID[playerid], BizzSpawn[playerid], SQLID[playerid]);
  320. return true;
  321. }
  322. SysMsg(playerid,"Você não tem um quarto de Motel alugado.");
  323. }
  324. else if(spawnid == 5)
  325. {
  326. new ghouse = IsHouseGuest(playerid);
  327. if(ghouse == 0) return SysMsg(playerid,"Você não está vivendo de convidado na casa de alguém.");
  328. MySpawnID[playerid] = 5;
  329. BizzSpawn[playerid] = 0;
  330. mysql_pqueryf(conn, "UPDATE players SET MySpawnID = %i, BizzSpawn = %i WHERE id = %i", MySpawnID[playerid], BizzSpawn[playerid], SQLID[playerid]);
  331. format(gstr, sizeof(gstr),"Agora você irá spawna em %s.",HouseData[ghouse][HouseDescription]);
  332. ShowMessage(playerid, "Ponto de Spawn", gstr, "Ok");
  333. return true;
  334. }
  335. else if(spawnid == 6)
  336. {
  337. for(new x = 1, v = GetVehiclePoolSize(); x <= v; x++)
  338. {
  339. if(VehicleData[x][VehicleOwnerSQLID] == SQLID[playerid] && SQLID[playerid] > 0)
  340. {
  341. if(VehicleData[x][VehicleModel] == 508)
  342. {
  343. MySpawnID[playerid] = 6;
  344. BizzSpawn[playerid] = 0;
  345. mysql_pqueryf(conn, "UPDATE players SET MySpawnID = %i, BizzSpawn = %i WHERE id = %i", MySpawnID[playerid], BizzSpawn[playerid], SQLID[playerid]);
  346. ShowMessage(playerid, "Ponto de Spawn", "Agora você irá spawnar na sua Caravana.", "Ok");
  347. return true;
  348. }
  349. }
  350. }
  351. SysMsg(playerid,"Você não é dono de uma Caravana.");
  352. return true;
  353. }
  354. else if(spawnid == 7)
  355. {
  356. if(PlayerBizzID[playerid][0] == -1 && PlayerBizzID[playerid][1] == -1) return SysMsg(playerid, "Você não tem nenhum negocio para spawnar.");
  357. if(bizzid != 0 && bizzid != 1 && bizzid != -1) return SysMsg(playerid, "Número de negócio inválido. Os números de negócios válidos são 1 ou 2.");
  358. if(bizzid == -1)
  359. {
  360. for(new v = 0; v < MAX_BIZZ_PER_PLAYER; v++)
  361. {
  362. if(PlayerBizzID[playerid][v] != -1)
  363. {
  364. SendClientMessageF(playerid, COLOR_WHITE, "Business ID: %i - %s", v, BizzData[PlayerBizzID[playerid][v]][BizzDescription]);
  365. }
  366. }
  367. SysMsg(playerid, "Use: /mudarspawn 7 [ID do negócio acima]");
  368. return true;
  369. }
  370. new b = PlayerBizzID[playerid][bizzid];
  371. MySpawnID[playerid] = 7;
  372. BizzSpawn[playerid] = BizzData[b][BizzSQLID];
  373. mysql_pqueryf(conn, "UPDATE players SET MySpawnID = %i, BizzSpawn = %i WHERE id = %i", MySpawnID[playerid], BizzSpawn[playerid], SQLID[playerid]);
  374. SendClientMessageF(playerid, COLOR_BLUE, "Agora você irá spawnar em %s!", BizzData[b][BizzDescription]);
  375. }
  376. return true;
  377. }
  378. CMD:mudarspawniniciante(playerid, params[])
  379. {
  380. if(!Logged{playerid}) return true;
  381. if(isnull(params)) return SysMsg(playerid,"Use: /mudarspawniniciante [spawn id] - 1:Blueberry Caravans Parque, 2:Norte Caravan Parque, 3:Montgomery Caravans parque, 4:Fort Carson, 5:Angel Pine");
  382. new spawnid = strval(params);
  383. if(spawnid < 1 || spawnid > 5) return SysMsg(playerid,"ID de Spawn inválido, 1 - 5 somente.");
  384. if(spawnid == NoobSpawnID[playerid]) return SysMsg(playerid,"Seu spawn de iniciante já está neste local.");
  385. NoobSpawnID[playerid] = spawnid;
  386. MySQLUpdateInt(SQLID[playerid], "NoobSpawnID", NoobSpawnID[playerid], "players");
  387. ShowMessage(playerid, "Ponto de spawn iniciante", "Seu local de spawn iniciante foi alterado", "Ok");
  388. return true;
  389. }
  390. CMD:login(playerid, params[])
  391. {
  392. if(MasterAccount[playerid] == 0) return SysMsg(playerid, "Você precisa se registar antes de fazer login no servidor.");
  393. if(Logged{playerid}) return SysMsg(playerid, "Você já fez Login.");
  394. ShowLoginBox(playerid);
  395. return true;
  396. }
  397. CMD:logout(playerid, params[])
  398. {
  399. if(!Logged{playerid}) return true;
  400. if(HasJustDied[playerid] == 1) return SysMsg(playerid,"Você não pode sair quando está no hospital.");
  401. if(IsAFK{playerid}) return SysMsg(playerid,"Você não pode sair quando se estiver AFK.");
  402. if(IsCuffed[playerid] == 1) return SysMsg(playerid,"Você não pode sair quando se estiver algemado.");
  403. if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode sair quando se estiver empatado.");
  404. if(AdminJailData[playerid][0] == 1) return SysMsg(playerid,"Você não pode usar isso se estiver em Admin Jail!");
  405. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SysMsg(playerid,"Você só pode sair se estiver a pé.");
  406. new Float:Health;
  407. GetPlayerHealth(playerid, Health);
  408. if(Health < 30) return SysMsg(playerid, "Você não pode usar este comando quando está gravemente ferido.");
  409. if(SpawnCheckTimer[playerid] != 0) KillTimer(SpawnCheckTimer[playerid]);
  410. ClearPlayerData(playerid, 3);
  411. PauseAC(playerid);
  412. TogglePlayerSpectating(playerid, 1);
  413. TogglePlayerControllable(playerid, false);
  414. SetPlayerInterior(playerid, 0);
  415. SetPlayerVirtualWorld(playerid, 0);
  416. SetPlayerScore(playerid, 0);
  417. SetPlayerName(playerid, MasterAccountName[playerid]);
  418. SetPlayerColor(playerid, 0xBFFFBC00);
  419. LoginScreenID[playerid][0] = random(sizeof(ClassSelectionData));
  420. LoginScreenID[playerid][1] = 120;
  421. InterpolateCameraPos(playerid, ClassSelectionData[LoginScreenID[playerid][0]][0], ClassSelectionData[LoginScreenID[playerid][0]][1], ClassSelectionData[LoginScreenID[playerid][0]][2], ClassSelectionData[LoginScreenID[playerid][0]][6], ClassSelectionData[LoginScreenID[playerid][0]][7], ClassSelectionData[LoginScreenID[playerid][0]][8], 120000, CAMERA_MOVE);
  422. InterpolateCameraLookAt(playerid, ClassSelectionData[LoginScreenID[playerid][0]][3], ClassSelectionData[LoginScreenID[playerid][0]][4], ClassSelectionData[LoginScreenID[playerid][0]][5], ClassSelectionData[LoginScreenID[playerid][0]][9], ClassSelectionData[LoginScreenID[playerid][0]][10], ClassSelectionData[LoginScreenID[playerid][0]][11], 120000, CAMERA_MOVE);
  423. // Play login screen music
  424. switch(random(8))
  425. {
  426. case 0: PlayAudioStreamForPlayer(playerid, "http://redcountyrp.com/audio/login_gt7afvhjasdftu.mp3");
  427. case 1: PlayAudioStreamForPlayer(playerid, "http://redcountyrp.com/audio/login_5tf76yhasf6tds.mp3");
  428. case 2: PlayAudioStreamForPlayer(playerid, "http://redcountyrp.com/audio/login_gr5dqty6h3qxw6.mp3");
  429. case 3: PlayAudioStreamForPlayer(playerid, "http://redcountyrp.com/audio/login_oikicjwya8cq78.mp3");
  430. case 4: PlayAudioStreamForPlayer(playerid, "http://redcountyrp.com/audio/login_sed65tcs57gpjn.mp3");
  431. case 5: PlayAudioStreamForPlayer(playerid, "http://redcountyrp.com/audio/login_qd3w6758hjxcsa.mp3");
  432. case 6: PlayAudioStreamForPlayer(playerid, "http://redcountyrp.com/audio/login_5r4atgsdh7a56r.mp3");
  433. case 7: PlayAudioStreamForPlayer(playerid, "http://redcountyrp.com/audio/login_mnb12580gdcbtu.mp3");
  434. }
  435. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM masters WHERE id = %i LIMIT 1", MasterAccount[playerid]);
  436. mysql_pquery(conn, mquery, "LoginMasterAccount", "d", playerid);
  437. return true;
  438. }
  439. //Organizar ordem de comandos
  440. //==================== 1 Comandos de facções gerais ==========//
  441. //Comandos de facções gerais
  442. CMD:mostrarcracha(playerid, params[]) //mostrarcracha
  443. {
  444. if(!Logged{playerid}) return true;
  445. new playa = -1;
  446. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /mostrarcracha [ID ou nome do jogador]");
  447. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  448. new Float:tX,Float:tY,Float:tZ;
  449. GetPlayerPos(playa,tX,tY,tZ);
  450. if(!IsPlayerInRangeOfPoint(playerid,5.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para fazer isso.");
  451. new hasbadge = 0;
  452. if(Faction[playerid] == FACTION_COP)
  453. {
  454. format(gstr, sizeof(gstr),"[SASP Distintivo] %s - %s, %s(Rank %i", NameEx(playerid), GetFactionName(playerid), GetFactionRankName(Faction[playerid], FactionRank[playerid]), FactionRank[playerid]);
  455. if(strlen(FactionCustomRank[playerid]) > 1)
  456. {
  457. strcat(gstr, ", Sub Rank: ");
  458. strcat(gstr, FactionCustomRank[playerid]);
  459. }
  460. strcat(gstr, ")");
  461. SendClientMessage(playa,COLOR_YELLOW,gstr);
  462. hasbadge = 1;
  463. }
  464. else if(Faction[playerid] == FACTION_SACFD)
  465. {
  466. format(gstr, sizeof(gstr),"[SACFD Distintivo] %s - %s, %s(Rank %i)", NameEx(playerid), GetFactionName(playerid), GetFactionRankName(Faction[playerid], FactionRank[playerid]), FactionRank[playerid]);
  467. if(strlen(FactionCustomRank[playerid]) > 1)
  468. {
  469. strcat(gstr, ", Sub Rank: ");
  470. strcat(gstr, FactionCustomRank[playerid]);
  471. }
  472. strcat(gstr, ")");
  473. SendClientMessage(playa,COLOR_YELLOW,gstr);
  474. hasbadge = 1;
  475. }
  476. else if(Faction[playerid] == FACTION_NEWS)
  477. {
  478. format(gstr, sizeof(gstr),"[News Corp. Distintivo] %s - %s, %s(Rank %i)", NameEx(playerid), GetFactionName(playerid), GetFactionRankName(Faction[playerid], FactionRank[playerid]), FactionRank[playerid]);
  479. if(strlen(FactionCustomRank[playerid]) > 1)
  480. {
  481. strcat(gstr, ", Sub Rank: ");
  482. strcat(gstr, FactionCustomRank[playerid]);
  483. }
  484. strcat(gstr, ")");
  485. SendClientMessage(playa,COLOR_YELLOW,gstr);
  486. hasbadge = 1;
  487. }
  488. else if(Faction[playerid] == FACTION_TRUCKING)
  489. {
  490. format(gstr, sizeof(gstr),"[Licença Camionista] %s - %s, %s (Rank %i)", NameEx(playerid), GetFactionName(playerid), GetFactionRankName(Faction[playerid], FactionRank[playerid]), FactionRank[playerid]);
  491. if(strlen(FactionCustomRank[playerid]) > 1)
  492. {
  493. strcat(gstr, ", Sub Rank: ");
  494. strcat(gstr, FactionCustomRank[playerid]);
  495. }
  496. strcat(gstr, ")");
  497. SendClientMessage(playa,COLOR_YELLOW,gstr);
  498. hasbadge = 1;
  499. }
  500. else if(Faction[playerid] == FACTION_PROP)
  501. {
  502. format(gstr, sizeof(gstr),"[Silver Trading Employee ID] %s - %s, %s (Rank %i)", NameEx(playerid), GetFactionName(playerid), GetFactionRankName(Faction[playerid], FactionRank[playerid]), FactionRank[playerid]);
  503. if(strlen(FactionCustomRank[playerid]) > 1)
  504. {
  505. strcat(gstr, ", Sub Rank: ");
  506. strcat(gstr, FactionCustomRank[playerid]);
  507. }
  508. strcat(gstr, ")");
  509. SendClientMessage(playa,COLOR_YELLOW,gstr);
  510. hasbadge = 1;
  511. }
  512. else if(Faction[playerid] == FACTION_RESEARCH)
  513. {
  514. if(IsPlayerMasked{playerid}) SendClientMessageF(playa,COLOR_YELLOW, "[Distintivo Federal Agent] %s - %s, %s (Rank %i)", FactionCustomRank[playerid], GetFactionName(playerid), GetFactionRankName(Faction[playerid], FactionRank[playerid]), FactionRank[playerid]);
  515. else SendClientMessageF(playa,COLOR_YELLOW, "[Distintivo Federal Agente] %s - %s, %s (Rank %i)", NameEx(playerid), GetFactionName(playerid), GetFactionRankName(Faction[playerid], FactionRank[playerid]), FactionRank[playerid]);
  516. hasbadge = 1;
  517. }
  518. if(hasbadge == 0) return SysMsg(playerid,"Sua facção não tem crachás.");
  519. if(playa == playerid) format(gstr, sizeof(gstr),"* %s olha para o distintivo. *", NameRP(playerid));
  520. else format(gstr, sizeof(gstr),"* %s mostra seu distintivo para %s. *", NameRP(playerid), NameRP(playa));
  521. ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  522. return true;
  523. }
  524. CMD:duty(playerid, params[])
  525. {
  526. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  527. if(ADuty[playerid] == 1) return SysMsg(playerid, "Você não pode entrar em serviço se estiver administrando.");
  528. if(isnull(params)) return SysMsg(playerid,"Use: /duty ['on' ou 'off']");
  529. if(strcmp("on",params,true) == 0)
  530. {
  531. if(Duty[playerid] == 1) return SysMsg(playerid,"Você já está em serviço.");
  532. if(Faction[playerid] == FACTION_COP)
  533. {
  534. if(IsPlayerInRangeOfPoint(playerid,2.5,-796.7911,-420.2244,1601.9928) || IsPlayerInRangeOfPoint(playerid,1.75,324.928,305.504,999.148) || IsFactionVehicle(GetPlayerVehicleID(playerid)) == FACTION_COP)
  535. {
  536. Duty[playerid] = 1;
  537. format(gstr, sizeof(gstr),"[Radio - 9112 MHz] Central Dispatcher: %s %s está na delegacia de polícia e agora está entrando em serviço.", GetFactionRankName(Faction[playerid], FactionRank[playerid]), NameEx(playerid));
  538. ReportCrime(gstr);
  539. }
  540. else return SysMsg(playerid,"Você só pode mudar de serviço em uma estação de polícia.");
  541. }
  542. else if(Faction[playerid] == FACTION_SACFD)
  543. {
  544. foreach(new i: Player) if(Faction[i] == FACTION_SACFD) SendClientMessageF(i, COLOR_BLUE, "SACFD Mensagem: %s agora está em serviço.",NameEx(playerid));
  545. Duty[playerid] = 1;
  546. }
  547. else if(Faction[playerid] == FACTION_NEWS)
  548. {
  549. foreach(new i: Player) if(Faction[i] == FACTION_NEWS) SendClientMessageF(i,COLOR_PINK,"SANews Mensagem: %s agora está em serviço.",NameEx(playerid));
  550. Duty[playerid] = 1;
  551. }
  552. return true;
  553. }
  554. if(strcmp("off",params,true) == 0)
  555. {
  556. if(Duty[playerid] == 0) return SysMsg(playerid, "Você já está fora do serviço.");
  557. if(Faction[playerid] == FACTION_COP)
  558. {
  559. if(IsPlayerInRangeOfPoint(playerid,2.5,-796.7911,-420.2244,1601.9928) || IsPlayerInRangeOfPoint(playerid,1.75,324.928,305.504,999.148) || IsFactionVehicle(GetPlayerVehicleID(playerid)) == FACTION_COP)
  560. {
  561. format(gstr, sizeof(gstr),"[Radio - 9112 MHz] Central Dispatcher: %s %s está saindo da delegacia de polícia e agora está fora de serviço.", GetFactionRankName(Faction[playerid], FactionRank[playerid]), NameEx(playerid));
  562. ReportCrime(gstr);
  563. Duty[playerid] = 0;
  564. }
  565. else return SysMsg(playerid,"Você só pode mudar de serviço em uma estação de polícia.");
  566. }
  567. else if(Faction[playerid] == FACTION_SACFD)
  568. {
  569. foreach(new i: Player) if(Faction[i] == FACTION_SACFD) SendClientMessageF(i, COLOR_BLUE, "SACFD Mensagem: %s está fora de serviço.",NameEx(playerid));
  570. Duty[playerid] = 0;
  571. }
  572. else if(Faction[playerid] == FACTION_NEWS)
  573. {
  574. foreach(new i: Player) if(Faction[i] == FACTION_NEWS) SendClientMessageF(i,COLOR_PINK,"SANews Mensagem: %s está fora de serviço.",NameEx(playerid));
  575. Duty[playerid] = 0;
  576. }
  577. else if(Duty[playerid] == 0) return SysMsg(playerid,"Você já está fora de serviço.");
  578. return true;
  579. }
  580. SysMsg(playerid,"Use: /duty ['on' ou 'off']");
  581. return true;
  582. }
  583. CMD:callsign(playerid, params[])//callsing
  584. {
  585. if(!Logged{playerid}) return true;
  586. if(isnull(params)) return SysMsg(playerid, "Use: /callsign [Unidade Label]");
  587. if(!IsCop(playerid) && Faction[playerid] != FACTION_SACFD) return SysMsg(playerid, "Você precisa ser um membro do SASP ou SACFD para usar este comando.");
  588. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você precisa estar dentro de um veículo para usar esse comando.");
  589. if(IsFactionVehicle(GetPlayerVehicleID(playerid)) != Faction[playerid]) return SysMsg(playerid, "Você precisa estar em um veículo de facção para definir a callsign da unidade.");
  590. if(strlen(params) >= 10 && strlen(params) < 1) return SysMsg(playerid, "Os callsign das unidades devem ter entre 1 e 8 caracteres.");
  591. for(new fiv = 0, x = GetVehiclePoolSize(); fiv <= x; fiv++)
  592. {
  593. if(strmatch(FVehicleData[fiv][FVGovUnit], params)) return SendClientMessage(playerid, COLOR_GREY, "Esta callsign de unidade já está em uso, use outro.");
  594. }
  595. new vehid = GetPlayerVehicleID(playerid);
  596. format(FVehicleData[vehid][FVGovUnit], 12, params);
  597. for(new l = 0; l < 10; l++) FVehicleData[vehid][FVGovUnit][l] = toupper(FVehicleData[vehid][FVGovUnit][l]);
  598. if(FVehicleData[vehid][FVGovUnitTog])
  599. {
  600. UpdateDynamic3DTextLabelText(FVehicleData[vehid][FVGovUnit3DText], COLOR_SIGN, FVehicleData[vehid][FVGovUnit]);
  601. }
  602. else
  603. {
  604. new Float:sX, Float:sY, Float:sZ;
  605. GetVehicleModelInfo(GetVehicleModel(FVehicleData[vehid][FactionVehID]), VEHICLE_MODEL_INFO_SIZE, sX, sY, sZ);
  606. FVehicleData[vehid][FVGovUnit3DText] = CreateDynamic3DTextLabel(FVehicleData[vehid][FVGovUnit], COLOR_SIGN, 0.0, (-sY + 1.6) / 2.0, -0.2, 25.0, INVALID_PLAYER_ID, vehid, 1, -1, -1, -1, 25);
  607. FVehicleData[vehid][FVGovUnitTog] = 1;
  608. }
  609. Streamer_Update(playerid);
  610. SendClientMessageF(playerid, COLOR_BLUE, "Você editou com sucesso o callsign da unidade para o veiculo %s, use /togcallsign para ativá-lo.", GetVehicleNameEx(GetVehicleModel(vehid)));
  611. return true;
  612. }
  613. CMD:togcallsign(playerid, params[])
  614. {
  615. if(!Logged{playerid}) return true;
  616. if(!IsCop(playerid) && Faction[playerid] != FACTION_SACFD) return SysMsg(playerid, "Você precisa ser um membro do SASP ou SACFD para usar esse comando.");
  617. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você precisa estar dentro de um veículo para usar esse comando.");
  618. if(IsFactionVehicle(GetPlayerVehicleID(playerid)) != Faction[playerid]) return SysMsg(playerid, "Você precisa estar em um veículo de facção para definir o rótulo de unidade.");
  619. new vehid = GetPlayerVehicleID(playerid);
  620. if(FVehicleData[vehid][FVGovUnitTog] == 1)
  621. {
  622. DestroyDynamic3DTextLabel(FVehicleData[vehid][FVGovUnit3DText]);
  623. FVehicleData[vehid][FVGovUnit3DText] = Text3D:INVALID_3DTEXT_ID;
  624. SendClientMessage(playerid, COLOR_BLUE, "Você removeu com sucesso a callsign da unidade.");
  625. FVehicleData[vehid][FVGovUnitTog] = 0;
  626. }
  627. else
  628. {
  629. new Float:sX, Float:sY, Float:sZ;
  630. GetVehicleModelInfo(GetVehicleModel(FVehicleData[vehid][FactionVehID]), VEHICLE_MODEL_INFO_SIZE, sX, sY, sZ);
  631. FVehicleData[vehid][FVGovUnit3DText] = CreateDynamic3DTextLabel(FVehicleData[vehid][FVGovUnit], COLOR_SIGN, 0.0, (-sY + 1.6) / 2.0, -0.2, 25.0, INVALID_PLAYER_ID, vehid, 1, -1, -1, -1, 25);
  632. SendClientMessageF(playerid, COLOR_BLUE, "Você adicionou com sucesso uma callsign a unidade", GetVehicleNameEx(GetVehicleModel(vehid)));
  633. Streamer_Update(playerid);
  634. FVehicleData[vehid][FVGovUnitTog] = 1;
  635. }
  636. return true;
  637. }
  638. CMD:fanuncio(playerid, params[])
  639. {
  640. if(!Logged{playerid}) return true;
  641. if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção.");
  642. if(FactionRank[playerid] < 3) return SysMsg(playerid,"Você não tem o Rank suficiente.");
  643. if(FadvertSpamTime > 0) return SysMsg(playerid, "Outro fanuncio não pode ser feito no momento.");
  644. if(!AdvertsToggle{playerid}) return SysMsg(playerid, "Você não pode fazer um anúncio como você tem anúncios desativados.");
  645. if(isnull(params))
  646. {
  647. SysMsg(playerid,"Use: /fanuncio [mensagem]");
  648. SysMsg(playerid,"Exemplo: '/fanuncio Isto é um teste' irá mostrar como: [Anúncio da Facção] Isto é um teste [Seu Nome_Sobrenome]");
  649. return true;
  650. }
  651. new AdCost = strlen(params) * 8;
  652. if(IsDonator[playerid] < 3)
  653. {
  654. GivePlayerCash(playerid, -AdCost);
  655. format(gstr, sizeof(gstr),"Você fez uma anúncio na facção com %i characters, isso irá custa $%i. ($8/Letras)",strlen(params),AdCost);
  656. }
  657. else if(IsDonator[playerid] == 3)
  658. {
  659. AdCost = AdCost / 2;
  660. GivePlayerCash(playerid, -AdCost);
  661. format(gstr, sizeof(gstr),"Você fez uma anúncio na facção com %i characters, isso irá custa $%i. ($8/Letras)",strlen(params),AdCost);
  662. }
  663. else if(IsDonator[playerid] >= 4)
  664. {
  665. format(gstr, sizeof(gstr),"Você fez um anúncio de facção %i characters, não custando nada.",strlen(params),AdCost);
  666. }
  667. SendClientMessage(playerid,COLOR_WHITE,gstr);
  668. FadvertSpamTime = 60;
  669. foreach(new i: Player) if(Logged{i} && AdvertsToggle{i}) SendSplitMessageF(i, COLOR_GREEN, "[Faction Advert] %s [%s]", params, GetFactionName(playerid));
  670. format(gstr, sizeof(gstr), "[Admin] ^^ Anúncio de facção por %s (ID %i)", NameEx(playerid), playerid);
  671. AdminBroadcast(gstr, 0);
  672. AddToLog("advert", gstr);
  673. return true;
  674. }
  675. CMD:membros(playerid, params[])
  676. {
  677. if(!Logged{playerid}) return SysMsg(playerid, "Faça o login primeiro.");
  678. new faction;
  679. if(sscanf(params, "i", faction))
  680. {
  681. if(Faction[playerid] == 0) return SysMsg(playerid, "Você não esta uma facção.");
  682. MemberBrowsing[playerid] = Faction[playerid];
  683. MemberListIndex[playerid] = 0;
  684. mysql_format(conn, mquery, sizeof(mquery), "SELECT Online,Name,FactionRank,FactionCustomRank FROM players WHERE Faction = %i ORDER BY FactionRank DESC LIMIT 20 OFFSET %i", Faction[playerid], MemberListIndex[playerid] * 20);
  685. mysql_pquery(conn, mquery, "DisplayFactionMemberList", "dd", playerid, MemberListIndex[playerid]);
  686. return true;
  687. }
  688. if(!IsPlayerAdminLevelOK(playerid, 2)) return SysMsg(playerid, AUTHMSG);
  689. if(faction == 0) return SysMsg(playerid, "Facção não pode ser 0. Por favor, veja /FIDS para uma facção válida.");
  690. MemberBrowsing[playerid] = faction;
  691. MemberListIndex[playerid] = 0;
  692. mysql_format(conn, mquery, sizeof(mquery), "SELECT Online,Name,FactionRank,FactionCustomRank FROM players WHERE Faction = %i ORDER BY FactionRank DESC LIMIT 20 OFFSET %i", faction, MemberListIndex[playerid] * 20);
  693. mysql_pquery(conn, mquery, "DisplayFactionMemberList", "dd", playerid, MemberListIndex[playerid]);
  694. return true;
  695. }
  696. CMD:faconline(playerid, params[])
  697. {
  698. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  699. mysql_pquery(conn, "SELECT COUNT(id) AS members, Faction FROM players WHERE Faction != 0 GROUP BY Faction", "LoadFactionOnline", "i", playerid);
  700. return true;
  701. }
  702. GREENSIDE::LoadFactionOnline(playerid)
  703. {
  704. new members[MAX_FACTIONS];
  705. for(new i = 0, r = cache_num_rows(); i < r; i++)
  706. {
  707. members[cache_get_field_content_int(i, "Faction")] = cache_get_field_content_int(i, "members");
  708. }
  709. gstr[0] = EOS;
  710. new membercount = 0;
  711. for(new i = 1; i < MAX_FACTIONS; i++)
  712. {
  713. if(IsFactionActive(i) == 1)
  714. {
  715. foreach(new p: Player)
  716. {
  717. if(Logged{p} && Faction[p] == i)
  718. {
  719. membercount ++;
  720. }
  721. }
  722. format(sgstr, sizeof(sgstr), "[{00B837}%i{FFFFFF}/{00B837}%i{FFFFFF}] %s\n", membercount, members[i], FACTIONS[i][FactionName]);
  723. strcat(gstr, sgstr);
  724. membercount = 0;
  725. }
  726. }
  727. Dialog_Show(playerid, DIALOG_NONE, DIALOG_STYLE_LIST, "Lista de facções", gstr, "Fechar!", "");
  728. return true;
  729. }
  730. CMD:sairfaccao(playerid, params[])//sairfaccao
  731. {
  732. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  733. if(Faction[playerid] == 0) return SysMsg(playerid,"Você não tem Faction para sair.");
  734. if(QuitFromFaction[playerid] != 0) return SysMsg(playerid,"Você já está desistindo, use '/accept quitfaction'.");
  735. if(IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Saia deste veículo primeiro.");
  736. QuitFromFaction[playerid] = Faction[playerid];
  737. if(strlen(FactionCustomRank[playerid]) >= 1) FactionCustomRank[playerid][0] = 0;
  738. SendClientMessageF(playerid,COLOR_WHITE, "Você tem certeza de que quer sair: %s. Escreva '/accept quitfaction' para confirmar.", GetFactionName(playerid));
  739. return true;
  740. }
  741. CMD:ranks(playerid)
  742. {
  743. if(!Logged{playerid}) return true;
  744. if(Faction[playerid] == 0) return SysMsg(playerid, "Você deve estar em uma facção para usar esse comando.");
  745. new f = Faction[playerid], col[12];
  746. SendClientMessageF(playerid, COLOR_WHITE, "Facção rank de {096483}%s", FACTIONS[f][FactionName]);
  747. for(new x = FACTIONS[f][FactionUberLeaderRank] - 1; x != -1; x--)
  748. {
  749. if(strlen(FactionRanks[f][x]))
  750. {
  751. if(x + 1 == FACTIONS[f][FactionUberLeaderRank]) col = "328332";
  752. else if(x + 1 == FACTIONS[f][FactionLeaderRank]) col = "4C924C";
  753. else col = "FFFFFF";
  754. SendClientMessageF(playerid, COLOR_WHITE, "{%s} Rank %i: %s", col, x + 1, FactionRanks[f][x]);
  755. }
  756. }
  757. return true;
  758. }
  759. CMD:removesubrank(playerid, params[])
  760. {
  761. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  762. if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção.");
  763. if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não tem um rank alto suficiente para fazer isso.");
  764. new pname[32], playa;
  765. if(sscanf(params, "s[32]", pname)) return SysMsg(playerid,"Use: /removesubrank [ID / Nome_Sobrenome]");
  766. playa = GetPlayerIDs(pname);
  767. if(!InvalidPlayer(playa))
  768. {
  769. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  770. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  771. if(Faction[playerid] != Faction[playa]) return SysMsg(playerid,"Esta pessoa não está na mesma facção que você.");
  772. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET FactionCustomRank = '' WHERE id = %i", SQLID[playa]);
  773. mysql_pquery(conn, mquery);
  774. FactionCustomRank[playa][0] = EOS;
  775. SendClientMessageF(playerid,COLOR_ORANGE, "Você removeu o sub-rank de %s.", NameEx(playa));
  776. SendClientMessageF(playa,COLOR_ORANGE, "%s removeu seu sub-rank.", NameEx(playerid));
  777. IsESU{playa} = false;
  778. return true;
  779. }
  780. else if(strfind(pname, "_", true) != -1)
  781. {
  782. new sqlid = MySQLCheckAccount(pname, playerid);
  783. if(sqlid == 0) return SysMsg(playerid, "Nome não encontrado na base de dados, por favor, tente novamente");
  784. if(sqlid == SQLID[playerid]) return SysMsg(playerid, "Name cannot be your account.");
  785. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET FactionCustomRank = '' WHERE id = %i", sqlid);
  786. mysql_pquery(conn, mquery);
  787. SendClientMessageF(playerid,COLOR_ORANGE, "Você removeu o sub-rank de %s.", RPName(pname));
  788. return true;
  789. }
  790. return true;
  791. }
  792. CMD:skin(playerid, params[])
  793. {
  794. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  795. if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção.");
  796. if(IsJailed[playerid] == 1) return SysMsg(playerid,"Aguarde até sair da prisão.");
  797. if(IsCuffed[playerid] == 1) return SysMsg(playerid,"Esta ação não pode ser executada enquanto você estiver em algemas.");
  798. if(IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Saia do veiculo primeiro.");
  799. if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK) return SysMsg(playerid,"Por favor, agite-se antes de mudar a skin.");
  800. new MaxNumber = GetFactionMaxSkins(Faction[playerid]);
  801. new f = Faction[playerid];
  802. if(isnull(params)) return SysMsgF(playerid,"Use: /skin [número] Por %s existem %i Skins, Use os números 1 para %i.",GetFactionName(playerid), MaxNumber, MaxNumber);
  803. if(!IsNumeric(params)) return SysMsg(playerid,"O número da pele deve ser um número.");
  804. new slot = strval(params);
  805. if(slot < 1 || slot > MaxNumber) return SysMsg(playerid,"Número inválido");
  806. new allowChange = 0;
  807. switch(Faction[playerid])
  808. {
  809. case FACTION_COP: if(IsPlayerInRangeOfPoint(playerid, 2.0,-786.8459,-401.8096,1802.0253) || IsPlayerInRangeOfPoint(playerid,2.0,324.203002, 309.210266, 999.14840)) allowChange = 1;
  810. case FACTION_SACFD:
  811. {
  812. if(IsPlayerInRangeOfPoint(playerid, 2.0, 2385.5320,230.0867,2004.1659) || IsPlayerInRangeOfPoint(playerid, 2.0,2385.8569,224.3492,2004.1659)) allowChange = 1;
  813. new Float:vPos[3];
  814. GetVehiclePos(GetNearestVehicle(playerid), vPos[0], vPos[1], vPos[2]);
  815. if(IsPlayerInRangeOfPoint(playerid, 4.0, vPos[0], vPos[1], vPos[2]) && IsFactionVehicle(GetNearestVehicle(playerid)) == FACTION_SACFD) allowChange = 1;
  816. }
  817. default: allowChange = 1;
  818. }
  819. if(allowChange == 0) return SysMsg(playerid, "Você precisa estar na área de troca de skins.");
  820. SetPlayerSkinEx(playerid, FACTIONS[f][FactionSkins][slot - 1]);
  821. Clothes[playerid][4] = FACTIONS[f][FactionSkins][slot - 1];
  822. cPlayersSkin[playerid] = FACTIONS[f][FactionSkins][slot - 1];
  823. MySQLUpdateInt(SQLID[playerid], "SkinSet5", Clothes[playerid][4], "players");
  824. MySQLUpdateInt(SQLID[playerid], "Skin", cPlayersSkin[playerid], "players");
  825. return true;
  826. }
  827. CMD:gunrack(playerid, params[])
  828. {
  829. if(!Logged{playerid}) return true;
  830. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você precisa estar em um veículo para usar este comando.");
  831. new faction = IsFactionVehicle(GetPlayerVehicleID(playerid)), veh = GetPlayerVehicleID(playerid), option[8], weap[24];
  832. if((Faction[playerid] == FACTION_COP || Faction[playerid] == FACTION_RESEARCH || Faction[playerid] == FACTION_PROP) && faction == Faction[playerid])
  833. {
  834. if(FVehicleData[veh][FactionVehID] != GetPlayerVehicleID(playerid)) return true;
  835. if(sscanf(params, "s[8]S()[24]", option, weap)) return SysMsg(playerid, "Use: /gunrack [pegar/guardar/mostrar] [Gunrack Slot] [nome da arma]");
  836. if(strcmp(option, "pegar", true) == 0 || strcmp(option, "get", true) == 0)
  837. {
  838. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM weapons WHERE Gunrack != -1 AND FCarID = %i AND WeaponID = %i AND Deleted = 0 AND WeaponPossession = 0 AND TrunkID = -1 AND HouseID = -1 AND Dropped = 0", FVehicleData[veh][FVSQLID], GetWeaponIdFromName(weap));
  839. mysql_pquery(conn, mquery, "ProcessGunrackTake", "ii", playerid, veh);
  840. return true;
  841. }
  842. else if(strcmp(option, "guardar", true) == 0 || strcmp(option, "place", true) == 0)
  843. {
  844. if(!strlen(weap)) return SysMsg(playerid, "Use: /gunrack guardar [Gunrack Slot] [Nome da arma]");
  845. new wep = GetWeaponIdFromName(weap);
  846. if(wep == -1) return SysMsg(playerid,"Nome da arma inválida.");
  847. if(wep < 1 || wep > 47) return SysMsg(playerid,"Arma inválida.");
  848. mysql_format(conn, mquery, sizeof(mquery), "SELECT id FROM weapons WHERE FCarID = %i AND Gunrack = 1 AND Deleted = 0 AND Dropped = 0", FVehicleData[veh][FVSQLID]);
  849. mysql_pquery(conn, mquery, "ProcessGunrackStore", "iii", playerid, veh, wep);
  850. return true;
  851. }
  852. else if(strcmp(option, "mostrar", true) == 0 || strcmp(option, "view", true) == 0)
  853. {
  854. mysql_format(conn, mquery, sizeof(mquery), "SELECT WeaponID, WeaponAmmo FROM weapons WHERE FCarID = %i AND Gunrack != -1 AND Deleted = 0 AND Dropped = 0", FVehicleData[veh][FVSQLID]);
  855. mysql_pquery(conn, mquery, "ProcessGunrackView", "i", playerid);
  856. return true;
  857. }
  858. else cmd_gunrack(playerid, "");
  859. }
  860. else SysMsg(playerid, "Você precisa ser um membro do SASP para usar esse comando.");
  861. return true;
  862. }
  863. GREENSIDE::ProcessGunrackTake(playerid, veh)
  864. {
  865. if(!cache_num_rows()) return SysMsg(playerid, "Você não tem uma arma armazenada no gunrack.");
  866. new wep = cache_get_field_content_int(0, "WeaponID");
  867. new slot = GetWeaponSlot(wep);
  868. if(WeaponData[playerid][slot][Weapon] != 0) return SysMsg(playerid, "Você já está segurando uma arma nesse slot.");
  869. if(GetFreeWeaponObjectIndex(playerid) == -1) return SysMsg(playerid, "Você não pode carregar mais armas no momento.");
  870. WeaponData[playerid][slot][WeaponID] = cache_get_field_content_int(0, "id");
  871. WeaponData[playerid][slot][WeaponTimestamp] = cache_get_field_content_int(0, "Timestamp");
  872. WeaponData[playerid][slot][wCreatorSQLID] = cache_get_field_content_int(0, "CreatorSQLID");
  873. WeaponData[playerid][slot][Weapon] = wep;
  874. WeaponData[playerid][slot][wOwnerSQLID] = cache_get_field_content_int(0, "OwnerSQLID");
  875. WeaponData[playerid][slot][WeaponAmmo] = cache_get_field_content_int(0, "WeaponAmmo");
  876. WeaponData[playerid][slot][WeaponType] = GetWeaponType(WeaponData[playerid][slot][Weapon]);
  877. WeaponData[playerid][slot][WeaponOrigin] = cache_get_field_content_int(0, "WeaponOrigin");
  878. WeaponData[playerid][slot][WeaponPossession] = cache_get_field_content_int(0, "WeaponPossession");
  879. SyncPlayerWeapons(playerid);
  880. SetPlayerArmedWeapon(playerid, WeaponData[playerid][slot][Weapon]);
  881. mysql_format(conn, mquery, sizeof(mquery), "UPDATE weapons SET FCarID = -1, Gunrack = -1, WeaponPossession = 1, OwnerSQLID = %i WHERE id = %i", SQLID[playerid], WeaponData[playerid][slot][WeaponID]);
  882. mysql_pquery(conn, mquery);
  883. SendClientMessageF(playerid, COLOR_DARKBLUE, "Você pegou um(a) %s do gunrack deste(a) %s.",GetWeaponNameFromID(WeaponData[playerid][slot][Weapon]), GetVehicleNameEx(FVehicleData[veh][FVModel]));
  884. format(sgstr, sizeof(sgstr),"* %s pegou alguma coisa do porta-arma do %s. *",NameRP(playerid), GetVehicleNameEx(FVehicleData[veh][FVModel]));
  885. SetPlayerChatBubble(playerid, sgstr, COLOR_EMOTE, 15.0, 5000);
  886. return true;
  887. }
  888. GREENSIDE::ProcessGunrackStore(playerid, veh, weapid)
  889. {
  890. if(cache_num_rows() == 2) return SysMsg(playerid, "Esse gunrack está cheio.");
  891. new slot = GetWeaponSlot(weapid);
  892. if(WeaponData[playerid][slot][Weapon] != weapid) return SysMsg(playerid, "Você não tem essa arma para guardá-la.");
  893. mysql_format(conn, mquery, sizeof(mquery), "UPDATE weapons SET FCarID = %i, Gunrack = 1, WeaponPossession = 0, WeaponAmmo = %i WHERE id = %i", FVehicleData[veh][FVSQLID], WeaponData[playerid][slot][WeaponAmmo], WeaponData[playerid][slot][WeaponID]);
  894. mysql_pquery(conn, mquery);
  895. ResetWeaponVariables(playerid, 0, slot);
  896. SyncPlayerWeapons(playerid);
  897. SendClientMessageF(playerid, COLOR_DARKBLUE, "Você guardou uma %s no gunrack desse(a) %s.",GetWeaponNameFromID(weapid), GetVehicleNameEx(FVehicleData[veh][FVModel]));
  898. format(gstr, sizeof(gstr), "* %s guarda alguma coisa no gunrack do(a) %s. *", NameRP(playerid), GetVehicleNameEx(FVehicleData[veh][FVModel]));
  899. SetPlayerChatBubble(playerid, gstr, COLOR_EMOTE, 15.0, 5000);
  900. return true;
  901. }
  902. GREENSIDE::ProcessGunrackView(playerid)
  903. {
  904. if(!cache_num_rows()) return SysMsg(playerid, "Esse gunrack está vazio.");
  905. new wep, ammo;
  906. for(new i = 0, x = cache_num_rows(); i < x; i++)
  907. {
  908. wep = cache_get_field_content_int(i, "WeaponID");
  909. ammo = cache_get_field_content_int(i, "WeaponAmmo");
  910. SendClientMessageF(playerid, COLOR_DARKBLUE, "[Gun Rack Slot %i] Arma: %s [Munições: %i]", i + 1, GetWeaponNameFromID(wep), ammo);
  911. }
  912. return true;
  913. }
  914. CMD:m(playerid, params[])
  915. {
  916. if(!Logged{playerid}) return true;
  917. if(Muted[playerid] > 0) return SysMsgF(playerid,"Você está mudo. (%i minutos restantes)", Muted[playerid]);
  918. new CarId = GetNearestVehicle(playerid), faction = IsFactionVehicle(CarId);
  919. if(IsCop(playerid) || Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_RESEARCH)
  920. {
  921. if(isnull(params)) return SysMsg(playerid,"Use: MEGAPHONE: /m [mensagem]");
  922. if(CarId == 0 || faction == 0 || Faction[playerid] != faction) return SysMsg(playerid,"Você deve estar dentro ou perto de um veículo de facção adequado.");
  923. new Float:vpos[3];
  924. GetVehiclePos(CarId, vpos[0], vpos[1], vpos[2]);
  925. if(!IsPlayerInVehicle(playerid, CarId) && !IsPlayerInRangeOfPoint(playerid, 4.0, vpos[0], vpos[1], vpos[2])) return SysMsg(playerid, "Você deve estar dentro ou perto de um veículo de facção adequado.");
  926. if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 510) return SysMsg(playerid,"Você deve estar dentro ou perto de um veículo de facção adequado.");
  927. format(gstr, sizeof(gstr),"[%s] o< %s",NameRP(playerid),params);
  928. ProxDetector(100.0,playerid,gstr,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW);
  929. for(new h = 0; h < MAX_HOUSES; h++)
  930. {
  931. if(IsPlayerInRangeOfPoint(playerid, 60, HouseData[h][oPosX], HouseData[h][oPosY], HouseData[h][oPosZ]) && GetPlayerVirtualWorld(playerid) == HouseData[h][HouseExtVW])
  932. {
  933. foreach(new i: Player)
  934. {
  935. if(IsInHouseID[i] == h)
  936. {
  937. SendClientMessageF(i,COLOR_YELLOW,"[%s, lado de fora] o< %s",NameRP(playerid),params);
  938. }
  939. }
  940. }
  941. }
  942. for(new h = 0; h < MAX_BIZZ; h++)
  943. {
  944. if(IsPlayerInRangeOfPoint(playerid, 60, BizzData[h][oPosX], BizzData[h][oPosY], BizzData[h][oPosZ]) && GetPlayerVirtualWorld(playerid) == 0)
  945. {
  946. foreach(new i: Player)
  947. {
  948. if(IsInBizzID[i] == h)
  949. {
  950. SendClientMessageF(i,COLOR_YELLOW,"[%s, lado de fora] o< %s",NameRP(playerid),params);
  951. }
  952. }
  953. }
  954. }
  955. for(new h = 0; h < MAX_GARAGES; h++)
  956. {
  957. if(IsPlayerInRangeOfPoint(playerid, 60, GarageData[h][oPosX], GarageData[h][oPosY], GarageData[h][oPosZ]))
  958. {
  959. foreach(new i: Player)
  960. {
  961. if(IsInGarageID[i] == h)
  962. {
  963. SendClientMessageF(i,COLOR_YELLOW,"[%s, lado de fora] o< %s",NameRP(playerid),params);
  964. }
  965. }
  966. }
  967. }
  968. }
  969. else return SysMsg(playerid,"Você não pode usar isso.");
  970. return true;
  971. }
  972. CMD:f(playerid, params[])
  973. {
  974. if(!Logged{playerid}) return true;
  975. if(Muted[playerid] > 0) return SysMsgF(playerid,"Você está mudo. (%i minutos restantes)", Muted[playerid]);
  976. if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção.");
  977. if(FACTIONS[Faction[playerid]][FactionChatToggleOff] == 1) return SysMsg(playerid,"O bate-papo de Faction está desativado para sua facção.");
  978. if(ptogf{playerid}) return SysMsg(playerid,"Você tem conversa de facção desativada.");
  979. if(isnull(params)) return SysMsg(playerid,"Use: Faction Chat: /f [mensagem]");
  980. if(strlen(FactionCustomRank[playerid]) != 0) format(gstr, sizeof(gstr),"[%s(%s) %s] %s", GetFactionRankName(Faction[playerid], FactionRank[playerid]), FactionCustomRank[playerid], NameEx(playerid), params);
  981. else format(gstr, sizeof(gstr),"[%s %s] %s", GetFactionRankName(Faction[playerid], FactionRank[playerid]), NameEx(playerid), params);
  982. foreach(new i: Player) if(Logged{i} && Faction[i] == Faction[playerid] && !ptogf{i}) SendSplitMessage(i, 0x80BCFFFF, gstr);
  983. return true;
  984. }
  985. CMD:togf(playerid, params[])
  986. {
  987. if(!Logged{playerid}) return true;
  988. if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção.");
  989. if(!ptogf{playerid})
  990. {
  991. ptogf{playerid} = true;
  992. SysMsg(playerid,"Você desabilitou o bate-papo da facção.");
  993. }
  994. else
  995. {
  996. ptogf{playerid} = false;
  997. SysMsg(playerid,"Você habilitou o bate-papo por facção.");
  998. }
  999. return true;
  1000. }
  1001. CMD:fo(playerid, params[]) return cmd_fhc(playerid, params);
  1002. CMD:fhc(playerid, params[])
  1003. {
  1004. if(!Logged{playerid}) return true;
  1005. if(Muted[playerid] > 0) return SysMsgF(playerid,"Você está mudo. (%i minutos restantes)", Muted[playerid]);
  1006. if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção.");
  1007. if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não tem um rank alto suficiente para fazer isso.");
  1008. if(isnull(params)) return SysMsg(playerid,"Use: Faction Chat: /fhc [mensagem]");
  1009. foreach(new i: Player) if(Logged{i} && Faction[i] == Faction[playerid] && IsValidLeaderRank(Faction[i], FactionRank[i])) SendSplitMessageF(i, 0x459CFFFF, "[Faction HC(%s) %s] %s", GetFactionRankName(Faction[playerid], FactionRank[playerid]), NameEx(playerid), params);
  1010. return true;
  1011. }
  1012. CMD:fan(playerid, params[])
  1013. {
  1014. if(!Logged{playerid}) return true;
  1015. if(Muted[playerid] > 0) return SysMsgF(playerid,"Você está mudo. (%i minutos restantes)", Muted[playerid]);
  1016. if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção.");
  1017. if(ptogf{playerid}) return SysMsg(playerid,"Você tem conversa de facção desativada.");
  1018. if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não tem um rank alto suficiente para fazer isso.");
  1019. if(isnull(params)) return SysMsg(playerid,"Use: Faction Chat: /fan [mensagem]");
  1020. foreach(new i: Player) if(Logged{i} && Faction[i] == Faction[playerid]) SendSplitMessageF(i, 0x459CFFFF, "[Faction announcement(%s) %s] %s", GetFactionRankName(Faction[playerid], FactionRank[playerid]), NameEx(playerid), params);
  1021. return true;
  1022. }
  1023. CMD:d(playerid) return SysMsg(playerid, "/d foi renomeado para /dr. Use isso de agora em diante.");
  1024. CMD:dr(playerid, params[])
  1025. {
  1026. if(!Logged{playerid}) return true;
  1027. if(Muted[playerid] > 0) return SysMsgF(playerid,"Você está mudo. (%i minutos restantes)", Muted[playerid]);
  1028. if(IsCop(playerid) || Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_RESEARCH)
  1029. {
  1030. if(Duty[playerid] == 0 && Faction[playerid] != FACTION_RESEARCH) return SysMsg(playerid,"Você deve estar de serviço para usar isso.");
  1031. if(isnull(params)) return SysMsg(playerid,"Use: Department Chat: /dr [mensagem]");
  1032. new DeptName[10];
  1033. if(Faction[playerid] == FACTION_COP) DeptName = "SASP";
  1034. else if(Faction[playerid] == FACTION_SACFD) DeptName = "SACFD";
  1035. else if(Faction[playerid] == FACTION_RESEARCH) DeptName = "Agency";
  1036. foreach(new i: Player)
  1037. {
  1038. if(!Logged{i} || playerid == i)
  1039. {
  1040. continue;
  1041. }
  1042. if(Faction[i] == FACTION_RESEARCH)
  1043. {
  1044. SendSplitMessageF(i, COLOR_ORANGE, "[%s] %s %s diz: %s", DeptName, GetFactionRankName(Faction[playerid], FactionRank[playerid]), NameRP(playerid), params);
  1045. continue;
  1046. }
  1047. if(Duty[i] == 1 && (IsCop(i) || Faction[i] == FACTION_SACFD))
  1048. {
  1049. SendSplitMessageF(i, COLOR_ORANGE, "[%s] %s %s diz: %s", DeptName, GetFactionRankName(Faction[playerid], FactionRank[playerid]), NameRP(playerid), params);
  1050. continue;
  1051. }
  1052. }
  1053. format(gstr, sizeof(gstr), "%s diz (dept. radio): %s", NameRP(playerid), params);
  1054. ProxDetector(15.0, playerid, gstr, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4, COLOR_FADE5);
  1055. }
  1056. else SysMsg(playerid, "Você não está na facção correta para usar isso.");
  1057. return true;
  1058. }
  1059. CMD:fcars(playerid)
  1060. {
  1061. if(!Logged{playerid}) return true;
  1062. if(Faction[playerid] == 0) return SysMsg(playerid, "Você deve estar em uma facção.");
  1063. new textBody[3500];
  1064. new Vcount = 0;
  1065. strcat(textBody, "Nome do veículo\tVeículo ID\tClassificação exigida\n");
  1066. for(new v = 0, x = GetVehiclePoolSize(); v <= x; v++)
  1067. {
  1068. if(IsVehicleSpawned(FVehicleData[v][FactionVehID]) && Faction[playerid] == FVehicleData[v][FVFaction])
  1069. {
  1070. Vcount ++;
  1071. format(sgstr, sizeof(sgstr), "%s\t%i\t%i\n", GetVehicleNameEx(FVehicleData[v][FVModel]), FVehicleData[v][FactionVehID], FVehicleData[v][FVMinRank]);
  1072. strcat(textBody, sgstr);
  1073. }
  1074. }
  1075. if(Vcount > 0)
  1076. {
  1077. format(tgstr, sizeof(tgstr), "%s - %i Veículos", FACTIONS[Faction[playerid]][FactionName], Vcount);
  1078. Dialog_Show(playerid, DIALOG_NONE, DIALOG_STYLE_TABLIST_HEADERS, tgstr, textBody, "Pronto", "");
  1079. }
  1080. else SysMsg(playerid, "Nenhum veículo de Faction encontrado para sua Faction.");
  1081. return true;
  1082. }
  1083. CMD:ultimodirigido(playerid, params[])//ultimodirigido
  1084. {
  1085. if(!Logged{playerid}) return SysMsg(playerid,"Você precisa estar logado para usar esta ferramenta.");
  1086. if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção.");
  1087. new Car = GetPlayerVehicleID(playerid);
  1088. if(Car == 0 || IsInFactionCar[playerid] == 0) return SysMsg(playerid,"Você não está em um veiculo de facção.");
  1089. new h, m, temp, fv = IsInFactionCar[playerid];
  1090. if(FVehicleData[fv][FactionVehID] == Car)
  1091. {
  1092. if(FVehicleData[fv][LastDriver] == 0) return SysMsg(playerid,"Este veículo ainda não foi conduzido.");
  1093. temp = gettime() - FVehicleData[fv][LastDriverTime];
  1094. while(temp > 3600)
  1095. {
  1096. temp -= 3600;
  1097. h++;
  1098. }
  1099. while(temp > 60)
  1100. {
  1101. temp -= 60;
  1102. m++;
  1103. }
  1104. SendClientMessageF(playerid, COLOR_WHITE, "Esse %s foi conduzido pela última vez %s %i horas %i minutos %i segundos.", GetVehicleName(Car), GetSQLName(FVehicleData[fv][LastDriver]), h, m, temp);
  1105. }
  1106. return true;
  1107. }
  1108. CMD:addsiren(playerid, params[])
  1109. {
  1110. if(!Logged{playerid}) return true;
  1111. if(IsCop(playerid) || Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_RESEARCH)
  1112. {
  1113. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você deve estar em um veículo para usar este comando.");
  1114. if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid, "Você não tem um rank apropriado para usar este comando.");
  1115. new vehicleid = GetPlayerVehicleID(playerid);
  1116. if(IsFactionVehicle(vehicleid) != Faction[playerid]) return SysMsg(playerid, "Você precisa estar em um veiculo de facção.");
  1117. if(IsPushBike(vehicleid)) return SysMsg(playerid, "Não é possivel adicionar sirene neste veiculo.");
  1118. if(!IsPlayerInRangeOfPoint(playerid, 5.0, FVehicleData[vehicleid][LocationX], FVehicleData[vehicleid][LocationY], FVehicleData[vehicleid][LocationZ])) return SysMsg(playerid, "Você deve estar perto do ponto de spawn do veículo.");
  1119. mysql_format(conn, mquery, sizeof(mquery), "SELECT HasSiren FROM fveh WHERE id = %i", FVehicleData[vehicleid][FVSQLID]);
  1120. mysql_pquery(conn, mquery, "AssignFVehSiren", "dd", playerid, vehicleid);
  1121. return true;
  1122. }
  1123. else SysMsg(playerid, "Você deve estar em uma facção do governo para usar esse comando.");
  1124. return true;
  1125. }
  1126. CMD:buscartelefone(playerid, params[])
  1127. {
  1128. if(!Logged{playerid}) return true;
  1129. if(IsCop(playerid) || IsPlayerAdmin(playerid) || Faction[playerid] == FACTION_RESEARCH)
  1130. {
  1131. new pnumber, zone[MAX_ZONE_NAME];
  1132. if(sscanf(params, "i", pnumber)) return SysMsg(playerid,"Use: /buscartelefone [número telefonico] *Dará um nome de área com base em seu número de telefone*");
  1133. if(pnumber < 100000 || pnumber > 9999999) return SysMsg(playerid,"Número de telefone inválido.");
  1134. if(!HasPhoneSignal(playerid)) return SysMsg(playerid, "Nenhum sinal de satélite encontrado. [E001]");
  1135. foreach(new i: Player)
  1136. {
  1137. if(Logged{i} && PhoneData[i][pNumber] == pnumber)
  1138. {
  1139. if(PhoneData[i][pPower] == 0) return SysMsg(playerid,"Nenhum sinal de satélite encontrado. [E002]");
  1140. if(!HasPhoneSignal(i)) return SysMsg(playerid, "Nenhum sinal de satélite encontrado. [E003]");
  1141. if(IsInHouseID[i] != -1) Get2DZone(HouseData[IsInHouseID[i]][oPosX], HouseData[IsInHouseID[i]][oPosY], zone, MAX_ZONE_NAME);
  1142. else if(IsInBizzID[i] != -1) Get2DZone(BizzData[IsInBizzID[i]][oPosX], BizzData[IsInBizzID[i]][oPosY], zone, MAX_ZONE_NAME);
  1143. else if(IsInGarageID[i] != -1) Get2DZone(GarageData[IsInGarageID[i]][oPosX], GarageData[IsInGarageID[i]][oPosY], zone, MAX_ZONE_NAME);
  1144. else GetPlayer2DZone(i, zone, MAX_ZONE_NAME);
  1145. if(Faction[playerid] == FACTION_RESEARCH) SendClientMessageF(playerid, COLOR_WHITE, "O numero do telefone %i foi localizado dentro de %s. (%s de você)", pnumber, zone, GetNSEWBetweenPlayers(playerid, i));
  1146. else SendClientMessageF(playerid, COLOR_WHITE, "O numero do telefone %i foi localizado dentro de %s.", pnumber, zone);
  1147. return true;
  1148. }
  1149. }
  1150. for(new i = 0; i < MAX_GUNS; i++)
  1151. {
  1152. if(WeaponDrop[i][Type] == 6)
  1153. {
  1154. if(WeaponDrop[i][DropPhonePower] == 1)
  1155. {
  1156. if(WeaponDrop[i][DropPhoneNumber] == pnumber)
  1157. {
  1158. Get2DZone(WeaponDrop[i][wX], WeaponDrop[i][wY], zone, MAX_ZONE_NAME);
  1159. SendClientMessageF(playerid, COLOR_WHITE, "O numero do telefone %i foi localizado dentro de %s.", pnumber, zone);
  1160. return true;
  1161. }
  1162. }
  1163. }
  1164. }
  1165. SysMsg(playerid,"Nenhum sinal de satélite encontrado. [E004]");
  1166. }
  1167. else SysMsg(playerid,"Você precisa ser um membro do SASP ou Aperture.");
  1168. return true;
  1169. }
  1170. CMD:equipar(playerid)//equipar
  1171. {
  1172. if(!Logged{playerid}) return true;
  1173. gstr[0] = EOS;
  1174. if(IsCop(playerid) && (IsPlayerInRangeOfPoint(playerid,3.5,651.307861, -570.924926, 1004.765808) || IsPlayerInRangeOfPoint(playerid,3.5,327.232574, 307.493316, 999.148437) || IsPlayerInRangeOfPoint(playerid,2.0,1234.5601,767.7869,1010.8853) || IsPlayerInRangeOfPoint(playerid, 2.0, -330.4111,1793.7444,999.3145)))
  1175. {
  1176. if(HasTaser{playerid}) return SysMsg(playerid, "Você não pode usar este comando se estiver com um Taser equipado.");
  1177. if(FactionRank[playerid] < 2) return SysMsg(playerid, "Você precisa ser rank 2 para isso.");
  1178. gstr[0] = EOS;
  1179. strcat(gstr, "Oficial de patrulha\nDetective");
  1180. if(FactionRank[playerid] > 3) strcat(gstr, "\nShotgun\nMP5");
  1181. if(FactionRank[playerid] > 6) strcat(gstr, "\nM4\nSPAS-12\nSniper");
  1182. if(strfind(FactionCustomRank[playerid], "SID") != -1 || IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) strcat(gstr, "\nGPS montável");
  1183. strcat(gstr, "\nDesarmar");
  1184. Dialog_Show(playerid, PoliceEquip, DIALOG_STYLE_LIST, "Police Cache de equipamento", gstr, "Selecionar", "Sair");
  1185. return true;
  1186. }
  1187. else if(Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_COP)
  1188. {
  1189. new vid = GetPlayerVehicleID(playerid), closest;
  1190. if(vid == 0) closest = GetClosestVehicle(playerid);
  1191. new Float:vpos[3];
  1192. GetVehiclePos(closest, vpos[0], vpos[1], vpos[2]);
  1193. new isESUVeh = 0;
  1194. switch(GetVehicleModel(closest))
  1195. {
  1196. case 427, 528, 433, 544, 407: isESUVeh = 1;
  1197. }
  1198. if(IsFactionVehicle(closest) == FACTION_SACFD || (IsFactionVehicle(vid) == FACTION_COP && IsESU{playerid} && isESUVeh) || (IsFactionVehicle(closest) == FACTION_COP && IsESU{playerid} && IsPlayerInRangeOfPoint(playerid, 7.0, vpos[0], vpos[1], vpos[2]) && isESUVeh))
  1199. {
  1200. format(gstr, sizeof(gstr), "Extintor de incêndio\nPole\nMachado de Fogo\nPá\nCamera\n");
  1201. if(FactionRank[playerid] > 4) strcat(gstr, "\nMotosserra");
  1202. strcat(gstr, "\nDesarmar");
  1203. Dialog_Show(playerid, FireEquip, DIALOG_STYLE_LIST, "Cache de equipamento", gstr, "Selecionar", "Sair");
  1204. return true;
  1205. }
  1206. }
  1207. else if(Faction[playerid] == FACTION_NEWS)
  1208. {
  1209. if(IsPlayerInRangeOfPoint(playerid, 5.0, 1221.7062, 229.4432, 1019.5291) || IsFactionVehicle(GetNearestVehicle(playerid)) == Faction[playerid])
  1210. {
  1211. new wep, ammo;
  1212. GetPlayerWeaponData(playerid, GetWeaponSlot(43), wep, ammo);
  1213. if(wep != 0) return SysMsg(playerid, "Você já tem uma camera.");
  1214. GivePlayerWeaponEx(playerid,43,1000, 3); //Camera
  1215. SendClientMessage(playerid, COLOR_BLUE, "Camera recebida.");
  1216. return true;
  1217. }
  1218. }
  1219. else SysMsg(playerid, "Eu acho que não amigo.");
  1220. return true;
  1221. }
  1222. CMD:ammobox(playerid)
  1223. {
  1224. if(Faction[playerid] != FACTION_RESEARCH) return true;
  1225. if(!IsPlayerInRangeOfPoint(playerid, 2.5, 248.341934, 1859.595825, 14.084012)) return true;
  1226. Inventory[playerid][AmmoBox][AMMOBOX_PISTOL] = 10;
  1227. Inventory[playerid][AmmoBox][AMMOBOX_SMG] = 10;
  1228. Inventory[playerid][AmmoBox][AMMOBOX_SHOTGUN] = 10;
  1229. Inventory[playerid][AmmoBox][AMMOBOX_RIFLE] = 10;
  1230. Inventory[playerid][AmmoBox][AMMOBOX_ASSAULT] = 10;
  1231. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET AmmoBoxPistol = 10, AmmoBoxSMG = 10, AmmoBoxShotgun = 10, AmmoBoxRifle = 10, AmmoBoxAssaultR = 10 WHERE id = %i", SQLID[playerid]);
  1232. mysql_pquery(conn, mquery);
  1233. return true;
  1234. }
  1235. CMD:armas(playerid)//armas
  1236. {
  1237. if(!Logged{playerid}) return true;
  1238. gstr[0] = EOS;
  1239. if(Faction[playerid] == FACTION_RESEARCH)
  1240. {
  1241. if(IsPlayerInRangeOfPoint(playerid, 2.5, 248.341934, 1859.595825, 14.084012) || IsPlayerInRangeOfPoint(playerid, 2.5, 250.1942,1898.0831,1100.2180))
  1242. {
  1243. format(sgstr, sizeof(sgstr), "GPS montável\nCamera\nLata de spray\nCassetete\nFaca\nKatana\n9mm\nPistola silenciada\nDesert Eagle\nShotgun\nSPAS-12\nUzi\nTec9\nMP5\nAK-47\nM4\nCountry Rifle\nSniper Rifle\nPára-quedas\nGás lacrimogêneo\nDesarmar");
  1244. Dialog_Show(playerid, APWeapons, DIALOG_STYLE_LIST, "Cache de armas de abertura", sgstr, "Selecionar", "Sair");
  1245. return true;
  1246. }
  1247. }
  1248. else SysMsg(playerid, "Eu acho que não amigo.");
  1249. return true;
  1250. }
  1251. CMD:health(playerid)
  1252. {
  1253. if(!Logged{playerid}) return true;
  1254. if(Cash[playerid] < 100) return SysMsg(playerid, "Você precisa de $100 para isso.");//saude
  1255. if(IsCop(playerid))
  1256. {
  1257. if(IsPlayerInRangeOfPoint(playerid, 2.0, 653.7676, -570.6655, 1004.7658) || IsPlayerInRangeOfPoint(playerid, 2.0, 320.981262, 308.219970, 999.148437) || IsPlayerInRangeOfPoint(playerid,2.0, 1234.5601, 767.7869, 1010.8853) || IsPlayerInRangeOfPoint(playerid, 2.0, -330.4867, 1792.1184, 999.3145))
  1258. {
  1259. Dialog_Show(playerid, HealthDialog, DIALOG_STYLE_MSGBOX, "Selecione tipo de colete", "Selecione tipo de colete", "Colete leve", "Colete pesado");
  1260. return true;
  1261. }
  1262. }
  1263. else if(Faction[playerid] == FACTION_SACFD)
  1264. {
  1265. if(IsPlayerInRangeOfPoint(playerid, 2.0, 2374.1396, 235.2579, 2004.1659) || IsPlayerInRangeOfPoint(playerid, 2.0, -754.2998,-423.5245,1440.0979))
  1266. {
  1267. RestrictedVest{playerid} = true;
  1268. SetPlayerHealthEx(playerid, 100.0);
  1269. SetPlayerArmourEx(playerid, 50.0, 1);
  1270. GivePlayerCash(playerid, -100);
  1271. SendClientMessage(playerid, COLOR_BLUE, "> Saúde e colete restauradas. (-$100)");
  1272. return true;
  1273. }
  1274. }
  1275. else if(Faction[playerid] == FACTION_RESEARCH)
  1276. {
  1277. if(IsPlayerInRangeOfPoint(playerid,2.0,243.29104,1858.558349,14.084012) || IsPlayerInRangeOfPoint(playerid, 2.0, 247.9519,1894.1075,1100.2180) || IsPlayerInRangeOfPoint(playerid, 2.0, 1010.9411, -1138.9850, 2025.2595))
  1278. {
  1279. Dialog_Show(playerid, HealthDialog, DIALOG_STYLE_MSGBOX, "Selecione tipo de colete", "Selecione tipo de colete", "Colete leve", "Colete pesado");
  1280. return true;
  1281. }
  1282. }
  1283. return true;
  1284. }
  1285. CMD:alias(playerid, params[])//apelido
  1286. {
  1287. if(Faction[playerid] == FACTION_RESEARCH || Faction[playerid] == FACTION_COP || IsPlayerAdmin(playerid))
  1288. {
  1289. if(IsPlayerInRangeOfPoint(playerid, 3.0, -219.4361,-316.4091,2030.7196) || IsPlayerInRangeOfPoint(playerid, 3.0, 248.341934, 1859.595825, 14.084012) || IsPlayerInRangeOfPoint(playerid, 3.0, 656.1666, -568.3339, 1001.1180) && Faction[playerid] == FACTION_COP || IsPlayerAdmin(playerid))
  1290. {
  1291. if(Faction[playerid] == FACTION_COP && strfind(FactionCustomRank[playerid], "SID") == -1) return SysMsg(playerid, "Você deve ser um membro SID para usar isso.");
  1292. if(sscanf(params, "s[24]", hmData[playerid][hmNewName])) return SysMsg(playerid,"Use: /alias [Nome_Sobrenome]");
  1293. if(strcmp(GetName(playerid),hmData[playerid][hmNewName],false) == 0) return SysMsg(playerid,"Você já está usando esse nome.");
  1294. if(!IsValidRoleplayName(hmData[playerid][hmNewName])) return SysMsg(playerid,"Esse nome não é RP.");
  1295. if(strcmp(hmData[playerid][hmNewName], hmData[playerid][hmOldName], true)) // IF NEW NAME IS NOT THEIR REAL NAME
  1296. {
  1297. if(MySQLCheckAccount(hmData[playerid][hmNewName], playerid) != 0) return SysMsg(playerid,"Você não pode usar um nome que já existe"); // CHECK IF EXISTS, IF NEW NAME IS REAL NAME, WORK.
  1298. }
  1299. if(strlen(hmData[playerid][hmNewName]) > 24) return SysMsg(playerid,"Error: O comprimento máximo do nome é de 24 caracteres.");
  1300. if(hmData[playerid][hmActive] == 1) return SysMsg(playerid, "Você não pode usar isso quando você já está alias. Volte ao seu nome original e depois alias de novo.");
  1301. format(hmData[playerid][hmOldName], MAX_PLAYER_NAME, GetName(playerid));
  1302. if(hmData[playerid][hmActive] == 0)
  1303. {
  1304. format(hmData[playerid][hmOldName], MAX_PLAYER_NAME, GetName(playerid));
  1305. }
  1306. if(SetPlayerName(playerid, hmData[playerid][hmNewName]) != 1) return SysMsg(playerid, "Esse nome é muito curto, muito longo, em uso, o mesmo ou contém caracteres inválidos.");
  1307. SendClientMessageF(playerid,COLOR_DARKBLUE,"Você mudou seu apelido para: %s. Use /removealiaspara retornar ao seu nome original.", hmData[playerid][hmNewName]);
  1308. if(Faction[playerid] == FACTION_RESEARCH)
  1309. {
  1310. foreach(new i: Player)
  1311. {
  1312. if(Faction[i] == FACTION_RESEARCH && i != playerid)
  1313. {
  1314. SendClientMessageF(i,COLOR_DARKBLUE,"%s mudou seu apelido para %s.", hmData[playerid][hmOldName], hmData[playerid][hmNewName]);
  1315. }
  1316. }
  1317. }
  1318. if(!strcmp(hmData[playerid][hmNewName], hmData[playerid][hmOldName], true))
  1319. {
  1320. hmData[playerid][hmActive] = 0;
  1321. return true;
  1322. }
  1323. hmData[playerid][hmActive] = 1;
  1324. }
  1325. else return SysMsg(playerid, "Você é precisa estar em estar na bancada para ser capaz de usar este comando.");
  1326. }
  1327. else return SysMsg(playerid, CMDFMSG);
  1328. return true;
  1329. }
  1330. CMD:removealias(playerid)
  1331. {
  1332. if(Faction[playerid] == FACTION_RESEARCH || Faction[playerid] == FACTION_COP || IsPlayerAdmin(playerid))
  1333. {
  1334. if(IsPlayerInRangeOfPoint(playerid, 3.0, -219.4361,-316.4091,2030.7196) || IsPlayerInRangeOfPoint(playerid, 3.0, 248.341934, 1859.595825, 14.084012) || IsPlayerInRangeOfPoint(playerid, 3.0, 656.1666, -568.3339, 1001.1180) && Faction[playerid] == FACTION_COP || IsPlayerAdmin(playerid))
  1335. {
  1336. if(Faction[playerid] == FACTION_COP && strfind(FactionCustomRank[playerid], "SID") == -1) return SysMsg(playerid, "Você deve ser o SID do membro para usar este.");
  1337. if(strlen(hmData[playerid][hmOldName]) < 4) return SysMsg(playerid, "Você não está alias.");
  1338. SetPlayerName(playerid, hmData[playerid][hmOldName]);
  1339. hmData[playerid][hmActive] = 0;
  1340. hmData[playerid][hmOldName][0] = 0;
  1341. hmData[playerid][hmNewName][0] = 0;
  1342. SendClientMessage(playerid, COLOR_BLUE, "Você voltou ao nome do seu personagem.");
  1343. }
  1344. else return SysMsg(playerid, "Você precisa estar no banco de trabalho para poder usar esse comando.");
  1345. }
  1346. else return SysMsg(playerid, CMDFMSG);
  1347. return true;
  1348. }
  1349. CMD:attachgps(playerid, params[])
  1350. {
  1351. if(!Logged{playerid}) return true;
  1352. if(HasGPSMount[playerid] != -1) return SysMsg(playerid, "Você não possui um GPS montável em você.");
  1353. if(Faction[playerid] == FACTION_COP || Faction[playerid] == FACTION_RESEARCH)
  1354. {
  1355. new vid = GetPlayerVehicleID(playerid), closest;
  1356. if(vid == 0)
  1357. {
  1358. closest = GetClosestVehicle(playerid);
  1359. new Float:vpos[3];
  1360. GetVehiclePos(closest, vpos[0], vpos[1], vpos[2]);
  1361. if(closest == VehicleData[closest][IdVehicle] && IsPlayerInRangeOfPoint(playerid, 3.0, vpos[0], vpos[1], vpos[2]))
  1362. {
  1363. HasGPSMount[playerid] = VehicleData[closest][VehSQLID];
  1364. MySQLUpdateInt(SQLID[playerid], "GPSMount", VehicleData[closest][VehSQLID], "players");
  1365. SendClientMessage(playerid, COLOR_WHITE, "Você montou o dispositivo GPS no veículo, você pode acompanhá-lo usando /ping");
  1366. format(gstr, sizeof(gstr),"* %s pega um pequeno dispositivo e o planta sob o veículo *",NameRP(playerid));
  1367. SetPlayerChatBubble(playerid, gstr, COLOR_EMOTE, 15.0, 6000);
  1368. OnePlayAnim(playerid, "BOMBER","BOM_Plant_Loop",4.0, 0, 0, 0, 0, 0); // Place Bomb
  1369. return true;
  1370. }
  1371. }
  1372. }
  1373. return true;
  1374. }
  1375. CMD:ping(playerid, params[])
  1376. {
  1377. if(!Logged{playerid}) return true;
  1378. if(HasGPSMount[playerid] < 1) return SysMsg(playerid, "Você não montou um GPS em um veículo");
  1379. if(Faction[playerid] == FACTION_COP || Faction[playerid] == FACTION_RESEARCH)
  1380. {
  1381. for(new v = 1, x = GetVehiclePoolSize(); v <= x; v++)
  1382. {
  1383. if(VehicleData[v][VehSQLID] == HasGPSMount[playerid])
  1384. {
  1385. new zone[MAX_ZONE_NAME];
  1386. if(!IsVehicleSpawned(VehicleData[v][IdVehicle]))
  1387. {
  1388. format(sgstr,sizeof(sgstr),"* %s tira um dispositivo e empurra alguns botões *", NameRP(playerid));
  1389. ProxDetector(20.0,playerid,sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  1390. PlayerPlaySound(playerid, SOUND_CHECKPOINT, 0.0, 0.0, 0.0);
  1391. SysMsg(playerid,"{FFFFFF}*** To dispositivo não recebeu resposta ***");
  1392. return true;
  1393. }
  1394. GetVehicle2DZone(VehicleData[v][IdVehicle], zone, MAX_ZONE_NAME);
  1395. format(sgstr,sizeof(sgstr),"* %s tira um dispositivo e empurra alguns botões *", NameRP(playerid));
  1396. ProxDetector(20.0,playerid,sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  1397. format(sgstr,sizeof(sgstr),"{FFFFFF}*** O veículo foi localizado em {FF0000}%s {FFFFFF}***",zone);
  1398. SendClientMessage(playerid,COLOR_WHITE,sgstr);
  1399. PlayerPlaySound(playerid, SOUND_CHECKPOINT, 0.0, 0.0, 0.0);
  1400. return true;
  1401. }
  1402. }
  1403. }
  1404. return true;
  1405. }
  1406. //==================== Fim ==================================//
  1407. //2 Elite Trucking
  1408. //Elite Trucking
  1409. CMD:limpaneve(playerid, params[])//limpaneve
  1410. {
  1411. if(!Logged{playerid}) return true;
  1412. new year, month, day;
  1413. getdate(year, month, day);
  1414. if(month != 12 && !IsPlayerAdmin(playerid)) return SysMsg(playerid, "Este comando só pode ser usado em dezembro.");
  1415. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você deve estar em um veículo para usar este comando.");
  1416. if(Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_TRUCKING || IsPlayerAdmin(playerid))
  1417. {
  1418. new vehicleid = GetPlayerVehicleID(playerid);
  1419. if(IsFactionVehicle(vehicleid) != Faction[playerid] && !IsPlayerAdmin(playerid)) return SysMsg(playerid,"Você precisa estar em um veiculo de facção.");
  1420. if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER && (GetPlayerVehicleSeat(playerid) != 1 && GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)) return SysMsg(playerid,"Você precisa estar no acento de condução or front passenger.");
  1421. new modelid = GetVehicleModel(vehicleid);
  1422. if(!SnowPlow{vehicleid})
  1423. {
  1424. if(VehObject[vehicleid] != INVALID_OBJECT_ID) return SysMsg(playerid, "Este veículo já tem um objeto anexado a ele.");
  1425. if(modelid == 554) //yosemite
  1426. {
  1427. VehObject[vehicleid] = CreateVehicleObject(19601, vehicleid, 0.0, 2.7, -0.6, 0.0, 0.0, 180.0);
  1428. SnowPlow{vehicleid} = true;
  1429. }
  1430. else if(modelid == 524) //cement truck
  1431. {
  1432. VehObject[vehicleid] = CreateVehicleObject(19601, vehicleid, 0.0, 4.15, -1.45, 0.0, 0.0, 180);
  1433. SnowPlow{vehicleid} = true;
  1434. }
  1435. else SysMsg(playerid, "Você não está em um veículo adequado para usar isso.");
  1436. }
  1437. else
  1438. {
  1439. DestroyDynamicObjectEx(VehObject[vehicleid], "VehObject[vehicleid] 3");
  1440. VehObject[vehicleid] = INVALID_OBJECT_ID;
  1441. SnowPlow{vehicleid} = false;
  1442. }
  1443. }
  1444. else SysMsg(playerid, "Você não pode usar este comando.");
  1445. return true;
  1446. }
  1447. CMD:trailers(playerid, params[])
  1448. {
  1449. if(!Logged{playerid}) return true;
  1450. if(Faction[playerid] != FACTION_TRUCKING) return SysMsg(playerid,"Só os camionistas podem usar este comando.");
  1451. if(FactionRank[playerid] < 3) return SysMsg(playerid,"ocê deve ser pelo menos Rank 3 para usar isso.");
  1452. if(!IsPlayerInRangeOfPoint(playerid, 1.5, 611.9290, 1653.3989, 6.9922)) return SysMsg(playerid,"Você não está na garagem..");
  1453. format(gstr, sizeof(gstr), "Artigo Trailer 1");
  1454. strcat(gstr, "\nArtigo Trailer 2");
  1455. strcat(gstr, "\nArtigo Trailer 3");
  1456. strcat(gstr, "\nTrailer de Petrol");
  1457. strcat(gstr, "\nTrailer de utilidade");
  1458. Dialog_Show(playerid, TruckingTrailers, DIALOG_STYLE_LIST, "Trailers", gstr, "Selecionar", "Cancelar");
  1459. return true;
  1460. }
  1461. CMD:checkcombustivel(playerid, params[])//checkcombustivel
  1462. {
  1463. if(!Logged{playerid}) return true;
  1464. if(Faction[playerid] == FACTION_TRUCKING || IsPlayerAdmin(playerid))
  1465. {
  1466. if(IsPlayerInRangeOfPoint(playerid, 3.5, 673.5842,1833.3052,5.1829) || IsFactionVehicle(GetPlayerVehicleID(playerid)) == FACTION_TRUCKING)
  1467. {
  1468. new subinfo[150];
  1469. gstr[0] = EOS;
  1470. for(new v = 0; v < MAX_FUEL_STATIONS; v++)
  1471. {
  1472. format(subinfo, sizeof(subinfo), "%s Posto de gasolina (Gasolina: %i / %i Gal. - Diesel: %i / %i Gal.)\n\n", FuelStations[v][StationDescription], FuelStations[v][PetrolAmount], FuelStations[v][PetrolAmountMax], FuelStations[v][DieselAmount], FuelStations[v][DieselAmountMax]);
  1473. strcat(gstr, subinfo);
  1474. }
  1475. Dialog_Show(playerid, DIALOG_NONE, DIALOG_STYLE_MSGBOX, "Fuel Supply", gstr, "Done", "");
  1476. }
  1477. else return SysMsg(playerid,"Você não está no escritório Elite Trucking Gas Management ou um caminhão de facções.");
  1478. }
  1479. else SysMsg(playerid,"Somente os caminhoneiros podem usar esse comando.");
  1480. return true;
  1481. }
  1482. CMD:entregacombustivel(playerid, params[])
  1483. {
  1484. if(!Logged{playerid}) return true;
  1485. if(Faction[playerid] != FACTION_TRUCKING) return SysMsg(playerid,"Somente os caminhoneiros podem usar esse comando.");
  1486. if(FactionRank[playerid] < 3) return SysMsg(playerid,"Você deve ser pelo menos o ranking 3.");
  1487. if(!IsPlayerInRangeOfPoint(playerid, 30.0, 673.5842,1833.3052,5.1829)) return SysMsg(playerid,"Você não está no escritório Elite Trucking Gas Management.");
  1488. new vehicleid = GetPlayerVehicleID(playerid);
  1489. if(!IsTruck(vehicleid)) return SysMsg(playerid,"Você precisa estar em um truck.");
  1490. if(DeliveringFuel[playerid] > 0) return SysMsg(playerid,"Você já está fornecendo combustível.");
  1491. if(GetVehicleTrailer(vehicleid) > 0) return SysMsg(playerid,"Por favor, retire todos os trailers antes de começar.");
  1492. if(isnull(params)) return SysMsg(playerid,"Use: /entregacombustivel [gasolina/diesel]");
  1493. if(strcmp("gasolina", params, true) == 0)
  1494. {
  1495. DeliveringFuel[playerid] = 1;
  1496. DeliveringFuelVeh[playerid][0] = vehicleid;
  1497. DeiveringFuelAmount[playerid] = 0;
  1498. IsTrucking[playerid] = 1;
  1499. DeiveringFuelType[playerid] = FUEL_GASOLINA;
  1500. SetPlayerCheckpointEx(playerid, -1021.005554, -661.875671, 32.007812, 7.0);
  1501. SendClientMessage(playerid, COLOR_WHITE, "[ENTREGA GASOLINA] Dirija até a fábrica de produtos químicos e pegue seu petroleiro.");
  1502. return true;
  1503. }
  1504. else if(strcmp("diesel", params, true) == 0)
  1505. {
  1506. DeliveringFuel[playerid] = 1;
  1507. DeliveringFuelVeh[playerid][0] = vehicleid;
  1508. DeiveringFuelAmount[playerid] = 0;
  1509. IsTrucking[playerid] = 1;
  1510. DeiveringFuelType[playerid] = FUEL_DIESEL;
  1511. SetPlayerCheckpointEx(playerid, -1021.005554, -661.875671, 32.007812, 7.0);
  1512. SendClientMessage(playerid, COLOR_WHITE, "[ENTREGA DIESEL] Dirija até a fábrica de produtos químicos e pegue seu petroleiro.");
  1513. return true;
  1514. }
  1515. SysMsg(playerid,"Use: /entregacombustivel [gasolina/diesel]");
  1516. return true;
  1517. }
  1518. CMD:finalizarcombustivel(playerid, params[])
  1519. {
  1520. if(!Logged{playerid}) return true;
  1521. if(Faction[playerid] != FACTION_TRUCKING) return SysMsg(playerid,"Somente os caminhoneiros podem usar esse comando.");
  1522. if(DeliveringFuel[playerid] == 0) return SysMsg(playerid,"Você não está fornecendo combustível.");
  1523. if(DeliveringFuel[playerid] == 1)
  1524. {
  1525. DisablePlayerCheckpoint(playerid);
  1526. DeiveringFuelAmount[playerid] = 0;
  1527. DeiveringFuelType[playerid] = 0;
  1528. DeliveringFuel[playerid] = 0;
  1529. DeliveringFuelVeh[playerid][0] = 0;
  1530. DeliveringFuelVeh[playerid][1] = 0;
  1531. IsTrucking[playerid] = 0;
  1532. SendClientMessage(playerid, COLOR_WHITE, "[ENTREGA DE COMBUSTÍVEL] Trabalho cancelado.");
  1533. return true;
  1534. }
  1535. SetPlayerCheckpointEx(playerid, 585.711547, 1664.336669, 6.992187, 10.0);
  1536. DeliveringFuel[playerid] = 3;
  1537. SendClientMessage(playerid, COLOR_WHITE, "[ENTREGA DE COMBUSTÍVEL] Dirija até a sede da Trucking para terminar e receber o pagamento.");
  1538. return true;
  1539. }
  1540. CMD:reabastecerposto(playerid, params[])
  1541. {
  1542. if(!Logged{playerid}) return true;
  1543. if(Faction[playerid] != FACTION_TRUCKING) return SysMsg(playerid,"Somente os caminhoneiros podem usar esse comando.");
  1544. if(DeliveringFuel[playerid] != 2) return SysMsg(playerid,"Você não está fornecendo combustível.");
  1545. if(EngineStatus[GetPlayerVehicleID(playerid)] == 1) return SysMsg(playerid,"Desligue o motor antes de descarregar o combustível.");
  1546. new fuelstation = -1;
  1547. for(new i = 0; i < MAX_FUEL_STATIONS; i++)
  1548. {
  1549. if(IsPlayerInRangeOfPoint(playerid, 40.0, FuelStations[i][SignX], FuelStations[i][SignY], FuelStations[i][SignZ]))
  1550. {
  1551. fuelstation = i;
  1552. break;
  1553. }
  1554. }
  1555. if(fuelstation == -1) return SysMsg(playerid,"Você não está perto de um posto de combustível. (Red County, Bone County e Angel Pine)");
  1556. new fuelamount;
  1557. if(sscanf(params, "i", fuelamount)) return SysMsg(playerid,"Use: /reabastecerposto [Quantidade]");
  1558. if(fuelamount < 1) return SysMsg(playerid,"O valor deve ser um número e maior que 0.");
  1559. if(fuelamount > DeiveringFuelAmount[playerid]) return SysMsg(playerid,"Você não tem combustível suficiente no seu trailer de petroleiros.");
  1560. switch(DeiveringFuelType[playerid])
  1561. {
  1562. case FUEL_GASOLINA:
  1563. {
  1564. if(fuelamount + FuelStations[fuelstation][PetrolAmount] > FuelStations[fuelstation][PetrolAmountMax]) return SysMsg(playerid,"Este posto de gasolina não consegue suportar muita gasolina.");
  1565. FuelStations[fuelstation][PetrolAmount] += fuelamount;
  1566. DeiveringFuelAmount[playerid] -= fuelamount;
  1567. UpdateFuelStationSign(fuelstation);
  1568. format(gstr, sizeof(gstr), "Você adicionou %i Galões de petróleo para o posto de gasolina %s. Você pode terminar com /finalizarcombustivel a qualquer momento.", fuelamount, FuelStations[fuelstation][StationDescription]);
  1569. SendClientMessage(playerid, COLOR_WHITE, gstr);
  1570. format(gstr, sizeof(gstr), "[ENTREGA GASOLINA]\n%i / 10000 Galões", DeiveringFuelAmount[playerid]);
  1571. UpdateDynamic3DTextLabelText(DeliveringFuelLabel[playerid], COLOR_WHITE, gstr);
  1572. }
  1573. case FUEL_DIESEL:
  1574. {
  1575. if(fuelamount + FuelStations[fuelstation][DieselAmount] > FuelStations[fuelstation][DieselAmountMax]) return SysMsg(playerid,"Este posto de gasolina não consegue suportar tanto diesel.");
  1576. FuelStations[fuelstation][DieselAmount] += fuelamount;
  1577. DeiveringFuelAmount[playerid] -= fuelamount;
  1578. UpdateFuelStationSign(fuelstation);
  1579. format(gstr, sizeof(gstr), "Você abasteceu %i galões de diesel para o posto de gasolina %s. Você pode terminar com /finalizarcombustivel a qualquer momento.", fuelamount, FuelStations[fuelstation][StationDescription]);
  1580. SendClientMessage(playerid, COLOR_WHITE, gstr);
  1581. format(gstr, sizeof(gstr), "[ENTREGA DIESEL]\n%i / 8000 Gallons", DeiveringFuelAmount[playerid]);
  1582. UpdateDynamic3DTextLabelText(DeliveringFuelLabel[playerid], COLOR_WHITE, gstr);
  1583. }
  1584. }
  1585. return true;
  1586. }
  1587. CMD:estregarestoque(playerid, params[])//estregarestoque
  1588. {
  1589. if(!Logged{playerid}) return true;
  1590. if(Faction[playerid] != FACTION_TRUCKING) return SysMsg(playerid,"Somente os caminhoneiros podem usar esse comando.");
  1591. if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você deve ser pelo menos o rank 2.");
  1592. if(!IsPlayerInRangeOfPoint(playerid, 3.0, 608.5102,1651.6327,6.9922)) return SysMsg(playerid,"Você não está no escritório Elite Trucking.");
  1593. if(DeliveringStock[playerid] > 0) return SysMsg(playerid,"Você já está entregando estoque.");
  1594. new bcount;
  1595. gstr[0] = EOS;
  1596. for(new b = 0; b < MAX_BIZZ; b++)
  1597. {
  1598. if(BizzData[b][BizzRequestStock] == 1 && BizzData[b][BizzETDelivering] == 0)//
  1599. {
  1600. strcat(gstr, BizzData[b][BizzDescription]);
  1601. strcat(gstr, "\n");
  1602. bcount ++;
  1603. if(bcount == 40) break;
  1604. }
  1605. }
  1606. if(bcount > 0)
  1607. {
  1608. SendClientMessage(playerid,COLOR_GOLD,"Selecione até 3 empresas para reabastecer ao mesmo tempo...");
  1609. Dialog_Show(playerid, StockDelivery, DIALOG_STYLE_LIST, "Lista de empresas que solicitam uma entrega", gstr, "Adicionar", "Cancelar");
  1610. }
  1611. else SysMsg(playerid,"Não há empresas que solicitou um reabastecimento.");
  1612. return true;
  1613. }
  1614. CMD:verchamadas(playerid, params[])//verchamadas
  1615. {
  1616. if(Faction[playerid] != FACTION_TRUCKING && !IsPlayerAdmin(playerid)) return SysMsg(playerid, "Você deve estar no Elite Trucking para usar este comando.");
  1617. new calls = 0;
  1618. foreach(new i: Player)
  1619. {
  1620. if(HasActiveTruckingCall{i})
  1621. {
  1622. sgstr[0] = EOS;
  1623. strunpack(sgstr, TruckingCallMsg[i]);
  1624. SendClientMessageF(playerid, COLOR_WHITE, "[Elite Trucking Hotline]: [PN: %i] [Nome: %s] %s", PhoneData[i][pNumber], NameRP(i), sgstr);
  1625. calls++;
  1626. }
  1627. }
  1628. if(calls == 0) return SysMsg(playerid, "Sem chamadas activas.");
  1629. return true;
  1630. }
  1631. CMD:limparchamada(playerid, params[])
  1632. {
  1633. new playa = -1;
  1634. if(Faction[playerid] != FACTION_TRUCKING && !IsPlayerAdmin(playerid)) return SysMsg(playerid, "Você deve estar no Elite Trucking para usar este comando.");
  1635. if(sscanf(params, "u", playa)) return SysMsg(playerid, "Use: /limparchamada [playerID ou name]");
  1636. if(!HasActiveTruckingCall{playa}) return SysMsg(playerid, "Essa pessoa nem sequer tem uma ligação para limpar.");
  1637. HasActiveTruckingCall{playa} = false;
  1638. strdel(TruckingCallMsg[playa], 0, 128);
  1639. format(gstr, sizeof(gstr), "Você limpou a chamada de %s.", NameRP(playa));
  1640. return true;
  1641. }
  1642. //==================== Fim ==================================//
  1643. //3 SACFD
  1644. //SACFD
  1645. CMD:heal(playerid, params[])
  1646. {
  1647. if(!Logged{playerid}) return true;
  1648. if(Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_COP || Faction[playerid] == FACTION_RESEARCH)
  1649. {
  1650. new playa = -1;
  1651. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /heal [ID ou nome do jogador]");
  1652. if(InvalidPlayer(playa)) return SysMsg(playerid,"Esse jogador não está conectado.");
  1653. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  1654. if(playa == playerid) return SysMsg(playerid,"Você não pode se curar.");
  1655. if(!Dead{playa}) return SysMsg(playerid, "Este jogador não está abatido.");
  1656. if(DeathTimer[playa] == 0) return SysMsg(playerid, "O temporizador de morte deste jogador expirou. Eles não podem ser curados.");
  1657. new injuriescount = 0, injuries[100], namestring[64];
  1658. gstr[0] = EOS;
  1659. strcat(gstr, "Tipo de lesão\tLocalização\tArma\n");
  1660. for(new hit = 0; hit < HitCount[playa]; hit++)
  1661. {
  1662. if(Injuries[playa][hit][pBodypart] > 0)
  1663. {
  1664. switch(Injuries[playa][hit][pWeaponID])
  1665. {
  1666. // Blunt Weapons
  1667. case 0,1,2,3,5,6,7,10,11,12,13,14,15,41,42,43,44,45,46:
  1668. {
  1669. format(injuries, sizeof(injuries), "Traumatismo craniano\t%s\t%s\n", ReturnBodyPartName(Injuries[playa][hit][pBodypart]), GetWeaponNameFromID(Injuries[playa][hit][pWeaponID]));
  1670. }
  1671. // Stab Weapons
  1672. case 4, 8, 9:
  1673. {
  1674. format(injuries, sizeof(injuries), "Ferida da facada\t%s\t%s\n", ReturnBodyPartName(Injuries[playa][hit][pBodypart]), GetWeaponNameFromID(Injuries[playa][hit][pWeaponID]));
  1675. }
  1676. // Gunshot Wounds
  1677. case 22..34,38:
  1678. {
  1679. format(injuries, sizeof(injuries), "Ferimento de bala\t%s\t%s\n", ReturnBodyPartName(Injuries[playa][hit][pBodypart]), GetWeaponNameFromID(Injuries[playa][hit][pWeaponID]));
  1680. }
  1681. // Explosion/Burn
  1682. case 16,17,18,35,36,37,39,40,51:
  1683. {
  1684. format(injuries, sizeof(injuries), "Explosão/Queimadura\t%s\t%s\n", ReturnBodyPartName(Injuries[playa][hit][pBodypart]), GetWeaponNameFromID(Injuries[playa][hit][pWeaponID]));
  1685. }
  1686. default:
  1687. {
  1688. format(injuries, sizeof(injuries), "Desconhecido\t%s\t%s\n", ReturnBodyPartName(Injuries[playa][hit][pBodypart]), GetWeaponNameFromID(Injuries[playa][hit][pWeaponID]));
  1689. // Unknown wound
  1690. }
  1691. }
  1692. injuriescount ++;
  1693. strcat(gstr, injuries);
  1694. }
  1695. }
  1696. format(namestring, sizeof(namestring), "Lesões de %s", NameRP(playa));
  1697. if(injuriescount > 0)
  1698. {
  1699. Healing[playerid] = playa;
  1700. Dialog_Show(playerid, HealDialog, DIALOG_STYLE_TABLIST_HEADERS, namestring, gstr, "Fechar", "");
  1701. }
  1702. else if(injuriescount == 0 && Dead{playa}) RevivePlayer(playa);
  1703. else SysMsgF(playerid, "%s não tem quaisquer lesões.", NameRP(playa));
  1704. }
  1705. else SysMsg(playerid,"Você precisa ser um membro do SACFD.");
  1706. return true;
  1707. }
  1708. CMD:maca(playerid, params[])//maca //retcher
  1709. {
  1710. if(!Logged{playerid}) return true;
  1711. new action[9], playa = -1;
  1712. if(sscanf(params, "s[9]U(-1)", action, playa)) return SysMsg(playerid,"Use: /maca [equipar/dropar/pegar/guardar/carregar/descarregar/sair/intoambu]");
  1713. new Float:pX,Float:pY,Float:pZ, Float:oX,Float:oY,Float:oZ;
  1714. GetPlayerPos(playerid, pX, pY, pZ);
  1715. if(strcmp("equipar", action, true) == 0)
  1716. {
  1717. if(Faction[playerid] != FACTION_SACFD && !IsESU{playerid}) return SysMsg(playerid,"Você precisa ser um membro do SACFD.");
  1718. if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você precisa ser o rank 2 para usar isso.");
  1719. if(StretcherEquipped[playerid] > 0) return SysMsg(playerid,"Você já tem uma maca.");
  1720. if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 416) return SysMsg(playerid,"Você deve estar na parte de trás de uma ambulância para obter uma maca.");
  1721. if(GetPlayerVehicleSeat(playerid) != 2 && GetPlayerVehicleSeat(playerid) != 3) return SysMsg(playerid,"Você deve estar na parte de trás de uma ambulância para obter uma maca.");
  1722. StretcherEquipped[playerid] = CreateDynamicObject(1997, pX, pY + 1.5, pZ - 1.0, 0.0, 0.0, 100.0);//2146
  1723. StretcherHolding[playerid] = 1;
  1724. RemovePlayerFromVehicle(playerid);
  1725. format(gstr, sizeof(gstr),"* Paramédico %s puxa uma maca para fora da ambulância. *",NameEx(playerid));
  1726. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  1727. return true;
  1728. }
  1729. if(strcmp("dropar", action, true) == 0)
  1730. {
  1731. new Float:pXb, Float:pYb;
  1732. new Float:Ang = GetXYInFrontOfPlayer(playerid, pXb, pYb, 1.7);
  1733. if(Faction[playerid] != FACTION_SACFD && !IsESU{playerid}) return SysMsg(playerid,"Você precisa ser um membro do SACFD.");
  1734. if(StretcherHolding[playerid] == 0) return SysMsg(playerid,"Você precisa ter uma maca.");
  1735. if(StretcherPlayerID[playerid] != -1) return SysMsg(playerid,"Você não pode deixar a maca com alguém sobre ela.");
  1736. DestroyDynamicObjectEx(StretcherEquipped[playerid], "StretcherEquipped[playerid] 0");
  1737. StretcherEquipped[playerid] = CreateDynamicObject(1997, pXb, pYb, pZ-1.0, 0.0, 0.0, Ang+180);
  1738. StretcherHolding[playerid] = 0;
  1739. StretcherTimer[playerid] = SetTimerEx("DestroyStretcher", 600000, 0, "ii", playerid, StretcherEquipped[playerid]);
  1740. foreach(new p: Player) Streamer_Update(p);
  1741. format(gstr, sizeof(gstr),"* Paramédico %s trava as rodas da maca no lugar. *",NameEx(playerid));
  1742. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  1743. return true;
  1744. }
  1745. if(strcmp("pegar", action, true) == 0)
  1746. {
  1747. GetDynamicObjectPos(StretcherEquipped[playerid],oX,oY,oZ);
  1748. new Float:distance = DistanceBetweenPoints(pX,pY,pZ,oX,oY,oZ);
  1749. if(Faction[playerid] != FACTION_SACFD && !IsESU{playerid}) return SysMsg(playerid,"Você precisa ser um membro do SACFD.");
  1750. if(StretcherEquipped[playerid] == 0) return SysMsg(playerid,"Você precisa ter uma maca.");
  1751. if(StretcherPlayerID[playerid] != -1) return SysMsg(playerid,"Você não pode deixar a maca com alguém sobre ela.");
  1752. if(StretcherHolding[playerid] == 2) return SysMsg(playerid,"Você já tem uma maca");
  1753. if(distance > 5) return SysMsg(playerid,"Você não está perto o suficiente.");
  1754. KillTimer(StretcherTimer[playerid]);
  1755. StretcherTimer[playerid] = -1;
  1756. StretcherHolding[playerid] = 2;
  1757. format(gstr, sizeof(gstr),"* Paramédico %s destrava as rodas na maca *",NameEx(playerid));
  1758. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  1759. return true;
  1760. }
  1761. if(strcmp("guardar", action, true) == 0)
  1762. {
  1763. if(Faction[playerid] != FACTION_SACFD && !IsESU{playerid}) return SysMsg(playerid,"Você precisa ser um membro do SACFD.");
  1764. if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você precisa ser rank 2 para usar este comando.");
  1765. if(StretcherEquipped[playerid] == 0) return SysMsg(playerid,"Você não tem uma maca para guardar.");
  1766. if(StretcherPlayerID[playerid] >= 0) return SysMsg(playerid,"Descarregue a maca antes de guardar.");
  1767. new Float:vX, Float:vY, Float:vZ;
  1768. for(new v = 1, x = GetVehiclePoolSize(); v <= x; v++)
  1769. {
  1770. if(GetVehicleModel(v) == 416)
  1771. {
  1772. GetVehiclePos(v, vX, vY, vZ);
  1773. if(IsPlayerInRangeOfPoint(playerid, 10.0, vX, vY, vZ))
  1774. {
  1775. DestroyDynamicObjectEx(StretcherEquipped[playerid], "StretcherEquipped[playerid] 1");
  1776. StretcherEquipped[playerid] = 0;
  1777. StretcherHolding[playerid] = 0;
  1778. format(gstr, sizeof(gstr),"* Paramédico %s coloca a maca na parte de trás da ambulância. *",NameEx(playerid));
  1779. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  1780. return true;
  1781. }
  1782. }
  1783. }
  1784. SysMsg(playerid,"Você deve estar perto de uma ambulância para arrumar uma maca.");
  1785. return true;
  1786. }
  1787. if(strcmp("carregar", action, true) == 0)
  1788. {
  1789. if(Faction[playerid] != FACTION_SACFD && !IsESU{playerid}) return SysMsg(playerid,"Você precisa ser um membro do SACFD.");
  1790. if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você precisa ser o rank 2 para usar isso.");
  1791. if(StretcherEquipped[playerid] == 0) return SysMsg(playerid,"Você deve ter uma maca para carregar alguém sobre ela.");
  1792. if(StretcherPlayerID[playerid] >= 0) return SysMsg(playerid,"Você já tem alguém carregado na maca.");
  1793. if(sscanf(params, "s[8]u", action, playa)) return SysMsg(playerid,"Use: /maca carregar [ID ou nome do jogador]");
  1794. if(InvalidPlayer(playa)) return SysMsg(playerid,"Esse jogador não está conectado.");
  1795. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  1796. if(playa == playerid) return SysMsg(playerid,"Você não pode fazer isso com você mesmo.");
  1797. if(StretcherEquipped[playa] > 0) return SysMsg(playerid,"Você não pode colocar alguém com uma maca em uma maca.");
  1798. if(StretcherHolding[playerid] == 0) return SysMsg(playerid, "Você precisa segurar a maca.");
  1799. new Float:tX,Float:tY,Float:tZ;
  1800. GetPlayerPos(playa,tX,tY,tZ);
  1801. if(!IsPlayerInRangeOfPoint(playerid,3.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para colocá-lo em uma maca.");
  1802. StretcherPlayerID[playerid] = playa;
  1803. OnePlayAnim(playa,"BEACH", "bather", 4.0, 1, 0, 0, 1, -1);
  1804. format(gstr, sizeof(gstr),"* Paramédico %s agora está puxando a maca com %s sobre. *",NameEx(playerid),NameRP(StretcherPlayerID[playerid]));
  1805. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  1806. format(gstr, sizeof(gstr),"%s agora em sua maca. Você pode tirá-los usando '/maca descarregar'",NameEx(StretcherPlayerID[playerid]));
  1807. SendClientMessage(playerid,COLOR_WHITE,gstr);
  1808. format(gstr, sizeof(gstr),"%s colocou você na maca. Use '/maca sair' se você não quer estar com isso.",NameEx(playerid));
  1809. SendClientMessage(StretcherPlayerID[playerid],COLOR_WHITE,gstr);
  1810. return true;
  1811. }
  1812. if(strcmp("descarregar", action, true) == 0)
  1813. {
  1814. if(Faction[playerid] != FACTION_SACFD && !IsESU{playerid}) return SysMsg(playerid,"Você precisa ser um membro do SACFD.");
  1815. if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você precisa ser o rank 2 para usar isso.");
  1816. if(StretcherEquipped[playerid] == 0) return SysMsg(playerid,"You must have a stretcher to load someone on it.");
  1817. if(StretcherPlayerID[playerid] == -1) return SysMsg(playerid,"You don't even have someone loaded on the stretcher.");
  1818. if(StretcherHolding[playerid] == 0) return SysMsg(playerid, "You need to be holding the stretcher");
  1819. new Float:playerpos[4];
  1820. TogglePlayerControllable(StretcherPlayerID[playerid], 1);
  1821. GetPlayerPos(playerid, playerpos[0], playerpos[1], playerpos[2]);
  1822. GetXYInFrontOfPlayer(playerid, playerpos[0], playerpos[1], -2);
  1823. SetPlayerPos(StretcherPlayerID[playerid], playerpos[0], playerpos[1], playerpos[2]);
  1824. ClearAnimations(StretcherPlayerID[playerid]);
  1825. format(gstr, sizeof(gstr),"%s has been removed from the stretcher.",NameEx(StretcherPlayerID[playerid]));
  1826. SendClientMessage(playerid,COLOR_WHITE,gstr);
  1827. format(gstr, sizeof(gstr),"%s has removed you from their stretcher.",NameEx(playerid));
  1828. SendClientMessage(StretcherPlayerID[playerid],COLOR_WHITE,gstr);
  1829. StretcherPlayerID[playerid] = -1;
  1830. return true;
  1831. }
  1832. if(strcmp("sair", action, true) == 0)
  1833. {
  1834. foreach(new i: Player)
  1835. {
  1836. if(StretcherPlayerID[i] == playerid)
  1837. {
  1838. new Float:playerpos[4];
  1839. TogglePlayerControllable(playerid, 1);
  1840. GetPlayerPos(i, playerpos[0], playerpos[1], playerpos[2]);
  1841. GetXYInFrontOfPlayer(i, playerpos[0], playerpos[1], 6.0);
  1842. SetPlayerPos(playerid, playerpos[0], playerpos[1], playerpos[2]);
  1843. ClearAnimations(playerid);
  1844. format(gstr, sizeof(gstr),"%s saiu da maca.",NameEx(playerid));
  1845. SendClientMessage(i,COLOR_WHITE,gstr);
  1846. format(gstr, sizeof(gstr),"Você saiu da maca de %s.",NameEx(i));
  1847. SendClientMessage(playerid,COLOR_WHITE,gstr);
  1848. StretcherPlayerID[i] = -1;
  1849. return true;
  1850. }
  1851. }
  1852. SysMsg(playerid,"Você não está em uma maca tão claramente não pode sair de um.");
  1853. return true;
  1854. }
  1855. if(strcmp("intoambu", action, true) == 0)//observar
  1856. {
  1857. if(Faction[playerid] != FACTION_SACFD && !IsESU{playerid}) return SysMsg(playerid,"Você precisa ser um membro do SACFD.");
  1858. if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você precisa ser o rank 2 para usar isso.");
  1859. if(StretcherEquipped[playerid] == 0) return SysMsg(playerid,"Você deve ter uma maca.");
  1860. if(StretcherPlayerID[playerid] == -1) return SysMsg(playerid,"Você nem tem alguém carregado na maca.");
  1861. new Float:vX, Float:vY, Float:vZ;
  1862. for(new v = 1, x = GetVehiclePoolSize(); v <= x; v++)
  1863. {
  1864. if(GetVehicleModel(v) == 416)
  1865. {
  1866. GetVehiclePos(v, vX, vY, vZ);
  1867. if(IsPlayerInRangeOfPoint(playerid, 10.0, vX, vY, vZ))
  1868. {
  1869. new seatid = 2;
  1870. foreach(new i: Player)
  1871. {
  1872. if(GetPlayerVehicleID(i) == v)
  1873. {
  1874. if(GetPlayerVehicleSeat(i) == 2) seatid = 3;
  1875. if(GetPlayerVehicleSeat(i) == 3 && seatid == 3) seatid = -1;
  1876. }
  1877. }
  1878. if(seatid == -1) return SysMsg(playerid,"Não há assentos livres na parte de trás desta ambulância.");
  1879. PutPlayerInVehicle(StretcherPlayerID[playerid], v, seatid);
  1880. TogglePlayerControllable(StretcherPlayerID[playerid], 1);
  1881. format(gstr, sizeof(gstr),"* Paramédico %s empurra a maca com %s na parte de trás da ambulância. *",NameEx(playerid),NameRP(StretcherPlayerID[playerid]));
  1882. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  1883. DestroyDynamicObjectEx(StretcherEquipped[playerid], "StretcherEquipped[playerid] 2");
  1884. StretcherEquipped[playerid] = 0;
  1885. StretcherPlayerID[playerid] = -1;
  1886. StretcherHolding[playerid] = 0;
  1887. return true;
  1888. }
  1889. }
  1890. }
  1891. SysMsg(playerid,"Você deve estar perto de uma ambulância, para colocar uma maca dentro.");
  1892. return true;
  1893. }
  1894. return true;
  1895. }
  1896. CMD:str(playerid, params[]) return cmd_maca(playerid, params);
  1897. CMD:acriarfogo(playerid, params[])
  1898. {
  1899. if(!Logged{playerid}) return true;
  1900. if((Faction[playerid] == FACTION_SACFD && FactionRank[playerid] > 8) || IsPlayerAdminLevelOK(playerid, 3))
  1901. {
  1902. //if(GetPlayerInterior(playerid) > 0) return SysMsg(playerid, "You cannot create a fire here.");
  1903. if(isnull(params)) return SysMsg(playerid,"Use: /criarfogo [pequeno/med/grande]");
  1904. if(strcmp("pequeno", params, true) == 0)
  1905. {
  1906. new Float:x, Float:y, Float:z;
  1907. GetPlayerPos(playerid, x, y, z);
  1908. GetXYInFrontOfPlayer(playerid, x, y, 2.5);
  1909. PlaceFire(x, y, z, 1, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid), true);
  1910. return true;
  1911. }
  1912. if(strcmp("med", params, true) == 0)
  1913. {
  1914. new Float:x, Float:y, Float:z;
  1915. GetPlayerPos(playerid, x, y, z);
  1916. GetXYInFrontOfPlayer(playerid, x, y, 2.5);
  1917. PlaceFire(x, y, z, 2, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid), true);
  1918. return true;
  1919. }
  1920. if(strcmp("grande", params, true) == 0)
  1921. {
  1922. new Float:x, Float:y, Float:z;
  1923. GetPlayerPos(playerid, x, y, z);
  1924. GetXYInFrontOfPlayer(playerid, x, y, 2.5);
  1925. PlaceFire(x, y, z, 3, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid), true);
  1926. return true;
  1927. }
  1928. }
  1929. return true;
  1930. }
  1931. CMD:criarfogo(playerid, params[])
  1932. {
  1933. if(!Logged{playerid}) return true;
  1934. if((Faction[playerid] == FACTION_SACFD && FactionRank[playerid] > 8) || IsPlayerAdminLevelOK(playerid, 2))
  1935. {
  1936. //if(GetPlayerInterior(playerid) > 0) return SysMsg(playerid, "You cannot create a fire here.");
  1937. if(isnull(params)) return SysMsg(playerid,"Use: /criarfogo [pequeno/med/gramde]");
  1938. if(strcmp("pequeno", params, true) == 0)
  1939. {
  1940. new Float:x, Float:y, Float:z;
  1941. GetPlayerPos(playerid, x, y, z);
  1942. GetXYInFrontOfPlayer(playerid, x, y, 2.5);
  1943. PlaceFire(x, y, z, 1, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid), false);
  1944. return true;
  1945. }
  1946. if(strcmp("med", params, true) == 0)
  1947. {
  1948. new Float:x, Float:y, Float:z;
  1949. GetPlayerPos(playerid, x, y, z);
  1950. GetXYInFrontOfPlayer(playerid, x, y, 2.5);
  1951. PlaceFire(x, y, z, 2, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid), false);
  1952. return true;
  1953. }
  1954. if(strcmp("grande", params, true) == 0)
  1955. {
  1956. new Float:x, Float:y, Float:z;
  1957. GetPlayerPos(playerid, x, y, z);
  1958. GetXYInFrontOfPlayer(playerid, x, y, 2.5);
  1959. PlaceFire(x, y, z, 3, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid), false);
  1960. return true;
  1961. }
  1962. }
  1963. return true;
  1964. }
  1965. CMD:scba(playerid, params[])
  1966. {
  1967. if(!Logged{playerid}) return true;
  1968. if(Faction[playerid] == FACTION_SACFD || (Faction[playerid] == FACTION_COP && IsESU{playerid}))
  1969. {
  1970. new playerskin = GetPlayerSkin(playerid);
  1971. if(Faction[playerid] == FACTION_SACFD && (playerskin != 277 && playerskin != 278 && playerskin != 279)) return SendClientMessage(playerid, COLOR_WHITE, "Você precisa de seu equipamento de bunker em primeiro lugar!");
  1972. if(Faction[playerid] == FACTION_COP && IsESU{playerid} && (playerskin != 277 && playerskin != 278 && playerskin != 279)) SetPlayerSkinEx(playerid, 279);
  1973. if(scba[playerid] == 0)
  1974. {
  1975. new index = GetFreePlayerObjectIndex(playerid);
  1976. if(index != -1)
  1977. {
  1978. AttachedObjects[playerid][index][aoModelID] = 1008;
  1979. AttachedObjects[playerid][index][aoBone] = 1;
  1980. SetPlayerAttachedObject(playerid, index, 19816, 1, -0.012000, -0.187999, 0.000000, -0.499998, -91.499885, 8.499999, 1.162999, 1.238000, 1.291000);
  1981. SendClientMessage(playerid, COLOR_WHITE, "Seu SCBA está agora ligado");
  1982. OnePlayAnim(playerid,"PARACHUTE","PARA_Land",4,0,0,0,0,0);
  1983. scba[playerid] = 1;
  1984. }
  1985. else return SysMsg(playerid, "Você tem muitos objetos em seu personagem. Remova um para usar este comando.");
  1986. }
  1987. else if(scba[playerid] == 1)
  1988. {
  1989. if(smask[playerid] == 1) return SendClientMessage(playerid, COLOR_WHITE, "Você precisa tirar sua máscara primeiro.");
  1990. for(new index = 0; index < 6; index++)
  1991. {
  1992. if(AttachedObjects[playerid][index][aoModelID] == 1008)
  1993. {
  1994. AttachedObjects[playerid][index][aoModelID] = 0;
  1995. AttachedObjects[playerid][index][aoBone] = 0;
  1996. SendClientMessage(playerid, COLOR_WHITE, "Seu SCBA está agora desligado.");
  1997. RemovePlayerAttachedObject(playerid, index);
  1998. OnePlayAnim(playerid,"PARACHUTE","PARA_Land",4,0,0,0,0,0);
  1999. scba[playerid] = 0;
  2000. SetPlayerSkinEx(playerid, Clothes[playerid][4]);
  2001. return true;
  2002. }
  2003. }
  2004. SendClientMessage(playerid, COLOR_GREY, "Atualmente, você não possui equipamentos SCUBA equipados.");
  2005. scba[playerid] = 0;
  2006. }
  2007. }
  2008. else return SysMsg(playerid, "Você precisa ser um membro do SACFD ou ESU para usar esse comando.");
  2009. return true;
  2010. }
  2011. CMD:smask(playerid, params[])
  2012. {
  2013. if(smask[playerid] == 0)
  2014. {
  2015. if(scba[playerid] == 0) return SendClientMessage(playerid, COLOR_WHITE, "Você precisa do seu SCBA primeiro!");
  2016. new index = GetFreePlayerObjectIndex(playerid);
  2017. if(index != -1)
  2018. {
  2019. OnePlayAnim(playerid,"goggles","goggles_put_on",4,0,0,0,0,0);
  2020. AttachedObjects[playerid][index][aoModelID] = 19472;
  2021. AttachedObjects[playerid][index][aoBone] = 2;
  2022. SetPlayerAttachedObject(playerid,index,19472,2,-0.033000,0.124999,0.002999,-84.900085,-171.599990,2.100000,1.255001,1.124000,1.293001);
  2023. SendClientMessage(playerid, COLOR_WHITE, "Sua máscara SCBA está agora ligada");
  2024. smask[playerid] = 1;
  2025. CanPlayerChoke{playerid} = false;
  2026. }
  2027. else return SendClientMessage(playerid, COLOR_GREY, "Você tem muitos objetos em seu personagem. Remova um para usar este comando.");
  2028. }
  2029. else if(smask[playerid] == 1)
  2030. {
  2031. for(new index = 0; index < 6; index++)
  2032. {
  2033. if(AttachedObjects[playerid][index][aoModelID] == 19472)
  2034. {
  2035. AttachedObjects[playerid][index][aoModelID] = 0;
  2036. AttachedObjects[playerid][index][aoBone] = 0;
  2037. RemovePlayerAttachedObject(playerid, index);
  2038. SendClientMessage(playerid, COLOR_WHITE, "Sua máscara SCBA está agora desligada.");
  2039. smask[playerid] = 0;
  2040. OnePlayAnim(playerid,"goggles","goggles_put_on",4,0,0,0,0,0);
  2041. CanPlayerChoke{playerid} = true;
  2042. PlayerChoking{playerid} = false;
  2043. return true;
  2044. }
  2045. }
  2046. SendClientMessage(playerid, COLOR_GREY, "Você não possui máscara.");
  2047. smask[playerid] = 0;
  2048. }
  2049. return true;
  2050. }
  2051. CMD:detox(playerid, params[])
  2052. {
  2053. if(!Logged{playerid}) return true;
  2054. if(Faction[playerid] != FACTION_SACFD) return SysMsg(playerid,"Você precisa ser um membro do SACFD.");
  2055. new playa = -1, method[8];
  2056. if(sscanf(params, "s[8]u", method, playa)) return SysMsg(playerid,"Use: /detox [alcool/drogas] [ID ou nome do jogador]");
  2057. if(InvalidPlayer(playa)) return SysMsg(playerid,"Esse jogador não está conectado.");
  2058. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  2059. if(playa == playerid) return SysMsg(playerid,"Você não pode se desintoxicar.");
  2060. new Float:tX,Float:tY,Float:tZ;
  2061. GetPlayerPos(playa,tX,tY,tZ);
  2062. if(!IsPlayerInRangeOfPoint(playerid,3.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para desintoxicá-los.");
  2063. if(strcmp(method, "drogas", true) == 0)
  2064. {
  2065. if(DrugSpamTimer[playa] == 0) return SysMsg(playerid,"Esta pessoa não parece ter nenhum efeito colateral de drogas.");
  2066. DrugSpamTimer[playa] = 0;
  2067. SetPlayerWeather(playa, gServerWeather);
  2068. DrunkLevel[playerid] = 0;
  2069. SetPlayerDrunkLevel(playa, 0);
  2070. TextDrawHideForPlayer(playa, WeedEffect);
  2071. format(gstr, sizeof(gstr),"* Paramédico %s desintoxica %s usando uma injeção de Narcan. *", NameEx(playerid), NameEx(playa));
  2072. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  2073. format(gstr, sizeof(gstr),"Paramédico %s desintoxicado você para remover os efeitos das drogas.",NameEx(playerid));
  2074. SendClientMessage(playa,COLOR_RED,gstr);
  2075. format(gstr, sizeof(gstr),"Você desintoxicado %s para remover os efeitos das drogas.",NameEx(playa));
  2076. SendClientMessage(playerid,COLOR_LIGHTBLUE,gstr);
  2077. }
  2078. else if(strcmp(method, "alcool", true) == 0)
  2079. {
  2080. new drunkLevel = GetPlayerDrunkLevel(playa);
  2081. if(drunkLevel < 100) return SysMsg(playerid,"Esta pessoa não parece estar sob a influência do álcool.");
  2082. if(drunkLevel > 10000) SetPlayerDrunkLevel(playa, 2500);
  2083. else SetPlayerDrunkLevel(playa, 0);
  2084. format(gstr, sizeof(gstr),"* Paramédico %s desintoxica %s para reduzir os níveis de álcool. *", NameEx(playerid), NameEx(playa));
  2085. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  2086. format(gstr, sizeof(gstr),"Paramédico %s te desintoxicou.",NameEx(playerid));
  2087. SendClientMessage(playa,COLOR_RED,gstr);
  2088. format(gstr, sizeof(gstr),"Você desintoxicou %s.",NameEx(playa));
  2089. SendClientMessage(playerid,COLOR_LIGHTBLUE,gstr);
  2090. }
  2091. return true;
  2092. }
  2093. CMD:pagermsg(playerid, params[])
  2094. {
  2095. if(!Logged{playerid}) return true;
  2096. if(Faction[playerid] != FACTION_SACFD) return SysMsg(playerid,"Você precisa ser um membro do SACFD.");
  2097. if(FactionRank[playerid] < 5) return SysMsg(playerid,"Você precisa ser pelo menos o rank 5.");
  2098. if(!PagerStatus{playerid}) return SysMsg(playerid, "Seu pager não está ligado.");
  2099. if(isnull(params)) return SysMsg(playerid,"Use: /pagermsg [mensagem]");
  2100. foreach(new t: Player)
  2101. {
  2102. if(Logged{t} && Faction[t] == FACTION_SACFD && PagerStatus{t} && Faction[t] == Faction[playerid])
  2103. {
  2104. if(t != playerid && ADuty[playerid] == 0)
  2105. {
  2106. format(gstr, sizeof(gstr), "A pager is heard. * BEEP BEEP * ((%s))", NameRP(t));
  2107. ProxDetector(20.0,t,gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  2108. }
  2109. SendClientMessageF(t, COLOR_ORANGE, "[Pager Msg] %s: %s", GetPlayersFirstName(playerid), params);
  2110. }
  2111. }
  2112. return true;
  2113. }
  2114. CMD:pager(playerid, params[])
  2115. {
  2116. if(!Logged{playerid}) return true;
  2117. if(Faction[playerid] == FACTION_SACFD)
  2118. {
  2119. if(PagerStatus{playerid})
  2120. {
  2121. PagerStatus{playerid} = false;
  2122. SendClientMessage(playerid,COLOR_GOLD,"Seu pager agora está desligado.");
  2123. }
  2124. else
  2125. {
  2126. PagerStatus{playerid} = true;
  2127. SendClientMessage(playerid,COLOR_GOLD,"Seu pager está agora ligado.");
  2128. }
  2129. }
  2130. else return SysMsg(playerid,"Você precisa ser um membro do SACFD.");
  2131. return true;
  2132. }
  2133. CMD:resgate(playerid, params[])
  2134. {
  2135. if(!Logged{playerid}) return true;
  2136. if(Faction[playerid] != FACTION_SACFD) return SysMsg(playerid,"Você precisa ser um membro do SACFD.");
  2137. new playa = -1;
  2138. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /rescue [ID ou nome do jogador]");
  2139. if(InvalidPlayer(playa)) return SysMsg(playerid,"Esse jogador não está conectado.");
  2140. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  2141. if(playa == playerid) return SysMsg(playerid,"Você não pode se resgatar.");
  2142. if(WantsRescue[playa] == 1) return SysMsg(playerid,"Esse jogador já quer ajuda.");
  2143. new Float:tX,Float:tY,Float:tZ;
  2144. GetPlayerPos(playa,tX,tY,tZ);
  2145. if(!IsPlayerInRangeOfPoint(playerid,3.5,tX,tY,tZ)) return SysMsg(playerid,"Você precisa estar proximo ao jogador para fazer isso.");
  2146. WantsRescue[playa] = playerid+500;
  2147. format(gstr, sizeof(gstr),"Bombeiro %s quer ajudá-lo. Escreva '/aceitar resgate' se você aceitar.",NameEx(playerid));
  2148. SendClientMessage(playa,COLOR_RED,gstr);
  2149. format(gstr, sizeof(gstr),"Você enviou um pedido de resgate para %s.",NameEx(playa));
  2150. SendClientMessage(playerid,COLOR_LIGHTBLUE,gstr);
  2151. return true;
  2152. }
  2153. CMD:cut(playerid, params[])
  2154. {
  2155. if(!Logged{playerid}) return true;
  2156. if(Faction[playerid] != FACTION_SACFD) return SysMsg(playerid,"Você precisa ser um membro do SACFD.");
  2157. new playa = -1;
  2158. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /cut [ID ou nome do jogador]");
  2159. if(InvalidPlayer(playa)) return SysMsg(playerid,"Esse jogador não está conectado.");
  2160. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  2161. if(playa == playerid) return SysMsg(playerid,"Você não pode se cortar.");
  2162. if(WantsRescue[playa] != 1) return SysMsg(playerid,"Esse jogador não quer assistência.");
  2163. new vehid = GetPlayerVehicleID(playa);
  2164. if(vehid == 0) return SysMsg(playerid,"Esse jogador não está em um veículo.");
  2165. if(!VehicleHasWindows(vehid)) return SysMsg(playerid,"Esse jogador não pode ser cortado desse veículo.");
  2166. new Float:tX,Float:tY,Float:tZ;
  2167. GetPlayerPos(playa,tX,tY,tZ);
  2168. if(!IsPlayerInRangeOfPoint(playerid,5.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para curá-los.");
  2169. RemovePlayerFromVehicle(playa);
  2170. format(gstr, sizeof(gstr),"* Bombeiro %s retira %s fora do %s usando uma grande ferramenta hidráulica. *",NameEx(playerid), NameEx(playa), GetVehicleName(vehid));
  2171. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  2172. return true;
  2173. }
  2174. //==================== Fim ==================================//
  2175. //4 SAN
  2176. //SAN
  2177. CMD:news(playerid, params[])
  2178. {
  2179. if(!Logged{playerid}) return true;
  2180. if(Faction[playerid] != FACTION_NEWS) return SysMsg(playerid,"Você deve ser membro da News Corp.");
  2181. if(Duty[playerid] == 0) return SysMsg(playerid,"Você deve estar de serviço para usar isso.");
  2182. if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você deve ser pelo menos o ranking 2 to use this.");
  2183. if(isnull(params)) return SysMsg(playerid,"Use: /news [mensagem]");
  2184. NewsToggle{playerid} = true;
  2185. foreach(new i: Player)
  2186. {
  2187. if(Logged{i} && NewsToggle{i})
  2188. {
  2189. SendSplitMessageF(i, COLOR_PINK, "[NEWS] %s %s: %s", GetFactionRankName(Faction[playerid], FactionRank[playerid]), NameEx(playerid), params);
  2190. }
  2191. }
  2192. return true;
  2193. }
  2194. CMD:checkweather(playerid, params[])
  2195. {
  2196. if(!Logged{playerid}) return true;
  2197. if(Faction[playerid] != FACTION_NEWS) return SysMsg(playerid,"Você deve ser membro da News Corp.");
  2198. if(Duty[playerid] == 0) return SysMsg(playerid,"Você deve estar de serviço para usar isso.");
  2199. SendClientMessageF(playerid, COLOR_WHITE, "[Previão do tempo] Atual: %s, Esperado: %s", GetWeatherName(gServerWeather), GetWeatherName(gServerUpcomingWeather));
  2200. return true;
  2201. }
  2202. CMD:interview(playerid, params[])
  2203. {
  2204. if(!Logged{playerid}) return true;
  2205. if(Faction[playerid] != FACTION_NEWS) return SysMsg(playerid,"Você deve ser membro da News Corp.");
  2206. if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você deve ser pelo menos o ranking 2 para usar isso.");
  2207. if(Duty[playerid] == 0) return SysMsg(playerid,"Você deve estar de serviço para usar isso.");
  2208. if(Interviewer != -1) return SysMsg(playerid,"Já existe uma entrevista.");
  2209. new playa = -1, showname[20];
  2210. if(sscanf(params, "us[20]", playa, showname)) return SysMsg(playerid,"Use: /entrevista [player id ou nome] [mostrar nome]");
  2211. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  2212. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  2213. if(playa == playerid) return SysMsg(playerid,"Você não pode entrevistar-se.");
  2214. InterviewPlayer = playa;
  2215. Interviewer = playerid;
  2216. format(InterviewName, 20, showname);
  2217. SendClientMessageF(InterviewPlayer, COLOR_WHITE, "%s começou uma entrevista com você. Use '/ichat' para entrar no ar!", NameEx(Interviewer));
  2218. SendClientMessageF(Interviewer, COLOR_WHITE, "Você começou uma entrevista com %s. Use '/ichat' para conversar durante uma entrevista!", NameEx(InterviewPlayer));
  2219. return true;
  2220. }
  2221. CMD:ichat(playerid, params[])
  2222. {
  2223. if(!Logged{playerid}) return true;
  2224. if(InterviewPlayer != playerid && Interviewer != playerid) return SysMsg(playerid,"Você não está em uma entrevista.");
  2225. if(isnull(params)) return SysMsg(playerid,"Use: /ichat [mensagem]");
  2226. NewsToggle{playerid} = true;
  2227. if(InterviewPlayer == playerid)
  2228. {
  2229. foreach(new i: Player)
  2230. {
  2231. if(Logged{i} && NewsToggle{i})
  2232. {
  2233. SendSplitMessageF(i, COLOR_PINK, "[ENTREVISTA DE NOTÍCIAS] %s %s: %s", InterviewName, NameEx(playerid), params);
  2234. }
  2235. }
  2236. }
  2237. else if(Interviewer == playerid)
  2238. {
  2239. foreach(new i: Player)
  2240. {
  2241. if(Logged{i} && NewsToggle{i})
  2242. {
  2243. SendSplitMessageF(i, COLOR_PINK, "[ENTREVISTA DE NOTÍCIAS] Hospedeiro %s: %s", NameEx(playerid), params);
  2244. }
  2245. }
  2246. }
  2247. return true;
  2248. }
  2249. CMD:endinterview(playerid, params[])
  2250. {
  2251. if(!Logged{playerid}) return true;
  2252. if(Faction[playerid] != FACTION_NEWS) return SysMsg(playerid,"Você deve ser membro da News Corp.");
  2253. if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você deve ser pelo menos o ranking 2 to use this.");
  2254. if(Duty[playerid] == 0) return SysMsg(playerid,"Você deve estar de serviço para usar isso.");
  2255. if(Interviewer == -1) return SysMsg(playerid,"Não há entrevista.");
  2256. if(Interviewer != playerid) return SysMsg(playerid,"Você não é o anfitrião da entrevista.");
  2257. format(gstr, sizeof(gstr),"A entrevista foi encerrada por %s.", NameEx(Interviewer));
  2258. SendClientMessage(InterviewPlayer,COLOR_WHITE,gstr);
  2259. format(gstr, sizeof(gstr),"Você encerrou a entrevista com %s.", NameEx(InterviewPlayer));
  2260. SendClientMessage(Interviewer,COLOR_WHITE,gstr);
  2261. InterviewPlayer = -1;
  2262. Interviewer = -1;
  2263. InterviewName[0] = 0;
  2264. return true;
  2265. }
  2266. CMD:starttalkshow(playerid)
  2267. {
  2268. if(!Logged{playerid}) return true;
  2269. if(Faction[playerid] != FACTION_NEWS) return SysMsg(playerid,"Você deve ser membro da News Corp.");
  2270. if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você deve ser pelo menos o ranking 2 to use this.");
  2271. if(Duty[playerid] == 0) return SysMsg(playerid,"Você deve estar de serviço para usar isso.");
  2272. if(TalkshowHost != -1) return SysMsg(playerid,"Já existe um programa de entrevistas ao vivo.");
  2273. TalkshowHost = playerid;
  2274. SendClientMessage(TalkshowHost, COLOR_WHITE, "Você iniciou um programa de entrevistas. Use /tchat para falar no ar!");
  2275. foreach(new i: Player) if(Logged{i} && Faction[i] == FACTION_NEWS && i != playerid) SendClientMessageF(i, COLOR_PINK, "[TALKSHOW ALERTA] %s começou um programa de entrevistas.", NameEx(playerid));
  2276. return true;
  2277. }
  2278. CMD:endtalkshow(playerid)
  2279. {
  2280. if(!Logged{playerid}) return true;
  2281. if(Faction[playerid] != FACTION_NEWS) return SysMsg(playerid,"Você deve ser membro da News Corp.");
  2282. if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você deve ser pelo menos o ranking 2 to use this.");
  2283. if(Duty[playerid] == 0) return SysMsg(playerid,"Você deve estar de serviço para usar isso.");
  2284. if(TalkshowHost == -1) return SysMsg(playerid, "Não há talk shows ao vivo no momento.");
  2285. TalkshowHost = -1;
  2286. TalkshowPlayer = -1;
  2287. for(new x = 0; x < sizeof(TalkshowCallers); x++) TalkshowCallers[x] = -1;
  2288. SendClientMessage(playerid, COLOR_PINK, "Você encerrou o programa de entrevistas.");
  2289. foreach(new i: Player) if(Logged{i} && Faction[i] == FACTION_NEWS && i != playerid) SendClientMessageF(i, COLOR_PINK, "[TALKSHOW ALERTA] %s terminou seu programa de entrevistas.", NameEx(playerid));
  2290. return true;
  2291. }
  2292. CMD:callers(playerid)
  2293. {
  2294. if(!Logged{playerid}) return true;
  2295. if(Faction[playerid] != FACTION_NEWS) return SysMsg(playerid,"Você deve ser membro da News Corp.");
  2296. if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você deve ser pelo menos o ranking 2 to use this.");
  2297. if(Duty[playerid] == 0) return SysMsg(playerid,"Você deve estar de serviço para usar isso.");
  2298. if(TalkshowHost == -1) return SysMsg(playerid, "Não há talk shows ao vivo no momento.");
  2299. new playa, callers = 0;
  2300. for(new x = 0; x < sizeof(TalkshowCallers); x++)
  2301. {
  2302. if(TalkshowCallers[x] != -1)
  2303. {
  2304. playa = TalkshowCallers[x];
  2305. callers ++;
  2306. SendClientMessageF(playerid, COLOR_PINK, "Chamador %i: %s [PN: %i]", callers, PhoneData[playa][pOwnerName], PhoneData[playa][pNumber]);
  2307. }
  2308. }
  2309. return true;
  2310. }
  2311. CMD:acceptcaller(playerid, params[])
  2312. {
  2313. if(!Logged{playerid}) return true;
  2314. if(Faction[playerid] != FACTION_NEWS) return SysMsg(playerid,"Você deve ser membro da News Corp.");
  2315. if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você deve ser pelo menos o ranking 2 to use this.");
  2316. if(Duty[playerid] == 0) return SysMsg(playerid,"Você deve estar de serviço para usar isso.");
  2317. if(TalkshowHost == -1) return SysMsg(playerid, "Não há talk shows ao vivo no momento.");
  2318. new callernumber;
  2319. if(sscanf(params, "i", callernumber)) return SysMsg(playerid, "Use: /acceptcaller [Chamador do ID /chamarers]");
  2320. if(callernumber < 0 && callernumber > sizeof(TalkshowCallers)) return SysMsgF(playerid, "Chamador ID deve ser maior que 0 e menos de %i", sizeof(TalkshowCallers));
  2321. if(TalkshowCallers[callernumber - 1] == -1) return SendClientMessageF(playerid, COLOR_PINK, "Não há ninguém na linha %i", callernumber + 1);
  2322. TalkshowPlayer = TalkshowCallers[callernumber - 1];
  2323. SendClientMessageF(TalkshowPlayer, COLOR_PINK, "Você está agora ao vivo em um talk show com %s. Use /tchat para falar.", NameEx(playerid));
  2324. SendClientMessageF(playerid, COLOR_PINK, "%s agora está em live no talk show.", NameEx(TalkshowPlayer));
  2325. return true;
  2326. }
  2327. CMD:endcall(playerid)
  2328. {
  2329. if(!Logged{playerid}) return true;
  2330. if(Faction[playerid] != FACTION_NEWS) return SysMsg(playerid,"Você deve ser membro da News Corp.");
  2331. if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você deve ser pelo menos o ranking 2 to use this.");
  2332. if(Duty[playerid] == 0) return SysMsg(playerid,"Você deve estar de serviço para usar isso.");
  2333. if(TalkshowHost == -1) return SysMsg(playerid, "Não há talk shows ao vivo no momento.");
  2334. if(TalkshowPlayer == -1) return SysMsg(playerid, "Atualmente, você não está em uma chamada com alguém.");
  2335. SendClientMessage(TalkshowPlayer, COLOR_PINK, "Sua conexão com SAN foi fechada.");
  2336. SendClientMessageF(TalkshowHost, COLOR_PINK, "Você encerrou a chamada com %s", NameEx(TalkshowPlayer));
  2337. TalkshowPlayer = -1;
  2338. return true;
  2339. }
  2340. CMD:denycaller(playerid, params[])
  2341. {
  2342. if(!Logged{playerid}) return true;
  2343. if(Faction[playerid] != FACTION_NEWS) return SysMsg(playerid,"Você deve ser membro da News Corp.");
  2344. if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você deve ser pelo menos o ranking 2 to use this.");
  2345. if(Duty[playerid] == 0) return SysMsg(playerid,"Você deve estar de serviço para usar isso.");
  2346. if(TalkshowHost == -1) return SysMsg(playerid, "Não há shows de entrevistas ao vivo no momento.");
  2347. new callernumber;
  2348. if(sscanf(params, "i", callernumber)) return SysMsg(playerid, "Use: /acceptcaller [Chamador do ID /chamarers]");
  2349. if(callernumber < 0 && callernumber > sizeof(TalkshowCallers)) return SysMsgF(playerid, "Chamador ID deve ser maior que 0 e menos de %i", sizeof(TalkshowCallers));
  2350. if(TalkshowCallers[callernumber - 1] == -1) return SendClientMessageF(playerid, COLOR_PINK, "Não há ninguém online %i", callernumber + 1);
  2351. SendClientMessageF(playerid, COLOR_PINK, "Você negou a chamada de %s.", NameEx(TalkshowCallers[callernumber - 1]));
  2352. TalkshowCallers[callernumber - 1] = -1;
  2353. return true;
  2354. }
  2355. CMD:toglines(playerid)
  2356. {
  2357. if(!Logged{playerid}) return true;
  2358. if(Faction[playerid] != FACTION_NEWS) return SysMsg(playerid,"Você deve ser membro da News Corp.");
  2359. if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você deve ser pelo menos o ranking 2 to use this.");
  2360. if(Duty[playerid] == 0) return SysMsg(playerid,"Você deve estar de serviço para usar isso.");
  2361. if(TalkshowHost == -1) return SysMsg(playerid, "Não há talk shows ao vivo no momento.");
  2362. SANCallers = !SANCallers;
  2363. if(SANCallers) SendClientMessage(playerid, COLOR_PINK, "Você abriu as linhas de chamadas da SAN.");
  2364. else SendClientMessage(playerid, COLOR_PINK, "Você fechou as linhas de chamadas da SAN.");
  2365. return true;
  2366. }
  2367. CMD:tchat(playerid, params[])
  2368. {
  2369. if(!Logged{playerid}) return true;
  2370. if(TalkshowPlayer != playerid && TalkshowHost != playerid) return SysMsg(playerid, "Você não está em um programa de entrevistas.");
  2371. if(isnull(params)) return SysMsg(playerid, "Use: /tchat [mensagem]");
  2372. NewsToggle{playerid} = true;
  2373. foreach(new i: Player)
  2374. {
  2375. if(Logged{i} && NewsToggle{i})
  2376. {
  2377. if(TalkshowHost == playerid) SendSplitMessageF(i, COLOR_PINK, "[TALK SHOW] Hospedeiro %s: %s", NameEx(playerid), params);
  2378. else if(TalkshowPlayer == playerid) SendSplitMessageF(i, COLOR_PINK, "[TALK SHOW] Chamador %s: %s", NameEx(playerid), params);
  2379. }
  2380. }
  2381. return true;
  2382. }
  2383. //==================== Fim ==================================//
  2384. //5 Silver Trading
  2385. //Silver Trading
  2386. CMD:properties(playerid, params[])
  2387. {
  2388. if(!Logged{playerid}) return true;
  2389. if(!IsPlayerInRangeOfPoint(playerid,7.5,1325.923950,183.807281,1858.25976) && Faction[playerid] != FACTION_PROP) return SysMsg(playerid,"Você deve estar nos escritórios Silver Trading para usar esse comando.");
  2390. Dialog_Show(playerid, STPropertiesMenu, DIALOG_STYLE_LIST, "Selecionar tipo de lista", "Veja Silver Trading Properties\nVer casas livre", "Selecionar", "Cancelar");
  2391. return true;
  2392. }
  2393. CMD:addp(playerid, params[])
  2394. {
  2395. if(!Logged{playerid}) return true;
  2396. if(Faction[playerid] != FACTION_PROP) return SysMsg(playerid, AUTHMSG);
  2397. new idx = 0, forsale, price;
  2398. if(sscanf(params, "ii", forsale, price)) return SysMsg(playerid,"Use: /addp [à venda? 0/1/2] [$preço]");
  2399. if(forsale < 0 || forsale > 2) return SysMsg(playerid,"O parâmetro de venda deve ser 1(não), 2(sim), ou 0(escondido de /properties).");
  2400. if(price < 1 || price > 100000000) return SysMsg(playerid,"parâmetro de preço deve estar entre 1 e 100,000,000.");
  2401. for(idx = 0; idx < MAX_HOUSES; idx++)
  2402. {
  2403. if(IsPlayerInRangeOfPoint(playerid, 0.75, HouseData[idx][oPosX], HouseData[idx][oPosY], HouseData[idx][oPosZ]) && GetPlayerVirtualWorld(playerid) == HouseData[idx][HouseExtVW])
  2404. {
  2405. HouseData[idx][HouseOwnerSQLID] = -5;
  2406. MySQLUpdateInt(HouseData[idx][HouseSQLID], "OwnerSQLID", -5, "houses");
  2407. if(forsale != 0)
  2408. {
  2409. mysql_format(conn, mquery, sizeof(mquery), "REPLACE INTO traders (Type, ForSale, Price, SQLID, Description) VALUES (1, %i, %i, %i, '%e')", forsale - 1, price, HouseData[idx][HouseSQLID], HouseData[idx][HouseDescription]);
  2410. mysql_pquery(conn, mquery);
  2411. }
  2412. SendClientMessageF(playerid, COLOR_WHITE, "A casa '%s' agora está em Silver Trading por $%i", HouseData[idx][HouseDescription], price);
  2413. return true;
  2414. }
  2415. }
  2416. for(idx = 0; idx < MAX_BIZZ; idx++)
  2417. {
  2418. if(IsPlayerInRangeOfPoint(playerid, 0.75, BizzData[idx][oPosX], BizzData[idx][oPosY], BizzData[idx][oPosZ]))
  2419. {
  2420. BizzData[idx][BizzOwnerSQLID] = -5;
  2421. MySQLUpdateInt(BizzData[idx][BizzSQLID], "OwnerSQLID", -5, "bizz");
  2422. if(forsale != 0)
  2423. {
  2424. mysql_format(conn, mquery, sizeof(mquery), "REPLACE INTO traders (Type, ForSale, Price, SQLID, Description) VALUES (2, %i, %i, %i, '%e')", forsale - 1, price, BizzData[idx][BizzSQLID], BizzData[idx][BizzDescription]);
  2425. mysql_pquery(conn, mquery);
  2426. }
  2427. SendClientMessageF(playerid, COLOR_WHITE, "A empresa '%s' agora está em Silver Trading por $%i", BizzData[idx][BizzDescription], price);
  2428. return true;
  2429. }
  2430. }
  2431. return true;
  2432. }
  2433. CMD:getprop(playerid, params[])
  2434. {
  2435. if(!Logged{playerid}) return true;
  2436. if(Faction[playerid] != FACTION_PROP) return SysMsg(playerid, AUTHMSG);
  2437. new idx;
  2438. for(idx = 0; idx < MAX_HOUSES; idx++)
  2439. {
  2440. if(IsPlayerInRangeOfPoint(playerid, 0.75, HouseData[idx][oPosX], HouseData[idx][oPosY], HouseData[idx][oPosZ]) && GetPlayerVirtualWorld(playerid) == HouseData[idx][HouseExtVW] && HouseData[idx][HouseOwnerSQLID] == -5)
  2441. {
  2442. HouseData[idx][HouseOwnerSQLID] = SQLID[playerid];
  2443. MySQLUpdateInt(HouseData[idx][HouseSQLID], "OwnerSQLID", SQLID[playerid], "houses");
  2444. mysql_format(conn, mquery, sizeof(mquery), "DELETE FROM traders WHERE SQLID=%i AND Type=1", HouseData[idx][HouseSQLID]);
  2445. mysql_pquery(conn, mquery);
  2446. format(gstr, sizeof(gstr), "A casa '%s' agora é sua.", HouseData[idx][HouseDescription]);
  2447. SendClientMessage(playerid, COLOR_WHITE, gstr);
  2448. return true;
  2449. }
  2450. }
  2451. for(idx = 0; idx < MAX_BIZZ; idx++)
  2452. {
  2453. if(IsPlayerInRangeOfPoint(playerid, 0.75, BizzData[idx][oPosX], BizzData[idx][oPosY], BizzData[idx][oPosZ]) && BizzData[idx][BizzOwnerSQLID] == -5)
  2454. {
  2455. BizzData[idx][BizzOwnerSQLID] = SQLID[playerid];
  2456. MySQLUpdateInt(BizzData[idx][BizzSQLID], "OwnerSQLID", SQLID[playerid], "bizz");
  2457. mysql_format(conn, mquery, sizeof(mquery), "DELETE FROM traders WHERE SQLID=%i AND Type=2", BizzData[idx][BizzSQLID]);
  2458. mysql_pquery(conn, mquery);
  2459. format(gstr, sizeof(gstr), "A empresa '%s' agora é sua.", BizzData[idx][BizzDescription]);
  2460. SendClientMessage(playerid, COLOR_WHITE, gstr);
  2461. return true;
  2462. }
  2463. }
  2464. return true;
  2465. }
  2466. CMD:lockbizzes(playerid, params[])
  2467. {
  2468. if(!Logged{playerid}) return true;
  2469. if(Faction[playerid] != FACTION_PROP) return SysMsg(playerid, AUTHMSG);
  2470. new toggle = 0;
  2471. if(sscanf(params, "i", toggle)) return SysMsg(playerid, "Use: /fecharbizzes [0 para desbloquear, 1 para bloqueio]");
  2472. if(toggle != 0 && toggle != 1) return cmd_lockbizzes(playerid, "");
  2473. for(new b = MAX_BIZZ; b != 0; b--)
  2474. {
  2475. if(BizzData[b][BizzOwnerSQLID] == -5)
  2476. {
  2477. if(toggle == 0)
  2478. {
  2479. if(BizzData[b][BizzLocked])
  2480. {
  2481. BizzData[b][BizzLocked] = false;
  2482. }
  2483. }
  2484. else
  2485. {
  2486. if(!BizzData[b][BizzLocked])
  2487. {
  2488. BizzData[b][BizzLocked] = true;
  2489. }
  2490. }
  2491. }
  2492. }
  2493. if(toggle == 1) SysMsg(playerid, "Todos os negócios Silver Trading estam bloqueados.");
  2494. else SysMsg(playerid, "Todos os negócios da Silver Trading foram desbloqueados.");
  2495. return true;
  2496. }
  2497. CMD:lockhouses(playerid, params[])
  2498. {
  2499. if(!Logged{playerid}) return true;
  2500. if(Faction[playerid] != FACTION_PROP) return SysMsg(playerid, AUTHMSG);
  2501. new toggle = 0, idx;
  2502. if(sscanf(params, "i", toggle)) return SysMsg(playerid, "Use: /lockhouses [0 para desbloquear, 1 para bloqueio]");
  2503. if(toggle == 0)
  2504. {
  2505. for(idx = 0; idx < MAX_HOUSES; idx++)
  2506. {
  2507. if(HouseData[idx][HouseOwnerSQLID] == -5)
  2508. {
  2509. HouseData[idx][HouseLocked] = 0;
  2510. MySQLUpdateInt(HouseData[idx][HouseSQLID], "HouseLocked", HouseData[idx][HouseLocked], "houses");
  2511. }
  2512. }
  2513. SysMsg(playerid, "Todas as casas Silver Trading foram desbloqueadas.");
  2514. toggle = 1;
  2515. }
  2516. else
  2517. {
  2518. for(idx = 0; idx < MAX_HOUSES; idx++)
  2519. {
  2520. if(HouseData[idx][HouseOwnerSQLID] == -5)
  2521. {
  2522. HouseData[idx][HouseLocked] = 1;
  2523. MySQLUpdateInt(HouseData[idx][HouseSQLID], "HouseLocked", HouseData[idx][HouseLocked], "houses");
  2524. }
  2525. }
  2526. SysMsg(playerid, "Todas as casas Silver Trading foram bloqueadas.");
  2527. toggle = 0;
  2528. }
  2529. return true;
  2530. }
  2531. //==================== Fim ==================================//
  2532. //6 General government faction commands (sasp, ap, fd, etc)
  2533. //General government faction commands (sasp, ap, fd, etc)
  2534. CMD:beanbag(playerid, params[])//bala de borracha
  2535. {
  2536. if(IsPlayerAdmin(playerid) || IsCop(playerid) || Faction[playerid] == FACTION_RESEARCH)
  2537. {
  2538. if(GetPlayerWeapon(playerid) != 25) return SysMsg(playerid, "Você deve estar segurando uma shotgun para usar isso.");
  2539. HasRubberBullets{playerid} = !HasRubberBullets{playerid};
  2540. if(HasRubberBullets{playerid}) SendClientMessage(playerid, COLOR_YELLOW, "Bala de borracha ativada.");
  2541. else SendClientMessage(playerid, COLOR_YELLOW, "Bala de borracha desativada.");
  2542. }
  2543. else return SysMsg(playerid,"Você precisa ser membro da Polícia do Estado.");
  2544. return true;
  2545. }
  2546. CMD:cuff(playerid, params[])//algemar
  2547. {
  2548. if(!Logged{playerid}) return true;
  2549. if(IsCop(playerid) || Faction[playerid] == FACTION_RESEARCH)
  2550. {
  2551. new playa = -1, name[MAX_PLAYER_NAME];
  2552. if(sscanf(params, "s[24]", name)) return SysMsg(playerid,"Use: /algemar [Identificação ou parte do nome ou ID do Estrangeiro]");
  2553. if(strval(name) >= 500)
  2554. {
  2555. foreach(new p: Player)
  2556. {
  2557. if(MaskLabelNumber[p] == strval(name))
  2558. {
  2559. playa = p;
  2560. }
  2561. }
  2562. }
  2563. else playa = GetPlayerIDs(name);
  2564. if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado.");
  2565. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  2566. if(IsCuffed[playa] == 1) return SysMsg(playerid,"Esse jogador já está algemado.");
  2567. if(playa == playerid) return SysMsg(playerid,"Você não pode se algemar.");
  2568. if(ADuty[playa] == 1) return SysMsg(playerid, "Você não pode prender um admin em serviço.");
  2569. new Float:tX,Float:tY,Float:tZ;
  2570. GetPlayerPos(playa,tX,tY,tZ);
  2571. if(!IsPlayerInRangeOfPoint(playerid,5.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador algema-los.");
  2572. IsCuffed[playa] = 1;
  2573. SetPlayerToFacePlayer(playerid, playa);
  2574. OnePlayAnim(playerid, "BD_FIRE", "wash_up", 4.0, 0, 0, 0, 0, 0);
  2575. SetPlayerSpecialAction(playa, SPECIAL_ACTION_CUFFED);
  2576. if(AttachedObjects[playa][6][aoModelID] != 0)
  2577. {
  2578. RemovePlayerAttachedObject(playa, 6);
  2579. }
  2580. AttachedObjects[playa][6][aoModelID] = 19415;
  2581. AttachedObjects[playa][6][aoBone] = 6;
  2582. SetPlayerAttachedObject(playa, 6, 19418, 6, -0.011, 0.028, -0.022, -15.600012, -33.699977, -81.700035, 1.0, 1.0, 1.0);
  2583. SendClientMessageF(playa, COLOR_RED, "%s te algemou.",NameRP(playerid));
  2584. SendClientMessageF(playerid, COLOR_LIGHTBLUE, "Você algemou %s.",NameEx(playa));
  2585. format(gstr, sizeof(gstr),"* %s colocou algemas em %s. *",NameRP(playerid),NameRP(playa));
  2586. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  2587. }
  2588. else return SysMsg(playerid,"Você precisa ser membro da Polícia do Estado.");
  2589. return true;
  2590. }
  2591. CMD:uncuff(playerid, params[])//desalgemar
  2592. {
  2593. if(!Logged{playerid}) return true;
  2594. if(IsCop(playerid) || Faction[playerid] == FACTION_RESEARCH || IsPlayerAdminLevelOK(playerid, 1))
  2595. {
  2596. new playa = -1, name[MAX_PLAYER_NAME];
  2597. if(sscanf(params, "s[24]", name)) return SysMsg(playerid,"Use: /uncuff [Identificação ou parte do nome ou ID do Estrangeiro]");
  2598. if(strval(name) >= 500)
  2599. {
  2600. foreach(new p: Player)
  2601. {
  2602. if(MaskLabelNumber[p] == strval(name))
  2603. {
  2604. playa = p;
  2605. }
  2606. }
  2607. }
  2608. else playa = GetPlayerIDs(name);
  2609. if(playa == playerid && !IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid,"Você não pode retira as algemas de si mesmo.");
  2610. if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado.");
  2611. if(IsCuffed[playa] == 0) return SysMsg(playerid,"Esse jogador não está algemado.");
  2612. new Float:tX,Float:tY,Float:tZ;
  2613. GetPlayerPos(playa,tX,tY,tZ);
  2614. if(!IsPlayerInRangeOfPoint(playerid,5.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para retirar a algemas dele(a).");
  2615. IsCuffed[playa] = 0;
  2616. SetPlayerSpecialAction(playa, SPECIAL_ACTION_NONE);
  2617. RemovePlayerAttachedObject(playa, 6);
  2618. if(PlayerToBeDetained[playerid] == playa)
  2619. {
  2620. PlayerToBeDetained[playerid] = -1;
  2621. PlayerToBeDetainedSeat[playerid] = -1;
  2622. }
  2623. SendClientMessageF(playa,COLOR_RED, "%s removeu suas algemas.",NameRP(playerid));
  2624. SendClientMessageF(playerid,COLOR_LIGHTBLUE, "Você removeu as algemas de %s.",NameEx(playa));
  2625. format(gstr, sizeof(gstr),"* %s remove as algemas das mãos %s. *",NameRP(playerid),NameRP(playa));
  2626. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  2627. }
  2628. else return SysMsg(playerid,"Você precisa ser membro da Polícia do Estado.");
  2629. return true;
  2630. }
  2631. CMD:taser(playerid, params[])
  2632. {
  2633. if(!Logged{playerid}) return true;
  2634. if(IsCop(playerid) || Faction[playerid] == FACTION_RESEARCH || IsPlayerAdmin(playerid))
  2635. {
  2636. if(IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você não pode usar a Taser enquanto estiver em um veículo.");
  2637. HasTaser{playerid} = !HasTaser{playerid};
  2638. new slot = GetWeaponSlot(24), weps, ammo;
  2639. GetPlayerWeaponData(playerid, slot, weps, ammo);
  2640. PauseAC(playerid);
  2641. if(HasTaser{playerid})
  2642. {
  2643. format(gstr, sizeof(gstr),"* %s pega um teaser em seu coldre. *", NameRP(playerid));
  2644. if(weps != WEAPON_SILENCED) GivePlayerWeapon(playerid, WEAPON_SILENCED, 5);
  2645. if(weps != 0)
  2646. {
  2647. PreTaserWeapon[playerid] = weps;
  2648. PreTaserAmmo[playerid] = ammo;
  2649. WeaponData[playerid][slot][Weapon] = WEAPON_SILENCED;
  2650. }
  2651. }
  2652. else
  2653. {
  2654. format(gstr, sizeof(gstr)," *%s coloca o taser de volta ao coldre. *", NameRP(playerid));
  2655. if(PreTaserWeapon[playerid] != 0)
  2656. {
  2657. if(PreTaserWeapon[playerid] != WEAPON_SILENCED) GivePlayerWeapon(playerid, PreTaserWeapon[playerid], PreTaserAmmo[playerid]);
  2658. WeaponData[playerid][slot][Weapon] = PreTaserWeapon[playerid];
  2659. WeaponData[playerid][slot][WeaponAmmo] = PreTaserAmmo[playerid];
  2660. PreTaserWeapon[playerid] = 0;
  2661. PreTaserAmmo[playerid] = 0;
  2662. }
  2663. else
  2664. {
  2665. ResetWeaponVariables(playerid, 0, slot);
  2666. SyncPlayerWeapons(playerid);
  2667. PreTaserWeapon[playerid] = 0;
  2668. PreTaserAmmo[playerid] = 0;
  2669. }
  2670. }
  2671. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  2672. }
  2673. else return SysMsg(playerid,"Você precisa ser membro da Polícia do Estado.");
  2674. return true;
  2675. }
  2676. CMD:laser(playerid, params[])
  2677. {
  2678. if(!Logged{playerid}) return true;
  2679. if(!IsCop(playerid) && Faction[playerid] != FACTION_RESEARCH) return SysMsg(playerid,"Você não é capaz de usar o laser");
  2680. if(GetPlayerWeapon(playerid) != 23 && GetPlayerWeapon(playerid) != 31) return SysMsg(playerid,"Você não possui a arma correta para usar o laser");
  2681. if(IsCuffed[playerid] == 1) return SysMsg(playerid, "Você não pode usar este comando enquanto algemado.");
  2682. if(CallerID[playerid] >= 1) return SysMsg(playerid, "Você não pode anexar um laser enquanto você está no telefone.");
  2683. if(!HasLaser{playerid})
  2684. {
  2685. SendClientMessage(playerid, 0xFFFFFFFF, "O seu laser está agora ligado à sua arma..");
  2686. OnePlayAnim(playerid,"RIFLE","RIFLE_load",4,0,0,0,0,0);
  2687. HasLaser{playerid} = true;
  2688. }
  2689. else
  2690. {
  2691. SendClientMessage(playerid, 0xFFFFFFFF, "Seu laser foi removido de sua arma.");
  2692. OnePlayAnim(playerid,"RIFLE","RIFLE_load",4,0,0,0,0,0);
  2693. HasLaser{playerid} = false;
  2694. RemovePlayerAttachedObject(playerid,6);
  2695. }
  2696. return true;
  2697. }
  2698. CMD:removemask(playerid, params[])
  2699. {
  2700. if(!Logged{playerid}) return true;
  2701. if(IsCop(playerid) || IsPlayerAdminLevelOK(playerid, 1))
  2702. {
  2703. new Float:ClosestDistance = 99999.99, Float:tmpDistance, ClosestPlayer = -1;
  2704. new Float:x1, Float:y1, Float:z1;
  2705. GetPlayerPos(playerid, x1, y1, z1);
  2706. foreach(new x: Player)
  2707. {
  2708. if(x != playerid && IsSpectating[x] == -1 && IsPlayerMasked{x} && MaskHideName{x})
  2709. {
  2710. new Float:x3, Float:y3, Float:z3;
  2711. GetPlayerPos(x, x3, y3, z3);
  2712. tmpDistance = floatsqroot(floatpower(floatabs(floatsub(x3, x1)), 2) + floatpower(floatabs(floatsub(y3, y1)), 2) + floatpower(floatabs(floatsub(z3, z1)) ,2));
  2713. if(tmpDistance < ClosestDistance)
  2714. {
  2715. ClosestDistance = tmpDistance;
  2716. ClosestPlayer = x;
  2717. }
  2718. }
  2719. }
  2720. if(ClosestDistance > 10.0) return SysMsg(playerid,"Você não está perto de ninguém mascarado.");
  2721. new RandomHit = random(4);
  2722. if(RandomHit == 0)
  2723. {
  2724. format(gstr, sizeof(gstr),"* %s tenta remover a mascara do jogador próximo e falha. *",NameEx(playerid));
  2725. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  2726. return true;
  2727. }
  2728. format(gstr, sizeof(gstr),"* %s remove a mascara de uma pessoa próxima. *",NameEx(playerid));
  2729. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  2730. foreach(new i: Player)
  2731. {
  2732. if(ClosestPlayer != i) ShowPlayerNameTagForPlayer(i, ClosestPlayer, 1);
  2733. }
  2734. IsPlayerMasked{ClosestPlayer} = false;
  2735. MaskHideName{ClosestPlayer} = false;
  2736. DeleteMaskLabel(ClosestPlayer);
  2737. MaskLabelNumber[ClosestPlayer] = 0;
  2738. SendClientMessage(ClosestPlayer, COLOR_LIGHTRED, "Sua máscara foi removida.");
  2739. return true;
  2740. }
  2741. else SysMsg(playerid,"Você precisa ser um membro da polícia.");
  2742. return true;
  2743. }
  2744. CMD:detain(playerid, params[])//deter
  2745. {
  2746. if(!Logged{playerid}) return true;
  2747. if(IsCop(playerid))
  2748. {
  2749. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SysMsg(playerid,"Você deve estar a pé para deter alguém.");
  2750. if(PlayerToBeDetained[playerid] != -1) return SysMsg(playerid,"Você só pode ter uma pessoa detida ao mesmo tempo, coloque o detido na unidade.");
  2751. new playa = -1, seatid, name[MAX_PLAYER_NAME];
  2752. if(sscanf(params, "s[24]i", name, seatid)) return SysMsg(playerid,"Use: /detain [Identificação ou parte do nome ou ID do Estrangeiro] [ID do assento] *Dica: 1, 2 & 3 São assentos de passageiros*");
  2753. if(strval(name) >= 500)
  2754. {
  2755. foreach(new p: Player)
  2756. {
  2757. if(MaskLabelNumber[p] == strval(name))
  2758. {
  2759. playa = p;
  2760. }
  2761. }
  2762. }
  2763. else playa = GetPlayerIDs(name);
  2764. if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado.");
  2765. if(playa == playerid) return SysMsg(playerid,"Você não pode usar esse comando em si mesmo.");
  2766. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  2767. if(IsCuffed[playa] == 0) return SysMsg(playerid,"Esse jogador não está algemado. Por favor, use: /cuff primeiro.");
  2768. if(seatid < 1 || seatid > 4) return SysMsg(playerid,"A identificação do assento inválido.");
  2769. new Float:tX,Float:tY,Float:tZ;
  2770. GetPlayerPos(playa,tX,tY,tZ);
  2771. if(!IsPlayerInRangeOfPoint(playerid,6.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para detê-lo.");
  2772. format(gstr, sizeof(gstr),"* Oficial %s detém %s. *",NameEx(playerid),NameRP(playa));
  2773. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  2774. format(gstr, sizeof(gstr),"Você deteu %s. Ele(a) serão colocados no id do assento %i do seu próximo carro.",NameEx(playa),seatid);
  2775. SendClientMessage(playerid,COLOR_BLUE,gstr);
  2776. PlayerToBeDetained[playerid] = playa;
  2777. PlayerToBeDetainedSeat[playerid] = seatid;
  2778. TogglePlayerControllable(playa,0);
  2779. LoopingAnim(playa,"WUZI","CS_Dead_Guy", 3.0,0,0,0,0,0);
  2780. }
  2781. else SysMsg(playerid,"Você precisa ser membro da Polícia do Estado.");
  2782. return true;
  2783. }
  2784. CMD:mdc(playerid)
  2785. {
  2786. if((IsPlayerAdmin(playerid)) || Faction[playerid] == FACTION_COP || Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_RESEARCH)
  2787. {
  2788. if(CanUseMDC(playerid))
  2789. {
  2790. PlayerPlayNearbySound(playerid, MDC_OPEN);
  2791. if(Faction[playerid] == FACTION_COP || (IsPlayerAdmin(playerid)) || Faction[playerid] == FACTION_RESEARCH) Dialog_Show(playerid, MDC_Home, DIALOG_STYLE_LIST, "MDC - Painel", "Pesquisa por nome\nBuscar Placa\nBoletim de todos os pontos\nChamadas recentes do 911", "Selecione", "Sair");
  2792. else Dialog_Show(playerid, MDC_Home, DIALOG_STYLE_LIST, "MDC - Painel", "Chamadas recentes do 911\nSolicitar backup", "Selecione", "Sair");
  2793. SetPlayerChatBubble(playerid, "* Logs into the Mobile Data Computer *", COLOR_EMOTE, 15, 10000);
  2794. }
  2795. else return SysMsg(playerid,"Você só pode usar no computador da sua facção ou veiculos equipados com MDC.");
  2796. }
  2797. else return SysMsg(playerid, "Você precisa ser um membro de uma facção do governo para usar este comando.");
  2798. return true;
  2799. }
  2800. CMD:forcein(playerid, params[])//puxa de dentro do veiculo
  2801. {
  2802. if(!Logged{playerid}) return true;
  2803. if(!IsCop(playerid)) return SysMsg(playerid,"Você precisa ser um oficial de aplicação da lei.");
  2804. if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você deve ser um motorista para forçar um jogador dentro.");
  2805. new playa = -1, seatid, name[MAX_PLAYER_NAME];
  2806. if(sscanf(params, "s[24]i", name, seatid)) return SysMsg(playerid,"Use: /forcein [Identificação ou parte do nome ou ID do Estrangeiro] [seat id] *Dica: 1, 2 & 3 São assentos de passageiros*");
  2807. if(strval(name) >= 500)
  2808. {
  2809. foreach(new p: Player)
  2810. {
  2811. if(MaskLabelNumber[p] == strval(name))
  2812. {
  2813. playa = p;
  2814. }
  2815. }
  2816. }
  2817. else playa = GetPlayerIDs(name);
  2818. if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado.");
  2819. if(playa == playerid) return SysMsg(playerid,"Você não pode forçar você mesmo.");
  2820. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  2821. if(IsCuffed[playa] == 0) return SysMsg(playerid,"Esse jogador não está algemado. Por favor, use: /cuff primeiro.");
  2822. if(seatid < 1 || seatid > 4) return SysMsg(playerid,"O ID do assento inválido.");
  2823. new Float:tX,Float:tY,Float:tZ;
  2824. GetPlayerPos(playa,tX,tY,tZ);
  2825. if(!IsPlayerInRangeOfPoint(playerid,6.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para forçá-los.");
  2826. format(gstr, sizeof(gstr),"* O oficial %s puxa %s de dentro do veiculo. *",NameEx(playerid),NameRP(playa));
  2827. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  2828. PutPlayerInVehicle(playa, GetPlayerVehicleID(playerid), seatid);
  2829. return true;
  2830. }
  2831. CMD:take(playerid, params[]) //pegar
  2832. {
  2833. if(!Logged{playerid}) return true;
  2834. if(IsCop(playerid) || Faction[playerid] == FACTION_RESEARCH || IsPlayerAdminLevelOK(playerid, 1))
  2835. {
  2836. new playa = -1, object[10], itemAmount = -1, name[MAX_PLAYER_NAME];
  2837. if(sscanf(params, "s[24]s[10]I(-1)", name, object, itemAmount)) return SysMsg(playerid,"Use: /take [Identificação ou parte do nome ou ID do Estrangeiro] [arma/marijuana/cocaina/moonshine/maleta] [quantidade (se necessário)]");
  2838. if(strval(name) >= 500)
  2839. {
  2840. foreach(new p: Player)
  2841. {
  2842. if(MaskLabelNumber[p] == strval(name))
  2843. {
  2844. playa = p;
  2845. }
  2846. }
  2847. }
  2848. else playa = GetPlayerIDs(name);
  2849. if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado.");
  2850. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  2851. new Float:tX, Float:tY, Float:tZ;
  2852. GetPlayerPos(playa, tX, tY, tZ);
  2853. if(!IsPlayerInRangeOfPoint(playerid, 5.5, tX, tY, tZ)) return SysMsg(playerid,"Você deve estar perto do jogador.");
  2854. if(strcmp("arma", object, true) == 0)
  2855. {
  2856. new wCount = 0;
  2857. for(new i = 0; i < MAX_TOTAL_WEAPONS; i++)
  2858. {
  2859. if(WeaponData[playa][i][Weapon] > 0)
  2860. {
  2861. new substr[50];
  2862. if(wCount == 0) format(gstr, sizeof(gstr), GetWeaponNameFromID(WeaponData[playa][i][Weapon]));
  2863. else
  2864. {
  2865. format(substr, 50, "\n%s", GetWeaponNameFromID(WeaponData[playa][i][Weapon]));
  2866. strcat(gstr, substr);
  2867. }
  2868. wCount ++;
  2869. }
  2870. }
  2871. if(wCount == 0)
  2872. {
  2873. SysMsg(playerid,"Esse jogador não tem armas..");
  2874. return true;
  2875. }
  2876. else
  2877. {
  2878. if(wCount > 1) strcat(gstr, "\nPegue todas as armas");
  2879. TakeGunPlayer[playerid] = playa;
  2880. new caption[128];
  2881. format(caption, 128, "Pegue uma arma de %s:", NameRP(playa)),
  2882. Dialog_Show(playerid, WeaponTake, DIALOG_STYLE_LIST, caption, gstr, "Pegar", "Cancelar");
  2883. }
  2884. return true;
  2885. }
  2886. if(strcmp("marijuana", object, true) == 0)
  2887. {
  2888. if(itemAmount == -1) return SysMsg(playerid,"Use: /take [ID ou nome do jogador] marijuana [Quantidade]");
  2889. if(itemAmount < 1 || itemAmount > Inventory[playa][Weed]) return SysMsg(playerid,"Quantidade Inválida, deve ser 1 a quantidade de marijuana que o jogador tem (/revistar).");
  2890. Inventory[playa][Weed] -= itemAmount;
  2891. MySQLUpdateInt(SQLID[playa], "Weed", Inventory[playa][Weed], "players");
  2892. format(gstr, sizeof(gstr),"* %s toma algumas drogas de %s. *", NameRP(playerid), NameRP(playa));
  2893. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  2894. format(gstr, sizeof(gstr),"%s tomou %i grama(s) de marijuana de você.", NameRP(playerid), itemAmount);
  2895. SendClientMessage(playa, COLOR_ORANGE, gstr);
  2896. format(gstr, sizeof(gstr),"Você pegou %i grama(s) de marijuana de %s.", itemAmount, NameRP(playa));
  2897. SendClientMessage(playerid, COLOR_ORANGE, gstr);
  2898. return true;
  2899. }
  2900. if(strcmp("Cocaina", object, true) == 0)
  2901. {
  2902. if(itemAmount == -1) return SysMsg(playerid,"Use: /take [ID ou nome do jogador] Cocaina [Quantidade]");
  2903. if(itemAmount < 1 || itemAmount > Inventory[playa][Cocaine]) return SysMsg(playerid,"Quantidade Inválida, deve ser 1 a quantidade de cocaina que o jogador tem (/revistar).");
  2904. Inventory[playa][Cocaine] -= itemAmount;
  2905. MySQLUpdateInt(SQLID[playa], "Cocaine", Inventory[playa][Cocaine], "players");
  2906. format(gstr, sizeof(gstr),"* %s toma algumas drogas de %s. *", NameRP(playerid), NameRP(playa));
  2907. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  2908. format(gstr, sizeof(gstr),"%s tomou %i grama(s) de cocaina de você.", NameRP(playerid), itemAmount);
  2909. SendClientMessage(playa, COLOR_ORANGE, gstr);
  2910. format(gstr, sizeof(gstr),"Você pegou %i grama(s) de cocaine de %s.", itemAmount, NameRP(playa));
  2911. SendClientMessage(playerid, COLOR_ORANGE, gstr);
  2912. return true;
  2913. }
  2914. if(strcmp("MoonShine", object, true) == 0)
  2915. {
  2916. if(itemAmount == -1) return SysMsg(playerid,"Use: /take [ID ou nome do jogador] MoonShine [Quantidade]");
  2917. if(itemAmount < 1 || itemAmount > Inventory[playa][MoonShine]) return SysMsg(playerid,"Quantidade Inválida, deve ser 1 a quantidade de MoonShine que o jogador tem (/revistar).");
  2918. Inventory[playa][MoonShine] -= itemAmount;
  2919. MySQLUpdateInt(SQLID[playa], "MoonShine", Inventory[playa][MoonShine], "players");
  2920. format(gstr, sizeof(gstr),"* %s toma algumas drogas de %s. *", NameRP(playerid), NameRP(playa));
  2921. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  2922. format(gstr, sizeof(gstr),"%s tomou %i litro(s) de Moon Shine de você.", NameRP(playerid), itemAmount);
  2923. SendClientMessage(playa, COLOR_ORANGE, gstr);
  2924. format(gstr, sizeof(gstr),"Você pegou %i litro(s) de Moon Shine de %s.", itemAmount, NameRP(playa));
  2925. SendClientMessage(playerid, COLOR_ORANGE, gstr);
  2926. return true;
  2927. }
  2928. if(strcmp("maleta", object, true) == 0)
  2929. {
  2930. if(Inventory[playa][Briefcase] == 0) return SysMsg(playerid, "Esse jogador não tem uma maleta.");
  2931. Inventory[playa][Briefcase] = 0;
  2932. BriefcaseWeapon[playa] = 0;
  2933. BriefcaseCash[playa] = 0;
  2934. BriefcaseLocked[playa] = 0;
  2935. BriefcaseCode[playa] = 0;
  2936. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET HasBriefcase = 0, BriefcaseWeapon = 0, BriefcaseCash = 0, BriefcaseWeed = 0, BriefcaseCocaine = 0, BriefcaseCode = 0, BriefcaseLocked = 0 WHERE id = %i", SQLID[playa]);
  2937. mysql_pquery(conn, mquery);
  2938. if(BriefcaseHolding[playa] > 0)
  2939. {
  2940. BriefcaseHolding[playa] = 0;
  2941. RemovePlayerAttachedObject(playa, HOLD_OBJECT_BRIEFCASE);
  2942. }
  2943. format(gstr, sizeof(gstr),"* %s pega a maleta de %s. *", NameRP(playerid), NameRP(playa));
  2944. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  2945. format(gstr, sizeof(gstr),"%s pegou sua maleta e seus conteúdos.", NameRP(playerid));
  2946. SendClientMessage(playa, COLOR_ORANGE, gstr);
  2947. format(gstr, sizeof(gstr),"Você pegou a maleta de %s e todos os conteúdos contido dentro dela.", NameRP(playa));
  2948. SendClientMessage(playerid, COLOR_ORANGE, gstr);
  2949. return true;
  2950. }
  2951. }
  2952. else SysMsg(playerid,"Você precisa ser membro da Polícia do Estado.");
  2953. return true;
  2954. }
  2955. CMD:siren(playerid, params[])//adicionar sirene
  2956. {
  2957. if(!Logged{playerid}) return true;
  2958. new vehicleid = GetPlayerVehicleID(playerid);
  2959. if(vehicleid == 0) return SysMsg(playerid,"Você precisa estar em um veiculo de facção.");
  2960. if(IsFactionVehicle(vehicleid) != Faction[playerid]) return SysMsg(playerid,"Você precisa estar em um veiculo de facção.");
  2961. if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER && (GetPlayerVehicleSeat(playerid) != 1 && GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)) return SysMsg(playerid,"Você precisa estar no acento de condução or front passenger.");
  2962. new modelid = GetVehicleModel(vehicleid);
  2963. if(!Siren{vehicleid})
  2964. {
  2965. if(VehObject[vehicleid] != INVALID_OBJECT_ID) return SysMsg(playerid, "Este veículo já tem um objeto anexado a ele.");
  2966. if(IsCop(playerid))
  2967. {
  2968. switch(modelid)
  2969. {
  2970. case 596: //LSPD
  2971. {
  2972. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, -1.75, 0.35, 0.0, 0.0, 0.0);
  2973. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  2974. }
  2975. case 598: //LVPD
  2976. {
  2977. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, -1.5, 0.35, 0.0, 0.0, 0.0);
  2978. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  2979. }
  2980. case 490: //FBI RANCH
  2981. {
  2982. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.5, 0.5, 1.15, 0.0, 0.0, 0.0);
  2983. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  2984. }
  2985. case 560: //SULTAN
  2986. {
  2987. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.45, 0.25, 0.85, 0.0, 0.0, 0.0);
  2988. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  2989. }
  2990. case 426: //PREMIER
  2991. {
  2992. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.45, 0.0, 0.875, 0.0, 0.0, 0.0);
  2993. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  2994. }
  2995. case 541: //Bullet
  2996. {
  2997. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.6, 0.35, 0.0, 0.0, 0.0);
  2998. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  2999. }
  3000. case 411: //Infernus
  3001. {
  3002. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.98, 0.24, 0.0, 0.0, 0.0);
  3003. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3004. }
  3005. case 402: //buffalo
  3006. {
  3007. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.55, 0.3, 0.0, 0.0, 0.0);
  3008. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3009. }
  3010. case 579: //buffalo
  3011. {
  3012. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.6, 0.6, -10.0, 0.0, 0.0);
  3013. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3014. }
  3015. case 413: //PONY
  3016. {
  3017. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.65, 1.2, 0.0, 0.0, 0.0);
  3018. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3019. }
  3020. case 597: //SFPD
  3021. {
  3022. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, -1.75, 0.35, 0.0, 0.0, 0.0);
  3023. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3024. }
  3025. case 415: //CHEETAH
  3026. {
  3027. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.65, 0.2, 0.0, 0.0, 0.0);
  3028. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3029. }
  3030. case 445: //admiral
  3031. {
  3032. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.004999, 0.739999, 0.309999, 0.000000, 0.000000, 0.000000);
  3033. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3034. }
  3035. case 421: //Washington
  3036. {
  3037. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.000000, 0.799999, 0.239999, 0.000000, 0.000000, 0.000000);
  3038. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3039. }
  3040. case 599: //Police Ranger
  3041. {
  3042. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.65, 0.5, 0.0, 0.0, 0.0);
  3043. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3044. }
  3045. case 427: //Enforcer
  3046. {
  3047. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 1.655, 0.7, 0.0, 0.0, 0.0);
  3048. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3049. }
  3050. case 405: //Sentinel
  3051. {
  3052. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.7, 0.25, 0.0, 0.0, 0.0);
  3053. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3054. }
  3055. case 482: //Burrito
  3056. {
  3057. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.5, 0.6, 0.95, 0.0, 0.0, 0.0);
  3058. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3059. }
  3060. case 457: //Caddy
  3061. {
  3062. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.3, 0.3, 1.35, 0.0, 0.0, 0.0);
  3063. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3064. }
  3065. case 470: //Patriot
  3066. {
  3067. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.75, 0.2, 1.13, 0, 0, 0);
  3068. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3069. }
  3070. case 525: //Towtruck
  3071. {
  3072. VehObject[vehicleid] = CreateVehicleObject(19803, vehicleid, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  3073. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3074. }
  3075. default: SysMsg(playerid,"Este veículo não pode ter uma sirene.");
  3076. }
  3077. }
  3078. else if(Faction[playerid] == FACTION_SACFD)
  3079. {
  3080. switch(modelid)
  3081. {
  3082. case 407: //FireTruck
  3083. {
  3084. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.0,-3.01,1.350000,0.0,0.0,0.0);
  3085. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3086. }
  3087. case 544: //FireTruck LA (Ladder)
  3088. {
  3089. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0,2.850001,1.500000,0.0,0.0,0.0);
  3090. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3091. }
  3092. case 416: // Ambulance
  3093. {
  3094. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0,-3.525001,1.350000,0.0,0.0,0.0);
  3095. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3096. }
  3097. case 525: // Towtruck
  3098. {
  3099. VehObject[vehicleid] = CreateVehicleObject(19803, vehicleid, 0.0,-0.449999,1.425000,0.0,0.0,0.0);
  3100. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3101. }
  3102. case 433: // Barracks
  3103. {
  3104. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0,1.275000,1.725000,0.0,0.0,0.0);
  3105. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3106. }
  3107. case 552: //Utility
  3108. {
  3109. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.65, 1.375, 0.0, 0.0, 0.0);
  3110. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3111. }
  3112. case 554: //Yosemite
  3113. {
  3114. VehObject[vehicleid] = CreateVehicleObject(19419, vehicleid, 0.0, 0.0, 1.049999, 0.0, 0.0, 0.0);
  3115. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3116. }
  3117. case 427: //Enforcer
  3118. {
  3119. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 1.655, 0.7, 0.0, 0.0, 0.0);
  3120. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3121. }
  3122. case 490: //FBI RANCH
  3123. {
  3124. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.5, 0.5, 1.15, 0.0, 0.0, 0.0);
  3125. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3126. }
  3127. case 597: //SFPD
  3128. {
  3129. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, -1.75, 0.35, 0.0, 0.0, 0.0);
  3130. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3131. }
  3132. default: SysMsg(playerid,"Este veículo não pode ter uma sirene.");
  3133. }
  3134. }
  3135. else if(Faction[playerid] == FACTION_RESEARCH)
  3136. {
  3137. switch(modelid)
  3138. {
  3139. case 596: //LSPD
  3140. {
  3141. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, -1.75, 0.35, 0.0, 0.0, 0.0);
  3142. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3143. }
  3144. case 598: //LVPD
  3145. {
  3146. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, -1.5, 0.35, 0.0, 0.0, 0.0);
  3147. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3148. }
  3149. case 560: //SULTAN
  3150. {
  3151. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.45, 0.25, 0.85, 0.0, 0.0, 0.0);
  3152. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3153. }
  3154. case 426: //PREMIER
  3155. {
  3156. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.45, 0.0, 0.875, 0.0, 0.0, 0.0);
  3157. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3158. }
  3159. case 541: //Bullet
  3160. {
  3161. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.6, 0.35, 0.0, 0.0, 0.0);
  3162. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3163. }
  3164. case 411: //Infernus
  3165. {
  3166. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.98, 0.24, 0.0, 0.0, 0.0);
  3167. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3168. }
  3169. case 482: //burrito
  3170. {
  3171. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.0, 0.995, 0.0, 0.0, 0.0);
  3172. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3173. }
  3174. case 402: //buffalo
  3175. {
  3176. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.55, 0.3, 0.0, 0.0, 0.0);
  3177. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3178. }
  3179. case 579: //buffalo
  3180. {
  3181. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.6, 0.6, -10.0, 0.0, 0.0);
  3182. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3183. }
  3184. case 413: //PONY
  3185. {
  3186. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.65, 1.2, 0.0, 0.0, 0.0);
  3187. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3188. }
  3189. case 597: //SFPD
  3190. {
  3191. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, -1.75, 0.35, 0.0, 0.0, 0.0);
  3192. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3193. }
  3194. case 415: //CHEETAH
  3195. {
  3196. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.65, 0.2, 0.0, 0.0, 0.0);
  3197. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3198. }
  3199. case 428: //securi
  3200. {
  3201. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.65, 1.35, 0.0, 0.0, 0.0);
  3202. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3203. }
  3204. case 405: //SENTINEL
  3205. {
  3206. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.75, 0.25, 0.0, 0.0, 0.0);
  3207. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3208. }
  3209. case 421: //WASHINTON
  3210. {
  3211. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.9, 0.225, 0.0, 0.0, 0.0);
  3212. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3213. }
  3214. case 490: //FBI RANCH
  3215. {
  3216. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.5, 0.5, 1.15, 0.0, 0.0, 0.0);
  3217. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3218. }
  3219. case 470: //Patriot
  3220. {
  3221. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.75, 0.2, 1.13, 0.0, 0.0, 0.0);
  3222. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3223. }
  3224. case 433: //Barracks
  3225. {
  3226. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.65, 015, 1.74, 0.0, 0.0, 0.0);
  3227. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3228. }
  3229. case 429: //Banshee
  3230. {
  3231. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.5, -1.27, 0.6, 0.0, 0.0, 0.0);
  3232. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3233. }
  3234. case 424: //BF Injection
  3235. {
  3236. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.64, 0.16, 0.92, -10.0, 0.0, 0.0);
  3237. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3238. }
  3239. case 582: //Newsvan
  3240. {
  3241. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.7, 1.05, 1.18, 0.0, 0.0, 0.0);
  3242. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3243. }
  3244. case 503: //hotrin
  3245. {
  3246. VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0, 0.75, 0.45, 0.0, 0.0, 0.0);
  3247. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3248. }
  3249. case 525: //Towtruck
  3250. {
  3251. VehObject[vehicleid] = CreateVehicleObject(19803, vehicleid, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  3252. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados.");
  3253. }
  3254. default: SysMsg(playerid,"Este veículo não pode ter uma sirene.");
  3255. }
  3256. }
  3257. else return SysMsg(playerid, "Esta facção não tem este recurso.");
  3258. Siren{vehicleid} = true;
  3259. }
  3260. else
  3261. {
  3262. if(IsCop(playerid) || Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_RESEARCH)
  3263. {
  3264. if(VehObject[vehicleid] != INVALID_OBJECT_ID && Siren{vehicleid})
  3265. {
  3266. if(Faction[playerid] == FACTION_SACFD && GetVehicleModel(vehicleid) == 554)
  3267. {
  3268. DestroyDynamicObjectEx(VehObject[vehicleid], "VehObject[vehicleid] 4");
  3269. VehObject[vehicleid] = CreateVehicleObject(19420, vehicleid, 0.0, 0.0, 1.049999, 0.0, 0.0, 0.0);
  3270. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {8B0000}Off");
  3271. }
  3272. else
  3273. {
  3274. DestroyDynamicObjectEx(VehObject[vehicleid], "VehObject[vehicleid] 5");
  3275. VehObject[vehicleid] = INVALID_OBJECT_ID;
  3276. SendClientMessage(playerid, COLOR_WHITE, "> Sirene {8B0000}Deparada");
  3277. }
  3278. Siren{vehicleid} = false;
  3279. }
  3280. }
  3281. }
  3282. return true;
  3283. }
  3284. CMD:viewmyimpounds(playerid, params[])//ver veiculos apreendidos
  3285. {
  3286. if(!Logged{playerid}) return true;
  3287. if(IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você não pode coletar um veículo imobilizado enquanto estiver dentro de um.");
  3288. if(!IsPlayerInRangeOfPoint(playerid, 3.0, 619.476257, -592.645996, 17.233013)) return SysMsg(playerid,"Você precisa estar na garagem do depósito. (Dillimore).");
  3289. new sub[300], count;
  3290. gstr[0] = EOS;
  3291. for(new v = 0, x = MAX_VEHICLES; v < x; v++)
  3292. {
  3293. if(ImpoundData[v][iModel] > 399)
  3294. {
  3295. if(ImpoundData[v][iOwnerSQLID] == SQLID[playerid] || ImpoundData[v][iFaction] == Faction[playerid] && Faction[playerid] != 0)
  3296. {
  3297. if(ImpoundData[v][iImpoundTime] > 0) format(sub, 100, "%s - %i minutos restantes - $%i taxa de liberação - Razão: '%s'\n", GetVehicleNameEx(ImpoundData[v][iModel]), ImpoundData[v][iImpoundTime], ImpoundData[v][iImpoundFee], ImpoundData[v][iImpoundReason]);
  3298. else format(sub, 100, "%s - $%i taxa de liberação - Razão: '%s'\n", GetVehicleNameEx(ImpoundData[v][iModel]), ImpoundData[v][iImpoundFee], ImpoundData[v][iImpoundReason]);
  3299. strcat(gstr, sub);
  3300. ClothingSelected[playerid][count] = v;
  3301. count ++;
  3302. }
  3303. }
  3304. }
  3305. if(count == 0) return SysMsg(playerid,"Você não tem veículos confiscados.");
  3306. Dialog_Show(playerid, MyImpounds, DIALOG_STYLE_LIST, "Meus veículos apreendidos", gstr, "Desaprender", "Sair");
  3307. return true;
  3308. }
  3309. CMD:payparkingticket(playerid, params[])
  3310. {
  3311. if(!Logged{playerid}) return true;
  3312. new vehicleid = GetPlayerVehicleID(playerid);
  3313. if(vehicleid == 0) return SysMsg(playerid, "Você deve estar no seu veículo.");
  3314. if(VehicleData[vehicleid][VehicleOwnerSQLID] != SQLID[playerid]) return SysMsg(playerid, "Você deve estar no seu veículo.");
  3315. if(VehicleData[vehicleid][TicketAmount] == 0) return SysMsg(playerid, "Este veículo não tem ticket de estacionamento para pagar.");
  3316. if(Cash[playerid] < VehicleData[vehicleid][TicketAmount]) return SysMsg(playerid, "Você não tem dinheiro suficiente para pagar este ticket.");
  3317. GivePlayerCash(playerid, -VehicleData[vehicleid][TicketAmount]);
  3318. format(gstr, sizeof(gstr),"Você pagou o ticket de estacionamento de $%i do seu %s.", VehicleData[vehicleid][TicketAmount], GetVehicleName(vehicleid));
  3319. SendClientMessage(playerid,COLOR_LIGHTBLUE,gstr);
  3320. FACTIONS[FACTION_COP][FactionBankBalance] += floatround(0.4 * VehicleData[vehicleid][TicketAmount]);
  3321. MySQLUpdateInt(FACTION_COP, "BankBalance", FACTIONS[FACTION_COP][FactionBankBalance], "factions");
  3322. format(gstr, sizeof(gstr),"%s pagou o seu ticket de estacionamento de $%i. Uma porcentagem do dinheiro foi adicionada ao banco da facção.", NameEx(playerid), VehicleData[vehicleid][TicketAmount]);
  3323. PoliceMessage(gstr);
  3324. VehicleData[vehicleid][TicketAmount] = 0;
  3325. MySQLUpdateInt(VehicleData[vehicleid][VehSQLID], "TicketAmount", 0, "vehicles");
  3326. return true;
  3327. }
  3328. CMD:psa(playerid, params[])
  3329. {
  3330. if(!Logged{playerid}) return true;
  3331. if(IsCop(playerid) || Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_RESEARCH)
  3332. {
  3333. if(Faction[playerid] == FACTION_RESEARCH && FactionRank[playerid] < 8) return SysMsg(playerid,"Você precisa ser o Rank 8+ para enviar um Aperture PSA.");
  3334. if(Faction[playerid] == FACTION_SACFD && !IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não tem um rank apropriado para usar este comando to send an SACFD PSA.");
  3335. if(IsCop(playerid) && !IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não tem um rank apropriado para usar este comando to send an SASP PSA.");
  3336. if(isnull(params)) return SysMsg(playerid,"Use: /psa [mensagem]");
  3337. new psa[196];
  3338. format(psa, sizeof(psa), "PSA de %s %s: %s", GetFactionRankName(Faction[playerid], FactionRank[playerid]), NameEx(playerid), params);
  3339. SendClientMessageToAllLogged(COLOR_BLUE, psa);
  3340. }
  3341. return true;
  3342. }
  3343. CMD:pan(playerid, params[])//auto falante da prisão
  3344. {
  3345. if(!Logged{playerid}) return true;
  3346. if(Faction[playerid] == FACTION_COP)
  3347. {
  3348. new tannoy2[196], loc[12];
  3349. if(!IsPlayerInRangeOfPoint(playerid, 2.0, -1337.6696, -48.7392, 17.7579)) return SysMsg(playerid,"Você deve estar na sala de controle para usar o tannoy.");
  3350. if(sscanf(params, "s[12]s[196]", loc, tannoy2)) return SysMsg(playerid,"Use: /pan [dentro/fora/ambos] [mensagem]");
  3351. if(strcmp("dentro", loc, true) == 0)
  3352. {
  3353. foreach(new i: Player)
  3354. {
  3355. if(Logged{i} && GetPlayerInterior(i) == 6 && GetPlayerVirtualWorld(i) == 6164)
  3356. {
  3357. SendClientMessageF(i, 0x3DAD2FFF, "Prisão - Microfone o< %s", tannoy2);
  3358. }
  3359. }
  3360. }
  3361. if(strcmp("fora", loc, true) == 0)
  3362. {
  3363. foreach(new i: Player)
  3364. {
  3365. if(Logged{i} && IsPlayerInRangeOfPoint(i, 75.0, 173.2664, 1412.5975, 31.3242))
  3366. {
  3367. SendClientMessageF(i, 0x3DAD2FFF, "Prisão - Microfone o< %s", tannoy2);
  3368. }
  3369. }
  3370. }
  3371. if(strcmp("ambos", loc, true) == 0)
  3372. {
  3373. foreach(new i: Player)
  3374. {
  3375. if(Logged{i} && ((GetPlayerInterior(i) == 6 && GetPlayerVirtualWorld(i) == 6164) || IsPlayerInRangeOfPoint(i, 75.0, 173.2664,1412.5975,31.3242)))
  3376. {
  3377. SendClientMessageF(i, 0x3DAD2FFF, "Prisão - Microfone o< %s", tannoy2);
  3378. }
  3379. }
  3380. }
  3381. }
  3382. else return SysMsg(playerid,"Você precisa ser um membro do SASP para usar esse comando.");
  3383. return true;
  3384. }
  3385. CMD:lockdown(playerid, params[])//fecha celar = toda prisão
  3386. {
  3387. if(!Logged{playerid}) return true;
  3388. if(Faction[playerid] != FACTION_COP) return SysMsg(playerid, "Você deve ser um membro do SASP.");
  3389. new cellstr[64];
  3390. if(!IsPlayerInRangeOfPoint(playerid, 2.0, -1337.6696, -48.7392, 17.7579)) return SysMsg(playerid, "Você deve estar no microfone da prisão para começar um bloqueio");
  3391. {
  3392. if(PrisonLockdown == 0)
  3393. {
  3394. PrisonLockdown = 1;
  3395. foreach(new i: Player) if(Logged{i} && IsInPrison(i) || IsPlayerInRangeOfPoint(i, 75.0, -694.249816, 456.985992, 5.0055)) SendClientMessage(i, 0x3DAD2FFF, "Prisão - Microfoneo< A prisão está agora sob bloqueio!");
  3396. for(new w = 0; w < sizeof(PrisonDoorsLock); w++) PrisonDoorsLock[w] = 1;
  3397. for(new p = 0; p < 16; p++)
  3398. {
  3399. PrisonCellsLock[p] = 1;
  3400. format(cellstr, sizeof(cellstr), "Celas %i\nFechadas", p+1);
  3401. DestroyDynamic3DTextLabel(PrisonCellsText[p]);
  3402. PrisonCellsText[p] = Text3D:INVALID_3DTEXT_ID;
  3403. PrisonCellsText[p] = CreateDynamic3DTextLabel(cellstr, COLOR_WHITE, PrisonCellsOut[p][0], PrisonCellsOut[p][1], PrisonCellsOut[p][2], 5.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, 6164, -1, -1, 5);
  3404. }
  3405. }
  3406. else if(PrisonLockdown == 1)
  3407. {
  3408. PrisonLockdown = 0;
  3409. foreach(new i: Player) if(Logged{i} && IsInPrison(i) || IsPlayerInRangeOfPoint(i, 75.0, -694.249816, 456.985992, 5.0055)) SendClientMessage(i, 0x3DAD2FFF, "Prisão - Microfoneo< A prisão não está mais bloqueada. Volte para suas atividades regulares.");
  3410. for(new w = 0; w < sizeof(PrisonDoorsLock); w++) PrisonDoorsLock[w] = 0;
  3411. for(new p = 0; p < 16; p++)
  3412. {
  3413. PrisonCellsLock[p] = 0;
  3414. format(cellstr, sizeof(cellstr), "Celas %i\nDesbloqueadas", p+1);
  3415. DestroyDynamic3DTextLabel(PrisonCellsText[p]);
  3416. PrisonCellsText[p] = Text3D:INVALID_3DTEXT_ID;
  3417. PrisonCellsText[p] = CreateDynamic3DTextLabel(cellstr, COLOR_WHITE, PrisonCellsOut[p][0], PrisonCellsOut[p][1], PrisonCellsOut[p][2], 5.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, 6164, -1, -1, 55);
  3418. }
  3419. }
  3420. }
  3421. return true;
  3422. }
  3423. CMD:wanted(playerid, params[])
  3424. {
  3425. if(!Logged{playerid}) return true;
  3426. if(Faction[playerid] == FACTION_COP || Faction[playerid] == FACTION_RESEARCH)
  3427. {
  3428. if(!CanUseMDC(playerid)) return SysMsg(playerid,"Você deve estar em um computador.");
  3429. new count = 0;
  3430. SendClientMessage(playerid, COLOR_WHITE, "Pessoas:");
  3431. foreach(new i: Player)
  3432. {
  3433. if(Logged{i})
  3434. {
  3435. if(PoliceFineAmount[i] > 0)
  3436. {
  3437. SendClientMessageF(playerid, COLOR_LIGHTBLUE, " %s(%i) - Multa a pagar: $%i.",NameEx(i), i, PoliceFineAmount[i]);
  3438. count++;
  3439. }
  3440. }
  3441. }
  3442. if(!count) SendClientMessage(playerid, COLOR_LIGHTBLUE, "Nenhum");
  3443. }
  3444. else SysMsg(playerid, "Você deve estar em uma facção do governo para usar este comando.");
  3445. return true;
  3446. }
  3447. CMD:cases(playerid, params[])
  3448. {
  3449. if(!Logged{playerid}) return true;
  3450. if(!IsCop(playerid)) return SysMsg(playerid,"Você precisa ser um oficial de aplicação da lei");
  3451. new count = 0;
  3452. SendClientMessage(playerid, COLOR_WHITE, "Pessoas na prisão:");
  3453. foreach(new i: Player)
  3454. {
  3455. if(Logged{i})
  3456. {
  3457. if(IsJailed[i] > 0)
  3458. {
  3459. SendClientMessageF(playerid, COLOR_LIGHTBLUE, "%s (%i) - %i minutos restantes na cela %i.", NameEx(i), i, JailTime[i], JailCell[i]);
  3460. count++;
  3461. }
  3462. }
  3463. }
  3464. if(count == 0) SendClientMessage(playerid, COLOR_LIGHTBLUE, "Nenhum");
  3465. return true;
  3466. }
  3467. CMD:swat(playerid, params[])
  3468. {
  3469. if(!Logged{playerid}) return true;
  3470. if(Faction[playerid] != FACTION_COP) return SysMsg(playerid,"Você precisa ser um membro do SASP.");
  3471. if(FactionRank[playerid] < 3) return SysMsg(playerid,"Você não tem um rank alto suficiente para fazer isso.");
  3472. if(!IsPlayerInRangeOfPoint(playerid,1.75, -779.4825,-394.8364,1805.5311) && GetVehicleModel(GetPlayerVehicleID(playerid)) != 427) return SysMsg(playerid,"Você não está no arsenal/Enforcer.");
  3473. if(SwatMode[playerid] == 0)
  3474. {
  3475. if(!WeaponCheck(playerid, 31)) return SysMsg(playerid, "Você não pode pegar essa arma. Ou tens duas pistolas ou uma arma primária e uma pistola na tua pessoa.");
  3476. SwatMode[playerid] = 1;
  3477. GivePlayerWeaponEx(playerid, 17, 10, 3); //Tear Gas
  3478. GivePlayerWeaponEx(playerid, 31, GetDefaultWeaponAmmo(31), 3);
  3479. SetPlayerArmourEx(playerid, 125, 1);
  3480. SetPlayerSkinEx(playerid, 285);
  3481. TogglePlayerControllable(playerid, 0);
  3482. SetTimerEx("UnFreezePlayer", 1000, 0, "d", playerid);
  3483. SendClientMessage(playerid, COLOR_WHITE, "Você está agora em serviço de S. W. A. T. Use /swat para sair.");
  3484. foreach(new i: Player) if(Faction[i] == FACTION_COP && RadioPoweredOn[playerid]) SendClientMessageF(i, 0x967100FF, "[Radio - 9112 MHz] Central Dispatcher: S.W.A.T Operative %s está agora disponível!", NameEx(playerid));
  3485. }
  3486. else
  3487. {
  3488. SetPlayerSkinEx(playerid, Clothes[playerid][4]);
  3489. cPlayersSkin[playerid] = Clothes[playerid][4];
  3490. MySQLUpdateInt(SQLID[playerid], "Skin", cPlayersSkin[playerid], "players");
  3491. SendClientMessage(playerid, COLOR_WHITE, "Você não está mais no serviço de S. W. A. T.");
  3492. ResetPlayerWeaponsEx(playerid);
  3493. SyncPlayerWeapons(playerid);
  3494. SetPlayerArmourEx(playerid, 100, 1);
  3495. SetPlayerArmedWeapon(playerid, 0);
  3496. SwatMode[playerid] = 0;
  3497. }
  3498. return true;
  3499. }
  3500. CMD:speed(playerid, params[])
  3501. {
  3502. if(!Logged{playerid}) return true;
  3503. if(IsCop(playerid) || IsPlayerAdmin(playerid))
  3504. {
  3505. new Float:vPos[3], Count = 0;
  3506. for(new v = 1, x = GetVehiclePoolSize(); v <= x; v++)
  3507. {
  3508. GetVehiclePos(v, vPos[0], vPos[1], vPos[2]);
  3509. if(IsVehicleSpawned(v) && IsPlayerInRangeOfPoint(playerid, 40.0, vPos[0], vPos[1], vPos[2]) && GetVehicleSpeed(v, 0) > 0 && VehicleHasDriver(v))
  3510. {
  3511. Count++;
  3512. SendClientMessageF(playerid, COLOR_WHITE, "[Came portátil da velocidade] %s %s - %i MPH", VehicleColors[CarColor[v][0]], GetVehicleName(v), GetVehicleSpeed(v, 0));
  3513. }
  3514. }
  3515. if(Count == 0) SysMsg(playerid, "Nenhum veículo detectado");
  3516. if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) LoopingAnim(playerid, "PED", "gang_gunstand", 4.0, 1, 1, 1, 1, 1);
  3517. format(gstr, sizeof(gstr),"* Oficial %s aponta seu detector de velocidade ao %s. *", NameEx(playerid), GetVehicleName(GetNearestVehicle(playerid)));
  3518. SetPlayerChatBubble(playerid, gstr, COLOR_EMOTE, 15.0, 4);
  3519. }
  3520. else return SysMsg(playerid,"Você precisa ser membro da Polícia do Estado.");
  3521. return true;
  3522. }
  3523. CMD:revokelicense(playerid, params[])//remover e suspender licença
  3524. {
  3525. if(!Logged{playerid}) return true;
  3526. if(!IsCop(playerid)) return SysMsg(playerid,"Você precisa ser um oficial de aplicação da lei");
  3527. //if(FactionRank[playerid] < 2) return SysMsg(playerid, "Você não tem um rank alto suficiente para fazer isso to revoke licenses.");
  3528. new playa = -1, type[24], hours;
  3529. if(sscanf(params, "us[24]i", playa, type, hours)) return SysMsg(playerid,"Use: /revokelicense [ID ou nome do jogador] [carro/moto/barco/aviao/heli/veiculo grande] [horas para suspender (até 12, use 0 para revogar)]");
  3530. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  3531. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  3532. new Float:Pos[3];
  3533. GetPlayerPos(playa, Pos[0], Pos[1], Pos[2]);
  3534. if(!IsPlayerInRangeOfPoint(playerid, 5.0, Pos[0], Pos[1], Pos[2])) return SysMsg(playerid,"Você deve estar perto do jogador.");
  3535. if(hours < 0 || hours > 12) return SysMsg(playerid,"As horas devem ser de 0 a 12.");
  3536. new lic = -1, sqlname[24], vehname[24], susname[32];
  3537. if(strcmp("carro", type, true) == 0) { lic = 0; sqlname = "LicenseCar"; susname = "LicenseSuspendTime_Car"; vehname = "CAR"; }
  3538. else if(strcmp("veiculo grande", type, true) == 0) { lic = 1; sqlname = "LicenseLargeVehicle"; susname = "LicenseSuspendTime_LargeVehicle"; vehname = "LARGE VEHICLE"; }
  3539. else if(strcmp("moto", type, true) == 0) { lic = 2; sqlname = "LicenseBike"; susname = "LicenseSuspendTime_Bike"; vehname = "BIKE"; }
  3540. else if(strcmp("barco", type, true) == 0) { lic = 3; sqlname = "LicenseBoat"; susname = "LicenseSuspendTime_Boat"; vehname = "BOAT"; }
  3541. else if(strcmp("heli", type, true) == 0) { lic = 4; sqlname = "LicenseHelicopter"; susname = "LicenseSuspendTime_Helicopter"; vehname = "HELI"; }
  3542. else if(strcmp("aviao", type, true) == 0) { lic = 5; sqlname = "LicensePlane"; susname = "LicenseSuspendTime_Plane"; vehname = "PLANE"; }
  3543. else return SysMsg(playerid,"Nenhum nome dessa licença.");
  3544. if(Licenses[playa][lic] == 0) return SysMsg(playerid,"Essa pessoa não tem licença.");
  3545. if(LicenseSuspendTime[playa][lic] > 0 && hours > 0) return SysMsg(playerid,"Já suspenderam esta licença.");
  3546. if(hours == 0)
  3547. {
  3548. Licenses[playa][lic] = 0;
  3549. LicenseSuspendTime[playa][lic] = 0;
  3550. MySQLUpdateInt(SQLID[playa], susname, LicenseSuspendTime[playa][lic], "players");
  3551. MySQLUpdateInt(SQLID[playa], sqlname, Licenses[playa][lic], "players");
  3552. format(gstr, sizeof(gstr),"Oficial %s revogou sua licença de %s. (Você deve resistir ao teste)", NameEx(playerid), vehname);
  3553. SendClientMessage(playa,COLOR_WHITE, gstr);
  3554. format(gstr, sizeof(gstr),"Você revogou a licença de %s de %s.", NameEx(playa), vehname);
  3555. SendClientMessage(playerid,COLOR_WHITE, gstr);
  3556. }
  3557. else
  3558. {
  3559. LicenseSuspendTime[playa][lic] = hours * 60;
  3560. MySQLUpdateInt(SQLID[playa], susname, LicenseSuspendTime[playa][lic], "players");
  3561. format(gstr, sizeof(gstr),"Oficial %s suspendeu sua licença de %s por %i horas.", NameEx(playerid), vehname, hours);
  3562. SendClientMessage(playa,COLOR_WHITE, gstr);
  3563. format(gstr, sizeof(gstr),"Você suspendeu a licença de %s de %s por %i horas.", NameEx(playa), vehname, hours);
  3564. SendClientMessage(playerid,COLOR_WHITE, gstr);
  3565. }
  3566. return true;
  3567. }
  3568. CMD:drag(playerid, params[])//comando de arrastar - testar
  3569. {
  3570. if(!Logged{playerid}) return true;
  3571. if(IsDragging[playerid] != -1) return SysMsg(playerid,"Você já está arrastando alguém.");
  3572. if(IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você não pode arrastar de dentro de um veículo.");
  3573. if(IsCop(playerid) || Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_RESEARCH)
  3574. {
  3575. new playa = -1;
  3576. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /drag [ID ou nome do jogador]");
  3577. if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado.");
  3578. if(playa == playerid) return SysMsg(playerid, "Você não pode arrastar-se.");
  3579. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  3580. if(IsCop(playerid) && IsCuffed[playa] == 0) return SysMsg(playerid,"O jogador deve estar algemado para arrastá-los.");
  3581. if(IsJailed[playa] == 1) return SysMsg(playerid,"Você não pode arrastar alguém que está na cadeia.");
  3582. if(IsPlayerInAnyVehicle(playa)) return SysMsg(playerid,"Você não pode arrastá-los se esta pessoa estiver dentro de um veículo.");
  3583. if(IsSpectating[playa] >= 0) return SysMsg(playerid,"Você deve estar perto do jogador to drag them.");
  3584. if(ADuty[playa] == 1) return SysMsg(playerid, "Você não pode usar este comando com um administrador em serviço.");
  3585. foreach(new i: Player)
  3586. {
  3587. if(IsDragging[i] == playerid) return SysMsg(playerid, "Você não pode arrastar alguém que já está arrastando alguém.");
  3588. }
  3589. new Float:tX,Float:tY,Float:tZ;
  3590. GetPlayerPos(playa,tX,tY,tZ);
  3591. if(!IsPlayerInRangeOfPoint(playerid,4.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para arrastá-lo.");
  3592. IsDragging[playerid] = playa;
  3593. TogglePlayerControllable(playa, 0);
  3594. format(gstr, sizeof(gstr),"* %s agarra %s e começa a arrastá-lo. *", NameRP(playerid), NameRP(playa));
  3595. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  3596. format(gstr, sizeof(gstr),"%s está arrastando você.", NameRP(playerid));
  3597. SendClientMessage(playa,COLOR_BLUE,gstr);
  3598. }
  3599. return true;
  3600. }
  3601. CMD:stopdrag(playerid, params[])
  3602. {
  3603. if(!Logged{playerid}) return true;
  3604. if(IsDragging[playerid] == -1) return SysMsg(playerid,"Você não está arrastando ninguém.");
  3605. new playa = IsDragging[playerid];
  3606. TogglePlayerControllable(playa, 1);
  3607. IsDragging[playerid] = -1;
  3608. if(IsCop(playerid) || Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_RESEARCH)
  3609. {
  3610. format(gstr, sizeof(gstr),"* %s solta %s e deixa ele(a) ir. *", NameRP(playerid), NameRP(playa));
  3611. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  3612. format(gstr, sizeof(gstr),"%s já não está te arrastando.", NameRP(playerid));
  3613. SendClientMessage(playa,COLOR_BLUE,gstr);
  3614. }
  3615. return true;
  3616. }
  3617. CMD:stinger(playerid, params[])//colocar jacafé
  3618. {
  3619. if(!Logged{playerid}) return true;
  3620. if(IsCop(playerid) || Faction[playerid] == FACTION_RESEARCH)
  3621. {
  3622. //if(FactionRank[playerid] < 2) return SysMsg(playerid, "Você não tem um rank alto suficiente para fazer isso to place a Stinger.");
  3623. if(StingerObjectID[playerid] != INVALID_OBJECT_ID) return SysMsg(playerid, "Você já colocou um jacaré no chão.");
  3624. if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid, "Você não pode implantar um jacaré dentro de um veículo.");
  3625. new Float:X, Float:Y, Float:Z, Float:Ang;
  3626. GetPlayerPos(playerid, X, Y, Z);
  3627. Ang = GetXYInFrontOfPlayer(playerid, X, Y, 5.0);
  3628. StingerObjectID[playerid] = CreateDynamicObject(2892, X, Y, Z-1, 0.0, 0.0, Ang, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid), -1, 300.0);
  3629. StingerAreaID[playerid] = CreateDynamicRectangle(X-2, Y-6, X+2, Y+6);
  3630. format(gstr, sizeof(gstr),"* Oficial %s implanta uma faixa de Spike no chão. *", NameRP(playerid));
  3631. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  3632. SendClientMessage(playerid, COLOR_BLUE, "Stinger implantado! Use /rstinger para remover.");
  3633. }
  3634. return true;
  3635. }
  3636. CMD:rstinger(playerid, params[])
  3637. {
  3638. if(!Logged{playerid}) return true;
  3639. if(IsCop(playerid) || Faction[playerid] == FACTION_RESEARCH || IsPlayerAdminLevelOK(playerid, 1))
  3640. {
  3641. if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid, "Você não pode limpar um stinger de dentro de um veículo.");
  3642. foreach(new i: Player)
  3643. {
  3644. new Float:X, Float:Y, Float:Z;
  3645. GetDynamicObjectPos(StingerObjectID[i], X, Y, Z);
  3646. if(IsPlayerInRangeOfPoint(i, 10.0, X, Y, Z))
  3647. {
  3648. DestroyDynamicObjectEx(StingerObjectID[i], "StingerObjectID[i] 1");
  3649. StingerObjectID[i] = INVALID_OBJECT_ID;
  3650. DestroyDynamicArea(StingerAreaID[i]);
  3651. StingerAreaID[i] = -1;
  3652. SendClientMessage(playerid, COLOR_BLUE, "Stinger removido.");
  3653. return true;
  3654. }
  3655. }
  3656. SysMsg(playerid, "Você não está perto de um stinger.");
  3657. }
  3658. else SysMsg(playerid, "Você deve estar no SASP ou no Aperture para usar esse comando.");
  3659. return true;
  3660. }
  3661. CMD:rb(playerid)
  3662. {
  3663. if(!Logged{playerid}) return true;
  3664. if((IsPlayerAdmin(playerid)) || IsCop(playerid) || Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_RESEARCH || Faction[playerid] == FACTION_TRUCKING)
  3665. {
  3666. //if(FactionRank[playerid] < 3) return SysMsg(playerid, "Você não tem um rank alto suficiente para fazer isso to place a Roadblock.");
  3667. if(RoadBlockCount[playerid] >= MAX_PLAYERROADBLOCKS) return SysMsg(playerid, "Você já colocou o número máximo de bloqueios rodoviários. Use /removerb.");
  3668. new blocks[9], count; //increase this number whenever adding a roadblock to RBData otherwise it will not show up here and probably return an array index error.
  3669. for(new x = 0; x < sizeof(RBData); x++)
  3670. {
  3671. blocks[x] = RBData[x][RBModel];
  3672. count ++;
  3673. }
  3674. //ShowModelSelectionMenu(playerid, "Place Roadblock", MODEL_SELECTION_ROADBLOCK, blocks, count, 0.0, 0.0, 0.0);
  3675. }
  3676. else SysMsg(playerid, "Você deve estar no SASP/Aperture/SACFD para usar este comando.");
  3677. return true;
  3678. }
  3679. CMD:moverb(playerid, params[])
  3680. {
  3681. if(!Logged{playerid}) return true;
  3682. if(IsCop(playerid) || Faction[playerid] == FACTION_RESEARCH || Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_RESEARCH || Faction[playerid] == FACTION_TRUCKING || IsPlayerAdminLevelOK(playerid, 1))
  3683. {
  3684. SelectingRoadblock{playerid} = true;
  3685. SelectObject(playerid);
  3686. return true;
  3687. }
  3688. else SysMsg(playerid, "Você deve estar no SASP/Aperture/SACFD para usar este comando.");
  3689. return true;
  3690. }
  3691. CMD:roadblock(playerid) return cmd_rb(playerid);
  3692. CMD:removerb(playerid, params[])
  3693. {
  3694. if(!Logged{playerid}) return true;
  3695. if(IsCop(playerid) || Faction[playerid] == FACTION_RESEARCH || Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_RESEARCH || Faction[playerid] == FACTION_TRUCKING || IsPlayerAdminLevelOK(playerid, 1))
  3696. {
  3697. RemovingRoadblock{playerid} = true;
  3698. SelectObject(playerid);
  3699. }
  3700. else SysMsg(playerid, "Você deve estar no SASP/Aperture/SACFD para usar este comando.");
  3701. return true;
  3702. }
  3703. CMD:ram(playerid, params[])
  3704. {
  3705. if(!Logged{playerid}) return true;
  3706. if(Faction[playerid] == FACTION_SACFD || IsCop(playerid) || Faction[playerid] == FACTION_RESEARCH)
  3707. {
  3708. // HOUSES
  3709. new Float:percChance[2], Float:randChos = random(100), ef = 0;
  3710. percChance[0] = 0.4;
  3711. percChance[1] = 0.6;
  3712. for(new h = 0; h < MAX_HOUSES; h++)
  3713. {
  3714. if(IsPlayerInRangeOfPoint(playerid,DOOR_PROXIMITY,HouseData[h][oPosX],HouseData[h][oPosY],HouseData[h][oPosZ]) && GetPlayerVirtualWorld(playerid) == HouseData[h][HouseExtVW])
  3715. {
  3716. if(HouseData[h][HouseOwnerSQLID] == -5) return SysMsg(playerid,"Você não pode derrubar essa porta.");
  3717. if(HouseData[h][HouseLocked] == 0) return SysMsg(playerid, "A porta da casa não está trancada.");
  3718. foreach(new i: Player)
  3719. {
  3720. if(Logged{i})
  3721. {
  3722. if(IsInHouseID[i] == h)
  3723. {
  3724. SendClientMessage(i, COLOR_EMOTE, "**Um som alto é ouvido na porta.**");
  3725. PlayerPlaySound(i, 6603, HouseData[h][intPosX], HouseData[h][intPosY], HouseData[h][intPosZ]);
  3726. }
  3727. if(IsPlayerInRangeOfPoint(i, 20.0, HouseData[h][oPosX], HouseData[h][oPosY], HouseData[h][oPosZ]))
  3728. {
  3729. PlayerPlaySound(i, 6603, HouseData[h][oPosX], HouseData[h][oPosY], HouseData[h][oPosZ]);
  3730. }
  3731. }
  3732. }
  3733. while(randChos > 0)
  3734. {
  3735. ef = random(2);
  3736. randChos = floatsub(randChos, percChance[ef]);
  3737. }
  3738. if(ef == 1)
  3739. {
  3740. format(gstr, sizeof(gstr),"* %s tenta abrir a porta, mas falha. *",NameRP(playerid));
  3741. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  3742. }
  3743. else
  3744. {
  3745. HouseData[h][HouseLocked] = 0;
  3746. MySQLUpdateInt(HouseData[h][HouseSQLID], "HouseLocked", HouseData[h][HouseLocked], "houses");
  3747. format(gstr, sizeof(gstr),"* %s tenta abrir a porta e consegue. *",NameRP(playerid));
  3748. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  3749. format(gstr, sizeof(gstr),"A porta da %s está agora aberta.",HouseData[h][HouseDescription]);
  3750. SendClientMessage(playerid,COLOR_WHITE,gstr);
  3751. }
  3752. return true;
  3753. }
  3754. }
  3755. // BIZZes
  3756. for(new b = 0; b < MAX_BIZZ; b++)
  3757. {
  3758. if(IsPlayerInRangeOfPoint(playerid,DOOR_PROXIMITY,BizzData[b][oPosX],BizzData[b][oPosY],BizzData[b][oPosZ]))
  3759. {
  3760. if(BizzData[b][BizzOwnerSQLID] == -5) return SysMsg(playerid,"Você não pode abaixar esta porta.");
  3761. if(!BizzData[b][BizzLocked]) return SysMsg(playerid, "O negócio não está fechado.");
  3762. foreach(new i: Player)
  3763. {
  3764. if(Logged{i})
  3765. {
  3766. if(IsInBizzID[i] == b)
  3767. {
  3768. SendClientMessage(i, COLOR_EMOTE, "**Um som alto é ouvido na porta.**");
  3769. PlayerPlaySound(i, 6603, BizzData[b][iPosX], BizzData[b][iPosY], BizzData[b][iPosZ]);
  3770. }
  3771. if(IsPlayerInRangeOfPoint(i, 20.0, BizzData[b][oPosX], BizzData[b][oPosY], BizzData[b][oPosZ]))
  3772. {
  3773. PlayerPlaySound(i, 6603, BizzData[b][oPosX], BizzData[b][oPosY], BizzData[b][oPosZ]);
  3774. }
  3775. }
  3776. }
  3777. while(randChos > 0)
  3778. {
  3779. ef = random(2);
  3780. randChos = floatsub(randChos, percChance[ef]);
  3781. }
  3782. if(ef == 1)
  3783. {
  3784. format(gstr, sizeof(gstr),"* %s tenta abrir a porta, mas falha. *",NameRP(playerid));
  3785. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  3786. }
  3787. else
  3788. {
  3789. BizzData[b][BizzLocked] = false;
  3790. MySQLUpdateInt(BizzData[b][BizzSQLID], "Locked", BizzData[b][BizzLocked], "bizz");
  3791. format(gstr, sizeof(gstr),"* %s tenta abrir a porta e consegue. *",NameRP(playerid));
  3792. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  3793. format(gstr, sizeof(gstr),"A porta da %s está agora aberta.",BizzData[b][BizzDescription]);
  3794. SendClientMessage(playerid,COLOR_WHITE,gstr);
  3795. }
  3796. return true;
  3797. }
  3798. }
  3799. //garages
  3800. for(new g = 0; g < MAX_GARAGES; g++)
  3801. {
  3802. if(IsPlayerInRangeOfPoint(playerid,DOOR_PROXIMITY,GarageData[g][oPosX],GarageData[g][oPosY],GarageData[g][oPosZ]))
  3803. {
  3804. if(!GarageData[g][GarageLocked]) return SysMsg(playerid, "A garagem não está fechada.");
  3805. foreach(new i: Player)
  3806. {
  3807. if(Logged{i})
  3808. {
  3809. if(IsInGarageID[i] == g)
  3810. {
  3811. SendClientMessage(i, COLOR_EMOTE, "**Um som alto é ouvido na porta.**");
  3812. PlayerPlaySound(i, 6603, GarageData[g][iPosX], GarageData[g][iPosY], GarageData[g][iPosZ]);
  3813. }
  3814. if(IsPlayerInRangeOfPoint(i, 20.0, GarageData[g][oPosX], GarageData[g][oPosY], GarageData[g][oPosZ]))
  3815. {
  3816. PlayerPlaySound(i, 6603, GarageData[g][oPosX], GarageData[g][oPosY], GarageData[g][oPosZ]);
  3817. }
  3818. }
  3819. }
  3820. while(randChos > 0)
  3821. {
  3822. ef = random(2);
  3823. randChos = floatsub(randChos, percChance[ef]);
  3824. }
  3825. if(ef == 1)
  3826. {
  3827. format(gstr, sizeof(gstr),"* %s tenta abrir a porta, mas falha. *",NameRP(playerid));
  3828. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  3829. return true;
  3830. }
  3831. else
  3832. {
  3833. GarageData[g][GarageLocked] = false;
  3834. MySQLUpdateInt(GarageData[g][gID], "Locked", GarageData[g][GarageLocked], "bizz");
  3835. format(gstr, sizeof(gstr),"* %s tenta abrir a porta e consegue. *",NameRP(playerid));
  3836. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  3837. format(gstr, sizeof(gstr),"A garagem de %s está agora aberta.",HouseData[GarageData[g][gHouseID]][HouseDescription]);
  3838. SendClientMessage(playerid,COLOR_WHITE,gstr);
  3839. }
  3840. return true;
  3841. }
  3842. }
  3843. //house furniture doors
  3844. if(IsInHouseID[playerid] != -1)
  3845. {
  3846. new h = IsInHouseID[playerid], Float:x, Float:y, Float:z;
  3847. for(new f = 0; f < MAX_HFURNITURE; f++)
  3848. {
  3849. if(IsValidDoorObject(HouseData[h][FurnModel][f]))
  3850. {
  3851. GetDynamicObjectPos(HouseData[h][FurnObject][f], x, y, z);
  3852. if(IsPlayerInRangeOfPoint(playerid, 2.0, x, y, z))
  3853. {
  3854. if(!HouseData[h][DoorOpen][f] && HouseData[h][DoorLocked][f])
  3855. {
  3856. while(randChos > 0)
  3857. {
  3858. ef = random(2);
  3859. randChos = floatsub(randChos, percChance[ef]);
  3860. }
  3861. if(ef == 1)
  3862. {
  3863. format(gstr, sizeof(gstr),"* %s tenta abrir a porta, mas falha. *",NameRP(playerid));
  3864. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  3865. }
  3866. else
  3867. {
  3868. ProcessHouseDoorRam(playerid, h, f);
  3869. format(gstr, sizeof(gstr),"* %s tenta abrir a porta e consegue. *",NameRP(playerid));
  3870. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  3871. break;
  3872. }
  3873. }
  3874. }
  3875. }
  3876. }
  3877. }
  3878. }
  3879. else SysMsg(playerid, "Você deve estar no SASP, SACFD ou Aperture para usar isso.");
  3880. return true;
  3881. }
  3882. CMD:backup(playerid, params[])
  3883. {
  3884. if(!Logged{playerid}) return true;
  3885. if(Inventory[playerid][Radio] == 0) return SysMsg(playerid,"Você não tem um Radio.");
  3886. if(RadioPoweredOn[playerid] == 0) return SysMsg(playerid,"Your Radio is not powered on. (/ron)");
  3887. if(Faction[playerid] == 0) return SysMsg(playerid,"Você deve estar em uma facção.");
  3888. if(Duty[playerid] != 1) return SysMsg(playerid, "Você deve estar de plantão.");
  3889. if(Dead{playerid} && IsHeadshotted(playerid)) return SysMsg(playerid,"Você não pode fazer isso depois de ser ferido por um tiro na cabeça.");
  3890. if(Faction[playerid] == FACTION_SACFD || IsCop(playerid))
  3891. {
  3892. if(isnull(params)) return SysMsg(playerid, "Use: /backup [SASP/fd]");
  3893. new freq, faction = -1, zone[MAX_ZONE_NAME];
  3894. GetPlayer2DZone(playerid, zone, MAX_ZONE_NAME);
  3895. format(BackupLocation[playerid], MAX_ZONE_NAME, zone);
  3896. if(strcmp(params, "SASP", true) == 0)
  3897. {
  3898. freq = FACTIONS[FACTION_COP][FactionRadioChannel];
  3899. faction = FACTION_COP;
  3900. BackupType[playerid] = 2;
  3901. }
  3902. else if(strcmp(params, "fd", true) == 0)
  3903. {
  3904. freq = FACTIONS[FACTION_SACFD][FactionRadioChannel];
  3905. faction = FACTION_SACFD;
  3906. BackupType[playerid] = 1;
  3907. }
  3908. if(faction == -1) return SysMsg(playerid, "Use: /backup [SASP/fd]");
  3909. format(sgstr, sizeof(sgstr), "[Radio - %i MHz] Departmental Dispatcher: %s %s de %s está solicitando backup em %s.", freq, GetFactionRankName(Faction[playerid], FactionRank[playerid]), NameEx(playerid), FACTIONS[Faction[playerid]][FNameShort], zone);
  3910. foreach(new i: Player)
  3911. {
  3912. if(IsPlayerNPC(i) || !Logged{i}) continue;
  3913. if(RadioPoweredOn[i] == 1 && RadioFrequency[i] == freq && Faction[i] == faction)
  3914. {
  3915. SendClientMessage(i, 0x967100FF, sgstr);
  3916. }
  3917. }
  3918. if(!IsPlayerInAnyVehicle(playerid)) format(sgstr, sizeof(sgstr),"* %s pressiona um botão no rádio. *", NameRP(playerid));
  3919. else format(sgstr, sizeof(sgstr),"* %s pressiona um botão no computador de dados móveis. *", NameRP(playerid));
  3920. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  3921. }
  3922. return true;
  3923. }
  3924. stock IsHeadshotted(playerid)
  3925. {
  3926. for(new hit = 0; hit < HitCount[playerid]; hit++)
  3927. {
  3928. if(Injuries[playerid][hit][pBodypart] == 9)
  3929. {
  3930. return true;
  3931. }
  3932. }
  3933. return false;
  3934. }
  3935. CMD:backupcancel(playerid, params[])
  3936. {
  3937. if(!Logged{playerid}) return true;
  3938. if(Faction[playerid] == 0) return SysMsg(playerid,"Você deve estar em uma facção.");
  3939. if(Faction[playerid] == FACTION_SACFD || IsCop(playerid))
  3940. {
  3941. new freq;
  3942. switch(BackupType[playerid])
  3943. {
  3944. case 1: freq = FACTIONS[FACTION_SACFD][FactionRadioChannel];
  3945. case 2: freq = FACTIONS[FACTION_COP][FactionRadioChannel];
  3946. }
  3947. format(gstr, sizeof(gstr), "[Radio - %i MHz] Departmental Dispatcher: %s %s de %s já não precisa de backup.", freq, GetFactionRankName(Faction[playerid], FactionRank[playerid]), NameEx(playerid), FACTIONS[Faction[playerid]][FNameShort]);
  3948. foreach(new i: Player)
  3949. {
  3950. if(IsPlayerNPC(i) || !Logged{i}) continue;
  3951. if(RadioPoweredOn[i] == 1 && RadioFrequency[i] == freq)
  3952. {
  3953. SendClientMessage(i, 0x967100FF, gstr);
  3954. }
  3955. }
  3956. BackupType[playerid] = 0;
  3957. }
  3958. return true;
  3959. }
  3960. CMD:bkcancel(playerid, params[]) return cmd_backupcancel(playerid, params);
  3961. CMD:cctv(playerid, params[])
  3962. {
  3963. if(!Logged{playerid}) return true;//parei aqui
  3964. if(UsingCCTV{playerid} || (Faction[playerid] == FACTION_COP && IsPlayerInRangeOfPoint(playerid, 2.5, -789.2172,-418.8984,1601.9958)) || Faction[playerid] == FACTION_RESEARCH && IsPlayerInRangeOfPoint(playerid, 2.5, 1034.3674,-1115.4692,2025.2595))
  3965. {
  3966. gstr[0] = EOS;
  3967. strcat(gstr, "Blueberry Norte\n");
  3968. strcat(gstr, "Blueberry sul\n");
  3969. strcat(gstr, "Blueberry Truck Terminal\n");
  3970. strcat(gstr, "Bone County Leste Gas Station\n");
  3971. strcat(gstr, "Dillimore Norte\n");
  3972. strcat(gstr, "Dillimore Oeste\n");
  3973. strcat(gstr, "El Quebrados Central\n");
  3974. strcat(gstr, "El Quebrados Leste\n");
  3975. strcat(gstr, "Fort Carson Central\n");
  3976. strcat(gstr, "Fort Carson Leste\n");
  3977. strcat(gstr, "Fort Carson Gas Station\n");
  3978. strcat(gstr, "Fort Carson Medical Center\n");
  3979. strcat(gstr, "Fort Carson Entrada norte\n");
  3980. strcat(gstr, "Hunter Quarry Intersection\n");
  3981. strcat(gstr, "Las Barrancas Sul\n");
  3982. strcat(gstr, "Las Barrancas\n");
  3983. strcat(gstr, "Las Payasadas\n");
  3984. strcat(gstr, "Montgomery Leste\n");
  3985. strcat(gstr, "Montgomery Hospital\n");
  3986. strcat(gstr, "Montgomery Sul\n");
  3987. strcat(gstr, "Palomino Creek Leste\n");
  3988. strcat(gstr, "Palomino Creek Main St\n");
  3989. strcat(gstr, "Palomino Creek Sul\n");
  3990. strcat(gstr, "Pay Toll Leste\n");
  3991. strcat(gstr, "Pay Toll West\n");
  3992. strcat(gstr, "Tiera Robada Junção\n");
  3993. strcat(gstr, "Tiera Robada Sul\n");
  3994. if(!UsingCCTV{playerid})
  3995. {
  3996. if(Faction[playerid] == FACTION_COP)
  3997. {
  3998. SetPlayerCameraPos(playerid, 263.7805, 109.5896, 1005.817);
  3999. SetPlayerCameraLookAt(playerid, 253.7805, 109.5896, 1005.817);
  4000. }
  4001. else if(Faction[playerid] == FACTION_PROP)
  4002. {
  4003. SetPlayerCameraPos(playerid, 263.7805, 109.5896, 1005.817);
  4004. SetPlayerCameraLookAt(playerid, 253.7805, 109.5896, 1005.817);
  4005. }
  4006. }
  4007. Dialog_Show(playerid, CCTVMenu, DIALOG_STYLE_LIST, "CCTV - Lista de câmeras", gstr, "Ver", "Sair");
  4008. UsingCCTV{playerid} = true;
  4009. FadeColorForPlayer(playerid, 63, 71, 76, 100, 63, 71, 76, 100, 1, 10);
  4010. }
  4011. else SysMsg(playerid, "SASP apenas. Você deve estar em uma sala CCTV.");
  4012. return true;
  4013. }
  4014. CMD:elm(playerid)
  4015. {
  4016. if(!Logged{playerid}) return true;
  4017. new VehID = GetPlayerVehicleID(playerid);
  4018. if(IsCop(playerid) || Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_RESEARCH)
  4019. {
  4020. if(VehID == 0) return SysMsg(playerid,"Você precisa estar em um veiculo de facção.");
  4021. if(IsFactionVehicle(VehID) != Faction[playerid]) return SysMsg(playerid,"Você precisa estar em um veiculo de facção.");
  4022. if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER && (GetPlayerVehicleSeat(playerid) != 1 && GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)) return SysMsg(playerid,"Você precisa estar no acento de condução ou passageiro da frente.");
  4023. if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso estando amarrado.");
  4024. if(!ELMs{VehID})
  4025. {
  4026. ToggleVehicleLights(VehID, 1);
  4027. EmergencyLights[VehID] = 0;
  4028. ELMs{VehID} = true;
  4029. SendClientMessage(playerid, COLOR_WHITE, "> Luzes de emergência {4BB74C}On");
  4030. ShowInfoText(playerid,"~g~Luzes de emergência ON",1000);
  4031. }
  4032. else if(ELMs{VehID})
  4033. {
  4034. EmergencyLights[VehID] = 0;
  4035. ToggleVehicleLights(VehID, VehicleLights[VehID]);
  4036. new panels, doors, lights, tires;
  4037. GetVehicleDamageStatus(VehID, panels, doors, lights, tires);
  4038. UpdateVehicleDamageStatus(VehID, panels, doors, 0, tires);
  4039. SendClientMessage(playerid, COLOR_WHITE, "> Luzes de emergência {8B0000}Off");
  4040. ShowInfoText(playerid,"~r~Luzes de emergência Off",1000);
  4041. ELMs{VehID} = false;
  4042. }
  4043. }
  4044. else SysMsg(playerid,"Somente certas facções podem usar esse recurso.");
  4045. return true;
  4046. }
  4047. CMD:jail(playerid, params[])
  4048. {
  4049. if(!Logged{playerid}) return true;
  4050. if(IsCop(playerid))
  4051. {
  4052. new playa = -1, time, cellid, name[MAX_PLAYER_NAME];
  4053. if(sscanf(params, "s[24]ii", name, time, cellid)) return SysMsg(playerid,"Use: /jail [ID ou nome do jogador] [tempo] [número do cela, 1-4]");
  4054. if(strval(name) >= 500)
  4055. {
  4056. foreach(new p: Player)
  4057. {
  4058. if(MaskLabelNumber[p] == strval(name))
  4059. {
  4060. playa = p;
  4061. }
  4062. }
  4063. }
  4064. else playa = GetPlayerIDs(name);
  4065. if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado.");
  4066. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  4067. if(IsDragging[playerid] == playa) return SysMsg(playerid,"Você não pode encarcerar a pessoa que está arrastando.");
  4068. new Float:tX,Float:tY,Float:tZ;
  4069. GetPlayerPos(playa,tX,tY,tZ);
  4070. if(!IsPlayerInRangeOfPoint(playerid,5.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador to jail them.");
  4071. if(time < 1) return SysMsg(playerid,"O tempo deve ser superior a 0 minutos");
  4072. if(time > 60) return SysMsg(playerid,"O tempo deve ser inferior a 60 minutos");
  4073. if(cellid < 1) return SysMsg(playerid,"O número da cela deve ser 1, 2, 3 ou 4");
  4074. if(cellid > 4) return SysMsg(playerid,"O número da cela deve ser 1, 2, 3 ou 4");
  4075. JailTime[playa] = time;
  4076. MySQLUpdateInt(SQLID[playa], "JailTime", JailTime[playa], "players");
  4077. JailPlayer(playa, cellid);
  4078. IsJailed[playa] = 1;
  4079. JailCell[playa] = cellid;
  4080. SendClientMessageF(playa,COLOR_DARKBLUE,"Oficial %s prendeu você podoe %i Minuto(s)",NameEx(playerid),time);
  4081. foreach(new i: Player)
  4082. {
  4083. if(Logged{i} && (IsCop(i))) SendClientMessageF(i,COLOR_DARKBLUE,"Oficial %s prendeu %s",NameEx(playerid),NameEx(playa));
  4084. }
  4085. SendClientMessageF(playerid, COLOR_LIGHTBLUE, "Você prendeu %s por %i Minuto(s)",NameEx(playa),time);
  4086. AddToMDC(SQLID[playa], playerid, MDC_TYPE_JAIL, time, "");
  4087. foreach(new i: Player)
  4088. {
  4089. if(PlayerToBeDetained[i] == playa)
  4090. {
  4091. PlayerToBeDetained[i] = -1;
  4092. PlayerToBeDetainedSeat[i] = -1;
  4093. break;
  4094. }
  4095. }
  4096. }
  4097. else return SysMsg(playerid,"Você precisa ser membro da Polícia do Estado.");
  4098. return true;
  4099. }
  4100. CMD:unjail(playerid, params[])
  4101. {
  4102. new playa = -1;
  4103. if(!Logged{playerid}) return true;
  4104. if(!IsCop(playerid)) return true;
  4105. {
  4106. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /unjail [ID ou nome do jogador]");
  4107. if(IsJailed[playa] == 0) return SysMsg(playerid,"Este jogador não está preso.");
  4108. new Float:tX,Float:tY,Float:tZ;
  4109. GetPlayerPos(playa,tX,tY,tZ);
  4110. if(!IsPlayerInRangeOfPoint(playerid,4.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para liberá-los.");
  4111. UnJailPlayer(playa);
  4112. MySQLUpdateInt(SQLID[playa], "JailTime", 0, "players");
  4113. SendClientMessageF(playa, COLOR_RED, "Oficial %s o liberou da prisão.",NameRP(playerid));
  4114. foreach(new i: Player)
  4115. {
  4116. if(Logged{i} && (IsCop(i))) SendClientMessageF(i,COLOR_DARKBLUE,"Oficial %s liberou %s da prisão.",NameEx(playerid),NameRP(playa));
  4117. }
  4118. SendClientMessageF(playerid, COLOR_LIGHTBLUE, "Você liberou %s da prisão.",NameEx(playa));
  4119. }
  4120. return true;
  4121. }
  4122. CMD:timeleft(playerid, params[])
  4123. {
  4124. if(!Logged{playerid}) return true;
  4125. if(PlayerImprisoned{playerid}) return SendClientMessageF(playerid, COLOR_WHITE, "Você tem {FFA900}%i{FFFFFF} minutos restantes na prisão.", PrisonTime[playerid]);
  4126. if(IsJailed[playerid] == 1) return SendClientMessageF(playerid, COLOR_WHITE, "Você tem {FFA900}%i{FFFFFF} minutos restantes na prisão.", JailTime[playerid]);
  4127. else return SysMsg(playerid, "Você não está em Jail ou em Prisão.");
  4128. }
  4129. CMD:prison(playerid, params[])
  4130. {
  4131. if(!Logged{playerid}) return true;
  4132. if(IsCop(playerid))
  4133. {
  4134. new playa = -1, time, cellid, name[MAX_PLAYER_NAME];
  4135. if(sscanf(params, "s[24]ii", name, time, cellid)) return SysMsg(playerid,"Use: /prison [ID ou nome do jogador] [horas] [número da cela]");
  4136. if(strval(name) >= 500)
  4137. {
  4138. foreach(new p: Player)
  4139. {
  4140. if(MaskLabelNumber[p] == strval(name))
  4141. {
  4142. playa = p;
  4143. }
  4144. }
  4145. }
  4146. else playa = GetPlayerIDs(name);
  4147. if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado.");
  4148. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  4149. if(IsDragging[playerid] == playa) return SysMsg(playerid,"Você não pode aprisionar a pessoa que você está arrastando.");
  4150. if(playerid == playa) return SysMsg(playerid,"Você não pode se aprisionar.");
  4151. new Float:tX,Float:tY,Float:tZ;
  4152. GetPlayerPos(playa,tX,tY,tZ);
  4153. if(!IsPlayerInRangeOfPoint(playerid,5.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador to imprison them.");
  4154. if(time < 1) return SysMsg(playerid,"O tempo deve ser superior a 1 hora.");
  4155. if(time > 2) return SysMsg(playerid,"O tempo não deve ser mais do que 2 horas.");
  4156. if(cellid < 1 || cellid > 16) return SysMsg(playerid,"Números de cela variam de 1 a 16 apenas.");
  4157. cellid --;
  4158. PrisonTime[playa] = time*60;
  4159. ImprisonPlayer(playa, cellid);
  4160. PlayerImprisoned{playa} = true;
  4161. if(Cash[playa] > 0)
  4162. {
  4163. BankBalance[playa] += Cash[playa];
  4164. SetPlayerCash(playa, 0);
  4165. }
  4166. SetPlayerArmourEx(playa, 0.0, 1);
  4167. Inventory[playa][Fags] = 0;
  4168. Inventory[playa][Lighter] = 0;
  4169. Inventory[playa][Weed] = 0;
  4170. Inventory[playa][MoonShine] = 0;
  4171. Inventory[playa][Cocaine] = 0;
  4172. Inventory[playa][AmmoBox][0] = 0;
  4173. Inventory[playa][AmmoBox][1] = 0;
  4174. Inventory[playa][AmmoBox][2] = 0;
  4175. Inventory[playa][AmmoBox][3] = 0;
  4176. Inventory[playa][AmmoBox][4] = 0;
  4177. Inventory[playa][AmmoBox][5] = 0;
  4178. Inventory[playa][Rope] = 0;
  4179. Inventory[playa][RollingPaper] = 0;
  4180. Inventory[playa][Bong] = 0;
  4181. Inventory[playa][Briefcase] = 0;
  4182. BriefcaseWeapon[playa] = 0;
  4183. BriefcaseCash[playa] = 0;
  4184. BriefcaseWeed[playa] = 0;
  4185. BriefcaseCocaine[playa] = 0;
  4186. BriefcaseCode[playa] = 0;
  4187. BriefcaseLocked[playa] = 0;
  4188. Inventory[playa][MedKit] = 0;
  4189. Inventory[playa][Toolbox] = 0;
  4190. Inventory[playa][WeedSeed] = 0;
  4191. Inventory[playa][Water] = 0;
  4192. mysql_pqueryf(conn, "UPDATE players SET HasFags = 0, HasLighter = 0, Weed = 0, Cocaine = 0, Moonshine = 0, AmmoBoxPistol = 0, AmmoBoxShotgun = 0, AmmoBoxSMG = 0, AmmoBoxRifle = 0, AmmoBoxAssaultR = 0,\
  4193. HasRope = 0, RollingPaper = 0, Bong = 0, HasMedKit = 0, HasToolbox = 0, HasWater = 0, HasWeedSeed = 0, PrisonTime = %i, Bank = %i WHERE id = %i", PrisonTime[playa], BankBalance[playa], SQLID[playa]);
  4194. if(IsPlayerMasked{playa}) cmd_unmask(playa, "");
  4195. AddToMDC(SQLID[playa], playerid, MDC_TYPE_JAIL, (time * 60), "");
  4196. SendClientMessageF(playa,COLOR_RED, "%s o aprisionou por %i horas.",NameEx(playerid),time);
  4197. SendClientMessage(playa, COLOR_WHITE, "Nota: Certos itens não são autorizados na prisão, eles foram tirados de você. Qualquer dinheiro que você tenha agora estará no seu banco.");
  4198. SendClientMessage(playa, COLOR_WHITE, "Artigos confiscados: Cigarros, isqueiros, Drogas/itens de drogas, munição, armas, corda, líquidos, Ferramentas, bolsas/maletas, celular, radio");
  4199. foreach(new i: Player) if(Logged{i} && IsCop(i)) SendClientMessageF(i,COLOR_DARKBLUE, "Oficial %s aprisionou %s.",NameEx(playerid),NameEx(playa));
  4200. SendClientMessageF(playerid,COLOR_LIGHTBLUE, "Você aprisionou %s por %i horas.",NameEx(playa),time);
  4201. foreach(new i: Player)
  4202. {
  4203. if(PlayerToBeDetained[i] == playa)
  4204. {
  4205. PlayerToBeDetained[i] = -1;
  4206. PlayerToBeDetainedSeat[i] = -1;
  4207. break;
  4208. }
  4209. }
  4210. }
  4211. else return SysMsg(playerid,"Você precisa ser membro da Polícia do Estado.");
  4212. return true;
  4213. }
  4214. CMD:isolate(playerid, params[])
  4215. {
  4216. if(!Logged{playerid}) return true;
  4217. if(Faction[playerid] != FACTION_COP) return SysMsg(playerid, "Você deve estar no SASP para isolar os jogadores.");
  4218. new playa = -1, time, isoid;
  4219. if(sscanf(params, "iii", playa, time, isoid)) return SysMsg(playerid,"Use: /isolate [player id] [tempo em minutos] [número do quarto]");
  4220. if(Isolated[playa] == 1) return SysMsg(playerid, "Esse jogador já está isolado.");
  4221. if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado.");
  4222. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  4223. if(IsDragging[playerid] == playa) return SysMsg(playerid,"Não pode isolar a pessoa que está arrastando.");
  4224. if(playerid == playa) return SysMsg(playerid,"Não pode se isolar.");
  4225. if(time > PrisonTime[playa]) return SysMsg(playerid, "Você não pode isolar alguém por mais tempo que sua sentença de prisão.");
  4226. if(isoid > 3) return SysMsg(playerid, "Você deve selecionar o quarto 0-3.");
  4227. new Float:tX,Float:tY,Float:tZ;
  4228. GetPlayerPos(playa,tX,tY,tZ);
  4229. if(!IsPlayerInRangeOfPoint(playerid,5.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador to isolate them.");
  4230. SendClientMessageF(playa,COLOR_RED, "Oficial correcional %s colocou você em isolamento por %i minutos.",NameEx(playerid),time);
  4231. foreach(new i: Player) if(Logged{i} && Faction[i] == FACTION_COP) SendClientMessageF(i,COLOR_DARKBLUE, "Oficial correcional %s colocou %s na solitária.",NameEx(playerid),NameEx(playa));
  4232. IsolationTime[playa] = time;
  4233. MySQLUpdateInt(SQLID[playa], "IsolationTime", IsolationTime[playa], "players");
  4234. IsolatePlayer(playa, isoid);
  4235. Isolated[playa] = 1;
  4236. return true;
  4237. }
  4238. CMD:editprison(playerid, params[])
  4239. {
  4240. if(!Logged{playerid}) return true;
  4241. if(Faction[playerid] == FACTION_COP)
  4242. {
  4243. new playa = -1, etime;
  4244. if(sscanf(params, "ui", playa, etime)) return SysMsg(playerid,"Use: /editprison [ID ou nome do jogador] [minutos]");
  4245. if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado.");
  4246. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  4247. if(!PlayerImprisoned{playa}) return SysMsg(playerid,"Esse jogador não está na prisão.");
  4248. if(etime < 1) return SysMsg(playerid,"O tempo deve ser superior a 1 hora.");
  4249. if(etime > 120) return SysMsg(playerid,"O tempo não deve ser superior a 2 horas.");
  4250. PrisonTime[playa] = etime;
  4251. MySQLUpdateInt(SQLID[playa], "PrisonTime", PrisonTime[playa], "players");
  4252. SendClientMessageF(playa,COLOR_RED, "Seu tempo de prisão foi alterado por %i minutos por %s.",etime,NameEx(playerid));
  4253. SendClientMessageF(playerid,COLOR_LIGHTBLUE, "Mudou o tempo de prisão de %s para %i minutos.",NameEx(playa),etime);
  4254. }
  4255. else return SysMsg(playerid,"Você deve estar no SASP para usar esse comando.");
  4256. return true;
  4257. }
  4258. CMD:releaseprisoner(playerid, params[])
  4259. {
  4260. if(!Logged{playerid}) return true;
  4261. if(Faction[playerid] == FACTION_COP || IsPlayerAdminLevelOK(playerid, 4))
  4262. {
  4263. new playa = -1;
  4264. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /releaseprisoner [ID ou nome do jogador]");
  4265. if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado.");
  4266. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  4267. if(!PlayerImprisoned{playa}) return SysMsg(playerid,"Esse jogador não está na prisão.");
  4268. ReleaseFromPrison(playa);
  4269. SendClientMessageF(playa, COLOR_RED, "Você foi libertado da prisão por %s.",NameEx(playerid));
  4270. SendClientMessageF(playerid, COLOR_LIGHTBLUE, "Você liberou %s da prisão.",NameEx(playa));
  4271. if(IsPlayerAdminLevelOK(playerid, 0)) foreach(new p: Player) if(Faction[p] == FACTION_COP) SendClientMessageF(p, COLOR_LIGHTBLUE, "[Polícia - Mensagem] %s foi libertado da prisão por %s %s.", NameEx(playa), GetFactionRankName(Faction[playerid], FactionRank[playerid]), NameEx(playerid));
  4272. }
  4273. else return SysMsg(playerid,"Você deve ser um membro do SASP para usar este comando.");
  4274. return true;
  4275. }
  4276. CMD:prisoners(playerid, params[])
  4277. {
  4278. if(!Logged{playerid}) return true;
  4279. if(Faction[playerid] == FACTION_COP || IsPlayerAdminLevelOK(playerid, 1))
  4280. {
  4281. new prisoner[48], count = 0;
  4282. gstr[0] = EOS;
  4283. strcat(gstr, "{A58977}Green Palms Correctional Facility Prisoners {B0B9CE}(( Online Players ))\n\n{FFFFFF}");
  4284. foreach(new i: Player)
  4285. {
  4286. if(Logged{i} && PlayerImprisoned{i})
  4287. {
  4288. format(prisoner, sizeof(prisoner), "%s - %i minutos restantes\n", NameEx(i), PrisonTime[i]);
  4289. strcat(gstr, prisoner);
  4290. count ++;
  4291. }
  4292. }
  4293. if(count == 0) SysMsg(playerid, "Ninguém está na prisão agora.");
  4294. else ShowMessage(playerid, "Prisioneiros:", gstr, "Pronto");
  4295. }
  4296. else return SysMsg(playerid,"Você deve ser um membro do SASP para usar este comando.");
  4297. return true;
  4298. }
  4299. CMD:celldoor(playerid, params[])
  4300. {
  4301. if(!Logged{playerid}) return true;
  4302. if(Faction[playerid] == FACTION_COP)
  4303. {
  4304. if(GetPlayerInterior(playerid) != 6 && GetPlayerVirtualWorld(playerid) != 6164) return SysMsg(playerid, "Você só pode interagir com as portas das celas se você estiver na sala principal da prisão.");
  4305. new number[4], action[7], cellid = -1;
  4306. if(sscanf(params, "s[4]s[7]", number, action)) return SysMsg(playerid,"Use: /celldoor [número de célula ou 'todas'] [(f)echar/(a)brir]");
  4307. if(IsNumeric(number))
  4308. {
  4309. cellid = strval(number);
  4310. if(cellid < 1 || cellid > 16) return SysMsg(playerid, "O número da cela deve estar entre 1 e 20, ou use 'all' para fechar/abrir todos de uma vez.");
  4311. cellid --;
  4312. if(!IsPlayerInRangeOfPoint(playerid, 5.0, PrisonCellsOut[cellid][0], PrisonCellsOut[cellid][1], PrisonCellsOut[cellid][2])) return SysMsg(playerid, "Você deve estar mais perto da porta celular primeiro.");
  4313. new cellstr[50];
  4314. if(strcmp("fechar", action, true) == 0 || strcmp("F", action, true) == 0)
  4315. {
  4316. if(PrisonCellsLock[cellid] == 1) return SysMsg(playerid, "Essa porta cela já está trancada.");
  4317. PrisonCellsLock[cellid] = 1;
  4318. format(cellstr, sizeof(cellstr), "Cela %i\nFechada", cellid+1);
  4319. DestroyDynamic3DTextLabel(PrisonCellsText[cellid]);
  4320. PrisonCellsText[cellid] = Text3D:INVALID_3DTEXT_ID;
  4321. PrisonCellsText[cellid] = CreateDynamic3DTextLabel(cellstr, COLOR_WHITE, PrisonCellsOut[cellid][0], PrisonCellsOut[cellid][1], PrisonCellsOut[cellid][2], 5.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, 6164, -1, -1, 5);
  4322. format(cellstr, sizeof(cellstr), "Cela %i {8B0000}Fechada", cellid+1);
  4323. SendClientMessage(playerid, COLOR_WHITE, cellstr);
  4324. return true;
  4325. }
  4326. else if(strcmp("abrir", action, true) == 0 || strcmp("A", action, true) == 0)
  4327. {
  4328. if(PrisonCellsLock[cellid] == 0) return SysMsg(playerid, "Essa porta cela já está aberta.");
  4329. PrisonCellsLock[cellid] = 0;
  4330. DestroyDynamic3DTextLabel(PrisonCellsText[cellid]);
  4331. PrisonCellsText[cellid] = Text3D:INVALID_3DTEXT_ID;
  4332. PrisonCellsText[cellid] = CreateDynamic3DTextLabel(cellstr, COLOR_WHITE, PrisonCellsOut[cellid][0], PrisonCellsOut[cellid][1], PrisonCellsOut[cellid][2], 5.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, 6164, -1, -1, 5);
  4333. format(cellstr, sizeof(cellstr), "Cela %i {4BB74C}Aberta", cellid+1);
  4334. SendClientMessage(playerid, COLOR_WHITE, cellstr);
  4335. return true;
  4336. }
  4337. else return SysMsg(playerid, "Use 'abrir' ou 'fecha'. Você também pode usar A e F.");
  4338. }
  4339. else
  4340. {
  4341. if(strcmp("all", number, true) == 0 || strcmp("A", number, true) == 0)
  4342. {
  4343. new changed = 0, p, cellstr[22];
  4344. if(strcmp("fechar", action, true) == 0 || strcmp("F", action, true) == 0)
  4345. {
  4346. for(p = 0; p < 16; p++)
  4347. {
  4348. if(PrisonCellsLock[p] == 0)
  4349. {
  4350. changed ++;
  4351. PrisonCellsLock[p] = 1;
  4352. format(cellstr, sizeof(cellstr), "Cela %i\nFechada", p+1);
  4353. DestroyDynamic3DTextLabel(PrisonCellsText[p]);
  4354. PrisonCellsText[p] = Text3D:INVALID_3DTEXT_ID;
  4355. PrisonCellsText[p] = CreateDynamic3DTextLabel(cellstr, COLOR_WHITE, PrisonCellsOut[p][0], PrisonCellsOut[p][1], PrisonCellsOut[p][2], 5.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, 6164, -1, -1, 5);
  4356. }
  4357. }
  4358. if(changed == 0) return SysMsg(playerid, "Todas as cela já estão bloqueadas.");
  4359. SendClientMessage(playerid, COLOR_WHITE, "Todas as cela {8B0000}Fechadas");
  4360. return true;
  4361. }
  4362. else if(strcmp("abrir", action, true) == 0 || strcmp("A", action, true) == 0)
  4363. {
  4364. for(p = 0; p < 16; p++)
  4365. {
  4366. if(PrisonCellsLock[p] == 1)
  4367. {
  4368. changed ++;
  4369. PrisonCellsLock[p] = 0;
  4370. format(cellstr, sizeof(cellstr), "Cela %i\nAberta", p+1);
  4371. DestroyDynamic3DTextLabel(PrisonCellsText[p]);
  4372. PrisonCellsText[p] = Text3D:INVALID_3DTEXT_ID;
  4373. PrisonCellsText[p] = CreateDynamic3DTextLabel(cellstr, COLOR_WHITE, PrisonCellsOut[p][0], PrisonCellsOut[p][1], PrisonCellsOut[p][2], 5.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, 6164, -1, -1, 5);
  4374. }
  4375. }
  4376. if(changed == 0) return SysMsg(playerid, "Todas as cela já estão desbloqueadas.");
  4377. SendClientMessage(playerid, COLOR_WHITE, "Todas as cela foram {4BB74C}Aberta");
  4378. return true;
  4379. }
  4380. else return SysMsg(playerid, "Use qualquer um 'abrir' ou 'fechar'. Você também pode usar A e F.");
  4381. }
  4382. }
  4383. }
  4384. else return SysMsg(playerid,"Você precisa ser um membro do SASP para usar esse comando.");
  4385. return true;
  4386. }
  4387. CMD:fine(playerid, params[])//multar
  4388. {
  4389. if(!Logged{playerid}) return true;
  4390. if(!IsCop(playerid)) return SysMsg(playerid,"Você precisa ser um oficial de aplicação da lei.");
  4391. new playa = -1, cash, reason[64];
  4392. if(sscanf(params, "uiS()[64]", playa, cash, reason)) return SysMsg(playerid,"Use: /fine [ID ou nome do jogador] [valor] [Opcional: razão]");
  4393. if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado.");
  4394. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  4395. new Float:tX,Float:tY,Float:tZ;
  4396. GetPlayerPos(playa,tX,tY,tZ);
  4397. if(!IsPlayerInRangeOfPoint(playerid,5.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador to fine them.");
  4398. if(cash < 1) return SysMsg(playerid,"A multa deve ser maior do que $0");
  4399. switch(PlayerLevel[playa])
  4400. {
  4401. case 0,1: if(cash > 10000) return SysMsg(playerid,"O valor máximo para jogadores de nível 1 é $10,000.");
  4402. case 2,3: if(cash > 20000) return SysMsg(playerid,"O valor máximo para jogadores de nível 2 e 3 é $20,000.");
  4403. case 4,5: if(cash > 30000) return SysMsg(playerid,"O valor máximo para jogadores de nível 4 e 5 é $30,000.");
  4404. default: if(cash > 60000) return SysMsg(playerid,"O valor máximo é $60,000.");
  4405. }
  4406. if(strlen(reason) > 63) return SysMsg(playerid,"A razão foi muito longa.");
  4407. if(isnull(reason)) format(reason, sizeof(reason), "Não especificado");
  4408. if(PoliceFineAmount[playa] < 0)
  4409. {
  4410. PoliceFineAmount[playa] = 0;
  4411. }
  4412. PoliceFineAmount[playa] += cash;
  4413. MySQLUpdateInt(SQLID[playa], "PoliceFine", PoliceFineAmount[playa], "players");
  4414. AddToMDC(SQLID[playa], playerid, MDC_TYPE_FINE, cash, reason);
  4415. if(PlayerToBeDetained[playerid] == playa)
  4416. {
  4417. PlayerToBeDetained[playerid] = -1;
  4418. PlayerToBeDetainedSeat[playerid] = -1;
  4419. }
  4420. if(IsCop(playerid)) format(gstr, sizeof(gstr),"Oficial %s te aplicou um multa $%s, use '/aceitar multa' para pagar. [Razão: %s]",NameEx(playerid),format_cash(cash),reason);
  4421. SendClientMessage(playa,COLOR_RED,gstr);
  4422. format(gstr, sizeof(gstr),"Você multou %s por $%s [Razão: %s]",NameEx(playa),format_cash(cash),reason);
  4423. SendClientMessage(playerid,COLOR_LIGHTBLUE,gstr);
  4424. return true;
  4425. }
  4426. CMD:warning(playerid, params[])
  4427. {
  4428. if(!Logged{playerid}) return true;
  4429. if(!IsCop(playerid)) return SysMsg(playerid,"Você precisa ser um oficial de aplicação da lei");
  4430. new playa = -1, reason[50];
  4431. if(sscanf(params, "us[50]", playa, reason)) return SysMsg(playerid,"Use: /avisaring [ID ou nome do jogador] [razão]");
  4432. if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado.");
  4433. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  4434. new Float:tX,Float:tY,Float:tZ;
  4435. GetPlayerPos(playa,tX,tY,tZ);
  4436. if(!IsPlayerInRangeOfPoint(playerid,5.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador to warn them.");
  4437. if(strlen(reason) < 2 || strlen(reason) > 50) return SysMsg(playerid,"A razão foi muito longa/curta.");
  4438. SendClientMessageF(playa, COLOR_RED, "Aviso oficial do oficial %s: %s",NameEx(playerid),reason);
  4439. SendClientMessageF(playa, COLOR_RED, "Isto será em seu registro criminal.");
  4440. SendClientMessageF(playerid, COLOR_LIGHTBLUE, "Você advertiu %s: %s",NameEx(playa),reason);
  4441. return true;
  4442. }
  4443. CMD:pticket(playerid, params[])
  4444. {
  4445. if(!Logged{playerid}) return true;
  4446. if(!IsCop(playerid)) return SysMsg(playerid,"Você precisa ser um oficial de aplicação da lei");
  4447. new vehicleid = GetNearestVehicle(playerid);
  4448. new regplate[MAX_REG_PLATE], ticketAmount;
  4449. if(sscanf(params, "s[8]i", regplate, ticketAmount)) return SysMsg(playerid,"Use: Tickt de estacionamento: /pticket [placa de matrícula] [Quantidade]");
  4450. if(!strmatch(VehicleData[vehicleid][RegPlate], regplate) || strlen(VehicleData[vehicleid][RegPlate]) <= 0) return SysMsg(playerid, "Você não está no alcance desse veículo ou a placa não existe.");
  4451. if(ticketAmount < 1 || ticketAmount > 1000) return SysMsg(playerid,"O valor deve estar entre $1 e $1000.");
  4452. VehicleData[vehicleid][TicketAmount] += ticketAmount;
  4453. MySQLUpdateInt(VehicleData[vehicleid][VehSQLID], "TicketAmount", ticketAmount, "vehicles");
  4454. format(gstr, sizeof(gstr),"Você definiu um $%i ticket por %s [%s, Proprietário: %s]", ticketAmount, VehicleData[vehicleid][RegPlate], GetVehicleNameEx(VehicleData[vehicleid][VehicleModel]), GetSQLName(VehicleData[vehicleid][VehicleOwnerSQLID]));
  4455. SendClientMessage(playerid,COLOR_LIGHTBLUE,gstr);
  4456. return true;
  4457. }
  4458. CMD:impound(playerid, params[])
  4459. {
  4460. if(!Logged{playerid}) return true;
  4461. if(!IsPlayerInRangeOfPoint(playerid, 50.0, 619.4, -592.6, 17.2)) return SysMsg(playerid,"Você precisa estar perto da Garagem do Impound (Dillimore).");
  4462. if(!IsCop(playerid)) return SysMsg(playerid,"Você precisa ser um oficial de aplicação da lei");
  4463. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você precisa estar em um veiculo.");
  4464. new vehicleid = GetPlayerVehicleID(playerid);
  4465. new impoundid = GetVehicleTrailer(vehicleid);
  4466. if(GetVehicleModel(vehicleid) != 525 || impoundid == 0) return SysMsg(playerid, "Você deve ter o veículo ligado a um reboque, para apreendê-lo.");
  4467. if(IsRentalCar(impoundid) || IsServerCar(impoundid)) return SysMsg(playerid, "Não pode confiscar os veículos do servidor.");
  4468. new cashAmount, impoundHours, reason[64];
  4469. if(sscanf(params, "iis[64]", cashAmount, impoundHours, reason)) return SysMsg(playerid,"Use: /impound [valor da multa] [horas] [razão]");
  4470. if(cashAmount < 0 || cashAmount > 1000) return SysMsg(playerid,"O valor deve estar entre $1 e $1000.");
  4471. if(impoundHours < 1 || impoundHours > 24) return SysMsg(playerid,"O tempo de depósito deve estar entre 1 e 24 horas..");
  4472. if(strlen(reason) > 19) return SysMsg(playerid,"Razão foi muito longa.");
  4473. new impound_minutes = impoundHours * 60;
  4474. if(VehicleData[impoundid][IdVehicle] > 0)
  4475. {
  4476. if(VehicleData[impoundid][Impounded]) return SysMsg(playerid, "Oops! Ocorreu um erro de sistema, por favor relate a um admin. (ERROR: VIMP-1)");
  4477. VehicleData[impoundid][Impounded] = true;
  4478. for(new im = 0, x = GetVehiclePoolSize(); im <= x; im++)
  4479. {
  4480. if(ImpoundData[im][iSQLID] < 1)
  4481. {
  4482. ImpoundData[im][iModel] = VehicleData[impoundid][VehicleModel];
  4483. ImpoundData[im][iSQLID] = VehicleData[impoundid][VehSQLID];
  4484. ImpoundData[im][iOwnerSQLID] = VehicleData[impoundid][VehicleOwnerSQLID];
  4485. ImpoundData[im][iImpoundedBy] = SQLID[playerid];
  4486. ImpoundData[im][iImpoundFee] = cashAmount;
  4487. ImpoundData[im][iImpoundTime] = impound_minutes;
  4488. ImpoundData[im][iColor1] = VehicleData[impoundid][vColor1];
  4489. ImpoundData[im][iColor2] = VehicleData[impoundid][vColor2];
  4490. format(ImpoundData[im][iImpoundReason], 64, reason);
  4491. format(ImpoundData[im][iRegPlate], MAX_REG_PLATE, VehicleData[impoundid][RegPlate]);
  4492. ImpoundData[im][iVehType] = 1;
  4493. ImpoundData[im][iFaction] = 0;
  4494. break;
  4495. }
  4496. }
  4497. new Float:health, panels, doors, lights, tires;
  4498. GetVehicleHealth(impoundid, health);
  4499. GetVehicleDamageStatus(impoundid, panels, doors, lights, tires);
  4500. if(health < 250) health = 250;
  4501. mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET Impounded = 1, ImpoundedBy = %i, ImpoundTime = %i, ImpoundFee = %i, ImpoundReason = '%e', DamageHealth = %.2f, DamagePanels = %i, DamageDoors = %i, DamageLights = %i, DamageTires = %i WHERE id = %i",
  4502. SQLID[playerid], impound_minutes, cashAmount, reason, health, panels, doors, lights, tires, VehicleData[impoundid][VehSQLID]);
  4503. mysql_pquery(conn, mquery);
  4504. if(VehicleData[impoundid][ForSale])
  4505. {
  4506. VehicleData[impoundid][ForSale] = false;
  4507. VehicleData[impoundid][ForSalePrice] = 0;
  4508. }
  4509. if(VehicleData[impoundid][ForSaleLabel] != Text3D:INVALID_3DTEXT_ID) DestroyDynamic3DTextLabel(VehicleData[impoundid][ForSaleLabel]);
  4510. VehicleData[impoundid][ForSaleLabel] = Text3D:INVALID_3DTEXT_ID;
  4511. VehicleData[impoundid][IdVehicle] = 0;
  4512. }
  4513. else if(FVehicleData[vehicleid][FactionVehID] > 0)
  4514. {
  4515. FVehicleData[impoundid][FImpounded] = true;
  4516. mysql_format(conn, mquery, sizeof(mquery), "UPDATE fveh SET Impounded = 1, ImpoundedBy = %i, ImpoundTime = %i, ImpoundFee = %i, ImpoundReason = '%e' WHERE id = %i",
  4517. SQLID[playerid], impound_minutes, cashAmount, reason, FVehicleData[impoundid][FVSQLID]);
  4518. mysql_pquery(conn, mquery);
  4519. for(new im = 0, x = GetVehiclePoolSize(); im <= x; im++)
  4520. {
  4521. if(ImpoundData[im][iSQLID] < 1)
  4522. {
  4523. ImpoundData[im][iModel] = FVehicleData[impoundid][FVModel];
  4524. ImpoundData[im][iSQLID] = FVehicleData[impoundid][FVSQLID];
  4525. ImpoundData[im][iOwnerSQLID] = 0;
  4526. ImpoundData[im][iImpoundedBy] = SQLID[playerid];
  4527. ImpoundData[im][iImpoundFee] = cashAmount;
  4528. ImpoundData[im][iImpoundTime] = impound_minutes;
  4529. ImpoundData[im][iColor1] = FVehicleData[impoundid][FVCol1];
  4530. ImpoundData[im][iColor2] = FVehicleData[impoundid][FVCol2];
  4531. format(ImpoundData[im][iImpoundReason], 64, reason);
  4532. format(ImpoundData[im][iRegPlate], MAX_REG_PLATE, FVehicleData[impoundid][FVRegPlate]);
  4533. ImpoundData[im][iVehType] = 2;
  4534. ImpoundData[im][iFaction] = FVehicleData[impoundid][FVFaction];
  4535. break;
  4536. }
  4537. }
  4538. }
  4539. else return SysMsg(playerid, "Você não pode apreender este veículo.");
  4540. SendClientMessageF(playerid, COLOR_LIGHTBLUE, "Você apreendeu o %s por %i horas (%i minutos) e aplicou $%i de multa.", GetVehicleName(impoundid), impoundHours, impound_minutes, cashAmount);
  4541. SendClientMessageF(playerid, COLOR_LIGHTBLUE, "Motivo da apreenção: %s", reason);
  4542. DetachTrailerFromVehicle(vehicleid);
  4543. DestroyVehicleEx(impoundid, "impoundid");
  4544. ClearVehicleData(impoundid);
  4545. return true;
  4546. }
  4547. CMD:viewimpounds(playerid, params[])
  4548. {
  4549. if(!Logged{playerid}) return true;
  4550. if(!IsPlayerInRangeOfPoint(playerid, 3.0, 619.476257, -592.645996, 17.233013)) return SysMsg(playerid,"Você precisa estar na garagem do depósito. (Dillimore).");
  4551. if(!IsCop(playerid)) return SysMsg(playerid,"Você precisa ser um oficial de aplicação da lei");
  4552. ShowImpoundList(playerid, 0);
  4553. return true;
  4554. }
  4555. //==================== Fim ==================================//
  4556. //7 House commands e furniture
  4557. //House commands
  4558. CMD:light(playerid)
  4559. {
  4560. if(!Logged{playerid}) return true;
  4561. if(IsInHouseID[playerid] == -1 && IsInBizzID[playerid] == -1) return SysMsg(playerid, "Você deve estar em uma casa ou empresa para usar esse comando.");
  4562. new lighttype;
  4563. if(IsInHouseID[playerid] != -1) lighttype = 1;
  4564. else if(IsInBizzID[playerid] != -1) lighttype = 2;
  4565. if(lighttype == 1)
  4566. {
  4567. new h = IsInHouseID[playerid];
  4568. HouseData[h][HouseLights] = !HouseData[h][HouseLights];
  4569. if(HouseData[h][HouseLights])
  4570. {
  4571. format(tgstr, sizeof(tgstr), "* %s pressiona o interruptor e liga a luz. *", NameRP(playerid));
  4572. ProxDetector(20.0, playerid, tgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  4573. foreach(new i: Player)
  4574. {
  4575. if(IsInHouseID[i] == h)
  4576. {
  4577. SetPlayerTime(i, 12, 0);
  4578. }
  4579. }
  4580. }
  4581. else
  4582. {
  4583. format(tgstr, sizeof(tgstr), "* %s pressiona o interruptor e desligar a luz. *", NameRP(playerid));
  4584. ProxDetector(20.0, playerid, tgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  4585. foreach(new i: Player)
  4586. {
  4587. if(IsInHouseID[i] == h)
  4588. {
  4589. SetPlayerTime(i, gServerHour, gServerMinute);
  4590. }
  4591. }
  4592. }
  4593. }
  4594. else if(lighttype == 2)
  4595. {
  4596. new b = IsInBizzID[playerid];
  4597. if(BizzData[b][BizzOwnerSQLID] != SQLID[playerid] && !IsBizzMod(playerid, b) && !IsPlayerAdmin(playerid)) return SysMsg(playerid, "Somente proprietários de empresas/Os gerentes podem usar esse comando.");
  4598. BizzData[b][BizzLights] = !BizzData[b][BizzLights];
  4599. if(BizzData[b][BizzLights])
  4600. {
  4601. format(tgstr, sizeof(tgstr), "* %s ressiona o interruptor e liga a luz. *", NameRP(playerid));
  4602. ProxDetector(20.0, playerid, tgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  4603. foreach(new i: Player)
  4604. {
  4605. if(IsInBizzID[i] == b)
  4606. {
  4607. SetPlayerTime(i, 12, 0);
  4608. }
  4609. }
  4610. }
  4611. else
  4612. {
  4613. format(tgstr, sizeof(tgstr), "* %s ressiona o interruptor e desliga a luz. *", NameRP(playerid));
  4614. ProxDetector(20.0, playerid, tgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  4615. foreach(new i: Player)
  4616. {
  4617. if(IsInBizzID[i] == b)
  4618. {
  4619. SetPlayerTime(i, gServerHour, gServerMinute);
  4620. }
  4621. }
  4622. }
  4623. }
  4624. return true;
  4625. }
  4626. CMD:comprarcasa(playerid, params[])
  4627. {
  4628. if(!Logged{playerid}) return true;
  4629. if(GetPlayerHouseCount(playerid) >= MAX_HOUSE_PER_PLAYER) return SysMsg(playerid,"Você não pode ter mais casas.");
  4630. for(new h = 0; h < MAX_HOUSES; h++)
  4631. {
  4632. if(IsPlayerInRangeOfPoint(playerid,1.0,HouseData[h][oPosX],HouseData[h][oPosY],HouseData[h][oPosZ]) && GetPlayerVirtualWorld(playerid) == HouseData[h][HouseExtVW])
  4633. {
  4634. if(HouseData[h][HouseOwnerSQLID] == 0)
  4635. {
  4636. if(Cash[playerid] < HouseData[h][HousePrice]) return SysMsg(playerid,"Você não tem dinheiro suficiente para comprar esta casa.");
  4637. HouseData[h][HouseOwnerSQLID] = SQLID[playerid];
  4638. HasHouseKey[playerid][0] = -1;
  4639. HasHouseKey[playerid][1] = -1;
  4640. ProcessHouseKey(playerid);
  4641. if(HasHouseKey[playerid][0] == h) SpawnAtHouse[playerid] = 0;
  4642. else if(HasHouseKey[playerid][1] == h) SpawnAtHouse[playerid] = 1;
  4643. MySpawnID[playerid] = 3;
  4644. GivePlayerCash(playerid, -HouseData[h][HousePrice]);
  4645. mysql_pqueryf(conn, "UPDATE players SET GuestHouseID = 0 WHERE GuestHouseID = %i", HouseData[h][HouseSQLID]);
  4646. mysql_pqueryf(conn, "UPDATE houses SET OwnerSQLID = %i WHERE id = %i", SQLID[playerid], HouseData[h][HouseSQLID]);
  4647. mysql_pqueryf(conn, "UPDATE players SET MySpawnID = %i, SpawnAtHouse = %i WHERE id = %i", MySpawnID[playerid], SpawnAtHouse[playerid], SQLID[playerid]);
  4648. foreach(new i: Player) if(HouseData[h][HouseSQLID] == GuestHouseID[i]) GuestHouseID[i] = 0;
  4649. SendClientMessageF(playerid,COLOR_GOLD, "Você comprou %s por $%s.",HouseData[h][HouseDescription],format_cash(HouseData[h][HousePrice]));
  4650. ShowInfoText(playerid,"~w~PROPRIEDADE ADQUIRIDA",5000);
  4651. UpdateHousePickup(h);
  4652. UnlockAchievement(playerid, 9);
  4653. break;
  4654. }
  4655. else if(HouseData[h][HouseOwnerSQLID] == -5) return SysMsg(playerid,"Esta propriedade está atualmente nas mãos da Silver Trading, confira lá para ver se está à venda.");
  4656. else return SysMsg(playerid,"Esta propriedade já foi comprada.");
  4657. }
  4658. }
  4659. return true;
  4660. }
  4661. CMD:sellmyhouse(playerid, params[])
  4662. {
  4663. if(!Logged{playerid}) return true;
  4664. if(GetPlayerHouseCount(playerid) == 0) return SysMsg(playerid,"Você não tem casa para vender.");
  4665. new id, conf[8];
  4666. if(sscanf(params, "is[8]", id, conf))
  4667. {
  4668. for(new x = 0; x < MAX_HOUSE_PER_PLAYER; x++)
  4669. {
  4670. if(HasHouseKey[playerid][x] != -1)
  4671. {
  4672. SendClientMessageF(playerid, COLOR_WHITE, "CASA ID: %i - %s ($%s)", x, HouseData[HasHouseKey[playerid][x]][HouseDescription], format_cash(HouseData[HasHouseKey[playerid][x]][HousePrice] / 2));
  4673. }
  4674. }
  4675. return SendClientMessage(playerid, COLOR_WHITE, "Use '/vendermyhouse [ID de cima] confirmar' se você deseja vender sua casa.");
  4676. }
  4677. if(HasHouseKey[playerid][id] == -1) return SysMsg(playerid, "Você não tem uma casa neste slot.");
  4678. if(id != 0 && id != 1) return SysMsg(playerid, "ID de casa inválido.");
  4679. if(strmatch(conf, "confirmar"))
  4680. {
  4681. new h = HasHouseKey[playerid][id];
  4682. if(!IsPlayerInRangeOfPoint(playerid, 4.5, HouseData[h][oPosX], HouseData[h][oPosY], HouseData[h][oPosZ])) return SysMsg(playerid, "Você não está em sua casa.");
  4683. new houseValue = HouseData[h][HousePrice] / 2;
  4684. HouseData[h][HouseOwnerSQLID] = 0;
  4685. HouseData[h][HouseLocked] = 0;
  4686. HasHouseKey[playerid][0] = -1;
  4687. HasHouseKey[playerid][1] = -1;
  4688. ProcessHouseKey(playerid);
  4689. SpawnAtHouse[playerid] = 0;
  4690. if(MySpawnID[playerid] == 3)
  4691. {
  4692. MySpawnID[playerid] = 1;
  4693. MySQLUpdateInt(SQLID[playerid], "MySpawnID", MySpawnID[playerid], "players");
  4694. }
  4695. GivePlayerCash(playerid, houseValue);
  4696. MySQLUpdateInt(HouseData[h][HouseSQLID], "OwnerSQLID", HouseData[h][HouseOwnerSQLID], "houses");
  4697. format(gstr, sizeof(gstr),"Você vendeu sua casa (%s) por $%s.",HouseData[h][HouseDescription],format_cash(houseValue));
  4698. SendClientMessage(playerid,COLOR_GOLD,gstr);
  4699. ShowInfoText(playerid,"~w~PROPRIEDADE VENDIDA",5000);
  4700. SendClientMessage(playerid,COLOR_GOLD,"Todos os convidados da sua casa (caso existam) foram despejados.");
  4701. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET GuestHouseID = 0 WHERE GuestHouseID = %i", HouseData[h][HouseSQLID]);
  4702. mysql_pquery(conn, mquery);
  4703. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET SpawnAtHouse = 0 WHERE id = %i", SQLID[playerid]);
  4704. mysql_pquery(conn, mquery);
  4705. foreach(new i: Player) if(HouseData[h][HouseSQLID] == GuestHouseID[i]) GuestHouseID[i] = 0;
  4706. UpdateHousePickup(h);
  4707. }
  4708. return true;
  4709. }
  4710. CMD:movein(playerid, params[])
  4711. {
  4712. if(!Logged{playerid}) return true;
  4713. if(GetPlayerHouseCount(playerid) == 0) return SysMsg(playerid,"Você não tem uma casa.");
  4714. new playa = -1, id;
  4715. if(sscanf(params, "iu", id, playa))
  4716. {
  4717. for(new x = 0; x < MAX_HOUSE_PER_PLAYER; x++)
  4718. {
  4719. if(HasHouseKey[playerid][x] != -1)
  4720. {
  4721. SendClientMessageF(playerid, COLOR_WHITE, "Casa ID: %i - %s", x, HouseData[HasHouseKey[playerid][x]][HouseDescription]);
  4722. }
  4723. }
  4724. return SysMsg(playerid,"Use: /movein [Casa ID de cima] [ID ou nome do jogador]");
  4725. }
  4726. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  4727. if(playa == playerid) return SysMsg(playerid,"Você não pode fazer isso em si mesmo.");
  4728. if(id != 0 && id != 1) return SysMsg(playerid, "Casa ID inválida.");
  4729. if(HasHouseKey[playerid][id] == -1) return SysMsg(playerid, "Você não tem uma casa neste slot.");
  4730. if(!IsPlayerInRangeOfPoint(playerid,5.0, PlayerPosX(playa), PlayerPosY(playa), PlayerPosZ(playa))) return SysMsg(playerid,"Você deve estar perto do jogador para convidá-los a se mudarem.");
  4731. OfferedMoveinFrom[playa][0] = playerid;
  4732. OfferedMoveinFrom[playa][1] = id;
  4733. SendClientMessageF(playa, COLOR_WHITE, "%s está oferecendo você para se mudar para sua casa (%s). Use '/aceitar mudança' para confirmar.", NameEx(playerid), HouseData[HasHouseKey[playerid][id]][HouseDescription]);
  4734. if(GuestHouseID[playa] >= 1) SendClientMessage(playa, COLOR_WHITE, "Nota: Como convidado, você só pode ficar em uma casa por vez, então mudar para esta casa irá expulsá-lo da sua outra casa.");
  4735. SendClientMessageF(playerid, COLOR_WHITE, "Você ofereceu %s para entrar em sua casa (%s). Espere o mesmo aceitar a proposta.", NameEx(playa), HouseData[HasHouseKey[playerid][id]][HouseDescription]);
  4736. return true;
  4737. }
  4738. CMD:moveout(playerid, params[])
  4739. {
  4740. if(!Logged{playerid}) return true;
  4741. new ghouse = IsHouseGuest(playerid);
  4742. if(ghouse == 0) return SysMsg(playerid,"Você não está morando na casa de outra pessoa.");
  4743. if(HouseData[ghouse][HouseSQLID] == GuestHouseID[playerid])
  4744. {
  4745. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET GuestHouseID = 0 WHERE id = %i", SQLID[playerid]);
  4746. mysql_pquery(conn, mquery);
  4747. GuestHouseID[playerid] = 0;
  4748. }
  4749. if(MySpawnID[playerid] == 5)
  4750. {
  4751. MySpawnID[playerid] = 1;
  4752. MySQLUpdateInt(SQLID[playerid], "MySpawnID", MySpawnID[playerid], "players");
  4753. }
  4754. SendClientMessageF(playerid,COLOR_GOLD,"Você se mudou para fora %s.", HouseData[ghouse][HouseDescription]);
  4755. foreach(new i: Player)
  4756. {
  4757. for(new x = 0; x < MAX_HOUSE_PER_PLAYER; x++)
  4758. {
  4759. if(HasHouseKey[i][x] == ghouse && Logged{i})
  4760. {
  4761. SendClientMessageF(i, COLOR_WHITE, "%s acabou de sair de sua casa. (%s)", NameEx(playerid), HouseData[ghouse][HouseDescription]);
  4762. return true;
  4763. }
  4764. }
  4765. }
  4766. return true;
  4767. }
  4768. CMD:evictguest(playerid, params[])
  4769. {
  4770. if(!Logged{playerid}) return true;
  4771. if(GetPlayerHouseCount(playerid) == 0) return SysMsg(playerid, "Você não tem uma casa.");
  4772. new id, guest[MAX_PLAYER_NAME + 1];
  4773. if(sscanf(params, "is[25]", id, guest))
  4774. {
  4775. for(new x = 0; x < MAX_HOUSE_PER_PLAYER; x++)
  4776. {
  4777. if(HasHouseKey[playerid][x] != -1)
  4778. {
  4779. SendClientMessageF(playerid, COLOR_WHITE, "Casa ID: %i - %s", x, HouseData[HasHouseKey[playerid][x]][HouseDescription]);
  4780. }
  4781. }
  4782. return SysMsg(playerid, "Use: /evictguest [Casa ID de cima] [Nome_Sobrenome] (use /vervisitante para descobrir quem fica em sua casa)");
  4783. }
  4784. if(id != 0 && id != 1) return SysMsg(playerid, "Casa inválida.");
  4785. if(HasHouseKey[playerid][id] == -1) return SysMsg(playerid, "Você não tem uma casa nesse slot.");
  4786. mysql_format(conn, mquery, sizeof(mquery), "SELECT id,GuestHouseID FROM players WHERE Name = '%e'", guest);
  4787. mysql_pquery(conn, mquery, "ProcessGuestEviction", "ii", playerid, HasHouseKey[playerid][id]);
  4788. return true;
  4789. }
  4790. CMD:housemusic(playerid, params[])
  4791. {
  4792. if(IsInHouseID[playerid] == -1) return SysMsg(playerid, "Você deve estar em uma casa.");
  4793. if(IsHouseOwner(playerid, IsInHouseID[playerid]) || IsInHouseID[playerid] == IsHouseGuest(playerid))
  4794. {
  4795. new musicLink[200];
  4796. if(sscanf(params, "s[200]", musicLink)) return SysMsg(playerid, "Use: /housemusic [link/stop]");
  4797. new h = IsInHouseID[playerid];
  4798. if(strcmp(musicLink, "stop") == 0)
  4799. {
  4800. foreach(new i: Player)
  4801. {
  4802. if(Logged{i} && IsInHouseID[i] == h)
  4803. {
  4804. StopAudioStreamForPlayer(i);
  4805. }
  4806. }
  4807. HouseData[h][HMusicPlaying] = 0;
  4808. HouseData[h][HMusic][0] = EOS;
  4809. }
  4810. else
  4811. {
  4812. foreach(new i: Player)
  4813. {
  4814. if(Logged{i} && IsInHouseID[i] == h)
  4815. {
  4816. PlayAudioStreamForPlayerEx(i, musicLink);
  4817. ListeningBoom[i] = -1;
  4818. }
  4819. }
  4820. format(HouseData[h][HMusic], 200, musicLink);
  4821. HouseData[h][HMusicPlaying] = 1;
  4822. }
  4823. return true;
  4824. }
  4825. else SysMsg(playerid,"Você deve estar em sua própria casa.");
  4826. return true;
  4827. }
  4828. CMD:housestore(playerid, params[])
  4829. {
  4830. if(!Logged{playerid}) return true;
  4831. if(IsInHouseID[playerid] == -1) return SysMsg(playerid, "Você deve estar em uma casa.");
  4832. new item[10], itemname[20], amount, h = IsInHouseID[playerid];
  4833. if(HouseData[h][HouseOwnerSQLID] == SQLID[playerid])
  4834. {
  4835. if(sscanf(params, "s[10]S()[20]", item)) return SysMsg(playerid,"Use: /housestore [item] [quantidade/nome] - Itens: Dinheiro, Arma, Marijuana, Cocaina, MoonShine, Colete, Celular");
  4836. if(strcmp("dinheiro", item, true) == 0 || strcmp("Money", item, true) == 0)
  4837. {
  4838. if(sscanf(params, "s[10]s[20]", item, itemname)) return SysMsg(playerid,"Use: /housestore dinheiro [quantidade $]");
  4839. if(!IsNumeric(itemname)) return SysMsg(playerid,"O valor deve ser um número.");
  4840. amount = strval(itemname);
  4841. if(amount < 1) return SysMsg(playerid,"A quantidade de caixa deve ser superior a zero.");
  4842. if(amount > Cash[playerid]) return SysMsg(playerid,"Você não tem tanto dinheiro para armazenar.");
  4843. HouseData[h][StoredCash] += amount;
  4844. GivePlayerCash(playerid, -amount);
  4845. MySQLUpdateInt(HouseData[h][HouseSQLID], "StoredCash", HouseData[h][StoredCash], "houses");
  4846. format(gstr, sizeof(gstr),"* %s armazena algum dinheiro em sua casa.",NameRP(playerid));
  4847. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  4848. format(gstr, sizeof(gstr),"Você armazenou $%s na sua casa.", format_cash(amount));
  4849. SendClientMessage(playerid,COLOR_LIGHTRED,gstr);
  4850. format(gstr, sizeof(gstr),"[%s] %s(%i) colocou $%i na identificação na casa ID %i. (Total: $%i)", GetServerTimeString(), NameEx(playerid), playerid, amount, h, Cash[playerid]);
  4851. AddToLog("cash", gstr);
  4852. return true;
  4853. }
  4854. if(strcmp("arma", item, true) == 0 || strcmp("Gun", item, true) == 0)
  4855. {
  4856. if(sscanf(params, "s[10]s[20]", item, itemname)) return SysMsg(playerid,"Use: /housestore arma [nome da arma]");
  4857. new wid = GetWeaponIdFromName(itemname);
  4858. if(wid == -1) return SysMsg(playerid,"Nome da arma inválido.");
  4859. if(wid < 1 || wid > 47) return SysMsg(playerid,"Arma inválida.");
  4860. if(wid == 19 || wid == 20 || wid == 21) return SysMsg(playerid,"Arma inválida.");
  4861. new Slot = GetWeaponSlot(wid);
  4862. if(WeaponData[playerid][Slot][Weapon] != wid) return SysMsg(playerid,"Você não possui essa arma.");
  4863. if(WeaponData[playerid][Slot][WeaponOrigin] == 3) return SysMsg(playerid, "Você não pode armazenar armas de facção em sua casa.");
  4864. mysql_format(conn, mquery, sizeof(mquery), "SELECT id FROM weapons WHERE HouseID = %i AND Deleted = 0 AND Dropped = 0", HouseData[h][HouseSQLID]);
  4865. new Cache:result = mysql_query(conn, mquery);
  4866. if(cache_num_rows() >= 10) return SysMsg(playerid, "Não há mais espaço na sua casa para armas.");
  4867. cache_delete(result);
  4868. new ammo = WeaponData[playerid][Slot][WeaponAmmo];
  4869. mysql_format(conn, mquery, sizeof(mquery), "UPDATE weapons SET WeaponPossession = 0, HouseID = %i, WeaponAmmo = %i WHERE id = %i", HouseData[h][HouseSQLID], WeaponData[playerid][Slot][WeaponAmmo], WeaponData[playerid][Slot][WeaponID]);
  4870. mysql_pquery(conn, mquery);
  4871. ResetWeaponVariables(playerid, 0, Slot);
  4872. SetPlayerArmedWeapon(playerid, 0);
  4873. SyncPlayerWeapons(playerid);
  4874. format(gstr, sizeof(gstr),"* %s guardar uma %s em sua arma. *",NameRP(playerid),GetWeaponNameFromID(wid));
  4875. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  4876. format(gstr, sizeof(gstr),"Você armazenou uma %s com %i munição em sua casa.",GetWeaponNameFromID(wid), ammo);
  4877. SendClientMessage(playerid,COLOR_LIGHTRED,gstr);
  4878. return true;
  4879. }
  4880. if(strcmp("marijuana", item, true) == 0)
  4881. {
  4882. if(sscanf(params, "s[10]s[20]", item, itemname)) return SysMsg(playerid,"Use: /housestore marijuana [Quantidade]");
  4883. if(!IsNumeric(itemname)) return SysMsg(playerid,"O valor deve ser um número.");
  4884. amount = strval(itemname);
  4885. if(amount < 1) return SysMsg(playerid,"A quantidade de marijuana deve ser maior que zero.");
  4886. if(amount > Inventory[playerid][Weed]) return SysMsg(playerid,"Você não tem muito marijuana para armazenar.");
  4887. HouseData[h][StoredWeed] += amount;
  4888. Inventory[playerid][Weed] -= amount;
  4889. MySQLUpdateInt(HouseData[h][HouseSQLID], "StoredWeed", HouseData[h][StoredWeed], "houses");
  4890. MySQLUpdateInt(SQLID[playerid], "Weed", Inventory[playerid][Weed], "players");
  4891. format(gstr, sizeof(gstr),"* %s armazena algumas marijuana em sua casa.",NameRP(playerid));
  4892. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  4893. format(gstr, sizeof(gstr),"Você armazenou %ig de marijuana em sua casa. Agora você tem %ig no seu inventário.", amount, Inventory[playerid][Weed]);
  4894. SendClientMessage(playerid,COLOR_LIGHTRED,gstr);
  4895. return true;
  4896. }
  4897. if(strcmp("Cocaina", item, true) == 0)
  4898. {
  4899. if(sscanf(params, "s[10]s[20]", item, itemname)) return SysMsg(playerid,"Use: /housestore cocaina [Quantidade]");
  4900. if(!IsNumeric(itemname)) return SysMsg(playerid,"O valor deve ser um número.");
  4901. amount = strval(itemname);
  4902. if(amount < 1) return SysMsg(playerid,"A quantidade de cocaína deve ser maior que zero.");
  4903. if(amount > Inventory[playerid][Cocaine]) return SysMsg(playerid,"Você não tem muita cocaína para armazenar.");
  4904. HouseData[h][StoredCocaine] += amount;
  4905. Inventory[playerid][Cocaine] -= amount;
  4906. MySQLUpdateInt(HouseData[h][HouseSQLID], "StoredCocaine", HouseData[h][StoredCocaine], "houses");
  4907. MySQLUpdateInt(SQLID[playerid], "Cocaine", Inventory[playerid][Cocaine], "players");
  4908. format(gstr, sizeof(gstr),"* %s armazena alguma cocaína em sua casa.",NameRP(playerid));
  4909. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  4910. format(gstr, sizeof(gstr),"Você armazenou %ig de cocaína em sua casa. Agora você tem %ig no seu inventário.", amount, Inventory[playerid][Cocaine]);
  4911. SendClientMessage(playerid,COLOR_LIGHTRED,gstr);
  4912. return true;
  4913. }
  4914. if(strcmp("MoonShine", item, true) == 0)
  4915. {
  4916. if(sscanf(params, "s[10]s[20]", item, itemname)) return SysMsg(playerid,"Use: /housestore MoonShine [Quantidade]");
  4917. if(!IsNumeric(itemname)) return SysMsg(playerid,"O valor deve ser um número.");
  4918. amount = strval(itemname);
  4919. if(amount < 1) return SysMsg(playerid,"A quantidade de MoonShine deve ser maior que zero.");
  4920. if(amount > Inventory[playerid][MoonShine]) return SysMsg(playerid,"Você não tem tanto MoonShine para armazenar.");
  4921. HouseData[h][StoredMoonShine] += amount;
  4922. Inventory[playerid][MoonShine] -= amount;
  4923. MySQLUpdateInt(HouseData[h][HouseSQLID], "StoredMoonShine", HouseData[h][StoredMoonShine], "houses");
  4924. MySQLUpdateInt(SQLID[playerid], "MoonShine", Inventory[playerid][MoonShine], "players");
  4925. format(gstr, sizeof(gstr),"* %s armazena algum MoonShine em sua casa.",NameRP(playerid));
  4926. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  4927. format(gstr, sizeof(gstr),"Você armazenou %i L de MoonShine em sua casa. Agora você tem %i L no seu inventário.", amount, Inventory[playerid][MoonShine]);
  4928. SendClientMessage(playerid,COLOR_LIGHTRED,gstr);
  4929. return true;
  4930. }
  4931. if(strcmp("colete", item, true) == 0 || strcmp("armor", item, true) == 0)
  4932. {
  4933. new Float:carmour;
  4934. GetPlayerArmour(playerid, carmour);
  4935. if(VestType[playerid] == 0 || carmour == 0) return SysMsg(playerid, "Você não possui colete.");
  4936. if(RestrictedVest{playerid}) return SysMsg(playerid, "Você não pode armazenar este colete em sua casa.");
  4937. mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO storedarmor (ArmorType, ArmorAmount, HouseID) VALUES (%i, %f, %i)", VestType[playerid], carmour, HouseData[h][HouseSQLID]);
  4938. mysql_pquery(conn, mquery);
  4939. format(gstr, sizeof(gstr),"* %s armazena um colete em sua casa.",NameRP(playerid));
  4940. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  4941. if(VestType[playerid] == 1) SendClientMessageF(playerid, COLOR_LIGHTRED, "Você armazenou um colete leve em sua casa.");
  4942. else SendClientMessage(playerid, COLOR_LIGHTRED, "Você armazenou um colete pesado em sua casa.");
  4943. SetPlayerArmourEx(playerid, 0.0, 1);
  4944. VestType[playerid] = 0;
  4945. return true;
  4946. }
  4947. if(strcmp("phone", item, true) == 0 || strcmp("celular", item, true) == 0 || strcmp("telefone", item, true) == 0)
  4948. {
  4949. if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid, "Você não tem um celular.");
  4950. if(IsPhoneRinging[playerid] == 1) return SysMsg(playerid,"Você não pode armazenar seu celular enquanto toca.");
  4951. if(CallerID[playerid] != -1 || CallerService[playerid] != -1) return SysMsg(playerid,"Você não pode armazenar seu celular enquanto você o está usando.");
  4952. new phone = PhoneData[playerid][pID];
  4953. HouseData[h][StoredPhone] = phone;
  4954. mysql_format(conn, mquery, sizeof(mquery), "UPDATE houses SET StoredPhone = %i WHERE id = %i", phone, HouseData[h][HouseSQLID]);
  4955. mysql_tquery(conn, mquery);
  4956. ClearPhoneData(playerid);
  4957. mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET PhonePossession = 0 WHERE id = %i", phone);
  4958. mysql_tquery(conn, mquery);
  4959. format(gstr, sizeof(gstr),"* %s armazena um celular em sua casa. *",NameRP(playerid));
  4960. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  4961. SendClientMessage(playerid,COLOR_LIGHTRED, "Você armazenou seu celular em sua casa.");
  4962. return true;
  4963. }
  4964. }
  4965. else return SysMsg(playerid, "Você não está em sua própria casa.");
  4966. return true;
  4967. }
  4968. CMD:houseget(playerid, params[])
  4969. {
  4970. if(!Logged{playerid}) return true;
  4971. if(IsInHouseID[playerid] == -1) return SysMsg(playerid,"Você deve estar em sua própria casa.");
  4972. new item[10], itemname[20], amount, h = IsInHouseID[playerid];
  4973. if(HouseData[h][HouseOwnerSQLID] == SQLID[playerid])
  4974. {
  4975. if(sscanf(params, "s[10]S()[20]", item, itemname)) return SysMsg(playerid,"Use: /houseget [item] [quantidade/nome] - Itens: Dinheiro, Armas, Marijuana, Cocaina, Moonshine, Colete, Celular");
  4976. if(strcmp("dinheiro", item, true) == 0 || strcmp("Money", item, true) == 0)
  4977. {
  4978. if(sscanf(params, "s[10]s[20]", item, itemname)) return SysMsg(playerid,"Use: /houseget dinheiro [quantidade $]");
  4979. if(!IsNumeric(itemname)) return SysMsg(playerid,"O valor deve ser um número.");
  4980. amount = strval(itemname);
  4981. if(amount < 1) return SysMsg(playerid,"A quantidade de caixa deve ser superior a zero.");
  4982. if(amount > HouseData[h][StoredCash]) return SysMsg(playerid,"Você não tem tanto dinheiro armazenado na casa.");
  4983. HouseData[h][StoredCash] -= amount;
  4984. GivePlayerCash(playerid, amount);
  4985. MySQLUpdateInt(HouseData[h][HouseSQLID], "StoredCash", HouseData[h][StoredCash], "houses");
  4986. format(gstr, sizeof(gstr),"* %s pega algum dinheiro de sua casa. *",NameRP(playerid));
  4987. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  4988. format(gstr, sizeof(gstr),"Você pegou $%s da sua casa.", format_cash(amount));
  4989. SendClientMessage(playerid,COLOR_LIGHTRED,gstr);
  4990. format(gstr, sizeof(gstr),"[%s] %s(%i) pegou $%i da sua casa ID %i. (Total: $%i)", GetServerTimeString(), NameEx(playerid), playerid, amount, h, Cash[playerid]);
  4991. AddToLog("cash", gstr);
  4992. return true;
  4993. }
  4994. if(strcmp("arma", item, true) == 0 || strcmp("Gun", item, true) == 0)
  4995. {
  4996. if(sscanf(params, "s[10]s[20]", item, itemname)) return SysMsg(playerid,"Use: /houseget arma [nome da arma]");
  4997. new wid = GetWeaponIdFromName(itemname);
  4998. if(wid == -1) return SysMsg(playerid,"Nome da arma inválida.");
  4999. if(wid < 1 || wid > 47) return SysMsg(playerid,"Arma inválida.");
  5000. if(wid == 19 || wid == 20 || wid == 21) return SysMsg(playerid,"Arma inválida.");
  5001. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM weapons WHERE WeaponID = %i AND HouseID = %i AND Deleted = 0 AND Dropped = 0", wid, HouseData[h][HouseSQLID]);
  5002. new Cache:result = mysql_query(conn, mquery);
  5003. if(cache_num_rows() == 0)
  5004. {
  5005. SysMsg(playerid, "Essa arma não está armazenada em sua casa.");
  5006. cache_delete(result);
  5007. return true;
  5008. }
  5009. if(!WeaponCheck(playerid, wid)) return SysMsg(playerid, "Você não pode pegar essa arma.");
  5010. new Slot = GetWeaponSlot(wid);
  5011. if(WeaponData[playerid][Slot][Weapon] == wid) return SysMsg(playerid,"Você já possui essa arma.");
  5012. if(cache_num_rows())
  5013. {
  5014. WeaponData[playerid][Slot][WeaponID] = cache_get_field_content_int(0, "id");
  5015. WeaponData[playerid][Slot][WeaponTimestamp] = cache_get_field_content_int(0, "Timestamp");
  5016. WeaponData[playerid][Slot][wCreatorSQLID] = cache_get_field_content_int(0, "CreatorSQLID");
  5017. WeaponData[playerid][Slot][Weapon] = cache_get_field_content_int(0, "WeaponID");
  5018. WeaponData[playerid][Slot][wOwnerSQLID] = cache_get_field_content_int(0, "OwnerSQLID");
  5019. WeaponData[playerid][Slot][WeaponAmmo] = cache_get_field_content_int(0, "WeaponAmmo");
  5020. WeaponData[playerid][Slot][WeaponType] = GetWeaponType(WeaponData[playerid][Slot][Weapon]);
  5021. WeaponData[playerid][Slot][WeaponOrigin] = cache_get_field_content_int(0, "WeaponOrigin");
  5022. WeaponData[playerid][Slot][WeaponPossession] = cache_get_field_content_int(0, "WeaponPossession");
  5023. }
  5024. cache_delete(result);
  5025. SyncPlayerWeapons(playerid);
  5026. SetPlayerArmedWeapon(playerid, wid);
  5027. mysql_format(conn, mquery, sizeof(mquery), "UPDATE weapons SET WeaponPossession = 1, HouseID = -1, OwnerSQLID = %i WHERE id = %i", SQLID[playerid], WeaponData[playerid][Slot][WeaponID]);
  5028. mysql_pquery(conn, mquery);
  5029. format(gstr, sizeof(gstr),"* %s pegou uma %s de sua casa. *",NameRP(playerid),GetWeaponNameFromID(wid));
  5030. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  5031. format(gstr, sizeof(gstr),"Você pegou uma %s com %i munições da sua arma.",GetWeaponNameFromID(wid), WeaponData[playerid][Slot][WeaponAmmo]);
  5032. SendClientMessage(playerid,COLOR_LIGHTRED,gstr);
  5033. return true;
  5034. }
  5035. if(strcmp("marijuana", item, true) == 0)
  5036. {
  5037. if(sscanf(params, "s[10]s[20]", item, itemname)) return SysMsg(playerid,"Use: /houseget marijuana [Quantidade]");
  5038. if(!IsNumeric(itemname)) return SysMsg(playerid,"O valor deve ser um número.");
  5039. amount = strval(itemname);
  5040. if(amount < 1) return SysMsg(playerid,"A quantidade de erva daninha deve ser maior que zero.");
  5041. if(amount > HouseData[h][StoredWeed]) return SysMsg(playerid,"Você não tem muita Weed armazenada na casa.");
  5042. if(Inventory[playerid][Weed] + amount > DRUG_MAX_WEED) return SysMsg(playerid,"Você não pode carregar tanto Weed.");
  5043. HouseData[h][StoredWeed] -= amount;
  5044. Inventory[playerid][Weed] += amount;
  5045. MySQLUpdateInt(HouseData[h][HouseSQLID], "StoredWeed", HouseData[h][StoredWeed], "houses");
  5046. MySQLUpdateInt(SQLID[playerid], "Weed", Inventory[playerid][Weed], "players");
  5047. format(gstr, sizeof(gstr),"* %s pega algumas gramas de Marijuana da sua casa *",NameRP(playerid));
  5048. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  5049. format(gstr, sizeof(gstr),"Você pegou %ig de marijuana de sua casa. Agora você tem %ig no seu inventário.", amount, Inventory[playerid][Weed]);
  5050. SendClientMessage(playerid,COLOR_LIGHTRED,gstr);
  5051. return true;
  5052. }
  5053. if(strcmp("Cocaina", item, true) == 0)
  5054. {
  5055. if(sscanf(params, "s[10]s[20]", item, itemname)) return SysMsg(playerid,"Use: /houseget cocaina [Quantidade]");
  5056. if(!IsNumeric(itemname)) return SysMsg(playerid,"O valor deve ser um número.");
  5057. amount = strval(itemname);
  5058. if(amount < 1) return SysMsg(playerid,"A quantidade de cocaína deve ser superior a zero.");
  5059. if(amount > HouseData[h][StoredCocaine]) return SysMsg(playerid,"Você não tem muita cocaína armazenada na casa.");
  5060. if(Inventory[playerid][Cocaine] + amount > DRUG_MAX_COCAINE) return SysMsg(playerid,"Você não pode carregar muita Cocaína.");
  5061. HouseData[h][StoredCocaine] -= amount;
  5062. Inventory[playerid][Cocaine] += amount;
  5063. MySQLUpdateInt(HouseData[h][HouseSQLID], "StoredCocaine", HouseData[h][StoredCocaine], "houses");
  5064. MySQLUpdateInt(SQLID[playerid], "Cocaine", Inventory[playerid][Cocaine], "players");
  5065. format(gstr, sizeof(gstr),"* %s pega um pouco de cocaina de sua casa. *",NameRP(playerid));
  5066. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  5067. format(gstr, sizeof(gstr),"Você pegou %ig de cocaína da sua casa. Você agora tem %ig no seu inventário.", amount, Inventory[playerid][Cocaine]);
  5068. SendClientMessage(playerid,COLOR_LIGHTRED,gstr);
  5069. return true;
  5070. }
  5071. if(strcmp("MoonShine", item, true) == 0)
  5072. {
  5073. if(sscanf(params, "s[10]s[20]", item, itemname)) return SysMsg(playerid,"Use: /houseget MoonShine [Quantidade]");
  5074. if(!IsNumeric(itemname)) return SysMsg(playerid,"O valor deve ser um número.");
  5075. amount = strval(itemname);
  5076. if(amount < 1) return SysMsg(playerid,"Quantidade de aguardente deve ser maior que zero.");
  5077. if(amount > HouseData[h][StoredMoonShine]) return SysMsg(playerid,"Você não tem essa quantidade de MoonShine guardado na casa.");
  5078. if(Inventory[playerid][MoonShine] + amount > DRUG_MAX_MOONSHINE) return SysMsg(playerid,"Você não pode carregar tanta MoonShine.");
  5079. HouseData[h][StoredMoonShine] -= amount;
  5080. Inventory[playerid][MoonShine] += amount;
  5081. MySQLUpdateInt(HouseData[h][HouseSQLID], "StoredMoonShine", HouseData[h][StoredMoonShine], "houses");
  5082. MySQLUpdateInt(SQLID[playerid], "MoonShine", Inventory[playerid][MoonShine], "players");
  5083. format(gstr, sizeof(gstr),"* %s pega algum litro de MoonShine de sua casa. *",NameRP(playerid));
  5084. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  5085. format(gstr, sizeof(gstr),"Você pegou %i L de MoonShine da sua casa. Você agora tem %i L no seu inventário.", amount, Inventory[playerid][MoonShine]);
  5086. SendClientMessage(playerid,COLOR_LIGHTRED,gstr);
  5087. return true;
  5088. }
  5089. if(strcmp("colete", item, true) == 0 || strcmp("armor", item, true) == 0)
  5090. {
  5091. mysql_format(conn, mquery, sizeof(mquery), "SELECT id, ArmorType, ArmorAmount FROM storedarmor WHERE HouseID = %i", HouseData[h][HouseSQLID]);
  5092. mysql_pquery(conn, mquery, "ShowStoredArmor", "dd", playerid, 1);
  5093. return true;
  5094. }
  5095. if(strcmp("phone", item, true) == 0 || strcmp("celular", item, true) == 0 || strcmp("telefone", item, true) == 0)
  5096. {
  5097. if(Inventory[playerid][MobilePhone] == 1) return SysMsg(playerid, "Você já tem um celular em seu inventário.");
  5098. if(HouseData[h][StoredPhone] == 0) return SysMsg(playerid, "Esta casa não tem um celular armazenado nele");
  5099. format(gstr, sizeof(gstr),"* %s pega um celular de sua casa. *",NameRP(playerid));
  5100. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  5101. SendClientMessage(playerid,COLOR_LIGHTRED, "Você tirou um celular de sua casa.");
  5102. mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET PhonePossession = 1, PhonePossessor = %i WHERE id = %i", SQLID[playerid], HouseData[h][StoredPhone]);
  5103. mysql_tquery(conn, mquery);
  5104. mysql_format(conn, mquery, sizeof(mquery), "UPDATE houses SET StoredPhone = 0 WHERE id = %i", HouseData[h][HouseSQLID]);
  5105. mysql_tquery(conn, mquery);
  5106. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM phones WHERE id = %i AND PhonePossession = 1", HouseData[h][StoredPhone]);
  5107. mysql_tquery(conn, mquery, "LoadPlayerPhone", "d", playerid);
  5108. HouseData[h][StoredPhone] = 0;
  5109. return true;
  5110. }
  5111. }
  5112. else return SysMsg(playerid, "You are not in your house.");
  5113. return true;
  5114. }
  5115. CMD:houseview(playerid, params[])
  5116. {
  5117. if(!Logged{playerid}) return true;
  5118. if(IsInHouseID[playerid] == -1) return SysMsg(playerid,"Você deve estar em sua própria casa.");
  5119. new h = IsInHouseID[playerid];
  5120. if(HouseData[h][HouseOwnerSQLID] == SQLID[playerid])
  5121. {
  5122. SendClientMessageF(playerid, COLOR_LIGHTGREEN, "Inventário da casa: $%s, %ig marijuana, %ig cocaina, %iL moonshine", format_cash(HouseData[h][StoredCash]), HouseData[h][StoredWeed], HouseData[h][StoredCocaine], HouseData[h][StoredMoonShine]);
  5123. if(HouseData[h][StoredPhone] >= 1) SendClientMessage(playerid, COLOR_LIGHTGREEN, "Existe um telefone celular armazenado nesta casa.");
  5124. SendClientMessage(playerid, COLOR_LIGHTGREEN, "Use /houseviewguns para ver as armas dentro de sua casa. Use /houseget colete para ver o colete em sua casa.");
  5125. return true;
  5126. }
  5127. SysMsg(playerid, "Você não está em sua casa.");
  5128. return true;
  5129. }
  5130. CMD:houseviewguns(playerid, params[])
  5131. {
  5132. if(!Logged{playerid}) return true;
  5133. if(IsInHouseID[playerid] == -1) return SysMsg(playerid,"Você deve estar em sua própria casa.");
  5134. new h = IsInHouseID[playerid];
  5135. if(HouseData[h][HouseOwnerSQLID] == SQLID[playerid])
  5136. {
  5137. mysql_format(conn, mquery, sizeof(mquery), "SELECT id,WeaponID,WeaponAmmo FROM weapons WHERE WeaponPossession = 0 AND HouseID = %i AND Deleted = 0 AND TrunkID = -1 AND FCarID = -1 AND Dropped = 0", HouseData[h][HouseSQLID]);
  5138. mysql_pquery(conn, mquery, "ShowHouseGuns", "d", playerid);
  5139. return true;
  5140. }
  5141. else SysMsg(playerid, "Você não está em sua casa.");
  5142. return true;
  5143. }
  5144. //House furniture commands
  5145. CMD:guestfurnish(playerid, params[])
  5146. {
  5147. if(!Logged{playerid}) return true;
  5148. if(GetPlayerHouseCount(playerid) == 0) return SysMsg(playerid, "Você não possui uma casa.");
  5149. new id, playa = -1;
  5150. if(sscanf(params, "iu", id, playa))
  5151. {
  5152. for(new x = 0; x < MAX_HOUSE_PER_PLAYER; x++)
  5153. {
  5154. if(HasHouseKey[playerid][x] != -1)
  5155. {
  5156. SendClientMessageF(playerid, COLOR_WHITE, "Casa ID: %i - %s", x, HouseData[HasHouseKey[playerid][x]][HouseDescription]);
  5157. }
  5158. }
  5159. return SysMsg(playerid, "Use: /guestfurnish [Casa ID] [ID ou nome do jogador]");
  5160. }
  5161. if(playa == playerid) return SysMsg(playerid, "Não pode ser você mesmo.");
  5162. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  5163. if(id != 0 && id != 1) return SysMsg(playerid, "Casa inválida.");
  5164. if(HasHouseKey[playerid][id] == -1) return SysMsg(playerid, "Você não tem uma casa neste slot.");
  5165. if(EditingHouseFurn[playa] != -1) return SysMsg(playerid, "Este jogador já está fornecendo uma casa.");
  5166. new h = HasHouseKey[playerid][id];
  5167. EditingHouseFurn[playa] = HouseData[h][HouseSQLID];
  5168. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET GuestFurnish = %i WHERE id = %i", HouseData[h][HouseSQLID], SQLID[playa]);
  5169. mysql_pquery(conn, mquery);
  5170. SendClientMessageF(playerid, COLOR_WHITE, "Você deu a %s acesso para mecher nos móveis de sua casa. (%s)", NameEx(playa), HouseData[h][HouseDescription]);
  5171. SendClientMessageF(playa, COLOR_WHITE, "%s lhe deu acesso para usar móveis de sua casa. (%s)", NameEx(playerid), HouseData[h][HouseDescription]);
  5172. SendClientMessage(playa, COLOR_WHITE, "Você pode remover seu acesso a qualquer momento usando /stopguestfurnish.");
  5173. return true;
  5174. }
  5175. CMD:grantfurnish(playerid, params[]) return cmd_guestfurnish(playerid, params);
  5176. CMD:stopguestfurnish(playerid, params[])
  5177. {
  5178. if(!Logged{playerid}) return true;
  5179. if(EditingHouseFurn[playerid] == -1) return SysMsg(playerid, "Você não está editando a mobília da casa de outra casa.");
  5180. SendClientMessageF(playerid, COLOR_WHITE, "Você não tem mais acesso a mobiliário de %s.", HouseData[GetHouseArrayFromID(EditingHouseFurn[playerid])][HouseDescription]);
  5181. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET GuestFurnish = -1 WHERE id = %i", SQLID[playerid]);
  5182. mysql_pquery(conn, mquery);
  5183. EditingHouseFurn[playerid] = -1;
  5184. return true;
  5185. }
  5186. CMD:revokefurnish(playerid, params[])
  5187. {
  5188. if(!Logged{playerid}) return true;
  5189. if(GetPlayerHouseCount(playerid) == 0) return SysMsg(playerid,"Você não tem uma casa.");
  5190. new id, name[MAX_PLAYER_NAME+1];
  5191. if(sscanf(params, "is[25]", id, name))
  5192. {
  5193. for(new x = 0; x < MAX_HOUSE_PER_PLAYER; x++)
  5194. {
  5195. if(HasHouseKey[playerid][x] != -1)
  5196. {
  5197. SendClientMessageF(playerid, COLOR_WHITE, "Casa ID: %i - %s", x, HouseData[HasHouseKey[playerid][x]][HouseDescription]);
  5198. }
  5199. }
  5200. return SysMsg(playerid, "Use: /revokefurnish [Casa ID de cima] [Nome_Sobrenome] *use /viewguestfurnishers para ver os convidados atuais.*");
  5201. }
  5202. if(id != 0 && id != 1) return SysMsg(playerid, "Casa inválida.");
  5203. if(HasHouseKey[playerid][id] == -1) return SysMsg(playerid, "Você não tem uma casa neste slot.");
  5204. mysql_format(conn, mquery, sizeof(mquery), "SELECT id,Online FROM players WHERE Name = '%e' AND GuestFurnish = %i", name, HouseData[HasHouseKey[playerid][id]][HouseSQLID]);
  5205. mysql_pquery(conn, mquery, "ProcessFurnishRevoke", "iis", playerid, id, name);
  5206. return true;
  5207. }
  5208. GREENSIDE::ProcessFurnishRevoke(playerid, houseid, name[])
  5209. {
  5210. if(!cache_num_rows()) return SysMsg(playerid, "Este usuário não possui acesso de móveis em sua casa.");
  5211. new id, online;
  5212. id = cache_get_field_content_int(0, "id");
  5213. online = cache_get_field_content_int(0, "Online");
  5214. if(online == 1)
  5215. {
  5216. foreach(new i: Player)
  5217. {
  5218. if(SQLID[i] == id)
  5219. {
  5220. EditingHouseFurn[i] = -1;
  5221. SendClientMessageF(i, COLOR_WHITE, "%s revogou sua permissão para editar seus móveis de casa. (%s)", NameEx(playerid), HouseData[houseid][HouseDescription]);
  5222. }
  5223. }
  5224. }
  5225. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET GuestFurnish = -1 WHERE id = %i", id);
  5226. mysql_pquery(conn, mquery);
  5227. SendClientMessageF(playerid, COLOR_WHITE, "Você revogou a edição de %s para gerênciar os furnitures de sua casa.", name);
  5228. return true;
  5229. }
  5230. CMD:viewguestfurnishers(playerid, params[])
  5231. {
  5232. if(isnull(params) || !IsNumeric(params))
  5233. {
  5234. for(new x = 0; x < MAX_HOUSE_PER_PLAYER; x++)
  5235. {
  5236. if(HasHouseKey[playerid][x] != -1)
  5237. {
  5238. SendClientMessageF(playerid, COLOR_WHITE, "Casa ID: %i - %s", x, HouseData[HasHouseKey[playerid][x]][HouseDescription]);
  5239. }
  5240. }
  5241. return SysMsg(playerid, "Use: /viewguestfurnishers [Casa ID de cima]");
  5242. }
  5243. if(strval(params) != 0 && strval(params) != 1) return SysMsg(playerid, "Casa inválida.");
  5244. mysql_format(conn, mquery, sizeof(mquery), "SELECT Name FROM players WHERE GuestFurnish = %i", HouseData[HasHouseKey[playerid][strval(params)]][HouseSQLID]);
  5245. mysql_pquery(conn, mquery, "ViewHouseFurnishers", "i", playerid);
  5246. return true;
  5247. }
  5248. GREENSIDE::ViewHouseFurnishers(playerid)
  5249. {
  5250. if(!cache_num_rows()) return SysMsg(playerid, "Não há ninguem com acesso de mecher nos móveis de sua casa.");
  5251. gstr[0] = EOS;
  5252. new name[MAX_PLAYER_NAME+1];
  5253. for(new i = 0, x = cache_num_rows(); i < x; i++)
  5254. {
  5255. cache_get_field_content(i, "Nome", name);
  5256. format(tgstr, sizeof(tgstr), "%s\n", name);
  5257. strcat(gstr, tgstr);
  5258. }
  5259. Dialog_Show(playerid, DIALOG_NONE, DIALOG_STYLE_LIST, "Mobiliário", gstr, "Pronto!", "");
  5260. return true;
  5261. }
  5262. CMD:payfurn(playerid, params[])
  5263. {
  5264. if(!Logged{playerid}) return true;
  5265. if(isnull(params) || IsNumeric(params)) return SysMsg(playerid, "Use: /pagarfurn ['Dinheiro' ou 'Banco'] *Isso mudará de onde você será cobrado quando comprar novos móveis.*");
  5266. if(strcmp("banco", params, true) == 0)
  5267. {
  5268. BuyFurnFrom[playerid] = 0;
  5269. SysMsg(playerid, "Money will now be taken from your bank account when you purchase furniture.");
  5270. }
  5271. else if(strcmp("dinheiro", params, true) == 0)
  5272. {
  5273. BuyFurnFrom[playerid] = 1;
  5274. SysMsg(playerid, "O dinheiro agora será retirado do seu dinheiro em mãos quando comprar móveis.");
  5275. }
  5276. else cmd_payfurn(playerid, "");
  5277. return true;
  5278. }
  5279. CMD:searchf(playerid, params[])
  5280. {
  5281. if(!CanFurnishHouse(playerid, IsInHouseID[playerid])) return SysMsg(playerid, "Você deve estar dentro de sua própria casa para usar esse comando.");
  5282. if(BuyFurnFrom[playerid] == -1) return SysMsg(playerid, "Você não definiu a partir do qual gostaria de tirar dinheiro para comprar móveis. Por favor, use /pagarfurn para definir isso.");
  5283. if(GetFreeHouseFurnitureForHouse(playerid) >= GetMaxFurnitureForPlayer(playerid)) return SysMsgF(playerid, "Você atingiu seu limite de mobiliário de %i e não pode comprar mais.", GetMaxFurnitureForPlayer(playerid));
  5284. if(PlayerBuyFurniture[playerid][0] != INVALID_OBJECT_ID || PlayerPlaceFurniture[playerid] != INVALID_OBJECT_ID) return SysMsg(playerid, "Você já está editando um objeto.");
  5285. if(isnull(params)) return SysMsg(playerid, "Use: /searchf [item name]");
  5286. new results;
  5287. gstr[0] = EOS;
  5288. strcat(gstr, "Nome da mobília\tValor\n");
  5289. for(new x = 0; x < MAX_FURNITURE; x++)
  5290. {
  5291. if(strfind(FurniData[x][fuName], params, true) != -1)
  5292. {
  5293. format(gstr, sizeof(gstr), "%s%s\t$%s\n", gstr, FurniData[x][fuName], format_cash(FurniData[x][fPrice]));
  5294. results ++;
  5295. }
  5296. }
  5297. if(results != 0) Dialog_Show(playerid, FurniturePurchase3, DIALOG_STYLE_TABLIST_HEADERS, "Compre móveis", gstr, "Selecionar", "Cancelar");
  5298. else SysMsg(playerid, "Não foi possível encontrar nenhum objeto com esse nome");
  5299. return true;
  5300. }
  5301. CMD:buyf(playerid, params[])
  5302. {
  5303. if(!CanFurnishHouse(playerid, IsInHouseID[playerid])) return SysMsg(playerid, "Você deve estar dentro de sua própria casa para usar esse comando.");
  5304. if(BuyFurnFrom[playerid] == -1) return SysMsg(playerid, "Você não definiu a partir do qual gostaria de tirar dinheiro para comprar móveis. Por favor, use /pagarfurn para definir isso.");
  5305. if(GetFreeHouseFurnitureForHouse(playerid) >= GetMaxFurnitureForPlayer(playerid)) return SysMsgF(playerid, "Você atingiu seu limite de mobiliário de %i e não pode comprar mais.",GetMaxFurnitureForPlayer(playerid));
  5306. if(PlayerBuyFurniture[playerid][0] != INVALID_OBJECT_ID || PlayerPlaceFurniture[playerid] != INVALID_OBJECT_ID) return SysMsg(playerid, "Você já está editando um objeto.");
  5307. if(isnull(params)) return Dialog_Show(playerid, FurniturePurchase, DIALOG_STYLE_LIST, "Selecione uma categoria de mobiliário", GetHouseCategoryList(), "Selecionar", "Cancelar");
  5308. for(new x = 0; x < MAX_FURNITURE; x++)
  5309. {
  5310. if(strmatch(FurniData[x][fuName], params))
  5311. {
  5312. if(BuyFurnFrom[playerid] == 1)
  5313. {
  5314. if(Cash[playerid] < FurniData[x][fPrice]) return SysMsg(playerid, "Você não tem o dinheiro necessário para este item.");
  5315. }
  5316. else
  5317. {
  5318. if(BankBalance[playerid] < FurniData[x][fPrice]) return SysMsg(playerid, "Você não tem o dinheiro necessário para este item.");
  5319. }
  5320. for(new slot = 0; slot < GetMaxFurnitureForPlayer(playerid); slot++)
  5321. {
  5322. if(HouseData[IsInHouseID[playerid]][FurnModel][slot] == 0)
  5323. {
  5324. mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO hfurniture (Model,Placed,Xpos,Ypos,Zpos,Xrot,Yrot,Zrot,HouseSQLID) VALUES (%i,0,0.0,0.0,0.0,0.0,0.0,0.0,%i)",
  5325. FurniData[x][fModel], HouseData[IsInHouseID[playerid]][HouseSQLID]);
  5326. mysql_pquery(conn, mquery, "InsertHouseFurni", "dd", playerid, slot);
  5327. new h = IsInHouseID[playerid];
  5328. HouseData[h][FurnObject][slot] = 0;
  5329. HouseData[h][FurnModel][slot] = FurniData[x][fModel];
  5330. HouseData[h][FurnPlaced][slot] = 0;
  5331. if(BuyFurnFrom[playerid] == 0) //take money from the player's bank
  5332. {
  5333. BankBalance[playerid] -= FurniData[x][fPrice];
  5334. mysql_pqueryf(conn, "UPDATE players SET Bank = %i WHERE id = %i", BankBalance[playerid], SQLID[playerid]);
  5335. }
  5336. else GivePlayerCash(playerid, -FurniData[x][fPrice]); //take money from their wallet.
  5337. break;
  5338. }
  5339. }
  5340. SendClientMessageF(playerid, COLOR_WHITE, "Você comprou um {BCDCBC}%s{FFFFFF} por {BCDCBC}$%i{FFFFFF}.", params, FurniData[x][fPrice]);
  5341. return true;
  5342. }
  5343. }
  5344. SysMsg(playerid, "Não foi possível encontrar um objeto de mobília com esse nome.");
  5345. return true;
  5346. }
  5347. CMD:selectf(playerid, params[]) return cmd_selectfurniture(playerid, params);
  5348. CMD:selectfurniture(playerid, params[])
  5349. {
  5350. if(!Logged{playerid} || PlayerBuyFurniture[playerid][0] != INVALID_OBJECT_ID) return true;
  5351. if(!CanFurnishHouse(playerid, IsInHouseID[playerid])) return SysMsg(playerid,"Você deve estar em sua própria casa para usar esse recurso.");
  5352. SelectObject(playerid);
  5353. return true;
  5354. }
  5355. CMD:sfl(playerid, params[]) return cmd_selectflist(playerid, params);
  5356. CMD:selectflist(playerid, params[])
  5357. {
  5358. if(!Logged{playerid} || PlayerBuyFurniture[playerid][0] != INVALID_OBJECT_ID) return true;
  5359. if(!CanFurnishHouse(playerid, IsInHouseID[playerid])) return SysMsg(playerid,"Você deve estar em sua própria casa para usar esse recurso.");
  5360. new Float:dist;
  5361. if(sscanf(params, "f", dist)) return SysMsg(playerid, "Usgae: /selectflist [radius]");
  5362. if(dist <= 0.0) return SysMsg(playerid, "A distância deve ser maior do que 0.");
  5363. new count = 0, mfurniture[MAX_HFURNITURE], desc[MAX_HFURNITURE][32], h = IsInHouseID[playerid], Float:x, Float:y, Float:z;
  5364. for(new f = 0; f < MAX_HFURNITURE; f++)
  5365. {
  5366. if(HouseData[h][FurnModel][f] > 0 && HouseData[h][FurnPlaced][f] == 1)
  5367. {
  5368. GetDynamicObjectPos(HouseData[h][FurnObject][f], x, y, z);
  5369. if(IsPlayerInRangeOfPoint(playerid, dist, x, y, z))
  5370. {
  5371. mfurniture[count] = HouseData[h][FurnModel][f];
  5372. format(desc[count], 32, "%s", GetHouseFurnitureName(HouseData[h][FurnModel][f]));
  5373. count++;
  5374. }
  5375. }
  5376. }
  5377. if(count > 0)
  5378. {
  5379. ShowModelSelectionMenu(playerid, "Selecione Móveis", MODEL_SELECTION_SFURNITURE, mfurniture, count, 0.0, 0.0, 90.0);
  5380. SFRadius[playerid] = dist;
  5381. }
  5382. else SysMsg(playerid, "Você não está perto o suficiente para qualquer item.");
  5383. return true;
  5384. }
  5385. CMD:placef(playerid, params[]) return cmd_placefurniture(playerid, params);
  5386. CMD:placefurniture(playerid, params[])
  5387. {
  5388. if(!Logged{playerid}) return true;
  5389. if(!CanFurnishHouse(playerid, IsInHouseID[playerid])) return SysMsg(playerid,"Você deve estar em sua própria casa para colocar móveis.");
  5390. new count = 0, mfurniture[MAX_HFURNITURE], desc[MAX_HFURNITURE][64];
  5391. for(new i = 0; i < MAX_HFURNITURE; i++)
  5392. {
  5393. if(HouseData[IsInHouseID[playerid]][FurnModel][i] > 0 && HouseData[IsInHouseID[playerid]][FurnPlaced][i] == 0)
  5394. {
  5395. mfurniture[count] = HouseData[IsInHouseID[playerid]][FurnModel][i];
  5396. format(desc[count], 64, "%s", GetHouseFurnitureName(HouseData[IsInHouseID[playerid]][FurnModel][i]));
  5397. count++;
  5398. }
  5399. }
  5400. if(count > 0) ShowModelSelectionMenu(playerid, "Colocar mobilia", MODEL_SELECTION_FURNITURE, mfurniture, count, 0.0, 0.0, 90.0);
  5401. //ShowMessage(playerid,"inventário da casa","Você Não tem nenhum item no invenrário da casa.", "OK");
  5402. return true;
  5403. }
  5404. CMD:removef(playerid, params[]) return cmd_removefurniture(playerid, params);
  5405. CMD:removefurniture(playerid, params[])//apagar do inventário
  5406. {
  5407. if(!Logged{playerid}) return true;
  5408. if(!CanFurnishHouse(playerid, IsInHouseID[playerid])) return SysMsg(playerid,"Você deve estar em sua própria casa para móveis remotos.");
  5409. new count = 0, mfurniture[MAX_HFURNITURE], desc[MAX_HFURNITURE][64];
  5410. for(new i = 0; i < MAX_HFURNITURE; i++)
  5411. {
  5412. if(HouseData[IsInHouseID[playerid]][FurnModel][i] > 0 && HouseData[IsInHouseID[playerid]][FurnPlaced][i] == 0)
  5413. {
  5414. mfurniture[count] = HouseData[IsInHouseID[playerid]][FurnModel][i];
  5415. format(desc[count], 64, "%s", GetHouseFurnitureName(HouseData[IsInHouseID[playerid]][FurnModel][i]));
  5416. count++;
  5417. }
  5418. }
  5419. if(count > 0) ShowModelSelectionMenu(playerid, "Remove Furniture", MODEL_REMOVE_FURNITURE, mfurniture, count, 0.0, 0.0, 90.0);
  5420. //ShowMessage(playerid,"House Item Inventory","You do not have any unplaced items to throw out.", "OK");
  5421. return true;
  5422. }
  5423. CMD:removeallf(playerid, params[]) return cmd_removeallfurniture(playerid, params);
  5424. CMD:removeallfurniture(playerid, params[])
  5425. {
  5426. if(!Logged{playerid}) return true;
  5427. if(!CanFurnishHouse(playerid, IsInHouseID[playerid])) return SysMsg(playerid,"Você deve estar em sua própria casa para remover móveis.");
  5428. new count = 0;
  5429. for(new i = 0; i < MAX_HFURNITURE; i++)
  5430. {
  5431. if(HouseData[IsInHouseID[playerid]][FurnModel][i] > 0 && HouseData[IsInHouseID[playerid]][FurnPlaced][i] == 0)
  5432. {
  5433. count = 1;
  5434. break;
  5435. }
  5436. }
  5437. if(count == 1) Dialog_Show(playerid, FurnitureRemoveAll, DIALOG_STYLE_MSGBOX, "Mobília", "Tem certeza de que deseja descartar todos os seus móveis não colocados?\nO mobiliário que já está colocado dentro de sua casa não é afetado.", "Sim", "Deixa pra lá");
  5438. else ShowMessage(playerid,"Inventário do item da casa", "Você não tem itens não colocados para jogar fora.", "OK");
  5439. return true;
  5440. }
  5441. CMD:pickupallf(playerid, params[]) return cmd_pickupallfurniture(playerid, params);
  5442. CMD:pickupallfurniture(playerid, params[])
  5443. {
  5444. if(!Logged{playerid}) return true;
  5445. if(!CanFurnishHouse(playerid, IsInHouseID[playerid])) return SysMsg(playerid,"Você deve estar em sua própria casa para pegar móveis.");
  5446. new count = 0;
  5447. for(new i = 0; i < MAX_HFURNITURE; i++)
  5448. {
  5449. if(HouseData[IsInHouseID[playerid]][FurnModel][i] > 0 && HouseData[IsInHouseID[playerid]][FurnPlaced][i] == 1)
  5450. {
  5451. count = 1;
  5452. break;
  5453. }
  5454. }
  5455. if(count == 1) Dialog_Show(playerid, FurniturePickupAll, DIALOG_STYLE_MSGBOX, "Mobília", "Você tem certeza de que deseja guardar todos os móveis do seu lugar?\nVocê pode então colocá-los novamente usando /placefurniture.", "Sim", "Deixa pra lá");
  5456. else ShowMessage(playerid,"Inventário do item da casa", "Você não tem itens colocados para guardar.", "OK");
  5457. return true;
  5458. }
  5459. CMD:frickedf(playerid)
  5460. {
  5461. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  5462. new Float:x, Float:y, Float:z, count = 0;
  5463. for(new h = 0; h < MAX_HOUSES; h++)
  5464. {
  5465. for(new f = 0; f < MAX_HFURNITURE; f++)
  5466. {
  5467. if(HouseData[h][FurnPlaced][f] == 1)
  5468. {
  5469. GetDynamicObjectPos(HouseData[h][FurnObject][f], x, y, z);
  5470. if(IsPointInRangeOfPoint(x, y, z, 0.0, 0.0, 0.0, 10.0))
  5471. {
  5472. count ++;
  5473. }
  5474. }
  5475. }
  5476. }
  5477. printf("%i", count);
  5478. return true;
  5479. }
  5480. CMD:reloadoutdoorfurniture(playerid)
  5481. {
  5482. if(!Logged{playerid}) return true;
  5483. new h = GetHouseForExteriorEdit(playerid);
  5484. if(h == -1) return SysMsg(playerid, "Não foi possível encontrar um exterior de casa para você editar.");
  5485. for(new f = 0; f < MAX_EHFURNITURE; f++)
  5486. {
  5487. if(EFurnData[h][EFurnPlaced][f])
  5488. {
  5489. if(EFurnData[h][EFurnObject][f] != INVALID_OBJECT_ID) DestroyDynamicObjectEx(EFurnData[h][EFurnObject][f], "EFurnData[h][EFurnObject][f]");
  5490. EFurnData[h][EFurnObject][f] = INVALID_OBJECT_ID;
  5491. EFurnData[h][EFurnPlaced][f] = false;
  5492. EFurnData[h][EFurnSQLID][f] = 0;
  5493. EFurnData[h][EFurnModel][f] = 0;
  5494. }
  5495. }
  5496. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM efurniture WHERE HouseSQLID = %i", HouseData[h][HouseSQLID]);
  5497. mysql_pquery(conn, mquery, "LoadExteriorHouseFurniture");
  5498. return true;
  5499. }
  5500. CMD:reloadmyfurniture(playerid, params[])
  5501. {
  5502. if(!CanFurnishHouse(playerid, IsInHouseID[playerid])) return SysMsg(playerid,"Você deve estar em sua própria casa.");
  5503. new b = IsInHouseID[playerid];
  5504. foreach(new i: Player)
  5505. {
  5506. if(PlayerPlaceFurniture[i] != INVALID_OBJECT_ID || PlayerEditFurniture[i] != INVALID_OBJECT_ID || PlayerBuyFurniture[i][0] != INVALID_OBJECT_ID)
  5507. {
  5508. if(IsInHouseID[i] == IsInHouseID[playerid] && i != playerid)
  5509. {
  5510. return SysMsg(playerid, "Alguém em sua casa está editando ou comprando móveis de casa, como tal, você não pode recarregar o mobiliário até finalizar.");
  5511. }
  5512. }
  5513. }
  5514. if(HouseData[b][InsideID] == 31) //warehouse int
  5515. {
  5516. //freeze the player for 3 seconds
  5517. TogglePlayerControllable(playerid, false);
  5518. TeleportTimer[playerid] = 3;
  5519. BeingTeleported{playerid} = true;
  5520. }
  5521. for(new f = 0; f < MAX_HFURNITURE; f++)
  5522. {
  5523. if(HouseData[b][FurnObject][f] != INVALID_OBJECT_ID)
  5524. {
  5525. DestroyDynamicObjectEx(HouseData[b][FurnObject][f], "HouseData[b][FurnObject][f] 1");
  5526. }
  5527. HouseData[b][FurnSQLID][f] = 0;
  5528. HouseData[b][FurnModel][f] = 0;
  5529. HouseData[b][FurnPlaced][f] = 0;
  5530. HouseData[b][FurnObject][f] = INVALID_OBJECT_ID;
  5531. HouseData[b][DoorOpen][f] = false;
  5532. HouseData[b][DoorLocked][f] = false;
  5533. for(new i = 0; i < MAX_TEXTURESLOTS; i++)
  5534. {
  5535. FurnitureIndex[b][f][i] = -1;
  5536. }
  5537. }
  5538. for(new w = 0; w < MAX_WEED_PLANTS; w++)
  5539. {
  5540. WeedData[b][PlantGrowth][w] = 0;
  5541. WeedData[b][PlantWater][w] = 0;
  5542. WeedData[b][PlantPotObj][w] = INVALID_OBJECT_ID;
  5543. WeedData[b][PlantSQLID][w] = 0;
  5544. WeedData[b][PlantFurnIndex][w] = 0;
  5545. }
  5546. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM hfurniture WHERE HouseSQLID = %i LIMIT %i", HouseData[b][HouseSQLID], MAX_HFURNITURE);
  5547. mysql_tquery(conn, mquery, "LoadHouseFurniture");
  5548. SendClientMessage(playerid, COLOR_WHITE, "Você {44C300}recarregou{FFFFFF} seus furniture.");
  5549. Streamer_Update(playerid);
  5550. return true;
  5551. }
  5552. CMD:reloadfurniture(playerid, params[])
  5553. {
  5554. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  5555. for(new x = 0; x < MAX_FURNITURE; x++)
  5556. {
  5557. FurniData[x][fuName][0] = 0;
  5558. FurniData[x][fModel] = 0;
  5559. FurniData[x][fPrice] = 0;
  5560. FurniData[x][fSubCategory] = 0;
  5561. }
  5562. mysql_pquery(conn, "SELECT * FROM furniture ORDER BY Name ASC", "LoadFurniture", "");
  5563. SendClientMessage(playerid, COLOR_WHITE, "Você {44C300}recarregou{FFFFFF} todos os objetos.");
  5564. return true;
  5565. }
  5566. CMD:updatef(playerid, params[])
  5567. {
  5568. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  5569. for(new h = 0; h < MAX_HOUSES; h++)
  5570. {
  5571. mysql_format(conn, mquery, sizeof(mquery), "UPDATE hfurniture SET insideid = %i WHERE HouseSQLID = %i", HouseData[h][InsideID], HouseData[h][HouseSQLID]);
  5572. mysql_pquery(conn, mquery);
  5573. }
  5574. SendClientMessage(playerid, COLOR_RED, "Inside ID's atualizado.");
  5575. return true;
  5576. }
  5577. CMD:emptyfurniture(playerid, params[])
  5578. {
  5579. if(!IsPlayerAdmin(playerid)) return true;
  5580. mysql_pquery(conn, "SELECT HouseSQLID FROM hfurniture GROUP BY HouseSQLID", "ProcessFurnitureEmpty");
  5581. return true;
  5582. }
  5583. CMD:furniturelimit(playerid, params[])
  5584. {
  5585. SendClientMessageF(playerid, COLOR_GREY, "Seu limite de móveis é %i. Você pode encontrar mais sobre os limites da mobília vendo a página da doação no Web site.", GetMaxFurnitureForPlayer(playerid));
  5586. return true;
  5587. }
  5588. CMD:furniturecount(playerid, params[])
  5589. {
  5590. if(IsInHouseID[playerid] == -1) return SysMsg(playerid,"Você deve estar em uma casa para usar este recurso.");
  5591. new h = IsInHouseID[playerid];
  5592. if(!CanFurnishHouse(playerid, h)) return SysMsg(playerid, "Você deve estar em uma casa que você pode fornecer para usar este comando.");
  5593. mysql_format(conn, mquery, sizeof(mquery), "SELECT id FROM hfurniture WHERE HouseSQLID = %i", HouseData[h][HouseSQLID]);
  5594. mysql_pquery(conn, mquery, "ShowFurnitureCount", "d", playerid);
  5595. return true;
  5596. }
  5597. //end of house and furniture cmds
  5598. //==================== Fim ==================================//
  5599. //8 business commands
  5600. //business commands
  5601. CMD:makebizz(playerid, params[])
  5602. {
  5603. if(!IsPlayerAdminLevelOK(playerid, 5)) return SysMsg(playerid, AUTHMSG);//if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  5604. new Float:X,Float:Y,Float:Z, NewBizzCost, NewPayout, Description[50], bType;
  5605. if(sscanf(params, "iiis[50]", NewBizzCost, bType, NewPayout, Description)) return SysMsg(playerid,"Use: /makebizz [custo] [tipo] [payday] [desc]");
  5606. if(NewBizzCost < 1) return SysMsg(playerid,"O custo deve ser > 0");
  5607. if(NewPayout < 1) return SysMsg(playerid,"Pagamento inválido.");
  5608. if(bType < 0 || bType > 22) return SysMsg(playerid, "Tipo inválido");
  5609. GetPlayerPos(playerid,X,Y,Z);
  5610. mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO bizz (Description,oPosX,oPosY,oPosZ) VALUES ('%e',%f,%f,%f)", Description,X,Y,Z);
  5611. mysql_pquery(conn, mquery, "InsertNewBusiness", "iiii", playerid, NewBizzCost, NewPayout, bType);
  5612. return true;
  5613. }
  5614. CMD:editbizz(playerid, params[])
  5615. {
  5616. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  5617. new bizzid = -1;
  5618. for(new b = 0; b < MAX_BIZZ; b++)
  5619. {
  5620. if(IsPlayerInRangeOfPoint(playerid,4.5,BizzData[b][oPosX],BizzData[b][oPosY],BizzData[b][oPosZ]))
  5621. {
  5622. bizzid = b;
  5623. break;
  5624. }
  5625. }
  5626. if(bizzid == -1) return SysMsg(playerid,"Você não está perto de nenhuma empresa.");
  5627. new element[10], value;
  5628. if(sscanf(params, "s[10]IS", element)) return SysMsg(playerid,"Use: /editbizz [opções] [valor] Elemento: Valor, Dono, Payday, Tipo, Nome");
  5629. if(strcmp("valor", element, true) == 0)
  5630. {
  5631. if(sscanf(params, "s[10]i", element, value)) return SysMsg(playerid,"Use: /editbizz valor [valor]");
  5632. if(value < 1) return SysMsg(playerid,"O custo deve ser > 0");
  5633. MySQLUpdateInt(BizzData[bizzid][BizzSQLID], "Price", value, "bizz");
  5634. BizzData[bizzid][BizzPrice] = value;
  5635. SysMsgF(playerid, "Bizz Price Is Now $%i.", BizzData[bizzid][BizzPrice]);
  5636. format(gstr, sizeof(gstr), "Negocio editado #%i preço para $%i", BizzData[bizzid][BizzSQLID], value);
  5637. AdminLog(playerid, 0, "", gstr);
  5638. return true;
  5639. }
  5640. else if(strcmp("payday", element, true) == 0)
  5641. {
  5642. if(sscanf(params, "s[10]i", element, value)) return SysMsg(playerid,"Use: /editbizz payday [valor]");
  5643. if(value < 1) return SysMsg(playerid,"Novo pagamento deve ser maior do que 0.");
  5644. MySQLUpdateInt(BizzData[bizzid][BizzSQLID], "Payout", value, "bizz");
  5645. BizzData[bizzid][Payout] = value;
  5646. SysMsgF(playerid, "O pagamendo do negocio agora é $%i.", BizzData[bizzid][Payout]);
  5647. format(gstr, sizeof(gstr), "Negocio editado #%i payday agora é $%i", BizzData[bizzid][BizzSQLID], value);
  5648. AdminLog(playerid, 0, "", gstr);
  5649. return true;
  5650. }
  5651. else if(strcmp("tipo", element, true) == 0)
  5652. {
  5653. if(sscanf(params, "s[10]i", element, value)) return SysMsg(playerid,"Use: /editbizz tipo [tipo de negocio]");
  5654. if(value < 0) return SysMsg(playerid,"O ID deve ser superior a >= 0.");
  5655. new Float:pPos[3];
  5656. GetPlayerPos(playerid, pPos[0], pPos[1], pPos[2]);
  5657. BizzData[bizzid][oPosX] = pPos[0];
  5658. BizzData[bizzid][oPosY] = pPos[1];
  5659. BizzData[bizzid][oPosZ] = pPos[2];
  5660. BizzData[bizzid][BizzType] = value;
  5661. mysql_format(conn, mquery, sizeof(mquery), "UPDATE bizz SET oPosX=%f, oPosY=%f, oPosZ=%f, BizzType = %i WHERE id=%i", pPos[0], pPos[1], pPos[2], BizzData[bizzid][BizzType], BizzData[bizzid][BizzSQLID]);
  5662. mysql_pquery(conn, mquery);
  5663. DestroyDynamicPickup(BizzData[bizzid][BizzPickup]);
  5664. BizzData[bizzid][BizzPickup] = CreateDynamicPickup(1272,23,BizzData[bizzid][oPosX],BizzData[bizzid][oPosY],BizzData[bizzid][oPosZ], -1, -1, -1, 10);
  5665. UpdateBizzLabel(bizzid);
  5666. SysMsgF(playerid, "O negocio agora é %i e XYZ foi atualizada.", BizzData[bizzid][BizzType]);
  5667. return true;
  5668. }
  5669. else if(strcmp("dono", element, true) == 0)
  5670. {
  5671. new newowner[20];
  5672. if(sscanf(params, "s[10]s[20]", element, newowner)) return SysMsg(playerid,"Use: /editbizz dono [valor]");
  5673. if(strcmp("ninguem", newowner, true) == 0)
  5674. {
  5675. new i = 0;
  5676. foreach(new p: Player)
  5677. {
  5678. for(i = 0; i < MAX_BIZZ_PER_PLAYER; i++)
  5679. {
  5680. if(PlayerBizzID[p][i] == bizzid)
  5681. {
  5682. PlayerBizzID[p][i] = -1;
  5683. break;
  5684. }
  5685. }
  5686. }
  5687. MySQLUpdateInt(BizzData[bizzid][BizzSQLID], "OwnerSQLID", 0, "bizz");
  5688. BizzData[bizzid][BizzOwnerSQLID] = 0;
  5689. format(gstr, sizeof(gstr), "Negocio editado #%i Dono: ninguem", bizzid);
  5690. AdminLog(playerid, 0, "", gstr);
  5691. return true;
  5692. }
  5693. new accid = MySQLCheckAccount(newowner, playerid);
  5694. if(accid == 0) return SysMsg(playerid, "Nenhum nome da conta encontrado.");
  5695. new posID = GetPlayerID(playerid, newowner);
  5696. new bizzCount = 0;
  5697. if(posID >= 0)
  5698. {
  5699. foreach(new i: Player)
  5700. {
  5701. for(new b = 0; b < MAX_BIZZ_PER_PLAYER; b++)
  5702. {
  5703. if(PlayerBizzID[i][b] == bizzid)
  5704. {
  5705. PlayerBizzID[i][b] = -1;
  5706. }
  5707. }
  5708. }
  5709. for(new i = 0; i < MAX_BIZZ_PER_PLAYER; i++)
  5710. {
  5711. if(PlayerBizzID[posID][i] != -1)
  5712. {
  5713. bizzCount ++;
  5714. }
  5715. }
  5716. if(bizzCount +1 > MAX_BIZZ_PER_PLAYER) return SysMsg(playerid,"Esse novo proprietário não pode ter mais negócios.");
  5717. for(new i = 0; i < MAX_BIZZ_PER_PLAYER; i++)
  5718. {
  5719. if(PlayerBizzID[posID][i] == -1)
  5720. {
  5721. PlayerBizzID[posID][i] = bizzid;
  5722. break;
  5723. }
  5724. }
  5725. }
  5726. MySQLUpdateInt(BizzData[bizzid][BizzSQLID], "OwnerSQLID", accid, "bizz");
  5727. BizzData[bizzid][BizzOwnerSQLID] = accid;
  5728. UpdateBizzLabel(bizzid);
  5729. SysMsgF(playerid, "O negocio agora é %s.", GetSQLName(BizzData[bizzid][BizzOwnerSQLID]));
  5730. format(gstr, sizeof(gstr), "Negocio editado #%i para o dono %s", BizzData[bizzid][BizzSQLID], GetSQLName(BizzData[bizzid][BizzOwnerSQLID]));
  5731. AdminLog(playerid, 0, "", gstr);
  5732. return true;
  5733. }
  5734. else if(strcmp("nome", element, true) == 0)
  5735. {
  5736. new newname[60];
  5737. if(sscanf(params, "s[10]s[60]", element, newname)) return SysMsg(playerid,"Use: /editbizz nome [valor]");
  5738. MySQLUpdateString(BizzData[bizzid][BizzSQLID], "Description", newname, "bizz");
  5739. format(BizzData[bizzid][BizzDescription], 60, newname);
  5740. UpdateBizzLabel(bizzid);
  5741. SysMsgF(playerid, "Nome do negocio agora é %s.", BizzData[bizzid][BizzDescription]);
  5742. format(gstr, sizeof(gstr), "Negocio editado #%i nome para %s",BizzData[bizzid][BizzSQLID], BizzData[bizzid][BizzDescription]);
  5743. AdminLog(playerid, 0, "", gstr);
  5744. return true;
  5745. }
  5746. else SysMsg(playerid,"*Use: /editbizz [opções] [valor] Elemento: Valor, Dono, Payday, Tipo, Nome");
  5747. return true;
  5748. }
  5749. CMD:badvert(playerid, params[])
  5750. {
  5751. if(!Logged{playerid}) return true;
  5752. if(AdvertSpamTime[playerid] > 0) return SysMsg(playerid, "or favor, aguarde entre postar anúncios.");
  5753. if(!AdvertsToggle{playerid}) return SysMsg(playerid, "Você não pode fazer um anúncio como você tem anúncios desativado.");
  5754. if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid,"Você precisa de um telefone celular para enviar um anúncio.");
  5755. new b = IsInBizzID[playerid];
  5756. if(b <= 0)
  5757. {
  5758. for(new x = 0; x < MAX_BIZZ; x++)
  5759. {
  5760. if(IsPlayerInRangeOfPoint(playerid, 2.0, BizzData[x][oPosX], BizzData[x][oPosY], BizzData[x][oPosZ]))
  5761. {
  5762. b = x;
  5763. break;
  5764. }
  5765. }
  5766. }
  5767. if(b <= 0) return SysMsg(playerid, "Você deve estar em um negócio para usar este comando.");
  5768. if(BizzData[b][BizzOwnerSQLID] == SQLID[playerid] || IsBizzMod(playerid, b))
  5769. {
  5770. if(isnull(params))
  5771. {
  5772. SysMsg(playerid,"Use: /badvert [mensagem]");
  5773. SysMsg(playerid,"Examplo: '/badvert Isso é um teste' vai mostrar como: [Anúncio de negócio] Isso é um teste [Nome do negócio]");
  5774. return true;
  5775. }
  5776. if(strlen(params) < 30) return SysMsg(playerid, "Seu anúncio é muito curto. Seja criativo e seja apenas IC.");
  5777. new AdCost = strlen(params) * 8;
  5778. if(IsDonator[playerid] < 3)
  5779. {
  5780. GivePlayerCash(playerid, -AdCost);
  5781. AdvertSpamTime[playerid] = 60;
  5782. format(gstr, sizeof(gstr),"Você fez um anúncio comercial %i caracteres longos, custando-lhe $%i ($8/letra).",strlen(params),AdCost);
  5783. SendClientMessage(playerid,COLOR_WHITE,gstr);
  5784. }
  5785. else if(IsDonator[playerid] == 3)
  5786. {
  5787. AdCost = AdCost / 2;
  5788. GivePlayerCash(playerid, -AdCost);
  5789. AdvertSpamTime[playerid] = 60;
  5790. format(gstr, sizeof(gstr),"Você fez um anúncio comercial %i caracteres longos, custando-lhe $%i. ($8/letra)",strlen(params),AdCost);
  5791. SendClientMessage(playerid,COLOR_WHITE,gstr);
  5792. }
  5793. else if(IsDonator[playerid] == 4)
  5794. {
  5795. AdvertSpamTime[playerid] = 60;
  5796. format(gstr, sizeof(gstr),"Você fez um anúncio comercial %i caracteres longos, custando-lhe $%i. ($8/letra)",strlen(params),AdCost);
  5797. SendClientMessage(playerid,COLOR_WHITE,gstr);
  5798. }
  5799. FACTIONS[FACTION_NEWS][FactionBankBalance] += floatround(1 * AdCost);
  5800. MySQLUpdateInt(FACTION_NEWS, "BankBalance", FACTIONS[FACTION_NEWS][FactionBankBalance], "factions");
  5801. format(gstr, sizeof(gstr),"[Anúncio comercial] %s [%s]", params, BizzData[b][BizzDescription]);
  5802. foreach(new i: Player) if(Logged{i} && AdvertsToggle{i}) SendSplitMessage(i, COLOR_GREEN, gstr);
  5803. format(gstr, sizeof(gstr), "[Admin] ^^ Bizz Anúncio de %s (ID %i)", NameEx(playerid), playerid);
  5804. AdminBroadcast(gstr, 0);
  5805. AddToLog("advert", gstr);
  5806. return true;
  5807. }
  5808. else SysMsg(playerid, "Você deve possuir ou ser um gerente desse negócio para usar esse comando.");
  5809. return true;
  5810. }
  5811. CMD:enterfee(playerid, params[])
  5812. {
  5813. if(!Logged{playerid}) return true;
  5814. for(new h = 0; h < MAX_BIZZ; h++)
  5815. {
  5816. if(IsPlayerInRangeOfPoint(playerid, 2.5, BizzData[h][oPosX], BizzData[h][oPosY], BizzData[h][oPosZ]))
  5817. {
  5818. if(BizzData[h][BizzOwnerSQLID] == SQLID[playerid])
  5819. {
  5820. if(BizzData[h][BizzType] == BIZZ_TYPE_STATIC && BizzData[h][IsSpecial] == 0) return SysMsg(playerid,"Você não pode ter uma taxa de entrada para este bizz.");
  5821. if(isnull(params)) return SysMsg(playerid,"Use: /enterfee [Quantidade]");
  5822. if(!IsNumeric(params)) return SysMsg(playerid,"Quantidade inválida.");
  5823. if(strval(params) < 0) return SysMsg(playerid,"Quantidade inválida, Deve ser um mínimo de $0.");
  5824. if(strval(params) > 25) return SysMsg(playerid,"Quantidade inválida, Só pode ser um máximo de $25.");
  5825. BizzData[h][EnterFee] = strval(params);
  5826. MySQLUpdateInt(BizzData[h][BizzSQLID], "EnterFee", BizzData[h][EnterFee], "bizz");
  5827. SendClientMessageF(playerid, COLOR_LIGHTRED, "A nova taxa de entrada para %s é agora $%i.",BizzData[h][BizzDescription], BizzData[h][EnterFee]);
  5828. UpdateBizzLabel(h);
  5829. break;
  5830. }
  5831. }
  5832. }
  5833. return true;
  5834. }
  5835. CMD:bizzmusic(playerid, params[])
  5836. {
  5837. if(IsInBizzID[playerid] == -1) return SysMsg(playerid, "Você deve estar em um negócio.");
  5838. if(BizzData[IsInBizzID[playerid]][BizzOwnerSQLID] != SQLID[playerid] && !IsBizzMod(playerid, IsInBizzID[playerid])) return SysMsg(playerid,"Você deve possuir o negócio.");
  5839. new musicLink[200], bizz = IsInBizzID[playerid];
  5840. if(sscanf(params, "s[200]", musicLink)) return SysMsg(playerid, "Use: /bizzmusic [link/parar]");
  5841. if(strcmp(musicLink, "parar") == 0)
  5842. {
  5843. foreach(new i: Player)
  5844. {
  5845. if(Logged{i} && IsInBizzID[i] == IsInBizzID[playerid])
  5846. {
  5847. StopAudioStreamForPlayer(i);
  5848. }
  5849. }
  5850. BizzData[bizz][BMusicPlaying] = 0;
  5851. }
  5852. else
  5853. {
  5854. foreach(new i: Player)
  5855. {
  5856. if(Logged{i} && IsInBizzID[i] == IsInBizzID[playerid])
  5857. {
  5858. StopAudioStreamForPlayer(i);
  5859. PlayAudioStreamForPlayerEx(i, musicLink);
  5860. }
  5861. format(BizzData[bizz][BMusic], 200, musicLink);
  5862. BizzData[bizz][BMusicPlaying] = 1;
  5863. }
  5864. }
  5865. return true;
  5866. }
  5867. CMD:mybizz(playerid, params[])
  5868. {
  5869. if(!Logged{playerid}) return true;
  5870. new Bcount = 0, substr[128], bid;
  5871. gstr[0] = EOS;
  5872. for(new v = 0; v < MAX_BIZZ_PER_PLAYER; v++)
  5873. {
  5874. if(PlayerBizzID[playerid][v] != -1)
  5875. {
  5876. if(Bcount != 0) strcat(gstr, "\n");
  5877. bid = PlayerBizzID[playerid][v];
  5878. if(BizzData[bid][BizzType] > 0 || BizzData[bid][IsSpecial] == 1)
  5879. {
  5880. new locked[9];
  5881. if(BizzData[bid][BizzLocked]) format(locked, sizeof(locked), "Fechado");
  5882. else format(locked, sizeof(locked), "Aberto");
  5883. if(IsBizzStockable(bid) > 0) format(substr, sizeof(substr), "%s - $%s Pagamento - Porta %s - $%s Ganhos para coletar - %i%% Estoque", BizzData[bid][BizzDescription], format_cash(BizzData[bid][Payout]), locked, format_cash(BizzData[bid][BizzEarnings]), BizzData[bid][BizzStock]);
  5884. else format(substr, sizeof(substr), "%s - $%s Pagamento - Door %s - $%s Ganhos para coletar", BizzData[bid][BizzDescription], format_cash(BizzData[bid][Payout]), locked, format_cash(BizzData[bid][BizzEarnings]));
  5885. strcat(gstr, substr);
  5886. }
  5887. else
  5888. {
  5889. format(substr, sizeof(substr), "%s - $%s Pagamento (Negócio padrão)", BizzData[bid][BizzDescription], format_cash(BizzData[bid][Payout]));
  5890. strcat(gstr, substr);
  5891. }
  5892. Bcount ++;
  5893. }
  5894. }
  5895. if(Bcount > 0)
  5896. {
  5897. strcat(gstr, "\n");
  5898. new Sbizzid = -1;
  5899. Sbizzid = GetBizzID("Red County Sweeping Co.");
  5900. if(Sbizzid != -1 && BizzData[Sbizzid][BizzOwnerSQLID] == SQLID[playerid])
  5901. {
  5902. format(substr, sizeof(substr), "Red County Sweeping Co - $200 por trabalho - $%s.", format_cash(BizzData[Sbizzid][BizzEarnings]));
  5903. strcat(gstr, substr);
  5904. }
  5905. Sbizzid = GetBizzID("Red County Trucking LTD");
  5906. if(Sbizzid != -1 && BizzData[Sbizzid][BizzOwnerSQLID] == SQLID[playerid])
  5907. {
  5908. format(substr, sizeof(substr), "Red County Trucking LTD - $200 por trabalho - $%s.", format_cash(BizzData[Sbizzid][BizzEarnings]));
  5909. strcat(gstr, substr);
  5910. }
  5911. Sbizzid = GetBizzID("Montgomery Pizza Stack");
  5912. if(Sbizzid != -1 && BizzData[Sbizzid][BizzOwnerSQLID] == SQLID[playerid])
  5913. {
  5914. format(substr, sizeof(substr), "Montgomery Pizza Stack - $200 por trabalho - $%s.", format_cash(BizzData[Sbizzid][BizzEarnings]));
  5915. strcat(gstr, substr);
  5916. }
  5917. Sbizzid = GetBizzID("Red County Transport LTD");
  5918. if(Sbizzid != -1 && BizzData[Sbizzid][BizzOwnerSQLID] == SQLID[playerid])
  5919. {
  5920. format(substr, sizeof(substr), "Red County Transport LTD - $10 por ponto de ônibus - $%s.", format_cash(BizzData[Sbizzid][BizzEarnings]));
  5921. strcat(gstr, substr);
  5922. }
  5923. Sbizzid = GetBizzID("Bone County Gestão de resíduos");
  5924. if(Sbizzid != -1 && BizzData[Sbizzid][BizzOwnerSQLID] == SQLID[playerid])
  5925. {
  5926. format(substr, sizeof(substr), "Bone County Gestão de resíduos - $%s.", format_cash(BizzData[Sbizzid][BizzEarnings]));
  5927. strcat(gstr, substr);
  5928. }
  5929. Sbizzid = GetBizzID("Bone County Coal Mine");
  5930. if(Sbizzid != -1 && BizzData[Sbizzid][BizzOwnerSQLID] == SQLID[playerid])
  5931. {
  5932. format(substr, sizeof(substr), "Bone County Coal Mine - $%s.", format_cash(BizzData[Sbizzid][BizzEarnings]));
  5933. strcat(gstr, substr);
  5934. }
  5935. ShowMessage(playerid, "Meus negócios", gstr, "OK");
  5936. }
  5937. else SysMsg(playerid,"Você não tem negócios.");
  5938. return true;
  5939. }
  5940. CMD:collectearning(playerid, params[])
  5941. {
  5942. if(!Logged{playerid}) return true;
  5943. new text[128], Bcount = 0, bizz, TotalEarn = 0, becount = 0;
  5944. for(new b = 0; b < MAX_BIZZ_PER_PLAYER; b++)
  5945. {
  5946. if(PlayerBizzID[playerid][b] != -1)
  5947. {
  5948. bizz = PlayerBizzID[playerid][b];
  5949. if(GetPlayerVirtualWorld(playerid) == BizzData[bizz][BizzVW] || IsPlayerInRangeOfPoint(playerid, 3.0, BizzData[bizz][oPosX], BizzData[bizz][oPosY], BizzData[bizz][oPosZ]))
  5950. {
  5951. becount++;
  5952. if(BizzData[bizz][BizzEarnings] > 0)
  5953. {
  5954. Bcount ++;
  5955. TotalEarn += BizzData[bizz][BizzEarnings];
  5956. format(text, 128, "%s - Você recebeu $%s deste negócio.", BizzData[bizz][BizzDescription], format_cash(BizzData[bizz][BizzEarnings]));
  5957. SendClientMessage(playerid, COLOR_ORANGE, text);
  5958. GivePlayerCash(playerid, BizzData[bizz][BizzEarnings]);
  5959. BizzData[bizz][BizzEarnings] = 0;
  5960. MySQLUpdateInt(BizzData[bizz][BizzSQLID], "BizzEarnings", 0, "bizz");
  5961. }
  5962. }
  5963. }
  5964. }
  5965. if(TotalEarn >= 5000) UnlockAchievement(playerid,24);
  5966. if(becount == 0) return SysMsg(playerid,"Você precisa estar dentro ou no exterior de um negócio para usar este comando.");
  5967. else if(Bcount == 0) return SysMsg(playerid,"Nenhum de seus negócios tem ganhos para retirar.");
  5968. return true;
  5969. }
  5970. CMD:collectearnings(playerid, params[]) return cmd_collectearning(playerid, params);
  5971. CMD:requeststock(playerid, params[])
  5972. {
  5973. if(!Logged{playerid}) return true;
  5974. if(IsInBizzID[playerid] == -1) return SysMsg(playerid,"Você deve estar dentro de sua empresa para solicitar mais estoque.");
  5975. new bizz = IsInBizzID[playerid];
  5976. if(IsBizzMod(playerid, bizz) || BizzData[bizz][BizzOwnerSQLID] == SQLID[playerid])
  5977. {
  5978. if(BizzData[bizz][BizzLocked]) return SysMsg(playerid,"Esse negócio já está fechado.");
  5979. if(IsBizzStockable(bizz) == 0) return SysMsg(playerid,"Este negócio não requer estoque.");
  5980. if(BizzData[bizz][BizzStock] > 50) return SysMsg(playerid,"Você só pode solicitar mais ações se o nível de estoque for inferior a cinquenta por cento.");
  5981. if(BizzData[bizz][BizzETDelivering] == 1) return SysMsg(playerid,"Uma entrega já está em andamento.");
  5982. new fee = IsBizzStockable(bizz);
  5983. if(fee > BankBalance[playerid]) return SysMsgF(playerid, "Sua conta bancária precisa de pelo menos $%s para solicitar um reabastecimento.", format_cash(fee));
  5984. BankBalance[playerid] -= fee;
  5985. BizzData[bizz][BizzRequestStock] = 1;
  5986. BizzData[bizz][BizzETDelivering] = 0;
  5987. MySQLUpdateInt(SQLID[playerid], "Bank", BankBalance[playerid], "players");
  5988. MySQLUpdateInt(BizzData[bizz][BizzSQLID], "RequestStock", BizzData[bizz][BizzRequestStock], "bizz");
  5989. SendClientMessageF(playerid, COLOR_WHITE, "Você solicitou com sucesso um reabastecimento para %s a um custo de $%s do seu banco.", BizzData[bizz][BizzDescription], format_cash(fee));
  5990. return true;
  5991. }
  5992. return true;
  5993. }
  5994. CMD:manageactors(playerid, params[])
  5995. {
  5996. if(!Logged{playerid}) return true;
  5997. if(IsInBizzID[playerid] == -1) return SysMsg(playerid, "Você deve estar em uma empresa para usar esse comando.");
  5998. new b = IsInBizzID[playerid];
  5999. if(BizzData[b][BizzOwnerSQLID] != SQLID[playerid] && !IsBizzMod(playerid, b)) return SysMsg(playerid, "Você não possui esse negócio.");
  6000. if(IsDonator[playerid] == 0 || IsDonator[playerid] == 1) format(tgstr, sizeof(tgstr), "Actor 1");
  6001. if(IsDonator[playerid] == 2) format(tgstr, sizeof(tgstr), "Actor 1\nActor 2");
  6002. if(IsDonator[playerid] == 3) format(tgstr, sizeof(tgstr), "Actor 1\nActor 2\nActor 3");
  6003. if(IsDonator[playerid] == 4) format(tgstr, sizeof(tgstr), "Actor 1\nActor 2\nActor 3\nActor 4");
  6004. Dialog_Show(playerid, ActorMenu, DIALOG_STYLE_LIST, "Actors", tgstr, "Okay", "Cancelar");
  6005. return true;
  6006. }
  6007. CMD:addmanager(playerid, params[])
  6008. {
  6009. new bcount = 0, bizzid, playa = -1;
  6010. for(new v = 0; v < MAX_BIZZ_PER_PLAYER; v++)
  6011. {
  6012. if(PlayerBizzID[playerid][v] != -1)
  6013. {
  6014. if(sscanf(params, "iu", bizzid, playa)) SendClientMessageF(playerid, COLOR_WHITE, "ID %i - %s", v, BizzData[PlayerBizzID[playerid][v]][BizzDescription]);
  6015. bcount ++;
  6016. }
  6017. }
  6018. if(bcount == 0) return SysMsg(playerid, "Você não possui negócios.");
  6019. if(sscanf(params, "iu", bizzid, playa)) return SysMsg(playerid, "Use: /addmanager [o negócio ID (Veja acima)] [ID ou nome do jogador]");
  6020. if(bizzid > 1) return SysMsg(playerid, "O ID da empresa não pode ser superior a 1.");
  6021. if(bizzid < 0) return SysMsg(playerid, "ID comercial não pode ser inferior a 0.");
  6022. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  6023. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  6024. if(playa == playerid) return SysMsg(playerid,"Você não pode se tornar um moderador de negócios.");
  6025. if(!Logged{playa}) return SysMsg(playerid,"Esse jogador não está logado/registrado.");
  6026. if(IsBizzMod(playa, PlayerBizzID[playerid][bizzid])) return SysMsg(playerid, "Este jogador já é um gerente para sua empresa. Se você quiser removê-los, então use /removemanager.");
  6027. mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO bizzmods (BizzID, ModSQLID) VALUES (%i, %i)", BizzData[PlayerBizzID[playerid][bizzid]][BizzSQLID], SQLID[playa]);
  6028. mysql_pquery(conn, mquery);
  6029. SendClientMessageF(playerid, COLOR_BLUE, "%s foi adicionado como gerente para o seu negócio: %s", NameEx(playa), BizzData[PlayerBizzID[playerid][bizzid]][BizzDescription]);
  6030. SendClientMessageF(playa, COLOR_BLUE, "%s tornou-se um gerente de seus negócios: %s", NameEx(playerid), BizzData[PlayerBizzID[playerid][bizzid]][BizzDescription]);
  6031. return true;
  6032. }
  6033. CMD:removemanager(playerid, params[])
  6034. {
  6035. new bcount = 0, bizzid, fullname[MAX_PLAYER_NAME];
  6036. for(new v = 0; v < MAX_BIZZ_PER_PLAYER; v++)
  6037. {
  6038. if(PlayerBizzID[playerid][v] != -1)
  6039. {
  6040. if(sscanf(params, "is[24]", bizzid, fullname)) SendClientMessageF(playerid, COLOR_WHITE, "ID %i - %s", v, BizzData[PlayerBizzID[playerid][v]][BizzDescription]);
  6041. bcount ++;
  6042. }
  6043. }
  6044. if(bcount == 0) return SysMsg(playerid, "Você não possui negócios.");
  6045. if(sscanf(params, "is[24]", bizzid, fullname)) return SysMsg(playerid,"Use: /removemanager [negocio ID (Veja acima)] [Nome_Sobrenome] *Por favor, note que isso varre o banco de dados, não jogadores no jogo*");
  6046. if(bizzid > 1) return SysMsg(playerid, "ID do negócio não pode ser maior do que 1.");
  6047. new sqlid = MySQLCheckAccount(fullname, playerid);
  6048. if(sqlid == 0) return SysMsg(playerid, "O nome não foi encontrado. Por favor inclua o primeiro nome, sobrenome e um sublinhado.");
  6049. new b = PlayerBizzID[playerid][bizzid];
  6050. mysql_format(conn, mquery, sizeof(mquery), "SELECT id FROM bizzmods WHERE BizzID = %i AND ModSQLID = %i", BizzData[b][BizzSQLID], sqlid);
  6051. mysql_pquery(conn, mquery, "ProcessManagerRemoval", "ddds", playerid, sqlid, b, fullname);
  6052. return true;
  6053. }
  6054. CMD:viewmanagers(playerid, params[])
  6055. {
  6056. new bcount = 0, bizzid;
  6057. for(new v = 0; v < MAX_BIZZ_PER_PLAYER; v++)
  6058. {
  6059. if(PlayerBizzID[playerid][v] != -1)
  6060. {
  6061. if(sscanf(params, "i", bizzid)) SendClientMessageF(playerid, COLOR_WHITE, "ID %i - %s", v, BizzData[PlayerBizzID[playerid][v]][BizzDescription]);
  6062. bcount ++;
  6063. }
  6064. }
  6065. if(bcount == 0) return SysMsg(playerid, "Você não possui negócios.");
  6066. if(sscanf(params, "i", bizzid)) return SysMsg(playerid,"Use: /viewmanagers [ID do negocio (veja acima)]");
  6067. if(bizzid > 1) return SysMsg(playerid, "ID do negócio não pode ser maior do que 1.");
  6068. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM bizzmods WHERE BizzID = %i", BizzData[PlayerBizzID[playerid][bizzid]][BizzSQLID]);
  6069. mysql_pquery(conn, mquery, "ShowManagerList", "d", playerid);
  6070. return true;
  6071. }
  6072. CMD:reloadbizz(playerid, params[])
  6073. {
  6074. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  6075. for(new b = 0; b < MAX_BIZZ; b++)
  6076. {
  6077. DestroyDynamicPickup(BizzData[b][BizzPickup]);
  6078. DeleteBizzLabel(b);
  6079. BizzData[b][BizzDescription][0] = 0;
  6080. BizzData[b][BizzSQLID] = 0;
  6081. BizzData[b][oPosX] = 0;
  6082. BizzData[b][oPosY] = 0;
  6083. BizzData[b][oPosZ] = 0;
  6084. BizzData[b][iPosX] = 0;
  6085. BizzData[b][iPosY] = 0;
  6086. BizzData[b][iPosZ] = 0;
  6087. BizzData[b][Payout] = 0;
  6088. BizzData[b][BizzPrice] = 0;
  6089. BizzData[b][BizzType] = 0;
  6090. BizzData[b][EnterFee] = 0;
  6091. BizzData[b][BizzEarnings] = 0;
  6092. BizzData[b][BizzLocked] = false;
  6093. BizzData[b][BizzStock] = 0;
  6094. BizzData[b][BizzRequestStock] = 0;
  6095. BizzData[b][IsSpecial] = 0;
  6096. BizzData[b][BizzOwnerSQLID] = 0;
  6097. BizzData[b][InteriorID] = 0;
  6098. BizzData[b][BizzVW] = 0;
  6099. BizzData[b][ExitVW] = 0;
  6100. BizzData[b][BizzPickup] = 0;
  6101. BizzData[b][BizzLabel] = Text3D:INVALID_3DTEXT_ID;
  6102. BizzData[b][BizzLights] = false;
  6103. for(new x = 0; x < 4; x++)
  6104. {
  6105. if(BizzData[b][BizzActorSpawned][x] == 1) DestroyActor(BizzData[b][BizzActor][x]);
  6106. BizzData[b][BizzActor][x] = -1;
  6107. BizzData[b][BizzActorSpawned][x] = 0;
  6108. BizzData[b][BizzActorSkin][x] = 0;
  6109. BizzData[b][BizzActorX][x] = 0;
  6110. BizzData[b][BizzActorY][x] = 0;
  6111. BizzData[b][BizzActorZ][x] = 0;
  6112. BizzData[b][BizzActorAngle][x] = 0;
  6113. BizzData[b][BizzActorAnim][x] = -1;
  6114. }
  6115. }
  6116. mysql_tquery(conn, "SELECT * FROM bizz", "LoadBizzes");
  6117. SetTimer("ProcessBKeys", 1000, 0);
  6118. SendClientMessage(playerid, COLOR_WHITE, "Todas as empresas foram {44C300}recarregadas.");
  6119. AdminLog(playerid, 0, "", "Reloaded todas as empresas do banco de dados");
  6120. return true;
  6121. }
  6122. CMD:buybizz(playerid, params[])
  6123. {
  6124. if(!Logged{playerid}) return true;
  6125. new bizzCount = 0;
  6126. for(new biz = 0; biz < MAX_BIZZ_PER_PLAYER; biz++)
  6127. {
  6128. if(PlayerBizzID[playerid][biz] != -1)
  6129. {
  6130. bizzCount ++;
  6131. }
  6132. }
  6133. if(bizzCount +1 > MAX_BIZZ_PER_PLAYER) return SysMsg(playerid,"Você não pode ter mais negócios.");
  6134. for(new h = 0; h < MAX_BIZZ; h++)
  6135. {
  6136. if(IsPlayerInRangeOfPoint(playerid,2.5,BizzData[h][oPosX],BizzData[h][oPosY],BizzData[h][oPosZ]))
  6137. {
  6138. if(BizzData[h][BizzOwnerSQLID] == 0)
  6139. {
  6140. if(Cash[playerid] < BizzData[h][BizzPrice]) return SysMsg(playerid,"Você não tem dinheiro suficiente para comprar este negócio.");
  6141. BizzData[h][BizzOwnerSQLID] = SQLID[playerid];
  6142. MySQLUpdateInt(BizzData[h][BizzSQLID], "OwnerSQLID", SQLID[playerid], "bizz");
  6143. GivePlayerCash(playerid, -BizzData[h][BizzPrice]);
  6144. for(new i = 0; i < MAX_BIZZ_PER_PLAYER; i++)
  6145. {
  6146. if(PlayerBizzID[playerid][i] == -1)
  6147. {
  6148. PlayerBizzID[playerid][i] = h;
  6149. break;
  6150. }
  6151. }
  6152. UpdateBizzLabel(h);
  6153. SendClientMessageF(playerid,COLOR_GOLD,"Você comprou %s por $%s.",BizzData[h][BizzDescription],format_cash(BizzData[h][BizzPrice]));
  6154. SendClientMessageF(playerid,COLOR_GOLD,"Agora vai receber um extra de $%s Todos os payday.",format_cash(BizzData[h][Payout]));
  6155. ShowInfoText(playerid,"~g~business ACQUIRED",5000);
  6156. UnlockAchievement(playerid, 59);
  6157. break;
  6158. }
  6159. else if(BizzData[h][BizzOwnerSQLID] == -5) return SysMsg(playerid,"Este negócio está atualmente nas mãos da Silver Trading, confira lá para ver se está à venda.");
  6160. else return SysMsg(playerid,"Este negócio não está à venda.");
  6161. }
  6162. }
  6163. return true;
  6164. }
  6165. CMD:sellbizz(playerid, params[])
  6166. {
  6167. if(!Logged{playerid}) return true;
  6168. new bizzCount = 0;
  6169. for(new biz = 0; biz < MAX_BIZZ_PER_PLAYER; biz++)
  6170. {
  6171. if(PlayerBizzID[playerid][biz] != -1)
  6172. {
  6173. bizzCount ++;
  6174. }
  6175. }
  6176. if(bizzCount == 0) return SysMsg(playerid,"Você não tem empresas para vender.");
  6177. new bool:soldBizz = false;
  6178. for(new h = 0; h < MAX_BIZZ; h++)
  6179. {
  6180. if(IsPlayerInRangeOfPoint(playerid, 3.5, BizzData[h][oPosX], BizzData[h][oPosY], BizzData[h][oPosZ]))
  6181. {
  6182. for(new b = 0; b < MAX_BIZZ_PER_PLAYER; b++)
  6183. {
  6184. if(PlayerBizzID[playerid][b] == h)
  6185. {
  6186. new bizzValue = BizzData[h][BizzPrice] / 2;
  6187. if(sscanf(params, "s[8]", params)) return SendClientMessageF(playerid, COLOR_WHITE, "Use [/venderbizz confirmar] para confirmar que você deseja vender %s por $%s.", BizzData[h][BizzDescription], format_cash(bizzValue));
  6188. if(strmatch(params, "confirmar"))
  6189. {
  6190. GivePlayerCash(playerid, bizzValue);
  6191. for(new id = 0; id < MAX_BIZZ_PER_PLAYER; id++)
  6192. {
  6193. if(PlayerBizzID[playerid][id] == h)
  6194. {
  6195. PlayerBizzID[playerid][id] = -1;
  6196. break;
  6197. }
  6198. }
  6199. BizzData[h][BizzOwnerSQLID] = 0;
  6200. MySQLUpdateInt(BizzData[h][BizzSQLID], "OwnerSQLID", 0, "bizz");
  6201. mysql_format(conn, mquery, sizeof(mquery), "DELETE FROM bizzmods WHERE BizzID = %i", BizzData[h][BizzSQLID]);
  6202. mysql_pquery(conn, mquery);
  6203. if(MySpawnID[playerid] == 7 && BizzData[h][BizzSQLID] == BizzSpawn[playerid])
  6204. {
  6205. MySpawnID[playerid] = 1;
  6206. BizzSpawn[playerid] = 0;
  6207. mysql_pqueryf(conn, mquery, "UPDATE players SET MySpawnID = %i, BizzSpawn = %i WHERE id = %i", MySpawnID[playerid], BizzSpawn[playerid], SQLID[playerid]);
  6208. }
  6209. UpdateBizzLabel(h);
  6210. SendClientMessageF(playerid, COLOR_GOLD, "Você vendeu seu negócio (%s) por $%s.",BizzData[h][BizzDescription],format_cash(bizzValue));
  6211. ShowInfoText(playerid,"~g~negócio vendido",5000);
  6212. soldBizz = true;
  6213. break;
  6214. }
  6215. }
  6216. }
  6217. }
  6218. }
  6219. if(soldBizz == false) SysMsg(playerid, "You are not at your business.");
  6220. return true;
  6221. }
  6222. //end of business commands
  6223. //==================== Fim ==================================//
  6224. //9 Clothing/holster commands
  6225. //Clothing/holster commands
  6226. CMD:clothing(playerid)
  6227. {
  6228. gstr[0] = EOS;
  6229. new count = 0;
  6230. for(new t; t < MAX_TOYS; t++)
  6231. {
  6232. if(ToyInfo[playerid][t][tMask] == 1)
  6233. {
  6234. if(!ToyInfo[playerid][t][MaskWorn]) format(sgstr, sizeof(sgstr), "%s\n", GetMaskDescription(ToyInfo[playerid][t][tModelID]));
  6235. else format(sgstr, sizeof(sgstr), "{2735FF}%s{FFFFFF}\n", GetMaskDescription(ToyInfo[playerid][t][tModelID]));
  6236. strcat(gstr, sgstr);
  6237. ClothingSelected[playerid][count] = ToyInfo[playerid][t][tID];
  6238. count ++;
  6239. }
  6240. }
  6241. if(count == 0) Dialog_Show(playerid, DIALOG_NONE, DIALOG_STYLE_MSGBOX, "Roupas - Error", "Você atualmente não possui nenhum objeto de roupa para usar.", "Fechar", "");
  6242. else Dialog_Show(playerid, ClothingMenu, DIALOG_STYLE_LIST, "Itens", gstr, "Selecionar", "Cancelar");
  6243. return true;
  6244. }
  6245. CMD:holster(playerid, params[])
  6246. {
  6247. if(!Logged{playerid}) return true;
  6248. if(GetFreeWeaponObjectIndex(playerid) == -1) return SysMsg(playerid, "Você tem atualmente muitas armas coldreed para coldre outro.");
  6249. if(GetPlayerWeapon(playerid) == 0) return SysMsg(playerid, "Você precisa estar segurando uma arma para coldre-lo.");
  6250. new test = 0;
  6251. new wep = GetPlayerWeapon(playerid);
  6252. for(new p; p < sizeof(unholsterWeap); p++)
  6253. {
  6254. if(wep == unholsterWeap[p])
  6255. {
  6256. return SysMsg(playerid, "Não pode guardar esta arma.");
  6257. }
  6258. }
  6259. if(WeaponData[playerid][GetWeaponSlot(wep)][Weapon] != wep) return SysMsg(playerid, "Esta arma não pode ser estofada devido a ser uma arma não permanente.");
  6260. new t = -1;
  6261. for(t = 0; t < MAX_TOYS; t++)
  6262. {
  6263. if(ToyInfo[playerid][t][tModelID] == dropObjectID[wep])
  6264. {
  6265. SetPVarInt(playerid, "isHolster", t);
  6266. for(new l; l < sizeof(HolsterTog); l++)
  6267. {
  6268. if(wep == HolsterTog[l])
  6269. {
  6270. if(IsHolsterTogged[playerid][GetWeaponSlot(wep)] == 1) format(gstr, sizeof(gstr), "{00FF00}Mostrar coldres %s{FFFFFF}\nColuna\nCabeça\nBraço esquerdo\nBraço direito\nMão esquerda\nMão direita\nCoxa esquerda\nCoxa direita\nPé esquerdo\nPé direito\nPanturilha direita\nPanturilha direita\nAntebraço esquerdo\nAntebraço direito\nOmbro esquerdo\nOmbro direito", WeaponNames[wep]);
  6271. else format(gstr, sizeof(gstr), "{FF0000}Ocultar coldre %s{FFFFFF}\nColuna\nCabeça\nBraço esquerdo\nBraço direito\nMão esquerda\nMão direita\nCoxa esquerda\nCoxa direita\nPé esquerdo\nPé direito\nPanturilha direita\nPanturilha direita\nAntebraço esquerdo\nAntebraço direito\nOmbro esquerdo\nOmbro direito", WeaponNames[wep]);
  6272. test = 1;
  6273. SetPVarInt(playerid, "isHolstered", 1);
  6274. }
  6275. }
  6276. break;
  6277. }
  6278. }
  6279. if(GetPVarType(playerid, "isHolster") == 0)
  6280. {
  6281. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM toys WHERE tPlayer = %i AND tModelID = %i", SQLID[playerid], dropObjectID[wep]);
  6282. mysql_pquery(conn, mquery, "NewHolsterCheck", "dd", playerid, wep);
  6283. }
  6284. if(test == 0) format(gstr, sizeof(gstr), "{FFFFFF}Coluna\nCabeça\nBraço esquerdo\nBraço direito\nMão esquerda\nMão direita\nCoxa esquerda\nCoxa direita\nPé esquerdo\nPé direito\nPanturilha direita\nPanturilha direita\nAntebraço esquerdo\nAntebraço direito\nOmbro esquerdo\nOmbro direito");
  6285. Dialog_Show(playerid, HolsterBone, DIALOG_STYLE_LIST, "{FFFFFF}Coldre | Selecione a parte.", gstr, "Selecionar", "");
  6286. format(gstr, sizeof(gstr), "Você optou por guardar o seu %s, por favor, selecione o osso que você deseja anexá-lo.", WeaponNames[wep]);
  6287. SendClientMessage(playerid, COLOR_YELLOW, gstr);
  6288. return true;
  6289. }
  6290. CMD:resetmask(playerid, params[])
  6291. {
  6292. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  6293. new playa = -1;
  6294. if(sscanf(params, "u", playa)) return SysMsg(playerid, "Use: /resetmask [playerid ou parte do nome]");
  6295. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  6296. gstr[0] = EOS;
  6297. new count = 0;
  6298. for(new t = 0; t < MAX_TOYS; t++)
  6299. {
  6300. if(ToyInfo[playa][t][tMask] == 1)
  6301. {
  6302. if(!ToyInfo[playa][t][MaskWorn]) format(gstr, sizeof(gstr), "%s%s (ID %i)\n", gstr, GetMaskDescription(ToyInfo[playa][t][tModelID]), ToyInfo[playa][t][tID]);
  6303. else format(gstr, sizeof(gstr), "%s{2735FF}%s{FFFFFF} (ID %i)\n", gstr, GetMaskDescription(ToyInfo[playa][t][tModelID]), ToyInfo[playa][t][tID]);
  6304. ClothingSelected[playerid][count] = ToyInfo[playa][t][tID];
  6305. count ++;
  6306. }
  6307. }
  6308. if(count == 0) return SendClientMessage(playerid, COLOR_WHITE, "Error:Que o jogador não tem objetos de vestuário.");
  6309. Dialog_Show(playerid, ClothingAdminReset, DIALOG_STYLE_LIST, "Redefinir escala de máscara", gstr, "Selecionar", "Cancelar");
  6310. ResettingMask[playerid] = playa;
  6311. return true;
  6312. }
  6313. CMD:resetallholsters(playerid, params[])
  6314. {
  6315. if(!Logged{playerid}) return true;
  6316. new conf[12];
  6317. if(sscanf(params, "s[12]", conf)) return SendSplitMessage(playerid, COLOR_WHITE, "Para redefinir todos os dados do holster, escreva '/resetallholsters confirmar'. Isso limpará as posições para cada arma anexada que você possui e você precisará relogar depois que estiver pronto.");
  6318. if(strmatch(conf, "confirm"))
  6319. {
  6320. mysql_format(conn, mquery, sizeof(mquery), "DELETE FROM toys WHERE tPlayer = %i AND tMask = 0", SQLID[playerid]);
  6321. mysql_pquery(conn, mquery);
  6322. SendClientMessage(playerid, COLOR_WHITE, "Você "COL_NICEGREEN"resetou{FFFFFF} todos os seus dados do coldre. Por favor, use /logout e re-selecionar seu personagem.");
  6323. return true;
  6324. }
  6325. return true;
  6326. }
  6327. CMD:editvest(playerid, params[])
  6328. {
  6329. if(!Logged{playerid}) return true;
  6330. if(AttachedObjects[playerid][7][aoModelID] == -1000 || AttachedObjects[playerid][7][aoModelID] == -1001)
  6331. {
  6332. for(new t = 0; t < MAX_TOYS; t++)
  6333. {
  6334. if(ToyInfo[playerid][t][tModelID] == AttachedObjects[playerid][7][aoModelID])
  6335. {
  6336. ToyBeingEdited[playerid] = t;
  6337. }
  6338. }
  6339. if(ToyBeingEdited[playerid] == -1) return SysMsg(playerid, "Ocorreu um erro and you cannot edit your vest.");
  6340. EditingAttachedObject[playerid] = 1;
  6341. EditAttachedObject(playerid, 7);
  6342. SendClientMessage(playerid, COLOR_WHITE, " ");
  6343. SendClientMessage(playerid, COLOR_WHITE, "Selecione uma opção de [Mover] [Girar] ou [Escala] então arraste o [X] [Y] e [Z] botões para editar.");
  6344. SendClientMessage(playerid, COLOR_WHITE, "Pressione o botão Save para terminar ou pressione a tecla de escape para cancelar.");
  6345. return true;
  6346. }
  6347. SysMsg(playerid, "Você não tem um colete.");
  6348. return true;
  6349. }
  6350. CMD:resetvest(playerid)
  6351. {
  6352. if(!Logged{playerid}) return true;
  6353. if(VestType[playerid] == 0) return SysMsg(playerid, "Você deve estar usando um colete para usar este comando.");
  6354. new Float:armor;
  6355. GetPlayerArmour(playerid, armor);
  6356. if(floatround(armor) == 0) return SysMsg(playerid, "Você deve estar usando um colete para usar este comando.");
  6357. mysql_format(conn, mquery, sizeof(mquery), "DELETE FROM toys WHERE tPlayer = %i AND tModelID = -1000 OR tPlayer = %i AND tModelID = -1001", SQLID[playerid], SQLID[playerid]);
  6358. mysql_pquery(conn, mquery);
  6359. for(new id = 0; id < MAX_TOYS; id++)
  6360. {
  6361. if(ToyInfo[playerid][id][tModelID] == -1000 || ToyInfo[playerid][id][tModelID] == -1001)
  6362. {
  6363. ClearToyData(playerid, id);
  6364. }
  6365. }
  6366. if(AttachedObjects[playerid][7][aoToyID] != 0)
  6367. {
  6368. RemovePlayerAttachedObject(playerid, 7);
  6369. AttachedObjects[playerid][7][aoScale][0] = 1.0;
  6370. AttachedObjects[playerid][7][aoScale][1] = 1.0;
  6371. AttachedObjects[playerid][7][aoScale][2] = 1.0;
  6372. AttachedObjects[playerid][7][aoOffset][0] = 0.0;
  6373. AttachedObjects[playerid][7][aoOffset][1] = 0.0;
  6374. AttachedObjects[playerid][7][aoOffset][2] = 0.0;
  6375. AttachedObjects[playerid][7][aoRot][0] = 0.0;
  6376. AttachedObjects[playerid][7][aoRot][1] = 0.0;
  6377. AttachedObjects[playerid][7][aoRot][2] = 0.0;
  6378. }
  6379. GivePlayerVest(playerid);
  6380. return true;
  6381. }
  6382. CMD:vestoff(playerid, params[])
  6383. {
  6384. new Float:armor;
  6385. GetPlayerArmour(playerid, armor);
  6386. if(armor == 0 && (AttachedObjects[playerid][7][aoModelID] == -1000 || AttachedObjects[playerid][7][aoModelID] == -1001))
  6387. {
  6388. RemovePlayerAttachedObject(playerid, 7);
  6389. AttachedObjects[playerid][7][aoModelID] = 0;
  6390. AttachedObjects[playerid][7][aoBone] = 0;
  6391. SendClientMessage(playerid, COLOR_WHITE, "> Vest Removed");
  6392. }
  6393. else return SysMsg(playerid, "Você não pode remover o objeto colete se você tiver alguma quantidade de armadura. Se você deseja tirar o colete, guarde-o em uma casa ou no porta-malas do veículo.");
  6394. return true;
  6395. }
  6396. CMD:removevest(playerid, params[]) return cmd_vestoff(playerid, params);
  6397. CMD:mask(playerid, params[])
  6398. {
  6399. if(!Logged{playerid}) return true;
  6400. if(Inventory[playerid][Mask] == 0) return SysMsg(playerid,"Você não tem uma máscara.");
  6401. if(PlayerImprisoned{playerid}) return SysMsg(playerid,"Você não pode se mascarar na prisão.");
  6402. if(IsPlayerMasked{playerid}) return SysMsg(playerid,"Você já está em máscaras. (/unmask)");
  6403. if((Faction[playerid] != FACTION_COP && Faction[playerid] != FACTION_RESEARCH) && PlayerLevel[playerid] < 8) return SysMsg(playerid, "Você precisa ter pelo menos o nível 8 para usar esse comando.");
  6404. foreach(new i: Player) if(i != playerid) if(ADuty[i] == 0) ShowPlayerNameTagForPlayer(i, playerid, 0);
  6405. MaskLabelNumber[playerid] = MaskStrangerNumber;
  6406. MaskStrangerNumber ++;
  6407. IsPlayerMasked{playerid} = true;
  6408. MaskHideName{playerid} = true;
  6409. FormatHealthLabelText(playerid, HealthVar[playerid], ArmourVar[playerid], 1);
  6410. mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO strangers (StrangerID, PlayerName, Timestamp, SQLID, IP) VALUES (%i, '%e', %i, %i, '%e')", MaskLabelNumber[playerid], GetName(playerid), gettime(), SQLID[playerid], PlayerIP[playerid]);
  6411. mysql_pquery(conn, mquery);
  6412. UnlockAchievement(playerid, 46);
  6413. format(gstr, sizeof(gstr), "* %s coloca uma máscara. *", NameRP(playerid));
  6414. ProxDetector(15.0, playerid,gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  6415. SendClientMessage(playerid, COLOR_LIGHTRED, "Você está agora mascarado, use /unmask para removê-lo.");
  6416. return true;
  6417. }
  6418. CMD:unmask(playerid, params[])
  6419. {
  6420. if(!Logged{playerid}) return true;
  6421. if(Inventory[playerid][Mask] == 0) return SysMsg(playerid,"Você não tem uma máscara.");
  6422. if(!IsPlayerMasked{playerid}) return SysMsg(playerid,"Você não está usando uma Máscara. (/mask)");
  6423. if(MaskHideName{playerid})
  6424. {
  6425. MaskHideName{playerid} = false;
  6426. MaskLabelNumber[playerid] = 0;
  6427. foreach(new i: Player)
  6428. {
  6429. if(i != playerid)
  6430. {
  6431. ShowPlayerNameTagForPlayer(i, playerid, 1);
  6432. }
  6433. }
  6434. }
  6435. DeleteMaskLabel(playerid);
  6436. format(gstr, sizeof(gstr),"* %s tira a máscara. *", NameRP(playerid));
  6437. ProxDetector(5.0,playerid,gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  6438. SendClientMessage(playerid, COLOR_LIGHTRED, "Você removeu sua máscara.");
  6439. IsPlayerMasked{playerid} = false;
  6440. return true;
  6441. }
  6442. //end of clothing/holster commands
  6443. //==================== Fim ==================================//
  6444. //10 Animation Commands
  6445. //Animation Commands
  6446. CMD:animlist(playerid, params[])
  6447. {
  6448. SendClientMessage(playerid,COLOR_YELLOW,"___________________________________________________________________________________________________________________");
  6449. SendClientMessage(playerid, COLOR_RED, "Available Animation comandos:");
  6450. SendClientMessage(playerid, COLOR_WHITE, "/caircosta /cairfrente /caircosta2 /ferido2 /metepe /empurrar /empurrarabaixado /renderse /bomba /bebado /rir /salda /cruzarbracos /deitar(2) /dormir /armagolpe");
  6451. SendClientMessage(playerid, COLOR_WHITE, "/basket /cabecada /medico /sprayanim /apontar /kungfu /box /colocandomascara /guardarcelular /pegarcelular /bat /acendercigarro /tapcig");
  6452. SendClientMessage(playerid, COLOR_WHITE, "/cobrar /crack /fumaranim /(sentarc)sentarcao /chat /dancar /xingar /strip /cover /vomitar /comendo /sentar(2) /recarregar /jogarperto ");
  6453. SendClientMessage(playerid, COLOR_WHITE, "/cobrirosto /maoestomago /rolartras /carjacked /carjack /cansado /tapavirando /sejogafrente /carrofechado /jogarlonge");
  6454. SendClientMessage(playerid, COLOR_WHITE, "/agitar /dedodomeio /gritando /faca /cop /cotovelada /joelhocabeca /chutepulando /bicuda /pegapeso /colocarnochao /sinaltransito ");
  6455. SendClientMessage(playerid, COLOR_WHITE, "/gopearnochao /aim /mijar /escorar /car /gcantar /bracobalcao /darbebida /lavarmaos /oculos /deitarcama");
  6456. SendClientMessage(playerid, COLOR_WHITE, "/passarcartao /abaixarmaodireita /taxid /taxie /cocarsaco /copmove /bravo /agitar2 /saque /cadeira");
  6457. SendClientMessage(playerid, COLOR_WHITE, "/fbeber /viratchau /rap /awwyeah /drogado /caixaeletronico /observado /gritar /olhavolta /afastar /espingarda");
  6458. SendClientMessage(playerid, COLOR_WHITE, "/taxi /trotar /sorrateiro /dj /halt /bracojanela /flex");
  6459. SendClientMessage(playerid,COLOR_YELLOW,"\n");
  6460. return true;
  6461. }
  6462. CMD:deitarcama(playerid, params[])
  6463. {
  6464. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6465. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6466. OnePlayAnim(playerid, "INT_HOUSE","BED_In_R",4.0,0,0,0,1,1); //CMD: /inbedleft
  6467. return true;
  6468. }
  6469. CMD:inbedright(playerid, params[])
  6470. {
  6471. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6472. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6473. OnePlayAnim(playerid, "INT_HOUSE","BED_In_L",4.0,0,0,0,1,1); //CMD: /inbedright
  6474. return true;
  6475. }
  6476. CMD:carjacked(playerid, params[])
  6477. {
  6478. if(isnull(params)) return SysMsg(playerid,"Use: /carjacked [1-2]");
  6479. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6480. switch(strval(params))
  6481. {
  6482. case 1: LoopingAnim(playerid,"PED","CAR_jackedLHS",4.0,0,1,1,1,0);
  6483. case 2: LoopingAnim(playerid,"PED","CAR_jackedRHS",4.0,0,1,1,1,0);
  6484. default: SysMsg(playerid,"Use: /carjacked [1-2 only]");
  6485. }
  6486. return true;
  6487. }
  6488. CMD:renderse(playerid, params[])
  6489. {
  6490. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6491. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6492. LoopingAnim(playerid, "ROB_BANK","SHP_HandsUp_Scr", 4.0, 0, 1, 1, 1, 0);
  6493. return true;
  6494. }
  6495. CMD:pegarcelular(playerid, params[])
  6496. {
  6497. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6498. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6499. SetPlayerSpecialAction(playerid,SPECIAL_ACTION_USECELLPHONE);
  6500. if(AttachedObjects[playerid][6][aoModelID] != 0)
  6501. {
  6502. RemovePlayerAttachedObject(playerid, 6);
  6503. }
  6504. AttachedObjects[playerid][6][aoModelID] = 330;
  6505. AttachedObjects[playerid][6][aoBone] = 6;
  6506. SetPlayerAttachedObject(playerid, 6, 330, 6);
  6507. return true;
  6508. }
  6509. CMD:guardarcelular(playerid, params[])
  6510. {
  6511. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6512. SetPlayerSpecialAction(playerid,SPECIAL_ACTION_STOPUSECELLPHONE);
  6513. RemovePlayerAttachedObject(playerid, 6);
  6514. AttachedObjects[playerid][6][aoModelID] = 0;
  6515. AttachedObjects[playerid][6][aoBone] = 0;
  6516. return true;
  6517. }
  6518. CMD:bebado(playerid, params[])
  6519. {
  6520. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6521. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6522. LoopingAnim(playerid,"PED","WALK_DRUNK",4.1,1,1,1,1,1);
  6523. return true;
  6524. }
  6525. CMD:bomba(playerid, params[])
  6526. {
  6527. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6528. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6529. ClearAnimations(playerid);
  6530. LoopingAnim(playerid, "BOMBER","BOM_Plant_Loop",4.0,1,0,0,1,0); // Place Bomb
  6531. return true;
  6532. }
  6533. CMD:rir(playerid, params[])
  6534. {
  6535. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6536. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6537. OnePlayAnim(playerid, "RAPPING", "Laugh_01", 4.0, 0, 0, 0, 0, 0); // Laugh
  6538. return true;
  6539. }
  6540. CMD:chorar(playerid)
  6541. {
  6542. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6543. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6544. OnePlayAnim(playerid,"GRAVEYARD","mrnM_loop", 4.0, 1, 0, 0, 0, 0);
  6545. return true;
  6546. }
  6547. CMD:colocandomascara(playerid, params[])
  6548. {
  6549. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6550. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6551. OnePlayAnim(playerid, "SHOP", "ROB_Shifty", 4.0, 0, 0, 0, 0, 0); // Rob Lookout
  6552. return true;
  6553. }
  6554. CMD:apontar(playerid, params[])
  6555. {
  6556. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6557. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6558. LoopingAnim(playerid, "SHOP", "ROB_Loop_Threat", 4.0, 1, 0, 0, 0, 0); // Rob
  6559. return true;
  6560. }
  6561. CMD:cruzarbracos(playerid, params[])
  6562. {
  6563. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6564. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6565. LoopingAnim(playerid, "COP_AMBIENT", "Coplook_loop", 4.0, 0, 1, 1, 1, -1); // Arms crossed
  6566. return true;
  6567. }
  6568. CMD:deitar(playerid, params[])
  6569. {
  6570. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6571. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6572. LoopingAnim(playerid,"BEACH", "bather", 4.0, 1, 0, 0, 0, 0); // Lay down
  6573. return true;
  6574. }
  6575. CMD:cover(playerid, params[])
  6576. {
  6577. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6578. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6579. LoopingAnim(playerid, "ped", "cower", 3.0, 1, 0, 0, 0, 0); // Taking Cover
  6580. return true;
  6581. }
  6582. CMD:vomitar(playerid, params[])
  6583. {
  6584. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6585. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6586. OnePlayAnim(playerid, "FOOD", "EAT_Vomit_P", 3.0, 0, 0, 0, 0, 0); // Vomit
  6587. return true;
  6588. }
  6589. CMD:comendo(playerid, params[])
  6590. {
  6591. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6592. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6593. OnePlayAnim(playerid, "FOOD", "EAT_Burger", 3.0, 0, 0, 0, 0, 0); // Eat Burger
  6594. return true;
  6595. }
  6596. CMD:acenar(playerid, params[])
  6597. {
  6598. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6599. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6600. LoopingAnim(playerid, "ON_LOOKERS", "wave_loop", 4.0, 1, 0, 0, 0, 0); // Wave
  6601. return true;
  6602. }
  6603. CMD:acenar2(playerid, params[])
  6604. {
  6605. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6606. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6607. LoopingAnim(playerid, "KISSING", "gfwave2", 4.0, 1, 0, 0, 0, 0);
  6608. return true;
  6609. }
  6610. CMD:slapass(playerid, params[])
  6611. {
  6612. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6613. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6614. OnePlayAnim(playerid, "SWEET", "sweet_ass_slap", 4.0, 0, 0, 0, 0, 0);
  6615. return true;
  6616. }
  6617. CMD:cobrar(playerid, params[])
  6618. {
  6619. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6620. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6621. OnePlayAnim(playerid, "DEALER", "DEALER_DEAL", 4.0, 0, 0, 0, 0, 0);
  6622. return true;
  6623. }
  6624. CMD:crack(playerid, params[])
  6625. {
  6626. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6627. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6628. LoopingAnim(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
  6629. return true;
  6630. }
  6631. CMD:ferido(playerid, params[])
  6632. {
  6633. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6634. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6635. LoopingAnim(playerid, "CRACK", "crckidle1", 4.0, 1, 0, 0, 0, 0);
  6636. return true;
  6637. }
  6638. CMD:dormir(playerid, params[])
  6639. {
  6640. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6641. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6642. LoopingAnim(playerid, "CRACK", "crckidle2", 4.0, 1, 0, 0, 0, 0);
  6643. return true;
  6644. }
  6645. CMD:fumaranim(playerid, params[])
  6646. {
  6647. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6648. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6649. if(isnull(params)) return SysMsg(playerid,"Use: /fumaranim [1-4]");
  6650. switch(strval(params))
  6651. {
  6652. case 1: LoopingAnim(playerid,"SMOKING", "M_smklean_loop", 4.0, 1, 0, 0, 0, 0);
  6653. case 2: LoopingAnim(playerid,"SMOKING", "F_smklean_loop", 4.0, 1, 0, 0, 0, 0);
  6654. case 3: LoopingAnim(playerid,"SMOKING","M_smkstnd_loop", 4.0, 1, 0, 0, 0, 0);
  6655. case 4: LoopingAnim(playerid,"SMOKING","M_smk_out", 4.0, 1, 0, 0, 0, 0);
  6656. default: SysMsg(playerid,"Use: /fumaranim [1-4]");
  6657. }
  6658. return true;
  6659. }
  6660. CMD:sentarchao(playerid, params[])
  6661. {
  6662. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6663. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6664. LoopingAnim(playerid,"BEACH", "ParkSit_M_loop", 4.0, 1, 0, 0, 0, 0);
  6665. return true;
  6666. }
  6667. CMD:sentarc(playerid, params[]) return cmd_sentarchao(playerid, params);
  6668. CMD:chat(playerid, params[])
  6669. {
  6670. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6671. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6672. LoopingAnim(playerid,"PED","IDLE_CHAT",4.0,1,0,0,1,1);
  6673. return true;
  6674. }
  6675. CMD:xingar(playerid, params[])
  6676. {
  6677. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6678. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6679. OnePlayAnim(playerid,"PED","fucku",4.0,0,0,0,0,0);
  6680. return true;
  6681. }
  6682. CMD:fucku2(playerid, params[])
  6683. {
  6684. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6685. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6686. OnePlayAnim(playerid, "RIOT", "riot_fuku", 4.0, 0, 0, 0, 0, 0);
  6687. return true;
  6688. }
  6689. CMD:kungfu(playerid, params[])
  6690. {
  6691. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6692. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6693. if(!FightStyleLearned[playerid]{FS_KUNGFU}) return SysMsg(playerid,"You must learn Kung Fu primeiro.");
  6694. LoopingAnim(playerid,"PARK","Tai_Chi_Loop",4.0,1,0,0,0,0);
  6695. return true;
  6696. }
  6697. CMD:sentar(playerid, params[])
  6698. {
  6699. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6700. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6701. LoopingAnim(playerid,"PED","SEAT_down",4.1,0,0,0,1,0);
  6702. return true;
  6703. }
  6704. CMD:fsentar(playerid)
  6705. {
  6706. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6707. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6708. LoopingAnim(playerid,"SUNBATHE","SBATHE_F_LieB2Sit",4.1,0,0,0,1,0);
  6709. return true;
  6710. }
  6711. CMD:eatsit(playerid)
  6712. {
  6713. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6714. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6715. LoopingAnim(playerid, "FOOD", "FF_Sit_Loop", 4.0, 1, 0, 0, 0, 0);
  6716. return true;
  6717. }
  6718. CMD:bbat(playerid, params[])
  6719. {
  6720. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6721. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6722. if(isnull(params)) return SysMsg(playerid,"Use: /bbat [1-2]");
  6723. switch(strval(params))
  6724. {
  6725. case 1: LoopingAnim(playerid, "CRACK", "Bbalbat_Idle_01",4.0,1,0,0,0,0);
  6726. case 2: LoopingAnim(playerid, "CRACK", "Bbalbat_Idle_02",4.0,1,0,0,0,0);
  6727. }
  6728. return true;
  6729. }
  6730. CMD:seat(playerid, params[]) return cmd_sentar(playerid, params);
  6731. CMD:fseat(playerid) return cmd_fsentar(playerid);
  6732. CMD:sinaltransito(playerid, params[])
  6733. {
  6734. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6735. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6736. if(isnull(params)) return SysMsg(playerid,"Use: /direct [1-4]");
  6737. switch(strval(params))
  6738. {
  6739. case 1: LoopingAnim(playerid, "POLICE","CopTraf_Come",4.0,1,0,0,0,0);
  6740. case 2: LoopingAnim(playerid, "POLICE","CopTraf_Away",4.0,1,0,0,0,0);
  6741. case 3: LoopingAnim(playerid, "POLICE","CopTraf_Stop",4.0,1,0,0,0,0);
  6742. case 4: LoopingAnim(playerid, "POLICE","CopTraf_Left",4.0,1,0,0,0,0);
  6743. default: SysMsg(playerid,"Use: /direct [1-4]");
  6744. }
  6745. return true;
  6746. }
  6747. CMD:oculos(playerid, params[])
  6748. {
  6749. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6750. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6751. OnePlayAnim(playerid, "goggles","goggles_put_on",4.0,0,0,0,0,0);
  6752. return true;
  6753. }
  6754. CMD:sit2(playerid, params[])
  6755. {
  6756. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6757. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6758. LoopingAnim(playerid, "INT_HOUSE","LOU_In",4.0,0,0,0,1,0);
  6759. return true;
  6760. }
  6761. CMD:cadeira(playerid, params[])
  6762. {
  6763. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6764. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6765. if(isnull(params)) return SysMsg(playerid,"Use: /cadeira [1-6]");
  6766. switch(strval(params))
  6767. {
  6768. case 1: LoopingAnim(playerid, "INT_OFFICE", "OFF_Sit_Type_Loop", 4.0, 1, 0, 0, 1, 0);
  6769. case 2: LoopingAnim(playerid, "INT_OFFICE", "OFF_Sit_Bored_Loop", 4.0, 1, 0, 0, 1, 0);
  6770. case 3: LoopingAnim(playerid, "INT_OFFICE", "OFF_Sit_In", 4.0, 0, 0, 0, 1, 1);
  6771. case 4: LoopingAnim(playerid, "JST_BUISNESS", "girl_02", 4.0, 0, 0, 0, 1, 1);
  6772. case 5: LoopingAnim(playerid, "MISC", "seat_talk_01", 4.0, 0, 0, 0, 1, 1);
  6773. case 6: LoopingAnim(playerid, "MISC", "seat_talk_02", 4.0, 0, 0, 0, 1, 1);
  6774. default: SysMsg(playerid,"Use: /chairsit [1-6]");
  6775. }
  6776. return true;
  6777. }
  6778. CMD:caircosta(playerid, params[])
  6779. {
  6780. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6781. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6782. if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid, "You may not perform this action in a vehicle.");
  6783. LoopingAnim(playerid,"PED","KO_skid_front",4.1,0,1,1,1,0);
  6784. return true;
  6785. }
  6786. CMD:caircosta2(playerid, params[])
  6787. {
  6788. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6789. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6790. if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid, "You may not perform this action in a vehicle.");
  6791. LoopingAnim(playerid,"PED", "BIKE_fall_off",4.1,0,1,1,1,0);
  6792. return true;
  6793. }
  6794. CMD:cairfrente(playerid, params[])
  6795. {
  6796. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6797. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6798. LoopingAnim(playerid, "PED","FLOOR_hit_f", 4.0, 1, 0, 0, 0, 0);
  6799. return true;
  6800. }
  6801. CMD:injured(playerid, params[])
  6802. {
  6803. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6804. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6805. OnePlayAnim(playerid, "SWEET", "Sweet_injuredloop", 4.0, 1, 0, 0, 0, 0);
  6806. return true;
  6807. }
  6808. CMD:salda(playerid, params[])
  6809. {
  6810. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6811. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6812. if(isnull(params)) return SysMsg(playerid,"Use: /salda [1-3]");
  6813. switch(strval(params))
  6814. {
  6815. case 1: OnePlayAnim(playerid,"GANGS","hndshkba",4.0,0,0,0,0,0);
  6816. case 2: OnePlayAnim(playerid,"GANGS","hndshkda",4.0,0,0,0,0,0);
  6817. case 3: OnePlayAnim(playerid,"GANGS","hndshkfa_swt",4.0,0,0,0,0,0);
  6818. default: SysMsg(playerid,"Use: /salda [1-3]");
  6819. }
  6820. return true;
  6821. }
  6822. CMD:gcantar(playerid, params[])
  6823. {
  6824. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6825. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6826. if(isnull(params)) return SysMsg(playerid, "Use: /gsign [1-10]");
  6827. switch(strval(params))
  6828. {
  6829. case 1: OnePlayAnim(playerid, "GHANDS", "gsign1", 3.5, 0, 1, 1, 1, 1);
  6830. case 2: OnePlayAnim(playerid, "GHANDS", "gsign1LH", 3.5, 0, 1, 1, 1, 1);
  6831. case 3: OnePlayAnim(playerid, "GHANDS", "gsign2", 3.5, 0, 1, 1, 1, 1);
  6832. case 4: OnePlayAnim(playerid, "GHANDS", "gsign2LH", 3.5, 0, 1, 1, 1, 1);
  6833. case 5: OnePlayAnim(playerid, "GHANDS", "gsign3", 3.5, 0, 1, 1, 1, 1);
  6834. case 6: OnePlayAnim(playerid, "GHANDS", "gsign3LH", 3.5, 0, 1, 1, 1, 1);
  6835. case 7: OnePlayAnim(playerid, "GHANDS", "gsign4", 3.5, 0, 1, 1, 1, 1);
  6836. case 8: OnePlayAnim(playerid, "GHANDS", "gsign4LH", 3.5, 0, 1, 1, 1, 1);
  6837. case 9: OnePlayAnim(playerid, "GHANDS", "gsign5", 3.5, 0, 1, 1, 1, 1);
  6838. case 10: OnePlayAnim(playerid, "GHANDS", "gsign5LH", 3.5, 0, 1, 1, 1, 1);
  6839. default: cmd_gcantar(playerid, "");
  6840. }
  6841. return true;
  6842. }
  6843. CMD:salute(playerid)
  6844. {
  6845. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6846. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6847. OnePlayAnim(playerid, "GHANDS", "gsign5LH", 3.5, 0, 0, 0, 0, 0);
  6848. return true;
  6849. }
  6850. CMD:rap(playerid, params[])
  6851. {
  6852. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6853. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6854. if(isnull(params)) return SysMsg(playerid,"Use: /rap [1-4]");
  6855. switch(strval(params))
  6856. {
  6857. case 1: LoopingAnim(playerid,"RAPPING","RAP_A_Loop",4.0,1,0,0,0,0);
  6858. case 2: LoopingAnim(playerid,"RAPPING","RAP_C_Loop",4.0,1,0,0,0,0);
  6859. case 3: LoopingAnim(playerid,"GANGS","prtial_gngtlkD",4.0,1,0,0,0,0);
  6860. case 4: LoopingAnim(playerid,"GANGS","prtial_gngtlkH",4.0,1,0,0,1,1);
  6861. default: SysMsg(playerid,"Use: /rap [1-4]");
  6862. }
  6863. return true;
  6864. }
  6865. CMD:empurrar(playerid, params[])
  6866. {
  6867. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6868. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6869. OnePlayAnim(playerid,"GANGS","shake_cara",4.0,0,0,0,0,0);
  6870. return true;
  6871. }
  6872. CMD:metepe(playerid, params[])
  6873. {
  6874. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6875. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6876. OnePlayAnim(playerid,"POLICE","Door_Kick",4.0,0,0,0,0,0);
  6877. return true;
  6878. }
  6879. CMD:empurrarabaixado(playerid, params[])
  6880. {
  6881. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6882. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6883. OnePlayAnim(playerid,"GANGS","shake_carSH",4.0,0,0,0,0,0);
  6884. return true;
  6885. }
  6886. CMD:sprayanim(playerid, params[])
  6887. {
  6888. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6889. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6890. OnePlayAnim(playerid,"SPRAYCAN","spraycan_full",4.0,0,0,0,0,0);
  6891. return true;
  6892. }
  6893. CMD:cabecada(playerid, params[])
  6894. {
  6895. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6896. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6897. OnePlayAnim(playerid,"WAYFARER","WF_Fwd",4.0,0,0,0,0,0);
  6898. return true;
  6899. }
  6900. CMD:medico(playerid, params[])
  6901. {
  6902. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6903. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6904. OnePlayAnim(playerid,"MEDIC","CPR",4.0,0,0,0,0,0);
  6905. return true;
  6906. }
  6907. CMD:cobrirosto(playerid, params[])
  6908. {
  6909. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6910. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6911. LoopingAnim(playerid,"PED","KO_shot_face",4.0,0,1,1,1,0);
  6912. return true;
  6913. }
  6914. CMD:maoestomago(playerid, params[])
  6915. {
  6916. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6917. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6918. LoopingAnim(playerid,"PED","KO_shot_stom",4.0,0,1,1,1,0);
  6919. return true;
  6920. }
  6921. CMD:sejogafrente(playerid, params[])
  6922. {
  6923. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6924. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6925. LoopingAnim(playerid,"PED","EV_dive",4.0,0,1,1,1,0);
  6926. return true;
  6927. }
  6928. CMD:cansado(playerid, params[])
  6929. {
  6930. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6931. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6932. LoopingAnim(playerid,"FAT","IDLE_tired",3.0,1,0,0,0,0);
  6933. return true;
  6934. }
  6935. CMD:tapavirando(playerid, params[])
  6936. {
  6937. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6938. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6939. OnePlayAnim(playerid,"PED","BIKE_elbowL",4.0,0,0,0,0,0);
  6940. return true;
  6941. }
  6942. CMD:rolartras(playerid)
  6943. {
  6944. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6945. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6946. LoopingAnim(playerid,"PED","BIKE_fallR",4.0,0,1,1,1,0);
  6947. return true;
  6948. }
  6949. CMD:carrofechado(playerid, params[])
  6950. {
  6951. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6952. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6953. OnePlayAnim(playerid,"PED","CAR_doorlocked_LHS",4.0,0,0,0,0,0);
  6954. return true;
  6955. }
  6956. CMD:carjack(playerid, params[])
  6957. {
  6958. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6959. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6960. if(isnull(params)) return SysMsg(playerid,"Use: /carjack [1-4]");
  6961. switch(strval(params))
  6962. {
  6963. case 1: OnePlayAnim(playerid,"PED","CAR_pulloutL_LHS",4.0,0,0,0,0,0);
  6964. case 2: OnePlayAnim(playerid,"PED","CAR_pulloutL_RHS",4.0,0,0,0,0,0);
  6965. case 3: OnePlayAnim(playerid,"PED","CAR_pullout_LHS",4.0,0,0,0,0,0);
  6966. case 4: OnePlayAnim(playerid,"PED","CAR_pullout_RHS",4.0,0,0,0,0,0);
  6967. default: SysMsg(playerid,"Use: /carjack [1-4 only]");
  6968. }
  6969. return true;
  6970. }
  6971. CMD:hoodfrisked(playerid, params[])
  6972. {
  6973. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6974. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6975. LoopingAnim(playerid,"POLICE","crm_drgbst_01",4.0,0,1,1,1,0);
  6976. return true;
  6977. }
  6978. CMD:acendercigarro(playerid, params[])
  6979. {
  6980. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6981. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6982. OnePlayAnim(playerid,"SMOKING","M_smk_in",3.0,0,0,0,0,0);
  6983. return true;
  6984. }
  6985. CMD:tapcig(playerid, params[])
  6986. {
  6987. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6988. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  6989. OnePlayAnim(playerid,"SMOKING","M_smk_tap",3.0,0,0,0,0,0);
  6990. return true;
  6991. }
  6992. CMD:bracojanela(playerid, params[])
  6993. {
  6994. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  6995. if(IsBus(GetPlayerVehicleID(playerid))) return SysMsg(playerid, "You cannot use this animation in a bus.");
  6996. if(GetPlayerVehicleSeat(playerid) == 0 || GetPlayerVehicleSeat(playerid) == 2) OnePlayAnim(playerid, "CAR", "Tap_hand", 4.0,0,1,1,1,0);
  6997. else return SendClientMessage(playerid, COLOR_RED, "You must be in a vehicle and in the correct seat to use this animation.");
  6998. return true;
  6999. }
  7000. CMD:bat(playerid, params[])
  7001. {
  7002. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7003. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7004. LoopingAnim(playerid,"BASEBALL","Bat_IDLE",4.0,1,1,1,1,0);
  7005. return true;
  7006. }
  7007. CMD:box(playerid, params[])
  7008. {
  7009. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7010. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7011. if(!FightStyleLearned[playerid]{FS_BOXING}) return SysMsg(playerid,"You have not learned Boxing.");
  7012. LoopingAnim(playerid,"GYMNASIUM","GYMshadowbox",4.0,1,1,1,1,0);
  7013. return true;
  7014. }
  7015. CMD:deitar2(playerid, params[])
  7016. {
  7017. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7018. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7019. LoopingAnim(playerid,"SUNBATHE","Lay_Bac_in",3.0,0,1,1,1,0);
  7020. return true;
  7021. }
  7022. CMD:agitar(playerid, params[])
  7023. {
  7024. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7025. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7026. LoopingAnim(playerid,"RIOT","RIOT_CHANT",4.0,1,1,1,1,0);
  7027. return true;
  7028. }
  7029. CMD:dedodomeio(playerid, params[])
  7030. {
  7031. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7032. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7033. OnePlayAnim(playerid,"RIOT","RIOT_FUKU",2.0,0,0,0,0,0);
  7034. return true;
  7035. }
  7036. CMD:fuckyou(playerid, params[]) return cmd_dedodomeio(playerid, params);
  7037. CMD:gritando(playerid, params[])
  7038. {
  7039. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7040. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7041. LoopingAnim(playerid,"RIOT","RIOT_shout",4.0,1,0,0,0,0);
  7042. return true;
  7043. }
  7044. CMD:cop(playerid, params[])
  7045. {
  7046. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7047. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7048. OnePlayAnim(playerid,"SWORD","sword_block",50.0,0,1,1,1,1);
  7049. return true;
  7050. }
  7051. CMD:cotovelada(playerid, params[])
  7052. {
  7053. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7054. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7055. OnePlayAnim(playerid,"FIGHT_D","FightD_3",4.0,0,1,1,0,0);
  7056. return true;
  7057. }
  7058. CMD:joelhocabeca(playerid, params[])
  7059. {
  7060. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7061. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7062. OnePlayAnim(playerid,"FIGHT_D","FightD_2",4.0,0,1,1,0,0);
  7063. return true;
  7064. }
  7065. CMD:armagolpe(playerid, params[])
  7066. {
  7067. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7068. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7069. LoopingAnim(playerid,"FIGHT_D","FightD_IDLE",4.0,1,1,1,1,0);
  7070. return true;
  7071. }
  7072. CMD:gopearnochao(playerid, params[])
  7073. {
  7074. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7075. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7076. OnePlayAnim(playerid,"FIGHT_B","FightB_G",4.0,0,0,0,0,0);
  7077. return true;
  7078. }
  7079. CMD:chutepulando(playerid, params[])
  7080. {
  7081. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7082. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7083. OnePlayAnim(playerid,"FIGHT_C","FightC_M",4.0,0,1,1,0,0);
  7084. return true;
  7085. }
  7086. CMD:bicuda(playerid, params[])
  7087. {
  7088. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7089. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7090. OnePlayAnim(playerid,"FIGHT_D","FightD_G",4.0,0,0,0,0,0);
  7091. return true;
  7092. }
  7093. CMD:jogarperto(playerid, params[])
  7094. {
  7095. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7096. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7097. OnePlayAnim(playerid,"GRENADE","WEAPON_throwu",4.0,0,0,0,0,0);
  7098. return true;
  7099. }
  7100. CMD:jogarlonge(playerid, params[])
  7101. {
  7102. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7103. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7104. OnePlayAnim(playerid,"GRENADE","WEAPON_throw",4.0,0,0,0,0,0);
  7105. return true;
  7106. }
  7107. CMD:cruzabracos2(playerid, params[])
  7108. {
  7109. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7110. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7111. LoopingAnim(playerid,"DEALER","DEALER_IDLE",4.0,1,0,0,0,0);
  7112. return true;
  7113. }
  7114. CMD:mijar(playerid, params[])
  7115. {
  7116. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7117. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7118. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_PISSING);
  7119. return true;
  7120. }
  7121. CMD:piss(playerid, params[])
  7122. {
  7123. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7124. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7125. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_PISSING);
  7126. return true;
  7127. }
  7128. CMD:wank(playerid, params[])
  7129. {
  7130. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7131. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7132. LoopingAnim(playerid,"PAULNMAC","wank_loop",4.0,1,0,0,0,0);
  7133. if(IsInHouseID[playerid] != -1 && HouseData[IsInHouseID[playerid]][HouseOwnerSQLID] == SQLID[playerid]) UnlockAchievement(playerid, 33);
  7134. return true;
  7135. }
  7136. CMD:faca(playerid, params[])
  7137. {
  7138. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7139. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7140. if(isnull(params)) return SysMsg(playerid,"Use: /faca [1-4]");
  7141. switch(strval(params))
  7142. {
  7143. case 1: LoopingAnim(playerid,"KNIFE","KILL_Knife_Ped_Damage",4.0,0,1,1,1,0);
  7144. case 2: LoopingAnim(playerid,"KNIFE","KILL_Knife_Ped_Die",4.0,0,1,1,1,0);
  7145. case 3: OnePlayAnim(playerid,"KNIFE","KILL_Knife_Player",4.0,0,0,0,0,0);
  7146. case 4: LoopingAnim(playerid,"KNIFE","KILL_Partial",4.0,0,1,1,1,1);
  7147. default: SysMsg(playerid,"Use: /faca [1-4]");
  7148. }
  7149. return true;
  7150. }
  7151. CMD:basket(playerid, params[])
  7152. {
  7153. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7154. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7155. if(isnull(params)) return SysMsg(playerid,"Use: /basket [1-6]");
  7156. switch(strval(params))
  7157. {
  7158. case 1: LoopingAnim(playerid,"BSKTBALL","BBALL_idleloop",4.0,1,0,0,0,0);
  7159. case 2: OnePlayAnim(playerid,"BSKTBALL","BBALL_Jump_Shot",4.0,0,0,0,0,0);
  7160. case 3: OnePlayAnim(playerid,"BSKTBALL","BBALL_pickup",4.0,0,0,0,0,0);
  7161. case 4: LoopingAnim(playerid,"BSKTBALL","BBALL_run",4.1,1,1,1,1,1);
  7162. case 5: LoopingAnim(playerid,"BSKTBALL","BBALL_def_loop",4.0,1,0,0,0,0);
  7163. case 6: LoopingAnim(playerid,"BSKTBALL","BBALL_Dnk",4.0,1,0,0,0,0);
  7164. default: SysMsg(playerid,"Use: /basket [1-6]");
  7165. }
  7166. return true;
  7167. }
  7168. CMD:recarregar(playerid, params[])
  7169. {
  7170. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7171. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7172. if(isnull(params)) return SysMsg(playerid,"Use: /reload [pistol/rifle]");
  7173. if(strcmp("pistol", params, true) == 0) OnePlayAnim(playerid,"COLT45","colt45_reload",4.0,0,0,0,0,0);
  7174. else if(strcmp("rifle", params, true) == 0) OnePlayAnim(playerid,"UZI","UZI_reload",4.0,0,0,0,0,0);
  7175. else SysMsg(playerid,"Use: /reload [pistol/rifle]");
  7176. return true;
  7177. }
  7178. CMD:gwalk(playerid, params[])
  7179. {
  7180. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7181. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7182. if(isnull(params)) return SysMsg(playerid,"Use: /gwalk [1/2]");
  7183. if(strval(params)) LoopingAnim(playerid,"PED","WALK_gang1",4.1,1,1,1,1,1);
  7184. else if(strval(params)) LoopingAnim(playerid,"PED","WALK_gang2",4.1,1,1,1,1,1);
  7185. else SysMsg(playerid,"Use: /gwalk [1/2]");
  7186. return true;
  7187. }
  7188. CMD:aim(playerid, params[])
  7189. {
  7190. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7191. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7192. if(isnull(params)) return SysMsg(playerid,"Use: /aim [1-3]");
  7193. switch(strval(params))
  7194. {
  7195. case 1: LoopingAnim(playerid,"PED","gang_gunstand",4.0,1,1,1,1,1);
  7196. case 2: LoopingAnim(playerid,"PED","Driveby_L",4.0,0,1,1,1,1);
  7197. case 3: LoopingAnim(playerid,"PED","Driveby_R",4.0,0,1,1,1,1);
  7198. default: SysMsg(playerid,"Use: /aim [1-3]");
  7199. }
  7200. return true;
  7201. }
  7202. CMD:escorar(playerid, params[])
  7203. {
  7204. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7205. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7206. if(isnull(params)) return SysMsg(playerid,"Use: /escorar [1-4]");
  7207. switch(strval(params))
  7208. {
  7209. case 1: LoopingAnim(playerid,"GANGS","leanIDLE",4.0,0,1,1,1,0);
  7210. case 2: LoopingAnim(playerid,"MISC","Plyrlean_loop",4.0,0,1,1,1,0);
  7211. case 3: LoopingAnim(playerid,"RYDER","Van_Lean_R",4.0,0,1,1,1,0);
  7212. case 4: LoopingAnim(playerid,"GANGS","leanIDLE",4.0,0,0,1,1,1);
  7213. default: SysMsg(playerid,"Use: /escorar [1-4]");
  7214. }
  7215. return true;
  7216. }
  7217. CMD:car(playerid, params[])
  7218. {
  7219. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7220. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7221. if(isnull(params)) return SysMsg(playerid,"Use: /car [1-3]");
  7222. switch(strval(params))
  7223. {
  7224. case 1:
  7225. {
  7226. ClearAnimations(playerid);
  7227. LoopingAnim(playerid, "CAR", "Fixn_Car_Out", 4.1, 0, 1, 1, 1, 1); // Twice so that it applies.
  7228. SetTimerEx("CarAnim1", 125, false, "i", playerid);
  7229. SetTimerEx("CarAnim2", 1500, false, "i", playerid);
  7230. }
  7231. case 2: LoopingAnim(playerid, "CAR", "Fixn_Car_Out", 4.1, 0, 1, 1, 1, 1);
  7232. case 3: LoopingAnim(playerid, "CAR", "flag_drop", 4.1, 0, 1, 1, 1, 1);
  7233. default: SysMsg(playerid,"Use: /car [1-3 only]");
  7234. }
  7235. return true;
  7236. }
  7237. GREENSIDE::CarAnim1(playerid)
  7238. {
  7239. LoopingAnim(playerid, "CAR", "Fixn_Car_Out", 4.1, 0, 1, 1, 1, 1);
  7240. return true;
  7241. }
  7242. GREENSIDE::CarAnim2(playerid)
  7243. {
  7244. LoopingAnim(playerid,"CAR", "Fixn_Car_Loop", 4.0, 1, 0, 0, 0, 0);
  7245. return true;
  7246. }
  7247. CMD:clear(playerid, params[])
  7248. {
  7249. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7250. if(IsPlayerInAnyVehicle(playerid)) return true;
  7251. ClearAnimations(playerid);
  7252. OnePlayAnim(playerid, "CARRY", "crry_prtial", 1.0, 0, 0, 0, 0, 0);
  7253. return true;
  7254. }
  7255. CMD:strip(playerid, params[])
  7256. {
  7257. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7258. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7259. if(isnull(params)) return SysMsg(playerid,"Use: /strip [1-7]");
  7260. switch(strval(params))
  7261. {
  7262. case 1: LoopingAnim(playerid,"STRIP", "strip_A", 4.1, 1, 1, 1, 1, 1);
  7263. case 2: LoopingAnim(playerid,"STRIP", "strip_B", 4.1, 1, 1, 1, 1, 1);
  7264. case 3: LoopingAnim(playerid,"STRIP", "strip_C", 4.1, 1, 1, 1, 1, 1);
  7265. case 4: LoopingAnim(playerid,"STRIP", "strip_D", 4.1, 1, 1, 1, 1, 1);
  7266. case 5: LoopingAnim(playerid,"STRIP", "strip_E", 4.1, 1, 1, 1, 1, 1);
  7267. case 6: LoopingAnim(playerid,"STRIP", "strip_F", 4.1, 1, 1, 1, 1, 1);
  7268. case 7: LoopingAnim(playerid,"STRIP", "strip_G", 4.1, 1, 1, 1, 1, 1);
  7269. default: SysMsg(playerid,"Use: /strip [1-7 only]");
  7270. }
  7271. return true;
  7272. }
  7273. CMD:dancar(playerid, params[])
  7274. {
  7275. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7276. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7277. if(isnull(params)) return SysMsg(playerid,"Use: /dancar [1-11]");
  7278. switch(strval(params))
  7279. {
  7280. case 1: LoopingAnim(playerid,"DANCING", "DAN_Loop_A", 4.1, 1, 1, 1, 1, 1);
  7281. case 2: LoopingAnim(playerid,"DANCING", "dnce_M_a", 4.1, 1, 0, 0, 1, 1);
  7282. case 3: LoopingAnim(playerid,"DANCING", "dnce_M_b", 4.1, 1, 1, 1, 1, 1);
  7283. case 4: LoopingAnim(playerid,"DANCING", "dnce_M_c", 4.1, 1, 1, 1, 1, 1);
  7284. case 5: LoopingAnim(playerid,"DANCING", "dnce_M_d", 4.1, 1, 0, 0, 1, 1);
  7285. case 6: LoopingAnim(playerid,"DANCING", "dnce_M_e", 4.1, 1, 0, 0, 1, 1);
  7286. case 7: LoopingAnim(playerid,"DANCING", "bd_clap1", 4.1, 1, 1, 1, 1, 1);
  7287. case 8: SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE1);
  7288. case 9: SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE2);
  7289. case 10: SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE3);
  7290. case 11: SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE4);
  7291. default: SysMsg(playerid,"Use: /dancar [1-11]");
  7292. }
  7293. return true;
  7294. }
  7295. CMD:walk(playerid, params[])
  7296. {
  7297. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7298. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7299. if(isnull(params)) return SysMsg(playerid, "Use: /walk [1 - 10]");
  7300. switch(strval(params))
  7301. {
  7302. case 1: LoopingAnim(playerid,"PED","WALK_GANG1", 4.1, 1, 1, 1, 1, 1);
  7303. case 2: LoopingAnim(playerid,"PED","WALK_GANG2", 4.1, 1, 1, 1, 1, 1);
  7304. case 3: LoopingAnim(playerid,"PED","WALK_FAT", 4.1, 1, 1, 1, 1, 1);
  7305. case 4: LoopingAnim(playerid,"PED","WALK_FATOLD", 4.1, 1, 1, 1, 1, 1);
  7306. case 5: LoopingAnim(playerid,"PED","WALK_OLD", 4.1, 1, 1, 1, 1, 1);
  7307. case 6: LoopingAnim(playerid,"PED","WOMAN_WALKNORM", 4.1, 1, 1, 1, 1, 1);
  7308. case 7: LoopingAnim(playerid,"PED","WOMAN_WALKSEXY", 4.1, 1, 1, 1, 1, 1);
  7309. case 8: LoopingAnim(playerid,"MUSCULAR","MUSCLEWALK", 4.1, 1, 1, 1, 1, 1);
  7310. case 9: LoopingAnim(playerid,"PED","WALK_WUZI", 4.1, 1, 1, 1, 1, 1);
  7311. case 10: LoopingAnim(playerid, "PED", "WALK_civi", 4.1, 1, 1, 1, 1, 1);
  7312. default: SysMsg(playerid, "Use: /walk [1 - 10]");
  7313. }
  7314. return true;
  7315. }
  7316. CMD:bracobalcao(playerid, params[])
  7317. {
  7318. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7319. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7320. LoopingAnim(playerid, "BAR", "BARman_idle", 4.0, 1, 0, 0, 0, 0);
  7321. return true;
  7322. }
  7323. CMD:darbebida(playerid, params[])
  7324. {
  7325. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7326. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7327. OnePlayAnim(playerid, "BAR", "Barserve_give", 4.0, 0, 0, 0, 0, 0);
  7328. return true;
  7329. }
  7330. CMD:lavarmaos(playerid, params[])
  7331. {
  7332. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7333. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7334. LoopingAnim(playerid, "BD_FIRE", "wash_up", 4.0, 0, 0, 0, 0, 0);
  7335. return true;
  7336. }
  7337. CMD:pegapeso(playerid, params[])
  7338. {
  7339. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7340. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7341. OnePlayAnim(playerid, "Freeweights", "gym_free_pickup", 4.0, 0, 0, 0, 0, 0);
  7342. return true;
  7343. }
  7344. CMD:colocarnochao(playerid, params[])
  7345. {
  7346. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7347. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7348. OnePlayAnim(playerid, "Freeweights", "gym_free_putdown", 4.0, 0, 0, 0, 0, 0);
  7349. return true;
  7350. }
  7351. CMD:passarcartao(playerid, params[])
  7352. {
  7353. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7354. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7355. OnePlayAnim(playerid, "HEIST9", "Use_SwipeCard", 4.0, 0, 0, 0, 0, 0);
  7356. return true;
  7357. }
  7358. CMD:abaixarmaodireita(playerid, params[])
  7359. {
  7360. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7361. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7362. OnePlayAnim(playerid, "MISC", "Case_pickup", 4.0, 0, 0, 0, 0, 0);
  7363. return true;
  7364. }
  7365. CMD:taxid(playerid, params[])
  7366. {
  7367. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7368. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7369. LoopingAnim(playerid, "MISC", "Hiker_Pose", 3.5, 1, 0, 0, 0, 0);
  7370. return true;
  7371. }
  7372. CMD:taxie(playerid, params[])
  7373. {
  7374. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7375. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7376. LoopingAnim(playerid, "MISC", "Hiker_Pose_L", 3.5, 1, 0, 0, 0, 0);
  7377. return true;
  7378. }
  7379. CMD:cocarsaco(playerid, params[])
  7380. {
  7381. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7382. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7383. LoopingAnim(playerid, "MISC", "Scratchballs_01", 4.0, 1, 0, 0, 0, 0);
  7384. return true;
  7385. }
  7386. CMD:copmove(playerid, params[])
  7387. {
  7388. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7389. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7390. LoopingAnim(playerid, "POLICE", "Cop_move_FWD", 4.0, 1, 1, 1, 1, 1);
  7391. return true;
  7392. }
  7393. CMD:bravo(playerid, params[])
  7394. {
  7395. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7396. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7397. LoopingAnim(playerid, "RIOT", "RIOT_ANGRY", 4.0, 1, 0, 0, 0, 0);
  7398. return true;
  7399. }
  7400. CMD:agitar2(playerid, params[])
  7401. {
  7402. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7403. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7404. LoopingAnim(playerid, "RIOT", "RIOT_ANGRY_B", 4.0, 1, 0, 0, 0, 0);
  7405. return true;
  7406. }
  7407. CMD:saque(playerid, params[])
  7408. {
  7409. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7410. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7411. LoopingAnim(playerid, "ROB_BANK", "CAT_Safe_Rob", 4.0, 1, 0, 0, 0, 0);
  7412. return true;
  7413. }
  7414. CMD:fbeber(playerid, params[])
  7415. {
  7416. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7417. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7418. LoopingAnim(playerid, "BAR", "dnk_stndF_loop", 4.0, 1, 0, 0, 0, 0);
  7419. return true;
  7420. }
  7421. CMD:viratchau(playerid, params[])
  7422. {
  7423. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7424. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7425. OnePlayAnim(playerid, "BD_FIRE", "bd_gf_wave", 4.0, 0, 0, 0, 0, 0);
  7426. return true;
  7427. }
  7428. CMD:flex(playerid, params[])
  7429. {
  7430. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7431. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7432. if(isnull(params)) return SysMsg(playerid, "Use: /flex [1-2]");
  7433. switch(strval(params))
  7434. {
  7435. case 1: LoopingAnim(playerid, "benchpress", "gym_bp_celebrate", 4.1, 1, 0, 0, 0, 0);
  7436. case 2: OnePlayAnim(playerid, "Freeweights", "gym_free_celebrate", 4.1, 0, 0, 0, 0, 0);
  7437. default: SysMsg(playerid, "Use: /flex [1-2]");
  7438. }
  7439. return true;
  7440. }
  7441. CMD:awwyeah(playerid, params[])
  7442. {
  7443. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7444. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7445. OnePlayAnim(playerid, "CASINO", "manwinB", 4.1, 0, 0, 0, 0, 0);
  7446. return true;
  7447. }
  7448. CMD:drogado(playerid, params[])
  7449. {
  7450. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7451. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7452. if(isnull(params)) return SysMsg(playerid, "Use: /drogado [1-4]");
  7453. switch(strval(params))
  7454. {
  7455. case 1: LoopingAnim(playerid, "CRACK", "crckidle3", 4.1, 1, 0, 0, 0, 0);
  7456. case 2: LoopingAnim(playerid, "CRACK", "crckidle4", 4.1, 1, 0, 0, 0, 0);
  7457. case 3: LoopingAnim(playerid, "PAULNMAC", "pnm_loop_A", 4.1, 1, 0, 0, 0, 0);
  7458. case 4: LoopingAnim(playerid, "PAULNMAC", "pnm_loop_B", 4.1, 1, 0, 0, 0, 0);
  7459. default: SysMsg(playerid, "Use: /drogado [1-4]");
  7460. }
  7461. return true;
  7462. }
  7463. CMD:caixaeletronico(playerid, params[])
  7464. {
  7465. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7466. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7467. if(isnull(params)) return SysMsg(playerid, "Use: /caixaeletronico [1-2]");
  7468. switch(strval(params))
  7469. {
  7470. case 1: LoopingAnim(playerid, "INT_SHOP", "shop_cashier", 4.1, 1, 0, 0, 0, 0);
  7471. case 2: LoopingAnim(playerid, "SHOP", "shp_serve_loop", 4.1, 1, 0, 0, 0, 0);
  7472. default: SysMsg(playerid, "Use: /caixaeletronico [1-2]");
  7473. }
  7474. return true;
  7475. }
  7476. CMD:hegebeface(playerid, params[])
  7477. {
  7478. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7479. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7480. LoopingAnim(playerid, "PED", "facanger", 4.1, 1, 0, 0, 0, 0);
  7481. return true;
  7482. }
  7483. CMD:observado(playerid, params[])
  7484. {
  7485. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7486. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7487. OnePlayAnim(playerid, "ON_LOOKERS", "panic_point", 4.1, 0, 0, 0, 0, 0);
  7488. return true;
  7489. }
  7490. CMD:gritar(playerid, params[])
  7491. {
  7492. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7493. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7494. if(isnull(params)) return SysMsg(playerid, "Use: /shout [1-2]");
  7495. switch(strval(params))
  7496. {
  7497. case 1: OnePlayAnim(playerid, "ON_LOOKERS", "shout_01", 4.1, 0, 0, 0, 0, 0);
  7498. case 2: OnePlayAnim(playerid, "ON_LOOKERS", "shout_02", 4.1, 0, 0, 0, 0, 0);
  7499. default: SysMsg(playerid, "Use: /shout [1-2]");
  7500. }
  7501. return true;
  7502. }
  7503. CMD:olhavolta(playerid, params[])
  7504. {
  7505. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7506. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7507. LoopingAnim(playerid, "ON_LOOKERS", "lkaround_loop", 4.1, 1, 0, 0, 0, 0);
  7508. return true;
  7509. }
  7510. CMD:afastar(playerid, params[])
  7511. {
  7512. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7513. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7514. OnePlayAnim(playerid, "PED", "handscower", 4.1, 0, 0, 0, 0, 0);
  7515. return true;
  7516. }
  7517. CMD:espingarda(playerid, params[])
  7518. {
  7519. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7520. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7521. LoopingAnim(playerid, "PED", "idle_armed", 4.1, 1, 0, 0, 0, 0);
  7522. return true;
  7523. }
  7524. CMD:taxi(playerid, params[])
  7525. {
  7526. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7527. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7528. OnePlayAnim(playerid, "PED", "idle_taxi", 4.0, 0, 0, 0, 0, 0);
  7529. return true;
  7530. }
  7531. CMD:trotar(playerid, params[])
  7532. {
  7533. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7534. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7535. if(isnull(params)) return SysMsg(playerid, "Use: /trotar [1-2]");
  7536. switch(strval(params))
  7537. {
  7538. case 1: LoopingAnim(playerid, "PED", "jog_maleA", 4.1, 1, 1, 1, 1, 1);
  7539. case 2: LoopingAnim(playerid, "PED", "jog_femaleA", 4.1, 1, 1, 1, 1, 1);
  7540. default: SysMsg(playerid, "Use: /trotar [1-2]");
  7541. }
  7542. return true;
  7543. }
  7544. CMD:sorrateiro(playerid, params[])
  7545. {
  7546. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7547. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7548. LoopingAnim(playerid, "PED", "player_sneak", 4.1, 1, 1, 1, 0, 0);
  7549. return true;
  7550. }
  7551. CMD:dj(playerid, params[])
  7552. {
  7553. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7554. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7555. if(isnull(params)) return SysMsg(playerid, "Use: /dj [1-4]");
  7556. switch(strval(params))
  7557. {
  7558. case 1: LoopingAnim(playerid, "SCRATCHING", "scdlulp", 4.1, 1, 0, 0, 0, 0);
  7559. case 2: LoopingAnim(playerid, "SCRATCHING", "scdrdlp", 4.1, 1, 0, 0, 0, 0);
  7560. case 3: LoopingAnim(playerid, "SCRATCHING", "scdrulp", 4.1, 1, 0, 0, 0, 0);
  7561. case 4: LoopingAnim(playerid, "SCRATCHING", "scshrtl", 4.1, 1, 0, 0, 0, 0);
  7562. default: SysMsg(playerid, "Use: /dj [1-4]");
  7563. }
  7564. return true;
  7565. }
  7566. CMD:halt(playerid, params[])
  7567. {
  7568. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7569. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7570. OnePlayAnim(playerid, "SWAT", "swt_lkt", 4.1, 0, 0, 0, 0, 0);
  7571. return true;
  7572. }
  7573. CMD:blowjob(playerid, params[])
  7574. {
  7575. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido.");
  7576. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação.");
  7577. if(isnull(params)) return SysMsg(playerid, "Use: /blowjob [1-4]");
  7578. switch(strval(params))
  7579. {
  7580. case 1: LoopingAnim(playerid, "BLOWJOBZ", "BJ_COUCH_LOOP_W", 4.1, 1, 0, 0, 1, 1);
  7581. case 2: LoopingAnim(playerid, "BLOWJOBZ", "BJ_COUCH_LOOP_P", 4.1, 1, 0, 0, 1, 1);
  7582. case 3: LoopingAnim(playerid, "BLOWJOBZ", "BJ_STAND_LOOP_W", 4.1, 1, 0, 0, 1, 1);
  7583. case 4: LoopingAnim(playerid, "BLOWJOBZ", "BJ_STAND_LOOP_P", 4.1, 1, 0, 0, 1, 1);
  7584. default: SysMsg(playerid, "Use: /blowjob [1-4]");
  7585. }
  7586. return true;
  7587. }
  7588. CMD:facepalm(playerid, params[])
  7589. {
  7590. if(!Logged{playerid}) return true;
  7591. format(gstr, sizeof(gstr),"* %s suspira e coloca sua mão no rosto. *", NameRP(playerid));
  7592. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  7593. UnlockAchievement(playerid, 32);
  7594. if(!IsPlayerInAnyVehicle(playerid)) OnePlayAnim(playerid, "MISC", "plyr_shkhead", 1.25, 0, 0, 0, 0, 0);
  7595. return true;
  7596. }
  7597. CMD:breathe(playerid, params[])
  7598. {
  7599. new index = GetFreePlayerObjectIndex(playerid);
  7600. if(index == -1) return SysMsg(playerid, "Você não pode usar esse recurso como você tem muitos objetos anexados.");
  7601. SetPlayerAttachedObject(playerid, index, 18677, 2, 0, 0.17, -1.6, 0, 0, 0, 1, 1, 1);
  7602. SetTimerEx("remove_ostick", 3333, 0, "ii", playerid, index);
  7603. return true;
  7604. }
  7605. CMD:vape(playerid) return SysMsg(playerid, "Frick off, hecker.");
  7606. GREENSIDE::remove_ostick(playerid, index)
  7607. {
  7608. RemovePlayerAttachedObject(playerid, index);
  7609. return true;
  7610. }
  7611. //End of animations
  7612. //==================== Fim ==================================//
  7613. //11 Fishing
  7614. //Fishing
  7615. CMD:fish(playerid, params[])
  7616. {
  7617. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  7618. new fishingType = -1, v, Float:vPos[3], Float:ReeferPos[3];
  7619. GetVehiclePos(ReeferID(), ReeferPos[0], ReeferPos[1], ReeferPos[2]);
  7620. if(GetPlayerState(playerid) == 1 && (IsPlayerInRangeOfPoint(playerid,6.0,2111.0522,-98.3380,2.1039) || IsPlayerInRangeOfPoint(playerid, 6.0, -793.7495,-1947.7505,6.7726))) fishingType = 1;
  7621. if(fishingType == -1)
  7622. {
  7623. if(IsPlayerInAnyVehicle(playerid)) v = GetPlayerVehicleID(playerid);
  7624. else v = GetClosestVehicle(playerid);
  7625. if(v == INVALID_VEHICLE_ID || !IsBoat(v)) return SysMsg(playerid,"Você deve estar no local de pesca ou em um recife.");
  7626. GetVehiclePos(v, vPos[0], vPos[1], vPos[2]);
  7627. }
  7628. if(v == ReeferID()) fishingType = 2;
  7629. else if(IsOwnedCar(v) && IsBoat(v) && v != ReeferID()) fishingType = 3;
  7630. else if(IsPlayerInRangeOfPoint(playerid,5.0,ReeferPos[0], ReeferPos[1], ReeferPos[2]) && !IsPlayerInRangeOfPoint(playerid,6.0,2111.0522,-98.3380,2.1039)) fishingType = 2;
  7631. else if(IsPlayerInRangeOfPoint(playerid,5.0, vPos[0], vPos[1], vPos[2])) fishingType = 3;
  7632. if(fishingType == -1) return SysMsg(playerid,"Você deve estar no local de pesca ou em um recife.");
  7633. if(fishingType == 2 && IsPlayerInRangeOfPoint(playerid, 100.0, 2105.352050, -96.437431, 0.725863)) return SysMsg(playerid,"Por favor, leve o reefer para longe da doca antes de pescar.");
  7634. if(fishingType == 3 && IsPlayerInRangeOfPoint(playerid, 300.0, 2105.352050, -96.437431, 0.725863)) return SysMsg(playerid, "Por favor, leve o barco para longe da Baía Palomino Creek antes de pescar.");
  7635. if(Inventory[playerid][FishingPermit] == 0) return SysMsg(playerid,"Você não tem uma licença de pesca.");
  7636. if(Inventory[playerid][FishingRod] == 0) return SysMsg(playerid,"Você não tem uma vara de pescar.");
  7637. if(FishSpamTime[playerid] != 0) return SysMsg(playerid,"Por favor, aguarde antes de pescar novamente.");
  7638. if(Inventory[playerid][FishingBait] <= 0) return SysMsg(playerid,"Você não tem nenhuma isca, vá para a loja de pesca para comprar algumas.");
  7639. if(FishWeight[playerid][0] != -1 && FishWeight[playerid][1] != -1 && FishWeight[playerid][2] != -1 && FishWeight[playerid][3] != -1 && FishWeight[playerid][4] != -1) return SysMsg(playerid,"You can't hold anymore fish.");
  7640. FishingRodHealth[playerid] --;
  7641. MySQLUpdateInt(SQLID[playerid], "FishingRodHealth", FishingRodHealth[playerid], "players");
  7642. if(FishingRodHealth[playerid] <= 0 && Inventory[playerid][FishingRod] == 1)
  7643. {
  7644. Inventory[playerid][FishingRod] = 0;
  7645. FishingRodHealth[playerid] = 0;
  7646. MySQLUpdateInt(SQLID[playerid], "FishingRod", Inventory[playerid][FishingRod], "players");
  7647. format(gstr, sizeof(gstr),"* A vara de pesca de %s quebra em duas partes. *",NameRP(playerid));
  7648. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  7649. SendClientMessage(playerid,COLOR_DARKBLUE,"Sua vara de pescar quebrou ao meio devido suas condições.");
  7650. return true;
  7651. }
  7652. TogglePlayerControllable(playerid, 0);
  7653. if(AttachedObjects[playerid][7][aoModelID] == 0)
  7654. {
  7655. AttachedObjects[playerid][7][aoModelID] = 18632;
  7656. AttachedObjects[playerid][7][aoBone] = 6;
  7657. SetPlayerAttachedObject(playerid, 7, 18632, 6, 0.1, 0.05, 0, 0, 180, 180, 0);
  7658. }
  7659. Inventory[playerid][FishingBait] --;
  7660. MySQLUpdateInt(SQLID[playerid], "FishingBait", Inventory[playerid][FishingBait], "players");
  7661. new rand;
  7662. if(fishingType == 1)
  7663. {
  7664. rand = random(5) + 5;
  7665. format(sgstr, sizeof(sgstr),"* %s começa a pescar fora do cais... *",NameRP(playerid));
  7666. }
  7667. else if(fishingType == 2)
  7668. {
  7669. rand = random(10) + 10;
  7670. format(sgstr, sizeof(sgstr),"* %s começa a pescar fora do Recife... *",NameRP(playerid));
  7671. }
  7672. else if(fishingType == 3)
  7673. {
  7674. fishingType = 2; //set type back to 2 to trigger boat fishing
  7675. rand = random(10) + 10;
  7676. format(sgstr, sizeof(sgstr),"* %s começa a pescar fora do %s... *",NameRP(playerid), GetVehicleName(v));
  7677. }
  7678. FishSpamTime[playerid] = 1;
  7679. OnePlayAnim(playerid, "SAMP", "FishingIdle", 10.0, 0, 0, 0, 1, rand*1000);
  7680. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  7681. SetTimerEx("OnPlayerFish",(rand*1000),0,"ii",playerid, fishingType);
  7682. return true;
  7683. }
  7684. CMD:peixes(playerid, params[])
  7685. {
  7686. if(!Logged{playerid}) return SysMsg(playerid,"Por favor, faça primeiro login.");
  7687. for(new f = 0; f < 5; f++)
  7688. {
  7689. if(FishWeight[playerid][f] == -1) SendClientMessageF(playerid,COLOR_DARKBLUE, "Slot de peixe %i: Nome: n/a Peso: n/a",f+1);
  7690. else SendClientMessageF(playerid,COLOR_DARKBLUE, "Slot de peixe %i: Nome: %s Peso: %i kg",f+1,FishName[playerid][f],FishWeight[playerid][f]);
  7691. }
  7692. SendClientMessageF(playerid,COLOR_DARKBLUE, "Isca de pesca: %i, Meu maior recorde de peixe: %i Kg, Durabilidade da vara: %i %%",Inventory[playerid][FishingBait],BiggestFish[playerid],FishingRodHealth[playerid]);
  7693. return true;
  7694. }
  7695. CMD:showfish(playerid, params[])
  7696. {
  7697. if(!Logged{playerid}) return true;
  7698. new playa = -1;
  7699. if(sscanf(params, "u", playa)) return SysMsg(playerid, "Use: /showfish [playerID ou name]");
  7700. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  7701. new Float:x, Float:y, Float:z;
  7702. GetPlayerPos(playa, x, y, z);
  7703. if(!IsPlayerInRangeOfPoint(playerid, 5.0, x, y, z)) return SysMsg(playerid, "Você deve estar mais perto do jogador.");
  7704. SendClientMessageF(playa, COLOR_DARKBLUE, "%s's fish.", NameRP(playerid));
  7705. for(new f = 0; f < 5; f++)
  7706. {
  7707. if(FishWeight[playerid][f] == -1) SendClientMessageF(playa, COLOR_DARKBLUE, "Slot de peixe %i: Nome: n/a Peso: n/a", f + 1);
  7708. else SendClientMessageF(playa, COLOR_DARKBLUE, "Slot de peixe %i: Nome: %s Peso: %i Lbs", f + 1, FishName[playerid][f], FishWeight[playerid][f]);
  7709. }
  7710. return true;
  7711. }
  7712. CMD:sellfish(playerid, params[])
  7713. {
  7714. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  7715. if(!IsPlayerInRangeOfPoint(playerid,5.0,2150.601318,-100.634284,2.755812) && !IsPlayerInRangeOfPoint(playerid, 4.5, -800.5269,-1922.8231,9.1117)) return SysMsg(playerid,"Você não está na loja de pesca.");
  7716. if(FishWeight[playerid][0] == -1 && FishWeight[playerid][1] == -1 && FishWeight[playerid][2] == -1 && FishWeight[playerid][3] == -1 && FishWeight[playerid][4] == -1) return SysMsg(playerid,"Você não tem peixe.");
  7717. gstr[0] = EOS;
  7718. for(new f = 0; f < 5; f++)
  7719. {
  7720. if(FishWeight[playerid][f] != -1)
  7721. {
  7722. new fishValue = 3 * FishWeight[playerid][f];
  7723. format(sgstr, sizeof(sgstr), "%s - %iLbs - Vale $%i\n", FishName[playerid][f], FishWeight[playerid][f], fishValue);
  7724. strcat(gstr, sgstr);
  7725. }
  7726. }
  7727. strcat(gstr, "\nSell All");
  7728. Dialog_Show(playerid, FishSell, DIALOG_STYLE_LIST, "Vender peixe", gstr, "Vender", "Cancelar");
  7729. return true;
  7730. }
  7731. CMD:putback(playerid, params[])
  7732. {
  7733. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  7734. new atFishSpot = 0;
  7735. if(GetPlayerSurfingVehicleID(playerid) == ReeferID()) atFishSpot = 1;
  7736. if(GetPlayerVehicleID(playerid) == ReeferID()) atFishSpot = 1;
  7737. if(GetPlayerState(playerid) == 1 && IsPlayerInRangeOfPoint(playerid,6.0,2111.0522,-98.3380,2.1039) || IsPlayerInRangeOfPoint(playerid, 6.0, -793.7495,-1947.7505,6.7726)) atFishSpot = 1;
  7738. new Float:ReeferPos[3]; GetVehiclePos(ReeferID(), ReeferPos[0], ReeferPos[1], ReeferPos[2]);
  7739. if(IsPlayerInRangeOfPoint(playerid,5.0,ReeferPos[0], ReeferPos[1], ReeferPos[2]) && !IsPlayerInRangeOfPoint(playerid,6.0,2111.0522,-98.3380,2.1039)) atFishSpot = 1;
  7740. if(atFishSpot == 0) return SysMsg(playerid,"Você deve estar no ponto de pesca ou em um Reefer para colocar o peixe de volta.");
  7741. if(FishWeight[playerid][0] == -1 && FishWeight[playerid][1] == -1 && FishWeight[playerid][2] == -1 && FishWeight[playerid][3] == -1 && FishWeight[playerid][4] == -1) return SysMsg(playerid,"You have no fish.");
  7742. new SlotToUse;
  7743. if(sscanf(params, "i", SlotToUse)) return SysMsg(playerid,"Use: /putback [número do peixe] *Dica: Uses /peixes para ver os números de peixe*");
  7744. if(SlotToUse > 5 || SlotToUse < 1) return SysMsg(playerid,"ID de peixe inválido! (1 to 5 only)");
  7745. SlotToUse --;
  7746. if(FishWeight[playerid][SlotToUse] == -1) return SysMsg(playerid,"Nenhum peixe naquele slot.");
  7747. format(gstr, sizeof(gstr),"* %s lança um %s de volta a água. *",NameRP(playerid),FishName[playerid][SlotToUse]);
  7748. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  7749. format(gstr, sizeof(gstr),"Você colocou um %i Lb %s de volta na água.",FishWeight[playerid][SlotToUse],FishName[playerid][SlotToUse]);
  7750. SendClientMessage(playerid,COLOR_SKYBLUE,gstr);
  7751. FishWeight[playerid][SlotToUse] = -1;
  7752. FishName[playerid][SlotToUse][0] = EOS;
  7753. for(new x = 0; x < 5; x++)
  7754. {
  7755. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET Fish%iName = %i, Fish%iWeight = %i WHERE id = %i", x + 1, FishName[playerid][x], x+ 1, FishWeight[playerid][x], SQLID[playerid]);
  7756. mysql_pquery(conn, mquery);
  7757. }
  7758. return true;
  7759. }
  7760. CMD:putallback(playerid, params[])
  7761. {
  7762. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  7763. new atFishSpot = 0;
  7764. if(GetPlayerSurfingVehicleID(playerid) == ReeferID()) atFishSpot = 1;
  7765. if(GetPlayerVehicleID(playerid) == ReeferID()) atFishSpot = 1;
  7766. if(GetPlayerState(playerid) == 1 && IsPlayerInRangeOfPoint(playerid,6.0,2111.0522,-98.3380,2.1039) || IsPlayerInRangeOfPoint(playerid, 6.0, -793.7495,-1947.7505,6.7726)) atFishSpot = 1;
  7767. new Float:ReeferPos[3]; GetVehiclePos(ReeferID(), ReeferPos[0], ReeferPos[1], ReeferPos[2]);
  7768. if(IsPlayerInRangeOfPoint(playerid,5.0,ReeferPos[0], ReeferPos[1], ReeferPos[2]) && !IsPlayerInRangeOfPoint(playerid,6.0,2111.0522,-98.3380,2.1039)) atFishSpot = 1;
  7769. if(atFishSpot == 0) return SysMsg(playerid,"Você deve estar no ponto de pesca ou em um Reefer para colocar o peixe de volta.");
  7770. if(FishWeight[playerid][0] == -1 && FishWeight[playerid][1] == -1 && FishWeight[playerid][2] == -1 && FishWeight[playerid][3] == -1 && FishWeight[playerid][4] == -1) return SysMsg(playerid,"You have no fish.");
  7771. new FishCount = 0;
  7772. for(new F = 0; F < 5; F++)
  7773. {
  7774. if(FishWeight[playerid][F] != -1)
  7775. {
  7776. FishWeight[playerid][F] = -1;
  7777. FishName[playerid][F][0] = EOS;
  7778. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET Fish%iName = %i, Fish%iWeight = %i WHERE id = %i", F + 1, FishName[playerid][F], F+ 1, FishWeight[playerid][F], SQLID[playerid]);
  7779. mysql_pquery(conn, mquery);
  7780. FishCount++;
  7781. }
  7782. }
  7783. format(gstr, sizeof(gstr),"* %s lança um %s de volta a água. *",NameRP(playerid),FishCount);
  7784. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  7785. format(gstr, sizeof(gstr),"Você colocou um %i Lb %s de volta na água.",FishCount);
  7786. SendClientMessage(playerid,COLOR_SKYBLUE,gstr);
  7787. return true;
  7788. }
  7789. CMD:fcrate(playerid, params[])
  7790. {
  7791. if(!Logged{playerid}) return true;
  7792. new option[24], value[64];
  7793. if(sscanf(params, "s[24]S()[64]", option, value)) return SysMsg(playerid, "Use: /fcrate [take/setup/drop/pickup/store/check]");
  7794. if(strcmp(option, "take", true) == 0)
  7795. {
  7796. new Float:x, Float:y, Float:z;
  7797. for(new i = 0; i < MAX_FISHCRATES; i++)
  7798. {
  7799. if(FishingCrates[i][CrateVehicle] != 0)
  7800. {
  7801. if(Locked{FishingCrates[i][CrateVehicle]}) return SysMsg(playerid, "Esta caixa está firmemente presa ao barco e não pode ser retirada.");
  7802. GetVehiclePos(FishingCrates[i][CrateVehicle], x, y, z);
  7803. if(IsPlayerInRangeOfPoint(playerid, 10.0, x, y, z))
  7804. {
  7805. new index = GetFreePlayerObjectIndex(playerid), v = FishingCrates[i][CrateVehicle];
  7806. if(index == -1) return SysMsg(playerid, "Você não tem nenhum slots de objeto livre anexado.");
  7807. DestroyDynamicObject(VehObject[v]);
  7808. SetPlayerAttachedObject(playerid, index, GetFishingCrateModelID(FishingCrates[i][CrateType]), 1, -0.057999, 0.659000, 0.000000, 0.000000, 88.099960, -179.699905, 0.499000, 0.559000, 0.414999);
  7809. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY);
  7810. mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET FishCrate = 0 WHERE id = %i", VehicleData[v][VehSQLID]);
  7811. mysql_pquery(conn, mquery);
  7812. FishingCrates[i][CrateVehicle] = 0;
  7813. FishingCrates[i][FishingCrateObject] = INVALID_OBJECT_ID;
  7814. HoldingCrate[playerid] = i;
  7815. CrateIndex[playerid] = index;
  7816. VehObject[v] = INVALID_OBJECT_ID;
  7817. format(sgstr, sizeof(sgstr),"* %s pega uma caixa de peixe do %s. *",NameRP(playerid), GetVehicleName(v));
  7818. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  7819. return true;
  7820. }
  7821. }
  7822. }
  7823. SysMsg(playerid, "Você não está perto de uma caixa de peixes.");
  7824. }
  7825. else if(strcmp(option, "setup", true) == 0)
  7826. {
  7827. new v = GetNearestVehicle(playerid);
  7828. if(v == INVALID_VEHICLE_ID) return SysMsg(playerid, "Você não está perto de um veículo.");
  7829. if(!IsOwnedCar(v)) return SysMsg(playerid, "O veículo deve ser um veículo próprio.");
  7830. if(!IsCrateVehicle(v)) return SysMsg(playerid, "Este barco não pode segurar uma caixa.");
  7831. if(HoldingCrate[playerid] == -1) return SysMsg(playerid, "Você não está segurando uma caixa de pesca.");
  7832. new c = HoldingCrate[playerid];
  7833. FishingCrates[c][CrateVehicle] = v;
  7834. AttachCrateToVehicle(v, GetFishingCrateModelID(FishingCrates[c][CrateType]));
  7835. RemovePlayerAttachedObject(playerid, CrateIndex[playerid]);
  7836. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE);
  7837. HoldingCrate[playerid] = -1;
  7838. CrateIndex[playerid] = -1;
  7839. mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET FishCrate = %i WHERE id = %i", FishingCrates[c][CrateType], VehicleData[v][VehSQLID]);
  7840. mysql_pquery(conn, mquery);
  7841. format(sgstr, sizeof(sgstr),"* %s assegura uma caixa de pesca no %s. *",NameRP(playerid), GetVehicleName(v));
  7842. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  7843. return true;
  7844. }
  7845. else if(strcmp(option, "drop", true) == 0)
  7846. {
  7847. if(HoldingCrate[playerid] == -1) return SysMsg(playerid, "Você não está segurando uma caixa de pesca.");
  7848. new Float:x, Float:y, Float:z, c = HoldingCrate[playerid];
  7849. GetPlayerPos(playerid, x, y, z);
  7850. FishingCrates[c][FishingCrateObject] = CreateDynamicObject(GetFishingCrateModelID(FishingCrates[c][CrateType]), x, y, z - 1.2, 0, 0, 0, GetPlayerVirtualWorld(playerid));
  7851. FishingCrates[c][CrateLocX] = x;
  7852. FishingCrates[c][CrateLocY] = y;
  7853. FishingCrates[c][CrateLocZ] = z;
  7854. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE);
  7855. RemovePlayerAttachedObject(playerid, CrateIndex[playerid]);
  7856. CrateIndex[playerid] = -1;
  7857. HoldingCrate[playerid] = -1;
  7858. return true;
  7859. }
  7860. else if(strcmp(option, "pickup", true) == 0)
  7861. {
  7862. if(HoldingCrate[playerid] != -1) return SysMsg(playerid, "Você já está segurando uma caixa de pesca.");
  7863. for(new i = 0; i < MAX_FISHCRATES; i++)
  7864. {
  7865. if(IsPlayerInRangeOfPoint(playerid, 5.0, FishingCrates[i][CrateLocX], FishingCrates[i][CrateLocY], FishingCrates[i][CrateLocZ]) && IsValidDynamicObject(FishingCrates[i][FishingCrateObject]))
  7866. {
  7867. new index = GetFreePlayerObjectIndex(playerid);
  7868. if(index == -1) return SysMsg(playerid, "Você não tem nenhum slots de objeto livre anexado.");
  7869. DestroyDynamicObject(FishingCrates[i][FishingCrateObject]);
  7870. SetPlayerAttachedObject(playerid, index, GetFishingCrateModelID(FishingCrates[i][CrateType]), 1, -0.057999, 0.659000, 0.000000, 0.000000, 88.099960, -179.699905, 0.499000, 0.559000, 0.414999);
  7871. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY);
  7872. HoldingCrate[playerid] = i;
  7873. CrateIndex[playerid] = index;
  7874. FishingCrates[i][FishingCrateObject] = INVALID_OBJECT_ID;
  7875. format(sgstr, sizeof(sgstr),"* %s pega uma caixa de pesca. *",NameRP(playerid));
  7876. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  7877. return true;
  7878. }
  7879. }
  7880. SysMsg(playerid, "Você não está perto de uma caixa de peixes.");
  7881. return true;
  7882. }
  7883. else if(strcmp(option, "guardar", true) == 0)
  7884. {
  7885. if(sscanf(params, "s[24]s[24]", option, value)) return SysMsg(playerid, "Use: /fcrate guardar [slot 1-5 ou all]");
  7886. new Float:x, Float:y, Float:z, c = -1;
  7887. for(new i = 0; i < MAX_FISHCRATES; i++)
  7888. {
  7889. if(FishingCrates[i][CrateVehicle] != 0)
  7890. {
  7891. GetVehiclePos(FishingCrates[i][CrateVehicle], x, y, z);
  7892. if(IsPlayerInRangeOfPoint(playerid, 10.0, x, y, z))
  7893. {
  7894. c = i;
  7895. break;
  7896. }
  7897. }
  7898. }
  7899. if(c == -1) return SysMsg(playerid, "Você não está perto de um veículo com uma caixa dentro dela.");
  7900. if(GetCurrentCrateSlots(FishingCrates[c][CrateOwner]) == GetMaxCrateSlots(FishingCrates[c][CrateType])) return SysMsg(playerid, "Esta caixa de pesca está cheia.");
  7901. if(IsNumeric(value))
  7902. {
  7903. new slot = strval(value);
  7904. if(slot < 1 || slot > 5) return SysMsg(playerid, "Slot deve ser 1-5 ou ALL");
  7905. slot --;
  7906. if(FishWeight[playerid][slot] == -1) return SysMsg(playerid, "Você não tem um peixe nesse slot.");
  7907. mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO fishcrates (FishWeight, CrateOwner) VALUES (%i, %i)", FishWeight[playerid][slot], FishingCrates[c][CrateOwner]);
  7908. mysql_pquery(conn, mquery);
  7909. format(sgstr, sizeof(sgstr),"* %s guardar um peixe de %ikg na caixa *",NameRP(playerid), FishWeight[playerid][slot]);
  7910. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  7911. FishWeight[playerid][slot] = -1;
  7912. FishName[playerid][slot][0] = EOS;
  7913. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET Fish%iName = '', Fish%iWeight = -1 WHERE id = %i", slot + 1, slot + 1, SQLID[playerid]);
  7914. mysql_pquery(conn, mquery);
  7915. return true;
  7916. }
  7917. else
  7918. {
  7919. new weight, fishcount;
  7920. for(new f = 0; f < 5; f++)
  7921. {
  7922. if(FishWeight[playerid][f] == -1) continue;
  7923. fishcount ++;
  7924. weight += FishWeight[playerid][f];
  7925. mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO fishcrates (FishWeight, CrateOwner) VALUES (%i, %i)", FishWeight[playerid][f], FishingCrates[c][CrateOwner]);
  7926. mysql_pquery(conn, mquery);
  7927. FishWeight[playerid][f] = -1;
  7928. FishName[playerid][f][0] = EOS;
  7929. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET Fish%iName = '', Fish%iWeight = -1 WHERE id = %i", f + 1, f + 1, SQLID[playerid]);
  7930. mysql_pquery(conn, mquery);
  7931. }
  7932. if(fishcount == 0) return SysMsg(playerid, "Não foi possível armazenar qualquer peixe.");
  7933. format(sgstr, sizeof(sgstr),"* %s guarda %i peixes totalizando %ikg na caixa *",NameRP(playerid), fishcount, weight);
  7934. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  7935. }
  7936. return true;
  7937. }
  7938. else if(strcmp(option, "check", true) == 0)
  7939. {
  7940. new Float:x, Float:y, Float:z, c = -1;
  7941. for(new i = 0; i < MAX_FISHCRATES; i++)
  7942. {
  7943. if(FishingCrates[i][CrateVehicle] != 0)
  7944. {
  7945. GetVehiclePos(FishingCrates[i][CrateVehicle], x, y, z);
  7946. if(IsPlayerInRangeOfPoint(playerid, 10.0, x, y, z))
  7947. {
  7948. c = i;
  7949. break;
  7950. }
  7951. }
  7952. else if(IsPlayerInRangeOfPoint(playerid, 10.0, FishingCrates[i][CrateLocX], FishingCrates[i][CrateLocY], FishingCrates[i][CrateLocZ]))
  7953. {
  7954. c = i;
  7955. break;
  7956. }
  7957. }
  7958. if(c == -1) return SysMsg(playerid, "Você não está perto de um veículo com uma caixa dentro dela.");
  7959. SendClientMessage(playerid, COLOR_WHITE, "[CAIXA DE PEIXE]");
  7960. mysql_format(conn, mquery, sizeof(mquery), "SELECT SUM(FishWeight) AS weight, COUNT(CrateOwner) as rows FROM fishcrates WHERE CrateOwner = %i", FishingCrates[c][CrateOwner]);
  7961. mysql_pquery(conn, mquery, "ShowCrateInfo", "i", playerid);
  7962. return true;
  7963. }
  7964. return true;
  7965. }
  7966. stock GetCurrentCrateSlots(sqlid)
  7967. {
  7968. mysql_format(conn, mquery, sizeof(mquery), "SELECT NULL FROM fishcrates WHERE CrateOwner = %i", sqlid);
  7969. new Cache:result = mysql_query(conn, mquery);
  7970. new num = cache_num_rows();
  7971. cache_delete(result);
  7972. return num;
  7973. }
  7974. stock GetMaxCrateSlots(type)
  7975. {
  7976. switch(type)
  7977. {
  7978. case 1: return 100;
  7979. case 2: return 250;
  7980. case 3: return 500;
  7981. }
  7982. return 100;
  7983. }
  7984. GREENSIDE::ShowCrateInfo(playerid)
  7985. {
  7986. new weight = cache_get_field_content_int(0, "weight"), count = cache_get_field_content_int(0, "rows");
  7987. SendClientMessageF(playerid, COLOR_WHITE, "Peso total: %i (Vale $%s)", weight, format_cash(weight * 3));
  7988. SendClientMessageF(playerid, COLOR_WHITE, "Peixe Total: %i", count);
  7989. }
  7990. CMD:sellcrate(playerid)
  7991. {
  7992. if(!Logged{playerid}) return true;
  7993. if(HoldingCrate[playerid] == -1) return SysMsg(playerid, "Você não está atualmente na posse de uma caixa de pesca.");
  7994. if(!IsPlayerInRangeOfPoint(playerid,5.0,2150.601318,-100.634284,2.755812) && !IsPlayerInRangeOfPoint(playerid, 4.5, -800.5269,-1922.8231,9.1117)) return SysMsg(playerid,"Você não está na loja de pesca.");
  7995. mysql_format(conn, mquery, sizeof(mquery), "SELECT SUM(FishWeight) AS weight, COUNT(CrateOwner) as rows FROM fishcrates WHERE CrateOwner = %i", FishingCrates[HoldingCrate[playerid]][CrateOwner]);
  7996. mysql_pquery(conn, mquery, "ProcessCrateSale", "i", playerid);
  7997. return true;
  7998. }
  7999. GREENSIDE::ProcessCrateSale(playerid)
  8000. {
  8001. new weight = cache_get_field_content_int(0, "weight"), value = (weight * 3), count = cache_get_field_content_int(0, "rows");
  8002. SetPVarInt(playerid, "SellingFishWeight", weight);
  8003. SetPVarInt(playerid, "SellingFishCount", count);
  8004. format(sgstr, sizeof(sgstr), "Tem certeza que gostaria de vender esta caixa de pesca?\nExistem atualmente %i peixes na caixa que totaliza %ikg, avaliado em $%s.", count, weight, format_cash(value));
  8005. Dialog_Show(playerid, FishCrateSell, DIALOG_STYLE_MSGBOX, "Tem certeza?", sgstr, "Sim", "Não");
  8006. return true;
  8007. }
  8008. CMD:givemeafish(playerid)
  8009. {
  8010. if(!IsPlayerAdmin(playerid)) return true;
  8011. if(FishWeight[playerid][0] != -1 && FishWeight[playerid][1] != -1 && FishWeight[playerid][2] != -1 && FishWeight[playerid][3] != -1 && FishWeight[playerid][4] != -1) return SysMsg(playerid,"You can't hold anymore fish.");
  8012. OnPlayerFish(playerid, 2);
  8013. return true;
  8014. }
  8015. stock GetFishingCrateModelID(crateid)
  8016. {
  8017. switch(crateid)
  8018. {
  8019. case 1: return 1271; //small
  8020. case 2: return 3800; //medium
  8021. case 3: return 3798; //large
  8022. }
  8023. return true;
  8024. }
  8025. stock GetFreeFishCrateSlot()
  8026. {
  8027. for(new c = 0; c < MAX_FISHCRATES; c++)
  8028. {
  8029. if(FishingCrates[c][CrateID] == -1)
  8030. {
  8031. return c;
  8032. }
  8033. }
  8034. return true;
  8035. }
  8036. stock ClearFishingCrateData(crateid)
  8037. {
  8038. FishingCrates[crateid][CrateID] = 0;
  8039. FishingCrates[crateid][FishingCrateObject] = INVALID_OBJECT_ID;
  8040. FishingCrates[crateid][CrateOwner] = 0;
  8041. FishingCrates[crateid][CrateType] = 0;
  8042. FishingCrates[crateid][CrateVehicle] = 0;
  8043. FishingCrates[crateid][CrateLocX] = 0.0;
  8044. FishingCrates[crateid][CrateLocY] = 0.0;
  8045. FishingCrates[crateid][CrateLocZ] = 0.0;
  8046. return true;
  8047. }
  8048. //FINAL SISTEMA DE PESCA
  8049. //==================== Fim ==================================//
  8050. //Death system commands
  8051. CMD:feridas(playerid, params[])
  8052. {
  8053. new playa = -1, name[MAX_PLAYER_NAME];
  8054. if(sscanf(params, "s[24]", name)) return SysMsg(playerid,"Use: /feridas [player id ou MaskID]");
  8055. if(strval(name) >= 500)
  8056. {
  8057. foreach(new p: Player)
  8058. {
  8059. if(MaskLabelNumber[p] == strval(name))
  8060. {
  8061. playa = p;
  8062. }
  8063. }
  8064. }
  8065. else playa = GetPlayerIDs(name);
  8066. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  8067. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  8068. if(IsSpectating[playa] >= 0) return SysMsg(playerid,"Você deve estar perto do jogador para ver lesões.");
  8069. new Float:tX,Float:tY,Float:tZ;
  8070. GetPlayerPos(playa,tX,tY,tZ);
  8071. if(!IsPlayerInRangeOfPoint(playerid,2.5,tX,tY,tZ) && !IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid,"Você deve estar perto das feridas da exibição do jogador.");
  8072. ShowInjuriesForPlayer(playerid, playa);
  8073. return true;
  8074. }
  8075. CMD:helpup(playerid, params[])//ajudar levantar
  8076. {
  8077. if(!Logged{playerid}) return true;
  8078. new playa = -1, name[MAX_PLAYER_NAME];
  8079. if(sscanf(params, "s[24]", name)) return SysMsg(playerid,"Use: /ajudarlevantar [player id ou MaskID]");
  8080. if(strval(name) >= 500)
  8081. {
  8082. foreach(new p: Player)
  8083. {
  8084. if(MaskLabelNumber[p] == strval(name))
  8085. {
  8086. playa = p;
  8087. }
  8088. }
  8089. }
  8090. else playa = GetPlayerIDs(name);
  8091. if(!Dead{playa}) return SysMsg(playerid, "Este jogador não está ferido.");
  8092. if(playa == playerid) return SysMsg(playerid, "Você pode não se ajudar.");
  8093. if(!IsPlayerInRangeOfPoint(playerid, 5.0, PlayerPosX(playa), PlayerPosY(playa), PlayerPosZ(playa))) return SysMsg(playerid, "Você deve estar perto desse jogador para ajudá-los.");
  8094. new nlwcount = 0, lwcount = 0;
  8095. for(new x = 0; x < HitCount[playa]; x++)
  8096. {
  8097. switch(Injuries[playa][x][pWeaponID])
  8098. {
  8099. case 22..34,38: lwcount ++;
  8100. default: nlwcount ++;
  8101. }
  8102. }
  8103. if(lwcount >= 1) return SysMsg(playerid, "Este jogador tem uma ferida letal. Ele(a) precisam de um tratamento médico adequado.");
  8104. else
  8105. {
  8106. RevivePlayer(playa);
  8107. SetPlayerHealthEx(playa, 50.0);
  8108. SendClientMessageF(playa, COLOR_WHITE, "%s ajudou você se levantar.", NameRP(playerid));
  8109. format(gstr, sizeof(gstr),"* %s ajuda %s a ficar de pé. *", NameRP(playerid), NameRP(playa));
  8110. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  8111. }
  8112. return true;
  8113. }
  8114. //end of death system commands
  8115. //cadaver system commands
  8116. CMD:cadaver(playerid, params[])
  8117. {
  8118. new option[24], corpse;
  8119. if(sscanf(params, "s[24]i", option, corpse)) return SysMsg(playerid, "Use: /cadaver [feridas/saco/queimar] [corpse ID]");
  8120. if(corpse < 0 || corpse > MAX_CORPSES) return SysMsg(playerid, "Cadáver inválido.");
  8121. if(!CorpseData[corpse][CorpseUsed]) return SysMsg(playerid, "Cadáver inválido.");
  8122. if(strmatch(option, "feridas"))
  8123. {
  8124. new Float:tX,Float:tY,Float:tZ;
  8125. GetActorPos(CorpseData[corpse][CorpseActor],tX,tY,tZ);
  8126. if(!IsPlayerInRangeOfPoint(playerid,2.5,tX,tY,tZ) && !IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid,"Você deve estar perto dos ferimentos da visão do cadáver.");
  8127. ShowCorpseInjuriesToPlayer(playerid, corpse);
  8128. return true;
  8129. }
  8130. else if(strmatch(option, "saco"))//colocar saco preto
  8131. {
  8132. if(Faction[playerid] == FACTION_SACFD || IsESU{playerid} || Faction[playerid] == FACTION_RESEARCH)
  8133. {
  8134. if(!HasBodyBag{playerid}) return SysMsg(playerid, "Você não tem um saco de corpo.");
  8135. new Float:x, Float:y, Float:z;
  8136. GetActorPos(CorpseData[corpse][CorpseActor], x, y, z);
  8137. if(!IsPlayerInRangeOfPoint(playerid, 5.0, x, y, z)) return SysMsg(playerid, "Você deve estar perto do cadáver para colocar o saco preto.");
  8138. if(IsValidActor(CorpseData[corpse][CorpseActor])) DestroyActor(CorpseData[corpse][CorpseActor]);
  8139. if(CorpseData[corpse][CorpseLabel] != Text3D:INVALID_3DTEXT_ID) DestroyDynamic3DTextLabel(CorpseData[corpse][CorpseLabel]);
  8140. CorpseData[corpse][CorpseBag] = CreateDynamicObject(19944, CorpseData[corpse][CorpsePosX], CorpseData[corpse][CorpsePosY], CorpseData[corpse][CorpsePosZ] - 1.0, 0.0, 0.0, CorpseData[corpse][CorpseRot], CorpseData[corpse][CorpseVW]);
  8141. CorpseData[corpse][CorpseActor] = INVALID_ACTOR_ID;
  8142. CorpseData[corpse][CorpseLabel] = Text3D:INVALID_3DTEXT_ID;
  8143. HasBodyBag{playerid} = false;
  8144. RemovePlayerAttachedObject(playerid, BodyBagIndex[playerid]);
  8145. BodyBagIndex[playerid] = -1;
  8146. ApplyAnimation(playerid, "BOMBER","BOM_Plant",4.0,0,0,0,0,0,1);
  8147. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE);
  8148. SendClientMessage(playerid, COLOR_BLUE, "Você colocou o cadáver no saco preto.");
  8149. format(sgstr, sizeof(sgstr), "* %s coloca o cadáver dentro do saco preto, logo o fechando. *", NameRP(playerid));
  8150. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  8151. return true;
  8152. }
  8153. else SysMsg(playerid, "Você deve estar no SACFD ou ESU para usar este comando.");
  8154. }
  8155. else if(strmatch(option, "queimar"))
  8156. {
  8157. if(Inventory[playerid][Lighter] == 0) return SysMsg(playerid, "Você deve ter um isqueiro para queimar um cadáver.");
  8158. if(Inventory[playerid][FuelCan][0] < 25) return SysMsg(playerid, "Seu combustível tem que estar com 25% de cheio.");
  8159. new Float:x, Float:y, Float:z;
  8160. GetActorPos(CorpseData[corpse][CorpseActor], x, y, z);
  8161. if(!IsPlayerInRangeOfPoint(playerid, 5, x, y, z)) return SysMsg(playerid, "Você não está perto de um cadáver.");
  8162. new fire = PlaceFire(x, y, z, 3, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid), false);
  8163. SetTimerEx("DestroyCorpse", 180000, 0, "i", corpse);
  8164. SetTimerEx("RemoveFire", 200000, 0, "i", fire);
  8165. Inventory[playerid][Lighter] -= 1;
  8166. Inventory[playerid][FuelCan][0] -= 25;
  8167. format(sgstr, sizeof(sgstr), "* %s pega um galão de gasolina e joga um pouco de gasolina sobre o cadáver, logo depois acendendo um fogo e queimando o mesmo. *", NameRP(playerid));
  8168. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  8169. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET HasLighter = %i, HasFuelCan = %i WHERE id = %i", Inventory[playerid][Lighter], Inventory[playerid][FuelCan][0], SQLID[playerid]);
  8170. mysql_pquery(conn, mquery);
  8171. foreach(new i: Player)
  8172. {
  8173. if(IsPlayerInRangeOfPoint(i, 10, x, y, z))
  8174. {
  8175. Streamer_Update(i);
  8176. }
  8177. }
  8178. return true;
  8179. }
  8180. else return cmd_cadaver(playerid, "");
  8181. return true;
  8182. }
  8183. CMD:sacopreto(playerid, params[])
  8184. {
  8185. if(!Logged{playerid}) return true;
  8186. if(Faction[playerid] == FACTION_SACFD || IsESU{playerid} || Faction[playerid] == FACTION_RESEARCH)
  8187. {
  8188. new option[24];
  8189. if(sscanf(params, "s[24]", option)) return SysMsg(playerid, "Use: /sacopreto [pegarc/remove/pegar]");
  8190. if(strmatch(option, "pegarc"))
  8191. {
  8192. if(HasBodyBag{playerid}) return SysMsg(playerid, "Você já pegou um saco preto.");
  8193. new v = GetNearestVehicle(playerid), faction = IsFactionVehicle(v);
  8194. if(faction > 0 && faction != Faction[playerid]) return SysMsg(playerid, "Você deve estar perto do porta-malas de um veículo de facção para usar este comando.");
  8195. if(!TrunkXY(playerid, v)) return SysMsg(playerid, "Você deve estar perto do tronco de um veículo de facção para usar esse comando.");
  8196. new index = GetFreePlayerObjectIndex(playerid);
  8197. if(index == -1) return SysMsg(playerid, "Você já está carregando uma bolsa de corpo ou você não tem nenhum slot livre de objetos anexados.");
  8198. else SetPlayerAttachedObject(playerid, index, 19944, 1, -0.060999, 0.525000, 0.000000, -86.099998, 84.099975, -3.100000, 0.685999, 0.652000, 0.780999);
  8199. BodyBagIndex[playerid] = index;
  8200. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY);
  8201. HasBodyBag{playerid} = true;
  8202. OnePlayAnim(playerid, "CARRY", "liftup", 4,0,0,0,0,0);
  8203. SendClientMessage(playerid, COLOR_BLUE, "Você recebeu um saco de corpo da parte de trás do veículo.");
  8204. format(sgstr, sizeof(sgstr), "* %s pega um cadáver dentro de um saco preto da parte de trás da %s. *", NameRP(playerid), GetVehicleName(v));
  8205. ProxDetector(20.0,playerid,sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  8206. }
  8207. else if(strmatch(option, "remove"))
  8208. {
  8209. if(!HasBodyBag{playerid}) return SysMsg(playerid, "Você não tem um saco de corpo em você.");
  8210. new v = GetNearestVehicle(playerid), faction = IsFactionVehicle(v);
  8211. if(faction > 0 && faction != Faction[playerid]) return SysMsg(playerid, "Você deve estar perto do porta-malas de um veículo de facção para usar este comando.");
  8212. if(!TrunkXY(playerid, v)) return SysMsg(playerid, "Você deve estar perto do porta-malas de um veículo de facção para usar este comando.");
  8213. RemovePlayerAttachedObject(playerid, BodyBagIndex[playerid]);
  8214. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE);
  8215. BodyBagIndex[playerid] = 0;
  8216. HasBodyBag{playerid} = false;
  8217. OnePlayAnim(playerid, "CARRY", "putdwn", 4,0,0,0,0,0);
  8218. SendClientMessage(playerid, COLOR_BLUE, "Você colocou o saco do corpo de volta no veículo.");
  8219. format(sgstr, sizeof(sgstr), "* %s coloca um saco de corpo na parte de trás da sua %s. *", NameRP(playerid), GetVehicleName(v));
  8220. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  8221. }
  8222. else if(strmatch(option, "pegar"))
  8223. {
  8224. if(HasBodyBag{playerid}) return SysMsg(playerid, "Você já tem um saco de corpo em você.");
  8225. new Float:x, Float:y, Float:z;
  8226. for(new c = 0; c < MAX_CORPSES; c++)
  8227. {
  8228. GetDynamicObjectPos(CorpseData[c][CorpseBag], x, y, z);
  8229. if(IsPlayerInRangeOfPoint(playerid, 5.0, x, y, z))
  8230. {
  8231. DestroyCorpse(c);
  8232. new index = GetFreePlayerObjectIndex(playerid);
  8233. if(index == -1) return SysMsg(playerid, "Você já está carregando uma bolsa de corpo ou você não tem nenhum slot livre de objetos anexados.");
  8234. else SetPlayerAttachedObject(playerid, index, 19944, 1, -0.060999, 0.525000, 0.000000, -86.099998, 84.099975, -3.100000, 0.685999, 0.652000, 0.780999);
  8235. BodyBagIndex[playerid] = index;
  8236. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY);
  8237. HasBodyBag{playerid} = true;
  8238. format(sgstr, sizeof(sgstr), "* %s o pega um cadáver que estaria dentro do saco preto no chão. *", NameRP(playerid));
  8239. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  8240. OnePlayAnim(playerid, "CARRY", "liftup", 4,0,0,0,0,0);
  8241. return true;
  8242. }
  8243. }
  8244. SysMsg(playerid, "Você não está perto de nenhum saco de corpo.");
  8245. }
  8246. else return cmd_sacopreto(playerid, "");
  8247. }
  8248. else SysMsg(playerid, "Você deve estar no SACFD ou um membro da ESU para usar este comando.");
  8249. return true;
  8250. }
  8251. //end of corpse system commands
  8252. //Job commands
  8253. CMD:jobs(playerid, params[])
  8254. {
  8255. if(!Logged{playerid}) return true;
  8256. SendClientMessage(playerid,COLOR_ORANGE,"Estatísticas de trabalho:");
  8257. if(Job[playerid] > 0)
  8258. {
  8259. new JobName[70];
  8260. switch(Job[playerid])
  8261. {
  8262. case JOB_MECHANIC: JobName = "Mecanico";
  8263. case JOB_MAINTENANCE: JobName = "Trabalhador da manutenção";
  8264. case JOB_DRUGDEALER: JobName = "Traficante de drogas";
  8265. case JOB_TAXI: JobName = "Taxista";
  8266. }
  8267. SendClientMessageF(playerid,COLOR_YELLOW,"Você está trabalhando atualmente como: %s (Temporizador de spam do trabalho: %i Minutos)", JobName, JobSpamTime[playerid]);
  8268. }
  8269. SendClientMessageF(playerid,COLOR_YELLOW,"VARREDOR DE RUA: Tempo completado: %i, Level: %i (%i trabalhos até o nível), Temporizador de Spam: %i minutos", SweepStat[playerid], SweepLevel[playerid], GetAmountTillJobLevelup(2, SweepLevel[playerid], SweepStat[playerid]), SweepSpamTime[playerid]);
  8270. SendClientMessageF(playerid,COLOR_YELLOW,"TRUCKER: Tempo completado: %i, Level: %i (%i trabalhos até o nível), Temporizador de Spam: %i minutos", TruckStat[playerid], TruckLevel[playerid], GetAmountTillJobLevelup(1, TruckLevel[playerid], TruckStat[playerid]), TruckSpamTime[playerid]);
  8271. SendClientMessageF(playerid,COLOR_YELLOW,"ENTREGADOR DE PIZZA: Tempo completado: %i, Level: %i (%i trabalhos até o nível), Temporizador de Spam: %i minutos", DeliverStat[playerid], DeliverLevel[playerid], GetAmountTillJobLevelup(3, DeliverLevel[playerid], DeliverStat[playerid]), DeliverSpamTime[playerid]);
  8272. SendClientMessageF(playerid,COLOR_YELLOW,"COALMINER: Tempo completado: %i, Level: %i (%i trabalhos até o nível), Temporizador de Spam: %i minutos", CoalmineStat[playerid], CoalmineLevel[playerid], GetAmountTillJobLevelup(4, CoalmineLevel[playerid], CoalmineStat[playerid]), CoalmineSpamTime[playerid]);
  8273. SendClientMessageF(playerid,COLOR_YELLOW,"LIXEIRO: Tempo completado: %i, Level: %i (%i trabalhos até o nível), Temporizador de Spam: %i minutos", TrashStat[playerid], TrashLevel[playerid], GetAmountTillJobLevelup(5, TrashLevel[playerid], TrashStat[playerid]), TrashSpamTime[playerid]);
  8274. return true;
  8275. }
  8276. CMD:jobinfo(playerid, params[])
  8277. {
  8278. if(!Logged{playerid}) return true;
  8279. if(IsPlayerInRangeOfPoint(playerid, 2.5, 883.109497, 2261.683105, 238.237808) || IsPlayerInRangeOfPoint(playerid, 2.5, 922.06030, 2380.831787, 246.462112) || IsPlayerInRangeOfPoint(playerid, 2.5, 758.2207,-29.9649,1008.6959) || IsPlayerInRangeOfPoint(playerid, 2.5, 1184.8542,1349.2084,999.1968) || IsPlayerInRangeOfPoint(playerid, 2.5, 1229.5603,186.1047,2091.3569))
  8280. {
  8281. gstr[0] = EOS;
  8282. strcat(gstr, "TRABALHOS\n");
  8283. strcat(gstr, "Mecanico\n");
  8284. strcat(gstr, "Trabalhar como um mecânico significa que você pode reparar, modificar e pintar veiculos.\n");
  8285. strcat(gstr, "Localização: Dillimore Pay N Spray\n");
  8286. strcat(gstr, "Pagamento: $300 BASE por Payday\n\n");
  8287. strcat(gstr, "Trabalhador da manutenção\n");
  8288. strcat(gstr, "Trabalhar como trabalhador de manutenção significa que você limpa as ruas, pegando lixo.\n");
  8289. strcat(gstr, "No prédio principal, você pode entrar em serviço e esvaziar sua bolsa para confirmar seu pagamento.\n");
  8290. strcat(gstr, "Seu salário depende da quantidade de lixo que você coleciona e é dada no seu dia de pagamento.\n");
  8291. strcat(gstr, "Localização: Palomino Creek Sweeper Building\n");
  8292. strcat(gstr, "Pagamento: $50 BASE por dia de pagamento +$10 por cada lixo escolhido +$50 por cada 10 camadas escolhidas ao mesmo tempo.\n\n");
  8293. strcat(gstr, "Trabalhos paralelos\n");
  8294. strcat(gstr, "Este tipo de trabalho é um trabalho único, embora possa ser repetido, para ganhar dinheiro rápido.\n");
  8295. strcat(gstr, "Motorista de ônibus - Blueberry\n");
  8296. strcat(gstr, "Mineiro de carvão - Hunter Quarry\n");
  8297. strcat(gstr, "Entrega de pizza - Montgomery\n");
  8298. strcat(gstr, "Varredor de rua - Palomino Creek\n");
  8299. strcat(gstr, "Coletor de lixo - Bone County\n");
  8300. strcat(gstr, "Trucking - Blueberry\n");
  8301. ShowMessage(playerid, "Informação de emprego", gstr, "Pronto");
  8302. }
  8303. return true;
  8304. }
  8305. CMD:pegartrabalho(playerid, params[])//pegartrabalho//
  8306. {
  8307. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  8308. if(PlayerLevel[playerid] < 2) return SysMsg(playerid,"Você precisa ser nível 2 para pegar trabalhos oficiais.");
  8309. if(Job[playerid] > 0) return SysMsg(playerid,"Você já tem um emprego, use /deixartrabalho primeiro.");
  8310. if(JobSpamTime[playerid] > 0) return SysMsgF(playerid, "Você precisa esperar %i minutos para se candidatar a um novo emprego.", JobSpamTime[playerid]);
  8311. if(IsPlayerInRangeOfPoint(playerid, 3.5, 723.706787, -464.991302, 16.335937)) //Mechanic Job
  8312. {
  8313. Job[playerid] = JOB_MECHANIC;
  8314. MySQLUpdateInt(SQLID[playerid], "Job", Job[playerid], "players");
  8315. if(IsDonator[playerid] >= 2) JobSpamTime[playerid] = 0;
  8316. else JobSpamTime[playerid] = 30;
  8317. SendClientMessage(playerid, COLOR_WHITE, "Seu novo trabalho é um mecânico. Para ver o que você pode fazer, use '/ajuda trabalho'.");
  8318. MySQLUpdateInt(SQLID[playerid], "JobSpamTime", JobSpamTime[playerid], "players");
  8319. }
  8320. if(IsPlayerInRangeOfPoint(playerid, 3.5, 2244.1768, 32.2951, 26.5016)) //Maintenance Worker Job
  8321. {
  8322. Job[playerid] = JOB_MAINTENANCE;
  8323. MySQLUpdateInt(SQLID[playerid], "Job", Job[playerid], "players");
  8324. if(IsDonator[playerid] >= 2) JobSpamTime[playerid] = 0;
  8325. else JobSpamTime[playerid] = 30;
  8326. SendClientMessage(playerid, COLOR_WHITE, "Seu novo trabalho é um trabalhador de manutenção. Para ver o que você pode fazer, use '/ajuda trabalho'.");
  8327. MySQLUpdateInt(SQLID[playerid], "JobSpamTime", JobSpamTime[playerid], "players");
  8328. }
  8329. if(IsPlayerInRangeOfPoint(playerid, 3.5, 196.133499, -232.079284, 1.778618)) //Drug Dealer Job
  8330. {
  8331. Job[playerid] = JOB_DRUGDEALER;
  8332. MySQLUpdateInt(SQLID[playerid], "Job", Job[playerid], "players");
  8333. if(IsDonator[playerid] >= 2) JobSpamTime[playerid] = 0;
  8334. else JobSpamTime[playerid] = 30;
  8335. SendClientMessage(playerid, COLOR_WHITE, "Seu novo emprego é um traficante. Para ver o que você pode fazer, use '/ajuda trabalho'.");
  8336. MySQLUpdateInt(SQLID[playerid], "JobSpamTime", JobSpamTime[playerid], "players");
  8337. }
  8338. if(IsPlayerInRangeOfPoint(playerid, 3.5, 1235.2996, 173.2005, 2091.3513) && GetPlayerVirtualWorld(playerid) == 40073) //Taxi Job
  8339. {
  8340. new count = 0;
  8341. for(new v = 1, x = GetVehiclePoolSize(); v <= x; v++)
  8342. {
  8343. if(VehicleData[v][VehicleOwnerSQLID] == SQLID[playerid] && IsSuitableTaxiCar(v))
  8344. {
  8345. count++;
  8346. break;
  8347. }
  8348. }
  8349. if(count != 0)
  8350. {
  8351. Job[playerid] = JOB_TAXI;
  8352. MySQLUpdateInt(SQLID[playerid], "Job", Job[playerid], "players");
  8353. if(IsDonator[playerid] >= 2) JobSpamTime[playerid] = 0;
  8354. else JobSpamTime[playerid] = 30;
  8355. SendClientMessage(playerid, COLOR_WHITE, "Seu novo emprego é um taxista. Para ver o que você pode fazer, use '/ajuda trabalho'.");
  8356. MySQLUpdateInt(SQLID[playerid], "JobSpamTime", JobSpamTime[playerid], "players");
  8357. }
  8358. else return SysMsg(playerid, "Você deve ter um dos seguintes veículos para obter esse trabalho: Taxi, Cabbie, Moonbeam, Admiral ou Premier.");
  8359. }
  8360. return true;
  8361. }
  8362. CMD:deixartrabalho(playerid, params[])//deixartrabalho //
  8363. {
  8364. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  8365. if(Job[playerid] == 0) return SysMsg(playerid,"Você não tem nenhum trabalho para sair.");
  8366. if(JobSpamTime[playerid] > 0) return SysMsgF(playerid, "Spam do trabalho: Você ainda tem %i minutos antes de sair.", JobSpamTime[playerid]);
  8367. new oldJobName[40];
  8368. switch(Job[playerid])
  8369. {
  8370. case JOB_MECHANIC: oldJobName = "um Mecanico";
  8371. case JOB_MAINTENANCE: oldJobName = "um Funcionário de manutenção";
  8372. case JOB_DRUGDEALER: oldJobName = "um Traficante de drogas";
  8373. case JOB_TAXI: oldJobName = "um Táxista";
  8374. }
  8375. Job[playerid] = 0;
  8376. if(IsDonator[playerid] >= 2) JobSpamTime[playerid] = 0;
  8377. else JobSpamTime[playerid] = 30;
  8378. JobDuty[playerid] = 0;
  8379. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET Job = 0, JobSpamTime = %i WHERE id = %i", JobSpamTime[playerid], SQLID[playerid]);
  8380. mysql_pquery(conn, mquery);
  8381. SendClientMessageF(playerid, COLOR_WHITE, "Você saiu do trabalho, agora não é mais %s.", oldJobName);
  8382. return true;
  8383. }
  8384. CMD:trabalho(playerid, params[])
  8385. {
  8386. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  8387. new status[10], skin;
  8388. if(sscanf(params, "s[4]i", status, skin)) return SysMsg(playerid,"Use: /trabalho ['on' ou 'off'] [Roupa de trabalho 1/2/3/4]");
  8389. if(Job[playerid] == JOB_MAINTENANCE)
  8390. {
  8391. if(!IsPlayerInRangeOfPoint(playerid, 3.0, 2237.668945, 23.48138, 26.45635)) return SysMsg(playerid, "Você deve estar no prédio de manutenção para executar esta ação.");
  8392. if(strcmp("on",status,true) == 0)
  8393. {
  8394. if(JobDuty[playerid] == 1) return SysMsg(playerid, "Você já está em serviço.");
  8395. if(skin == 0) return SysMsg(playerid,"Use: /trabalho On [Roupas: 1, 2, 3 ou 4]");
  8396. if(skin < 1 || skin > 4) return SysMsg(playerid,"Para você trabalhar, deve estar vestido com a roupa 1, 2, 3 ou 4.");
  8397. switch(skin)
  8398. {
  8399. case 1: SetPlayerSkinEx(playerid, 27);
  8400. case 2: SetPlayerSkinEx(playerid, 16);
  8401. case 3: SetPlayerSkinEx(playerid, 50);
  8402. case 4: SetPlayerSkinEx(playerid, 8);
  8403. }
  8404. JobDuty[playerid] = 1;
  8405. SendClientMessage(playerid, COLOR_BLUE, "Agora você está trabalhando com manutenções. Use /picklitter e para parar de trabalhar use (/duty off).");
  8406. return true;
  8407. }
  8408. else if(strcmp("off",status,true) == 0)
  8409. {
  8410. if(JobDuty[playerid] == 0) return SysMsg(playerid, "Você já está fora de serviço.");
  8411. SetPlayerSkinEx(playerid, cPlayersSkin[playerid]);
  8412. JobDuty[playerid] = 0;
  8413. SendClientMessage(playerid, COLOR_BLUE, "Agora você está fora de serviço.");
  8414. return true;
  8415. }
  8416. }
  8417. if(Job[playerid] == JOB_TAXI)
  8418. {
  8419. if(strcmp("on",status,true) == 0)
  8420. {
  8421. if(JobDuty[playerid] == 1) return SysMsg(playerid, "Você já está em serviço.");
  8422. new vehicleid = GetPlayerVehicleID(playerid);
  8423. if(!IsSuitableTaxiCar(vehicleid)) return SysMsg(playerid, "Você deve estar em um veículo de táxi adequado para entrar em serviço. (Taxi, Cabbie, Premier, Moonbeam ou Admiral)");
  8424. switch(GetVehicleModel(vehicleid))
  8425. {
  8426. case 445: vTaxiSign[vehicleid] = CreateVehicleObject(19308, vehicleid, 0.0, 0.0, 0.915, 0.0, 0.0, 90.0);
  8427. case 426: vTaxiSign[vehicleid] = CreateVehicleObject(19308, vehicleid, 0.0, 0.0, 0.9325, 0.0, 0.0, 90.0);
  8428. case 418: vTaxiSign[vehicleid] = CreateVehicleObject(19308, vehicleid, 0.0, 0.0, 1.12, 0.0, 0.0, 90.0);
  8429. }
  8430. MyTaxiCar[playerid] = vehicleid;
  8431. JobDuty[playerid] = 1;
  8432. format(gstr, sizeof(gstr),"[Cabbie Co] %s esta em serviço, ligue para 444, se você precisa de táxi.", NameEx(playerid));
  8433. SendClientMessageToAllLogged(COLOR_YELLOW,gstr);
  8434. SendClientMessage(playerid, COLOR_WHITE, "Agora você então em serviço de {FBFF00}Taxista.");
  8435. return true;
  8436. }
  8437. else if(strcmp("off",status,true) == 0)
  8438. {
  8439. if(JobDuty[playerid] == 0) return SysMsg(playerid, "Você não está trabalhando.");
  8440. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você deve estar em um veículo para usar este comando.");
  8441. if(!IsSuitableTaxiCar(GetPlayerVehicleID(playerid))) return SysMsg(playerid, "Você deve estar em um veículo de táxi adequado.");
  8442. new v = GetPlayerVehicleID(playerid);
  8443. if(vTaxiSign[v] != INVALID_OBJECT_ID) DestroyDynamicObjectEx(vTaxiSign[v], "vTaxiSign[v]");
  8444. vTaxiSign[v] = INVALID_OBJECT_ID;
  8445. MyTaxiCar[playerid] = 0;
  8446. JobDuty[playerid] = 0;
  8447. SendClientMessage(playerid, COLOR_WHITE, "Agora você está ofera de serviço de {FBFF00}Taxista.");
  8448. return true;
  8449. }
  8450. }
  8451. return true;
  8452. }
  8453. //taxi commands
  8454. CMD:oferecertarifa(playerid, params[])
  8455. {
  8456. if(!Logged{playerid}) return true;
  8457. if(Job[playerid] == JOB_TAXI)
  8458. {
  8459. new playa = -1;
  8460. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /oferecertarifa [player id ou nome]");
  8461. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  8462. new vehicleid = GetPlayerVehicleID(playerid);
  8463. if(!IsSuitableTaxiCar(vehicleid)) return SysMsg(playerid,"Você deve estar em um veículo apropriado para usar isso.");
  8464. if(TaxiFareID[playerid] > -1) return SysMsg(playerid,"Você já tem uma tarifa.");
  8465. if(GetPlayerVehicleID(playa) != vehicleid) return SysMsg(playerid,"Essa pessoa precisa estar no mesmo táxi que você.");
  8466. if(TaxiMeter[playerid] == 1) return SysMsg(playerid,"O taxímetro deve estar desligado.");
  8467. TaxiForceFare[playerid] = playa;
  8468. format(gstr, sizeof(gstr),"O taxísta %s está esperando você confirmar o pedido de táxi. Use '/aceitar taxi' para confirmar, ou saia do veiculo. (O valor da viagem será de $%i)", NameEx(playerid), MyFareCharge[playerid]);
  8469. SendClientMessage(playa,COLOR_WHITE,gstr);
  8470. format(gstr, sizeof(gstr),"Você ofereceu a %s uma corrida de táxi, ele(a) precisa aceitar primeiro.", NameEx(playa));
  8471. SendClientMessage(playerid,COLOR_WHITE,gstr);
  8472. }
  8473. else return SysMsg(playerid,"Você deve ser um motorista de táxi para usar isso.");
  8474. return true;
  8475. }
  8476. CMD:taximetro(playerid, params[])
  8477. {
  8478. if(!Logged{playerid}) return true;
  8479. if(TaxiForceFare[playerid] > -1) return SysMsg(playerid,"You cant change the fare while you have a pending customer.");
  8480. if(Job[playerid] == JOB_TAXI)
  8481. {
  8482. new newfare = -1;
  8483. if(sscanf(params, "i", newfare)) return SysMsg(playerid,"Use: /taximetro [Valor 0-25]");
  8484. if(newfare < 0 || newfare > 25) return SysMsg(playerid,"O valor deve ser entre 0 e 25.");
  8485. if(newfare > MyFareCharge[playerid] && TaxiFareID[playerid] > -1) return SysMsg(playerid,"Você não pode aumentar a tarifa quando você tem um passageiro, sinta-se livre para diminuí-lo se quiser.");
  8486. if(MyFareCharge[playerid] == newfare) return SysMsg(playerid,"Sua tarifa já está definida.");
  8487. new oldfare = MyFareCharge[playerid];
  8488. MyFareCharge[playerid] = newfare;
  8489. MySQLUpdateInt(SQLID[playerid], "FareRate", MyFareCharge[playerid], "players");
  8490. if(TaxiFareID[playerid] > -1)
  8491. {
  8492. format(gstr, sizeof(gstr),"O seu taxista alterou a tarifa para {4BB74C}$%i{FFFFFF}. (Anteriormente era $%i)", MyFareCharge[playerid], oldfare);
  8493. SendClientMessage(TaxiFareID[playerid],COLOR_WHITE,gstr);
  8494. }
  8495. format(gstr, sizeof(gstr),"Sua nova tarifa será incrementada por {4BB74C}$%i{FFFFFF} a partir de agora. (Anteriormente era $%i)", MyFareCharge[playerid], oldfare);
  8496. SendClientMessage(playerid,COLOR_WHITE,gstr);
  8497. }
  8498. else return SysMsg(playerid,"Você deve ser um motorista de táxi para usar isso.");
  8499. return true;
  8500. }
  8501. CMD:meutaximetro(playerid, params[])//meutaximetro
  8502. {
  8503. if(!Logged{playerid}) return true;
  8504. if(Job[playerid] == JOB_TAXI)
  8505. {
  8506. format(gstr, sizeof(gstr),"A tarifa do taxímetro é {4BB74C}$%i", MyFareCharge[playerid]);
  8507. SendClientMessage(playerid,COLOR_WHITE,gstr);
  8508. }
  8509. else return SysMsg(playerid,"Você deve ser um motorista de táxi para usar isso.");
  8510. return true;
  8511. }
  8512. CMD:cancelartaximetro(playerid, params[])//cancelartaximetro
  8513. {
  8514. if(!Logged{playerid}) return true;
  8515. if(Job[playerid] == JOB_TAXI)
  8516. {
  8517. if(TaxiFareID[playerid] == -1) return SysMsg(playerid,"Você não tem uma tarifa para cancelar.");
  8518. new playa = TaxiFareID[playerid];
  8519. TaxiFare[playa] = 0;
  8520. TaxiFareID[playerid] = -1;
  8521. TaxiMeter[playerid] = 0;
  8522. SendClientMessage(playa, COLOR_WHITE, "O motorista cancelou sua tarifa..");
  8523. }
  8524. else return SysMsg(playerid,"Você deve ser um taxista para usar este comando.");
  8525. return true;
  8526. }
  8527. CMD:cancelartaxi(playerid, params[])//canceltaxi
  8528. {
  8529. if(!Logged{playerid}) return true;
  8530. if(PlayerCalledTaxi[playerid] == 0) return SysMsg(playerid,"Você não chamou nenhum Táxi.");
  8531. new rnd = random(5);
  8532. foreach(new Taxi: Player)
  8533. {
  8534. if(Job[Taxi] == JOB_TAXI && JobDuty[Taxi] == 1)
  8535. {
  8536. SetPlayerMarkerForPlayer(Taxi, playerid, 0xFFFFFF00);
  8537. switch(rnd)
  8538. {
  8539. case 0: SendClientMessage(Taxi, COLOR_YELLOW, "Central Dispatcher: {FFFFFF}\"Esqueça 'sobre esse chamado, eles não querem mais um táxi'.\" ((uma chamada foi cancelada, marcador removido))");
  8540. case 1: SendClientMessage(Taxi, COLOR_YELLOW, "Central Dispatcher: {FFFFFF}\"Vocês estão perdendo meus clientes! Pare de ler jornais e vá trabalhar!\" ((uma chamada foi cancelada, marcador removido))");
  8541. case 2: SendClientMessage(Taxi, COLOR_YELLOW, "Central Dispatcher: {FFFFFF}\"Meu Deusm você mesmo me escuta! Quando uma chamada vem você deve ir buscalos, não ignorar!\" ((uma chamada foi cancelada, marcador removido))");
  8542. case 3: SendClientMessage(Taxi, COLOR_YELLOW, "Central Dispatcher: {FFFFFF}\"Lá vai outro cliente pagante! Eu seria melhor fazendo isto eu mesmo.\" ((uma chamada foi cancelada, marcador removido))");
  8543. case 4: SendClientMessage(Taxi, COLOR_YELLOW, "Central Dispatcher: {FFFFFF}\"Ignore esse trabalho, eles ligaram e cancelaram.\" ((uma chamada foi cancelada, marcador removido))");
  8544. }
  8545. }
  8546. }
  8547. PlayerCalledTaxi[playerid] = 0;
  8548. TaxiFare[playerid] = 0;
  8549. SendClientMessage(playerid,COLOR_YELLOW,"[Táxi cancelado] Não se esqueça que nosso número é 444 se você precisar de nós novamente!");
  8550. return true;
  8551. }
  8552. CMD:meteron(playerid, params[])
  8553. {
  8554. if(!Logged{playerid}) return true;
  8555. if(Job[playerid] == JOB_TAXI)
  8556. {
  8557. new vehicleid = GetPlayerVehicleID(playerid);
  8558. if(!IsSuitableTaxiCar(vehicleid)) return SysMsg(playerid,"Você deve estar em um veículo apropriado para usar isso.");
  8559. if(TaxiFareID[playerid] == -1) return SysMsg(playerid,"Seu veiculo não tem taxímetro.");
  8560. if(GetPlayerVehicleID(TaxiFareID[playerid]) != vehicleid) return SysMsg(playerid,"Sua taximetro não está no seu veículo.");
  8561. if(TaxiMeter[playerid] == 1) return SysMsg(playerid,"O taxímetro já está ligado.");
  8562. TaxiMeter[playerid] = 1;
  8563. SendClientMessage(playerid, COLOR_WHITE, "Meter is now on.");
  8564. format(gstr, sizeof(gstr),"* %s liga o táximetro do veiculo %s. *", NameEx(playerid), GetVehicleName(vehicleid));
  8565. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  8566. }
  8567. else return SysMsg(playerid,"Você deve ser um motorista de táxi para usar isso.");
  8568. return true;
  8569. }
  8570. CMD:meteroff(playerid, params[])
  8571. {
  8572. if(!Logged{playerid}) return true;
  8573. if(Job[playerid] == JOB_TAXI)
  8574. {
  8575. new vehicleid = GetPlayerVehicleID(playerid);
  8576. if(!IsSuitableTaxiCar(vehicleid)) return SysMsg(playerid,"Você deve estar em um veículo apropriado para usar isso.");
  8577. if(TaxiMeter[playerid] == 0) return SysMsg(playerid,"O taxímetro do veiculo já está desligado.");
  8578. TaxiMeter[playerid] = 0;
  8579. SendClientMessage(playerid, COLOR_WHITE, "Taxímetro desligado.");
  8580. format(gstr, sizeof(gstr),"* %s desliga o taxímetro do veiculo %s. *", NameEx(playerid), GetVehicleName(vehicleid));
  8581. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  8582. }
  8583. else return SysMsg(playerid, "Você deve ser um motorista de táxi para usar isso.");
  8584. return true;
  8585. }
  8586. CMD:atualizarmapa(playerid, params[])//atualizarmapa
  8587. {
  8588. if(!Logged{playerid}) return true;
  8589. if(Job[playerid] == JOB_TAXI)
  8590. {
  8591. new count = 0;
  8592. foreach(new i: Player)
  8593. {
  8594. if(PlayerCalledTaxi[i] == 1 && Logged{i})
  8595. {
  8596. count ++;
  8597. SetPlayerMarkerForPlayer(i, playerid, COLOR_YELLOW);
  8598. }
  8599. }
  8600. if(count == 0) return SendClientMessage(playerid, COLOR_WHITE, "Nenhum novo cliente foi adicionado ao seu mini-mapa.");
  8601. SendClientMessage(playerid, COLOR_WHITE, "Seu mini-mapa foi atualizado com todos os novos clientes à espera de um táxi.");
  8602. }
  8603. else return SysMsg(playerid,"Você deve ser um motorista de táxi para usar isso.");
  8604. return true;
  8605. }
  8606. CMD:limparchamado(playerid, params[])
  8607. {
  8608. if(!Logged{playerid}) return true;
  8609. if(Job[playerid] != JOB_TAXI) return SysMsg(playerid,"Você deve estar no RTCR para usar esse recurso.");
  8610. new playa;
  8611. if(sscanf(params, "u", playa)) return SysMsg(playerid, "Use: /limparchamado [ID ou nome do jogador]");
  8612. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  8613. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  8614. if(PlayerCalledTaxi[playa] == 0) return SysMsg(playerid,"Nenhum marcador para remover.");
  8615. foreach(new i: Player)
  8616. {
  8617. if(Logged{i} && Job[i] == JOB_TAXI)
  8618. {
  8619. SendClientMessageF(i, COLOR_YELLOW, "(( [TAXI]: %s cancelou o pedido de taxi de %s (( Marcador foi removido ))", NameEx(playerid), NameEx(playa));
  8620. SetPlayerMarkerForPlayer(i, playa, 0xFFFFFF00);
  8621. }
  8622. }
  8623. return true;
  8624. }
  8625. //mechanic commands//mecanicochamadas
  8626. CMD:mecanicochamadas(playerid, params[])
  8627. {
  8628. if(Job[playerid] != JOB_MECHANIC) return SysMsg(playerid, "Você precisa ser um mecanico para usar este comando.");
  8629. new calls = 0;
  8630. foreach(new i: Player)
  8631. {
  8632. if(HasActiveMechanicCall{i} && i != playerid)
  8633. {
  8634. sgstr[0] = EOS;
  8635. strunpack(sgstr, MechanicCall[i]);
  8636. SendSplitMessageF(playerid, COLOR_WHITE, "[Pedido de Mecânico]: Número de telefone: %i | Detalhes: %s", PhoneData[i][pNumber], sgstr);
  8637. calls ++;
  8638. }
  8639. }
  8640. if(calls == 0) return SysMsg(playerid, "Atualmente não existe chamada ativa.");
  8641. return true;
  8642. }
  8643. CMD:limparchamadamecanica(playerid, params[])
  8644. {
  8645. if(Job[playerid] != JOB_MECHANIC) return SysMsg(playerid, "Você precisa ser um mecanico para usar este comando.");
  8646. new playa = -1;
  8647. if(sscanf(params, "u", playa)) return SysMsg(playerid, "Use: /limparchamadamecanica [playerID ou nome]");
  8648. if(!HasActiveMechanicCall{playa}) return SysMsg(playerid, "Essa pessoa não tem uma ligação para limpar.");
  8649. HasActiveMechanicCall{playa} = false;
  8650. strdel(MechanicCall[playa], 0, 128);
  8651. SendClientMessage(playerid, COLOR_WHITE, "Você cancelou a chamada.");
  8652. return true;
  8653. }
  8654. CMD:oferecerpintura(playerid, params[])
  8655. {
  8656. if(!Logged{playerid}) return SysMsg(playerid,"Você precisa estar logado no servidor para usar essa função.");
  8657. if(Job[playerid] == JOB_MECHANIC)
  8658. {
  8659. new myVehicle = GetPlayerVehicleID(playerid);
  8660. if(myVehicle == 0) return SysMsg(playerid,"Você deve estar em um veículo para oferecer isso.");
  8661. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você não deve ser o motorista para oferecer isso.");
  8662. new playa = -1, color1, color2, Price;
  8663. if(sscanf(params, "uiii", playa, Price, color1, color2)) return SysMsg(playerid,"Use: /oferecerpintura [ID ou nome do jogador] [preço] [cor primária] [cor secundária]");
  8664. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  8665. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  8666. if(playa == playerid) return SysMsg(playerid,"Você não pode fazer isso em si mesmo.");
  8667. new theirVehicle = GetPlayerVehicleID(playa);
  8668. if(myVehicle != theirVehicle) return SysMsg(playerid,"Você deve estar no mesmo veículo que o cliente para oferecer isso.");
  8669. if(GetPlayerState(playa) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"O cliente deve ser o motorista para oferecer isso.");
  8670. if(AwaitingSpray[playa] == 1) return SysMsg(playerid,"Outro mecanico já fez essa oferta para um jogador.");
  8671. if(Price < 0 || Price > 10000) return SysMsg(playerid,"Preço inválidp. [$0 - $10,000 somente]");
  8672. if(color1 < 0 || color1 > 255) return SysMsg(playerid,"Cor inválida 1. [0 - 255 somente]");
  8673. if(color2 < 0 || color2 > 255) return SysMsg(playerid,"Cor inválida 2. [0 - 255 somente]");
  8674. AwaitingSpray[playa] = 1;
  8675. GoingToSprayVehicleID[playerid] = myVehicle;
  8676. MechanicSpray[myVehicle][0] = playerid;
  8677. MechanicSpray[myVehicle][1] = playa;
  8678. MechanicSpray[myVehicle][2] = color1;
  8679. MechanicSpray[myVehicle][3] = color2;
  8680. MechanicSpray[myVehicle][4] = Price;
  8681. MechanicSpray[myVehicle][5] = myVehicle;
  8682. SendClientMessageF(playa, COLOR_WHITE, "O mecanico %s ofereceu pintar seu veiculo %s. Ele irá pintar %s(%i) e %s(%i) por $%i.", NameEx(playerid), GetVehicleName(myVehicle), VehicleColors[color1], color1, VehicleColors[color2], color2, Price);
  8683. SendClientMessage(playa, COLOR_WHITE, "Use '/aceitar spray' para confirmar.");
  8684. SendClientMessageF(playerid, COLOR_WHITE, "Você ofereceu a %s uma pintura para o veiculo %s. Você pintará %s(%i) e %s(%i) por $%i. Espere o mesmo aceitar a proposta...", NameEx(playa), GetVehicleName(myVehicle), VehicleColors[color1], color1, VehicleColors[color2], color2, Price);
  8685. }
  8686. return true;
  8687. }
  8688. CMD:respray(playerid, params[]) return cmd_spray(playerid, params);
  8689. CMD:colourcar(playerid, params[]) return cmd_spray(playerid, params);
  8690. CMD:colorcar(playerid, params[]) return cmd_spray(playerid, params);
  8691. CMD:spray(playerid, params[])
  8692. {
  8693. if(!Logged{playerid}) return SysMsg(playerid,"Você precisa estar logado no servidor para usar essa função.");
  8694. new v = GetPlayerVehicleID(playerid);
  8695. if(Job[playerid] == JOB_MECHANIC || IsPlayerAdmin(playerid))
  8696. {
  8697. new bodyshop = -1;
  8698. if(IsPlayerInDynamicArea(playerid, GarageAreas[0])) bodyshop = 1; //palomino creek
  8699. if(IsPlayerInDynamicArea(playerid, GarageAreas[1])) bodyshop = 2; //dillimore
  8700. if(IsPlayerInDynamicArea(playerid, GarageAreas[2])) bodyshop = 3; //fort carson
  8701. if(IsPlayerInDynamicArea(playerid, GarageAreas[3])) bodyshop = 4; //el q
  8702. if(IsPlayerInDynamicArea(playerid, GarageAreas[4])) bodyshop = 5; //airstrip
  8703. if(IsPlayerInDynamicArea(playerid, GarageAreas[5])) bodyshop = 6; //bayside
  8704. if(IsPlayerInDynamicArea(playerid, GarageAreas[6])) bodyshop = 7; //angel pine
  8705. if(bodyshop == -1) return SysMsg(playerid,"Você precisa estar em uma garagem de oficina para fazer isso.");
  8706. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você precisa estar em um veiculo para repinta-lo.");
  8707. new color1, color2;
  8708. if(sscanf(params, "iI(-1)", color1, color2)) return SysMsg(playerid,"Use: /spray [Cor primária] [Optional: Cor secundária]");
  8709. if(color1 < 0 || color1 > 255) return SysMsg(playerid,"A cor primária, deve ser entre 0 e 255");
  8710. if(color2 == -1) color2 = color1;
  8711. else if(color2 < 0 || color2 > 255) return SysMsg(playerid,"A cor secundária 2, deve ser entre 0 e 255.");
  8712. if(FVehicleData[v][FVFaction] > 0)
  8713. {
  8714. if(FVehicleData[v][FVFaction] != Faction[playerid]) return SysMsg(playerid, "Você não pode pintar veiculo que não faz parte da sua facção");
  8715. mysql_format(conn, mquery, sizeof(mquery), "UPDATE fveh SET Col1 = %i, Col2 = %i WHERE id = %i", color1, color2, FVehicleData[v][FVSQLID]);
  8716. mysql_pquery(conn, mquery);
  8717. FVehicleData[v][FVCol1] = color1;
  8718. FVehicleData[v][FVCol2] = color2;
  8719. ChangeVehicleColorEx(v, color1, color2);
  8720. ShowInfoText(playerid,"~G~R~R~E~B~S~Y~P~P~R~W~A~G~Y",3000);
  8721. SendClientMessageF(playerid, COLOR_WHITE, "Cor do veiculo de facção alterado: %s(%i) & %s(%i)", VehicleColors[color1], color1, VehicleColors[color2], color2);
  8722. format(gstr, sizeof(gstr),"* %s começa a repintar o veiculo %s de %s e %s. *", NameRP(playerid), GetVehicleName(v), VehicleColors[color1], VehicleColors[color2]);
  8723. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  8724. return true;
  8725. }
  8726. else if(VehicleData[v][VehicleOwnerSQLID] > 0)
  8727. {
  8728. if(VehicleData[v][VehicleOwnerSQLID] != SQLID[playerid]) return SysMsg(playerid, "Você não é dono deste veículo., por favor use /oferecerpintura para repintar o veículo para o proprietário.");
  8729. mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET Color1 = %i, Color2 = %i WHERE id = %i", color1, color2, VehicleData[v][VehSQLID]);
  8730. mysql_pquery(conn, mquery);
  8731. VehicleData[v][vColor1] = color1;
  8732. VehicleData[v][vColor2] = color2;
  8733. ChangeVehicleColorEx(v, color1, color2);
  8734. ShowInfoText(playerid,"~G~R~R~E~B~S~Y~P~P~R~W~A~G~Y",3000);
  8735. SendClientMessageF(playerid, COLOR_WHITE, "Cor do veículo alterada para: %s(%i) & %s(%i)", VehicleColors[color1], color1, VehicleColors[color2], color2);
  8736. format(gstr, sizeof(gstr),"* %s começa pintar o veiculo %s de %s e %s. *", NameRP(playerid), GetVehicleName(v), VehicleColors[color1], VehicleColors[color2]);
  8737. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  8738. return true;
  8739. }
  8740. SysMsg(playerid, "Você só pode repintar seus próprios veículos com /spray.");
  8741. }
  8742. else return SysMsg(playerid, "Você deve ser um mecânico para repintar um veículos.");
  8743. return true;
  8744. }
  8745. CMD:nitro(playerid, params[])//nitro
  8746. {
  8747. if(!Logged{playerid}) return SysMsg(playerid,"Você precisa estar logado no servidor para usar essa função.");
  8748. if(Job[playerid] != JOB_MECHANIC) return SysMsg(playerid, "Você precisa ser mecanico para adicionar nitro em um veiculo.");
  8749. new VehicleId = GetPlayerVehicleID(playerid);
  8750. if(VehicleId == 0) return SysMsg(playerid,"Você precisa estar em um veiculo para adicionar nitros.");
  8751. if(Cash[playerid] < 50) return SysMsg(playerid,"Você precisa de $50 para adicionar nitros.");
  8752. if(Cash[playerid] - 50 <= 0) return SysMsg(playerid, "Você precisa de $50 para adicionar nitros.");
  8753. if(IsPlayerInInvalidNosVehicle(VehicleId) != 0) return SysMsg(playerid,"Você não pode adicionar o nitros a este veículo.");
  8754. if(GetVehicleComponentInSlot(VehicleId, CARMODTYPE_NITRO) != 0) return SysMsg(playerid, "Este veículo já tem nitro. Use /removemods em uma oficina de reparo para remover esta modificação.");
  8755. AddVehicleComponent(VehicleId, 1010);
  8756. PlayerPlaySound(playerid,SOUND_CAR_MOD,0,0,0);
  8757. ShowInfoText(playerid,"~G~Nitro ~W~Adicionado~n~~r~-$50",3000);
  8758. GivePlayerCash(playerid, -50);
  8759. format(gstr, sizeof(gstr),"* %s adiciona uma garrafa de nitro no %s. *", NameRP(playerid), GetVehicleName(VehicleId));
  8760. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  8761. if(!aspawned{VehicleId})
  8762. {
  8763. if(VehicleData[VehicleId][IdVehicle] == VehicleId && VehicleData[VehicleId][VehicleOwnerSQLID] > 0)
  8764. {
  8765. VehicleData[VehicleId][VehicleMod][CARMODTYPE_NITRO] = 1010;
  8766. MySQLUpdateInt(VehicleData[VehicleId][VehSQLID], "VehicleModNos", 1010, "vehicles");
  8767. return true;
  8768. }
  8769. if(FVehicleData[VehicleId][FVFaction] > 0 && FVehicleData[VehicleId][FactionVehID] == VehicleId)
  8770. {
  8771. FVehicleData[VehicleId][FVMod][CARMODTYPE_NITRO] = 1010;
  8772. MySQLUpdateInt(FVehicleData[VehicleId][FVSQLID], "FVModNos", 1010, "fveh");
  8773. return true;
  8774. }
  8775. }
  8776. return true;
  8777. }
  8778. CMD:hyd(playerid, params[])
  8779. {
  8780. if(!Logged{playerid}) return SysMsg(playerid,"Você precisa estar logado no servidor para usar essa função.");
  8781. if(Job[playerid] != JOB_MECHANIC) return SysMsg(playerid, "Você deve ser um mecânico para adicionar hidráulica aos veículos..");
  8782. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você deve estar em um veículo para adicionar hidráulica..");
  8783. new VehicleId = GetPlayerVehicleID(playerid);
  8784. if(CanVehicleHaveHydraulics(VehicleId) == 0) return SysMsg(playerid,"Este veículo não pode ter hidráulica.");
  8785. if(Cash[playerid] < 500) return SysMsg(playerid,"Você precisa de $500 para adicionar hidráulica.");
  8786. if(GetVehicleComponentInSlot(VehicleId, CARMODTYPE_HYDRAULICS) != 0) return SysMsg(playerid, "Este veículo já tem hidráulica. Use /removemods em uma garagem de reparo para remover isso.");
  8787. AddVehicleComponent(VehicleId, 1087);
  8788. PlayerPlaySound(playerid,SOUND_CAR_MOD,0,0,0);
  8789. ShowInfoText(playerid,"~R~hidraulica~W~ adicionada~n~~r~-$500",3000);
  8790. GivePlayerCash(playerid, -500);
  8791. format(gstr, sizeof(gstr),"* %s adiciona hidráulica ao %s. *", NameRP(playerid), GetVehicleName(VehicleId));
  8792. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  8793. if(!aspawned{VehicleId})
  8794. {
  8795. new slot = GetVehicleComponentType(1087);
  8796. if(VehicleData[VehicleId][IdVehicle] == VehicleId && VehicleData[VehicleId][VehicleOwnerSQLID] > 0)
  8797. {
  8798. VehicleData[VehicleId][VehicleMod][slot] = 1087;
  8799. MySQLUpdateInt(VehicleData[VehicleId][VehSQLID], "Mod10", VehicleData[VehicleId][VehicleMod][slot], "vehicles");
  8800. return true;
  8801. }
  8802. if(FVehicleData[VehicleId][FVFaction] > 0 && FVehicleData[VehicleId][FactionVehID] == VehicleId)
  8803. {
  8804. FVehicleData[VehicleId][FVMod][slot] = 1087;
  8805. MySQLUpdateInt(FVehicleData[VehicleId][FVSQLID], "FVModHyd", FVehicleData[VehicleId][FVMod][slot], "fveh");
  8806. return true;
  8807. }
  8808. }
  8809. return true;
  8810. }
  8811. CMD:trocaroleo(playerid, params[])
  8812. {
  8813. if(!Logged{playerid}) return true;
  8814. new VehID = GetPlayerVehicleID(playerid);
  8815. if(Inventory[playerid][EngineOil] == 0) return SysMsg(playerid,"Você não tem nenhum óleo.");
  8816. if(Job[playerid] != JOB_MECHANIC) return SysMsg(playerid,"Somente mecanicos podem trocar óleo do motor do veiculo.");
  8817. if(VehID > 0)
  8818. {
  8819. if(!VehicleHasEngine(VehID)) return SysMsg(playerid,"Este veículo não tem um motor, portanto, não precisa de uma mudança de óleo.");
  8820. if(GetVehicleSpeed(VehID, 0) > 0) return SysMsg(playerid,"Por favor, reduza sua velocidade para 0.");
  8821. if(VehicleBoots[VehID][0] == 0) return SysMsg(playerid,"Você precisa abrir o /capo do veiculo.");
  8822. if(EngineStatus[VehID] == 1) return SysMsg(playerid,"O motor deve estar desligado para mudar o óleo.");
  8823. if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso estando amarrado.");
  8824. if(InCarCharging[playerid] > 0) return SysMsg(playerid,"Por favor, aguarde até que o seu celular esteja carregado completo completamente.");
  8825. new Float:bonnety, Float:vx, Float:vy, Float:vz, Float:va;
  8826. GetVehicleEnginePos(GetVehicleModel(VehID), bonnety);
  8827. if(bonnety == 0 || IsBike(VehID) || IsHelicopter(VehID) || IsPlane(VehID) || IsBoat(VehID))
  8828. {
  8829. Inventory[playerid][EngineOil] = 0;
  8830. MySQLUpdateInt(SQLID[playerid], "HasEngineOil", Inventory[playerid][EngineOil], "players");
  8831. VehicleData[VehID][LastOilMileage] = VehicleData[VehID][Mileage];
  8832. MySQLUpdateFloat(VehicleData[VehID][VehSQLID], "LastOilMileage", VehicleData[VehID][LastOilMileage], "vehicles");
  8833. ToggleVehicleBonnet(VehID, 0);
  8834. VehicleBoots[VehID][0] = 0;
  8835. SendClientMessage(playerid, COLOR_WHITE, "(( OOC a mudança de óleo> Este veículo não suporta mudanças de óleo interactivas. O óleo foi substituído. ))");
  8836. }
  8837. else
  8838. {
  8839. RemovePlayerFromVehicle(playerid);
  8840. SetPlayerAttachedObject(playerid, HOLD_OBJECT_MISC, 2062, 6, 0.05, 0.05, 0.0, 0.0, 0.0, 0.0, 0.15, 0.15, 0.15);
  8841. GetVehiclePos(VehID, vx, vy, vz);
  8842. GetVehicleZAngle(VehID, va);
  8843. new Float:dist = DistanceBetweenPoints(vx, vy, vz, vx, bonnety+vy, vz);
  8844. vx += (dist * floatsin(-va, degrees));
  8845. vy += (dist * floatcos(-va, degrees));
  8846. ChangeOilPos[playerid][0] = vx;
  8847. ChangeOilPos[playerid][1] = vy;
  8848. ChangeOilPos[playerid][2] = vz;
  8849. ChangeOilVehID[playerid] = VehID;
  8850. SetPlayerCheckpointEx(playerid, vx, vy, vz, 1.0);
  8851. SendClientMessage(playerid, COLOR_WHITE, "> Continue perto do {FF0000}motor{FFFFFF} e use /trocaroleo para trocar o óleo do veiculo.");
  8852. }
  8853. }
  8854. else
  8855. {
  8856. if(ChangeOilPos[playerid][0] == 0) return SysMsg(playerid,"Você não está mudando nenhum óleo.");
  8857. if(ChangeOilVehID[playerid] == 0) return SysMsg(playerid,"Você não está mudando de óleo.");
  8858. if(!IsPlayerInRangeOfPoint(playerid, 1.5, ChangeOilPos[playerid][0], ChangeOilPos[playerid][1], ChangeOilPos[playerid][2])) return SysMsg(playerid,"Você deve estar perto do motor para mudar o óleo.");
  8859. TogglePlayerControllable(playerid, 0);
  8860. SetPlayerToFacePoint(playerid, ChangeOilPos[playerid][0], ChangeOilPos[playerid][1]);
  8861. OnePlayAnim(playerid, "BD_FIRE", "wash_up", 4.0, 1, 0, 0, 0, 0);
  8862. SetTimerEx("FinishOilChange", 10000, 0, "dd", playerid, ChangeOilVehID[playerid]);
  8863. format(gstr, sizeof(gstr),"* %s começa a mudar o olho do veiculo %s. *",NameRP(playerid),GetVehicleName(ChangeOilVehID[playerid]));
  8864. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  8865. Inventory[playerid][EngineOil] = 0;
  8866. MySQLUpdateInt(SQLID[playerid], "HasEngineOil", Inventory[playerid][EngineOil], "players");
  8867. }
  8868. return true;
  8869. }
  8870. //maintenance worker commands //revisar trabalho
  8871. CMD:picklitter(playerid, params[])
  8872. {
  8873. if(!Logged{playerid}) return SysMsg(playerid,"Você precisa estar logado no servidor para usar essa função.");
  8874. if(Job[playerid] != JOB_MAINTENANCE) return SysMsg(playerid,"Somente os Trabalhadores de Manutenção podem realizar esta ação.");
  8875. if(JobDuty[playerid] == 0) return SysMsg(playerid,"Você deve estar no dever do trabalho para executar esta ação.");
  8876. if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid,"Você não pode fazer isso em um veículo.");
  8877. for(new i = 0; i < MAX_LITTER; i++)
  8878. {
  8879. if(LitterPlaced[i] > 0)
  8880. {
  8881. new Float:litterpos[3];
  8882. GetDynamicObjectPos(LitterPlaced[i], litterpos[0], litterpos[1], litterpos[2]);
  8883. if(IsPlayerInRangeOfPoint(playerid, 3.0, litterpos[0], litterpos[1], litterpos[2]))
  8884. {
  8885. new curpay, litters;
  8886. MySQLFetchInt(SQLID[playerid], "Litters", litters, "players");
  8887. if(litters > 30) return SysMsg(playerid, "O seu saco está cheio, leve-o para o QG e esvazie-o.");
  8888. OnePlayAnim(playerid, "KNIFE", "knife_4", 2.0, 0, 0, 0, 0, 0);
  8889. DestroyDynamicObjectEx(LitterPlaced[i], "LitterPlaced[i]");
  8890. LitterPlaced[i] = 0;
  8891. gLitterCount --;
  8892. litters ++;
  8893. MySQLUpdateInt(SQLID[playerid], "Litters", litters, "players");
  8894. curpay = litters * 10;
  8895. format(gstr, sizeof(gstr),"* %s usa uma lixeira para colocar algum lixo em uma bolsa. *", NameRP(playerid));
  8896. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  8897. format(gstr, sizeof(gstr),"Litter Picked! +$10 adicionado ao seu sub-Pay. Você pode coletar este pagamento de $%i a qualquer momento ou continuar a trabalhar.", curpay);
  8898. SendClientMessage(playerid, COLOR_WHITE, gstr);
  8899. new bonus, tmp_litter = litters;
  8900. if(tmp_litter >= 10)
  8901. {
  8902. do
  8903. {
  8904. tmp_litter -= 10;
  8905. bonus ++;
  8906. }
  8907. while (tmp_litter >= 10);
  8908. }
  8909. bonus *= 100;
  8910. format(gstr, sizeof(gstr),"Current litter bag: %i x Litter, meaning you could get a bonus of $%i for emptying now.", litters, bonus);
  8911. SendClientMessage(playerid, COLOR_WHITE, gstr);
  8912. return true;
  8913. }
  8914. }
  8915. }
  8916. SysMsg(playerid,"You are not near any litter.");
  8917. return true;
  8918. }
  8919. CMD:checklitterbag(playerid, params[])
  8920. {
  8921. if(!Logged{playerid}) return SysMsg(playerid,"Você precisa estar logado no servidor para usar essa função.");
  8922. if(Job[playerid] != JOB_MAINTENANCE) return SysMsg(playerid,"Only Maintenance Workers can perform this action.");
  8923. if(JobDuty[playerid] == 0) return SysMsg(playerid,"You must be on job duty to perform this action.");
  8924. new curpay, litters;
  8925. MySQLFetchInt(SQLID[playerid], "Litters", litters, "players");
  8926. curpay = litters * 10;
  8927. new bonus, tmp_litter = litters;
  8928. if(tmp_litter >= 10)
  8929. {
  8930. do
  8931. {
  8932. tmp_litter -= 10;
  8933. bonus ++;
  8934. }
  8935. while(tmp_litter >= 10);
  8936. }
  8937. bonus *= 100;
  8938. format(gstr, sizeof(gstr),"Current litter bag has %i x Litter. Meaning $%i pay and a bonus of $%i for emptying now.", litters, curpay, bonus);
  8939. SendClientMessage(playerid, COLOR_WHITE, gstr);
  8940. return true;
  8941. }
  8942. CMD:emptylitterbag(playerid, params[])//REVISAR
  8943. {
  8944. if(!Logged{playerid}) return SysMsg(playerid,"Você precisa estar logado no servidor para usar essa função.");
  8945. if(Job[playerid] != JOB_MAINTENANCE) return SysMsg(playerid,"Somente os trabalhadores de manutenção podem executar esta ação.");
  8946. if(JobDuty[playerid] == 0) return SysMsg(playerid,"Você deve estar no dever de trabalho para executar esta ação.");
  8947. if(!IsPlayerInRangeOfPoint(playerid, 3.0, 2237.668945, 23.48138, 26.45635)) return SysMsg(playerid,"Você deve estar no edifício de manutenção para executar esta ação.");
  8948. new curpay, litters, count;
  8949. MySQLFetchInt(SQLID[playerid], "Litters", litters, "players");
  8950. if(litters == 0) return SysMsg(playerid, "You have no litter to empty.");
  8951. curpay = litters * 10;
  8952. count = litters;
  8953. new bonus;
  8954. if(litters >= 10)
  8955. {
  8956. do
  8957. {
  8958. litters -= 10;
  8959. bonus ++;
  8960. }
  8961. while(litters >= 10);
  8962. }
  8963. bonus *= 100;
  8964. new totalpay = curpay + bonus;
  8965. MySQLUpdateInt(SQLID[playerid], "Litters", 0, "players");//revisar
  8966. GivePlayerCash(playerid, totalpay);
  8967. SendClientMessageF(playerid, COLOR_WHITE, "[Trabalhador da manutenção] Litter: %i, Pagamento Base ($10 per litter): $%i, Bonus ($100 per 10 litter): $%i [TOTAL PAY: $%i]", count, curpay, bonus, totalpay);
  8968. if(count >= 10) UnlockAchievement(playerid, 38);
  8969. return true;
  8970. }
  8971. //end of job commands
  8972. //Phone commands
  8973. CMD:p(playerid, params[])
  8974. {
  8975. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  8976. if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid,"Você não tem um celular móvel.");
  8977. if(IsPhoneRinging[playerid] == -1) return SysMsg(playerid,"Não há ninguém na linha.");
  8978. if(PhoneData[playerid][pPower] == 0) return SysMsg(playerid, "Seu celular está desligado, então você não pode atender a chamada.");
  8979. if(CallerID[playerid] != -1 || CallerService[playerid] != -1) return SysMsg(playerid,"Você já está no telefone.");
  8980. if(IsPlayerInWater(playerid)) return SysMsg(playerid,"Você não pode usar seu celular se estiver na água.");
  8981. if(IsCuffed[playerid] == 1) return SysMsg(playerid, "Você não pode usar o celular enquanto estiver algemado.");
  8982. if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  8983. {
  8984. if(AttachedObjects[playerid][6][aoModelID] != 0)
  8985. {
  8986. RemovePlayerAttachedObject(playerid, 6);
  8987. }
  8988. AttachedObjects[playerid][6][aoModelID] = 330;
  8989. AttachedObjects[playerid][6][aoBone] = 6;
  8990. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USECELLPHONE);
  8991. SetPlayerAttachedObject(playerid, 6, 330, 6);
  8992. }
  8993. CallerID[playerid] = IsPhoneRinging[playerid];
  8994. IsPhoneRinging[playerid] = -1;
  8995. if(UsingPayPhone[CallerID[playerid]] == 0) LastNumber[playerid] = PhoneData[CallerID[playerid]][pNumber];
  8996. SendClientMessage(playerid, COLOR_GREY, "Você pegou seu celular.");
  8997. SendClientMessage(CallerID[playerid], COLOR_GREY, "Atenderam a chamada...");
  8998. format(gstr, sizeof(gstr),"* %s pega seu celular do bolso e atende a chamada... *",NameRP(playerid));
  8999. SetPlayerChatBubble(playerid, gstr, COLOR_EMOTE, 15.0, 6000);
  9000. return true;
  9001. }
  9002. CMD:pickup(playerid, params[]) return cmd_p(playerid, params);
  9003. CMD:finalizar(playerid)//finalizar
  9004. {
  9005. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  9006. if(!UsingPayPhone[playerid] && PhoneData[playerid][pPower] == 0) return SysMsg(playerid, "Seu telefone está desligado.");
  9007. if(Inventory[playerid][MobilePhone] == 0 && UsingPayPhone[playerid] == 0) return SysMsg(playerid,"Você não está usando um telefone.");
  9008. if(CallerID[playerid] != -1 || IsPhoneRinging[playerid] != -1)
  9009. {
  9010. new playa = CallerID[playerid];
  9011. if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USECELLPHONE)
  9012. {
  9013. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_STOPUSECELLPHONE);
  9014. AttachedObjects[playerid][6][aoModelID] = 0;
  9015. AttachedObjects[playerid][6][aoBone] = 0;
  9016. RemovePlayerAttachedObject(playerid, 6);
  9017. }
  9018. if(GetPlayerSpecialAction(playa) == SPECIAL_ACTION_USECELLPHONE)
  9019. {
  9020. SetPlayerSpecialAction(playa, SPECIAL_ACTION_STOPUSECELLPHONE);
  9021. AttachedObjects[playa][6][aoModelID] = 0;
  9022. AttachedObjects[playa][6][aoBone] = 0;
  9023. RemovePlayerAttachedObject(playa, 6);
  9024. }
  9025. if(UsingPayPhone[playerid] > 0)
  9026. {
  9027. PayPhoneInUse[UsingPayPhone[playerid]-1] = 0;
  9028. UsingPayPhone[playerid] = 0;
  9029. TogglePlayerControllable(playerid, 1);
  9030. SetCameraBehindPlayer(playerid);
  9031. SendClientMessage(playerid,COLOR_GREY,"[Telefone público] {87CEFF}Você finalizou a chamada.");
  9032. format(sgstr, sizeof(sgstr),"* %s coloca o telefone no gancho novamente. *",NameRP(playerid));
  9033. ProxDetector(15.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  9034. }
  9035. else
  9036. {
  9037. SendClientMessage(playa, COLOR_GREY, "[Celular] {87CEFF}Eles desligaram a linha, a ligação caiu.");
  9038. SendClientMessage(playerid, COLOR_GREY, "[Celular] {87CEFF}Você finalizou a chamada.");
  9039. format(sgstr, sizeof(sgstr),"* %s finaliza a chamada. *",NameRP(playerid));
  9040. SetPlayerChatBubble(playerid, sgstr, COLOR_EMOTE, 15.0, 6000);
  9041. }
  9042. if(UsingPayPhone[playa] > 0)
  9043. {
  9044. PayPhoneInUse[UsingPayPhone[playa]-1] = 0;
  9045. UsingPayPhone[playa] = 0;
  9046. TogglePlayerControllable(playa, 1);
  9047. SetCameraBehindPlayer(playa);
  9048. SendClientMessage(playa,COLOR_GREY,"[Telefone público] {87CEFF}Você finalizou a chamada.");
  9049. format(sgstr, sizeof(sgstr),"* %s coloca o telefone no gancho novamente. *",NameRP(playa));
  9050. ProxDetector(15.0,playa,sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  9051. }
  9052. else
  9053. {
  9054. format(sgstr, sizeof(sgstr),"* %s finaliza a chamada. *",NameRP(playa));
  9055. SetPlayerChatBubble(playa, sgstr, COLOR_EMOTE, 15.0, 6000);
  9056. }
  9057. MobileSpeaker[playerid] = 0;
  9058. CallerID[playerid] = -1;
  9059. CallerID[playa] = -1;
  9060. IsPhoneRinging[playerid] = -1;
  9061. IsPhoneRinging[playa] = -1;
  9062. return true;
  9063. }
  9064. if(CallerService[playerid] != -1)
  9065. {
  9066. if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USECELLPHONE)
  9067. {
  9068. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_STOPUSECELLPHONE);
  9069. AttachedObjects[playerid][6][aoModelID] = 0;
  9070. AttachedObjects[playerid][6][aoBone] = 0;
  9071. RemovePlayerAttachedObject(playerid, 6);
  9072. }
  9073. SendClientMessage(playerid,COLOR_GREY,"[Celular] {87CEFF}Você finalizou a chamada.");
  9074. format(sgstr, sizeof(sgstr),"* %s finaliza a chamada de seu celular. *",NameRP(playerid));
  9075. SetPlayerChatBubble(playerid, sgstr, COLOR_EMOTE, 15.0, 6000);
  9076. CallerService[playerid] = -1;
  9077. return true;
  9078. }
  9079. SysMsg(playerid, "Seu celular não está tocando no momento.");
  9080. return true;
  9081. }
  9082. CMD:cf(playerid) return cmd_finalizar(playerid);
  9083. CMD:retornarchamada(playerid, params[])//retornarchamada
  9084. {
  9085. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  9086. if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid,"Você não tem um celular móvel.");
  9087. if(IsPhoneRinging[playerid] >= 0) return SysMsg(playerid,"Seu celular está tocando. atenda primeiro.");
  9088. if(CallerID[playerid] != -1 || CallerService[playerid] != -1) return SysMsg(playerid,"Você já está usando seu celular. /finalizar primeiro.");
  9089. if(PhoneData[playerid][pPower] == 0) return SysMsg(playerid,"Seu celular está desligado.");
  9090. if(LastNumber[playerid] == -1) return SysMsg(playerid,"Você não tem um número para ligar de volta.");
  9091. if(IsPlayerInWater(playerid)) return SysMsg(playerid,"Você não pode usar seu celular se estiver na água.");
  9092. if(IsCuffed[playerid] == 1) return SysMsg(playerid, "Você não pode usar o celular enquanto estiver algemado.");
  9093. new numberstr[12];
  9094. format(numberstr, 12, "%i", LastNumber[playerid]);
  9095. cmd_chamar(playerid, numberstr);
  9096. return true;
  9097. }
  9098. CMD:chamar(playerid, params[])
  9099. {
  9100. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  9101. if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid,"Você não tem um celular móvel.");
  9102. if(IsPhoneRinging[playerid] >= 0) return SysMsg(playerid,"Seu celular está tocando. atenda primeiro.");
  9103. if(CallerID[playerid] != -1 || CallerService[playerid] != -1) return SysMsg(playerid,"Você já está usando seu celular. /finalizar primeiro.");
  9104. if(PhoneData[playerid][pPower] == 0) return SysMsg(playerid,"Seu celular está desligado.");
  9105. if(!HasPhoneSignal(playerid)) return SysMsg(playerid,"Sem serviço.");
  9106. if(UsingPayPhone[playerid] > 0) return SysMsg(playerid,"Você já está no telefone.");
  9107. if(IsJailed[playerid] == 1 || PlayerImprisoned{playerid}) return SysMsg(playerid,"Seu celular foi confiscado e seria devolvido após a sua libertação.");
  9108. if(IsPlayerInWater(playerid)) return SysMsg(playerid,"Você não pode usar seu celular se estiver na água.");
  9109. if(IsCuffed[playerid] == 1) return SysMsg(playerid, "Você não pode usar o celular enquanto estiver algemado.");
  9110. new callnumber = -1;
  9111. if(isnull(params)) return SysMsg(playerid,"Use: /chamar [número ou nome do contato] (ou /discar)") && SysMsg(playerid,"Números úteis") && SysMsg(playerid,"Linha de emergência - 911") && SysMsg(playerid,"SANews - 726") && SysMsg(playerid,"Taxi Co. - 444") && SysMsg(playerid,"Elite Trucking - 927") && SysMsg(playerid, "Mecânico - 118");
  9112. if(IsNumeric(params)) callnumber = strval(params);
  9113. else
  9114. {
  9115. for(new i = 0; i < MAX_PHONECONTACTS; i++)
  9116. {
  9117. if(PhoneContacts[playerid][i][cID] != 0 && !isnull(PhoneContacts[playerid][i][ContactName]))
  9118. {
  9119. if(strcmp(params, PhoneContacts[playerid][i][ContactName], true) == 0)
  9120. {
  9121. callnumber = PhoneContacts[playerid][i][ContactNumber];
  9122. break;
  9123. }
  9124. }
  9125. }
  9126. if(callnumber == -1) return SysMsg(playerid, "Esse nome não foi encontrado na lista de contatos.");
  9127. }
  9128. ProcessPhoneCall(playerid, callnumber);
  9129. return true;
  9130. }
  9131. CMD:discar(playerid, params[]) return cmd_chamar(playerid, params);//discar
  9132. CMD:contatos(playerid)//contatos
  9133. {
  9134. if(PhoneData[playerid][pPower] == 0) return SysMsg(playerid, "Seu celular está desligado.");
  9135. gstr[0] = EOS;
  9136. new ccount = GetContactsCount(playerid);
  9137. if(ccount > 0) strcat(gstr, "Ver todos os contatos\n");
  9138. if(ccount < GetMaxContactLimitForPlayer(playerid)) strcat(gstr, "Criar um contato\n");
  9139. if(ccount > 0) strcat(gstr, "Deleta um contato\nEditar um contato\n");
  9140. Dialog_Show(playerid, ContactsMenu, DIALOG_STYLE_LIST, "Menu de contatos", gstr, "Selecionar", "Cancelar");
  9141. return true;
  9142. }
  9143. CMD:celular(playerid)
  9144. {
  9145. if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid,"Você não tem um celular móvel.");
  9146. if(IsPhoneRinging[playerid] >= 0) return SysMsg(playerid,"Seu celular está tocando. atenda primeiro.");
  9147. if(CallerID[playerid] != -1 || CallerService[playerid] != -1) return SysMsg(playerid,"Você já está usando seu celular. /finalizar primeiro.");
  9148. if(UsingPayPhone[playerid] > 0) return SysMsg(playerid,"Por favor, termine de usar o telefone público antes de usar seu celular.");
  9149. if(IsPlayerInWater(playerid)) return SysMsg(playerid,"Você não pode usar seu celular se estiver na água.");
  9150. if(IsCuffed[playerid] == 1) return SysMsg(playerid, "Você não pode usar o celular enquanto estiver algemado.");
  9151. DisplayPhoneMenu(playerid);
  9152. format(gstr, sizeof(gstr),"* %s pega seu celular do bolso e pressiona alguns botões.. *", NameRP(playerid));
  9153. SetPlayerChatBubble(playerid, gstr, COLOR_EMOTE, 15.0, 6000);
  9154. return true;
  9155. }
  9156. CMD:telefonepublico(playerid, params[])//telefonepublico
  9157. {
  9158. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  9159. if(IsPhoneRinging[playerid] >= 0) return SysMsg(playerid,"Seu celular está tocando. atenda primeiro.");
  9160. if(CallerID[playerid] != -1 || CallerService[playerid] != -1) return SysMsg(playerid,"Você já está usando seu celular. /finalizar primeiro.");
  9161. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SysMsg(playerid,"De pé!");
  9162. if(UsingPayPhone[playerid] == 1) return SysMsg(playerid, "Você está usando um telefone público.");
  9163. if(IsCuffed[playerid] == 1) return SysMsg(playerid, "Você não pode usar o celular enquanto estiver algemado.");
  9164. new NumberCalled;
  9165. if(sscanf(params, "i", NumberCalled)) return SysMsg(playerid,"Use: /telefonepublico [number]");
  9166. if(NumberCalled < 1 || NumberCalled > 9999999) return SysMsg(playerid,"Número de rede inválido.");
  9167. if(NumberCalled == PhoneData[playerid][pNumber]) return SysMsg(playerid,"Você não pode ligar para o seu próprio telefone.");
  9168. if(!PlayerImprisoned{playerid})
  9169. {
  9170. if(Cash[playerid] < 5 && NumberCalled != 911) return SysMsg(playerid,"You need $5 to make a call.");
  9171. }
  9172. if(IsPlayerInRangeOfPoint(playerid, 2.0, 256.7420349121, -81.5554428101, 1.2701275349)) // bb liquor
  9173. {
  9174. if(PayPhoneInUse[0] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado.");
  9175. SetPlayerCameraPos(playerid, 251.1188, -77.4623, 2.7296);
  9176. SetPlayerCameraLookAt(playerid, 260.9838, -78.8487, 1.8581);
  9177. PayPhoneInUse[0] = 1;
  9178. UsingPayPhone[playerid] = 1;
  9179. }
  9180. else if(IsPlayerInRangeOfPoint(playerid, 2.0, 273.56250, -171.4013671875, 1.9214571714)) // bb gym
  9181. {
  9182. if(PayPhoneInUse[1] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado.");
  9183. SetPlayerCameraPos(playerid, 291.4234, -175.0688, 4.9296);
  9184. SetPlayerCameraLookAt(playerid, 281.4782, -174.0235, 3.7109);
  9185. PayPhoneInUse[1] = 1;
  9186. UsingPayPhone[playerid] = 2;
  9187. }
  9188. else if(IsPlayerInRangeOfPoint(playerid, 2.0, 1279.6098632813, 263.5825500488, 19.9056930542)) // mont central
  9189. {
  9190. if(PayPhoneInUse[2] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado.");
  9191. SetPlayerCameraPos(playerid, 1268.5700, 259.6120, 26.0062);
  9192. SetPlayerCameraLookAt(playerid, 1277.8419, 259.6120, 22.2601);
  9193. PayPhoneInUse[2] = 1;
  9194. UsingPayPhone[playerid] = 3;
  9195. }
  9196. else if(IsPlayerInRangeOfPoint(playerid, 2.0, 1226.0195312500, 330.1572265625, 19.9056930542)) // mont hospital
  9197. {
  9198. if(PayPhoneInUse[3] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado.");
  9199. SetPlayerCameraPos(playerid, 1223.7540, 344.2998, 25.0116);
  9200. SetPlayerCameraLookAt(playerid, 1228.1376, 335.3118, 21.7559);
  9201. PayPhoneInUse[3] = 1;
  9202. UsingPayPhone[playerid] = 4;
  9203. }
  9204. else if(IsPlayerInRangeOfPoint(playerid, 2.0, 2270.9658203125, 50.8583984375, 26.1763782501)) // palomino general store
  9205. {
  9206. if(PayPhoneInUse[4] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado.");
  9207. SetPlayerCameraPos(playerid, 2262.6542, 46.6263, 32.2843);
  9208. SetPlayerCameraLookAt(playerid, 2271.7558, 48.3955, 28.5383);
  9209. PayPhoneInUse[4] = 1;
  9210. UsingPayPhone[playerid] = 5;
  9211. }
  9212. else if(IsPlayerInRangeOfPoint(playerid, 2.0, 2275.0713, -76.8855, 26.5763)) // palomino library
  9213. {
  9214. if(PayPhoneInUse[5] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado.");
  9215. SetPlayerCameraPos(playerid, 2259.4619, -88.2675, 28.9991);
  9216. SetPlayerCameraLookAt(playerid, 2265.8898, -80.6071, 28.9991);
  9217. PayPhoneInUse[5] = 1;
  9218. UsingPayPhone[playerid] = 6;
  9219. }
  9220. else if(IsPlayerInRangeOfPoint(playerid, 2.0, 2334.2177734375, -5.5068359375, 26.1764545441)) // palomino cafe
  9221. {
  9222. if(PayPhoneInUse[6] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado.");
  9223. SetPlayerCameraPos(playerid, 2346.5444, 1.2500, 34.0843);
  9224. SetPlayerCameraLookAt(playerid, 2337.9726, 1.2500, 28.9339);
  9225. PayPhoneInUse[6] = 1;
  9226. UsingPayPhone[playerid] = 7;
  9227. }
  9228. else if(IsPlayerInRangeOfPoint(playerid, 2.0, -155.2096405029, 1208.0728759766, 19.4341907501)) // fort c. king ring
  9229. {
  9230. if(PayPhoneInUse[7] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado.");
  9231. SetPlayerCameraPos(playerid, -135.0444, 1232.8094, 34.4937);
  9232. SetPlayerCameraLookAt(playerid, -141.9910, 1225.6160, 29.1945);
  9233. PayPhoneInUse[7] = 1;
  9234. UsingPayPhone[playerid] = 8;
  9235. }
  9236. else if(IsPlayerInRangeOfPoint(playerid, 2.0, -205.1318359375, 1128.0488281250, 19.4341907501)) // FC mayor house
  9237. {
  9238. if(PayPhoneInUse[8] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado.");
  9239. SetPlayerCameraPos(playerid, -184.6137, 1126.4040, 24.6929);
  9240. SetPlayerCameraLookAt(playerid, -194.4891, 1126.2316, 23.1285);
  9241. PayPhoneInUse[8] = 1;
  9242. UsingPayPhone[playerid] = 9;
  9243. }
  9244. else if(IsPlayerInRangeOfPoint(playerid, 2.0, -13.1679687500, 1183.0556640625, 19.7134227753)) // FC beef grill
  9245. {
  9246. if(PayPhoneInUse[9] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado.");
  9247. SetPlayerCameraPos(playerid, -38.0793, 1187.0872, 21.5520);
  9248. SetPlayerCameraLookAt(playerid, -28.0930, 1186.5639, 22.2496);
  9249. PayPhoneInUse[9] = 1;
  9250. UsingPayPhone[playerid] = 10;
  9251. }
  9252. else if(IsPlayerInRangeOfPoint(playerid, 2.0, 1349.6008,232.3512,19.5547)) // mont pizza
  9253. {
  9254. if(PayPhoneInUse[10] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado.");
  9255. SetPlayerCameraPos(playerid, 1344.4250,233.1461,21.5547);
  9256. SetPlayerCameraLookAt(playerid, 1349.6008,232.3512,19.5547);
  9257. PayPhoneInUse[10] = 1;
  9258. UsingPayPhone[playerid] = 11;
  9259. }
  9260. else if(IsPlayerInRangeOfPoint(playerid, 2.0, 711.5770263672, -475.6603393555, 16.0279407501)) // dill paynspray
  9261. {
  9262. if(PayPhoneInUse[11] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado.");
  9263. SetPlayerCameraPos(playerid, 705.6245, -482.0432, 21.1359);
  9264. SetPlayerCameraLookAt(playerid, 712.8022, -475.8037, 18.0457);
  9265. PayPhoneInUse[11] = 1;
  9266. UsingPayPhone[playerid] = 12;
  9267. }
  9268. else if(IsPlayerInRangeOfPoint(playerid, 2.0, 2154.1416, 66.5370, 26.9873)) // palomino bridge
  9269. {
  9270. if(PayPhoneInUse[12] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado.");
  9271. SetPlayerCameraPos(playerid, 2151.7534, 64.0967, 28.8964);
  9272. SetPlayerCameraLookAt(playerid, 2154.1416, 66.5370, 26.9873);
  9273. PayPhoneInUse[12] = 1;
  9274. UsingPayPhone[playerid] = 13;
  9275. }
  9276. else if(IsPlayerInRangeOfPoint(playerid, 2.0, 1256.3623046875, 147.20568847656, 20.088111877441)) // mont driving school
  9277. {
  9278. if(PayPhoneInUse[13] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado.");
  9279. SetPlayerCameraPos(playerid, 1248.2823, 152.7991, 24.2069);
  9280. SetPlayerCameraLookAt(playerid, 1254.1035, 145.3483, 20.9513);
  9281. PayPhoneInUse[13] = 1;
  9282. UsingPayPhone[playerid] = 14;
  9283. }
  9284. else if(IsPlayerInRangeOfPoint(playerid, 2.0, 673.415954, -589.050598, 16.335937)) // dill south
  9285. {
  9286. if(PayPhoneInUse[14] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado.");
  9287. SetPlayerCameraPos(playerid, 676.0861, -580.8543, 18.0359);
  9288. SetPlayerCameraLookAt(playerid, 676.0861, -590.8543, 18.0359);
  9289. PayPhoneInUse[14] = 1;
  9290. UsingPayPhone[playerid] = 15;
  9291. }
  9292. else if(IsPlayerInRangeOfPoint(playerid, 2.0, -2097.108642, -2331.721191, 30.625)) // angel pine
  9293. {
  9294. if(PayPhoneInUse[15] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado.");
  9295. PayPhoneInUse[15] = 1;
  9296. UsingPayPhone[playerid] = 16;
  9297. SetCameraBehindPlayer(playerid);
  9298. }
  9299. else if(IsPlayerInRangeOfPoint(playerid, 2.0, -2171.307861, -2353.388427, 30.625)) // angel pine
  9300. {
  9301. if(PayPhoneInUse[16] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado.");
  9302. PayPhoneInUse[16] = 1;
  9303. UsingPayPhone[playerid] = 17;
  9304. SetCameraBehindPlayer(playerid);
  9305. }
  9306. else if(IsPlayerInRangeOfPoint(playerid, 2.0, -2197.533203, -2418.167968, 30.625)) // angel pine
  9307. {
  9308. if(PayPhoneInUse[17] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado.");
  9309. PayPhoneInUse[17] = 1;
  9310. UsingPayPhone[playerid] = 18;
  9311. SetCameraBehindPlayer(playerid);
  9312. }
  9313. else if(IsPlayerInRangeOfPoint(playerid, 2.0, -2177.902099, -2436.297363, 30.625)) // angel pine
  9314. {
  9315. if(PayPhoneInUse[18] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado.");
  9316. PayPhoneInUse[18] = 1;
  9317. UsingPayPhone[playerid] = 19;
  9318. SetCameraBehindPlayer(playerid);
  9319. }
  9320. else if(IsPlayerInRangeOfPoint(playerid, 2.0, -2128.440673, -2446.063720, 30.174999)) // angel pine
  9321. {
  9322. if(PayPhoneInUse[20] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado.");
  9323. PayPhoneInUse[20] = 1;
  9324. UsingPayPhone[playerid] = 21;
  9325. SetCameraBehindPlayer(playerid);
  9326. }
  9327. else if(IsPlayerInRangeOfPoint(playerid, 2.0, -2093.919189, -2477.046875, 30.174999)) // angel pine
  9328. {
  9329. if(PayPhoneInUse[21] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado.");
  9330. PayPhoneInUse[21] = 1;
  9331. UsingPayPhone[playerid] = 22;
  9332. SetCameraBehindPlayer(playerid);
  9333. }
  9334. else if(IsPlayerInRangeOfPoint(playerid, 2.0, -1572.513427, -2725.353515, 48.293457)) // angel pine
  9335. {
  9336. if(PayPhoneInUse[22] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado.");
  9337. PayPhoneInUse[22] = 1;
  9338. UsingPayPhone[playerid] = 23;
  9339. SetCameraBehindPlayer(playerid);
  9340. }
  9341. else if(IsPlayerInRangeOfPoint(playerid, 2.0, -2451.410156, 2321.001464, 4.073258)) // bayside
  9342. {
  9343. if(PayPhoneInUse[23] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado.");
  9344. PayPhoneInUse[23] = 1;
  9345. UsingPayPhone[playerid] = 24;
  9346. SetCameraBehindPlayer(playerid);
  9347. }
  9348. else if(IsPlayerInRangeOfPoint(playerid, 2.0, -2553.039062, 2320.415527, 5.056630)) // bayside
  9349. {
  9350. if(PayPhoneInUse[24] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado.");
  9351. PayPhoneInUse[24] = 1;
  9352. UsingPayPhone[playerid] = 25;
  9353. SetCameraBehindPlayer(playerid);
  9354. }
  9355. else if(IsPlayerInRangeOfPoint(playerid, 2.0, -2550.275390, 2320.460449, 5.060738)) // bayside
  9356. {
  9357. if(PayPhoneInUse[25] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado.");
  9358. PayPhoneInUse[25] = 1;
  9359. UsingPayPhone[playerid] = 26;
  9360. SetCameraBehindPlayer(playerid);
  9361. }
  9362. else if(IsPlayerInRangeOfPoint(playerid, 4.0, -673.593444, 2179.334960, 3836.8)) // prison
  9363. {
  9364. if(PayPhoneInUse[26] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado.");
  9365. PayPhoneInUse[26] = 1;
  9366. UsingPayPhone[playerid] = 27;
  9367. SetCameraBehindPlayer(playerid);
  9368. }
  9369. else if(IsPlayerInRangeOfPoint(playerid, 4.0, 1034.3674, -1115.4692, 2025.2595)) // st hideout
  9370. {
  9371. if(PayPhoneInUse[27] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado.");
  9372. PayPhoneInUse[27] = 1;
  9373. UsingPayPhone[playerid] = 28;
  9374. SetCameraBehindPlayer(playerid);
  9375. }
  9376. else if(IsPlayerInRangeOfPoint(playerid, 4.0, 1236.6080, 184.4952, 2091.3687)) // info center
  9377. {
  9378. if(PayPhoneInUse[28] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado.");
  9379. PayPhoneInUse[28] = 1;
  9380. UsingPayPhone[playerid] = 29;
  9381. SetCameraBehindPlayer(playerid);
  9382. }
  9383. else if(IsPlayerInRangeOfPoint(playerid, 4.0, -801.9138, -1912.3365, 7.0407)) //camp bob payphone
  9384. {
  9385. if(PayPhoneInUse[29] == 1) return SysMsg(playerid, "O telefone público já está em uso.");
  9386. PayPhoneInUse[29] = 1;
  9387. UsingPayPhone[playerid] = 30;
  9388. SetCameraBehindPlayer(playerid);
  9389. }
  9390. if(UsingPayPhone[playerid] == 0) return SysMsg(playerid, "Você não está perto de qualquer telefone público.");
  9391. format(gstr, sizeof(gstr),"* %s pega o telefone público e disca alguns números... *",NameRP(playerid));
  9392. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  9393. TogglePlayerControllable(playerid, 0);
  9394. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USECELLPHONE);
  9395. if(AttachedObjects[playerid][6][aoModelID] != 0)
  9396. {
  9397. RemovePlayerAttachedObject(playerid, 6);
  9398. }
  9399. AttachedObjects[playerid][6][aoModelID] = 330;
  9400. AttachedObjects[playerid][6][aoBone] = 6;
  9401. SetPlayerAttachedObject(playerid, 6, 330, 6);
  9402. if(NumberCalled == 444) //Cabbie Company
  9403. {
  9404. Dialog_Show(playerid, TaxiMenu, DIALOG_STYLE_LIST, "Cabbie Co - Selecione o serviço que você precisa", "Taxi", "Selecionar", "Desligar");
  9405. CallerService[playerid] = 444;
  9406. return true;
  9407. }
  9408. if(NumberCalled == 911) //Police & EMS
  9409. {
  9410. SendClientMessage(playerid, COLOR_WHITE, "Você ligou para a central de emergência de San Andreas. Você precisa de Polícia, Fire ou EMS?");
  9411. CallerService[playerid] = 911;
  9412. return true;
  9413. }
  9414. if(NumberCalled == 927) //Elite Trucking
  9415. {
  9416. new truckers = 0;
  9417. foreach(new i: Player)
  9418. {
  9419. if(Logged{i} && Faction[i] == FACTION_TRUCKING)
  9420. {
  9421. truckers++;
  9422. }
  9423. }
  9424. if(truckers == 0)
  9425. {
  9426. SysMsg(playerid, "'Você ligou para Elite Trucking, nosso serviço de ajuda está indisponível no momento. Por favor, ligue de volta mais tarde..'");
  9427. TogglePlayerControllable(playerid, 1);
  9428. PayPhoneInUse[UsingPayPhone[playerid]-1] = 0;
  9429. UsingPayPhone[playerid] = 0;
  9430. SetCameraBehindPlayer(playerid);
  9431. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_STOPUSECELLPHONE);
  9432. AttachedObjects[playerid][6][aoModelID] = 0;
  9433. AttachedObjects[playerid][6][aoBone] = 0;
  9434. RemovePlayerAttachedObject(playerid, 6);
  9435. return true;
  9436. }
  9437. if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  9438. {
  9439. if(AttachedObjects[playerid][6][aoModelID] != 0)
  9440. {
  9441. RemovePlayerAttachedObject(playerid, 6);
  9442. }
  9443. AttachedObjects[playerid][6][aoModelID] = 330;
  9444. AttachedObjects[playerid][6][aoBone] = 6;
  9445. SetPlayerAttachedObject(playerid, 6, 330, 6);
  9446. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USECELLPHONE);
  9447. }
  9448. SendClientMessage(playerid, COLOR_WHITE, "Você está na linha direta Elite Trucking, como podemos ajudá-lo hoje?");
  9449. CallerService[playerid] = 927;
  9450. return true;
  9451. }
  9452. if(NumberCalled == 118) //Mechanic
  9453. {
  9454. new mechanics = 0;
  9455. foreach(new i: Player)
  9456. {
  9457. if(Logged{i} && Job[i] == JOB_MECHANIC)
  9458. {
  9459. mechanics++;
  9460. }
  9461. }
  9462. if(mechanics == 0) return SysMsg(playerid, "'Olá, nós Lamentamos informá-lo que não há atualmente nenhum mecânico em serviço. Por favor, tente novamente mais tarde.'");
  9463. if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  9464. {
  9465. if(AttachedObjects[playerid][6][aoModelID] != 0)
  9466. {
  9467. RemovePlayerAttachedObject(playerid, 6);
  9468. }
  9469. AttachedObjects[playerid][6][aoModelID] = 330;
  9470. AttachedObjects[playerid][6][aoBone] = 6;
  9471. SetPlayerAttachedObject(playerid, 6, 330, 6);
  9472. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USECELLPHONE);
  9473. }
  9474. SendClientMessage(playerid, COLOR_WHITE, "'Você ligou para o serviço de mecânico de San Andreas, como podemos ajudá-lo hoje?");
  9475. CallerService[playerid] = 118;
  9476. return true;
  9477. }
  9478. foreach(new i: Player)
  9479. {
  9480. if(Logged{i})
  9481. {
  9482. if(PhoneData[i][pNumber] == NumberCalled && CallerID[i] == -1 && IsPhoneRinging[i] == -1 && PhoneData[i][pPower] == 1 && Inventory[i][MobilePhone] == 1)
  9483. {
  9484. SetPlayerChatBubble(i, " Phone rings *", COLOR_EMOTE, 15.0, 6000);
  9485. SendClientMessageF(i, COLOR_GREY, "Seu celular está tocando (Número = %i)... Use '/pickup' ou '/p' para atender.", 1000 + UsingPayPhone[playerid]);
  9486. SendClientMessageF(playerid, COLOR_GREY, "Você está chamando o número %i... Use '/finalizar' ou '/h' para cancelar.", NumberCalled);
  9487. if(!PlayerImprisoned{playerid}) GivePlayerCash(playerid, -5);
  9488. CallerID[playerid] = i;
  9489. IsPhoneRinging[i] = playerid;
  9490. MobileSpeaker[playerid] = 0;
  9491. return true;
  9492. }
  9493. }
  9494. }
  9495. SysMsg(playerid,"Operadora: \"Esse número é inválido ou esta ocupado.\"");
  9496. TogglePlayerControllable(playerid, 1);
  9497. PayPhoneInUse[UsingPayPhone[playerid]-1] = 0;
  9498. UsingPayPhone[playerid] = 0;
  9499. SetCameraBehindPlayer(playerid);
  9500. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_STOPUSECELLPHONE);
  9501. AttachedObjects[playerid][6][aoModelID] = 0;
  9502. AttachedObjects[playerid][6][aoBone] = 0;
  9503. RemovePlayerAttachedObject(playerid, 6);
  9504. return true;
  9505. }
  9506. CMD:celularon(playerid)
  9507. {
  9508. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  9509. if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid,"Você não tem um celular móvel.");
  9510. if(PhoneData[playerid][pPower] == 1) return SysMsg(playerid,"Seu celular já está ligado.");
  9511. if(PhoneData[playerid][pBattery] == 0) return SysMsg(playerid,"Seu celular está sem bateria.");
  9512. if(IsJailed[playerid] == 1 || PlayerImprisoned{playerid}) return SysMsg(playerid,"Seu celular foi confiscado e será devolvido após a sua libertação.");
  9513. if(IsPlayerInWater(playerid)) return SysMsg(playerid,"Você não pode usar o celular enquanto estiver algemado..");
  9514. if(IsCuffed[playerid] == 1) return SysMsg(playerid, "Você não pode usar o celular enquanto estiver algemado.");
  9515. PhoneData[playerid][pPower] = 1;
  9516. mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET PhonePower = 1 WHERE id = %i", PhoneData[playerid][pID]);
  9517. mysql_pquery(conn, mquery);
  9518. format(gstr, sizeof(gstr),"* %s pressiona um botão para ligar o celular. *", NameRP(playerid));
  9519. SetPlayerChatBubble(playerid, gstr, COLOR_EMOTE, 15.0, 6000);
  9520. SendClientMessage(playerid, COLOR_WHITE, "Seu celular está ligado agora.");
  9521. return true;
  9522. }
  9523. CMD:celularoff(playerid)
  9524. {
  9525. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  9526. if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid,"Você não tem um celular móvel.");
  9527. if(PhoneData[playerid][pPower] == 0) return SysMsg(playerid,"Seu celular já está desligado.");
  9528. if(IsJailed[playerid] == 1 || PlayerImprisoned{playerid}) return SysMsg(playerid,"Seu celular foi confiscado e será devolvido após o seu lançamento.");
  9529. if(IsCuffed[playerid] == 1) return SysMsg(playerid, "Você não pode usar o seu celular enquanto está algemado.");
  9530. if(IsPhoneRinging[playerid] >= 0) return SysMsg(playerid,"Seu celular está tocando. Responda primeiro.");
  9531. if(CallerID[playerid] != -1 || CallerService[playerid] != -1) return SysMsg(playerid,"Você já está usando seu celular. /finalizar primeiro.");
  9532. PhoneData[playerid][pPower] = 0;
  9533. mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET PhonePower = 0 WHERE id = %i", PhoneData[playerid][pID]);
  9534. mysql_pquery(conn, mquery);
  9535. format(gstr, sizeof(gstr),"* %s preciona um botão e desliga seu celular. *", NameRP(playerid));
  9536. SetPlayerChatBubble(playerid, gstr, COLOR_EMOTE, 15.0, 6000);
  9537. SendClientMessage(playerid, COLOR_WHITE, "Seu celular está desligado agora.");
  9538. return true;
  9539. }
  9540. CMD:coff(playerid) return cmd_celularoff(playerid);//coff
  9541. CMD:con(playerid) return cmd_celularon(playerid);//con
  9542. CMD:ccarregar(playerid, params[])//carregar celular /ccarregar
  9543. {
  9544. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  9545. if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid,"Você não tem um celular móvel.");
  9546. if(PhoneData[playerid][pBattery] >= 99) return SysMsg(playerid,"Seu celular já está bateria cheia.");
  9547. new vid = GetPlayerVehicleID(playerid);
  9548. if(vid > 0 && Inventory[playerid][CarAdapter] == 1)
  9549. {
  9550. if(InCarCharging[playerid] == 1) return SysMsg(playerid, "Você não pode recarregar seu celular se já está sendo recarregado.");
  9551. if(VehicleData[vid][VehicleOwnerSQLID] == SQLID[playerid])
  9552. {
  9553. if(IsPlane(vid) || IsBoat(vid) || IsBike(vid) || IsPushBike(vid)) return SysMsg(playerid,"Você não pode recarregar um celular neste veículo.");
  9554. if(PhoneData[playerid][pBattery] <= 98)
  9555. {
  9556. InCarCharging[playerid] = 1;
  9557. PhoneData[playerid][pBattery] = floatadd(PhoneData[playerid][pBattery], 1);
  9558. format(gstr, sizeof(gstr),"* %s começa a recarregar o telefone dentro do carro. *", NameRP(playerid));
  9559. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  9560. SendClientMessage(playerid, COLOR_WHITE, "O seu celular está a carregar, aguarde. Saia do veículo para parar de carregar.");
  9561. }
  9562. else
  9563. {
  9564. PhoneData[playerid][pBattery] = 100;
  9565. mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET Battery = %i WHERE id = %i", floatround(PhoneData[playerid][pBattery]), PhoneData[playerid][pID]);
  9566. mysql_pquery(conn, mquery);
  9567. format(gstr, sizeof(gstr),"* %s recarrega o celular dentro do carro. *", NameRP(playerid));
  9568. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  9569. SendClientMessage(playerid, COLOR_WHITE, "Seu celular agora está totalmente recarregado.");
  9570. }
  9571. return true;
  9572. }
  9573. new faction = IsFactionVehicle(vid);
  9574. if(faction > 0 && Faction[playerid] == faction)
  9575. {
  9576. if(PhoneData[playerid][pBattery] <= 98)
  9577. {
  9578. InCarCharging[playerid] = 1;
  9579. PhoneData[playerid][pBattery] = floatadd(PhoneData[playerid][pBattery], 1);
  9580. format(gstr, sizeof(gstr),"* %s começa carregar seu celular dentro do %s. *", NameRP(playerid),GetVehicleName(vid));
  9581. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  9582. SendClientMessage(playerid, COLOR_WHITE, "O seu celular está a carregar, aguarde. Saia do veículo para parar de carregar.");
  9583. }
  9584. else
  9585. {
  9586. PhoneData[playerid][pBattery] = 100;
  9587. mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET Battery = %i WHERE id = %i", floatround(PhoneData[playerid][pBattery]), PhoneData[playerid][pID]);
  9588. mysql_pquery(conn, mquery);
  9589. format(gstr, sizeof(gstr),"* %s recarrega seu celular dentro do %s. *", NameRP(playerid),GetVehicleName(vid));
  9590. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  9591. SendClientMessage(playerid, COLOR_WHITE, "Seu telefone agora está completamente recarregado.");
  9592. }
  9593. return true;
  9594. }
  9595. }
  9596. if(IsInHouseID[playerid] != -1)
  9597. {
  9598. if(HouseData[IsInHouseID[playerid]][HouseOwnerSQLID] == SQLID[playerid] || IsHouseGuestSQL(playerid) == HouseData[IsInHouseID[playerid]][HouseSQLID])
  9599. {
  9600. PhoneData[playerid][pBattery] = 100;
  9601. mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET Battery = %i WHERE id = %i", floatround(PhoneData[playerid][pBattery]), PhoneData[playerid][pID]);
  9602. mysql_pquery(conn, mquery);
  9603. format(gstr, sizeof(gstr),"* %s recarrega seu telefone dentro de sua casa. *", NameRP(playerid));
  9604. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  9605. SendClientMessage(playerid, COLOR_WHITE, "Seu telefone agora está totalmente recarregado.");
  9606. return true;
  9607. }
  9608. }
  9609. if(IsPlayerInRangeOfPoint(playerid, 5.0, -2236.320312, 130.603515, 1035.41406))
  9610. {
  9611. PhoneData[playerid][pBattery] = 100;
  9612. mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET Battery = %i WHERE id = %i", floatround(PhoneData[playerid][pBattery]), PhoneData[playerid][pID]);
  9613. mysql_pquery(conn, mquery);
  9614. format(gstr, sizeof(gstr),"* %s recarrega seu telefone usando o ponto de recarga público na loja. *", NameRP(playerid));
  9615. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  9616. SendClientMessage(playerid, COLOR_WHITE, "Seu celular agora está totalmente carregado.");
  9617. return true;
  9618. }
  9619. SysMsg(playerid,"Você deve estar em uma loja eletrônica, sua casa ou um veículo próprio para recarregar um celular.");
  9620. return true;
  9621. }
  9622. CMD:enviarsms(playerid, params[])//sms
  9623. {
  9624. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  9625. if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid,"Você não tem um celular móvel.");
  9626. if(PhoneData[playerid][pPower] == 0) return SysMsg(playerid,"Seu telefone está desligado. Ligue-o para enviar mensagens de texto.");
  9627. if(!HasPhoneSignal(playerid)) return SysMsg(playerid,"Sem serviço.");
  9628. if(IsPlayerInWater(playerid)) return SysMsg(playerid,"Você não pode usar seu telefone celular enquanto estiver na água.");
  9629. if(IsCuffed[playerid] == 1) return SysMsg(playerid, "Você não pode usar o seu telefone enquanto está algemado.");
  9630. new numberOrName[24], TextMsg[170], actualNumber;
  9631. if(sscanf(params, "s[24]s[170]", numberOrName, TextMsg)) return SysMsg(playerid,"Use: /sms [número de telefone ou nome do contato] [mensagem]");
  9632. if(IsNumeric(numberOrName)) actualNumber = strval(numberOrName);
  9633. else
  9634. {
  9635. for(new i = 0; i < MAX_PHONECONTACTS; i++)
  9636. {
  9637. if(PhoneContacts[playerid][i][cID] > 0 && !isnull(PhoneContacts[playerid][i][ContactName]))
  9638. {
  9639. if(strcmp(numberOrName, PhoneContacts[playerid][i][ContactName], true) == 0)
  9640. {
  9641. actualNumber = PhoneContacts[playerid][i][ContactNumber];
  9642. break;
  9643. }
  9644. }
  9645. }
  9646. if(actualNumber <= 0) return SysMsg(playerid, "Esse nome não foi encontrado em sua lista de contatos.");
  9647. }
  9648. ProcessTextMessage(playerid, actualNumber, TextMsg);
  9649. return true;
  9650. }
  9651. CMD:sms(playerid, params[]) return cmd_respondersms(playerid, params);
  9652. CMD:respondersms(playerid, params[])
  9653. {
  9654. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  9655. if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid,"Você não tem um telefone móvel.");
  9656. if(PhoneData[playerid][pPower] == 0) return SysMsg(playerid,"Seu telefone está desligado. Ligue-o para enviar mensagens de texto.");
  9657. if(!HasPhoneSignal(playerid)) return SysMsg(playerid,"Sem Serviço.");
  9658. if(LastSMSNumber[playerid] == 0) return SysMsg(playerid,"Ninguém lhe enviou uma mensagem que você possa responder rapidamente.");
  9659. if(IsPlayerInWater(playerid)) return SysMsg(playerid,"Você não pode usar seu telefone celular enquanto estiver na água.");
  9660. if(isnull(params)) return SysMsg(playerid,"Use: /resms [mensagem] *Enviará para a última pessoa que lhe enviou uma mensagem*");
  9661. if(IsCuffed[playerid] == 1) return SysMsg(playerid, "Você não pode usar o seu telefone enquanto está algemado.");
  9662. ProcessTextMessage(playerid, LastSMSNumber[playerid], params);
  9663. return true;
  9664. }
  9665. CMD:resms(playerid, params[]) return cmd_respondersms(playerid, params);//resms
  9666. CMD:celularmostrar(playerid, params[])
  9667. {
  9668. if(!Logged{playerid}) return SysMsg(playerid, "Faça o login primeiro.");
  9669. if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid, "Você não tem um telefone celular.");
  9670. PhoneData[playerid][ShowPhonebook] = !PhoneData[playerid][ShowPhonebook];
  9671. if(PhoneData[playerid][ShowPhonebook])
  9672. {
  9673. mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET ShowPhonebook = 1 WHERE OwnerSQLID = %i", SQLID[playerid]);
  9674. mysql_pquery(conn, mquery);
  9675. SendClientMessage(playerid, COLOR_WHITE, "Suas informações agora são exibidas na lista telefônica.");
  9676. }
  9677. else
  9678. {
  9679. mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET ShowPhonebook = 0 WHERE OwnerSQLID = %i", SQLID[playerid]);
  9680. mysql_pquery(conn, mquery);
  9681. SendClientMessage(playerid, COLOR_WHITE, "Suas informações não serão mais exibidas na lista telefônica.");
  9682. }
  9683. return true;
  9684. }
  9685. CMD:getnum(playerid, params[]) return cmd_numero(playerid, params);
  9686. CMD:number(playerid, params[]) return cmd_numero(playerid, params);
  9687. CMD:phonebook(playerid, params[]) return cmd_numero(playerid, params);
  9688. CMD:numero(playerid, params[])
  9689. {
  9690. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  9691. if(Inventory[playerid][Phonebook] == 0) return SysMsg(playerid,"Você precisa comprar uma lista telefonica em uma Loja de eletronicos.");
  9692. if(isnull(params)) return SysMsg(playerid,"Use: /numero [Nome]");
  9693. if(strlen(params) < 5) return SysMsg(playerid,"Por favor, especifique o nome.");
  9694. mysql_format(conn, mquery, sizeof(mquery), "SELECT OwnerName,PhoneNumber FROM phones WHERE OwnerName LIKE '%%%e%%' AND ShowPhonebook = 1 LIMIT 25", params);
  9695. mysql_pquery(conn, mquery, "ProcessPhonebookRequest", "ds", playerid, params);
  9696. return true;
  9697. }
  9698. CMD:celularinfo(playerid)//celularinfo
  9699. {
  9700. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  9701. if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid,"Você não tem um celular móvel.");
  9702. SendClientMessageF(playerid, COLOR_WHITE, "[{0098F2}%s's{FFFFFF} Informação do celular]", RPName(PhoneData[playerid][pOwnerName]));
  9703. SendClientMessageF(playerid,COLOR_WHITE, "Número de celular: %i", PhoneData[playerid][pNumber]);
  9704. SendClientMessageF(playerid,COLOR_WHITE, "Crédito telefônico: {4BB74C}$%i", PhoneData[playerid][pCredit]);
  9705. SendClientMessage(playerid,COLOR_WHITE, "Rede telefônica: S.A. Mobile");
  9706. switch(floatround(PhoneData[playerid][pBattery]))
  9707. {
  9708. case 90..100: SendClientMessageF(playerid, COLOR_WHITE, "Bateria do celular: %.1f %% [{F01000}|{F53500}|{EB7100}|{FAA200}|{F5D000}|{FAE500}|{F1F500}|{D6FF0A}|{ACFF05}|{66CD00}|{FFFFFF}]", PhoneData[playerid][pBattery]);
  9709. case 80..89: SendClientMessageF(playerid, COLOR_WHITE, "Bateria do celular: %.1f %% [{F01000}|{F53500}|{EB7100}|{FAA200}|{F5D000}|{FAE500}|{F1F500}|{D6FF0A}|{ACFF05}|{66CD00}-{FFFFFF}]", PhoneData[playerid][pBattery]);
  9710. case 70..79: SendClientMessageF(playerid, COLOR_WHITE, "Bateria do celular: %.1f %% [{F01000}|{F53500}|{EB7100}|{FAA200}|{F5D000}|{FAE500}|{F1F500}|{D6FF0A}|{ACFF05}-{66CD00}-{FFFFFF}]", PhoneData[playerid][pBattery]);
  9711. case 60..69: SendClientMessageF(playerid, COLOR_WHITE, "Bateria do celular: %.1f %% [{F01000}|{F53500}|{EB7100}|{FAA200}|{F5D000}|{FAE500}|{F1F500}-{D6FF0A}-{ACFF05}-{66CD00}-{FFFFFF}]", PhoneData[playerid][pBattery]);
  9712. case 50..59: SendClientMessageF(playerid, COLOR_WHITE, "Bateria do celular: %.1f %% [{F01000}|{F53500}|{EB7100}|{FAA200}|{F5D000}|{FAE500}|{F1F500}-{D6FF0A}-{ACFF05}-{66CD00}-{FFFFFF}]", PhoneData[playerid][pBattery]);
  9713. case 40..49: SendClientMessageF(playerid, COLOR_WHITE, "Bateria do celular: %.1f %% [{F01000}|{F53500}|{EB7100}|{FAA200}|{F5D000}|{FAE500}-{F1F500}-{D6FF0A}-{ACFF05}-{66CD00}-{FFFFFF}]", PhoneData[playerid][pBattery]);
  9714. case 30..39: SendClientMessageF(playerid, COLOR_WHITE, "Bateria do celular: %.1f %% [{F01000}|{F53500}|{EB7100}|{FAA200}|{F5D000}-{FAE500}-{F1F500}-{D6FF0A}-{ACFF05}-{66CD00}-{FFFFFF}]", PhoneData[playerid][pBattery]);
  9715. case 20..29: SendClientMessageF(playerid, COLOR_WHITE, "Bateria do celular: %.1f %% [{F01000}|{F53500}|{EB7100}|{FAA200}-{F5D000}-{FAE500}-{F1F500}-{D6FF0A}-{ACFF05}-{66CD00}-{FFFFFF}]", PhoneData[playerid][pBattery]);
  9716. case 10..19: SendClientMessageF(playerid, COLOR_WHITE, "Bateria do celular: %.1f %% [{F01000}|{F53500}|{EB7100}-{FAA200}-{F5D000}-{FAE500}-{F1F500}-{D6FF0A}-{ACFF05}-{66CD00}-{FFFFFF}]", PhoneData[playerid][pBattery]);
  9717. case 1..9: SendClientMessageF(playerid, COLOR_WHITE, "Bateria do celular: %.1f %% [{F01000}|{F53500}-{EB7100}-{FAA200}-{F5D000}-{FAE500}-{F1F500}-{D6FF0A}-{ACFF05}-{66CD00}-{FFFFFF}]", PhoneData[playerid][pBattery]);
  9718. case 0: SendClientMessageF(playerid, COLOR_WHITE, "Bateria do celular: %.1f %% [{F01000}-{F53500}-{EB7100}-{FAA200}-{F5D000}-{FAE500}-{F1F500}-{D6FF0A}-{ACFF05}-{66CD00}-{FFFFFF}]", PhoneData[playerid][pBattery]);
  9719. }
  9720. if(PhoneData[playerid][pPower] == 1) SendClientMessage(playerid, COLOR_WHITE, "Status do celular: {16BD00}On");
  9721. else SendClientMessage(playerid, COLOR_WHITE, "Status do celular: {F01000}Off");
  9722. if(HasPhoneSignal(playerid)) SendClientMessage(playerid, COLOR_WHITE, "Sinal do celular: {16BD00}Serviço completo");
  9723. else SendClientMessage(playerid, COLOR_WHITE, "Sinal do celular: {F01000}Sem Serviço");
  9724. return true;
  9725. }
  9726. CMD:cinfo(playerid) return cmd_celularinfo(playerid);//cinfo
  9727. CMD:lp(playerid, params[])
  9728. {
  9729. if(!Logged{playerid}) return true;
  9730. if(Muted[playerid] > 0) return SysMsgF(playerid, "Você está mudo. (%i minutos restantes)", Muted[playerid]);
  9731. if(isnull(params)) return SysMsg(playerid,"Use: Conversa silenciosa do celular: /lp [chat]");
  9732. if(CallerID[playerid] != -1 || CallerService[playerid] != -1) ProcessPhoneChat(playerid, GetPlayerVehicleID(playerid), params, 4.0);
  9733. else SysMsg(playerid,"Você não está falando em um celular.");
  9734. return true;
  9735. }
  9736. CMD:caltofalante(playerid, params[])//caltofalante
  9737. {
  9738. if(!Logged{playerid}) return true;
  9739. if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid,"Você não tem um celular.");
  9740. if(PhoneData[playerid][pPower] == 0) return SysMsg(playerid,"Seu celular está desligado. Ligue-o para mudar as configurações.");
  9741. if(isnull(params)) return SysMsg(playerid,"Use: /caltofalante [on/off]");
  9742. if(strcmp("on", params, false) == 0)
  9743. {
  9744. if(MobileSpeaker[playerid] == 1) return SysMsg(playerid, "Seu alto-falante móvel já está ligado.");
  9745. MobileSpeaker[playerid] = 1;
  9746. SendClientMessage(playerid,COLOR_GOLD,"O seu alto-falante móvel está ativado.");
  9747. SetPlayerChatBubble(playerid, "* Liga o alto-falante do celular. *", COLOR_EMOTE, 15.0, 6000);
  9748. return true;
  9749. }
  9750. else if(strcmp("off", params, false) == 0)
  9751. {
  9752. if(MobileSpeaker[playerid] == 0) return SysMsg(playerid, "Your Mobile loudspeaker is already off.");
  9753. MobileSpeaker[playerid] = 0;
  9754. SendClientMessage(playerid,COLOR_GOLD,"Your Mobile loudspeaker is now off.");
  9755. SetPlayerChatBubble(playerid, "* Desliga o alto-falante do celular. *", COLOR_EMOTE, 15.0, 6000);
  9756. return true;
  9757. }
  9758. else SysMsg(playerid,"Use: /caltofalante [on/off]");
  9759. return true;
  9760. }
  9761. //end of phone commands
  9762. //Vehicle rental commands
  9763. CMD:alugarveiculo(playerid)
  9764. {
  9765. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você deve estar em um veículo de aluguel para usar este comando.");
  9766. if(Licenses[playerid][LICENSE_CAR] != 1) return SysMsg(playerid, "Você deve ter uma carteira de motorista válida para alugar veículos.");
  9767. if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid, "Você deve ter um celular celular para alugar veículos.");
  9768. new v = GetPlayerVehicleID(playerid);
  9769. if(!IsRentalCar(v)) return SysMsg(playerid, "Você deve estar em um veículo de aluguel para usar este comando.");
  9770. if(RentalCar[playerid] == v) return SysMsg(playerid, "Você já alugou este veículo.");
  9771. if(RentalCar[playerid] != 0) return SysMsg(playerid, "Você já está alugando um veículo.");
  9772. foreach(new i: Player) if(RentalCar[i] == v) return SysMsg(playerid, "Este veículo já está sendo alugado por alguém.");
  9773. if(RentalData[v][RentalPrice] > Cash[playerid]) return SysMsgF(playerid, "Você precisa de $%i para alugar este veículo.", RentalData[v][RentalPrice]);
  9774. RentalCar[playerid] = RentalData[v][CarID];
  9775. GivePlayerCash(playerid, -RentalData[v][RentalPrice]);
  9776. SendSplitMessageF(playerid, COLOR_WHITE, "Agora você está alugando este {BCDCBC}%s{FFFFFF}. Você será cobrado {4BB74C}$%i{FFFFFF} cada hora até que você devolvê-lo. Você pode deolver o veículo usando {BCDCBC}/devolverveiculo{FFFFFF} no lote do carro alugado.", GetVehicleName(v), RentalData[v][RentalPrice]);
  9777. return true;
  9778. }
  9779. CMD:devolverveiculo(playerid)//devolverveiculo
  9780. {
  9781. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você deve estar em um veículo alugavel para usar este comando.");
  9782. new v = GetPlayerVehicleID(playerid);
  9783. if(IsOwnedCar(v)) return SysMsg(playerid, "Você deve estar em um veículo alugavel para usar este comando.");
  9784. if(IsFactionVehicle(v)) return SysMsg(playerid, "Você deve estar em um veículo alugavel para usar este comando.");
  9785. if(RentalCar[playerid] == 0) return SysMsg(playerid, "Você não está alugando este veículo.");
  9786. foreach(new i: Player) if(RentalCar[i] == v && i != playerid) return SysMsg(playerid, "Este veículo está sendo alugado por outra pessoa..");
  9787. if(RentalCar[playerid] != v) return SysMsg(playerid, "Você não está alugando este veículo.");
  9788. if(!IsPlayerInRangeOfPoint(playerid, 10.0, RentalData[v][rPosX], RentalData[v][rPosY], RentalData[v][rPosZ])) return SysMsg(playerid, "Você não está perto de nenhum centro de locação.");
  9789. ToggleVehicleLock(v, false);
  9790. TogglePlayerControllable(playerid, false);
  9791. RemovePlayerFromVehicle(playerid);
  9792. SetTimerEx("UnFreezePlayer", 200, 0, "d", playerid);
  9793. RepairVehicleEx(v);
  9794. SetVehicleToRespawnEx(v);
  9795. RentalCar[playerid] = 0;
  9796. RentalTime[playerid] = 0;
  9797. RentalRevoked{playerid} = false;
  9798. new Float:vh, price;
  9799. GetVehicleHealth(v, vh);
  9800. price = ((1000 - floatround(vh)) * 3);
  9801. if(vh < 1000)
  9802. {
  9803. SendClientMessageF(playerid, COLOR_RED, "Você foi cobrado um adicional $%s pelos danos causados no veiculo.", format_cash(price));
  9804. GivePlayerCash(playerid, -price);
  9805. }
  9806. SendClientMessageF(playerid, COLOR_WHITE, "Você devolveu {BCDCBC}%s{FFFFFF} para compania de veiculos alugados.", GetVehicleName(v));
  9807. return true;
  9808. }
  9809. //end of vehicle rental commands
  9810. //Sidejob commands
  9811. CMD:varrer(playerid, params[])//varrer
  9812. {
  9813. if(IsCuffed[playerid] == 1) return SysMsg(playerid,"Esta ação não pode ser executada enquanto você estiver em algemas.");
  9814. if(!Logged{playerid}) return SysMsg(playerid,"Você precisa estar logado no servidor para usar essa função.");
  9815. if(IsSweeping[playerid] == 1) return SysMsg(playerid,"Você já está limpando.");
  9816. if(!IsPlayerInRangeOfPoint(playerid,30.0,2248.173828,34.401039,26.484375)) return SysMsg(playerid,"Você precisa estar na estação de limpeza de rua para iniciar.");
  9817. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você deve estar em um varredor.");
  9818. if(!IsSweeper(GetPlayerVehicleID(playerid))) return SysMsg(playerid,"Você precisa estar em um veiculo de varredor de rua.");
  9819. if(SweepSpamTime[playerid] > 0) return SysMsgF(playerid, "Você precisa esperar %i minutos antes de trabalhar como varredor novamente.",SweepSpamTime[playerid]);
  9820. new Float:vhealth;
  9821. GetVehicleHealth(GetPlayerVehicleID(playerid), vhealth);
  9822. IsSweeping[playerid] = 1;
  9823. SweepIndex[playerid] = 1;
  9824. SidejobDamage[playerid] = floatround(vhealth);
  9825. if(SidejobDamage[playerid] > 1000)
  9826. {
  9827. SidejobDamage[playerid] = 1000;
  9828. SetVehicleHealthEx(GetPlayerVehicleID(playerid), 1000);
  9829. }
  9830. SetPlayerCheckpointEx(playerid,2264.321289,38.975631,26.335937,3.0); //varrerCheckPoint1
  9831. SweepObjects[playerid][0] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2264.321289, 38.975631, 25.345, 0.0, 0.0, 0.0);
  9832. SweepObjects[playerid][1] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2291.153564, 32.220500, 25.345, 0.0, 0.0, 0.0);
  9833. SweepObjects[playerid][2] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2291.385009, -10.033596, 25.345, 0.0, 0.0, 0.0);
  9834. SweepObjects[playerid][3] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2262.811279, -25.737337, 25.345, 0.0, 0.0, 0.0);
  9835. SweepObjects[playerid][4] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2221.316894, -39.803321, 25.345, 0.0, 0.0, 0.0);
  9836. SweepObjects[playerid][5] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2224.734130, -97.211372, 25.345, 0.0, 0.0, 0.0);
  9837. SweepObjects[playerid][6] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2279.059570, -101.231948, 25.345, 0.0, 0.0, 0.0);
  9838. SweepObjects[playerid][7] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2331.573730, -100.848052, 25.345, 0.0, 0.0, 0.0);
  9839. SweepObjects[playerid][8] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2354.369384, -30.711990, 25.345, 0.0, 0.0, 0.0);
  9840. SweepObjects[playerid][9] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2396.579345, -15.579336, 25.345, 0.0, 0.0, 0.0);
  9841. SweepObjects[playerid][10] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2396.870605, 31.072309, 25.345, 0.0, 0.0, 0.0);
  9842. SweepObjects[playerid][11] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2450.659179, 39.145729, 25.345, 0.0, 0.0, 0.0);
  9843. SweepObjects[playerid][12] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2524.689208, 39.686870, 25.345, 0.0, 0.0, 0.0);
  9844. SweepObjects[playerid][13] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2536.922607, 85.697204, 25.345, 0.0, 0.0, 0.0);
  9845. SweepObjects[playerid][14] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2475.518310, 113.706550, 25.345, 0.0, 0.0, 0.0);
  9846. SweepObjects[playerid][15] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2461.460693, 55.430244, 25.345, 0.0, 0.0, 0.0);
  9847. SweepObjects[playerid][16] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2411.414306, 44.014770, 25.345, 0.0, 0.0, 0.0);
  9848. SweepObjects[playerid][17] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2396.525878, 80.764770, 25.345, 0.0, 0.0, 0.0);
  9849. SweepObjects[playerid][18] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2320.194335, 93.953422, 25.345, 0.0, 0.0, 0.0);
  9850. SweepObjects[playerid][19] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2243.012451, 94.132713, 25.345, 0.0, 0.0, 0.0);
  9851. SweepObjects[playerid][20] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2221.406250, 54.612068, 25.345, 0.0, 0.0, 0.0);
  9852. SweepObjects[playerid][21] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2243.154052, 38.083045, 25.345, 0.0, 0.0, 0.0);
  9853. SendClientMessage(playerid,COLOR_ORANGE,"Ajude a limpar as ruas de Palomino Creek varrendo as estradas.");
  9854. return true;
  9855. }
  9856. CMD:entregar(playerid)//deliver
  9857. {
  9858. if(IsCuffed[playerid] == 1) return SysMsg(playerid,"Esta ação não pode ser executada enquanto você estiver em algemas.");
  9859. if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado para usar esse recurso.");
  9860. if(IsDelivering[playerid] == 1) return SysMsg(playerid,"Você já está fazendo uma entrega.");
  9861. if(!IsPlayerInRangeOfPoint(playerid, 30.0, 1387.9158, 264.1994, 19.5669)) return SysMsg(playerid,"Você deve estar na Pizza Stack para iniciar.");
  9862. if(IsPizzaCar(GetPlayerVehicleID(playerid)) == 0 || GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você não estár em um veiculo para entregar.");
  9863. if(DeliverSpamTime[playerid] > 0) return SysMsgF(playerid, "Você precisa esperar %i minutos para entregar novamente.", DeliverSpamTime[playerid]);
  9864. new homecount = 0, zone[MAX_ZONE_NAME + 1], homesfound[100], town = random(4), townname[50], pizzacount = 0;
  9865. if(town == 0) townname = "Montgomery";
  9866. if(town == 1) townname = "Palomino Creek";
  9867. if(town == 2) townname = "Blueberry";
  9868. if(town == 3) townname = "Fort Carson";
  9869. for(new h = 0; h < MAX_HOUSES; h++)
  9870. {
  9871. if(homecount == 99) break; //end the loop if the homecount somehow gets this high to prevent crashing.
  9872. Get2DZone(HouseData[h][oPosX], HouseData[h][oPosY], zone, MAX_ZONE_NAME);
  9873. if(strcmp(townname, zone, true) == 0)
  9874. {
  9875. //original peach block homes, remove this code when/if the mapping is removed.
  9876. if(HouseData[h][HouseSQLID] == 74 || HouseData[h][HouseSQLID] == 75 || HouseData[h][HouseSQLID] == 8 || HouseData[h][HouseSQLID] == 70) continue;
  9877. homesfound[homecount] = h;
  9878. homecount ++;
  9879. }
  9880. }
  9881. //should never happen but it's just a failsafe.
  9882. if(homecount == 0) return SysMsg(playerid, "Ocorreu um erro ao tentar encontrar casas para você entregar.");
  9883. for(new p = 0; p < homecount; p++)
  9884. {
  9885. if(pizzacount == 10) break;
  9886. new randy = random(12);
  9887. if(randy == 2)
  9888. {
  9889. PizzaHomes[playerid][pizzacount] = homesfound[p];
  9890. PizzaMarkers[playerid][pizzacount] = CreateDynamicMapIcon(HouseData[homesfound[p]][oPosX], HouseData[homesfound[p]][oPosY], HouseData[homesfound[p]][oPosZ], 29, -1, -1, -1, playerid);
  9891. pizzacount ++;
  9892. }
  9893. }
  9894. //should never happen but it's just a failsafe.
  9895. if(pizzacount == 0) return SysMsg(playerid, "Ocorreu um erro ao tentar encontrar casas para você entregar.");
  9896. new Float:vhealth;
  9897. GetVehicleHealth(GetPlayerVehicleID(playerid), vhealth);
  9898. IsDelivering[playerid] = 1;
  9899. SidejobDamage[playerid] = floatround(vhealth);
  9900. if(SidejobDamage[playerid] > 1000)
  9901. {
  9902. SidejobDamage[playerid] = 1000;
  9903. SetVehicleHealthEx(GetPlayerVehicleID(playerid), 1000);
  9904. }
  9905. //apply Temporizador de Spam
  9906. if(DeliverLevel[playerid] == 1)
  9907. {
  9908. if(IsDonator[playerid] >= 2) DeliverSpamTime[playerid] = 30;
  9909. else DeliverSpamTime[playerid] = 60;
  9910. }
  9911. else if(DeliverLevel[playerid] == 2)
  9912. {
  9913. if(IsDonator[playerid] >= 2) DeliverSpamTime[playerid] = 30;
  9914. else DeliverSpamTime[playerid] = 55;
  9915. }
  9916. else if(DeliverLevel[playerid] == 3)
  9917. {
  9918. if(IsDonator[playerid] >= 2) DeliverSpamTime[playerid] = 30;
  9919. else DeliverSpamTime[playerid] = 50;
  9920. }
  9921. else if(DeliverLevel[playerid] == 4)
  9922. {
  9923. if(IsDonator[playerid] >= 2) DeliverSpamTime[playerid] = 30;
  9924. else DeliverSpamTime[playerid] = 45;
  9925. }
  9926. else if(DeliverLevel[playerid] == 5)
  9927. {
  9928. if(IsDonator[playerid] >= 2) DeliverSpamTime[playerid] = 30;
  9929. else DeliverSpamTime[playerid] = 40;
  9930. }
  9931. SendClientMessageF(playerid, COLOR_LIGHTGREEN, "Você foi designado entregar %i pizza homes in {FFFFFF}%s{00FF00}. Use /entregacasas para ver as casas mencionadas.", pizzacount, townname);//observar
  9932. SendClientMessage(playerid, COLOR_LIGHTGREEN, "Alternativa, procure ícones de pizza no seu minimap para obter uma idéia geral de onde você deve entregar pizzas.");
  9933. SendClientMessage(playerid, COLOR_LIGHTGREEN, "Use /pegarpizza para pegar uma caixa de pizza do veiculo, siga até o icone da casa para entregar.");
  9934. return true;
  9935. }
  9936. CMD:pegarpizza(playerid)//pegarpizza
  9937. {
  9938. if(IsDelivering[playerid] != 1) return SysMsg(playerid, "Você não está entregando pizza.");
  9939. if(IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você não deve estar em um veículo.");
  9940. if(DeliverIndex[playerid] == 1) return SysMsg(playerid, "Você não tem mais pizzas para entregar.");
  9941. new v = GetNearestVehicle(playerid);
  9942. if(!IsPizzaCar(v)) return SysMsg(playerid, "O veículo deve ser um Pizzaboy.");
  9943. if(HasPizza{playerid})
  9944. {
  9945. RemovePlayerAttachedObject(playerid, PizzaIndex[playerid]);
  9946. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE);
  9947. HasPizza{playerid} = false;
  9948. PizzaIndex[playerid] = -1;
  9949. }
  9950. else
  9951. {
  9952. new index = GetFreePlayerObjectIndex(playerid);
  9953. if(index == -1) return SysMsg(playerid, "Não foi possível encontrar um slot de roupa para anexar uma caixa de pizza. Pegue um item.");
  9954. SetPlayerAttachedObject(playerid, index, 19571, 1, -0.035999, 0.354000, -0.040999, -90.000000, -0.000000, -90.000000, 1.000000, 1.000000, 1.000000);
  9955. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY);
  9956. HasPizza{playerid} = true;
  9957. PizzaIndex[playerid] = index;
  9958. format(sgstr, sizeof(sgstr),"* %s pega uma caixa de pizza quente do compartimento do veiculo. *",NameRP(playerid));
  9959. ProxDetector(20.0,playerid,sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  9960. }
  9961. return true;
  9962. }
  9963. CMD:entregacasas(playerid)//entregacasas
  9964. {
  9965. if(!Logged{playerid}) return true;
  9966. if(IsDelivering[playerid] != 1) return SysMsg(playerid, "Você não está entregando pizza.");
  9967. gstr[0] = EOS;
  9968. new homecount = 0;
  9969. for(new x = 0; x < 10; x++)
  9970. {
  9971. if(PizzaHomes[playerid][x] != -1)
  9972. {
  9973. format(tgstr, sizeof(tgstr), "%i: %s\n", x + 1, HouseData[PizzaHomes[playerid][x]][HouseDescription]);
  9974. strcat(gstr, tgstr);
  9975. homecount ++;
  9976. }
  9977. }
  9978. if(homecount == 0) return SysMsg(playerid, "Não foi possível encontrar quaisquer casas para entregar.");
  9979. else ShowMessage(playerid, "Casas à espera de entrega", gstr, "Obrigado!");
  9980. return true;
  9981. }
  9982. CMD:truck(playerid, params[])
  9983. {
  9984. if(IsCuffed[playerid] == 1) return SysMsg(playerid,"Esta ação não pode ser executada enquanto você estiver em algemas.");
  9985. if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado para usar esse recurso.");
  9986. if(IsTrucking[playerid] == 1) return SysMsg(playerid,"Você já está transportando.");
  9987. if(TruckSpamTime[playerid] > 0) return SysMsgF(playerid, "Você precisa esperar %i minutos para usar o Truck novamente.",TruckSpamTime[playerid]);
  9988. if(IsPlayerInRangeOfPoint(playerid,50.0,66.75766,-256.393,1.57867) || (IsPlayerInRangeOfPoint(playerid,50.0,585.711547, 1664.336669, 6.992187) && Faction[playerid] == FACTION_TRUCKING))
  9989. {
  9990. new vehicleid = GetPlayerVehicleID(playerid);
  9991. if(vehicleid == 0) return SysMsg(playerid, "Você precisa estar em um truck.");
  9992. if(IsTruck(vehicleid) || GetVehicleModel(vehicleid) == 498)
  9993. {
  9994. if(Faction[playerid] == FACTION_TRUCKING || IsPlayerAdmin(playerid) || TruckLevel[playerid] == 5)
  9995. {
  9996. gstr[0] = EOS;
  9997. strcat(gstr, "Seleção Random\n");
  9998. for(new i = 0; i < sizeof(TruckRoutes); i++)
  9999. {
  10000. //vehicle is boxville
  10001. if(GetVehicleModel(vehicleid) != 498 && TruckRoutes[i][TruckRouteTrailerID] == 0) continue;
  10002. if(GetVehicleModel(vehicleid) == 498 && TruckRoutes[i][TruckRouteTrailerID] > 0) continue;
  10003. format(sgstr, sizeof(sgstr), "DE %s PARA %s\n", TruckRoutes[i][TruckRouteStart], TruckRoutes[i][TruckRouteEnd]);
  10004. strcat(gstr, sgstr);
  10005. }
  10006. Dialog_Show(playerid, TruckingRoutes, DIALOG_STYLE_LIST, "Selecionar trabalho", gstr, "Selecionar", "Cancelar");
  10007. return true;
  10008. }
  10009. if(GetVehicleModel(vehicleid) == 498 && Faction[playerid] != FACTION_TRUCKING) return SysMsg(playerid, "Somente Elite Trucking pode usar um Boxville para este trabalho.");
  10010. new Float:vhealth;
  10011. GetVehicleHealth(GetPlayerVehicleID(playerid), vhealth);
  10012. IsTrucking[playerid] = 1;
  10013. TruckIndex[playerid] = 0;
  10014. SidejobDamage[playerid] = floatround(vhealth);
  10015. if(SidejobDamage[playerid] > 1000)
  10016. {
  10017. SidejobDamage[playerid] = 1000;
  10018. SetVehicleHealthEx(GetPlayerVehicleID(playerid), 1000);
  10019. }
  10020. new randLoad = random(sizeof(TruckRoutes));
  10021. TruckRouteId[playerid] = randLoad;
  10022. SetPlayerCheckpointEx(playerid, TruckRoutes[randLoad][TruckRoutePoints][0], TruckRoutes[randLoad][TruckRoutePoints][1], TruckRoutes[randLoad][TruckRoutePoints][2], 7.0);
  10023. SendClientMessage(playerid, COLOR_ORANGE, "[TRABALHO TRUCKING]");
  10024. SendClientMessageF(playerid, COLOR_ORANGE, "Busque uma carga em: %s", TruckRoutes[randLoad][TruckRouteStart]);
  10025. SendClientMessageF(playerid, COLOR_ORANGE, "Entregue para: %s", TruckRoutes[randLoad][TruckRouteEnd]);
  10026. SendClientMessageF(playerid, COLOR_ORANGE, "Transportando: %s", TruckRoutes[randLoad][TruckRouteLoad]);
  10027. SendClientMessage(playerid, COLOR_WHITE, "Vá para o checkpoint para buscar a carga.");
  10028. }
  10029. else return SysMsg(playerid,"Você precisa está em um truck.");
  10030. return true;
  10031. }
  10032. SysMsg(playerid,"Você precisa está no HQ de caminhões para iniciar uma rota.");
  10033. return true;
  10034. }
  10035. CMD:drivebus(playerid, params[])
  10036. {
  10037. if(IsCuffed[playerid] == 1) return SysMsg(playerid,"Esta ação não pode ser executada enquanto você estiver em algemas.");
  10038. if(!Logged{playerid}) return SysMsg(playerid,"Você precisa estar logado para usar esta ferramenta.");
  10039. if(IsDrivingBus{playerid}) return SysMsg(playerid,"Você já está dirigindo uma rota de ônibus.");
  10040. if(!IsPlayerInRangeOfPoint(playerid,50.0,-29.788593,-306.246978,5.422851)) return SysMsg(playerid,"Você deve estar na estação de ônibus para começar.");
  10041. if(!IsBus(GetPlayerVehicleID(playerid)) || GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você deve estar em um ônibus. (como Driver)");
  10042. if(HasGPSWaypoint[playerid] == 1) return SysMsg(playerid,"Você não pode fazer um trabalho de ônibus quando o GPS estiver ativo.");
  10043. IsDrivingBus{playerid} = true;
  10044. BusRouteIndex[playerid] = 0;
  10045. SidejobDamage[playerid] = 500;
  10046. SetPlayerRaceCheckpointEx(playerid,2, -228.403884,-285.622985,1.078125 ,0.0, 0.0, 0.0, 5.0); //BUS_0_PanapticanCutoff
  10047. SendClientMessage(playerid, COLOR_WHITE, "Motorista de ônibus: Drive Around Red County Parando em paradas de ônibus marcadas. Cada parada de ônibus deixa você $10.");
  10048. SendClientMessage(playerid, COLOR_WHITE, "Você está dirigindo a rota 101: Red County > Bone County > Red County.");
  10049. SendClientMessage(playerid, COLOR_WHITE, "Parada de ônibus atual: n/a - Próxima parada: The Panopticon Cutoff (Início do serviço)");
  10050. return true;
  10051. }
  10052. CMD:coalmine(playerid, params[])
  10053. {
  10054. if(IsCuffed[playerid] == 1) return SysMsg(playerid,"Esta ação não pode ser executada enquanto você estiver em algemas.");
  10055. if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado para usar esse recurso.");
  10056. if(IsCoalmining[playerid] > 0) return SysMsg(playerid,"Você já estar em um coalmining.");
  10057. if(!IsPlayerInRangeOfPoint(playerid,30.0,841.066101, 861.726196, 13.106781)) return SysMsg(playerid,"Você deve estar na pedreira para começar.");
  10058. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você precisa estar em um coalmine Dumper.");
  10059. if(!IsDumper(GetPlayerVehicleID(playerid))) return SysMsg(playerid,"Você precisa estar em um coalmine Dumper.");
  10060. if(CoalmineSpamTime[playerid] > 0) return SysMsgF(playerid, "Você precisa esperar %i minutos antes de iniciar uma nova rota.",CoalmineSpamTime[playerid]);
  10061. new Float:vhealth;
  10062. GetVehicleHealth(GetPlayerVehicleID(playerid), vhealth);
  10063. IsCoalmining[playerid] = random(2)+1;
  10064. CoalmineIndex[playerid] = 1;
  10065. SidejobDamage[playerid] = floatround(vhealth);
  10066. if(SidejobDamage[playerid] > 1000)
  10067. {
  10068. SidejobDamage[playerid] = 1000;
  10069. SetVehicleHealthEx(GetPlayerVehicleID(playerid), 1000);
  10070. }
  10071. if(IsCoalmining[playerid] == 1)
  10072. {
  10073. SetPlayerCheckpointEx(playerid,815.422424, 847.468750, 10.534412,6.0); //COALMINE_1
  10074. SendClientMessage(playerid,COLOR_ORANGE,"Dirija o Coal dentro da Pedreira. Você esta dirigindo na rota número 1.");
  10075. }
  10076. else if(IsCoalmining[playerid] == 2)
  10077. {
  10078. SetPlayerCheckpointEx(playerid,817.027343, 846.395263, 10.584503,6.0); //COALMINE_1
  10079. SendClientMessage(playerid,COLOR_ORANGE,"Dirija o Coal dentro da Pedreira. Você esta dirigindo na rota número 2.");
  10080. }
  10081. return true;
  10082. }
  10083. CMD:coletarlixo(playerid, params[])
  10084. {
  10085. if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado para usar esse recurso.");
  10086. if(IsCuffed[playerid] == 1) return SysMsg(playerid,"Esta ação não pode ser executada enquanto você estiver em algemas.");
  10087. if(IsTrashMan[playerid] > 0) return SysMsg(playerid,"Você já está coletando lixo.");
  10088. if(!IsPlayerInRangeOfPoint(playerid,75.0,601.516845, 1224.664794, 11.718750)) return SysMsg(playerid,"Você deve estar na fábrica para começar.");
  10089. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você deve estar no caminhão de lixo.");
  10090. if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 408) return SysMsg(playerid, "Você deve estar no caminhão de lixo.");
  10091. if(GetPlayerVehicleSeat(playerid) != 0) return SysMsg(playerid, "Você precisa estar em um caminhão de lixo para trabalhar.");
  10092. if(TrashSpamTime[playerid] > 0) return SysMsgF(playerid, "Você precisa esperar %i antes de coletar lixo novamente.", TrashSpamTime[playerid]);
  10093. new Float:vhealth;
  10094. GetVehicleHealth(GetPlayerVehicleID(playerid), vhealth);
  10095. IsTrashMan[playerid] = 1;
  10096. TrashIndex[playerid] = 1;
  10097. SidejobDamage[playerid] = floatround(vhealth);
  10098. if(SidejobDamage[playerid] > 1000)
  10099. {
  10100. SidejobDamage[playerid] = 1000;
  10101. SetVehicleHealthEx(GetPlayerVehicleID(playerid), 1000);
  10102. }
  10103. TrashMissionData[playerid][0] = GetPlayerVehicleID(playerid);
  10104. SetPlayerCheckpointEx(playerid,167.428207, 1183.789550, 14.757812,6.0); //COALMINE_1
  10105. SendClientMessage(playerid,COLOR_ORANGE,"Coletar lixo em todo Fort Carson. Vá para o primeiro ponto.");
  10106. SendClientMessage(playerid, COLOR_LIGHTGREEN, "Ponto de Lixo 1: Cluckin' Bell");
  10107. return true;
  10108. }
  10109. //End of sidejob commands
  10110. //Vehicle commands
  10111. CMD:savecar(playerid, params[])
  10112. {
  10113. if(!Logged{playerid}) return true;
  10114. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você não está em um carro.");
  10115. new v = GetPlayerVehicleID(playerid);
  10116. if(IsPlayerInDynamicArea(playerid, PCArea)) return SysMsg(playerid, "Você não pode savar a posição de spawnar aqui.");
  10117. if(IsOwnedCar(VehicleData[v][IdVehicle]))
  10118. {
  10119. if(VehicleData[v][VehicleOwnerSQLID] != SQLID[playerid]) return SysMsg(playerid, "Esse veiculo não é seu.");
  10120. new Float:vPos[4], vworld = GetVehicleVirtualWorld(v), interior = GetPlayerInterior(playerid);
  10121. GetVehiclePos(v, vPos[0], vPos[1], vPos[2]);
  10122. GetVehicleZAngle(v, vPos[3]);
  10123. mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET LastX = %f, LastY = %f, LastZ = %f, LastRot = %f, VWorld = %i, Interior = %i WHERE id = %i", vPos[0], vPos[1], vPos[2], vPos[3], vworld, interior, VehicleData[v][VehSQLID]);
  10124. mysql_pquery(conn, mquery);
  10125. VehicleData[v][LastX] = vPos[0];
  10126. VehicleData[v][LastY] = vPos[1];
  10127. VehicleData[v][LastZ] = vPos[2];
  10128. VehicleData[v][LastRot] = vPos[3];
  10129. VehicleData[v][VirtualWorld] = vworld;
  10130. VehicleData[v][FuelRemaining] = Fuel[v];
  10131. VehicleData[v][VehicleInterior] = interior;
  10132. SendClientMessage(playerid,COLOR_GOLD,"A posição do veiculo foi salva, ele irá respawnar aqui agora.");
  10133. return true;
  10134. }
  10135. return true;
  10136. }
  10137. CMD:removerchaves(playerid, params[])//removerchaves
  10138. {
  10139. if(!Logged{playerid}) return true;
  10140. if(VehicleBorrowKey[playerid] == 0) return SysMsg(playerid,"Você não compartilhou a chave de seu veiculo para alguém.");
  10141. VehicleBorrowKey[playerid] = 0;
  10142. VehicleBorrowKeyTime[playerid] = 0;
  10143. MySQLUpdateInt(SQLID[playerid], "BorrowKey", VehicleBorrowKey[playerid], "players");
  10144. MySQLUpdateInt(SQLID[playerid], "BorrowKeyTime", VehicleBorrowKeyTime[playerid], "players");
  10145. SendClientMessage(playerid, COLOR_GOLD, "A copia de chave do veiculo foi removida. Você não pode mais usar o veículo que você estava compartilhando.");
  10146. return true;
  10147. }
  10148. CMD:darchave(playerid, params[])
  10149. {
  10150. if(!Logged{playerid}) return true;
  10151. if(GetPlayerOwnedVehicleCount(playerid) == 0) return SysMsg(playerid,"Você não tem carros comprados para compartilha uma chave.");
  10152. new playa = -1, vid, minutes, slot = 1, ctr;
  10153. if(sscanf(params, "uii", playa, vid, minutes))
  10154. {
  10155. for(ctr = 0; ctr < MAX_VEH_PER_PLAYER; ctr++)
  10156. {
  10157. if(VehicleData[ctr][VehicleOwnerSQLID] == SQLID[playerid])
  10158. {
  10159. if(!VehicleData[ctr][Impounded])
  10160. {
  10161. SendClientMessageF(playerid, COLOR_WHITE, "ID %i - %s", slot, GetVehicleName(ctr));
  10162. slot ++;
  10163. }
  10164. }
  10165. }
  10166. SysMsg(playerid,"Use: /darchave [ID ou nome do jogador] [veiculo ID do /meuscarros] [tempo em minutos]");
  10167. return true;
  10168. }
  10169. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  10170. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  10171. if(playa == playerid) return SysMsg(playerid,"Você não pode dar uma chave a si mesmo.");
  10172. new Float:tX,Float:tY,Float:tZ;
  10173. GetPlayerPos(playa,tX,tY,tZ);
  10174. if(!IsPlayerInRangeOfPoint(playerid,5.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para dar-lhe as chaves.");
  10175. if(VehicleBorrowKey[playa] > 0) return SysMsg(playerid,"Esse jogador já tem uma chave compartilhada.");
  10176. if(VehicleData[vid][VehicleOwnerSQLID] != SQLID[playerid]) return SysMsg(playerid,"Este veículo não pertence a você. Como tal, você não pode dar a alguém uma chave para ele.");
  10177. if(minutes < 5 || minutes > 20160) return SysMsg(playerid,"O tempo deve estar entre 5 e 20160 minutos (14 Dias).");
  10178. VehicleShareOffer[playa][0] = playerid;
  10179. VehicleShareOffer[playa][1] = vid;
  10180. VehicleShareOffer[playa][2] = minutes;
  10181. SendClientMessageF(playa, COLOR_WHITE, "%s te ofereceu a chave do veiculo %s. Use '/aceitar chave' para confirmar.", NameEx(playerid), GetVehicleName(vid));
  10182. SendClientMessageF(playerid, COLOR_WHITE, "Você ofereceu para %s a chave do veiculo %s. Ele precisa aceitar primeiro.", NameEx(playa), GetVehicleName(vid));
  10183. return true;
  10184. }
  10185. CMD:velocimetro(playerid, params[])//velocimetro //V
  10186. {
  10187. if(!Logged{playerid}) return true;
  10188. if(isnull(params)) return SysMsg(playerid,"Use: /velocimetro [on/off/tipo]");
  10189. if(strcmp("on", params, false) == 0)
  10190. {
  10191. if(SpeedoActive[playerid] == 1) return SysMsg(playerid, "O seu velocímetro já está ligado.");
  10192. SpeedoActive[playerid] = 1;
  10193. if(GetPlayerVehicleID(playerid) > 0) PlayerTextDrawShow(playerid,SpeedText[playerid]);
  10194. SendClientMessage(playerid,COLOR_GOLD,"O seu velocímetro agora está ligado.");
  10195. return true;
  10196. }
  10197. else if(strcmp("off", params, false) == 0)
  10198. {
  10199. if(SpeedoActive[playerid] == 0) return SysMsg(playerid, "Seu velocímetro já está desligado.");
  10200. SpeedoActive[playerid] = 0;
  10201. if(GetPlayerVehicleID(playerid) > 0) PlayerTextDrawHide(playerid,SpeedText[playerid]);
  10202. SendClientMessage(playerid,COLOR_GOLD,"Seu velocímetro agora está desligado.");
  10203. UnlockAchievement(playerid,27);
  10204. return true;
  10205. }
  10206. else if(strcmp("tipo", params, false) == 0)
  10207. {
  10208. if(SpeedFormat[playerid] == 0)
  10209. {
  10210. SpeedFormat[playerid] = 1;
  10211. MySQLUpdateInt(SQLID[playerid], "SpeedoFormat", SpeedFormat[playerid], "players");
  10212. SendClientMessage(playerid,COLOR_GOLD,"Seu velocímetro agora está configurado para mostrar Quilômetros por hora (KM/H).");
  10213. UnlockAchievement(playerid,28);
  10214. }
  10215. else if(SpeedFormat[playerid] == 1)
  10216. {
  10217. SpeedFormat[playerid] = 0;
  10218. MySQLUpdateInt(SQLID[playerid], "SpeedoFormat", SpeedFormat[playerid], "players");
  10219. SendClientMessage(playerid,COLOR_GOLD,"Seu velocímetro agora está configurado para mostrar milhas por hora (MPH).");
  10220. }
  10221. return true;
  10222. }
  10223. SysMsg(playerid,"Use: /velocimetro [on/off/tipo]");
  10224. return true;
  10225. }
  10226. CMD:vercarros(playerid, params[])
  10227. {
  10228. if(!Logged{playerid}) return true;
  10229. mysql_format(conn, mquery, sizeof(mquery), "SELECT id FROM vehicles WHERE OwnerSQLID = %i", SQLID[playerid]);
  10230. mysql_pquery(conn, mquery, "BuyVehicleFromShop", "i", playerid);
  10231. return true;
  10232. }
  10233. CMD:vermotocicletas(playerid, params[])//**viewbikes
  10234. {
  10235. if(!Logged{playerid}) return true;
  10236. if(!IsPlayerInRangeOfPoint(playerid, 5.0, 707.712890,-522.316284,16.335937)) return SysMsg(playerid,"Você deve estar na loja de motos em Dillimore.");
  10237. mysql_format(conn, mquery, sizeof(mquery), "SELECT id FROM vehicles WHERE OwnerSQLID = %i", SQLID[playerid]);
  10238. mysql_pquery(conn, mquery, "BuyBikeFromShop", "i", playerid);
  10239. return true;
  10240. }
  10241. CMD:verbarcos(playerid, params[])//viewboats
  10242. {
  10243. if(!Logged{playerid}) return true;
  10244. if(!IsPlayerInRangeOfPoint(playerid, 5.0, -2186.7673, 2413.8621, 5.1563)) return SysMsg(playerid, "Você deve estar na loja do barco nas Docas de Bayside.");
  10245. mysql_format(conn, mquery, sizeof(mquery), "SELECT id FROM vehicles WHERE OwnerSQLID = %i", SQLID[playerid]);
  10246. mysql_pquery(conn, mquery, "BuyBoatFromShop", "i", playerid);
  10247. return true;
  10248. }
  10249. CMD:verestoque(playerid, params[])
  10250. {
  10251. if(!Logged{playerid}) return true;
  10252. gstr[0] = EOS;
  10253. new v = 0;
  10254. strcat(gstr, "Veiculo\tPreço");
  10255. if(IsPlayerInRangeOfPoint(playerid, 5.0, 643.642395, -492.949493, 16.335937)) //mm
  10256. {
  10257. for(v = 0; v < sizeof(MicksVehicleData); v++)
  10258. {
  10259. format(gstr, sizeof(gstr), "%s\n%s\t$%s", gstr, GetVehicleNameEx(MicksVehicleData[v][0]), format_cash(MicksVehicleData[v][1]));
  10260. }
  10261. SetPVarInt(playerid, "ViewingStock", 1);
  10262. Dialog_Show(playerid, StockView, DIALOG_STYLE_TABLIST_HEADERS, "Motocicletas em Estoque", gstr, "Selecionar", "Fechar");
  10263. }
  10264. else if(IsPlayerInRangeOfPoint(playerid, 5.0, 707.712890,-522.316284,16.335937)) //bike
  10265. {
  10266. for(v = 0; v < sizeof(BuyMotorbikeData); v++)
  10267. {
  10268. format(gstr, sizeof(gstr), "%s\n%s\t$%s", gstr, GetVehicleNameEx(BuyMotorbikeData[v][0]), format_cash(BuyMotorbikeData[v][1]));
  10269. }
  10270. SetPVarInt(playerid, "ViewingStock", 2);
  10271. Dialog_Show(playerid, StockView, DIALOG_STYLE_TABLIST_HEADERS, "Estoque da Concessionária", gstr, "Selecionar", "Fechar");
  10272. }
  10273. else if(IsPlayerInRangeOfPoint(playerid, 5.0, -2186.7673, 2413.8621, 5.1563)) //boat
  10274. {
  10275. for(v = 0; v < sizeof(BuyBoatData); v++)
  10276. {
  10277. format(gstr, sizeof(gstr), "%s\n%s\t$%s", gstr, GetVehicleNameEx(BuyBoatData[v][0]), format_cash(BuyBoatData[v][1]));
  10278. }
  10279. SetPVarInt(playerid, "ViewingStock", 3);
  10280. Dialog_Show(playerid, StockView, DIALOG_STYLE_TABLIST_HEADERS, "Estoque da Concessionária", gstr, "Selecionar", "Fechar");
  10281. }
  10282. else return SysMsg(playerid, "Você não está perto de nenhuma concessionária de veículos.");
  10283. return true;
  10284. }
  10285. CMD:colocaravenda(playerid, params[])
  10286. {
  10287. if(!Logged{playerid}) return true;
  10288. if(GetPlayerOwnedVehicleCount(playerid) == 0) return SysMsg(playerid,"Você não tem carros para vender.");
  10289. new v = GetPlayerVehicleID(playerid);
  10290. if(v == 0) return SysMsg(playerid,"Você deve estar em um veículo.");
  10291. if(v == VehicleData[v][IdVehicle])
  10292. {
  10293. if(VehicleData[v][VehicleOwnerSQLID] != SQLID[playerid]) return SysMsg(playerid,"Você não possui este veículo.");
  10294. if(VehicleData[v][ForSale]) return SysMsg(playerid,"Este veículo já está à venda.");
  10295. if(VehicleData[v][DonatorCar]) return SysMsg(playerid,"Você não pode vender veículos Donator.");
  10296. new askingprice;
  10297. if(sscanf(params, "i", askingprice)) return SysMsg(playerid,"Use: /colocaravenda [Preço]");
  10298. if(askingprice < 1 || askingprice > 10000000) return SysMsg(playerid,"O preço deve estar entre $1 e $10,000,000.");
  10299. if(Inventory[playerid][Pen] == 0 || Inventory[playerid][Paper] == 0) return SysMsg(playerid,"Você precisa de uma caneta e papel para criar um papel de venda.");
  10300. Inventory[playerid][Pen] --;
  10301. Inventory[playerid][Paper] --;
  10302. VehicleData[v][ForSale] = true;
  10303. VehicleData[v][ForSalePrice] = askingprice;
  10304. mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET ForSale = 1, ForSalePrice = %i WHERE id = %i", askingprice, VehicleData[v][VehSQLID]);
  10305. mysql_pquery(conn, mquery);
  10306. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET HasPaper = %i, HasPen = %i WHERE id = %i", Inventory[playerid][Paper], Inventory[playerid][Pen], SQLID[playerid]);
  10307. mysql_pquery(conn, mquery);
  10308. new forsale[128];
  10309. format(forsale, sizeof(forsale), "A VENDA\n%s\n$%s\nPor favor, liga %i para mais info.", GetVehicleName(v), format_cash(VehicleData[v][ForSalePrice]), PhoneData[playerid][pNumber]);
  10310. VehicleData[v][ForSaleLabel] = CreateDynamic3DTextLabel(forsale, COLOR_SIGN, 0.0, 0.0, 0.0, 10.0, INVALID_PLAYER_ID, VehicleData[v][IdVehicle], 1, -1, 0, -1, 30.0);
  10311. SendClientMessageF(playerid, COLOR_WHITE, "Você definiu seu %s a venda por $%s. Mantenha seu Celular ligado para receber chamadas!", GetVehicleName(v), format_cash(VehicleData[v][ForSalePrice]));
  10312. format(gstr, sizeof(gstr),"* %s escreve algumas informações no papel logo depois fixa sobre o vidro do %s. *",NameRP(playerid),GetVehicleName(v));
  10313. ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  10314. return true;
  10315. }
  10316. SysMsg(playerid,"Você não pode vender este veículo.");
  10317. return true;
  10318. }
  10319. //CMD:forsale(playerid, params[]) return cmd_colocaravenda(playerid, params);
  10320. CMD:removeranuncio(playerid, params[])
  10321. {
  10322. if(!Logged{playerid}) return true;
  10323. if(GetPlayerOwnedVehicleCount(playerid) == 0) return SysMsg(playerid,"Você não tem nenhum veículo.");
  10324. new v = GetPlayerVehicleID(playerid);
  10325. if(v == 0) return SysMsg(playerid,"Você deve estar em um veículo.");
  10326. if(v == VehicleData[v][IdVehicle])
  10327. {
  10328. if(VehicleData[v][VehicleOwnerSQLID] != SQLID[playerid]) return SysMsg(playerid,"Você não possui este veículo.");
  10329. if(!VehicleData[v][ForSale]) return SysMsg(playerid,"Este veículo não está à venda.");
  10330. VehicleData[v][ForSale] = false;
  10331. VehicleData[v][ForSalePrice] = 0;
  10332. mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET ForSale = 0, ForSalePrice = 0 WHERE id = %i", VehicleData[v][VehSQLID]);
  10333. mysql_pquery(conn, mquery);
  10334. DestroyDynamic3DTextLabel(VehicleData[v][ForSaleLabel]);
  10335. SendClientMessageF(playerid, COLOR_WHITE, "Você cancelou a venda do seu %s.", GetVehicleName(v));
  10336. format(gstr, sizeof(gstr),"* %s removeu o papel de venda fixado do vidro do %s. *",NameRP(playerid),GetVehicleName(v));
  10337. ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  10338. return true;
  10339. }
  10340. return true;
  10341. }
  10342. CMD:refill(playerid, params[]) return cmd_abastecer(playerid, params);
  10343. CMD:fill(playerid, params[]) return cmd_abastecer(playerid, params);
  10344. CMD:fuel(playerid, params[]) return cmd_abastecer(playerid, params);
  10345. CMD:abastecer(playerid, params[])
  10346. {
  10347. if(!Logged{playerid}) return true;
  10348. new VehID;
  10349. if(IsPlayerInAnyVehicle(playerid)) VehID = GetPlayerVehicleID(playerid);
  10350. else VehID = GetClosestVehicle(playerid);
  10351. if(VehID == 0) return SysMsg(playerid,"Você deve estar em um veículo com um motor.");
  10352. if(!VehicleHasEngine(VehID)) return SysMsg(playerid,"Este veículo não precisa de combustível..");
  10353. if(!IsPlayerNearGasStation(playerid)) return SysMsg(playerid,"Você precisa estar próximo de um posto de combustível. (Red County, Bone County e Angel Pine para carros/bikes, Pista de pouso BC para aeronaves, Bayside Marina para Barcos.)");
  10354. if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso se estiver amarrado.");
  10355. if(Fuel[VehID] >= 100) return SysMsg(playerid,"O tanque deste veiculo já está cheio.");
  10356. if(EngineStatus[VehID] == 1) return SysMsg(playerid,"Por favor, desligue o veiculo para abastecer.");
  10357. if(IsPlayerRefilling[playerid] == 1) return SysMsg(playerid,"Você já está abastecendo este veículo.");
  10358. if(DeliveringFuel[playerid] > 0) return SysMsg(playerid, "Você não pode reabastecer seu veículo enquanto entrega combustível.");
  10359. if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  10360. {
  10361. new Float:x, Float:y, Float:z;
  10362. GetVehiclePos(VehID, x, y, z);
  10363. if(!IsPlayerInRangeOfPoint(playerid, 15.0, x, y, z)) return SysMsg(playerid, "Você deve estar perto do veículo para reabastecer-lo.");
  10364. }
  10365. pRefilling[playerid] = 1;
  10366. SetPVarInt(playerid, "fillType", 1);
  10367. if(IsPlayerInAnyVehicle(playerid)) SendClientMessage(playerid, COLOR_WHITE, "Saia do veículo e vá para posição do tanque do veículo.");
  10368. else
  10369. {
  10370. StartRefueling(playerid);
  10371. SendClientMessage(playerid, COLOR_WHITE, "Dirija-se à tampa de combustível do veículo para começar a reabastecer.");
  10372. }
  10373. return true;
  10374. }
  10375. CMD:usargalao(playerid, params[])
  10376. {
  10377. if(!Logged{playerid}) return true;
  10378. new VehID = GetPlayerVehicleID(playerid);
  10379. if(VehID == 0) return SysMsg(playerid,"Você deve estar em um veículo com um motor.");
  10380. if(!VehicleHasEngine(VehID)) return SysMsg(playerid,"Este veículo não precisa de combustível..");
  10381. if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você não é o motorista.");
  10382. if(EngineStatus[VehID] == 1) return SysMsg(playerid,"Desligue o motor do veiculo para fazer isso.");
  10383. if(Fuel[VehID] == 100) return SysMsg(playerid,"Esse veiculo já está com o tanque cheio.");
  10384. if(Inventory[playerid][FuelCan][0] == -1) return SysMsg(playerid,"Você não tem um galão de combustível.");
  10385. if(Inventory[playerid][FuelCan][0] == 0) return SysMsg(playerid,"Seu galão está vazio.");
  10386. if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso se estiver amarrado.");
  10387. if(IsPlayerRefilling[playerid] == 1) return SysMsg(playerid,"Você já está abastecendo o veiculo.");
  10388. new fuelAmount = -1;
  10389. if(sscanf(params, "i", fuelAmount))
  10390. {
  10391. SysMsg(playerid,"Use: /usargalao [quantidade (como porcentagem)]");
  10392. SysMsgF(playerid, "Combustível atual: %.0f porcento. Use %.0f para encher o tanque.", Fuel[VehID], floatsub(100.0, Fuel[VehID]));
  10393. return true;
  10394. }
  10395. if(fuelAmount < 1 || fuelAmount > 100) return SysMsg(playerid,"Quantidade deve ser entre 1 e 100.");
  10396. if(fuelAmount > Inventory[playerid][FuelCan][0]) return SysMsg(playerid,"Você não tem essa quantidade de combustível no galão.");
  10397. if(Fuel[VehID] + fuelAmount > 100) return SysMsg(playerid,"Você não pode adicionar tanto combustível a este veículo.");
  10398. if(VehID == VehicleData[VehID][IdVehicle])
  10399. {
  10400. if(VehicleData[VehID][VehicleOwnerSQLID] != SQLID[playerid])
  10401. {
  10402. if(GetVehicleFuelType(VehID) != Inventory[playerid][FuelCan][1]) return SysMsg(playerid,"Você não pode abastecer esse veiculo se você não for dono.");
  10403. }
  10404. }
  10405. new Float:CapPos[3];
  10406. GetVehiclePetrolCapPos(GetVehicleModel(VehID), CapPos[0], CapPos[1]);
  10407. if(CapPos[0] == 0 && CapPos[1] == 0)
  10408. {
  10409. Inventory[playerid][FuelCan][0] = Inventory[playerid][FuelCan][0] - fuelAmount;
  10410. Fuel[VehID] = Fuel[VehID] + fuelAmount;
  10411. if(Fuel[VehID] < 10) TextDrawShowForPlayer(playerid, LowFuelText);
  10412. else TextDrawHideForPlayer(playerid, LowFuelText);
  10413. MySQLUpdateInt(SQLID[playerid], "HasFuelCan", Inventory[playerid][FuelCan][0], "players");
  10414. if(Inventory[playerid][FuelCan][0] == 0) return SendClientMessage(playerid, COLOR_RED, "Seu galão de combustível agora está vazio, use /enchergalao para encher.");
  10415. UpdateFuelText(VehID, gstr);
  10416. PlayerTextDrawSetString(playerid, FuelText[playerid],gstr);
  10417. format(gstr, sizeof(gstr),"* %s usa um galão de combustível para abastecer o veiculo %s. *",NameRP(playerid),GetVehicleNameEx(GetVehicleModel(VehID)));
  10418. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  10419. SendClientMessage(playerid, COLOR_RED, "Este veículo foi reabastecido usando um galão. ((Não foi encontrada a tampa do tanque do veiculo))");
  10420. }
  10421. else
  10422. {
  10423. RemovePlayerFromVehicle(playerid);
  10424. UsingFuelCan[playerid][1] = VehID;
  10425. UsingFuelCan[playerid][0] = fuelAmount;
  10426. CapPos[1] = -CapPos[1];
  10427. RotatePointVehicleRotation(VehID, CapPos, RefuelStandPos[playerid][0], RefuelStandPos[playerid][1], RefuelStandPos[playerid][2], 1);
  10428. SetPlayerCheckpointEx(playerid, RefuelStandPos[playerid][0], RefuelStandPos[playerid][1], RefuelStandPos[playerid][2], 0.5);
  10429. SetPlayerAttachedObject(playerid, HOLD_OBJECT_MISC, 1650, 6, 0.15, 0.015, 0.05, 0.0, 270.0, 0.0);
  10430. SendClientMessage(playerid, COLOR_WHITE, "> Tampa do tanque {4BB74C}aberta{FFFFFF}, vá no ponto {FF0000}marcado{FFFFFF} para abastecer o veiculo.");
  10431. format(gstr, sizeof(gstr),"* %s preciona um botão no painel do veiculo %s e abre a tampa do tanque de combustível. *",NameRP(playerid),GetVehicleName(VehID));
  10432. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  10433. }
  10434. return true;
  10435. }
  10436. CMD:enchergalao(playerid, params[])
  10437. {
  10438. if(!Logged{playerid}) return true;
  10439. if(!IsPlayerNearGasStation(playerid)) return SysMsg(playerid,"Você não está próximo a um posto de Combustivel. (Red County, Bone County e Angel Pine)");
  10440. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SysMsg(playerid,"Você precisa estar a pé para fazer isso.");
  10441. if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso estando amarrado.");
  10442. if(IsPlayerRefilling[playerid] == 1) return SysMsg(playerid,"Você já está abastecendo.");
  10443. if(Inventory[playerid][FuelCan][0] == -1) return SysMsg(playerid,"Você não tem um galão de gasolina para encher.");
  10444. if(Inventory[playerid][FuelCan][0] == 100) return SysMsg(playerid,"Você já tem um galão cheio.");
  10445. new amount, fueltype[9];
  10446. if(sscanf(params, "s[9]i", fueltype, amount))
  10447. {
  10448. SysMsg(playerid,"Use: /enchergalao [gasolina/diesel] [quantidade (em porcentagem)]");
  10449. SysMsgF(playerid, "Combustível atual: %i porcento. Use %i para seu galão.", Inventory[playerid][FuelCan][0], 100-Inventory[playerid][FuelCan][0]);
  10450. return true;
  10451. }
  10452. new fuelstation = -1;
  10453. for(new i = 0; i < MAX_FUEL_STATIONS; i++)
  10454. {
  10455. if(IsPlayerInRangeOfPoint(playerid, 50.0, FuelStations[i][SignX], FuelStations[i][SignY], FuelStations[i][SignZ]))
  10456. {
  10457. fuelstation = i;
  10458. break;
  10459. }
  10460. }
  10461. if(amount < 5 || amount > 100) return SysMsg(playerid,"Você só pode abastecer de 5 a 100.");
  10462. if(fuelstation > 0 && FuelStations[fuelstation][PetrolAmount] <= 0) return SysMsg(playerid,"Este posto de gasolina não tem mais combustível.");
  10463. if(Inventory[playerid][FuelCan][0] + amount > 100) return SysMsg(playerid,"Este galão não pode conter tanta gasolina.");
  10464. new gasprice;
  10465. if(strcmp("gasolina", fueltype, true) == 0)
  10466. {
  10467. if(FuelStations[fuelstation][PetrolAmount] < amount) return SysMsg(playerid,"Este posto não tem toda essa quantidade de Gasolina.");
  10468. if(Inventory[playerid][FuelCan][0] > 0 && Inventory[playerid][FuelCan][1] != FUEL_GASOLINA) return SysMsg(playerid,"Você não pode misturar Gasolina e Diesel.");
  10469. gasprice = amount;
  10470. if(IsDonator[playerid] < 4 && Cash[playerid] < gasprice) return SysMsg(playerid,"Você não tem dinheiro suficiente para comprar essa quantidade de Gasolina.");
  10471. Inventory[playerid][FuelCan][1] = FUEL_GASOLINA;
  10472. MySQLUpdateInt(SQLID[playerid], "HasFuelCanType", Inventory[playerid][FuelCan][1], "players");
  10473. SendClientMessageF(playerid, COLOR_WHITE, "Você colocou no galão de combustível {FFAB1A}%i{FFFFFF} porcento de {FFAB1A}Gasolina{FFFFFF} por {339900}$%i{FFFFFF}.", amount, gasprice);
  10474. FuelStations[fuelstation][PetrolAmount] -= amount;
  10475. UpdateFuelStationSign(fuelstation);
  10476. }
  10477. else if(strcmp("diesel", fueltype, true) == 0)
  10478. {
  10479. if(FuelStations[fuelstation][DieselAmount] < amount) return SysMsg(playerid,"Este posto não tem essa quantidade de Diesel.");
  10480. if(Inventory[playerid][FuelCan][0] > 0 && Inventory[playerid][FuelCan][1] != FUEL_DIESEL) return SysMsg(playerid,"Você não pode misturar gasolina e diesel no mesmo galão.");
  10481. gasprice = amount * 2;
  10482. if(IsDonator[playerid] < 4 && Cash[playerid] < gasprice) return SysMsg(playerid,"Você não tem dinheiro para comprar essa quantidade de diesel.");
  10483. Inventory[playerid][FuelCan][1] = FUEL_DIESEL;
  10484. MySQLUpdateInt(SQLID[playerid], "HasFuelCanType", Inventory[playerid][FuelCan][1], "players");
  10485. SendClientMessageF(playerid, COLOR_WHITE, "Você colocou no galão de combustível {FFAB1A}%i{FFFFFF} porcento de {FFAB1A}Diesel{FFFFFF} por {339900}$%i{FFFFFF}.", amount, gasprice);
  10486. FuelStations[fuelstation][DieselAmount] -= amount;
  10487. UpdateFuelStationSign(fuelstation);
  10488. }
  10489. else return SysMsg(playerid,"Você deve especificar gasolina ou diesel apenas.");
  10490. Inventory[playerid][FuelCan][0] += amount;
  10491. MySQLUpdateInt(SQLID[playerid], "HasFuelCan", Inventory[playerid][FuelCan][0], "players");
  10492. if(IsDonator[playerid] < 4) GivePlayerCash(playerid, -gasprice);
  10493. format(gstr, sizeof(gstr),"* %s enche um galão de combustível. *",NameRP(playerid));
  10494. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  10495. return true;
  10496. }
  10497. CMD:esvaziargalao(playerid, params[])
  10498. {
  10499. if(!Logged{playerid}) return true;
  10500. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SysMsg(playerid,"Você deve estar a pé para esvaziar seu galão de combustível.");
  10501. if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso se estiver amarrado.");
  10502. if(IsPlayerRefilling[playerid] == 1) return SysMsg(playerid,"Você está atualmente abastecendo.");
  10503. if(Inventory[playerid][FuelCan][0] == -1) return SysMsg(playerid,"Você não tem combustível para preencher.");
  10504. if(Inventory[playerid][FuelCan][0] == 0) return SysMsg(playerid,"Seu galão de combustível já está vazio.");
  10505. Inventory[playerid][FuelCan][0] = 0;
  10506. MySQLUpdateInt(SQLID[playerid], "HasFuelCan", Inventory[playerid][FuelCan][0], "players");
  10507. format(gstr, sizeof(gstr),"* %s esvazia o galão de combustível no chão *",NameRP(playerid));
  10508. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  10509. return true;
  10510. }
  10511. CMD:minfo(playerid, params[])
  10512. {
  10513. if(!Logged{playerid}) return true;
  10514. new VehID = GetPlayerVehicleID(playerid);
  10515. if(VehID == 0 || !VehicleHasEngine(VehID)) return SysMsg(playerid,"Você precisa estar em um veiculo que tenha motor..");
  10516. new fueltype[20];
  10517. switch(GetVehicleFuelType(VehID))
  10518. {
  10519. case FUEL_NONE: fueltype = "Nenhum";
  10520. case FUEL_GASOLINA: fueltype = "Gasolina";
  10521. case FUEL_DIESEL: fueltype = "Diesel";
  10522. }
  10523. SendClientMessageF(playerid,COLOR_WHITE, "[%s] Tipo de combustível: {38B0DE}%s", GetVehicleName(VehID), fueltype);
  10524. return true;
  10525. }
  10526. CMD:engineinfo(playerid, params[]) return cmd_minfo(playerid, params);
  10527. CMD:motoron(playerid)
  10528. {
  10529. if(!Logged{playerid}) return true;
  10530. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você deve estar em um veículo com motor.");
  10531. if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você precisa estar no acento de condução.");
  10532. new VehID = GetPlayerVehicleID(playerid);
  10533. if(!VehicleHasEngine(VehID))
  10534. {
  10535. EngineStatus[VehID] = 1;
  10536. ToggleVehicleEngine(VehID, 1);
  10537. return SysMsg(playerid,"Esse veiculo não tem motor.");
  10538. }
  10539. if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso estando amarrado.");
  10540. if(EngineStatus[VehID] == 1) return SysMsg(playerid,"Este veículo já está ligado.");
  10541. if(ViewingBuyableCar[playerid] == 1 || EngineStartDelay[playerid] > 0) return true;
  10542. if(VehicleBroke[VehID] > 0) return SysMsg(playerid,"O motor está quebrado.");
  10543. if(Fuel[VehID] <= 0) return SysMsg(playerid,"Você não pode iniciar um veiculo sem gasolina.");
  10544. if(IsPlayerRefilling[playerid] == 1) return SysMsg(playerid,"Aguarde até terminar o reabastecimento do veículo.");
  10545. if(RentalData[VehID][CarID] >= 1 && RentalCar[playerid] != RentalData[VehID][CarID]) return SysMsg(playerid, "Você não tem as chaves deste carro alugado.");
  10546. if(VehicleData[VehID][VehicleOwnerSQLID] == SQLID[playerid])
  10547. {
  10548. if(VehicleData[VehID][Mileage] - VehicleData[VehID][LastOilMileage] >= 500)
  10549. {
  10550. OilTextToggle[playerid] = 1;
  10551. if(VehicleData[VehID][Mileage] - VehicleData[VehID][LastOilMileage] >= 520)
  10552. {
  10553. OilTextToggle[playerid] = 3;
  10554. SendClientMessage(playerid, COLOR_RED, "> Existe um problema com este motor de veículos e não pode ligar. (Óleo de motor)");
  10555. format(sgstr, sizeof(sgstr),"* %s tenta ligado o %s mas o motor apresenta falhas. *", NameRP(playerid), GetVehicleNameEx(GetVehicleModel(VehID)));
  10556. ProxDetector(20.0,playerid,sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  10557. return true;
  10558. }
  10559. }
  10560. }
  10561. if(FuelTypeAfterRefuel[VehID] != GetVehicleFuelType(VehID) && FuelTypeAfterRefuel[VehID] > 0)
  10562. {
  10563. SetVehicleHealthEx(VehID, 275.0);
  10564. ToggleVehicleEngine(VehID, 0);
  10565. VehicleBroke[VehID] = 2;
  10566. if(IsOwnedCar(VehID)) VehicleData[VehID][Hotwired] = 0;
  10567. SendClientMessage(playerid, COLOR_RED, "> Tipo de combustível errado no veículo!");
  10568. format(sgstr, sizeof(sgstr),"* Uma pequena manivela é ouvida quando %s tenta ligar o motor do veiculo *", NameRP(playerid), GetVehicleNameEx(GetVehicleModel(VehID)));
  10569. ProxDetector(20.0,playerid,sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  10570. format(sgstr, sizeof(sgstr),"* Um barulho alto é ouvido vindo do %s deixando o veiculo e ponto morto. *",GetVehicleNameEx(GetVehicleModel(VehID)));
  10571. ProxDetector(20.0,playerid,sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  10572. SendClientMessage(playerid, COLOR_RED, "Este veiculo está quebrado e precisa ser reparado.");
  10573. return true;
  10574. }
  10575. format(sgstr, sizeof(sgstr),"* torce a chave na ignição do veículo %s. *",GetVehicleNameEx(GetVehicleModel(VehID)));
  10576. SetPlayerChatBubble(playerid, sgstr, COLOR_EMOTE, 15.0, 2000);
  10577. TextDrawHideForPlayer(playerid, VehicleEngineText);
  10578. ShowInfoText(playerid, "~g~Ligando motor.", 1200);
  10579. if(Fuel[VehID] < 10) TextDrawShowForPlayer(playerid, LowFuelText);
  10580. else TextDrawHideForPlayer(playerid, LowFuelText);
  10581. new SlowStart[21] =
  10582. {
  10583. 417, 425, 447, 460, 469, 476, 487, 488, 497, 511, 512, 513, 519, 520, 548, 553, 563, 577, 592, 593
  10584. };
  10585. new found = 0;
  10586. for(new dv = 0; dv < sizeof(SlowStart); dv++)
  10587. {
  10588. if(SlowStart[dv] == GetVehicleModel(VehID))
  10589. {
  10590. found = 1;
  10591. break;
  10592. }
  10593. }
  10594. if(found == 1) EngineStartDelay[playerid] = 4;
  10595. else EngineStartDelay[playerid] = 2;
  10596. return true;
  10597. }
  10598. CMD:mon(playerid) return cmd_motoron(playerid);
  10599. CMD:ligacaodireta(playerid)//ligacaodireta
  10600. {
  10601. if(!Logged{playerid}) return true;
  10602. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você precisa estar em um veiculo.");
  10603. if(Inventory[playerid][Toolbox] == 0) return SysMsg(playerid,"Você precisará de ferramentes para fazer ligação direta neste veiculo.");
  10604. new VehID = GetPlayerVehicleID(playerid);
  10605. if(!IsOwnedCar(VehID)) return SysMsg(playerid, "Você só pode fazer ligação direta em veiculo cujo dono seja pessoas, não veiculos publicos.");
  10606. if(EngineStatus[VehID] == 1) return SysMsg(playerid,"O motor do veiculo já esta ligado.");
  10607. if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você precisa estar no acento de condução do veiculo.");
  10608. if(IsPushBike(VehID)) return SysMsg(playerid, "Você não pode fazer ligação direta em uma Bike.");
  10609. if(VehicleBroke[VehID] == 1 || VehicleBroke[VehID] == 2) return SysMsg(playerid, "Este veiculo está quebrado e não se pode-se fazer ligação direta.");
  10610. if(VehicleData[VehID][Hotwired] == 1) return SysMsg(playerid, "Este veículo já foi feito ligação direta.");
  10611. if(!VehicleHasEngine(VehID)) return SysMsg(playerid,"Esse veiculo não tem motor.");
  10612. if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso estando amarrado.");
  10613. if(VehicleBroke[VehID] > 0) return SysMsg(playerid,"O motor deste veiculo está quebrado.");
  10614. if(Fuel[VehID] <= 0) return SysMsg(playerid,"Você não pode fazer ligação direta e tentar ligar um veiculo sem combustível.");
  10615. if(VehicleData[VehID][Mileage] - VehicleData[VehID][LastOilMileage] >= 520) return SysMsg(playerid, "Este veículo precisa de seu óleo mudado e não pode ser feito ligação direta.");
  10616. if(IsPlayerRefilling[playerid] == 1) return SysMsg(playerid,"Aguarde até terminar o reabastecimento do veículo.");
  10617. if(Hotwiring[playerid][0] > 0) return SysMsg(playerid,"Você já feliz ligação direta neste veiculo.");
  10618. new engine, lights, alarm, doors, bonnet, boot, objective, Float:vhp;
  10619. GetVehicleParamsEx(VehID, engine, lights, alarm, doors, bonnet, boot, objective);
  10620. GetVehicleHealth(VehID, vhp);
  10621. if(engine == 1) return SysMsg(playerid,"O motor deste veiculo jáe está ligado.");
  10622. if(vhp <= 400) return SysMsg(playerid, "Não é possível fazer ligação direta em veiculos quebrado.");
  10623. HotwireCar(playerid, VehID);
  10624. return true;
  10625. }
  10626. CMD:moff(playerid)
  10627. {
  10628. if(!Logged{playerid}) return true;
  10629. new VehID = GetPlayerVehicleID(playerid);
  10630. if(VehID == 0) return SysMsg(playerid,"Você deve estar em um veículo com motor.");
  10631. if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você precisa estar no acento de condução.");
  10632. if(!VehicleHasEngine(VehID)) return SysMsg(playerid,"Esse veiculo não tem motor.");
  10633. if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso estando amarrado.");
  10634. if(EngineStatus[VehID] == 0) return SysMsg(playerid,"Esse veiculo já esta desligado.");
  10635. if(VehicleData[VehID][VehicleOwnerSQLID] != SQLID[playerid] && VehicleData[VehID][Hotwired] == 1 && VehicleBorrowKey[playerid] != VehicleData[VehID][VehSQLID]) return SysMsg(playerid, "Você não pode desligar o motor do veiculo depois de ter feiro ligação direta.");
  10636. EngineStatus[VehID] = 0;
  10637. ToggleVehicleEngine(VehID, 0);
  10638. if(VehicleData[VehID][Hotwired] == 1)
  10639. {
  10640. VehicleData[VehID][Hotwired] = 0;
  10641. mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET HotwireExpiration = 0 WHERE id = %i", VehicleData[VehID][VehSQLID]);
  10642. mysql_pquery(conn, mquery);
  10643. }
  10644. SendClientMessage(playerid, COLOR_WHITE, "> Motor do veiculo foi {8B0000}Desligado");
  10645. format(gstr, sizeof(gstr),"* %s desliga o motor do veiculo. *",NameRP(playerid));
  10646. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  10647. ShowInfoText(playerid,"~r~Motor Desligado",2000);
  10648. PlayerTextDrawHide(playerid, FuelText[playerid]);
  10649. PlayerTextDrawHide(playerid, SpeedText[playerid]);
  10650. TextDrawHideForPlayer(playerid, LowFuelText);
  10651. foreach(new p: Player)
  10652. {
  10653. if(IsSpectating[p] == playerid)
  10654. {
  10655. PlayerTextDrawHide(p, SpeedText[playerid]);
  10656. }
  10657. }
  10658. return true;
  10659. }
  10660. CMD:motoroff(playerid) return cmd_moff(playerid);
  10661. CMD:motor(playerid)
  10662. {
  10663. if(!Logged{playerid}) return true;
  10664. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você deve estar em um veículo com motor.");
  10665. if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você precisa estar no acento de condução.");
  10666. new VehID = GetPlayerVehicleID(playerid);
  10667. if(!VehicleHasEngine(VehID)) return SysMsg(playerid,"Esse veiculo não tem motor.");
  10668. if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso estando amarrado.");
  10669. if(EngineStatus[VehID] == 0) cmd_motoron(playerid);
  10670. else cmd_motoroff(playerid);
  10671. return true;
  10672. }
  10673. CMD:luzes(playerid, params[])//luzes
  10674. {
  10675. if(!Logged{playerid}) return true;
  10676. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você precisa estar em um veiculo.");
  10677. if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você precisa estar no acento de condução.");
  10678. new VehID = GetPlayerVehicleID(playerid);
  10679. if(IsBoat(VehID) || IsPlane(VehID) || IsHelicopter(VehID)) return SysMsg(playerid,"Esse veiculo não tem luzes.");
  10680. if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso estando amarrado.");
  10681. if(ELMs{VehID}) return SysMsg(playerid,"Você não pode usar esse comando quando as luzes de emegência estão ligadas.");
  10682. if(VehicleLights[VehID] == 0)
  10683. {
  10684. ToggleVehicleLights(VehID, 1);
  10685. VehicleLights[VehID] = 1;
  10686. SendClientMessage(playerid, COLOR_WHITE, "> Luzes {4BB74C}On");
  10687. format(gstr, sizeof(gstr),"* %s acende as luzes do veiculo. *",NameRP(playerid));
  10688. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  10689. ShowInfoText(playerid,"~g~Lights On",1000);
  10690. VehicleLights[VehID] = 1;
  10691. }
  10692. else if(VehicleLights[VehID] == 1)
  10693. {
  10694. ToggleVehicleLights(VehID, 0);
  10695. VehicleLights[VehID] = 0;
  10696. SendClientMessage(playerid, COLOR_WHITE, "> Luzes {8B0000}Off");
  10697. format(gstr, sizeof(gstr),"* %s apaga as luzes do veiculo. *",NameRP(playerid));
  10698. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  10699. ShowInfoText(playerid,"~r~Lights Off",1000);
  10700. VehicleLights[VehID] = 0;
  10701. }
  10702. return true;
  10703. }
  10704. CMD:vluzes(playerid, params[])//vluzes
  10705. {
  10706. if(!Logged{playerid}) return true;
  10707. SendClientMessage(playerid, COLOR_WHITE, "Precione o botão '~k~~TOGGLE_SUBMISSIONS~' do seu teclado, aguarde 1s para ligar/desligar.");
  10708. return true;
  10709. }
  10710. CMD:tlon(playerid, params[])
  10711. {
  10712. if(!Logged{playerid}) return true;
  10713. new VehID = GetPlayerVehicleID(playerid);
  10714. if(VehID == 0) return SysMsg(playerid,"Você precisa estar em um veiculo.");
  10715. new VehTrailerID = GetVehicleTrailer(VehID);
  10716. if(VehTrailerID == 0) return SysMsg(playerid,"Você deve ter um trailer.");
  10717. if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você precisa estar no acento de condução.");
  10718. if(VehicleLights[VehTrailerID] == 1) return SysMsg(playerid,"As luzes já estão ligadas.");
  10719. if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso estando amarrado.");
  10720. ToggleVehicleLights(VehTrailerID, 1);
  10721. VehicleLights[VehTrailerID] = 1;
  10722. SendClientMessage(playerid, COLOR_WHITE, "> Luzes do trailer {4BB74C}On");
  10723. ShowInfoText(playerid,"~g~Luzes do trailer On",1000);
  10724. return true;
  10725. }
  10726. CMD:tloff(playerid, params[])// desligar luzes do trailer
  10727. {
  10728. if(!Logged{playerid}) return true;
  10729. new VehID = GetPlayerVehicleID(playerid);
  10730. if(VehID == 0) return SysMsg(playerid,"Você deve estar em um veículo.");
  10731. new VehTrailerID = GetVehicleTrailer(VehID);
  10732. if(VehTrailerID == 0) return SysMsg(playerid,"Você deve ter um trailer.");
  10733. if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você precisa estar no acento de condução.");
  10734. if(VehicleLights[VehTrailerID] == 0) return SysMsg(playerid,"As luzes já estão apagadas.");
  10735. if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso estando amarrado.");
  10736. ToggleVehicleLights(VehTrailerID, 0);
  10737. VehicleLights[VehTrailerID] = 0;
  10738. SendClientMessage(playerid, COLOR_WHITE, "> Luzes do trailer {8B0000}Off");
  10739. ShowInfoText(playerid,"~r~Luzes do trailer Off",1000);
  10740. return true;
  10741. }
  10742. CMD:bonnet(playerid, params[])//abrir e fechar o capo
  10743. {
  10744. if(!Logged{playerid}) return true;
  10745. new VehID = GetPlayerVehicleID(playerid);
  10746. if(VehID == 0) return SysMsg(playerid,"Você deve estar em um veículo.");
  10747. if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você deve estar no banco do motorista.");
  10748. if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso estando amarrado.");
  10749. if(VehicleBoots[VehID][0] == 1)
  10750. {
  10751. ToggleVehicleBonnet(VehID, 0);
  10752. VehicleBoots[VehID][0] = 0;
  10753. SendClientMessage(playerid, COLOR_WHITE, "> Capo {8B0000}Fechado");
  10754. }
  10755. else
  10756. {
  10757. ToggleVehicleBonnet(VehID, 1);
  10758. VehicleBoots[VehID][0] = 1;
  10759. SendClientMessage(playerid, COLOR_WHITE, "> Capo {8B0000}Fechado");
  10760. format(gstr, sizeof(gstr),"* %s puxa uma alavanca dentro do veiculo e abre o capô. *",NameRP(playerid));
  10761. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  10762. }
  10763. return true;
  10764. }
  10765. CMD:capo(playerid, params[])//capo
  10766. {
  10767. if(!Logged{playerid}) return true;
  10768. new VehID = GetPlayerVehicleID(playerid);
  10769. if(VehID == 0) return SysMsg(playerid,"Você deve estar em um veículo.");
  10770. if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você deve estar no banco do motorista.");
  10771. if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso estando amarrado.");
  10772. if(VehicleBoots[VehID][0] == 1)
  10773. {
  10774. ToggleVehicleBonnet(VehID, 0);
  10775. VehicleBoots[VehID][0] = 0;
  10776. SendClientMessage(playerid, COLOR_WHITE, "> Capo {8B0000}Fechado");
  10777. }
  10778. else
  10779. {
  10780. ToggleVehicleBonnet(VehID, 1);
  10781. VehicleBoots[VehID][0] = 1;
  10782. SendClientMessage(playerid, COLOR_WHITE, "> Capo {4BB74C}aberto");
  10783. format(gstr, sizeof(gstr),"* %s puxa uma alavanca dentro do veiculo e abre o capô. *",NameRP(playerid));
  10784. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  10785. }
  10786. return true;
  10787. }
  10788. CMD:testalarm(playerid, params[])
  10789. {
  10790. if(!Logged{playerid}) return true;
  10791. new VehID = GetPlayerVehicleID(playerid);
  10792. if(VehID == 0) return SysMsg(playerid,"Você precisa estar em um veiculo.");
  10793. if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você precisa esta no acento de condução.");
  10794. new engine, lights, alarm, doors, bonnet, boot, objective;
  10795. GetVehicleParamsEx(VehID, engine, lights, alarm, doors, bonnet, boot, objective);
  10796. if(alarm == 1) return SysMsg(playerid,"O alarme do veiculo já esta ativado.");
  10797. SetVehicleParamsEx(VehID, engine, 1, 1, doors, bonnet, boot, objective);
  10798. SetTimerEx("ToggleVehicleAlarm", 10000, 0, "dd", VehID, 0);
  10799. SendClientMessage(playerid, COLOR_WHITE, "> Alarme {4BB74C}On");
  10800. return true;
  10801. }
  10802. CMD:vervisitante(playerid, params[])
  10803. {
  10804. if(!Logged{playerid}) return true;
  10805. if(GetPlayerHouseCount(playerid) == 0) return SysMsg(playerid, "Você precisa ser dono da casa para ver os visitantes.");
  10806. if(isnull(params) || !IsNumeric(params))
  10807. {
  10808. for(new x = 0; x < MAX_HOUSE_PER_PLAYER; x++)
  10809. {
  10810. if(HasHouseKey[playerid][x] != -1)
  10811. {
  10812. SendClientMessageF(playerid, COLOR_WHITE, "Casa ID: %i - %s", x, HouseData[HasHouseKey[playerid][x]][HouseDescription]);
  10813. }
  10814. }
  10815. return SysMsg(playerid, "Use: /vervisitante [Casa ID]");
  10816. }
  10817. new id = strval(params);
  10818. if(id != 0 && id != 1) return SysMsg(playerid, "ID da casa inválido.");
  10819. if(HasHouseKey[playerid][id] == -1) return SysMsg(playerid, "Você não tem casa neste slot.");
  10820. mysql_format(conn, mquery, sizeof(mquery), "SELECT Name,LastLogin FROM players WHERE GuestHouseID = %i", HouseData[HasHouseKey[playerid][id]][HouseSQLID]);
  10821. mysql_pquery(conn, mquery, "ShowHouseGuests", "d", playerid);
  10822. return true;
  10823. }
  10824. CMD:minhascasas(playerid, params[])
  10825. {
  10826. if(!Logged{playerid}) return true;
  10827. gstr[0] = EOS;
  10828. if(HasHouseKey[playerid][0] == -1 && HasHouseKey[playerid][1] == -1 && IsHouseGuest(playerid) == 0 && RentRoom[playerid] == 0) return SysMsg(playerid, "Você não está hospedado em lugar nenhum.");
  10829. if(HasHouseKey[playerid][0] != -1)
  10830. {
  10831. new h = HasHouseKey[playerid][0];
  10832. strcat(gstr, "CASA: 1\nEndereço: ");
  10833. strcat(gstr, HouseData[h][HouseDescription]);
  10834. strcat(gstr, "\nVisitante morando: Use /vervisitante 0.");
  10835. strcat(gstr, "\n\n");
  10836. }
  10837. if(HasHouseKey[playerid][1] != -1)
  10838. {
  10839. new h = HasHouseKey[playerid][1];
  10840. strcat(gstr, "CASA: 2\nEndereço: ");
  10841. strcat(gstr, HouseData[h][HouseDescription]);
  10842. strcat(gstr, "\nVisitante morando: Use /vervisitante 1.");
  10843. strcat(gstr, "\n\n");
  10844. }
  10845. new ghouse = IsHouseGuest(playerid);
  10846. if(ghouse > 0)
  10847. {
  10848. strcat(gstr, "CONVIDADO DE CASA\nEndereço: ");
  10849. strcat(gstr, HouseData[ghouse][HouseDescription]);
  10850. strcat(gstr, "\nDono: ");
  10851. strcat(gstr, GetSQLName(HouseData[ghouse][HouseOwnerSQLID]));
  10852. strcat(gstr, "\n\n");
  10853. }
  10854. if(RentRoom[playerid] > 0)
  10855. {
  10856. new place[50], m = RentRoom[playerid], value[5];
  10857. switch(MotelData[m][MotelID])
  10858. {
  10859. case 1,2,3,4: format(place, 50, "Fort Carson");
  10860. case 5: format(place, 50, "Valle Ocultado");
  10861. case 6: format(place, 50, "Angel Pine");
  10862. case 7: format(place, 50, "Xoomer Service Station");
  10863. }
  10864. strcat(gstr, "QUALTO DE MOTEL\nMotel: ");
  10865. strcat(gstr, place);
  10866. strcat(gstr, "\nDias restantes: ");
  10867. valstr(value, MotelData[RentRoom[playerid]][RoomDaysLeft]);
  10868. strcat(gstr, value);
  10869. strcat(gstr, "\n\n");
  10870. }
  10871. Dialog_Show(playerid, DIALOG_NONE, DIALOG_STYLE_MSGBOX, "Minha casa - Informações", gstr, "Pronto", "");
  10872. return true;
  10873. }
  10874. CMD:destruirveiculo(playerid, params[])//destruirveiculo
  10875. {
  10876. if(!Logged{playerid}) return SysMsg(playerid,"Você precisa estar logado no servidor para fazer isso.");
  10877. if(GetPlayerVehicleID(playerid) == 0) return SysMsg(playerid,"Você precisa estar em um carro para fazer isso.");
  10878. if(IsRentalCar(GetPlayerVehicleID(playerid))) return SysMsg(playerid, "Você não pode detruir um veiculo alugado.");
  10879. if(IsPlane(GetPlayerVehicleID(playerid))) return SysMsg(playerid,"Você não pode destruir aviões planes aqui.");
  10880. if(IsHelicopter(GetPlayerVehicleID(playerid))) return SysMsg(playerid,"Você não pode destruir Helicopteros aqui.");
  10881. if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você precisa estar no acento de motorista/piloto do veiculo.");
  10882. if(IsFactionVehicle(GetPlayerVehicleID(playerid)) > 0) return SysMsg(playerid,"Você não pode destruir um veiculo de facção.");
  10883. if(BeingScrapped{GetPlayerVehicleID(playerid)}) return SysMsg(playerid, "Esse veiculo já está sendo destruido.");
  10884. if(VehicleData[GetPlayerVehicleID(playerid)][DonatorCar]) return SysMsg(playerid,"Você não pode destruir um veiculo de Donate.");
  10885. if(SQLID[playerid] != VehicleData[GetPlayerVehicleID(playerid)][VehicleOwnerSQLID]) return SysMsg(playerid, "Você precisa ser o dono do veiculo para destrui-lo.");
  10886. if(IsSuitableTaxiCar(GetPlayerVehicleID(playerid)) && JobDuty[playerid] == 1) return SysMsg(playerid, "Você não pode destruir seu táxi se estiver On Duty em seu trabalho.");
  10887. if(IsPlayerInRangeOfPoint(playerid, 7.0, 224.557, 98.4865, 3.8906) && !IsBoat(GetPlayerVehicleID(playerid)) || IsPlayerInDynamicArea(playerid, GarageAreas[5]) && IsBoat(GetPlayerVehicleID(playerid)))
  10888. {
  10889. BeingScrapped{GetPlayerVehicleID(playerid)} = true;
  10890. SetPVarInt(playerid, "ScrapCar", GetPlayerVehicleID(playerid));
  10891. RemovePlayerFromVehicle(playerid);
  10892. if(!IsPlayerInDynamicArea(playerid, GarageAreas[5]))
  10893. {
  10894. SetPlayerCameraPos(playerid, 217.2184, 89.5583, 16.9906);
  10895. SetPlayerCameraLookAt(playerid, 224.0594, 96.6424, 15.2541);
  10896. SetPlayerPos(playerid, 218.149, 93.0901, 3.89062);
  10897. }
  10898. else
  10899. {
  10900. SetPlayerCameraPos(playerid, -2184.2893,2434.2036,13.8967);
  10901. SetPlayerCameraLookAt(playerid, -2207.0972, 2424.8665, 0.1369);
  10902. SetPlayerPos(playerid, -2192.6199, 2409.2146, 4.9583);
  10903. }
  10904. TogglePlayerControllable(playerid, 0);
  10905. new Float:cost = (0.25 * VehicleData[GetPlayerVehicleID(playerid)][VehiclePrice]), price = floatround(cost);
  10906. format(gstr, sizeof(gstr), "{FFFFFF}Você tem certeza que deseja destruir seu veiculo %s? Você irá receber apenas 25 porcento do valor original ($%s) e {E20000}NUNCA{FFFFFF} poderar usa-lo de novo.", GetVehicleName(GetPlayerVehicleID(playerid)), format_cash(price));
  10907. Dialog_Show(playerid, VehicleScrap, DIALOG_STYLE_MSGBOX, "Deseja desmachar seu veiculo?", gstr, "Sim", "Não");
  10908. }
  10909. else SysMsg(playerid, "Você não está perto do desmanche de carro ou o Bayside Docks.");
  10910. return true;
  10911. }
  10912. CMD:pegarveiculo(playerid, params[])
  10913. {
  10914. if(!Logged{playerid}) return true;
  10915. new bodyshop = -1;
  10916. if(IsPlayerInDynamicArea(playerid, GarageAreas[0])) bodyshop = 1; //palomino creek
  10917. if(IsPlayerInDynamicArea(playerid, GarageAreas[1])) bodyshop = 2; //dillimore
  10918. if(IsPlayerInDynamicArea(playerid, GarageAreas[2])) bodyshop = 3; //fort carson
  10919. if(IsPlayerInDynamicArea(playerid, GarageAreas[3])) bodyshop = 4; //el q
  10920. if(IsPlayerInDynamicArea(playerid, GarageAreas[4])) bodyshop = 5; //airstrip
  10921. if(IsPlayerInDynamicArea(playerid, GarageAreas[5])) bodyshop = 6; //bayside
  10922. if(IsPlayerInDynamicArea(playerid, GarageAreas[6])) bodyshop = 7; //angel pine
  10923. if(bodyshop == -1) return SysMsg(playerid,"Você não está perto de nenhum centro de reparação de veiculos.");
  10924. if(IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Por favor, saia deste veículo primeiro.");
  10925. gstr[0] = EOS;
  10926. for(new v = 0, x = MAX_VEHICLES; v <= x; v++)
  10927. {
  10928. if((RepairData[v][rOwnerSQLID] == SQLID[playerid] && SQLID[playerid] != 0) || (RepairData[v][rFaction] == Faction[playerid] && Faction[playerid] != 0))
  10929. {
  10930. if(RepairData[v][rGarage] == bodyshop && RepairData[v][rTime] < gettime())
  10931. {
  10932. if(RepairData[v][rModel] > 399)
  10933. {
  10934. strcat(gstr, "{FFFFFF}");
  10935. strcat(gstr, GetVehicleNameEx(RepairData[v][rModel]));
  10936. strcat(gstr, " (Reg: {FFFFC0}");
  10937. strcat(gstr, RepairData[v][rRegPlate]);
  10938. strcat(gstr, "{FFFFFF})\n");
  10939. }
  10940. }
  10941. }
  10942. }
  10943. if(strlen(gstr) > 10) Dialog_Show(playerid, VehicleCollection, DIALOG_STYLE_LIST, "Recolher veiculo:", gstr, "Recolher", "Cancelar");
  10944. else SysMsg(playerid, "O serviço ainda não está pronto ou você não tem veiculos aqui.");
  10945. return true;
  10946. }
  10947. CMD:reparar(playerid, params[])
  10948. {
  10949. if(!Logged{playerid}) return true;
  10950. new bodyshop = -1;
  10951. if(IsPlayerInDynamicArea(playerid, GarageAreas[0])) bodyshop = 1; //palomino creek
  10952. if(IsPlayerInDynamicArea(playerid, GarageAreas[1])) bodyshop = 2; //dillimore
  10953. if(IsPlayerInDynamicArea(playerid, GarageAreas[2])) bodyshop = 3; //fort carson
  10954. if(IsPlayerInDynamicArea(playerid, GarageAreas[3])) bodyshop = 4; //el q
  10955. if(IsPlayerInDynamicArea(playerid, GarageAreas[4])) bodyshop = 5; //airstrip
  10956. if(IsPlayerInDynamicArea(playerid, GarageAreas[5])) bodyshop = 6; //bayside
  10957. if(IsPlayerInDynamicArea(playerid, GarageAreas[6])) bodyshop = 7; //angel pine
  10958. if(bodyshop == -1) return SysMsg(playerid,"Você não esta em nenhuma garagem de reparação.");
  10959. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você precisa estar dentro do veiculo.");
  10960. new VehicleId = GetPlayerVehicleID(playerid);
  10961. if(VehicleData[VehicleId][Hotwired] == 1) return SysMsg(playerid, "Você não pode reparar um veiculo roubado.");
  10962. if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você tem que esta sob condução do veiculo.");
  10963. if(bodyshop == 5 && (!IsHelicopter(VehicleId) && !IsPlane(VehicleId))) return SysMsg(playerid,"Você só pode reparar helicópteros e aviões aqui.");
  10964. if(bodyshop == 6 && !IsBoat(VehicleId)) return SysMsg(playerid, "Você só pode reparar barcos aqui.");
  10965. if(IsRentalCar(VehicleId)) return SysMsg(playerid, "Os veículos de aluguel não podem ser reparados.");
  10966. if(IsServerCar(VehicleId)) return SysMsg(playerid, "Os veículos do servidor não podem ser reparados.");
  10967. if(aspawned{VehicleId}) return SysMsg(playerid, "Os veiculos spawnado por Admin não podem ser reparados.");
  10968. if(IsOwnedCar(VehicleId)) if(VehicleData[VehicleId][VehicleOwnerSQLID] != SQLID[playerid]) return SysMsg(playerid, "Você não pode reparar este veículo.");
  10969. new payment[10], option, confirm[10];
  10970. if(sscanf(params, "is[10]S()[10]", option, payment, confirm)) return SysMsg(playerid,"Use: /reparar [Opção: 1-Motor 2-Parte Trazeira(Incl. Pneus) 3-Apenas pneus 4-Tudo 5-Faróis dianteiros] [Método de pagamento: Banco ou Dinheiro]");
  10971. if(!strmatch(payment, "banco") && !strmatch(payment, "dinheiro")) return SysMsg(playerid, "O método de pagamento deve ser bancário ou em dinheiro.");
  10972. if(option < 1 || option > 5) return cmd_reparar(playerid, "");
  10973. new Float:health;
  10974. GetVehicleHealth(VehicleId, health);
  10975. if(health < 250) return SysMsg(playerid,"O motor do seu veículo está em chamas! Não podemos tocar isso!");
  10976. if((option == 1 || option == 4) && health >= 950) return SysMsg(playerid,"O motor do seu veículo parece estar em boas condições de funcionamento.");
  10977. new panels, doors, lights, tires, temp = 3, th = gServerHour, tm = gServerMinute;
  10978. new price = CalculateRepairPrice(VehicleId, option);
  10979. if(price == 0)
  10980. {
  10981. if(option == 1) return SysMsg(playerid, "O motor do seu veículo parece estar funcionando bem!");
  10982. if(option == 2 || option == 4) return SysMsg(playerid, "A lataria do seu veiculo parece estar perfeita.");
  10983. if(option == 3) return SysMsg(playerid,"Os pneus do seu veículo não têm problemas!");
  10984. }
  10985. price = price * GetVehicleRepairMultiplier(GetVehicleModel(VehicleId));
  10986. if(IsFactionVehicle(VehicleId) == FACTION_COP || IsFactionVehicle(VehicleId) == FACTION_SACFD || IsFactionVehicle(VehicleId) == FACTION_RESEARCH) price = 0;
  10987. if(strcmp("confirmar", confirm, true) == 0 && strlen(confirm) > 1)
  10988. {
  10989. if(strmatch(payment, "bank"))
  10990. {
  10991. if(BankBalance[playerid] < price) return SysMsg(playerid, "Você não tem dinheiro suficiente em sua conta bancária pagar o reparo.");
  10992. BankBalance[playerid] -= price;
  10993. MySQLUpdateInt(SQLID[playerid], "Bank", BankBalance[playerid], "players");
  10994. }
  10995. else
  10996. {
  10997. if(Cash[playerid] < price) return SysMsg(playerid,"Você não tem dinheiro suficiente para este reparo.");
  10998. GivePlayerCash(playerid, -price);
  10999. }
  11000. if(option == 5)
  11001. {
  11002. GetVehicleDamageStatus(VehicleId, panels, doors, lights, tires);
  11003. lights = encode_lights(0, 0, 0, 0);
  11004. UpdateVehicleDamageStatus(VehicleId, panels, doors, lights, tires);
  11005. SendClientMessageF(playerid,COLOR_LIGHTBLUE, "Os faróis do seu %s foram reparados, custando-lhe $%i.", GetVehicleNameEx(GetVehicleModel(VehicleId)), price);
  11006. }
  11007. else
  11008. {
  11009. for(new vl = 1, x = GetVehiclePoolSize(); vl <= x; vl++)
  11010. {
  11011. if(RepairData[vl][rModel] < 400)
  11012. {
  11013. new reptime = gettime() + 60;
  11014. RepairData[vl][rModel] = GetVehicleModel(VehicleId);
  11015. RepairData[vl][rGarage] = bodyshop;
  11016. RepairData[vl][rTime] = reptime;
  11017. if(VehicleData[VehicleId][VehicleOwnerSQLID] > 0) //cheques if the vehicle is a player vehicle.
  11018. {
  11019. RepairData[vl][rSQLID] = VehicleData[VehicleId][VehSQLID];
  11020. RepairData[vl][rOwnerSQLID] = VehicleData[VehicleId][VehicleOwnerSQLID];
  11021. RepairData[vl][rFaction] = 0;
  11022. GetVehicleDamageStatus(VehicleId, panels, doors, lights, tires);
  11023. switch(option)
  11024. {
  11025. case 1: mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET GarageRepairID = %i, GarageCollectTime = %i, DamageHealth = 1000, DamagePanels = %i, DamageDoors = %i, DamageLights = %i, DamageTires = %i, Fuel = %f, Mileage = %f WHERE id = %i", bodyshop, gettime() + 60, panels, doors, lights, tires, Fuel[VehicleId], VehicleData[VehicleId][Mileage], VehicleData[VehicleId][VehSQLID]);
  11026. case 2: mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET GarageRepairID = %i, GarageCollectTime = %i, DamageHealth = %f, DamagePanels = 0, DamageDoors = 0, DamageLights = 0, DamageTires = 0, Fuel = %f, Mileage = %f WHERE id = %i", bodyshop, gettime() + 60, health, Fuel[VehicleId], VehicleData[VehicleId][Mileage], VehicleData[VehicleId][VehSQLID]);
  11027. case 3: mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET GarageRepairID = %i, GarageCollectTime = %i, DamageHealth = %f, DamagePanels = %i, DamageDoors = %i, DamageLights = %i, DamageTires = 0, Fuel = %f, Mileage = %f WHERE id = %i", bodyshop, gettime() + 60, health, panels, doors, lights, Fuel[VehicleId], VehicleData[VehicleId][Mileage], VehicleData[VehicleId][VehSQLID]);
  11028. case 4: mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET GarageRepairID = %i, GarageCollectTime = %i, DamageHealth = 1000.0, DamagePanels = 0, DamageDoors = 0, DamageLights = 0, DamageTires = 0, Fuel = %f, Mileage = %f WHERE id = %i", bodyshop, gettime() + 60, Fuel[VehicleId], VehicleData[VehicleId][Mileage], VehicleData[VehicleId][VehSQLID]);
  11029. }
  11030. mysql_pquery(conn, mquery);
  11031. format(RepairData[vl][rRegPlate], MAX_REG_PLATE, VehicleData[VehicleId][RegPlate]);
  11032. if(VehicleData[VehicleId][ForSale])
  11033. {
  11034. VehicleData[VehicleId][ForSale] = false;
  11035. VehicleData[VehicleId][ForSalePrice] = 0;
  11036. DestroyDynamic3DTextLabel(VehicleData[VehicleId][ForSaleLabel]);
  11037. }
  11038. VehicleBroke[VehicleId] = 0;
  11039. FuelTypeAfterRefuel[VehicleId] = 0;
  11040. if(vTaxiSign[VehicleId] != INVALID_OBJECT_ID) DestroyDynamicObjectEx(vTaxiSign[VehicleId], "vTaxiSign[VehicleId] 1");
  11041. vTaxiSign[VehicleId] = INVALID_OBJECT_ID;
  11042. }
  11043. else if(FVehicleData[VehicleId][FVFaction] > 0) //cheques if the vehicle is a faction vehicle.
  11044. {
  11045. RepairData[vl][rSQLID] = FVehicleData[VehicleId][FVSQLID];
  11046. RepairData[vl][rFaction] = FVehicleData[VehicleId][FVFaction];
  11047. RepairData[vl][rOwnerSQLID] = 0;
  11048. mysql_pqueryf(conn, "UPDATE fveh SET GarageRepairID = %i, GarageCollectTime = %i WHERE id = %i", bodyshop, reptime, FVehicleData[VehicleId][FVSQLID]);
  11049. format(RepairData[vl][rRegPlate], MAX_REG_PLATE, FVehicleData[VehicleId][FVRegPlate]);
  11050. }
  11051. temp = 1;
  11052. while(temp > 0)
  11053. {
  11054. temp --;
  11055. tm ++;
  11056. if(tm == 60)
  11057. {
  11058. tm = 0;
  11059. th ++;
  11060. if(th > 23)
  11061. {
  11062. th = 0;
  11063. }
  11064. }
  11065. }
  11066. DestroyVehicleEx(VehicleId, "vehicleid 0");
  11067. ClearVehicleData(VehicleId);
  11068. switch(option)
  11069. {
  11070. case 1: SendClientMessageF(playerid,COLOR_LIGHTBLUE, "Seu %s foi reservado colocar um novo motor no valor de $%i, volte em torno de 1 hora ((1 minutos, %02d:%02d)) para busca-lo.", GetVehicleNameEx(RepairData[vl][rModel]), price, th, tm);
  11071. case 2: SendClientMessageF(playerid,COLOR_LIGHTBLUE, "Seu %s foi reservado para uma reparação completa na Lataria por $%i, volte em torno de 1 hora ((1 minutos, %02d:%02d)) para busca-lo.", GetVehicleNameEx(RepairData[vl][rModel]), price, th, tm);
  11072. case 3: SendClientMessageF(playerid,COLOR_LIGHTBLUE, "Seu %s foi reservado para colocar pneus novos que custam $%i, volte em torno de 1 hora ((1 minutos, %02d:%02d)) para busca-lo.", GetVehicleNameEx(RepairData[vl][rModel]), price, th, tm);
  11073. case 4: SendClientMessageF(playerid,COLOR_LIGHTBLUE, "Seu %s foi reservado para uma reparação completa no valor de $%i, volte em torno de 1 hora ((1 minutos, %02d:%02d)) para busca-lo.", GetVehicleNameEx(RepairData[vl][rModel]), price, th, tm);
  11074. }
  11075. break;
  11076. }
  11077. }
  11078. }
  11079. }
  11080. else
  11081. {
  11082. switch(option)
  11083. {
  11084. case 1: SendClientMessageF(playerid, COLOR_WHITE, "Isso irá custar {4BB74C}$%i{FFFFFF} para o seu motor a ser reparado, use '/reparar 1 %s confirmar' para aceitar.", price, payment);
  11085. case 2: SendClientMessageF(playerid, COLOR_WHITE, "Isso irá custar {4BB74C}$%i{FFFFFF} para sua lataria ser reparada, use '/reparar 2 %s confirmar' para aceitar.", price, payment);
  11086. case 3: SendClientMessageF(playerid, COLOR_WHITE, "Isso irá custar {4BB74C}$%i{FFFFFF} para que seus pneus sejam substituídos, use '/reparar 3 %s confirmar' para aceitar.", price, payment);
  11087. case 4: SendClientMessageF(playerid, COLOR_WHITE, "Isso irá custar {4BB74C}$%i{FFFFFF} para a sua lataria e motor para ser consertado, use '/reparar 4 %s confirmar' para aceitar.", price, payment);
  11088. case 5:
  11089. {
  11090. SendClientMessage(playerid, COLOR_RED, "NOTA: Mesmo se os faróis do seu veículo não estejam danificados, você ainda será cobrado para os reparos se você confirmar.");
  11091. SendClientMessageF(playerid, COLOR_WHITE, "Isso irá custar {4BB74C}$%i{FFFFFF} para que suas luzes sejam consertadas, use '/reparar 5 %s confirmar' para aceitar.", price, payment);
  11092. }
  11093. }
  11094. }
  11095. return true;
  11096. }
  11097. CMD:vmenu(playerid)
  11098. {
  11099. if(!Logged{playerid}) return true;
  11100. if(HasVehicleSpawned(playerid)) return SysMsg(playerid, "Você já tem um veículo spawnado.");
  11101. CreateVMenuTextdraws(playerid);
  11102. for(new v = 0; v < 3; v++)
  11103. {
  11104. if(PlayerCars[playerid][v][CarModel] != 0)
  11105. {
  11106. PlayerTextDrawSetPreviewModel(playerid, VSelectOptions[playerid][v], PlayerCars[playerid][v][CarModel]);
  11107. PlayerTextDrawSetPreviewVehCol(playerid, VSelectOptions[playerid][v], PlayerCars[playerid][v][CarCol1], PlayerCars[playerid][v][CarCol2]);
  11108. }
  11109. PlayerTextDrawShow(playerid, VSelectOptions[playerid][v]);
  11110. VSelectID[playerid][v] = v;
  11111. }
  11112. VSelectOffset[playerid] = 3;
  11113. TextDrawShowForPlayer(playerid, VSelectBackground);
  11114. TextDrawShowForPlayer(playerid, VSelectHeader);
  11115. TextDrawShowForPlayer(playerid, VSelectUp);
  11116. TextDrawShowForPlayer(playerid, VSelectDown);
  11117. SelectTextDraw(playerid, COLOR_GREY);
  11118. return true;
  11119. }
  11120. CMD:vdespawn(playerid)
  11121. {
  11122. if(!Logged{playerid}) return true;
  11123. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você deve estar em seu veículo para despawn-lo.");
  11124. new bool:candespawn = false, vid = -1, v = GetPlayerVehicleID(playerid);
  11125. for(new x = 0; x < MAX_VEH_PER_PLAYER; x++)
  11126. {
  11127. if(IsPlayerInRangeOfPoint(playerid, 10.0, PlayerCars[playerid][x][CarPosX], PlayerCars[playerid][x][CarPosY], PlayerCars[playerid][x][CarPosZ]))
  11128. {
  11129. candespawn = true;
  11130. }
  11131. if(PlayerCars[playerid][x][CarSQLID] == VehicleData[v][VehSQLID])
  11132. {
  11133. vid = x;
  11134. }
  11135. }
  11136. if(!candespawn) return SysMsg(playerid, "Você deve está na vaga de estacionamento do seu veiculo.");
  11137. mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET Spawned = 0 WHERE id = %i", VehicleData[v][VehSQLID]);
  11138. mysql_pquery(conn, mquery);
  11139. ClearVehicleData(v);
  11140. DestroyVehicle(v);
  11141. PlayerCars[playerid][vid][CarSpawned] = false;
  11142. return true;
  11143. }
  11144. stock HasVehicleSpawned(playerid)
  11145. {
  11146. for(new v = 0; v < MAX_VEH_PER_PLAYER; v++)
  11147. {
  11148. if(PlayerCars[playerid][v][CarSpawned]) return true;
  11149. }
  11150. return false;
  11151. }
  11152. stock CreateVMenuTextdraws(playerid)
  11153. {
  11154. VSelectOptions[playerid][0] = CreatePlayerTextDraw(playerid, 485.666656, 92.125976, "");
  11155. PlayerTextDrawLetterSize(playerid, VSelectOptions[playerid][0], 0.000000, 0.000000);
  11156. PlayerTextDrawTextSize(playerid, VSelectOptions[playerid][0], 129.000000, 90.000000);
  11157. PlayerTextDrawAlignment(playerid, VSelectOptions[playerid][0], 1);
  11158. PlayerTextDrawColor(playerid, VSelectOptions[playerid][0], -1);
  11159. PlayerTextDrawSetShadow(playerid, VSelectOptions[playerid][0], 0);
  11160. PlayerTextDrawSetOutline(playerid, VSelectOptions[playerid][0], 0);
  11161. PlayerTextDrawBackgroundColor(playerid, VSelectOptions[playerid][0], 255);
  11162. PlayerTextDrawFont(playerid, VSelectOptions[playerid][0], 5);
  11163. PlayerTextDrawSetProportional(playerid, VSelectOptions[playerid][0], 0);
  11164. PlayerTextDrawSetShadow(playerid, VSelectOptions[playerid][0], 0);
  11165. PlayerTextDrawSetSelectable(playerid, VSelectOptions[playerid][0], true);
  11166. PlayerTextDrawSetPreviewModel(playerid, VSelectOptions[playerid][0], 18631);
  11167. PlayerTextDrawSetPreviewRot(playerid, VSelectOptions[playerid][0], 0.000000, 0.000000, 90.000000, 1.000000);
  11168. PlayerTextDrawSetPreviewVehCol(playerid, VSelectOptions[playerid][0], 1, 1);
  11169. VSelectOptions[playerid][1] = CreatePlayerTextDraw(playerid, 486.000000, 185.228927, "");
  11170. PlayerTextDrawLetterSize(playerid, VSelectOptions[playerid][1], 0.000000, 0.000000);
  11171. PlayerTextDrawTextSize(playerid, VSelectOptions[playerid][1], 129.000000, 90.000000);
  11172. PlayerTextDrawAlignment(playerid, VSelectOptions[playerid][1], 1);
  11173. PlayerTextDrawColor(playerid, VSelectOptions[playerid][1], -1);
  11174. PlayerTextDrawSetShadow(playerid, VSelectOptions[playerid][1], 0);
  11175. PlayerTextDrawSetOutline(playerid, VSelectOptions[playerid][1], 0);
  11176. PlayerTextDrawBackgroundColor(playerid, VSelectOptions[playerid][1], 255);
  11177. PlayerTextDrawFont(playerid, VSelectOptions[playerid][1], 5);
  11178. PlayerTextDrawSetProportional(playerid, VSelectOptions[playerid][1], 0);
  11179. PlayerTextDrawSetShadow(playerid, VSelectOptions[playerid][1], 0);
  11180. PlayerTextDrawSetSelectable(playerid, VSelectOptions[playerid][1], true);
  11181. PlayerTextDrawSetPreviewModel(playerid, VSelectOptions[playerid][1], 18631);
  11182. PlayerTextDrawSetPreviewRot(playerid, VSelectOptions[playerid][1], 0.000000, 0.000000, 90.000000, 1.000000);
  11183. PlayerTextDrawSetPreviewVehCol(playerid, VSelectOptions[playerid][1], 1, 1);
  11184. VSelectOptions[playerid][2] = CreatePlayerTextDraw(playerid, 486.000000, 278.234588, "");
  11185. PlayerTextDrawLetterSize(playerid, VSelectOptions[playerid][2], 0.000000, 0.000000);
  11186. PlayerTextDrawTextSize(playerid, VSelectOptions[playerid][2], 129.000000, 90.000000);
  11187. PlayerTextDrawAlignment(playerid, VSelectOptions[playerid][2], 1);
  11188. PlayerTextDrawColor(playerid, VSelectOptions[playerid][2], -1);
  11189. PlayerTextDrawSetShadow(playerid, VSelectOptions[playerid][2], 0);
  11190. PlayerTextDrawSetOutline(playerid, VSelectOptions[playerid][2], 0);
  11191. PlayerTextDrawBackgroundColor(playerid, VSelectOptions[playerid][2], 255);
  11192. PlayerTextDrawFont(playerid, VSelectOptions[playerid][2], 5);
  11193. PlayerTextDrawSetProportional(playerid, VSelectOptions[playerid][2], 0);
  11194. PlayerTextDrawSetShadow(playerid, VSelectOptions[playerid][2], 0);
  11195. PlayerTextDrawSetSelectable(playerid, VSelectOptions[playerid][2], true);
  11196. PlayerTextDrawSetPreviewModel(playerid, VSelectOptions[playerid][2], 18631);
  11197. PlayerTextDrawSetPreviewRot(playerid, VSelectOptions[playerid][2], 0.000000, 0.000000, 90.000000, 1.000000);
  11198. PlayerTextDrawSetPreviewVehCol(playerid, VSelectOptions[playerid][2], 1, 1);
  11199. return true;
  11200. }
  11201. stock HideVMenuTextdraws(playerid)
  11202. {
  11203. TextDrawHideForPlayer(playerid, VSelectBackground);
  11204. TextDrawHideForPlayer(playerid, VSelectHeader);
  11205. TextDrawHideForPlayer(playerid, VSelectUp);
  11206. TextDrawHideForPlayer(playerid, VSelectDown);
  11207. PlayerTextDrawDestroy(playerid, VSelectOptions[playerid][0]);
  11208. PlayerTextDrawDestroy(playerid, VSelectOptions[playerid][1]);
  11209. PlayerTextDrawDestroy(playerid, VSelectOptions[playerid][2]);
  11210. VSelectOptions[playerid][0] = PlayerText:INVALID_TEXT_DRAW;
  11211. VSelectOptions[playerid][1] = PlayerText:INVALID_TEXT_DRAW;
  11212. VSelectOptions[playerid][2] = PlayerText:INVALID_TEXT_DRAW;
  11213. return true;
  11214. }
  11215. CMD:meuscarros(playerid, params[])//meuscarros
  11216. {
  11217. if(!Logged{playerid}) return true;
  11218. new lockedTxt[9], Vcount = 0, sub[100];
  11219. gstr[0] = EOS;
  11220. for(new v = 1, x = GetVehiclePoolSize(); v <= x; v++)
  11221. {
  11222. if(Vcount < MAX_VEH_PER_PLAYER)
  11223. {
  11224. if(VehicleData[v][VehicleOwnerSQLID] == SQLID[playerid])
  11225. {
  11226. if(VehicleData[v][IdVehicle] > 0)
  11227. {
  11228. if(Locked{v}) lockedTxt = "Fechado";
  11229. else lockedTxt = "Aberto";
  11230. if(VehicleData[v][Hotwired] == 1) lockedTxt = "Stolen";
  11231. Vcount ++;
  11232. format(sub, sizeof(sub), "%s - %s (ID: %i Slot: %i Placa: %s)\n", GetVehicleNameEx(VehicleData[v][VehicleModel]), lockedTxt, VehicleData[v][IdVehicle], v, VehicleData[v][RegPlate]);
  11233. strcat(gstr, sub);
  11234. }
  11235. }
  11236. else if(ImpoundData[v][iOwnerSQLID] == SQLID[playerid])
  11237. {
  11238. if(ImpoundData[v][iImpoundTime] < 1) ImpoundData[v][iImpoundTime] = 0;
  11239. if(ImpoundData[v][iImpoundTime] == 0) format(sub, sizeof(sub), "%s - Atualmente apreendido (Aguargando busca)\n", GetVehicleNameEx(ImpoundData[v][iModel]));
  11240. else format(sub, sizeof(sub), "%s - Atualmente apreendido (%i minutos restantes)\n", GetVehicleNameEx(ImpoundData[v][iModel]), ImpoundData[v][iImpoundTime]);
  11241. Vcount++;
  11242. strcat(gstr, sub);
  11243. }
  11244. if(RepairData[v][rOwnerSQLID] == SQLID[playerid])
  11245. {
  11246. if(RepairData[v][rTime] < gettime()) format(sub, sizeof(sub), "%s - Sendo trabalhado no %s (Aguargando busca)\n", GetVehicleNameEx(RepairData[v][rModel]), GetRepairGarageName(RepairData[v][rGarage]));
  11247. else format(sub, sizeof(sub), "%s - Sendo trabalhado no %s\n", GetVehicleNameEx(RepairData[v][rModel]), GetRepairGarageName(RepairData[v][rGarage]));
  11248. Vcount++;
  11249. strcat(gstr, sub);
  11250. }
  11251. }
  11252. }
  11253. mysql_format(conn, mquery, sizeof(mquery), "SELECT VehicleModel FROM vehicles WHERE NeedsRecovery = 1 AND OwnerSQLID = %i", SQLID[playerid]);
  11254. mysql_pquery(conn, mquery, "MyCarsRecovery", "isi", playerid, gstr, Vcount);
  11255. return true;
  11256. }
  11257. CMD:customreg(playerid, params[])
  11258. {
  11259. if(!Logged{playerid}) return true;
  11260. if(!IsPlayerInRangeOfPoint(playerid, 3.5, -2032.927978, -117.508804, 1035.171875)) return SysMsg(playerid, "Você deve estar no DMV, para fazer um registro de placa personalizada.");
  11261. new vslot = 1, regplate[MAX_REG_PLATE], confirmation[8];
  11262. if(sscanf(params, "is[8]S()[8]", vslot, regplate, confirmation)) return SysMsg(playerid, "Use: /customreg [Veiculo ID do /meuscarros] [Novo número de Registro]");
  11263. if(vslot < 0 || vslot > MAX_VEHICLES) return SysMsg(playerid, "Veiculo ID inválido.");
  11264. if(VehicleData[vslot][VehicleOwnerSQLID] != SQLID[playerid]) return SysMsg(playerid, "Você precisa ser dono do veiculo.");
  11265. new reglen = strlen(regplate);
  11266. if(reglen > MAX_REG_PLATE-1) return SysMsg(playerid,"O novo registro está muito longo. (7 max)");
  11267. if(reglen < 4) return SysMsg(playerid,"O novo registro está curto. (4 min)");
  11268. for(new letter = 0; letter < reglen; letter++)
  11269. {
  11270. regplate[letter] = toupper(regplate[letter]);
  11271. if(!IsValidRegChar(regplate[letter])) return SysMsg(playerid, "Caracteres inválidos.");
  11272. }
  11273. if(IsRegPlateUsed(regplate)) return SysMsg(playerid,"Esse número de registro já está sendo usado.");
  11274. new ve = vslot, regcost = -1;
  11275. switch(reglen)
  11276. {
  11277. case 4: regcost = 2500000;
  11278. case 5: regcost = 1250000;
  11279. case 6: regcost = 300000;
  11280. case 7: regcost = 40000;
  11281. }
  11282. if(regcost == -1) return SysMsg(playerid,"Oops! Ocorreu um erro de sistema, por favor relate a um admin. (ERROR: 2-001)");
  11283. if(isnull(confirmation)) return SendClientMessageF(playerid, COLOR_WHITE, "Alterando sua placa '%s' para '%s' no seu veiculo %s irá custar $%s. Use '/customreg %i %s confirmar' para fazer o pagamento.", VehicleData[ve][RegPlate], regplate, GetVehicleNameEx(VehicleData[ve][VehicleModel]), format_cash(regcost), vslot, regplate);
  11284. else
  11285. {
  11286. if(strcmp(confirmation, "confirmar", true) == 0)
  11287. {
  11288. if(Cash[playerid] < regcost) return SysMsg(playerid,"Você não tem dinheiro suficiente para customizar sua placa.");
  11289. GivePlayerCash(playerid, -regcost);
  11290. MySQLUpdateString(VehicleData[ve][VehSQLID], "RegPlate", regplate, "vehicles");
  11291. format(VehicleData[ve][RegPlate], MAX_REG_PLATE, regplate);
  11292. SetVehicleNumberPlate(VehicleData[ve][IdVehicle], regplate);
  11293. SendClientMessageF(playerid, COLOR_GOLD, "A placa do seu veiculo %s foi customizada para: '%s'. Isso custou $%s.", GetVehicleNameEx(VehicleData[ve][VehicleModel]), VehicleData[ve][RegPlate], format_cash(regcost));
  11294. format(gstr, sizeof(gstr),"[%s] %s(%i) gastou $%i para customizar a placa do veiculo. (Total: $%i)", GetTimeStringAndSec(), NameEx(playerid), playerid, regcost, Cash[playerid]);
  11295. AddToLog("cash", gstr);
  11296. }
  11297. }
  11298. return true;
  11299. }
  11300. CMD:recuperarveiculo(playerid, params[])//recuperarveiculo
  11301. {
  11302. if(!Logged{playerid}) return true;
  11303. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM vehicles WHERE OwnerSQLID = %i AND NeedsRecovery = 1 LIMIT %i", SQLID[playerid], MAX_VEH_PER_PLAYER);
  11304. mysql_pquery(conn, mquery, "DisplayRecoverVehicle", "i", playerid);
  11305. return true;
  11306. }
  11307. CMD:carmusic(playerid, params[])
  11308. {
  11309. new v = GetPlayerVehicleID(playerid);
  11310. new VehicleMusic[200];
  11311. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você precisa estar dentro de um veiculo.");
  11312. if(GetPlayerVehicleSeat(playerid) >= 2) return SysMsg(playerid, "Somente motorista/passageiros podem usar este comando.");
  11313. if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 408) return SysMsg(playerid,"Você não pode usar este comando em carro de trabalho.");
  11314. if(IsPushBike(v)) return SysMsg(playerid,"Você não pode usar este comando em Bikes/Motos.");
  11315. if(sscanf(params, "s[200]", VehicleMusic)) return SysMsg(playerid, "Use: /carmusic [link/off]");
  11316. if(strcmp(VehicleMusic, "parar", true) == 0 || strcmp(VehicleMusic, "no", true) == 0 || strcmp(VehicleMusic, "off", true) == 0)
  11317. {
  11318. if(GetPlayerVehicleSeat(playerid) == 0 || GetPlayerVehicleSeat(playerid) == 1)
  11319. {
  11320. foreach(new i: Player)
  11321. {
  11322. if(Logged{i} && GetPlayerVehicleID(i) == GetPlayerVehicleID(playerid))
  11323. {
  11324. StopAudioStreamForPlayer(i);
  11325. }
  11326. }
  11327. vMusicPlaying{v} = false;
  11328. strdel(vMusicLink[v], 0, 256);
  11329. SetPlayerChatBubble(playerid, "* Preciona um botão no rádio desligando-o. *", COLOR_EMOTE, 15.0, 6000);
  11330. }
  11331. }
  11332. else if(GetPlayerVehicleSeat(playerid) == 0 || GetPlayerVehicleSeat(playerid) == 1)
  11333. {
  11334. foreach(new i: Player)
  11335. {
  11336. if(Logged{i} && GetPlayerVehicleID(i) == GetPlayerVehicleID(playerid))
  11337. {
  11338. StopAudioStreamForPlayer(i);
  11339. PlayAudioStreamForPlayerEx(i, VehicleMusic);
  11340. ListeningBoom[i] = -1;
  11341. }
  11342. }
  11343. vMusicPlaying{v} = true;
  11344. strpack(vMusicLink[v], VehicleMusic);
  11345. SetPlayerChatBubble(playerid,"* Liga o rádio, sintonizando-o para uma estação. *", COLOR_EMOTE, 15.0, 6000);
  11346. }
  11347. return true;
  11348. }
  11349. CMD:togplaca(playerid)//togplaca
  11350. {
  11351. if(!Logged{playerid}) return true;
  11352. if(Inventory[playerid][Toolbox] == 0) return SysMsg(playerid,"Você precisa de uma caixa de ferramentas para substituir sua placa.");
  11353. if(IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você precisa estar fora de um veículo para usar este recurso.");
  11354. new v = GetNearestVehicle(playerid);
  11355. if(IsPushBike(v) || IsHelicopter(v) || IsPlane(v)) return SysMsgF(playerid, "Esse %s não tem uma placa.", GetVehicleName(v));
  11356. if(!TrunkXY(playerid, v)) return SysMsg(playerid, "Você não esta próximo a um veiculo.");
  11357. if(VehicleData[v][VehicleOwnerSQLID] != SQLID[playerid]) return SysMsgF(playerid, "Você não é o dono deste %s.", GetVehicleName(v));
  11358. new world = GetVehicleVirtualWorld(v);
  11359. SetVehicleVirtualWorld(v, v);
  11360. if(VehicleData[v][PlateToggle])
  11361. {
  11362. VehicleData[v][PlateToggle] = false;
  11363. SetVehicleNumberPlate(v, VehicleData[v][RegPlate]);
  11364. cmd_me(playerid, "pega a placa no porta-malas do veículo e se ajoelha, aparafusando-o de volta ao lugar.");
  11365. OnePlayAnim(playerid, "BOMBER", "BOM_Plant_Loop", 3.0, 0, 0, 0, 0, 0);
  11366. SetTimerEx("PutVehicleBack", 500, 0, "ii", v, world);
  11367. mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET PlateToggle = 0 WHERE id = %i", VehicleData[v][VehSQLID]);
  11368. mysql_pquery(conn, mquery);
  11369. return true;
  11370. }
  11371. else
  11372. {
  11373. VehicleData[v][PlateToggle] = true;
  11374. SetVehicleNumberPlate(v, " ");
  11375. cmd_me(playerid, "ajoelha-se e desenrosca a placa do veículo, colocando-a no porta-malas");
  11376. OnePlayAnim(playerid, "BOMBER", "BOM_Plant_Loop", 3.0, 0, 0, 0, 0, 0);
  11377. SetTimerEx("PutVehicleBack", 500, 0, "ii", v, world);
  11378. mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET PlateToggle = 1 WHERE id = %i", VehicleData[v][VehSQLID]);
  11379. mysql_pquery(conn, mquery);
  11380. return true;
  11381. }
  11382. }
  11383. GREENSIDE::PutVehicleBack(vehicleid, world)
  11384. {
  11385. SetVehicleVirtualWorld(vehicleid, world);
  11386. return true;
  11387. }
  11388. CMD:checkplaca(playerid, params[])//checkplat
  11389. {
  11390. if(!Logged{playerid}) return true;
  11391. new v = GetClosestVehicle(playerid);
  11392. if(VehicleData[v][PlateToggle]) SysMsgF(playerid, "Essa %s não tem uma placa mostrando.", GetVehicleName(v));
  11393. else if(!VehicleData[v][PlateToggle]) SysMsgF(playerid, "Esse %s tem uma placa mostrando.", GetVehicleName(v));
  11394. else SysMsg(playerid, "Esse não é um veiculo pessoal.");
  11395. return true;
  11396. }
  11397. CMD:portamalas(playerid, params[])
  11398. {
  11399. if(!Logged{playerid}) return true;
  11400. new tempv = GetClosestVehicle(playerid);
  11401. if(!VehicleHasTrunk(tempv)) return SysMsg(playerid,"Esse veiculo não tem porta-malas.");
  11402. if(tempv == INVALID_VEHICLE_ID) return SysMsg(playerid, "Você precisa esta proximo a um veiculo para usar o comando.");
  11403. if(aspawned{tempv}) return SysMsg(playerid, "Esse veiculo é da adminstração do servidor.");
  11404. if(IsRentalCar(tempv)) return SysMsg(playerid, "Você não pode abrir o porta-malas de carro alugado.");
  11405. if(IsServerCar(tempv)) return SysMsg(playerid, "Você não abrir este veiculo. (Veiculo do servidor)");
  11406. new Item[15], Amount[40], Method[15], trunkstring[128];
  11407. if(sscanf(params, "s[15]S(None)[15]S(None)[40]", Method, Item, Amount)) return SysMsg(playerid,"Use: /portamalas [abrir/fechar/pegar/guardar/mostrar] [item] [quantidade], Itens: Dinheiro, colete, maconha, cocaina, moonshine, arma");
  11408. if(TrunkXY(playerid, tempv) || GetPlayerVehicleID(playerid) == tempv)
  11409. {
  11410. if(strmatch("abrir", Method))
  11411. {
  11412. if(VehicleBoots[tempv][1] == 1) return SysMsg(playerid,"O porta-malas já esta aberto.");
  11413. if(IsOwnedCar(tempv))
  11414. {
  11415. if(Locked{tempv})
  11416. {
  11417. format(trunkstring, sizeof(trunkstring), "* %s tenta abrir o porta-malas do %s. *", NameRP(playerid), GetVehicleNameEx(VehicleData[tempv][VehicleModel]));
  11418. ProxDetector(20.0,playerid,trunkstring, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  11419. SysMsg(playerid,"O veiculo está fechado, se você quiser abrir o porma-malas, você precisa abrir o veiculo primeiro.");
  11420. return true;
  11421. }
  11422. }
  11423. else if(IsFactionVehicle(tempv))
  11424. {
  11425. if(Locked{tempv})
  11426. {
  11427. format(trunkstring, sizeof(trunkstring), "* %s tenta abrir o porta-malas do %s. *", NameRP(playerid), GetVehicleNameEx(FVehicleData[tempv][FVModel]));
  11428. ProxDetector(20.0,playerid,trunkstring, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  11429. SysMsg(playerid, "O veiculo está fechado, se você quiser abrir o porma-malas, você precisa abrir o veiculo primeiro.");
  11430. return true;
  11431. }
  11432. }
  11433. if(!IsPlayerInAnyVehicle(playerid)) ToggleVehicleTrunk(tempv, 1);
  11434. VehicleBoots[tempv][1] = 1;
  11435. SetPlayerChatBubble(playerid, trunkstring, COLOR_EMOTE, 15.0, 5000);
  11436. format(trunkstring, sizeof(trunkstring),"* %s preciona um botão dentro do veiculo e abre o porta-malas. *", NameRP(playerid));
  11437. ProxDetector(20.0,playerid,trunkstring, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  11438. }
  11439. if(VehicleBoots[tempv][1] == 1)
  11440. {
  11441. if(strmatch("fechar", Method))
  11442. {
  11443. if(VehicleBoots[tempv][1] == 0) return SysMsg(playerid,"O porta-malas do veiculo já esta fechado.");
  11444. ToggleVehicleTrunk(tempv, 0);
  11445. VehicleBoots[tempv][1] = 0;
  11446. format(trunkstring, sizeof(trunkstring),"* %s grips the trunk, closing it. *",NameRP(playerid));
  11447. ProxDetector(20.0,playerid,trunkstring, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  11448. return true;
  11449. }
  11450. if(strcmp("guardar",Method) == 0)
  11451. {
  11452. if(strmatch(Item, "None")) return SysMsg(playerid,"Use: /portamalas guardar [item] [quantidade(nome da arma)], Itens: Dinheiro, Colete, Marijuana, cocaina, moonshine, arma");
  11453. if(strcmp("dinheiro",Item) == 0)
  11454. {
  11455. if(strmatch(Amount, "None")) return SysMsg(playerid,"Use: /portamalas guardar dinheiro [quantidade $]");
  11456. if(!IsNumeric(Amount)) return SysMsg(playerid,"Quantidade inválida.");
  11457. if(strval(Amount) < 1 || strval(Amount) > 100000) return SysMsg(playerid,"A quantidade máxima de dinheiro que você pode guardar é de $100,000.");
  11458. if(strval(Amount) > Cash[playerid]) return SysMsg(playerid,"Você não tem essa quantidade para guardar.");
  11459. GivePlayerCash(playerid, -strval(Amount));
  11460. if(IsOwnedCar(tempv))
  11461. {
  11462. VehicleData[tempv][TrunkCash] += strval(Amount);
  11463. MySQLUpdateInt(VehicleData[tempv][VehSQLID], "TrunkCash", VehicleData[tempv][TrunkCash], "vehicles");
  11464. format(trunkstring, sizeof(trunkstring),"* %s guarda alguma coisa no porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv));
  11465. }
  11466. else if(IsFactionVehicle(tempv))
  11467. {
  11468. FVehicleData[tempv][FTrunkCash] += strval(Amount);
  11469. MySQLUpdateInt(FVehicleData[tempv][FVSQLID], "TrunkCash", FVehicleData[tempv][FTrunkCash], "fveh");
  11470. format(trunkstring, sizeof(trunkstring),"* %s guarda alguma coisa no porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv));
  11471. }
  11472. SetPlayerChatBubble(playerid, trunkstring, COLOR_EMOTE, 15.0, 5000);
  11473. format(trunkstring, sizeof(trunkstring),"Você guardou $%s no porta-malas do veiculo.",format_cash(strval(Amount)));
  11474. SendClientMessage(playerid,COLOR_DARKBLUE,trunkstring);
  11475. ApplyTrunkAnimation(playerid);
  11476. format(trunkstring, sizeof(trunkstring),"[%s] %s(%i) guarda $%i no porta-malas do veiculo.", GetServerTimeString(), NameEx(playerid), playerid, strval(Amount));
  11477. AddToLog("cash", trunkstring);
  11478. return true;
  11479. }
  11480. else if(strcmp("colete",Item,true) == 0 || strcmp("coletes",Item,true) == 0)
  11481. {
  11482. new Float:Armour;
  11483. GetPlayerArmour(playerid,Armour);
  11484. if(Armour == 0) return SysMsg(playerid, "Você não tem colete de proteção.");
  11485. //if(VestType[playerid] == 0) return SysMsg(playerid, "You do not have an armor vest on.");
  11486. if(IsOwnedCar(tempv))
  11487. {
  11488. if(RestrictedVest{playerid}) return SysMsg(playerid, "Você não pode armazenar este colete neste veículo.");
  11489. if(!MySQLCheckVehicleArmor(VehicleData[tempv][VehSQLID])) return SysMsg(playerid, "Você não pode armazenar mais coletes neste veículo como já tem 5 coletes.");
  11490. mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO storedarmor (ArmorType, ArmorAmount, TrunkID) VALUES (%i, %f, %i)", VestType[playerid], Armour, VehicleData[tempv][VehSQLID]);
  11491. mysql_pquery(conn, mquery);
  11492. format(trunkstring, sizeof(trunkstring),"* %s guarda alguma coisa no porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv));
  11493. }
  11494. else if(IsFactionVehicle(tempv))
  11495. {
  11496. if(RestrictedVest{playerid} && IsFactionVehicle(FVehicleData[tempv][FactionVehID]) != Faction[playerid]) return SysMsg(playerid, "Você não pode armazenar este colete neste veículo.");
  11497. if(!MySQLCheckFVehArmor(FVehicleData[tempv][FVSQLID])) return SysMsg(playerid, "Você não pode armazenar mais coletes neste veículo como já tem 5 coletes.");
  11498. mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO storedarmor (ArmorType, ArmorAmount, FCarID) VALUES (%i, %f, %i)", VestType[playerid], Armour, FVehicleData[tempv][FVSQLID]);
  11499. mysql_pquery(conn, mquery);
  11500. format(trunkstring, sizeof(trunkstring),"* %s guarda alguma coisa no porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv));
  11501. }
  11502. ApplyTrunkAnimation(playerid);
  11503. SetPlayerChatBubble(playerid, trunkstring, COLOR_EMOTE, 15.0, 5000);
  11504. if(VestType[playerid] == 1) SendClientMessage(playerid,COLOR_DARKBLUE,"Você guardou um colete leve no porta-malas deste veiculo.");
  11505. else SendClientMessage(playerid, COLOR_DARKBLUE, "Você armazenou um colete pesado no porta-malas deste veiculo.");
  11506. SetPlayerArmourEx(playerid, 0.0, 1);
  11507. VestType[playerid] = 0;
  11508. return true;
  11509. }
  11510. else if(strcmp("marijuana",Item,true) == 0)
  11511. {
  11512. if(strmatch(Amount, "None")) return SysMsg(playerid,"Use: /portamalas guardar marijuana [Quantidade]");
  11513. if(!IsNumeric(Amount)) return SysMsg(playerid,"Quantidade inválida.");
  11514. if(strval(Amount) < 1) return SysMsg(playerid,"Você deve armazenar pelo menos 1.");
  11515. if(strval(Amount) > Inventory[playerid][Weed]) return SysMsg(playerid,"Você não tem essa quantidade para guardar.");
  11516. Inventory[playerid][Weed] -= strval(Amount);
  11517. MySQLUpdateInt(SQLID[playerid], "Weed", Inventory[playerid][Weed], "players");
  11518. if(IsOwnedCar(tempv))
  11519. {
  11520. VehicleData[tempv][TrunkWeed] += strval(Amount);
  11521. MySQLUpdateInt(VehicleData[tempv][VehSQLID], "TrunkWeed", VehicleData[tempv][TrunkWeed], "vehicles");
  11522. format(trunkstring, sizeof(trunkstring),"* %s guarda alguma coisa no porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv));
  11523. }
  11524. else if(IsFactionVehicle(tempv))
  11525. {
  11526. FVehicleData[tempv][FTrunkWeed] += strval(Amount);
  11527. MySQLUpdateInt(FVehicleData[tempv][FVSQLID], "TrunkWeed", FVehicleData[tempv][FTrunkWeed], "fveh");
  11528. format(trunkstring, sizeof(trunkstring),"* %s guarda alguma coisa no porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv));
  11529. }
  11530. SetPlayerChatBubble(playerid, trunkstring, COLOR_EMOTE, 15.0, 5000);
  11531. ApplyTrunkAnimation(playerid);
  11532. format(trunkstring, sizeof(trunkstring),"Guarda %i gramas de Marijuana no porta-malas do veiculo.",strval(Amount));
  11533. SendClientMessage(playerid,COLOR_DARKBLUE,trunkstring);
  11534. return true;
  11535. }
  11536. else if(strcmp("Cocaina",Item,true) == 0)
  11537. {
  11538. if(strmatch(Amount, "None")) return SysMsg(playerid,"Use: /portamalas guardar Cocaina [Quantidade]");
  11539. if(!IsNumeric(Amount)) return SysMsg(playerid,"Quantidade inválida.");
  11540. if(strval(Amount) < 1) return SysMsg(playerid,"You must store at least 1.");
  11541. if(strval(Amount) > Inventory[playerid][Cocaine]) return SysMsg(playerid,"Você não tem essa quantidade para guardar.");
  11542. Inventory[playerid][Cocaine] -= strval(Amount);
  11543. MySQLUpdateInt(SQLID[playerid], "Cocaine", Inventory[playerid][Cocaine], "players");
  11544. if(IsOwnedCar(tempv))
  11545. {
  11546. VehicleData[tempv][TrunkCocaine] += strval(Amount);
  11547. MySQLUpdateInt(VehicleData[tempv][VehSQLID], "TrunkCocaine", VehicleData[tempv][TrunkCocaine], "vehicles");
  11548. format(trunkstring, sizeof(trunkstring),"* %s guarda alguma coisa no porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv));
  11549. }
  11550. else if(IsFactionVehicle(tempv))
  11551. {
  11552. FVehicleData[tempv][FTrunkCocaine] += strval(Amount);
  11553. MySQLUpdateInt(FVehicleData[tempv][FVSQLID], "TrunkCocaine", FVehicleData[tempv][FTrunkCocaine], "fveh");
  11554. format(trunkstring, sizeof(trunkstring),"* %s guarda alguma coisa no porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv));
  11555. }
  11556. SetPlayerChatBubble(playerid, trunkstring, COLOR_EMOTE, 15.0, 5000);
  11557. ApplyTrunkAnimation(playerid);
  11558. format(trunkstring, sizeof(trunkstring),"Você guardou %i gramas de cocaina no porta-malas do veiculo.",strval(Amount));
  11559. SendClientMessage(playerid,COLOR_DARKBLUE,trunkstring);
  11560. return true;
  11561. }
  11562. else if(strcmp("MoonShine",Item,true) == 0)
  11563. {
  11564. if(strmatch(Amount, "None")) return SysMsg(playerid,"Use: /portamalas guardar MoonShine [Quantidade]");
  11565. if(!IsNumeric(Amount)) return SysMsg(playerid,"Quantidade inválida.");
  11566. if(strval(Amount) < 1) return SysMsg(playerid,"Você deve armazenar pelo menos 1.");
  11567. if(strval(Amount) > Inventory[playerid][MoonShine]) return SysMsg(playerid,"Você não tem essa quantidade para armazenar.");
  11568. Inventory[playerid][MoonShine] -= strval(Amount);
  11569. MySQLUpdateInt(SQLID[playerid], "MoonShine", Inventory[playerid][MoonShine], "players");
  11570. if(IsOwnedCar(tempv))
  11571. {
  11572. VehicleData[tempv][TrunkMoonShine] += strval(Amount);
  11573. MySQLUpdateInt(VehicleData[tempv][VehSQLID], "TrunkMoonShine", VehicleData[tempv][TrunkMoonShine], "vehicles");
  11574. format(trunkstring, sizeof(trunkstring),"* %s guarda alguma coisa no porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv));
  11575. }
  11576. else if(IsFactionVehicle(tempv))
  11577. {
  11578. FVehicleData[tempv][FTrunkMoonShine] += strval(Amount);
  11579. MySQLUpdateInt(FVehicleData[tempv][FVSQLID], "TrunkMoonShine", FVehicleData[tempv][FTrunkMoonShine], "fveh");
  11580. format(trunkstring, sizeof(trunkstring),"* %s guarda alguma coisa no porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv));
  11581. }
  11582. SetPlayerChatBubble(playerid, trunkstring, COLOR_EMOTE, 15.0, 5000);
  11583. ApplyTrunkAnimation(playerid);
  11584. format(trunkstring, sizeof(trunkstring),"Você guardou %i litros de Moon Shine no porta-malas de veiculo.",strval(Amount));
  11585. SendClientMessage(playerid,COLOR_DARKBLUE,trunkstring);
  11586. return true;
  11587. }
  11588. else if(strcmp("arma",Item,true) == 0 || strcmp("armas",Item,true) == 0)
  11589. {
  11590. if(strmatch(Amount, "None")) return SysMsg(playerid,"Use: /portamalas guardar Armas [Nome da arma]");
  11591. new wid = GetWeaponIdFromName(Amount);
  11592. if(wid == -1) return SysMsg(playerid,"Nome da arma inválida.");
  11593. if(wid < 1 || wid > 47) return SysMsg(playerid,"Arma inválida.");
  11594. if(wid == 19 || wid == 20 || wid == 21) return SysMsg(playerid,"Arma inválida.");
  11595. new Slot = GetWeaponSlot(wid);
  11596. if(HasTaser{playerid} && Slot == 2) return SysMsg(playerid, "Você não pode armazenar Taser.");
  11597. if(WeaponData[playerid][Slot][Weapon] != wid) return SysMsg(playerid,"Você não tem essa arma.");
  11598. if(WeaponData[playerid][Slot][WeaponOrigin] == 3 && FVehicleData[tempv][FVFaction] != Faction[playerid]) return SysMsg(playerid, "Você não pode guardar armas de facção em um veiculo que não é de sua facção");
  11599. if(IsOwnedCar(tempv))
  11600. {
  11601. mysql_format(conn, mquery, sizeof(mquery), "SELECT id FROM weapons WHERE TrunkID = %i AND Deleted = 0 AND Dropped = 0", VehicleData[tempv][VehSQLID]);
  11602. new Cache:result = mysql_query(conn, mquery);
  11603. if(cache_num_rows() >= GetVehicleTrunkLimit(VehicleData[tempv][IdVehicle])) return SysMsg(playerid, "Não há mais espaço nesse porta-malas.") && cache_delete(result);
  11604. cache_delete(result);
  11605. format(trunkstring, sizeof(trunkstring),"* %s guarda alguma coisa no porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv));
  11606. mysql_format(conn, mquery, sizeof(mquery), "UPDATE weapons SET TrunkID = %i, WeaponPossession = 0, WeaponAmmo = %i WHERE id = %i", VehicleData[tempv][VehSQLID], WeaponData[playerid][Slot][WeaponAmmo], WeaponData[playerid][Slot][WeaponID]);
  11607. mysql_pquery(conn, mquery);
  11608. ResetWeaponVariables(playerid, 0, Slot);
  11609. }
  11610. else if(IsFactionVehicle(tempv))
  11611. {
  11612. if(WeaponData[playerid][Slot][WeaponOrigin] == 3 && IsFactionVehicle(FVehicleData[tempv][FactionVehID]) != Faction[playerid]) return SysMsg(playerid, "Você não pode guardar armas de facção em um veiculo que não é de sua facção");
  11613. mysql_format(conn, mquery, sizeof(mquery), "SELECT id FROM weapons WHERE FCarID = %i AND Gunrack = -1 AND Deleted = 0 AND Dropped = 0", FVehicleData[tempv][FVSQLID]);
  11614. new Cache:result = mysql_query(conn, mquery);
  11615. if(cache_num_rows() >= GetVehicleTrunkLimit(FVehicleData[tempv][FactionVehID])) return SysMsg(playerid, "Não há mais espaço nesse porta-malas.") && cache_delete(result);
  11616. cache_delete(result);
  11617. format(trunkstring, sizeof(trunkstring),"* %s guarda alguma coisa no porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv));
  11618. mysql_format(conn, mquery, sizeof(mquery), "UPDATE weapons SET FCarID = %i, WeaponPossession = 0, WeaponAmmo = %i WHERE id = %i", FVehicleData[tempv][FVSQLID], WeaponData[playerid][Slot][WeaponAmmo], WeaponData[playerid][Slot][WeaponID]);
  11619. mysql_pquery(conn, mquery);
  11620. ResetWeaponVariables(playerid, 0, Slot);
  11621. }
  11622. ResetWeaponVariables(playerid, 0, Slot);
  11623. SyncPlayerWeapons(playerid);
  11624. if(wid == 2) UnlockAchievement(playerid, 35);
  11625. ApplyTrunkAnimation(playerid);
  11626. SetPlayerChatBubble(playerid, trunkstring, COLOR_EMOTE, 15.0, 5000);
  11627. format(trunkstring, sizeof(trunkstring),"Você guardou um celular %s no porta-malas deste veiuclo.",GetWeaponNameFromID(wid));
  11628. SendClientMessage(playerid,COLOR_DARKBLUE,trunkstring);
  11629. return true;
  11630. }
  11631. else if(strcmp("celular", Item, true) == 0)
  11632. {
  11633. if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid, "Você precisa ter um celular para guardar.");
  11634. if(IsPhoneRinging[playerid] == 1) return SysMsg(playerid,"Você não pode guardar um celular tocando.");
  11635. if(CallerID[playerid] != -1 || CallerService[playerid] != -1) return SysMsg(playerid,"Você não pode guardar um celular se ainda estiver usando ele.");
  11636. new phoneid = PhoneData[playerid][pID];
  11637. if(IsFactionVehicle(tempv))
  11638. {
  11639. FVehicleData[tempv][FTrunkPhone] = phoneid;
  11640. mysql_format(conn, mquery, sizeof(mquery), "UPDATE fveh SET TrunkPhone = %i WHERE id = %i", phoneid, FVehicleData[tempv][FVSQLID]);
  11641. mysql_tquery(conn, mquery);
  11642. }
  11643. else
  11644. {
  11645. VehicleData[tempv][TrunkPhone] = phoneid;
  11646. mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET TrunkPhone = %i WHERE id = %i", phoneid, VehicleData[tempv][VehSQLID]);
  11647. mysql_tquery(conn, mquery);
  11648. }
  11649. ClearPhoneData(playerid);
  11650. mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET PhonePossession = 0 WHERE id = %i", phoneid);
  11651. mysql_tquery(conn, mquery);
  11652. format(trunkstring, sizeof(trunkstring),"* %s guarda um celular no porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv));
  11653. SetPlayerChatBubble(playerid, trunkstring, COLOR_EMOTE, 15.0, 5000);
  11654. ApplyTrunkAnimation(playerid);
  11655. SendClientMessage(playerid,COLOR_DARKBLUE,"Você guardou um celular no porta-malas do veiculo.");
  11656. return true;
  11657. }
  11658. }
  11659. else if(strcmp("pegar",Method,true) == 0)
  11660. {
  11661. if(strmatch(Item, "None")) return SysMsg(playerid,"Use: /portamalas pegar [item] [quantidade(nome da arma)], Itens: dinheiro, colete, marijuana, cocaina, moonshine, arma");
  11662. if(strcmp("dinheiro",Item,true) == 0)
  11663. {
  11664. if(strmatch(Amount, "None")) return SysMsg(playerid,"Use: /portamalas pegar dinheiro [Quantidade $]");
  11665. if(!IsNumeric(Amount)) return SysMsg(playerid,"Quantidade inválida.");
  11666. if(strval(Amount) < 1 || strval(Amount) > 100000) return SysMsg(playerid,"Você pode pegar no máximo $100,000.");
  11667. if(IsOwnedCar(tempv))
  11668. {
  11669. if(strval(Amount) > VehicleData[tempv][TrunkCash]) return SysMsg(playerid,"Esse veiculo não tem essa quantidade de dinheiro no porta-malas.");
  11670. VehicleData[tempv][TrunkCash] -= strval(Amount);
  11671. MySQLUpdateInt(VehicleData[tempv][VehSQLID], "TrunkCash", VehicleData[tempv][TrunkCash], "vehicles");
  11672. }
  11673. else if(IsFactionVehicle(tempv))
  11674. {
  11675. if(strval(Amount) > FVehicleData[tempv][FTrunkCash]) return SysMsg(playerid,"Esse veiculo não tem essa quantidade de dinheiro no porta-malas.");
  11676. FVehicleData[tempv][FTrunkCash] -= strval(Amount);
  11677. MySQLUpdateInt(FVehicleData[tempv][FVSQLID], "TrunkCash", FVehicleData[tempv][FTrunkCash], "fveh");
  11678. }
  11679. GivePlayerCash(playerid, strval(Amount));
  11680. ApplyTrunkAnimation(playerid);
  11681. format(trunkstring, sizeof(trunkstring),"Você pegou $%s do porta-malas do veiculo.",format_cash(strval(Amount)));
  11682. SendClientMessage(playerid,COLOR_DARKBLUE,trunkstring);
  11683. format(trunkstring, sizeof(trunkstring),"* %s pegou alguma coisa do porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv));
  11684. SetPlayerChatBubble(playerid, trunkstring, COLOR_EMOTE, 15.0, 5000);
  11685. format(trunkstring, sizeof(trunkstring),"[%s] %s(%i) pegou $%i do porta-malas.", GetServerTimeString(), NameEx(playerid), playerid, strval(Amount));
  11686. AddToLog("cash", trunkstring);
  11687. }
  11688. else if(strcmp("colete",Item,true) == 0 || strcmp("coletes",Item,true) == 0)
  11689. {
  11690. if(IsOwnedCar(tempv))
  11691. {
  11692. mysql_format(conn, mquery, sizeof(mquery), "SELECT id, ArmorType, ArmorAmount FROM storedarmor WHERE TrunkID = %i", VehicleData[tempv][VehSQLID]);
  11693. mysql_pquery(conn, mquery, "ShowStoredArmor", "dd", playerid, 2);
  11694. }
  11695. else if(IsFactionVehicle(tempv) && IsGovTrunk(tempv))
  11696. {
  11697. if(HasGovTrunkAccess(playerid, tempv))
  11698. {
  11699. mysql_format(conn, mquery, sizeof(mquery), "SELECT id, ArmorType, ArmorAmount FROM storedarmor WHERE FCarID = %i", FVehicleData[tempv][FVSQLID]);
  11700. mysql_pquery(conn, mquery, "ShowStoredArmor", "dd", playerid, 2);
  11701. }
  11702. else return SysMsg(playerid, "Você não pode pegar colete de veiculos do governo.");
  11703. }
  11704. else if(IsFactionVehicle(tempv) && !IsGovTrunk(tempv))
  11705. {
  11706. mysql_format(conn, mquery, sizeof(mquery), "SELECT id, ArmorType, ArmorAmount FROM storedarmor WHERE FCarID = %i", FVehicleData[tempv][FVSQLID]);
  11707. mysql_pquery(conn, mquery, "ShowStoredArmor", "dd", playerid, 2);
  11708. }
  11709. }
  11710. else if(strcmp("arma",Item,true) == 0 || strcmp("armas",Item,true) == 0)
  11711. {
  11712. if(strmatch(Amount, "None")) return SysMsg(playerid,"Use: /portamalas Pegar Arma [Nome da arma]");
  11713. new wid = GetWeaponIdFromName(Amount);
  11714. if(wid == -1) return SysMsg(playerid,"Nome da arma inválida.");
  11715. if(wid < 1 || wid > 47) return SysMsg(playerid,"Arma inválida.");
  11716. if(wid == 19 || wid == 20 || wid == 21) return SysMsg(playerid,"Arma inválida.");
  11717. new Slot = GetWeaponSlot(wid);
  11718. if(WeaponData[playerid][Slot][Weapon] != 0) return SysMsg(playerid,"Você já possui uma arma desse tipo.");
  11719. if(IsOwnedCar(tempv))
  11720. {
  11721. if(VehicleData[tempv][VehSQLID] >= 1)
  11722. {
  11723. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM weapons WHERE TrunkID = %i AND WeaponID = %i AND Deleted = 0 AND FCarID = -1 AND Gunrack = -1 AND WeaponPossession = 0 AND HouseID = -1 AND Dropped = 0", VehicleData[tempv][VehSQLID], wid);
  11724. new Cache:result = mysql_query(conn, mquery);
  11725. if(cache_num_rows() == 0)
  11726. {
  11727. SysMsg(playerid, "Essa arma não esta em seu porta-malas.");
  11728. cache_delete(result);
  11729. return true;
  11730. }
  11731. else
  11732. {
  11733. WeaponData[playerid][Slot][WeaponID] = cache_get_field_content_int(0, "id");
  11734. WeaponData[playerid][Slot][WeaponTimestamp] = cache_get_field_content_int(0, "Timestamp");
  11735. WeaponData[playerid][Slot][wCreatorSQLID] = cache_get_field_content_int(0, "CreatorSQLID");
  11736. WeaponData[playerid][Slot][Weapon] = cache_get_field_content_int(0, "WeaponID");
  11737. WeaponData[playerid][Slot][wOwnerSQLID] = cache_get_field_content_int(0, "OwnerSQLID");
  11738. WeaponData[playerid][Slot][WeaponAmmo] = cache_get_field_content_int(0, "WeaponAmmo");
  11739. WeaponData[playerid][Slot][WeaponType] = GetWeaponType(WeaponData[playerid][Slot][Weapon]);
  11740. WeaponData[playerid][Slot][WeaponOrigin] = cache_get_field_content_int(0, "WeaponOrigin");
  11741. WeaponData[playerid][Slot][WeaponPossession] = cache_get_field_content_int(0, "WeaponPossession");
  11742. }
  11743. cache_delete(result);
  11744. mysql_format(conn, mquery, sizeof(mquery), "UPDATE weapons SET TrunkID = -1, WeaponPossession = 1, OwnerSQLID = %i WHERE id = %i", SQLID[playerid], WeaponData[playerid][Slot][WeaponID]);
  11745. mysql_pquery(conn, mquery);
  11746. }
  11747. else return SysMsg(playerid, "Ocorreu um Erro, contate um admin.");
  11748. }
  11749. else if(IsFactionVehicle(tempv) && IsGovTrunk(tempv))
  11750. {
  11751. if(HasGovTrunkAccess(playerid, tempv))
  11752. {
  11753. if(FVehicleData[tempv][FVSQLID] >= 1)
  11754. {
  11755. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM weapons WHERE FCarID = %i AND Gunrack = -1 AND WeaponID = %i AND Deleted = 0 AND TrunkID = -1 AND WeaponPossession = 0 AND HouseID = -1 AND Dropped = 0", FVehicleData[tempv][FVSQLID], wid);
  11756. new Cache:result = mysql_query(conn, mquery);
  11757. if(cache_num_rows() == 0)
  11758. {
  11759. SysMsg(playerid, "Essa arma não esta em seu porta-malas.");
  11760. cache_delete(result);
  11761. return true;
  11762. }
  11763. else
  11764. {
  11765. WeaponData[playerid][Slot][WeaponID] = cache_get_field_content_int(0, "id");
  11766. WeaponData[playerid][Slot][WeaponTimestamp] = cache_get_field_content_int(0, "Timestamp");
  11767. WeaponData[playerid][Slot][wCreatorSQLID] = cache_get_field_content_int(0, "CreatorSQLID");
  11768. WeaponData[playerid][Slot][Weapon] = cache_get_field_content_int(0, "WeaponID");
  11769. WeaponData[playerid][Slot][wOwnerSQLID] = cache_get_field_content_int(0, "OwnerSQLID");
  11770. WeaponData[playerid][Slot][WeaponAmmo] = cache_get_field_content_int(0, "WeaponAmmo");
  11771. WeaponData[playerid][Slot][WeaponType] = GetWeaponType(WeaponData[playerid][Slot][Weapon]);
  11772. WeaponData[playerid][Slot][WeaponOrigin] = cache_get_field_content_int(0, "WeaponOrigin");
  11773. WeaponData[playerid][Slot][WeaponPossession] = cache_get_field_content_int(0, "WeaponPossession");
  11774. }
  11775. cache_delete(result);
  11776. mysql_format(conn, mquery, sizeof(mquery), "UPDATE weapons SET FCarID = -1, WeaponPossession = 1, OwnerSQLID = %i WHERE id = %i", SQLID[playerid], WeaponData[playerid][Slot][WeaponID]);
  11777. mysql_pquery(conn, mquery);
  11778. }
  11779. else return SysMsg(playerid, "Ocorreu um Erro, contate um admin.");
  11780. }
  11781. else return SysMsg(playerid, "Você não pode pegar armas de porta-malas de veiculos do governo.");
  11782. }
  11783. else if(IsFactionVehicle(tempv) && !IsGovTrunk(tempv))
  11784. {
  11785. if(FVehicleData[tempv][FVSQLID] >= 1)
  11786. {
  11787. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM weapons WHERE FCarID = %i AND Gunrack = -1 AND WeaponID = %i AND Deleted = 0 AND TrunkID = -1 AND WeaponPossession = 0 AND HouseID = -1 AND Dropped = 0", FVehicleData[tempv][FVSQLID], wid);
  11788. new Cache:result = mysql_query(conn, mquery);
  11789. if(cache_num_rows() == 0)
  11790. {
  11791. SysMsg(playerid, "Essa arma não esta em seu porta-malas.");
  11792. cache_delete(result);
  11793. return true;
  11794. }
  11795. else
  11796. {
  11797. WeaponData[playerid][Slot][WeaponID] = cache_get_field_content_int(0, "id");
  11798. WeaponData[playerid][Slot][WeaponTimestamp] = cache_get_field_content_int(0, "Timestamp");
  11799. WeaponData[playerid][Slot][wCreatorSQLID] = cache_get_field_content_int(0, "CreatorSQLID");
  11800. WeaponData[playerid][Slot][Weapon] = cache_get_field_content_int(0, "WeaponID");
  11801. WeaponData[playerid][Slot][wOwnerSQLID] = cache_get_field_content_int(0, "OwnerSQLID");
  11802. WeaponData[playerid][Slot][WeaponAmmo] = cache_get_field_content_int(0, "WeaponAmmo");
  11803. WeaponData[playerid][Slot][WeaponType] = GetWeaponType(WeaponData[playerid][Slot][Weapon]);
  11804. WeaponData[playerid][Slot][WeaponOrigin] = cache_get_field_content_int(0, "WeaponOrigin");
  11805. WeaponData[playerid][Slot][WeaponPossession] = cache_get_field_content_int(0, "WeaponPossession");
  11806. }
  11807. cache_delete(result);
  11808. mysql_format(conn, mquery, sizeof(mquery), "UPDATE weapons SET FCarID = -1, WeaponPossession = 1, OwnerSQLID = %i WHERE id = %i", SQLID[playerid], WeaponData[playerid][Slot][WeaponID]);
  11809. mysql_pquery(conn, mquery);
  11810. }
  11811. else return SysMsg(playerid, "Ocorreu um Erro, contate um admin.");
  11812. }
  11813. ApplyTrunkAnimation(playerid);
  11814. format(trunkstring, sizeof(trunkstring),"Você pegou uma %s do porta-malas do %s.",GetWeaponNameFromID(wid),GetVehicleName(tempv));
  11815. SendClientMessage(playerid,COLOR_DARKBLUE,trunkstring);
  11816. format(trunkstring, sizeof(trunkstring),"* %s pegou alguma coisa do porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv));
  11817. SetPlayerChatBubble(playerid, trunkstring, COLOR_EMOTE, 15.0, 5000);
  11818. SyncPlayerWeapons(playerid);
  11819. return true;
  11820. }
  11821. else if(strcmp("Marijuana",Item,true) == 0)
  11822. {
  11823. if(strmatch(Amount, "None")) return SysMsg(playerid,"Use: /portamalas Pega Marijuana [Quantidade]");
  11824. if(!IsNumeric(Amount)) return SysMsg(playerid,"Quantidade inválida.");
  11825. if(IsOwnedCar(tempv))
  11826. {
  11827. if(strval(Amount) < 1 || strval(Amount) > VehicleData[tempv][TrunkWeed]) return SysMsg(playerid,"Você deve ter pelo menos 1 e não mais do que o que está no porta-malas.");
  11828. if(Inventory[playerid][Weed] + strval(Amount) > DRUG_MAX_WEED) return SysMsg(playerid,"Você não pode carregar essa quantidade de Marijuana.");
  11829. VehicleData[tempv][TrunkWeed] -= strval(Amount);
  11830. MySQLUpdateInt(VehicleData[tempv][VehSQLID], "TrunkWeed", VehicleData[tempv][TrunkWeed], "vehicles");
  11831. }
  11832. else if(IsFactionVehicle(tempv))
  11833. {
  11834. if(strval(Amount) < 1 || strval(Amount) > FVehicleData[tempv][FTrunkWeed]) return SysMsg(playerid,"Você deve ter pelo menos 1 e não mais do que o que está no porta-malas.");
  11835. if(Inventory[playerid][Weed] + strval(Amount) > DRUG_MAX_WEED) return SysMsg(playerid,"Você não pode carregar essa quantidade de Marijuana.");
  11836. FVehicleData[tempv][FTrunkWeed] -= strval(Amount);
  11837. MySQLUpdateInt(FVehicleData[tempv][FVSQLID], "TrunkWeed", FVehicleData[tempv][FTrunkWeed], "fveh");
  11838. }
  11839. Inventory[playerid][Weed] += strval(Amount);
  11840. MySQLUpdateInt(SQLID[playerid], "Weed", Inventory[playerid][Weed], "players");
  11841. ApplyTrunkAnimation(playerid);
  11842. format(trunkstring, sizeof(trunkstring),"Você pegou %i gramas de Marijuana do porta-malas.",strval(Amount));
  11843. SendClientMessage(playerid,COLOR_DARKBLUE,trunkstring);
  11844. format(trunkstring, sizeof(trunkstring),"* %s pegou alguma coisa do porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv));
  11845. SetPlayerChatBubble(playerid, trunkstring, COLOR_EMOTE, 15.0, 5000);
  11846. return true;
  11847. }
  11848. else if(strcmp("Cocaina",Item,true) == 0)
  11849. {
  11850. if(strmatch(Amount, "None")) return SysMsg(playerid,"Use: /portamalas pegar Cocaina [Quantidade]");
  11851. if(!IsNumeric(Amount)) return SysMsg(playerid,"Quantidade inválida.");
  11852. if(IsOwnedCar(tempv))
  11853. {
  11854. if(strval(Amount) < 1 || strval(Amount) > VehicleData[tempv][TrunkCocaine]) return SysMsg(playerid,"Você deve ter pelo menos 1 e não mais do que o que está no porta-malas.");
  11855. if(Inventory[playerid][Cocaine] + strval(Amount) > DRUG_MAX_COCAINE) return SysMsg(playerid,"Você não pode carregar muita cocaína.");
  11856. VehicleData[tempv][TrunkCocaine] -= strval(Amount);
  11857. MySQLUpdateInt(VehicleData[tempv][VehSQLID], "TrunkCocaine", VehicleData[tempv][TrunkCocaine], "vehicles");
  11858. }
  11859. else if(IsFactionVehicle(tempv))
  11860. {
  11861. if(strval(Amount) < 1 || strval(Amount) > FVehicleData[tempv][FTrunkCocaine]) return SysMsg(playerid,"Você deve ter pelo menos 1 e não mais do que o que está no porta-malas.");
  11862. if(Inventory[playerid][Cocaine] + strval(Amount) > DRUG_MAX_COCAINE) return SysMsg(playerid,"Você não pode carregar muita cocaína.");
  11863. FVehicleData[tempv][FTrunkCocaine] -= strval(Amount);
  11864. MySQLUpdateInt(FVehicleData[tempv][FVSQLID], "TrunkCocaine", FVehicleData[tempv][FTrunkCocaine], "fveh");
  11865. }
  11866. Inventory[playerid][Cocaine] += strval(Amount);
  11867. MySQLUpdateInt(SQLID[playerid], "Cocaine", Inventory[playerid][Cocaine], "players");
  11868. ApplyTrunkAnimation(playerid);
  11869. format(trunkstring, sizeof(trunkstring),"Você pegou %i gramas de Cocaina do porta-malas do veiculo.",strval(Amount));
  11870. SendClientMessage(playerid,COLOR_DARKBLUE,trunkstring);
  11871. format(trunkstring, sizeof(trunkstring),"* %s pegou alguma coisa do porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv));
  11872. SetPlayerChatBubble(playerid, trunkstring, COLOR_EMOTE, 15.0, 5000);
  11873. return true;
  11874. }
  11875. else if(strcmp("MoonShine",Item,true) == 0)
  11876. {
  11877. if(strmatch(Amount, "None")) return SysMsg(playerid,"Use: /portamalas pegar Moonshine [Quantidade]");
  11878. if(!IsNumeric(Amount)) return SysMsg(playerid,"Quantidade inválida.");
  11879. if(IsOwnedCar(tempv))
  11880. {
  11881. if(strval(Amount) < 1 || strval(Amount) > VehicleData[tempv][TrunkMoonShine]) return SysMsg(playerid,"Você deve ter pelo menos 1 e não mais do que o que está no porta-malas.");
  11882. if(Inventory[playerid][MoonShine] + strval(Amount) > DRUG_MAX_MOONSHINE) return SysMsg(playerid,"Você não pode carregar mooonshine.");
  11883. VehicleData[tempv][TrunkMoonShine] -= strval(Amount);
  11884. MySQLUpdateInt(VehicleData[tempv][VehSQLID], "TrunkMoonShine", VehicleData[tempv][TrunkMoonShine], "vehicles");
  11885. }
  11886. else if(IsFactionVehicle(tempv))
  11887. {
  11888. if(strval(Amount) < 1 || strval(Amount) > FVehicleData[tempv][FTrunkMoonShine]) return SysMsg(playerid,"Você deve ter pelo menos 1 e não mais do que o que está no porta-malas.");
  11889. if(Inventory[playerid][MoonShine] + strval(Amount) > DRUG_MAX_MOONSHINE) return SysMsg(playerid,"Você não pode carregar mooonshine.");
  11890. FVehicleData[tempv][FTrunkMoonShine] -= strval(Amount);
  11891. MySQLUpdateInt(FVehicleData[tempv][FVSQLID], "TrunkMoonShine", FVehicleData[tempv][FTrunkMoonShine], "fveh");
  11892. }
  11893. Inventory[playerid][MoonShine] += strval(Amount);
  11894. MySQLUpdateInt(SQLID[playerid], "MoonShine", Inventory[playerid][MoonShine], "players");
  11895. ApplyTrunkAnimation(playerid);
  11896. format(trunkstring, sizeof(trunkstring),"You have got %i litro(s) de MoonShine from the trunk.",strval(Amount));
  11897. SendClientMessage(playerid,COLOR_DARKBLUE,trunkstring);
  11898. format(trunkstring, sizeof(trunkstring),"* %s pegou alguma coisa do porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv));
  11899. SetPlayerChatBubble(playerid, trunkstring, COLOR_EMOTE, 15.0, 5000);
  11900. return true;
  11901. }
  11902. else if(strcmp("Celular", Item, true) == 0)
  11903. {
  11904. if(Inventory[playerid][MobilePhone] == 1) return SysMsg(playerid, "Você já tem um celular em seu inventário.");
  11905. new phoneid;
  11906. if(IsFactionVehicle(tempv))
  11907. {
  11908. if(FVehicleData[tempv][FTrunkPhone] == 0) return SysMsg(playerid, "Não há nenhum celular guardado nesse veiculo.");
  11909. mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET PhonePossession = 1, PhonePossessor = %i WHERE id = %i", SQLID[playerid], FVehicleData[tempv][FTrunkPhone]);
  11910. mysql_tquery(conn, mquery);
  11911. mysql_format(conn, mquery, sizeof(mquery), "UPDATE fveh SET TrunkPhone = 0 WHERE id = %i", FVehicleData[tempv][FVSQLID]);
  11912. mysql_tquery(conn, mquery);
  11913. FVehicleData[tempv][FTrunkPhone] = 0;
  11914. }
  11915. if(IsOwnedCar(tempv))
  11916. {
  11917. if(VehicleData[tempv][TrunkPhone] == 0) return SysMsg(playerid, "Não há nenhum celular guardado nesse veiculo.");
  11918. mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET PhonePossession = 1, PhonePossessor = %i WHERE id = %i", SQLID[playerid], VehicleData[tempv][TrunkPhone]);
  11919. mysql_tquery(conn, mquery);
  11920. mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET TrunkPhone = 0 WHERE id = %i", VehicleData[tempv][VehSQLID]);
  11921. mysql_tquery(conn, mquery);
  11922. VehicleData[tempv][TrunkPhone] = 0;
  11923. }
  11924. ApplyTrunkAnimation(playerid);
  11925. SendClientMessage(playerid,COLOR_DARKBLUE,"Você pegou um celular do porta-malas do veiculo.");
  11926. format(trunkstring, sizeof(trunkstring),"* %s pega um celular do porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv));
  11927. SetPlayerChatBubble(playerid, trunkstring, COLOR_EMOTE, 15.0, 5000);
  11928. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM phones WHERE id = %i AND PhonePossession = 1", phoneid);
  11929. mysql_tquery(conn, mquery, "LoadPlayerPhone", "d", playerid);
  11930. return true;
  11931. }
  11932. }
  11933. else if(strcmp("mostrar",Method,true) == 0)
  11934. {
  11935. if(IsOwnedCar(tempv))
  11936. {
  11937. SendClientMessageF(playerid,COLOR_DARKBLUE, "[Porta-malas] Dinheiro: $%s | Marijuana: %ig | Cocaina: %ig | MoonShine: %i L.", format_cash(VehicleData[tempv][TrunkCash]), VehicleData[tempv][TrunkWeed], VehicleData[tempv][TrunkCocaine], VehicleData[tempv][TrunkMoonShine]);
  11938. SendClientMessage(playerid,COLOR_DARKBLUE, "[Porta-malas] Weapons: Use /portamalas verarmas | Colete: use /portamalas pegar colete.");
  11939. if(VehicleData[tempv][TrunkPhone] >= 1) SendClientMessageF(playerid, COLOR_DARKBLUE, "Não há nenhum celular guardado nesse veiculo.");
  11940. }
  11941. else if(IsFactionVehicle(tempv))
  11942. {
  11943. SendClientMessageF(playerid,COLOR_DARKBLUE, "[Porta-malas] Dinheiro: $%s | Marijuana: %ig | Cocaina: %ig | MoonShine: %i L.", format_cash(FVehicleData[tempv][FTrunkCash]), FVehicleData[tempv][FTrunkWeed], FVehicleData[tempv][FTrunkCocaine], FVehicleData[tempv][FTrunkMoonShine]);
  11944. SendClientMessage(playerid,COLOR_DARKBLUE, "[Porta-malas] Armas: Use /portamalas verarmas | Colete: use /portamalas pegar colete.");
  11945. if(FVehicleData[tempv][FTrunkPhone] >= 1) SendClientMessageF(playerid, COLOR_DARKBLUE, "Não há nenhum celular guardado nesse veiculo.");
  11946. }
  11947. format(trunkstring, sizeof(trunkstring),"* %s olha para dentro do porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv));
  11948. ProxDetector(15.0,playerid,trunkstring, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  11949. return true;
  11950. }
  11951. else if(strcmp("verarmas",Method,true) == 0)//viewguns
  11952. {
  11953. if(IsOwnedCar(tempv)) mysql_format(conn, mquery, sizeof(mquery), "SELECT id,WeaponID,WeaponAmmo FROM weapons WHERE TrunkID = %i AND Deleted = 0 AND WeaponPossession = 0 AND HouseID = -1 AND Gunrack = -1 AND FCarID = -1 AND Dropped = 0", VehicleData[tempv][VehSQLID]);
  11954. else mysql_format(conn, mquery, sizeof(mquery), "SELECT id,WeaponID,WeaponAmmo FROM weapons WHERE FCarID = %i AND Gunrack = -1 AND Deleted = 0 AND WeaponPossession = 0 AND TrunkID = -1 AND HouseID = -1 AND Dropped = 0", FVehicleData[tempv][FVSQLID]);
  11955. mysql_pquery(conn, mquery, "ShowTrunkGuns", "d", playerid);
  11956. return true;
  11957. }
  11958. }
  11959. else SysMsg(playerid, "Use: /portamalas [abrir/fechar/pegar/guardar/mostrar] [item] [quantidade], Itens: Dinheiro, colete, maconha, cocaina, moonshine, arma");
  11960. }
  11961. return true;
  11962. }
  11963. CMD:veiculodonate(playerid, params[])
  11964. {
  11965. if(!Logged{playerid}) return true;
  11966. new rewardCarModel;
  11967. MySQLFetchInt(SQLID[playerid], "DonationCarModel", rewardCarModel, "players");
  11968. if(rewardCarModel == 0) return SysMsg(playerid, "Você não tem um veiculo donate.");
  11969. mysql_format(conn, mquery, sizeof(mquery), "SELECT id FROM vehicles WHERE OwnerSQLID = %i", SQLID[playerid]);
  11970. mysql_pquery(conn, mquery, "ProcessDonationVehicle", "dd", playerid, rewardCarModel);
  11971. return true;
  11972. }
  11973. CMD:mudarevdonate(playerid, params[])
  11974. {
  11975. if(!Logged{playerid}) return true;
  11976. if(isnull(params)) return SysMsg(playerid, "Use: /mudarevdonate [veiculo model ou nome]");
  11977. if(IsDonator[playerid] < 3) return SysMsg(playerid, "Você precisa ser Donate level 3 ou 4.");
  11978. new vehicleid = GetPlayerVehicleID(playerid);
  11979. if(vehicleid == 0) return SysMsg(playerid,"Você não estar em nenhum veiculo.");
  11980. if(vehicleid == VehicleData[vehicleid][IdVehicle] && VehicleData[vehicleid][DonatorCar] && VehicleData[vehicleid][VehicleOwnerSQLID] == SQLID[playerid])
  11981. {
  11982. new Car = GetVehicleModelIdFromName(params);
  11983. if(Car == -1)
  11984. {
  11985. Car = strval(params);
  11986. if(Car < 400 || Car > 611) return SysMsg(playerid, "Veiculo ID inválido.");
  11987. }
  11988. mysql_format(conn, mquery, sizeof(mquery), "SELECT NextChangable FROM vehicles WHERE id = %i LIMIT 1", VehicleData[vehicleid][VehSQLID]);
  11989. mysql_pquery(conn, mquery, "SetCDV", "ddd", playerid, Car, vehicleid);
  11990. return true;
  11991. }
  11992. else SysMsg(playerid,"Você não é dono de um veiculo de Donate.");
  11993. return true;
  11994. }
  11995. CMD:mod(playerid, params[])
  11996. {
  11997. if(!Logged{playerid}) return true;
  11998. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você precisa estar dentro do veiculo.");
  11999. new bodyshop = -1, v = GetPlayerVehicleID(playerid);
  12000. if(IsPlayerInDynamicArea(playerid, GarageAreas[0])) bodyshop = 1; //palomino creek
  12001. if(IsPlayerInDynamicArea(playerid, GarageAreas[2])) bodyshop = 3; //fort carson
  12002. if(bodyshop == -1) return SysMsg(playerid, "Você deve estar na garagem de Fort Carson ou Palomino Creek para modificar seu veículo.");
  12003. if(VehicleData[v][Hotwired] == 1) return SysMsg(playerid, "Você não pode modificar um veículo roubado.");
  12004. if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você deve ser o motorista do veículo.");
  12005. if(IsHelicopter(v) || IsPlane(v) || IsBoat(v) || IsBike(v)) return SysMsg(playerid,"Você não pode modificar helicópteros, barcos, bicicletas ou aviões.");
  12006. if(VehicleData[v][VehicleOwnerSQLID] != SQLID[playerid]) return SysMsg(playerid, "Você deve ser dono do veículo para modificá-lo.");
  12007. if(aspawned{v}) return SysMsg(playerid, "Você não pode modificar veiculos Admin. Se você estiver usando este veículo sem autorização, por favor, chame um administrador ou ajudante para removê-lo.");
  12008. new Float:health;
  12009. GetVehicleHealth(v, health);
  12010. if(health <= 950) return SysMsg(playerid, "O seu veículo deve estar em boas condições para ser modificado.");
  12011. Dialog_Show(playerid, vModSelect, DIALOG_STYLE_MSGBOX, "Mod para veiculos", "Selecione o tipo de mod que você gostaria de adicionar ao seu veículo", "Lataria", "Rodas");
  12012. return true;
  12013. }
  12014. CMD:paintjob(playerid, params[])//observar
  12015. {
  12016. if(!Logged{playerid}) return true;
  12017. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você precisa estar dentro do veiculo.");
  12018. new bodyshop = -1, v = GetPlayerVehicleID(playerid);
  12019. if(IsPlayerInDynamicArea(playerid, GarageAreas[0])) bodyshop = 1; //palomino creek
  12020. if(IsPlayerInDynamicArea(playerid, GarageAreas[1])) bodyshop = 2; //dillimore
  12021. if(IsPlayerInDynamicArea(playerid, GarageAreas[2])) bodyshop = 3; //fort carson
  12022. if(IsPlayerInDynamicArea(playerid, GarageAreas[3])) bodyshop = 4; //el q
  12023. if(IsPlayerInDynamicArea(playerid, GarageAreas[6])) bodyshop = 5; //angel pine
  12024. if(bodyshop == -1) return SysMsg(playerid,"Você não esta em nenhuma garagem de reparação.");
  12025. if(VehicleData[v][Hotwired] == 1) return SysMsg(playerid, "Você não pode modificar um veículo roubado.");
  12026. if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você deve ser o motorista do veículo.");
  12027. if(IsHelicopter(v) || IsPlane(v) || IsBoat(v) || IsBike(v)) return SysMsg(playerid,"Você não pode modificar helicópteros, barcos, bicicletas ou aviões.");
  12028. if(bodyshop == 5 && (!IsHelicopter(v) && !IsPlane(v))) return SysMsg(playerid,"Você não pode modificar este veiculo nesta garagem.");
  12029. if(VehicleData[v][VehicleOwnerSQLID] != SQLID[playerid]) return SysMsg(playerid, "Você deve ser dono do veículo para modificá-lo.");
  12030. if(aspawned{v}) return SysMsg(playerid, "Você não pode modificar um veiculo spawnado por adminstrador.");
  12031. new Float:health;
  12032. GetVehicleHealth(v, health);
  12033. if(health <= 950) return SysMsg(playerid, "Seu veículo deve estar em boas condições para ser modificado.");
  12034. if(!IsNumeric(params)) return SysMsg(playerid, "Use: /paintjob [0-3] *0 irá remover qualquer pintura seu veículo tem.*");
  12035. new paintjob = strval(params);
  12036. if(paintjob < 0 || paintjob > 3) return SysMsg(playerid, "Pintura deve ser 0-3.");
  12037. if(!IsSuitablePaintjobCar(v)) SendSplitMessage(playerid, COLOR_RED, "Nota: Seu veículo atual não suporta pinturas. Você tem mod que não suporta pintura.");
  12038. if(paintjob != 0)
  12039. {
  12040. PendingPaintjob[playerid] = paintjob - 1;
  12041. ChangeVehiclePaintjob(v, paintjob - 1);
  12042. SendClientMessage(playerid, COLOR_WHITE, "Você adicionou uma nova "COL_NICEGREEN"pintura{FFFFFF} para sua lista de modificações.");
  12043. }
  12044. else
  12045. {
  12046. ChangeVehiclePaintjob(v, 3);
  12047. VehicleData[v][VehiclePaintjob] = 3;
  12048. SavePlayerVehicles(playerid, 0);
  12049. PendingPaintjob[playerid] = -1;
  12050. SendClientMessage(playerid, COLOR_WHITE, "Você removeu o "COL_NICERED"pintura{FFFFFF} do seu veiculo.");
  12051. }
  12052. return true;
  12053. }
  12054. CMD:limparmods(playerid, params[])//limparmods
  12055. {
  12056. if(!Logged{playerid}) return true;
  12057. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você precisa estar dentro do veiculo.");
  12058. new bodyshop = -1, v = GetPlayerVehicleID(playerid);
  12059. if(IsPlayerInDynamicArea(playerid, GarageAreas[0])) bodyshop = 1; //palomino creek
  12060. if(IsPlayerInDynamicArea(playerid, GarageAreas[1])) bodyshop = 2; //dillimore
  12061. if(IsPlayerInDynamicArea(playerid, GarageAreas[2])) bodyshop = 3; //fort carson
  12062. if(IsPlayerInDynamicArea(playerid, GarageAreas[3])) bodyshop = 4; //el q
  12063. if(bodyshop == -1) return SysMsg(playerid, "Você deve estar perto de uma garagem.");
  12064. new modcount = 0;
  12065. for(new x = 0; x < 14; x++) if(ModQueue[playerid][x] >= 1) modcount ++;
  12066. if(PendingPaintjob[playerid] != -1) modcount ++;
  12067. if(modcount == 0) return SysMsg(playerid, "Você não possui nenhuma instalação de mods no veiculo.");
  12068. new component;
  12069. for(new x = 0; x < 14; x++) //removes pending components from the vehicle and then re-adds saved mods
  12070. {
  12071. component = GetVehicleComponentInSlot(v, x);
  12072. if(component != 0) RemoveVehicleComponent(v, component);
  12073. if(VehicleData[v][VehicleMod][x] && IsVehicleUpgradeCompatible(VehicleData[v][VehicleModel], VehicleData[v][VehicleMod][x]))
  12074. {
  12075. AddVehicleComponent(VehicleData[v][IdVehicle], VehicleData[v][VehicleMod][x]);
  12076. }
  12077. ModQueue[playerid][x] = 0;
  12078. }
  12079. if(PendingPaintjob[playerid] != -1) ChangeVehiclePaintjob(v, 3);
  12080. PendingPaintjob[playerid] = -1;
  12081. return true;
  12082. }
  12083. CMD:comprarmods(playerid, params[])//comprarmods
  12084. {
  12085. if(!Logged{playerid}) return true;
  12086. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você precisa estar dentro do veiculo.");
  12087. new bodyshop = -1, v = GetPlayerVehicleID(playerid);
  12088. if(IsPlayerInDynamicArea(playerid, GarageAreas[0])) bodyshop = 1; //palomino creek
  12089. if(IsPlayerInDynamicArea(playerid, GarageAreas[1])) bodyshop = 2; //dillimore
  12090. if(IsPlayerInDynamicArea(playerid, GarageAreas[2])) bodyshop = 3; //fort carson
  12091. if(IsPlayerInDynamicArea(playerid, GarageAreas[3])) bodyshop = 4; //el q
  12092. if(bodyshop == -1) return SysMsg(playerid, "Você deve estar perto de uma garagem.");
  12093. new modcount = 0;
  12094. for(new x = 0; x < 14; x++) if(ModQueue[playerid][x] >= 1) modcount ++;
  12095. if(PendingPaintjob[playerid] != -1) modcount ++;
  12096. if(modcount == 0) return SysMsg(playerid, "Você não tem nenhum mods pendente instalação.");
  12097. new
  12098. price,
  12099. spoiler = ModQueue[playerid][CARMODTYPE_SPOILER],
  12100. hood = ModQueue[playerid][CARMODTYPE_HOOD],
  12101. roof = ModQueue[playerid][CARMODTYPE_ROOF],
  12102. lamps = ModQueue[playerid][CARMODTYPE_LAMPS],
  12103. exhaust = ModQueue[playerid][CARMODTYPE_EXHAUST],
  12104. wheels = ModQueue[playerid][CARMODTYPE_WHEELS],
  12105. fbumper = ModQueue[playerid][CARMODTYPE_FRONT_BUMPER],
  12106. rbumper = ModQueue[playerid][CARMODTYPE_REAR_BUMPER],
  12107. rvent = ModQueue[playerid][CARMODTYPE_VENT_RIGHT],
  12108. lvent = ModQueue[playerid][CARMODTYPE_VENT_LEFT];
  12109. if(spoiler >= 1000) price += 750;
  12110. if(hood >= 1000) price += 500;
  12111. if(roof >= 1000) price += 500;
  12112. if(lamps>= 1000) price += 200;
  12113. if(exhaust>= 1000) price += 500;
  12114. if(wheels >= 1000) price += 500;
  12115. if(fbumper >= 1000) price += 1000;
  12116. if(rbumper >= 1000) price += 1000;
  12117. if(rvent >= 1000) price += 1000;
  12118. if(lvent >= 1000) price += 1000;
  12119. if(PendingPaintjob[playerid] != -1) price += 1000;
  12120. price *= GetVehicleRepairMultiplier(GetVehicleModel(v));
  12121. new conf[12];
  12122. if(sscanf(params, "s[12]", conf)) return SendClientMessageF(playerid, COLOR_WHITE, "Use: /comprarmods confirmar. Isso irá custar $%s.", format_cash(price));
  12123. if(strmatch(conf, "confirmar"))
  12124. {
  12125. if(Cash[playerid] - price < 0) return SysMsg(playerid, "Você não tem dinheiro suficiente.");
  12126. for(new x = 0; x < 14; x++)
  12127. {
  12128. if(ModQueue[playerid][x] != 0)
  12129. {
  12130. VehicleData[v][VehicleMod][x] = ModQueue[playerid][x];
  12131. ModQueue[playerid][x] = 0;
  12132. }
  12133. }
  12134. if(PendingPaintjob[playerid] != -1) VehicleData[v][VehiclePaintjob] = PendingPaintjob[playerid];
  12135. PendingPaintjob[playerid] = -1;
  12136. GivePlayerCash(playerid, -price);
  12137. SendClientMessageF(playerid, COLOR_WHITE, "Você adicionou mods no seu veiculo por $%s!", format_cash(price));
  12138. SavePlayerVehicles(playerid, 0);
  12139. }
  12140. return true;
  12141. }
  12142. CMD:removemods(playerid)
  12143. {
  12144. if(!Logged{playerid}) return true;
  12145. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você precisa estar dentro do veiculo.");
  12146. new bodyshop = -1, v = GetPlayerVehicleID(playerid);
  12147. if(IsPlayerInDynamicArea(playerid, GarageAreas[0])) bodyshop = 1; //palomino creek
  12148. if(IsPlayerInDynamicArea(playerid, GarageAreas[1])) bodyshop = 2; //dillimore
  12149. if(IsPlayerInDynamicArea(playerid, GarageAreas[2])) bodyshop = 3; //fort carson
  12150. if(IsPlayerInDynamicArea(playerid, GarageAreas[3])) bodyshop = 4; //el q
  12151. if(bodyshop == -1) return SysMsg(playerid, "Você deve estar perto de uma garagem.");
  12152. if(VehicleData[v][Hotwired] == 1) return SysMsg(playerid, "Você não pode modificar um veiculo roubado.");
  12153. if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você deve ser o motorista do veículo.");
  12154. if(IsHelicopter(v) && IsPlane(v) && IsBoat(v) && IsBike(v)) return SysMsg(playerid,"Você não pode modificar Helicopteros, Aviões, Barcos.");
  12155. if(bodyshop == 5) return SysMsg(playerid,"Você não pode modificar veículos nesta garagem.");
  12156. if(VehicleData[v][VehicleOwnerSQLID] != SQLID[playerid]) return SysMsg(playerid, "Você deve ser dono deste veiculo.");
  12157. if(aspawned{v}) return SysMsg(playerid, "Você não pode modificar os veículos spawnados pela administração, ou fazer isso sem autorização de um Helper/Admin.");
  12158. gstr[0] = EOS;
  12159. new count = 0;
  12160. for(new x = 0; x < 14; x++)
  12161. {
  12162. if(ModQueue[playerid][x] != 0)
  12163. {
  12164. format(sgstr, sizeof(sgstr), "{FF0000}%s: %s\n", ComponentTypes[x], GetVehicleModName(GetVehicleComponentInSlot(v, x)));
  12165. strcat(gstr, sgstr);
  12166. count ++;
  12167. }
  12168. else if(VehicleData[v][VehicleMod][x] != 0)
  12169. {
  12170. format(sgstr, sizeof(sgstr), "%s: %s\n", ComponentTypes[x], GetVehicleModName(GetVehicleComponentInSlot(v, x)));
  12171. strcat(gstr, sgstr);
  12172. count ++;
  12173. }
  12174. }
  12175. if(count == 0) return SysMsg(playerid, "Sem mods para remover.");
  12176. else Dialog_Show(playerid, vModRemove, DIALOG_STYLE_LIST, "Remoção de Mod: Vermelho = Pendente | Branco = Instalado", gstr, "Remove", "Cancelar");
  12177. return true;
  12178. }
  12179. //End of vehicle commands
  12180. //Weapon crate commands
  12181. CMD:caixa(playerid, params[])
  12182. {
  12183. new item[12], item2[12];
  12184. if(sscanf(params, "s[12]S()[12]", item, item2)) return SysMsg(playerid,"Use: /caixa [/pegar/colocar/remover/chão/dropar/destruir/lista/ajuda]");
  12185. new x = 0;
  12186. if(strmatch(item, "lista"))
  12187. {
  12188. for(x = 0; x < MAX_FACTIONS; x++)
  12189. {
  12190. if(IsPlayerInRangeOfPoint(playerid, 5.0, CrateData[x][CrateX], CrateData[x][CrateY], CrateData[x][CrateZ]))
  12191. {
  12192. SendClientMessage(playerid, COLOR_WHITE, "[CONTEÚDO DA CAIXA]");
  12193. for(new k = 0; k < 5; k++)
  12194. {
  12195. if(CrateData[x][CrateWeapon][k] == 0) SendClientMessageF(playerid, COLOR_WHITE, "Slot %i: Vazio", k);
  12196. else SendClientMessageF(playerid, COLOR_WHITE, "Slot %i: %s", k, GetWeaponNameFromID(CrateData[x][CrateWeapon][k]));
  12197. }
  12198. return true;
  12199. }
  12200. }
  12201. return SysMsg(playerid, "Você não está perto de uma caixa.");
  12202. }
  12203. else if(strmatch(item, "colocar"))
  12204. {
  12205. if(CarryingCrate[playerid] == 0) return SysMsg(playerid, "You are not carrying a crate.");
  12206. new v = GetNearestVehicle(playerid);
  12207. if(!IsCrateVehicle(v)) return SysMsg(playerid, "You are not near a suitable vehicle.");
  12208. if(VehicleBoots[v][1] == 0 && !IsBoat(v)) return SysMsg(playerid, "This vehicle's trunk must be open.");
  12209. if(Crate{v}) return SysMsg(playerid, "Esse veiculo já tem uma caixa dentro.");
  12210. new Float:pos[3];
  12211. GetVehiclePos(v, pos[0], pos[1], pos[2]);
  12212. if(!IsPlayerInRangeOfPoint(playerid, 5.0, pos[0], pos[1], pos[2])) return SysMsg(playerid, "Você precisa estar mais perto do veículo.");
  12213. new index = CrateIndex[playerid];
  12214. AttachCrateToVehicle(v, 964);
  12215. CrateData[CarryingCrate[playerid]][CrateVehicleID] = v;
  12216. Crate{v} = true;
  12217. CarryingCrate[playerid] = 0;
  12218. CrateIndex[playerid] = 0;
  12219. RemovePlayerAttachedObject(playerid, index);
  12220. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE);
  12221. OnePlayAnim(playerid,"CARRY","putdwn",4,0,0,0,0,0);
  12222. SendClientMessageF(playerid, COLOR_WHITE, "You have placed your crate inside of this %s.", GetVehicleName(v));
  12223. SetPlayerChatBubble(playerid, "* Sets the weapon crate inside of the vehicle. *", COLOR_EMOTE, 15.0, 6000);
  12224. return true;
  12225. }
  12226. else if(strmatch(item, "remover"))
  12227. {
  12228. new v = GetNearestVehicle(playerid);
  12229. if(VehicleBoots[v][1] == 0 && !IsBoat(v)) return SysMsg(playerid, "This vehicle's trunk must be open.");
  12230. new Float:pos[3];
  12231. GetVehiclePos(v, pos[0], pos[1], pos[2]);
  12232. if(!IsPlayerInRangeOfPoint(playerid, 5.0, pos[0], pos[1], pos[2])) return SysMsg(playerid, "Você precisa estar mais perto do veículo.");
  12233. for(x = 0; x < MAX_FACTIONS; x++)
  12234. {
  12235. if(CrateData[x][CrateVehicleID] == v)
  12236. {
  12237. if(GetFreePlayerObjectIndex(playerid) == -1) return SysMsg(playerid, "Você já está carregando uma caixa de armas, ou está sem slot para segurar outro objeto.");
  12238. DestroyDynamicObjectEx(VehObject[v], "VehObject[v]");
  12239. VehObject[v] = INVALID_OBJECT_ID;
  12240. CrateData[x][CrateVehicleID] = 0;
  12241. Crate{v} = false;
  12242. CarryingCrate[playerid] = x;
  12243. CrateIndex[playerid] = GetFreePlayerObjectIndex(playerid);
  12244. SetPlayerAttachedObject(playerid, CrateIndex[playerid], 964, 1, -0.057999, 0.659000, 0.000000, 0.000000, 88.099960, -179.699905, 0.499000, 0.559000, 0.414999);
  12245. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY);
  12246. SetPlayerChatBubble(playerid, "* Chega ao veículo e agarra a caixa da arma de dentro dela. *", COLOR_EMOTE, 15.0, 6000);
  12247. OnePlayAnim(playerid, "CARRY", "liftup", 4,0,0,0,0,0);
  12248. return true;
  12249. }
  12250. }
  12251. return SysMsg(playerid, "Esse veiculo não tem caixas dentro.");
  12252. }
  12253. else if(strmatch(item, "chão"))
  12254. {
  12255. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SysMsg(playerid, "Vôcê precisa estar no chão para fazer isso.");
  12256. for(x = 0; x < MAX_FACTIONS; x++)
  12257. {
  12258. if(IsPlayerInRangeOfPoint(playerid, 5.0, CrateData[x][CrateX], CrateData[x][CrateY], CrateData[x][CrateZ]))
  12259. {
  12260. if(GetFreePlayerObjectIndex(playerid) == -1) return SysMsg(playerid, "Você já está carregando uma caixa de armas, ou está sem slot para segurar outro objeto.");
  12261. DestroyDynamicObjectEx(CrateData[x][CrateObject], "CrateData[x][CrateObject]");
  12262. CrateData[x][CrateX] = 0.0;
  12263. CrateData[x][CrateY] = 0.0;
  12264. CrateData[x][CrateZ] = 0.0;
  12265. CarryingCrate[playerid] = x;
  12266. CrateIndex[playerid] = GetFreePlayerObjectIndex(playerid);
  12267. SetPlayerAttachedObject(playerid, CrateIndex[playerid], 964, 1, -0.057999, 0.659000, 0.000000, 0.000000, 88.099960, -179.699905, 0.499000, 0.559000, 0.414999);
  12268. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY);
  12269. SetPlayerChatBubble(playerid, "* Inclina-se para a frente e pega o caixote da arma do chão. *", COLOR_EMOTE, 15.0, 6000);
  12270. OnePlayAnim(playerid, "CARRY", "liftup", 4,0,0,0,0,0);
  12271. return true;
  12272. }
  12273. }
  12274. return SysMsg(playerid, "Você não está perto de uma caixa.");
  12275. }
  12276. else if(strmatch(item, "dropar"))
  12277. {
  12278. if(CarryingCrate[playerid] == 0) return SysMsg(playerid, "Você não está carregando uma caixa.");
  12279. new Float:Pos[3];
  12280. x = CarryingCrate[playerid];
  12281. GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  12282. RemovePlayerAttachedObject(playerid, CrateIndex[playerid]);
  12283. CrateIndex[playerid] = 0;
  12284. CarryingCrate[playerid] = 0;
  12285. GetXYInFrontOfPlayer(playerid, Pos[0], Pos[1], 2.0);
  12286. CrateData[x][CrateObject] = CreateDynamicObject(964, Pos[0], Pos[1], Pos[2]-1.0, 0, 0, 0, GetPlayerVirtualWorld(playerid));
  12287. CrateData[x][CrateX] = Pos[0];
  12288. CrateData[x][CrateY] = Pos[1];
  12289. CrateData[x][CrateZ] = Pos[2];
  12290. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE);
  12291. SetPlayerChatBubble(playerid, "* Inclina-se para a frente e coloca a caixa de armas no chão. *", COLOR_EMOTE, 15.0, 6000);
  12292. OnePlayAnim(playerid,"CARRY","putdwn",4,0,0,0,0,0);
  12293. return true;
  12294. }
  12295. else if(strmatch(item, "destruir"))
  12296. {
  12297. for(x = 0; x < MAX_FACTIONS; x++)
  12298. {
  12299. if(IsPlayerInRangeOfPoint(playerid, 5.0, CrateData[x][CrateX], CrateData[x][CrateY], CrateData[x][CrateZ]))
  12300. {
  12301. for(new k = 0; k < 5; k++)
  12302. {
  12303. if(CrateData[x][CrateWeapon][k] != 0) return SysMsg(playerid, "Você não pode destruir uma caixa se tiver armas dentro dela.");
  12304. }
  12305. DestroyCrate(x);
  12306. SetPlayerChatBubble(playerid, "* Descarta a caixa da arma. *", COLOR_EMOTE, 15.0, 6000);
  12307. SendClientMessage(playerid, COLOR_WHITE, "Você destruiu a caixa de armas.");
  12308. return true;
  12309. }
  12310. }
  12311. return SysMsg(playerid, "Você não está perto de uma caixa.");
  12312. }
  12313. else if(strmatch(item, "pegar"))
  12314. {
  12315. if(isnull(item2)) return SysMsg(playerid,"Use: /caixa pegar [ID de dentro da caixa /caixa lista]");
  12316. if(!IsNumeric(item2)) return SysMsg(playerid,"A quantidade deve ser um número.");
  12317. new gun = strval(item2);
  12318. if(gun > 5) return SysMsg(playerid, "O ID da arma não pode ser maior que 5.");
  12319. for(x = 0; x < MAX_FACTIONS; x++)
  12320. {
  12321. if(IsPlayerInRangeOfPoint(playerid, 5.0, CrateData[x][CrateX], CrateData[x][CrateY], CrateData[x][CrateZ]))
  12322. {
  12323. if(GetFreeWeaponObjectIndex(playerid) == -1) return SysMsg(playerid, "Você não pode pegar outra arma da caixa se você não tem mais que um coldre.");
  12324. new wid = CrateData[x][CrateWeapon][gun], Slot = GetWeaponSlot(wid);
  12325. if(!WeaponCheck(playerid, wid)) return SysMsg(playerid, "Você não pode pegar essa arma. Ou tens duas pistolas ou uma arma primária e uma pistola na tua pessoa.");
  12326. if(CrateData[x][CrateWeapon][gun] == 0) return SysMsg(playerid, "Esta caixa não tem uma arma nesse slot.");
  12327. if(WeaponData[playerid][GetWeaponSlot(CrateData[x][CrateWeapon][gun])][Weapon] == CrateData[x][CrateWeapon][gun]) return SysMsg(playerid, "Você já tem essa arma na sua pessoa.");
  12328. if(WeaponData[playerid][Slot][WeaponID] >= 1) return SysMsg(playerid, "Você já possui uma arma desse tipo.");
  12329. if(CrateData[x][CrateWeapon][gun] == 21)
  12330. {
  12331. new Float:arm;
  12332. GetPlayerArmour(playerid, arm);
  12333. if(arm > 0) return SysMsg(playerid, "Você já tem um colete.");
  12334. SetPlayerArmourEx(playerid, 100.0, 1);
  12335. }
  12336. else GivePlayerWeaponEx(playerid, CrateData[x][CrateWeapon][gun], GetDefaultWeaponAmmo(CrateData[x][CrateWeapon][gun]), 2);
  12337. SetPlayerChatBubble(playerid, "* Ajoelha-se e pega uma arma da caixa*", COLOR_EMOTE, 15.0, 6000);
  12338. SendClientMessageF(playerid, COLOR_WHITE, "Você pegou uma %s da caixa de armas.", weaponstring[CrateData[x][CrateWeapon][gun]]);
  12339. CrateData[x][CrateWeapon][gun] = 0;
  12340. OnePlayAnim(playerid, "CARRY", "liftup", 4,0,0,0,0,0);
  12341. return true;
  12342. }
  12343. }
  12344. return SysMsg(playerid, "Você não está perto de uma caixa.");
  12345. }
  12346. else if(strmatch(item, "ajuda"))
  12347. {
  12348. SendClientMessage(playerid, COLOR_WHITE, "[GSRP Sistema de arma - Ajuda]");
  12349. SysMsg(playerid,"Opção: Pegar - Tirar da caixa - Syntax: /caixa pegar [slotid (/caixas lista para ver o slot)]");
  12350. SysMsg(playerid,"Opção: Colocar - Coloca a caixa no porta-malas de um veículo (Use /caixasveiculo para ver se os veiculos) - Syntax: /caixa colocar");
  12351. SysMsg(playerid,"Opção: Remover - Remove a caixa do porta-malas de um veículo - Syntax: /caixa remover");
  12352. SysMsg(playerid,"Opção: Pega do chão - Pegue uma caixa do chão (Você precisa está proximo da caixa) - Syntax: /caixa chão");
  12353. SysMsg(playerid,"Opção: Drop - Coloca a caixa na sua frente (Precisa está segurando) - Syntax: /caixa dropar");
  12354. SysMsg(playerid,"Opção: Destruir - Destruir completamente a caixa - Syntax: /caixa destruir");
  12355. SysMsg(playerid,"Opção: Lista - Lista de armas dentro da caixa - Syntax: /caixa listas");
  12356. SysMsg(playerid,"Opção: Ajuda - Lista de menu de ajuda para o sistema de caixas - Syntax: /caixa ajuda");
  12357. }
  12358. else SysMsg(playerid,"Use: /caixa [/pegar/colocar/remover/chão/dropar/destruir/lista/ajuda]");
  12359. return true;
  12360. }
  12361. CMD:caixasveiculo(playerid, params[])//cratevehicles //caixas
  12362. {
  12363. if(!Logged{playerid}) return true;
  12364. SendClientMessage(playerid, COLOR_WHITE, "Você só pode colocar caixas de armas nestes veículos:");
  12365. SendSplitMessage(playerid, COLOR_WHITE, "Yosemite, Burrito, Berkey's RC Van, Bobcat, Walton, Benson, Yankee, Boxville, Rumpo, Mule, Tropic, Marquis, Speeder, Reefer, Coastguard");
  12366. return true;
  12367. }
  12368. //end of weapon crate commands
  12369. //general, misc commands
  12370. CMD:stats(playerid, params[])
  12371. {
  12372. if(!Logged{playerid}) return true;
  12373. if(isnull(params)) ShowPlayerStats(playerid, playerid);
  12374. else
  12375. {
  12376. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  12377. new playa = -1;
  12378. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /stats [ID ou nome do jogador]");
  12379. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  12380. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  12381. ShowPlayerStats(playa, playerid);
  12382. }
  12383. return true;
  12384. }
  12385. CMD:ttp(playerid, params[])
  12386. {
  12387. if(!Logged{playerid}) return true;
  12388. new d = 0, h = 0, temp = TotalTimePlayed[playerid];
  12389. while(temp > 1440)
  12390. {
  12391. temp -= 1440;
  12392. d++;
  12393. }
  12394. while(temp > 60)
  12395. {
  12396. temp -= 60;
  12397. h++;
  12398. }
  12399. SendClientMessageF(playerid, COLOR_WHITE, "Tempo total jogado: {00FF00}%i{FFFFFF} dias {00FF00}%i{FFFFFF} horas e {00FF00}%i{FFFFFF} minutes.", d, h, temp);
  12400. return true;
  12401. }
  12402. CMD:idade(playerid, params[])
  12403. {
  12404. if(!Logged{playerid}) return true;
  12405. mysql_format(conn, mquery, sizeof(mquery), "SELECT BirthYear, BirthMonth, BirthDate FROM players WHERE id = %i", SQLID[playerid]);
  12406. mysql_pquery(conn, mquery, "AgeCheck", "d", playerid);
  12407. return true;
  12408. }
  12409. CMD:mudardniver(playerid, params[])
  12410. {
  12411. if(!Logged{playerid}) return true;
  12412. new age, birthyear, birthmonth, birthday, thstndrd[3];
  12413. if(sscanf(params, "iii", birthday, birthmonth, birthyear)) return SysMsg(playerid,"Use: /mudardniver [Dia 1-31] [Mês 1-12] [Ano] *Isso é gratis*");
  12414. if(birthday < 1 || birthday > 31) return SysMsg(playerid, "Dia inválido. [1 ?31]");
  12415. if(birthmonth < 1 || birthmonth > 12) return SysMsg(playerid, "Mês inválido. [1 ?12]");
  12416. if(birthday > LastDayInMonth(birthmonth)) return SysMsg(playerid, "Dia inválido para o mês escolhido.");
  12417. if(birthyear > gServerYear - 16 || birthyear < 1900) return SysMsg(playerid, "Ano inválido. Você deve ter pelo menos 16 anos e o ano não pode ser inferior a 1900.");
  12418. if(birthday > LastDayInMonth(birthmonth)) return SysMsg(playerid, "Dia inválido para o mês escolhido.");
  12419. if(birthyear > gServerYear - 16 || birthyear < 1900) return SysMsg(playerid, "Ano inváido. Você deve ter pelo menos 16 anos e o ano não pode ser inferior a 1900.");
  12420. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET BirthYear = %i, BirthMonth = %i, BirthDate = %i WHERE id = %i", birthyear, birthmonth, birthday, SQLID[playerid]);
  12421. mysql_pquery(conn, mquery);
  12422. age = gServerYear - birthyear;
  12423. switch(birthday)
  12424. {
  12425. case 1,21,31: format(thstndrd, sizeof(thstndrd), "");
  12426. case 2,22: format(thstndrd, sizeof(thstndrd), "");
  12427. case 3,23: format(thstndrd, sizeof(thstndrd), "");
  12428. default: format(thstndrd, sizeof(thstndrd), "");
  12429. }
  12430. SendClientMessageF(playerid, COLOR_WHITE, "Seu aniversário é: %i%s of %s %i.", birthday, thstndrd, GetMonthName(birthmonth), birthyear);
  12431. SendClientMessageF(playerid, COLOR_WHITE, "Isso significa que você tem %i anos de idade.", age);
  12432. return true;
  12433. }
  12434. CMD:buscarano(playerid, params[])
  12435. {
  12436. if(!Logged{playerid}) return true;
  12437. if(isnull(params)) return SysMsg(playerid, "Use: /buscarano [Idade desejada]");
  12438. new age = strval(params);
  12439. if(age < 16 || age > 100) return SysMsg(playerid, "Idade inválida. [16 - 100]");
  12440. new chosenyear = gServerYear - age;
  12441. SendClientMessageF(playerid, COLOR_WHITE, "Se a idade atual for %i Anos, Você teria que definir seu ano de nascimento para %i.", age, chosenyear);
  12442. return true;
  12443. }
  12444. CMD:mostrarlicencas(playerid, params[])
  12445. {
  12446. if(!Logged{playerid}) return true;
  12447. if(isnull(params)) return ShowPlayerLicenses(playerid, playerid);
  12448. new playa = -1;
  12449. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /mostrarlicencas [ID ou nome do jogador]");
  12450. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  12451. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  12452. new Float:tX,Float:tY,Float:tZ;
  12453. GetPlayerPos(playa,tX,tY,tZ);
  12454. if(!IsPlayerInRangeOfPoint(playerid,5.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para fazer isso.");
  12455. if(playa != playerid)
  12456. {
  12457. format(gstr, sizeof(gstr),"* %s mostra suas licenças para %s. *", NameRP(playerid), NameRP(playa));
  12458. ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  12459. for(new lic = 0; lic < sizeof(Licenses[]); lic++) if(Licenses[playerid][lic] == 1) UnlockAchievement(playerid, 43);
  12460. }
  12461. ShowPlayerLicenses(playerid, playa);
  12462. return true;
  12463. }
  12464. CMD:mostrarl(playerid, params[]) return cmd_mostrarlicencas(playerid, params);
  12465. CMD:mostrarchaves(playerid, params[])
  12466. {
  12467. if(!Logged{playerid}) return true;
  12468. new playa = -1;
  12469. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /mostrarchaves [ID ou nome do jogador]");
  12470. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  12471. if(playa == playerid) return SysMsg(playerid,"Você não pode mostrar uma chave a si mesmo.");
  12472. new Float:tX,Float:tY,Float:tZ;
  12473. GetPlayerPos(playa,tX,tY,tZ);
  12474. if(!IsPlayerInRangeOfPoint(playerid,5.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para fazer isso.");
  12475. new count = 0;
  12476. format(gstr, sizeof(gstr), "Chaves do veículo de %s: ", NameEx(playerid));
  12477. for(new i = 1, x = GetVehiclePoolSize(); i <= x; i++)
  12478. {
  12479. if(VehicleData[i][VehicleOwnerSQLID] == SQLID[playerid])
  12480. {
  12481. if(!VehicleData[i][Impounded])
  12482. {
  12483. if(count == 0)
  12484. {
  12485. strcat(gstr, GetVehicleNameEx(VehicleData[i][VehicleModel]));
  12486. }
  12487. else
  12488. {
  12489. strcat(gstr, ", ");
  12490. strcat(gstr, GetVehicleNameEx(VehicleData[i][VehicleModel]));
  12491. }
  12492. count ++;
  12493. }
  12494. }
  12495. }
  12496. SendClientMessage(playa, COLOR_WHITE, gstr);
  12497. format(gstr, sizeof(gstr),"* %s mostra para %s um conjunto de chaves. *", NameRP(playerid), NameRP(playa));
  12498. ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  12499. return true;
  12500. }
  12501. CMD:dmv(playerid, params[])
  12502. {
  12503. if(!Logged{playerid}) return true;
  12504. if(!IsPlayerInRangeOfPoint(playerid, 2.0, -2025.8422,-114.5996,1035.1719)) return SysMsg(playerid, "Você não está em um DMV.");
  12505. Dialog_Show(playerid, DMVMain, DIALOG_STYLE_LIST, "Bem-vindo ao DMV! Por favor selecione uma opção:", "Licença para carros gerais [GVL-1]\nLicença para veículos grande [GVL-2]\nLicença para motos [MB]\nLicença para Barcos [B]\nLicença para helicóptero [A1]\nLicença para avião [A2]", "Selecionar", "Sair");
  12506. return true;
  12507. }
  12508. CMD:finalizarteste(playerid, params[])
  12509. {
  12510. if(!Logged{playerid}) return true;
  12511. if(DMV_CanEndTest[playerid] == 0) return true;
  12512. DMV_CanEndTest[playerid] = 0;
  12513. SetPlayerInterior(playerid, 0);
  12514. SetPlayerVirtualWorldEx(playerid, 0);
  12515. SetPlayerPos(playerid, 1251.018798, 134.651306, 19.948959);
  12516. SetPlayerFacingAngle(playerid, 68.0);
  12517. TogglePlayerControllable(playerid, 1);
  12518. SetCameraBehindPlayer(playerid);
  12519. PlayerPlaySound(playerid, SOUND_DMV_PASS_END, 0, 0, 0);
  12520. GameTextForPlayer(playerid, " ", 100, 3);
  12521. SendClientMessage(playerid, COLOR_LIGHTGREEN, "[DMV] Obrigado pelo uso do San Andreas DMV. Aproveite a sua nova licença e conduza com segurança.");
  12522. return true;
  12523. }
  12524. CMD:comprarlevel(playerid, params[])
  12525. {
  12526. if(!Logged{playerid}) return true;
  12527. new ReqXP = PlayerLevel[playerid] * 10;
  12528. if(isnull(params))
  12529. {
  12530. SendClientMessageF(playerid,COLOR_ORANGE,"Um Level-Up exigirá %i Pontos de experiência, você tem atualmente %i.",ReqXP,PlayerXP[playerid]);
  12531. SendClientMessage(playerid,COLOR_ORANGE,"Para subir de level agora, digite '/comprarlevel confirmar'");
  12532. return true;
  12533. }
  12534. if(strcmp("confirmar",params) == 0)
  12535. {
  12536. if(PlayerXP[playerid] < ReqXP) return SysMsg(playerid,"Você não tem XP suficiente para subir de nível.");
  12537. PlayerXP[playerid] -= ReqXP;
  12538. PlayerLevel[playerid]++;
  12539. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET PlayerXP = %i, PlayerLevel = %i WHERE id = %i", PlayerXP[playerid], PlayerLevel[playerid], SQLID[playerid]);
  12540. mysql_pquery(conn, mquery);
  12541. if(PlayerLevel[playerid] >= 2) UnlockAchievement(playerid,20);
  12542. if(PlayerLevel[playerid] >= 5) UnlockAchievement(playerid,21);
  12543. if(PlayerLevel[playerid] >= 10) UnlockAchievement(playerid,22);
  12544. if(PlayerLevel[playerid] >= 20) UnlockAchievement(playerid,23);
  12545. if(PlayerLevel[playerid] >= 30) UnlockAchievement(playerid,52);
  12546. if(PlayerLevel[playerid] >= 40) UnlockAchievement(playerid,53);
  12547. if(PlayerLevel[playerid] >= 50) UnlockAchievement(playerid,54);
  12548. if(PlayerLevel[playerid] >= 75) UnlockAchievement(playerid,55);
  12549. if(PlayerLevel[playerid] >= 100) UnlockAchievement(playerid,56);
  12550. if(PlayerLevel[playerid] >= 101) UnlockAchievement(playerid,57);
  12551. SendClientMessageF(playerid,COLOR_ORANGE,"Parabéns! Agora você é level %i. %i Pontos de experiência eram necessários.",PlayerLevel[playerid],ReqXP);
  12552. if(PlayerLevel[playerid] == 2)
  12553. {
  12554. GivePlayerCash(playerid, 2500);
  12555. SendClientMessage(playerid, COLOR_GREEN, "Level up bonus! Você recebeu $2.500 por atingir o nível dois.");
  12556. }
  12557. if(PlayerLevel[playerid] == 3)
  12558. {
  12559. GivePlayerCash(playerid, 5000);
  12560. SendClientMessage(playerid, COLOR_GREEN, "Level up bonus! Você recebeu $5.000 por alcançar o nível três.");
  12561. }
  12562. return true;
  12563. }
  12564. return true;
  12565. }
  12566. CMD:comprararmaskill(playerid, params[])//comprar skill
  12567. {
  12568. if(!Logged{playerid}) return true;
  12569. if(!IsPlayerInRangeOfPoint(playerid,5.5,312.582183, -165.342315, 999.601013)) return SysMsg(playerid,"Você não está em um Ammunation.");
  12570. if(WeaponSkillLevel[playerid] == 10) return SysMsg(playerid,"Sua habilidade é máxima.");
  12571. new ReqXP;
  12572. if(WeaponSkillLevel[playerid] <= 1) ReqXP = 5;
  12573. if(WeaponSkillLevel[playerid] == 2) ReqXP = 5;
  12574. if(WeaponSkillLevel[playerid] == 3) ReqXP = 5;
  12575. if(WeaponSkillLevel[playerid] == 4) ReqXP = 10;
  12576. if(WeaponSkillLevel[playerid] == 5) ReqXP = 10;
  12577. if(WeaponSkillLevel[playerid] == 6) ReqXP = 10;
  12578. if(WeaponSkillLevel[playerid] == 7) ReqXP = 20;
  12579. if(WeaponSkillLevel[playerid] == 8) ReqXP = 20;
  12580. if(WeaponSkillLevel[playerid] == 9) ReqXP = 20;
  12581. if(isnull(params))
  12582. {
  12583. format(gstr, sizeof(gstr),"O nível de habilidade atual da arma é %i.",WeaponSkillLevel[playerid]);
  12584. SendClientMessage(playerid,COLOR_ORANGE,gstr);
  12585. format(gstr, sizeof(gstr),"Um nível de habilidade de arma custará você %i Pontos de experiência. Você tem atualmente %i.",ReqXP,PlayerXP[playerid]);
  12586. SendClientMessage(playerid,COLOR_ORANGE,gstr);
  12587. SendClientMessage(playerid,COLOR_ORANGE,"Para comprar a Skill agora, digite '/comprararmaskill confirmar'");
  12588. return true;
  12589. }
  12590. if(strcmp("confirmar",params) == 0)
  12591. {
  12592. if(PlayerXP[playerid] < ReqXP) return SysMsg(playerid,"Você não tem pontos de experiência suficiente para subir de nível.");
  12593. PlayerXP[playerid] -= ReqXP;
  12594. if(WeaponSkillLevel[playerid] == 0)
  12595. {
  12596. WeaponSkillLevel[playerid] = 2;
  12597. }
  12598. else
  12599. {
  12600. WeaponSkillLevel[playerid]++;
  12601. }
  12602. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET PlayerXP = %i, WeaponSkill = %i WHERE id = %i", PlayerXP[playerid], WeaponSkillLevel[playerid], SQLID[playerid]);
  12603. mysql_pquery(conn, mquery);
  12604. new newSkill = WeaponSkillLevel[playerid] * 100;
  12605. new SkillOneHand;
  12606. if(newSkill > 999)
  12607. {
  12608. newSkill = 999;
  12609. SkillOneHand = 900;
  12610. }
  12611. SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL, newSkill-10);
  12612. SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL_SILENCED, newSkill);
  12613. SetPlayerSkillLevel(playerid, WEAPONSKILL_DESERT_EAGLE, newSkill);
  12614. SetPlayerSkillLevel(playerid, WEAPONSKILL_SHOTGUN, newSkill);
  12615. SetPlayerSkillLevel(playerid, WEAPONSKILL_SAWNOFF_SHOTGUN, SkillOneHand);
  12616. SetPlayerSkillLevel(playerid, WEAPONSKILL_SPAS12_SHOTGUN, newSkill);
  12617. SetPlayerSkillLevel(playerid, WEAPONSKILL_MICRO_UZI, SkillOneHand);
  12618. SetPlayerSkillLevel(playerid, WEAPONSKILL_MP5, newSkill);
  12619. SetPlayerSkillLevel(playerid, WEAPONSKILL_AK47, newSkill);
  12620. SetPlayerSkillLevel(playerid, WEAPONSKILL_M4, newSkill);
  12621. SetPlayerSkillLevel(playerid, WEAPONSKILL_SNIPERRIFLE, newSkill);
  12622. format(gstr, sizeof(gstr),"Parabéns! Sua habilidade arma é agora nível %i! Exigindo %i Pontos de experiência.",WeaponSkillLevel[playerid],ReqXP);
  12623. SendClientMessage(playerid,COLOR_ORANGE,gstr);
  12624. if(WeaponSkillLevel[playerid] == 10)
  12625. {
  12626. PlayerXP[playerid] += 50;
  12627. MySQLUpdateInt(SQLID[playerid], "PlayerXP", PlayerXP[playerid], "players");
  12628. SendClientMessage(playerid,COLOR_PINK," >> Habilidade da arma estourou! (+50 Pontos de experiência)");
  12629. UnlockAchievement(playerid,14);
  12630. }
  12631. return true;
  12632. }
  12633. return true;
  12634. }
  12635. CMD:inventario(playerid, params[])
  12636. {
  12637. if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado.");
  12638. if(isnull(params)) ShowPlayerInventory(playerid, playerid);
  12639. else
  12640. {
  12641. if(!IsPlayerAdminLevelOK(playerid, 1)) return ShowPlayerInventory(playerid, playerid);
  12642. new playa = -1;
  12643. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /inventario [ID ou nome do jogador]");
  12644. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  12645. ShowPlayerInventory(playa, playerid);
  12646. }
  12647. return true;
  12648. }
  12649. CMD:dar(playerid, params[])
  12650. {
  12651. if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado.");
  12652. new playa = -1, itemname[25], itemamount[45], amount, name[MAX_PLAYER_NAME];
  12653. if(sscanf(params, "s[24]s[25]S()[45]", name, itemname, itemamount))
  12654. {
  12655. SysMsg(playerid,"Use: /dar [ID ou nome do jogador] [item] [Opcional: quantidade/nome]");
  12656. SysMsg(playerid,"Items: Vara, Isca, Dado, Arma, Radio, GalaoCombustivel, Relogio, Isqueiro, Cigarro, GPS");
  12657. SysMsg(playerid,"Marijuana, Cocaina, Moonshine, Bong, Papel, kitmedico, SementeMaconha, Oleo");
  12658. return true;
  12659. }
  12660. if(strval(name) >= 500)
  12661. {
  12662. foreach(new p: Player)
  12663. {
  12664. if(MaskLabelNumber[p] == strval(name))
  12665. {
  12666. playa = p;
  12667. }
  12668. }
  12669. }
  12670. else playa = GetPlayerIDs(name);
  12671. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  12672. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  12673. if(!Logged{playa}) return SysMsg(playerid,"Ele deve estar logados.");
  12674. if(playa == playerid) return SysMsg(playerid,"Você não pode dar isso a você mesmo.");
  12675. new Float:Pos[3];
  12676. GetPlayerPos(playa, Pos[0], Pos[1], Pos[2]);
  12677. if(!IsPlayerInRangeOfPoint(playerid, 3.5, Pos[0], Pos[1], Pos[2])) return SysMsg(playerid,"Você deve estar perto do jogador para dar-lhes algo.");
  12678. if(strcmp("Vara",itemname,true) == 0)
  12679. {
  12680. if(Inventory[playerid][FishingRod] == 0) return SysMsg(playerid,"Você não tem uma Vara de Pesca.");
  12681. if(Inventory[playa][FishingRod] == 1 && FishingRodHealth[playa] != 0) return SysMsg(playerid,"Esse jogador já tem uma vara de pesca.");
  12682. Inventory[playerid][FishingRod] = 0;
  12683. Inventory[playa][FishingRod] = 1;
  12684. MySQLUpdateInt(SQLID[playerid], "FishingRod", Inventory[playerid][FishingRod], "players");
  12685. MySQLUpdateInt(SQLID[playa], "FishingRod", Inventory[playa][FishingRod], "players");
  12686. format(gstr, sizeof(gstr), "Você deu para %s sua vara de pesca.", NameRP(playa));
  12687. SendClientMessage(playerid, COLOR_WHITE, gstr);
  12688. format(gstr, sizeof(gstr), "%s te deu uma vara de pesca.", NameRP(playerid));
  12689. SendClientMessage(playa, COLOR_WHITE, gstr);
  12690. format(gstr, sizeof(gstr), "* %s entrega uma vara de pesca para %s. *",NameRP(playerid),NameRP(playa));
  12691. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  12692. }
  12693. if(strcmp("Isca",itemname,true) == 0)
  12694. {
  12695. if(Inventory[playerid][FishingBait] == 0) return SysMsg(playerid,"Você não tem nenhuma Isca.");
  12696. if(sscanf(params, "us[25]s[45]", playa, itemname, itemamount)) return SysMsg(playerid,"Use: /dar [ID ou nome do jogador] Bait [Quantidade de Isca]");
  12697. amount = strval(itemamount);
  12698. if(amount < 1 || amount > Inventory[playerid][FishingBait]) return SysMsg(playerid,"Essa quantidade é inválida. (1 somente para seu valor)");
  12699. Inventory[playerid][FishingBait] -= amount;
  12700. Inventory[playa][FishingBait] += amount;
  12701. MySQLUpdateInt(SQLID[playerid], "FishingBait", Inventory[playerid][FishingBait], "players");
  12702. MySQLUpdateInt(SQLID[playa], "FishingBait", Inventory[playa][FishingBait], "players");
  12703. format(gstr, sizeof(gstr), "Você deu para %s %i iscas de pesca. Agora você tem %i.", NameRP(playa), amount, Inventory[playerid][FishingBait]);
  12704. SendClientMessage(playerid, COLOR_WHITE, gstr);
  12705. format(gstr, sizeof(gstr), "%s te deu %i iscas de pesca. Agora você tem %i.", NameRP(playerid), amount, Inventory[playa][FishingBait]);
  12706. SendClientMessage(playa, COLOR_WHITE, gstr);
  12707. format(gstr, sizeof(gstr), "* %s entrega algumas iscas de pesca para %s. *",NameRP(playerid),NameRP(playa));
  12708. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  12709. }
  12710. if(strcmp("Dado",itemname,true) == 0)
  12711. {
  12712. if(Inventory[playerid][Dice] == 0) return SysMsg(playerid,"Você não tem nenhum dado para dar.");
  12713. if(Inventory[playa][Dice] == 1) return SysMsg(playerid,"Esse jogador já tem Dado.");
  12714. Inventory[playerid][Dice] = 0;
  12715. Inventory[playa][Dice] = 1;
  12716. MySQLUpdateInt(SQLID[playerid], "HasDice", Inventory[playerid][Dice], "players");
  12717. MySQLUpdateInt(SQLID[playa], "HasDice", Inventory[playa][Dice], "players");
  12718. format(gstr, sizeof(gstr), "Você deu para %s seu dado.", NameRP(playa));
  12719. SendClientMessage(playerid, COLOR_WHITE, gstr);
  12720. format(gstr, sizeof(gstr), "%s te deu um dado.", NameRP(playerid));
  12721. SendClientMessage(playa, COLOR_WHITE, gstr);
  12722. format(gstr, sizeof(gstr), "* %s retira um dado do bolso e entrega a %s. *",NameRP(playerid),NameRP(playa));
  12723. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  12724. }
  12725. if(strcmp("Radio",itemname,true) == 0)
  12726. {
  12727. if(Inventory[playerid][Radio] == 0) return SysMsg(playerid,"Você não tem Rádio.");
  12728. if(Inventory[playa][Radio] == 1) return SysMsg(playerid,"Esse jogador já tem um rádio.");
  12729. Inventory[playerid][Radio] = 0;
  12730. Inventory[playa][Radio] = 1;
  12731. RadioPoweredOn[playa] = 0;
  12732. RadioFrequency[playa] = 1000;
  12733. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET HasRadio = %i, RadioFrequency = %i, RadioPower = %i WHERE id = %i", Inventory[playa][Radio], RadioFrequency[playa], RadioPoweredOn[playa], SQLID[playa]);
  12734. mysql_pquery(conn, mquery);
  12735. SendClientMessageF(playerid, COLOR_WHITE, "Você deu para %s seu radio.", NameRP(playa));
  12736. SendClientMessageF(playa, COLOR_WHITE, "%s te deu um Radio.", NameRP(playerid));
  12737. format(gstr, sizeof(gstr), "* %s entrega um Rádio para %s. *",NameRP(playerid),NameRP(playa));
  12738. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  12739. }
  12740. if(strcmp("Relogio",itemname,true) == 0)
  12741. {
  12742. if(Inventory[playerid][Watch] == 0) return SysMsg(playerid,"Você não tem nenhum Relógio.");
  12743. if(Inventory[playa][Watch] == 1) return SysMsg(playerid,"Esse jogador já tem um Relógio.");
  12744. Inventory[playerid][Watch] = 0;
  12745. Inventory[playa][Watch] = 1;
  12746. TextDrawHideForPlayer(playerid, TimeText);
  12747. TextDrawHideForPlayer(playerid, TimeText24);
  12748. TimeIsDisplayed{playerid} = false;
  12749. MySQLUpdateInt(SQLID[playerid], "HasWatch", Inventory[playerid][Watch], "players");
  12750. MySQLUpdateInt(SQLID[playa], "HasWatch", Inventory[playa][Watch], "players");
  12751. format(gstr, sizeof(gstr), "Você deu seu relógio para %s.", NameRP(playa));
  12752. SendClientMessage(playerid, COLOR_WHITE, gstr);
  12753. format(gstr, sizeof(gstr), "%s te deu um relógio.", NameRP(playerid));
  12754. SendClientMessage(playa, COLOR_WHITE, gstr);
  12755. format(gstr, sizeof(gstr), "* %s entrega um relógio para %s. *",NameRP(playerid),NameRP(playa));
  12756. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  12757. }
  12758. if(strcmp("GalaoGasolina",itemname,true) == 0)
  12759. {
  12760. if(Inventory[playerid][FuelCan][0] == -1) return SysMsg(playerid,"Você não tem nenhum Galão de Gasolina.");
  12761. if(Inventory[playa][FuelCan][0] >= 0) return SysMsg(playerid,"Esse jogador já tem um galão de Gasolina.");
  12762. Inventory[playa][FuelCan][0] = Inventory[playerid][FuelCan][0];
  12763. Inventory[playa][FuelCan][1] = Inventory[playerid][FuelCan][1];
  12764. Inventory[playerid][FuelCan][0] = 0;
  12765. Inventory[playerid][FuelCan][1] = 0;
  12766. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET HasFuelCan = %i, HasFuelCanType = %i WHERE id = %i", Inventory[playerid][FuelCan][0], Inventory[playerid][FuelCan][1], SQLID[playerid]);
  12767. mysql_pquery(conn, mquery);
  12768. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET HasFuelCan = %i, HasFuelCanType = %i WHERE id = %i", Inventory[playa][FuelCan][0], Inventory[playa][FuelCan][1], SQLID[playa]);
  12769. mysql_pquery(conn, mquery);
  12770. format(gstr, sizeof(gstr), "Você deu para %s seu galão de Gasolina.", NameRP(playa));
  12771. SendClientMessage(playerid, COLOR_WHITE, gstr);
  12772. format(gstr, sizeof(gstr), "%s te deu um galão de Gasolina.", NameRP(playerid));
  12773. SendClientMessage(playa, COLOR_WHITE, gstr);
  12774. format(gstr, sizeof(gstr), "* %s entrega uma galão de gasolina para %s. *",NameRP(playerid),NameRP(playa));
  12775. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  12776. }
  12777. if(strcmp("Celular",itemname, true) == 0)
  12778. {
  12779. if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid, "Você não tem um celular para dar a ninguém.");
  12780. if(IsPhoneRinging[playerid] == 1) return SysMsg(playerid,"Você não pode armazenar seu celular enquanto toca.");
  12781. if(CallerID[playerid] != -1 || CallerService[playerid] != -1) return SysMsg(playerid,"Você não pode armazenar seu celular enquanto você o está usando.");
  12782. if(Inventory[playa][MobilePhone] == 1) return SysMsg(playerid, "Este jogador já possui um celular.");
  12783. mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET PhonePossessor = %i WHERE id = %i", SQLID[playa], PhoneData[playerid][pID]);
  12784. mysql_pquery(conn, mquery);
  12785. SendClientMessageF(playerid, COLOR_WHITE, "Você deu seu celular para %s.", NameRP(playa));
  12786. SendClientMessageF(playa, COLOR_WHITE, "%s te deu um Celular.", NameRP(playerid));
  12787. format(gstr, sizeof(gstr), "* %s entrega um celular para %s. *",NameRP(playerid),NameRP(playa));
  12788. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  12789. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM phones WHERE id = %i AND PhonePossession = 1", PhoneData[playerid][pID]);
  12790. mysql_pquery(conn, mquery, "LoadPlayerPhone", "d", playa);
  12791. ClearPhoneData(playerid);
  12792. }
  12793. if(strcmp("arma",itemname,true) == 0 || strcmp("gun",itemname,true) == 0)
  12794. {
  12795. if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid,"(( Por favor, não dê armas dentro de veículos. ))");
  12796. if(GetPlayerVehicleID(playa) > 0) return SysMsg(playerid,"(( Por favor, não dê armas às pessoas dentro de veículos. ))");
  12797. if(sscanf(params, "us[25]s[30]", playa, itemname, itemamount)) return SysMsg(playerid,"Use: /dar [ID ou nome do jogador] arma [Nome da Arma]");
  12798. new wid = GetWeaponIdFromName(itemamount);
  12799. if(wid == -1) return SysMsg(playerid,"Nome de arma inválido.");
  12800. if(wid < 1 || wid > 47) return SysMsg(playerid,"Arma Inválida.");
  12801. if(wid == 19 || wid == 20 || wid == 21) return SysMsg(playerid,"Arma inválida.");
  12802. new Slot = GetWeaponSlot(wid);
  12803. if(!WeaponCheck(playa, wid)) return SysMsg(playerid, "Essa pessoa não pode segurar esta arma no momento.");
  12804. if(WeaponData[playerid][Slot][Weapon] != wid) return SysMsg(playerid,"Você não tem esta arma.");
  12805. if(WeaponData[playa][Slot][Weapon] >= 1) return SysMsg(playerid,"O receptor já possui uma arma nesse slot.");
  12806. if(WeaponData[playerid][Slot][WeaponOrigin] == 3 && Faction[playerid] != Faction[playa]) return SysMsg(playerid, "Você não pode dar armas de facção a pessoas fora de sua facção.");
  12807. TransferWeaponData(playerid, playa, Slot);
  12808. SetPlayerArmedWeapon(playerid, 0);
  12809. SyncPlayerWeapons(playerid);
  12810. SyncPlayerWeapons(playa);
  12811. SetPlayerArmedWeapon(playa, wid);
  12812. SendClientMessageF(playerid, COLOR_WHITE, "Você deu para %s uma %s.", NameRP(playa), GetWeaponNameFromID(wid));
  12813. SendClientMessageF(playa, COLOR_WHITE, "%s te deu uma %s.", NameRP(playerid), GetWeaponNameFromID(wid));
  12814. format(gstr, sizeof(gstr), "* %s entrega sua arma para %s. *", NameRP(playerid), NameRP(playa));
  12815. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  12816. }
  12817. if(strcmp("drogras",itemname,true)==0) //drug comment
  12818. {
  12819. SetPVarInt(playerid, "giveDrugs", playa);
  12820. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM drugs WHERE drugOwner = %d AND drugAmount > 0 AND drugOwnerType = 'P' LIMIT 20", SQLID[playerid]);
  12821. mysql_pquery(conn, mquery, "GivePlayerDrugs", "ii", playerid, 0);
  12822. }
  12823. if(strcmp("ingredientes",itemname,true) == 0)
  12824. {
  12825. SetPVarInt(playerid, "giveIngred", playa);
  12826. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM ingredients WHERE ingOwner = %d AND ingAmount > 0 AND ingOwnerType = 'P' LIMIT 20", SQLID[playerid]);
  12827. mysql_pquery(conn, mquery, "GivePlayerIngreds", "ii", playerid, 0);
  12828. }
  12829. if(strcmp("Isqueiro",itemname,true) == 0)
  12830. {
  12831. if(Inventory[playerid][Lighter] == 0) return SysMsg(playerid,"Você não tem um isqueiro.");
  12832. if(Inventory[playa][Lighter] >= 1) return SysMsg(playerid,"Esse jogador já possui um isqueiro.");
  12833. Inventory[playa][Lighter] = Inventory[playerid][Lighter];
  12834. Inventory[playerid][Lighter] = 0;
  12835. MySQLUpdateInt(SQLID[playerid], "HasLighter", Inventory[playerid][Lighter], "players");
  12836. MySQLUpdateInt(SQLID[playa], "HasLighter", Inventory[playa][Lighter], "players");
  12837. format(gstr, sizeof(gstr), "Você deu seu isqueiro para %s.", NameRP(playa));
  12838. SendClientMessage(playerid, COLOR_WHITE, gstr);
  12839. format(gstr, sizeof(gstr), "%s te deu um Isqueiro.", NameRP(playerid));
  12840. SendClientMessage(playa, COLOR_WHITE, gstr);
  12841. format(gstr, sizeof(gstr), "* %s da um isqueiro para %s. *",NameRP(playerid),NameRP(playa));
  12842. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  12843. }
  12844. if(strcmp("Cigarro",itemname,true) == 0)
  12845. {
  12846. if(Inventory[playerid][Fags] == 0) return SysMsg(playerid,"Você não tem nenhum cigarro.");
  12847. if(sscanf(params, "us[25]s[45]", playa, itemname, itemamount)) return SysMsg(playerid,"Use: /dar [ID ou nome do jogador] Cigarro [Quantidade]");
  12848. amount = strval(itemamount);
  12849. if(amount < 1 || amount > Inventory[playerid][Fags]) return SysMsg(playerid,"Esse montante era inválido. (1 somente para seu valor)");
  12850. Inventory[playerid][Fags] -= amount;
  12851. Inventory[playa][Fags] += amount;
  12852. MySQLUpdateInt(SQLID[playerid], "HasFags", Inventory[playerid][Fags], "players");
  12853. MySQLUpdateInt(SQLID[playa], "HasFags", Inventory[playa][Fags], "players");
  12854. SendClientMessageF(playerid, COLOR_WHITE, "Você deu para %s %i Cigarro(s). Agora você tem %i.", NameRP(playa), amount, Inventory[playerid][Fags]);
  12855. SendClientMessageF(playa, COLOR_WHITE, "%s te deu %i Cigarro(s). Agora você tem %i.", NameRP(playerid), amount, Inventory[playa][Fags]);
  12856. if(amount == 1)
  12857. {
  12858. format(gstr, sizeof(gstr), "* %s entrega um cigarro para %s. *",NameRP(playerid),NameRP(playa));
  12859. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  12860. }
  12861. else
  12862. {
  12863. format(gstr, sizeof(gstr), "* %s entrega alguns cigarros para %s. *",NameRP(playerid),NameRP(playa));
  12864. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  12865. }
  12866. }
  12867. if(strcmp("GPS",itemname,true) == 0)
  12868. {
  12869. if(Inventory[playerid][GPS] == 0) return SysMsg(playerid,"Vpcê não tem nenhum GPS.");
  12870. if(Inventory[playa][GPS] == 1) return SysMsg(playerid,"Esse jogador já possui um GPS.");
  12871. Inventory[playerid][GPS] = 0;
  12872. Inventory[playa][GPS] = 1;
  12873. MySQLUpdateInt(SQLID[playerid], "HasGPS", Inventory[playerid][GPS], "players");
  12874. MySQLUpdateInt(SQLID[playa], "HasGPS", Inventory[playa][GPS], "players");
  12875. format(gstr, sizeof(gstr), "Você deu seu GPS para %s.", NameRP(playa));
  12876. SendClientMessage(playerid, COLOR_WHITE, gstr);
  12877. format(gstr, sizeof(gstr), "%s te deu um GPS.", NameRP(playerid));
  12878. SendClientMessage(playa, COLOR_WHITE, gstr);
  12879. format(gstr, sizeof(gstr), "* %s entrega um GPS para %s. *",NameRP(playerid),NameRP(playa));
  12880. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  12881. }
  12882. if(strcmp("Marijuana",itemname,true) == 0)
  12883. {
  12884. if(Inventory[playerid][Weed] == 0) return SysMsg(playerid,"Você não tem nenhuma Marijuana.");
  12885. if(sscanf(params, "us[25]s[45]", playa, itemname, itemamount)) return SysMsg(playerid,"Use: /dar [ID ou nome do jogador] Marijuana [gramas]");
  12886. amount = strval(itemamount);
  12887. if(amount < 1 || amount > Inventory[playerid][Weed]) return SysMsg(playerid,"Quantidade inválida (1 somente para seu valor)");
  12888. if(amount + Inventory[playa][Weed] > DRUG_MAX_WEED) return SysMsgF(playerid, "Quantidade Inválida, %s não seria capaz de carregar tanto Weed. Você pode dar um máximo de %i gramas.", NameEx(playa), DRUG_MAX_WEED - Inventory[playa][Weed]);
  12889. Inventory[playerid][Weed] -= amount;
  12890. Inventory[playa][Weed] += amount;
  12891. MySQLUpdateInt(SQLID[playerid], "Weed", Inventory[playerid][Weed], "players");
  12892. MySQLUpdateInt(SQLID[playa], "Weed", Inventory[playa][Weed], "players");
  12893. SendClientMessageF(playerid, COLOR_WHITE, "Você deu para %s %i gramas de marijuana, agora você tem %i restantes.", NameRP(playa), amount, Inventory[playerid][Weed]);
  12894. SendClientMessageF(playa, COLOR_WHITE, "%s te deu %i gramas de maconha, agora você tem %it.", NameRP(playerid), amount, Inventory[playa][Weed]);
  12895. format(gstr, sizeof(gstr), "* %s entrega algumas gramas de marijuana para %s. *",NameRP(playerid),NameRP(playa));
  12896. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  12897. }
  12898. if(strcmp("Cocaina",itemname,true) == 0)
  12899. {
  12900. if(Inventory[playerid][Cocaine] == 0) return SysMsg(playerid,"Você não tem nenhuma Cocaina.");
  12901. if(sscanf(params, "us[25]s[45]", playa, itemname, itemamount)) return SysMsg(playerid,"Use: /dar [ID ou nome do jogador] Cocaina [gramas]");
  12902. amount = strval(itemamount);
  12903. if(amount < 1 || amount > Inventory[playerid][Cocaine]) return SysMsg(playerid,"Essa quantidade é inválida. (1 somente para seu valor)");
  12904. if(amount + Inventory[playa][Cocaine] > DRUG_MAX_COCAINE) return SysMsgF(playerid, "Quantidade Inválida, %s não seria capaz de transportar tanto cocaína. Você pode dar um máximo de %i gramas.", NameEx(playa), DRUG_MAX_COCAINE - Inventory[playa][Cocaine]);
  12905. Inventory[playerid][Cocaine] -= amount;
  12906. Inventory[playa][Cocaine] += amount;
  12907. MySQLUpdateInt(SQLID[playerid], "Cocaine", Inventory[playerid][Cocaine], "players");
  12908. MySQLUpdateInt(SQLID[playa], "Cocaine", Inventory[playa][Cocaine], "players");
  12909. SendClientMessageF(playerid, COLOR_WHITE, "Você deu para %s %i gramas de cocaina, agora você tem %i gramas.", NameRP(playa), amount, Inventory[playerid][Cocaine]);
  12910. SendClientMessageF(playa, COLOR_WHITE, "%s te deu %i gramas de cocaina, agora você tem %i gramas.", NameRP(playerid), amount, Inventory[playa][Cocaine]);
  12911. format(gstr, sizeof(gstr), "* %s entrega algumas gramas de cocaina para %s. *",NameRP(playerid),NameRP(playa));
  12912. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  12913. }
  12914. if(strcmp("MoonShine",itemname,true) == 0)
  12915. {
  12916. if(Inventory[playerid][MoonShine] == 0) return SysMsg(playerid,"Você não tem nenhum MoonShine.");
  12917. if(sscanf(params, "us[25]s[45]", playa, itemname, itemamount)) return SysMsg(playerid,"Use: /dar [ID ou nome do jogador] MoonShine [litros]");
  12918. amount = strval(itemamount);
  12919. if(amount < 1 || amount > Inventory[playerid][MoonShine]) return SysMsg(playerid,"Essa quantidade é inválida. (1 somente para seu valor)");
  12920. if(amount + Inventory[playa][MoonShine] > DRUG_MAX_MOONSHINE) return SysMsgF(playerid, "Quantidade Inválida, %s não pode carregar essa quantidade de MoonShine. Você pode dar o máximo de %i litros.", NameEx(playa), DRUG_MAX_MOONSHINE - Inventory[playa][MoonShine]);
  12921. Inventory[playerid][MoonShine] -= amount;
  12922. Inventory[playa][MoonShine] += amount;
  12923. MySQLUpdateInt(SQLID[playerid], "MoonShine", Inventory[playerid][MoonShine], "players");
  12924. MySQLUpdateInt(SQLID[playa], "MoonShine", Inventory[playa][MoonShine], "players");
  12925. SendClientMessageF(playerid, COLOR_WHITE, "Você deu para %s %i litros de MoonShine. Agora você tem %i.", NameRP(playa), amount, Inventory[playerid][MoonShine]);
  12926. SendClientMessageF(playa, COLOR_WHITE, "%s te deu %i litros de MoonShine. Agora você tem %i.", NameRP(playerid), amount, Inventory[playa][MoonShine]);
  12927. format(gstr, sizeof(gstr), "* %s entrega um litro de MoonShine para %s. *",NameRP(playerid),NameRP(playa));
  12928. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  12929. }
  12930. if(strcmp("Bong",itemname,true) == 0)
  12931. {
  12932. if(Inventory[playerid][Bong] == 0) return SysMsg(playerid,"Você não tem nenhum Bong.");
  12933. if(Inventory[playa][Bong] == 1) return SysMsg(playerid,"Esse jogador já tem um bong.");
  12934. Inventory[playerid][Bong] = 0;
  12935. Inventory[playa][Bong] = 1;
  12936. MySQLUpdateInt(SQLID[playerid], "Bong", Inventory[playerid][Bong], "players");
  12937. MySQLUpdateInt(SQLID[playa], "Bong", Inventory[playa][Bong], "players");
  12938. SendClientMessageF(playerid, COLOR_WHITE, "Você deu para %s seu bong.", NameRP(playa));
  12939. SendClientMessageF(playa, COLOR_WHITE, "%s te deu um bong.", NameRP(playerid));
  12940. format(gstr, sizeof(gstr), "* %s entrega um bong para %s. *",NameRP(playerid),NameRP(playa));
  12941. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  12942. }
  12943. if(strcmp("papel",itemname,true) == 0)//revisar
  12944. {
  12945. if(Inventory[playerid][RollingPaper] == 0) return SysMsg(playerid,"Você não tem nenhum papel para dar.");
  12946. if(sscanf(params, "us[25]s[45]", playa, itemname, itemamount)) return SysMsg(playerid,"Use: /dar [ID ou nome do jogador] papel [quantidade]");
  12947. amount = strval(itemamount);
  12948. if(amount < 1 || amount > Inventory[playerid][RollingPaper]) return SysMsg(playerid,"Essa quantidade é inválida. (1 somente para seu valor)");
  12949. if(Inventory[playa][RollingPaper] + amount > MAX_ROLLINGPAPER) return SysMsg(playerid, "Que o jogador não pode ter que muitos papéis rolando.");
  12950. Inventory[playerid][RollingPaper] -= amount;
  12951. Inventory[playa][RollingPaper] += amount;
  12952. MySQLUpdateInt(SQLID[playerid], "RollingPaper", Inventory[playerid][RollingPaper], "players");
  12953. MySQLUpdateInt(SQLID[playa], "RollingPaper", Inventory[playa][RollingPaper], "players");
  12954. format(gstr, sizeof(gstr), "Você deu para %s %i alguns papéis. Agora você tem %i.", NameRP(playa), amount, Inventory[playerid][RollingPaper]);
  12955. SendClientMessage(playerid, COLOR_WHITE, gstr);
  12956. format(gstr, sizeof(gstr), "%s te deu %i alguns papéis. Agora você tem %i.", NameRP(playerid), amount, Inventory[playa][RollingPaper]);
  12957. SendClientMessage(playa, COLOR_WHITE, gstr);
  12958. format(gstr, sizeof(gstr), "* %s entrega alguns papéis rolantes %s. *",NameRP(playerid),NameRP(playa));
  12959. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  12960. }
  12961. if(strcmp("kitmedico",itemname,true) == 0)
  12962. {
  12963. if(Inventory[playerid][MedKit] == 0) return SysMsg(playerid,"Você não tem um kit médico para dar.");
  12964. if(Inventory[playa][MedKit] == 1) return SysMsg(playerid,"Esse jogador já tem um kit médico.");
  12965. Inventory[playa][MedKit] = 1;
  12966. Inventory[playerid][MedKit] = 0;
  12967. MySQLUpdateInt(SQLID[playerid], "HasMedKit", Inventory[playerid][MedKit], "players");
  12968. MySQLUpdateInt(SQLID[playa], "HasMedKit", Inventory[playa][MedKit], "players");
  12969. format(gstr, sizeof(gstr), "Você deu seu MedKit para %s.", NameRP(playa));
  12970. SendClientMessage(playerid, COLOR_WHITE, gstr);
  12971. format(gstr, sizeof(gstr), "%s deu-lhe o seu MedKit.", NameRP(playerid));
  12972. SendClientMessage(playa, COLOR_WHITE, gstr);
  12973. format(gstr, sizeof(gstr), "* %s entrega um Kit médico para %s. *",NameRP(playerid),NameRP(playa));
  12974. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  12975. }
  12976. if(strcmp("SementeMarijuana",itemname,true) == 0)
  12977. {
  12978. if(Inventory[playerid][WeedSeed] == 0) return SysMsg(playerid,"Você não tem nenhuma Semente de Marijuana.");
  12979. if(sscanf(params, "us[25]s[45]", playa, itemname, itemamount)) return SysMsg(playerid,"Use: /dar [ID ou nome do jogador] SementeMarijuana [Quantidade]");
  12980. amount = strval(itemamount);
  12981. if(amount < 1 || amount > Inventory[playerid][WeedSeed]) return SysMsg(playerid,"Essa quantidade é inválida. (1 somente para seu valor)");
  12982. if(Inventory[playa][WeedSeed] + amount > MAX_WEEDSEED) return SysMsg(playerid, "Esse jogador não pode ter muitas sementes de marijuana.");
  12983. if(PlayerLevel[playa] < 5) return SysMsg(playerid, "Os jogadores precisam ser pelo menos o nível 5 para ter esse item.");
  12984. Inventory[playerid][WeedSeed] -= amount;
  12985. Inventory[playa][WeedSeed] += amount;
  12986. MySQLUpdateInt(SQLID[playerid], "HasWeedSeed", Inventory[playerid][WeedSeed], "players");
  12987. MySQLUpdateInt(SQLID[playa], "HasWeedSeed", Inventory[playa][WeedSeed], "players");
  12988. SendClientMessageF(playerid, COLOR_WHITE, "Você deu para %s %i semente de marijuana, agora você tem %i.", NameRP(playa), amount, Inventory[playerid][WeedSeed]);
  12989. SendClientMessageF(playa, COLOR_WHITE, "%s te deu %i sementes de marijuana, agora você %i.", NameRP(playerid), amount, Inventory[playa][WeedSeed]);
  12990. format(sgstr, sizeof(sgstr), "* %s entrega algumas sementes de marijuana para %s. *",NameRP(playerid),NameRP(playa));
  12991. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  12992. }
  12993. if(strcmp("Oleo", itemname, true) == 0)
  12994. {
  12995. if(Inventory[playerid][EngineOil] == 0) return SysMsg(playerid, "Você não tem nenhum óleo de motor.");
  12996. if(Inventory[playa][EngineOil] == 1) return SysMsg(playerid, "Esse jogador já tem óleo de motor.");
  12997. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET HasEngineOil = 0 WHERE id = %i", SQLID[playerid]);
  12998. mysql_pquery(conn, mquery);
  12999. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET HasEngineOil = 1 WHERE id = %i", SQLID[playa]);
  13000. mysql_pquery(conn, mquery);
  13001. Inventory[playerid][EngineOil] = 0;
  13002. Inventory[playa][EngineOil] = 1;
  13003. SendClientMessageF(playerid, COLOR_WHITE, "Você deu seu óleo de motor para %s.", NameRP(playa));
  13004. SendClientMessageF(playa, COLOR_WHITE, "%s te deu um Litro de óleo de motor.", NameRP(playerid));
  13005. format(sgstr, sizeof(sgstr), "* %s da um litro de óleo de motor para %s. *", NameRP(playerid), NameRP(playa));
  13006. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  13007. }
  13008. return true;
  13009. }
  13010. CMD:drop(playerid, params[])
  13011. {
  13012. if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado.");
  13013. if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid,"Você não pode usar isso em um veículo.");
  13014. new itemname[30], amount[50];
  13015. if(sscanf(params, "s[20]S()[50]", itemname, amount))
  13016. {
  13017. SysMsg(playerid,"Use: /drop [item]");
  13018. SysMsg(playerid,"Itens: Arma, Marijuana, Cocaina, Moonshine, Roupas, Maleta, Celular"); //Items: Weapon, Weed, Cocaine, Moonshine, Clothes, Briefcase, Phone");
  13019. return true;
  13020. }
  13021. if(strcmp("arma",itemname,true) == 0)
  13022. {
  13023. if(DeathTimer[playerid] == 0 && Dead{playerid}) return SysMsg(playerid, "Você não pode dropar uma arma se estiver morto.");
  13024. new wCount = 0;
  13025. for(new w = 0; w < MAX_TOTAL_WEAPONS; w++)
  13026. {
  13027. if(WeaponData[playerid][w][Weapon] > 0)
  13028. {
  13029. wCount ++;
  13030. }
  13031. }
  13032. if(!wCount) return SendClientMessage(playerid, COLOR_LIGHTBLUE, "Você não tem armas para dropar.");
  13033. new wid = GetPlayerWeapon(playerid);
  13034. if(wid == 0) return SysMsg(playerid,"Você precisa estar segurando a arma para soltá-lo.");
  13035. if(wid < 1 || wid > 47) return SysMsg(playerid,"Você não pode dropar essa arma.");
  13036. if(wid == 19 || wid == 20 || wid == 21) return SysMsg(playerid,"Você não pode dropar essa arma.");
  13037. new Slot = GetWeaponSlot(wid);
  13038. if(WeaponData[playerid][Slot][Weapon] != wid) return SysMsg(playerid,"Você não tem essa arma.");
  13039. if(WeaponData[playerid][Slot][WeaponOrigin] == 3) return SysMsg(playerid, "Você não pode dropar armas de facção.");
  13040. new Float:X,Float:Y,Float:Z;
  13041. GetPlayerPos(playerid, X, Y, Z);
  13042. DropGun(playerid, 1, WeaponData[playerid][Slot][Weapon], WeaponData[playerid][Slot][WeaponAmmo], X, Y, Z, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid));
  13043. SendClientMessage(playerid, COLOR_WHITE, "Você dropou sua arma no chão. Você pegar o item usando /pegaritem.");
  13044. format(sgstr, sizeof(sgstr), "* %s coloca uma arma no chão. *", NameRP(playerid));
  13045. SetPlayerChatBubble(playerid, sgstr, COLOR_EMOTE, 20, 7000);
  13046. mysql_format(conn, mquery, sizeof(mquery), "UPDATE weapons SET WeaponPossession = 0, OwnerSQLID = 0, WeaponAmmo = %i, Dropped = 1 WHERE id = %i", WeaponData[playerid][Slot][WeaponAmmo], WeaponData[playerid][Slot][WeaponID]);
  13047. mysql_pquery(conn, mquery);
  13048. ResetWeaponVariables(playerid, 0, Slot);
  13049. SetPlayerArmedWeapon(playerid, 0);
  13050. SyncPlayerWeapons(playerid);
  13051. OnePlayAnim(playerid,"CARRY","putdwn",4,0,0,0,0,0);
  13052. return true;
  13053. }
  13054. else if(strcmp("marijuana",itemname,true) == 0)
  13055. {
  13056. if(Inventory[playerid][Weed] == 0) return SysMsg(playerid, "Você não tem nenhuma Buxa de Marijuana.");
  13057. new Float:Pos[3];
  13058. GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  13059. new virtw = GetPlayerVirtualWorld(playerid);
  13060. DropGun(playerid, 2, 1575, Inventory[playerid][Weed], Pos[0], Pos[1], Pos[2], virtw, GetPlayerInterior(playerid));
  13061. Inventory[playerid][Weed] = 0;
  13062. MySQLUpdateInt(SQLID[playerid], "Weed", 0, "players");
  13063. format(gstr, sizeof(gstr), "* %s joga algumas buxas de Marijuana no chão. *", NameRP(playerid));
  13064. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  13065. }
  13066. else if(strcmp("MoonShine",itemname,true) == 0)
  13067. {
  13068. if(Inventory[playerid][MoonShine] == 0) return SysMsg(playerid, "Você não tem Moonshine para dropar.");
  13069. new Float:Pos[3];
  13070. GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  13071. DropGun(playerid, 3, 1950, Inventory[playerid][MoonShine], Pos[0], Pos[1], Pos[2]+0.4, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid));
  13072. Inventory[playerid][MoonShine] = 0;
  13073. MySQLUpdateInt(SQLID[playerid], "MoonShine", 0, "players");
  13074. format(gstr, sizeof(gstr), "* %s joga uma garrafa de MoonShine no chão. *", NameRP(playerid));
  13075. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  13076. OnePlayAnim(playerid,"CARRY","putdwn",4,0,0,0,0,0);
  13077. return true;
  13078. }
  13079. else if(strcmp("Cocaina",itemname,true) == 0)
  13080. {
  13081. if(Inventory[playerid][Cocaine] == 0) return SysMsg(playerid, "Você não tem nenhuma cocaina para dropar.");
  13082. new Float:Pos[3];
  13083. GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  13084. new virtw = GetPlayerVirtualWorld(playerid);
  13085. DropGun(playerid, 4, 1577, Inventory[playerid][Cocaine], Pos[0], Pos[1], Pos[2], virtw, GetPlayerInterior(playerid));
  13086. Inventory[playerid][Cocaine] = 0;
  13087. MySQLUpdateInt(SQLID[playerid], "Cocaine", 0, "players");
  13088. format(gstr, sizeof(gstr), "* %s joga algumas cocainas no chão. *", NameRP(playerid));
  13089. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  13090. OnePlayAnim(playerid,"CARRY","putdwn",4,0,0,0,0,0);
  13091. return true;
  13092. }
  13093. else if(strcmp("roupas",itemname,true) == 0)
  13094. {
  13095. if(sscanf(params, "s[20]s[50]", itemname, amount)) return SysMsg(playerid, "Use: /drop [roupas] [Slot]");
  13096. new slot = strval(amount);
  13097. if(slot < 1 || slot > 5) return SysMsg(playerid, "O slot deve ser entre 1 e 5.");
  13098. slot --;
  13099. if(Clothes[playerid][slot] == 0) return SysMsg(playerid, "Você não tem roupas nesse slot.");
  13100. if(Clothes[playerid][slot] == cPlayersSkin[playerid]) return SysMsg(playerid, "Você não pode dropar uma roupa que estar usando.");
  13101. Clothes[playerid][slot] = 0;
  13102. slot ++;
  13103. new str[10];
  13104. format(str,sizeof(str),"SkinSet%i",slot);
  13105. MySQLUpdateInt(SQLID[playerid], str, Clothes[playerid][slot-1], "players");
  13106. format(gstr, sizeof(gstr), "Você dropou uma roupa do slot %i.", slot);
  13107. SendClientMessage(playerid, COLOR_WHITE, gstr);
  13108. format(gstr, sizeof(gstr), "* %s joga algumas roupas no chão. *", NameRP(playerid));
  13109. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  13110. OnePlayAnim(playerid,"CARRY","putdwn",4,0,0,0,0,0);
  13111. return true;
  13112. }
  13113. else if(strcmp("maleta",itemname,true) == 0)
  13114. {
  13115. if(Inventory[playerid][Briefcase] == 0) return SysMsg(playerid, "Você não tem uma maleta para dropar.");
  13116. if(BriefcaseDropped[playerid] == 1) return SysMsg(playerid, "Você pode dropa apenas uma maleta.");
  13117. new Float:Pos[3];
  13118. GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  13119. GetXYInFrontOfPlayer(playerid, Pos[0], Pos[1], 3.0);
  13120. Inventory[playerid][Briefcase] = 0;
  13121. BriefcaseDropped[playerid] = 1;
  13122. BriefcaseDropPos[playerid][0] = Pos[0];
  13123. BriefcaseDropPos[playerid][1] = Pos[1];
  13124. BriefcaseDropPos[playerid][2] = Pos[2];
  13125. BriefcaseDropWorld[playerid][0] = GetPlayerVirtualWorld(playerid);
  13126. BriefcaseDropWorld[playerid][1] = GetPlayerInterior(playerid);
  13127. BriefcaseDropItems[playerid][0] = BriefcaseWeapon[playerid];
  13128. BriefcaseDropItems[playerid][2] = BriefcaseCash[playerid];
  13129. BriefcaseDropItems[playerid][3] = BriefcaseWeed[playerid];
  13130. BriefcaseDropItems[playerid][4] = BriefcaseCocaine[playerid];
  13131. BriefcaseWeapon[playerid] = 0;
  13132. BriefcaseCash[playerid] = 0;
  13133. BriefcaseWeed[playerid] = 0;
  13134. BriefcaseCocaine[playerid] = 0;
  13135. BriefcaseDropMisc[playerid][0] = BriefcaseLocked[playerid];
  13136. BriefcaseDropMisc[playerid][1] = BriefcaseCode[playerid];
  13137. BriefcaseLocked[playerid] = 0;
  13138. BriefcaseCode[playerid] = 0;
  13139. if(BriefcaseDropItems[playerid][2] > 0)
  13140. {
  13141. format(gstr, sizeof(gstr),"[%s] %s(%i) dropa uma maleta com $%i.", GetServerTimeString(), NameEx(playerid), playerid, BriefcaseDropItems[playerid][2]);
  13142. AddToLog("cash", gstr);
  13143. }
  13144. for(new ao = 0; ao < 6; ao++)
  13145. {
  13146. if(AttachedObjects[playerid][ao][aoModelID] == 1210)
  13147. {
  13148. RemovePlayerAttachedObject(playerid, ao);
  13149. AttachedObjects[playerid][ao][aoModelID] = 0;
  13150. AttachedObjects[playerid][ao][aoBone] = 0;
  13151. BriefcaseHolding[playerid] = 0;
  13152. return true;
  13153. }
  13154. }
  13155. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET HasBriefcase = %i, BriefcaseWeapon = %i, BriefcaseCash = %i, BriefcaseWeed = %i, BriefcaseCocaine = %i, BriefcaseCode = %i, BriefcaseLocked = %i WHERE id = %i",
  13156. Inventory[playerid][Briefcase], BriefcaseWeapon[playerid], BriefcaseCash[playerid], BriefcaseWeed[playerid], BriefcaseCocaine[playerid], BriefcaseCode[playerid], BriefcaseLocked[playerid], SQLID[playerid]);
  13157. mysql_pquery(conn, mquery);
  13158. new labeltext[100], lockmessage[25];
  13159. if(BriefcaseDropMisc[playerid][0] == 1) format(lockmessage, 25, "Locked");
  13160. else format(lockmessage, 25, "Unlocked");
  13161. if(BriefcaseHolding[playerid] > 0)
  13162. {
  13163. BriefcaseHolding[playerid] = 0;
  13164. RemovePlayerAttachedObject(playerid, HOLD_OBJECT_BRIEFCASE);
  13165. }
  13166. format(labeltext, 100, "MALETA\nDropada por: %s\nStatus: %s\n(( Use /pegarmaleta para pegar ))", NameRP(playerid), lockmessage);
  13167. BriefcaseDropText[playerid] = CreateDynamic3DTextLabel(labeltext, COLOR_WHITE, BriefcaseDropPos[playerid][0], BriefcaseDropPos[playerid][1], BriefcaseDropPos[playerid][2], 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, BriefcaseDropWorld[playerid][0], -1, -1, 25);
  13168. BriefcaseDropPickup[playerid] = CreateDynamicPickup(1210, 23, Pos[0], Pos[1], Pos[2], BriefcaseDropWorld[playerid][0]);
  13169. SendClientMessage(playerid, COLOR_WHITE, "Você jogou sua maleta no chão. (Qualquer um pode pegar agora)");
  13170. format(gstr, sizeof(gstr), "* %s joga uma pasta no chão. *", NameRP(playerid));
  13171. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  13172. OnePlayAnim(playerid,"CARRY","putdwn",4,0,0,0,0,0);
  13173. }
  13174. else if(strcmp("celular", itemname, true) == 0)
  13175. {
  13176. if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid, "Você não tem um Celular para dropar.");
  13177. if(IsPhoneRinging[playerid] == 1) return SysMsg(playerid,"Você não pode deixar cair o celula enquanto ele está tocando.");
  13178. if(CallerID[playerid] != -1 || CallerService[playerid] != -1) return SysMsg(playerid,"Você não pode soltar o celular enquanto estiver usando-o.");
  13179. new Float:X, Float:Y, Float:Z;
  13180. GetPlayerPos(playerid, X, Y, Z);
  13181. Inventory[playerid][MobilePhone] = 0;
  13182. mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET PhonePossessor = 0, PhonePossession = 0 WHERE id = %i", PhoneData[playerid][pID]);
  13183. mysql_pquery(conn, mquery);
  13184. SendClientMessage(playerid, COLOR_WHITE, "Você dropou seu celular no chão, qualquer um pode pegar agora.");
  13185. format(gstr, sizeof(gstr), "* %s joga seu celular no chão. *", NameRP(playerid));
  13186. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  13187. DropGun(playerid, 6, 330, 1, X, Y, Z, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid));
  13188. OnePlayAnim(playerid,"CARRY","putdwn",4,0,0,0,0,0);
  13189. return true;
  13190. }
  13191. return true;
  13192. }
  13193. CMD:pegarmaleta(playerid, params[])//pegarmaleta
  13194. {
  13195. if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado.");
  13196. if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid,"Você não pode usar isso em um veículo.");
  13197. if(Inventory[playerid][Briefcase] == 1) return SysMsg(playerid, "Você já tem uma pasta.");
  13198. foreach(new i: Player)
  13199. {
  13200. if(Logged{i} && BriefcaseDropped[i] == 1)
  13201. {
  13202. if(IsPlayerInRangeOfPoint(playerid, 2.0, BriefcaseDropPos[i][0], BriefcaseDropPos[i][1], BriefcaseDropPos[i][2]) && GetPlayerVirtualWorld(playerid) == BriefcaseDropWorld[i][0] && GetPlayerInterior(playerid) == BriefcaseDropWorld[i][1])
  13203. {
  13204. Inventory[playerid][Briefcase] = 1;
  13205. BriefcaseWeapon[playerid] = BriefcaseDropItems[i][0];
  13206. BriefcaseCash[playerid] = BriefcaseDropItems[i][2];
  13207. BriefcaseWeed[playerid] = BriefcaseDropItems[i][3];
  13208. BriefcaseCocaine[playerid] = BriefcaseDropItems[i][4];
  13209. BriefcaseCode[playerid] = BriefcaseDropMisc[i][1];
  13210. BriefcaseLocked[playerid] = BriefcaseDropMisc[i][0];
  13211. if(BriefcaseCash[playerid] > 0)
  13212. {
  13213. format(gstr, sizeof(gstr),"[%s] %s(%i) pegou uma maleta no chão com $%i. (Total: $%i)", GetServerTimeString(), NameEx(playerid), playerid, BriefcaseCash[playerid], Cash[playerid]);
  13214. AddToLog("cash", gstr);
  13215. }
  13216. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET HasBriefcase = %i, BriefcaseWeapon = %i, BriefcaseCash = %i, BriefcaseWeed = %i, BriefcaseCocaine = %i, BriefcaseCode = %i, BriefcaseLocked = %i WHERE id = %i",
  13217. Inventory[playerid][Briefcase], BriefcaseWeapon[playerid], BriefcaseCash[playerid], BriefcaseWeed[playerid], BriefcaseCocaine[playerid], BriefcaseCode[playerid], BriefcaseLocked[playerid], SQLID[playerid]);
  13218. mysql_pquery(conn, mquery);
  13219. BriefcaseDropItems[i][0] = 0;
  13220. BriefcaseDropItems[i][1] = 0;
  13221. BriefcaseDropItems[i][2] = 0;
  13222. BriefcaseDropItems[i][3] = 0;
  13223. BriefcaseDropItems[i][4] = 0;
  13224. BriefcaseDropped[i] = 0;
  13225. BriefcaseDropPos[i][0] = 0.0;
  13226. BriefcaseDropPos[i][1] = 0.0;
  13227. BriefcaseDropPos[i][2] = 0.0;
  13228. BriefcaseDropWorld[i][0] = 0;
  13229. BriefcaseDropWorld[i][1] = 0;
  13230. BriefcaseDropMisc[i][1] = 0;
  13231. BriefcaseDropMisc[i][0] = 0;
  13232. DestroyDynamic3DTextLabel(BriefcaseDropText[i]);
  13233. BriefcaseDropText[i] = Text3D:INVALID_3DTEXT_ID;
  13234. DestroyDynamicPickup(BriefcaseDropPickup[i]);
  13235. for(new ao = 0; ao < 6; ao++)
  13236. {
  13237. if(AttachedObjects[playerid][ao][aoModelID] == 0)
  13238. {
  13239. AttachedObjects[playerid][ao][aoModelID] = 1210;
  13240. AttachedObjects[playerid][ao][aoBone] = 6;
  13241. SetPlayerAttachedObject(playerid, ao, 19624, 6, 0.066999, 0.032000, 0.000000, -39.700004, -99.600051, 1.899998);
  13242. break;
  13243. }
  13244. }
  13245. BriefcaseHolding[playerid] = 1;
  13246. SendClientMessage(playerid, COLOR_WHITE, "Você encontrou uma Pasta no chão e pegou. (Use /bcase para usar)");
  13247. format(gstr, sizeof(gstr), "* %s pega uma maleta do chão. *", NameRP(playerid));
  13248. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  13249. break;
  13250. }
  13251. }
  13252. }
  13253. return true;
  13254. }
  13255. CMD:pegaritem(playerid, params[])
  13256. {
  13257. if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado.");//pegaritem
  13258. for(new i = 0; i < MAX_GUNS; i++)
  13259. {
  13260. if(IsPlayerInRangeOfPoint(playerid, 1.0, WeaponDrop[i][wX], WeaponDrop[i][wY], WeaponDrop[i][wZ]))
  13261. {
  13262. if(GetPlayerVirtualWorld(playerid) == WeaponDrop[i][DropvWorld] && GetPlayerInterior(playerid) == WeaponDrop[i][DropInt])
  13263. {
  13264. if(WeaponDrop[i][Type] == 2)
  13265. {
  13266. Inventory[playerid][Weed] += WeaponDrop[i][DropAmmo];
  13267. WeaponDrop[i][wX] = 0.0;
  13268. WeaponDrop[i][wY] = 0.0;
  13269. WeaponDrop[i][wZ] = 0.0;
  13270. WeaponDrop[i][DropModel] = 0;
  13271. WeaponDrop[i][DropAmmo] = 0;
  13272. WeaponDrop[i][DropvWorld] = 0;
  13273. WeaponDrop[i][DropInt] = 0;
  13274. WeaponDrop[i][gSpawned] = 0;
  13275. OnePlayAnim(playerid, "CARRY", "liftup", 4,0,0,0,0,0);
  13276. DestroyDynamicObjectEx(DropObject[i], "DropObject[i]");
  13277. DropObject[i] = INVALID_OBJECT_ID;
  13278. SendClientMessage(playerid, COLOR_WHITE, "Você pegou um maço de Marijuana do chão.");
  13279. break;
  13280. }
  13281. else if(WeaponDrop[i][Type] == 3)
  13282. {
  13283. Inventory[playerid][MoonShine] += WeaponDrop[i][DropAmmo];
  13284. WeaponDrop[i][wX] = 0.0;
  13285. WeaponDrop[i][wY] = 0.0;
  13286. WeaponDrop[i][wZ] = 0.0;
  13287. WeaponDrop[i][DropModel] = 0;
  13288. WeaponDrop[i][DropAmmo] = 0;
  13289. WeaponDrop[i][DropvWorld] = 0;
  13290. WeaponDrop[i][DropInt] = 0;
  13291. WeaponDrop[i][gSpawned] = 0;
  13292. OnePlayAnim(playerid, "CARRY", "liftup", 4,0,0,0,0,0);
  13293. DestroyDynamicObjectEx(DropObject[i], "DropObject[i]");
  13294. SendClientMessage(playerid, COLOR_WHITE, "Você pegou uma garrafa de aguardente do chão.");
  13295. break;
  13296. }
  13297. else if(WeaponDrop[i][Type] == 4)
  13298. {
  13299. Inventory[playerid][Cocaine] += WeaponDrop[i][DropAmmo];
  13300. WeaponDrop[i][wX] = 0.0;
  13301. WeaponDrop[i][wY] = 0.0;
  13302. WeaponDrop[i][wZ] = 0.0;
  13303. WeaponDrop[i][DropModel] = 0;
  13304. WeaponDrop[i][DropAmmo] = 0;
  13305. WeaponDrop[i][DropvWorld] = 0;
  13306. WeaponDrop[i][DropInt] = 0;
  13307. WeaponDrop[i][gSpawned] = 0;
  13308. OnePlayAnim(playerid, "CARRY", "liftup", 4,0,0,0,0,0);
  13309. DestroyDynamicObjectEx(DropObject[i], "DropObject[i]");
  13310. DropObject[i] = INVALID_OBJECT_ID;
  13311. SendClientMessage(playerid, COLOR_WHITE, "Você pegou um maço de cocaína do chão.");
  13312. break;
  13313. }
  13314. else if(WeaponDrop[i][Type] == 6)
  13315. {
  13316. if(Inventory[playerid][MobilePhone] == 1) return SysMsg(playerid, "Você já possui um celular móvel.");
  13317. WeaponDrop[i][wX] = 0.0;
  13318. WeaponDrop[i][wY] = 0.0;
  13319. WeaponDrop[i][wZ] = 0.0;
  13320. WeaponDrop[i][DropModel] = 0;
  13321. WeaponDrop[i][DropAmmo] = 0;
  13322. WeaponDrop[i][DropvWorld] = 0;
  13323. WeaponDrop[i][DropInt] = 0;
  13324. WeaponDrop[i][gSpawned] = 0;
  13325. mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET PhonePossessor = %i, PhonePossession = 1 WHERE id = %i", SQLID[playerid], WeaponDrop[i][PhoneID]);
  13326. mysql_pquery(conn, mquery);
  13327. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM phones WHERE id = %i", WeaponDrop[i][PhoneID]);
  13328. mysql_pquery(conn, mquery, "LoadPlayerPhone", "d", playerid);
  13329. WeaponDrop[i][PhoneID] = 0;
  13330. WeaponDrop[i][DropPhoneNumber] = 0;
  13331. WeaponDrop[i][DropPhonePower] = 0;
  13332. OnePlayAnim(playerid, "CARRY", "liftup", 4,0,0,0,0,0);
  13333. DestroyDynamicObjectEx(DropObject[i], "DropObject[i]");
  13334. DropObject[i] = INVALID_OBJECT_ID;
  13335. SendClientMessage(playerid, COLOR_WHITE, "Você pegou um celular do chão, use /cinfo para ver as informações do celular.");
  13336. }
  13337. else if(WeaponDrop[i][Type] == 1)
  13338. {
  13339. if(!IsPlayerAdmin(playerid) && IsBanWeapon(WeaponDrop[i][DropModel])) return SysMsg(playerid, "Você não pode pegar esta arma.");
  13340. if(GetFreeWeaponObjectIndex(playerid) == -1) return SysMsg(playerid, "Você não pode carregar outra arma agora.");
  13341. if(WeaponDrop[i][DropModel] == 14) UnlockAchievement(playerid, 48);
  13342. if(!WeaponCheck(playerid, WeaponDrop[i][DropModel])) return SysMsg(playerid, "Você não pode pegar essa arma, ou tens duas pistolas ou uma arma primária e uma pistola na tua pessoa.");
  13343. if(WeaponData[playerid][GetWeaponSlot(WeaponDrop[i][DropModel])][Weapon] != 0) return SysMsg(playerid, "Você já está carregando uma arma desse tipo.");
  13344. new slot = GetWeaponSlot(WeaponDrop[i][DropModel]);
  13345. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM weapons WHERE id = %i", WeaponDrop[i][DropWeaponID]);
  13346. new Cache:result = mysql_query(conn, mquery);
  13347. if(cache_num_rows())
  13348. {
  13349. WeaponData[playerid][slot][WeaponID] = cache_get_field_content_int(0, "id");
  13350. WeaponData[playerid][slot][WeaponTimestamp] = cache_get_field_content_int(0, "Timestamp");
  13351. WeaponData[playerid][slot][wCreatorSQLID] = cache_get_field_content_int(0, "CreatorSQLID");
  13352. WeaponData[playerid][slot][Weapon] = cache_get_field_content_int(0, "WeaponID");
  13353. WeaponData[playerid][slot][wOwnerSQLID] = cache_get_field_content_int(0, "OwnerSQLID");
  13354. WeaponData[playerid][slot][WeaponAmmo] = cache_get_field_content_int(0, "WeaponAmmo");
  13355. WeaponData[playerid][slot][WeaponType] = GetWeaponType(WeaponData[playerid][slot][Weapon]);
  13356. WeaponData[playerid][slot][WeaponOrigin] = cache_get_field_content_int(0, "WeaponOrigin");
  13357. WeaponData[playerid][slot][WeaponPossession] = cache_get_field_content_int(0, "WeaponPossession");
  13358. }
  13359. cache_delete(result);
  13360. mysql_format(conn, mquery, sizeof(mquery), "UPDATE weapons SET OwnerSQLID = %i, WeaponPossession = 1, Dropped = 0 WHERE id = %i", SQLID[playerid], WeaponData[playerid][slot][WeaponID]);
  13361. mysql_pquery(conn, mquery);
  13362. WeaponDrop[i][wX] = 0.0;
  13363. WeaponDrop[i][wY] = 0.0;
  13364. WeaponDrop[i][wZ] = 0.0;
  13365. WeaponDrop[i][DropModel] = 0;
  13366. WeaponDrop[i][DropWeaponID] = 0;
  13367. WeaponDrop[i][DropAmmo] = 0;
  13368. WeaponDrop[i][DropvWorld] = 0;
  13369. WeaponDrop[i][DropInt] = 0;
  13370. WeaponDrop[i][gSpawned] = 0;
  13371. SyncPlayerWeapons(playerid);
  13372. OnePlayAnim(playerid, "CARRY", "liftup", 4,0,0,0,0,0);
  13373. DestroyDynamicObjectEx(DropObject[i], "DropObject[i]");
  13374. DropObject[i] = INVALID_OBJECT_ID;
  13375. SendClientMessageF(playerid, COLOR_WHITE, "Você pegou %s do chão.", weaponstring[WeaponData[playerid][slot][Weapon]]);
  13376. break;
  13377. }
  13378. }
  13379. }
  13380. }
  13381. for(new d = 1; d < MAX_DRUGS; d++) //drug comment
  13382. {
  13383. if(DrugTakenData[d][effActive] == 2)
  13384. {
  13385. if(IsPlayerInRangeOfPoint(playerid, 2.0, DrugTakenData[d][drugPos][0], DrugTakenData[d][drugPos][1], DrugTakenData[d][drugPos][2] + 1.0))
  13386. {
  13387. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM drugs WHERE drugOwner = %d AND drugEffects = '%s' AND drugComedown = '%s' AND drugQuality = %d", SQLID[playerid], DrugTakenData[d][drugEffects], DrugTakenData[d][drugComedown], DrugTakenData[d][drugsQuality]);
  13388. mysql_pquery(conn, mquery, "PickupDrug", "ii", playerid, d);
  13389. break;
  13390. }
  13391. }
  13392. }
  13393. for(new d = 1; d < MAX_INGREDIENTS; d++)
  13394. {
  13395. if(IngredientsData[d][ingredPos][0] != 0.0 && IngredientsData[d][ingredPos][1] != 0.0)
  13396. {
  13397. if(IsPlayerInRangeOfPoint(playerid, 2.0, IngredientsData[d][ingredPos][0], IngredientsData[d][ingredPos][1], IngredientsData[d][ingredPos][2] + 1.0))
  13398. {
  13399. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM ingredients WHERE ingOwner = %d AND ingType = %d", SQLID[playerid], IngredientsData[d][ingredType]);
  13400. mysql_pquery(conn, mquery, "PickupIngredient", "ii", playerid, d);
  13401. break;
  13402. }
  13403. }
  13404. }
  13405. for(new tein = 0; tein < sizeof(TestIngred); tein++)
  13406. {
  13407. if(IsPlayerInRangeOfPoint(playerid, 1.5, TestIngred[tein][tePos][0], TestIngred[tein][tePos][1], TestIngred[tein][tePos][2]))
  13408. {
  13409. SendClientMessageF(playerid, COLOR_YELLOW, "Você pegou 20 %s do chão para fins de testa.", IngredName[TestIngred[tein][teDrugType]]);
  13410. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM ingredients WHERE ingOwner = %d AND ingType = %d", SQLID[playerid], TestIngred[tein][teDrugType]);
  13411. mysql_pquery(conn, mquery, "PickupTestIngredient", "dd", playerid, TestIngred[tein][teDrugType]);
  13412. break;
  13413. }
  13414. }
  13415. return true;
  13416. }
  13417. CMD:caridade(playerid, params[])
  13418. {
  13419. if(!Logged{playerid}) return true;
  13420. if(isnull(params)) return SysMsg(playerid,"/caridade [quantidade]");
  13421. new amount = strval(params);
  13422. if(amount < 1 || amount > Cash[playerid]) return SysMsg(playerid,"O valor deve ser entre 1 e seu dinheiro deve estar na mão.");
  13423. GivePlayerCash(playerid, -amount);
  13424. MySQLUpdateInt(SQLID[playerid], "Cash", amount, "players");
  13425. LotteryJackpot += amount;
  13426. if(amount > 999) UnlockAchievement(playerid, 40);
  13427. SendClientMessageF(playerid, COLOR_PINK, "Você deu $%s do seu dinheiro. O dinheiro foi arrecadado para o próximo jogo do /Jackpot.", format_cash(amount));
  13428. format(gstr, sizeof(gstr),"[%s] %s(%i) colocou $%i à caridade. (Total: $%i)", GetServerTimeString(), NameEx(playerid), playerid, amount, Cash[playerid]);
  13429. AddToLog("cash", gstr);
  13430. return true;
  13431. }
  13432. CMD:jackpot(playerid, params[])
  13433. {
  13434. if(!Logged{playerid}) return true;
  13435. SendClientMessageF(playerid, COLOR_PINK, "Loteria jackpot: {FFFFFF}$%s", format_cash(LotteryJackpot));
  13436. if(LotteryNumber[playerid] != -1) SendClientMessageF(playerid, COLOR_PINK, "O número do seu bilhete para o próximo sorteio é {FFFFFF}%i.", LotteryNumber[playerid]);
  13437. else SendClientMessage(playerid, COLOR_PINK, "Você não foi inscrito para o próximo sorteio.");
  13438. return true;
  13439. }
  13440. CMD:destruirdinheiro(playerid, params[])
  13441. {
  13442. if(!Logged{playerid}) return SysMsg(playerid, "Você deve estar logado.");
  13443. if(Cash[playerid] < 0) return SysMsg(playerid, "Você deve ter dinheiro na mão para usar esse comando.");
  13444. new monies, conf[12];
  13445. if(sscanf(params, "iS()[12]", monies, conf)) return SysMsg(playerid, "Use: /destruirdinheiro [quantidade] *ESSA QUANTIDADE DE DINHEIRO SERÁ DELETADA E NÃO É POSSIVEL RECUPERAR.*");
  13446. if(isnull(conf)) return SendClientMessageF(playerid, COLOR_WHITE, "Usando este comando irá excluir $%s do seu dinheiro da mão. Escreva /destruirdinheiro %i confirmar para continuar.", format_cash(monies), monies);
  13447. if(strmatch(conf, "confirmar") && monies >= 1)
  13448. {
  13449. if(Cash[playerid] - monies < 0) return SysMsg(playerid, "Subtrair esse muito dinheiro do seu dinheiro na mão iria colocá-lo em um saldo negativo.");
  13450. GivePlayerCash(playerid, -monies);
  13451. SendClientMessageF(playerid, COLOR_WHITE, "Você enviou $%s para o vazio.", format_cash(monies));
  13452. return true;
  13453. }
  13454. return true;
  13455. }
  13456. CMD:hesoyam(playerid, params[])
  13457. {
  13458. if(!Logged{playerid}) return true;
  13459. UnlockAchievement(playerid, 26);
  13460. return true;
  13461. }
  13462. CMD:hegebe(playerid, params[])
  13463. {
  13464. if(!Logged{playerid}) return true;
  13465. UnlockAchievement(playerid, 60);
  13466. return true;
  13467. }
  13468. CMD:nametags(playerid, params[])
  13469. {
  13470. if(nameshidden[playerid] == 0)
  13471. {
  13472. foreach(new i: Player) ShowPlayerNameTagForPlayer(playerid, i, false);
  13473. nameshidden[playerid] = 1;
  13474. SysMsg(playerid,"Você desabilitou o name tag; Use /nametags para habilidade.");
  13475. }
  13476. else
  13477. {
  13478. foreach(new i: Player) if(!MaskHideName{i}) ShowPlayerNameTagForPlayer(playerid, i, true);
  13479. nameshidden[playerid] = 0;
  13480. SysMsg(playerid,"Você já habilitou etiquetas de nome de jogador; Use /nametags para desabilitar.");
  13481. }
  13482. return true;
  13483. }
  13484. CMD:me(playerid, params[])
  13485. {
  13486. if(!Logged{playerid}) return true;
  13487. if(isnull(params)) return SysMsg(playerid,"Use: /me [ação]");
  13488. new Float:radius = 20.0, occupants;
  13489. if(IsInHouseID[playerid] != -1) occupants = HouseData[IsInHouseID[playerid]][HouseOccupants];
  13490. else if(IsInBizzID[playerid] != -1) occupants = BizzData[IsInBizzID[playerid]][BizzOccupants];
  13491. if(occupants < 10) radius = 20.0;
  13492. else if(occupants < 20) radius = 10.0;
  13493. else radius = 5.0;
  13494. format(gstr, sizeof(gstr),"%s %s", NameRP(playerid), params);
  13495. ProxDetector(radius, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  13496. totalmes ++;
  13497. return true;
  13498. }
  13499. CMD:ame(playerid, params[])
  13500. {
  13501. if(!Logged{playerid}) return true;
  13502. if(isnull(params)) return SysMsg(playerid,"Use: /ame [ação]");
  13503. SetPlayerChatBubble(playerid, params, COLOR_EMOTE, 15.0, 6000);
  13504. SendClientMessageF(playerid, COLOR_EMOTE, "Mensagem Anotada: %s", params);
  13505. return true;
  13506. }
  13507. CMD:ame2(playerid, params[])
  13508. {
  13509. if(!Logged{playerid}) return true;
  13510. if(isnull(params)) return SysMsg(playerid,"Use: /ame [ação]");
  13511. SetPlayerChatBubble(playerid, params, COLOR_EMOTE, 15.0, 6000);
  13512. return true;
  13513. }
  13514. CMD:do(playerid, params[])
  13515. {
  13516. if(!Logged{playerid}) return true;
  13517. if(isnull(params)) return SysMsg(playerid,"Use: /do [ação]");
  13518. new Float:radius = 20.0, occupants;
  13519. if(IsInHouseID[playerid] != -1) occupants = HouseData[IsInHouseID[playerid]][HouseOccupants];
  13520. else if(IsInBizzID[playerid] != -1) occupants = BizzData[IsInBizzID[playerid]][BizzOccupants];
  13521. if(occupants < 10) radius = 20.0;
  13522. else if(occupants < 20) radius = 10.0;
  13523. else radius = 5.0;
  13524. format(sgstr, sizeof(sgstr), "%s ((%s))", params, NameRP(playerid));
  13525. ProxDetector(radius, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  13526. return true;
  13527. }
  13528. CMD:tentar(playerid, params[])
  13529. {
  13530. if(!Logged{playerid}) return true;
  13531. if(isnull(params)) return SysMsg(playerid,"Use: /tentar [ação]");
  13532. new success = random(50);
  13533. if(success < 25) format(sgstr, sizeof(sgstr), "* %s tentou %s e conseguiu. *", NameRP(playerid), params);
  13534. else format(sgstr, sizeof(sgstr), "* %s tentou %s e não conseguiu. *", NameRP(playerid), params);
  13535. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  13536. return true;
  13537. }
  13538. CMD:sdo(playerid, params[])
  13539. {
  13540. if(!Logged{playerid}) return true;
  13541. if(!IsPlayerAdmin(playerid)) return false;
  13542. if(isnull(params)) return SysMsg(playerid,"Use: /sdo [ação]");
  13543. ProxDetector(20.0, playerid, params, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  13544. return true;
  13545. }
  13546. CMD:acento(playerid, params[])
  13547. {
  13548. if(!Logged{playerid}) return true;
  13549. if(isnull(params)) return SysMsg(playerid,"Use: /acento [sotaque] - Examplo: 'Italiano'. Use 'nenhum' para remover o sotaque.");
  13550. if(strlen(params) > 11) return SysMsg(playerid,"Sotaque era muito longo (max 11 characters).");
  13551. if(strlen(params) < 3) return SysMsg(playerid,"Sotaque muito curto (min 3 characters).");
  13552. if(strcmp("nenhum", params, true) == 0)
  13553. {
  13554. if(UsingAccent[playerid] == 0) return SysMsg(playerid,"Você não tem um sotaque.");
  13555. Accent[playerid][0] = EOS;
  13556. UsingAccent[playerid] = 0;
  13557. MySQLUpdateString(SQLID[playerid], "Accent", Accent[playerid], "players");
  13558. SendClientMessage(playerid, COLOR_WHITE, "Você removeu seu sotaque.");
  13559. return true;
  13560. }
  13561. new acc[10]; format(acc, sizeof(acc), params);
  13562. UsingAccent[playerid] = 1;
  13563. format(Accent[playerid], 12, params);
  13564. MySQLUpdateString(SQLID[playerid], "Accent", Accent[playerid], "players");
  13565. SendClientMessageF(playerid, COLOR_WHITE, "Seu acento é: %s. Use '/acento nenhum' para remover.", Accent[playerid]);
  13566. UnlockAchievement(playerid,25);
  13567. return true;
  13568. }
  13569. CMD:aparencia(playerid, params[])
  13570. {
  13571. if(!Logged{playerid}) return true;
  13572. if(isnull(params)) return SysMsg(playerid,"Use: /aparencia [descrição]");
  13573. if(strlen(params) - 12 > 128) return SysMsg(playerid,"Use uma descrição de aparência mais curta.");
  13574. if(strcmp(params, "nenhuma", true) == 0)
  13575. {
  13576. Appearance[playerid][0] = EOS;
  13577. MySQLUpdateString(SQLID[playerid], "LooksLike", Appearance[playerid], "players");
  13578. SendClientMessage(playerid, COLOR_WHITE, "A descrição da aparência foi removida.");
  13579. return true;
  13580. }
  13581. format(Appearance[playerid], 128, params);
  13582. MySQLUpdateString(SQLID[playerid], "LooksLike", Appearance[playerid], "players");
  13583. SendClientMessageF(playerid, COLOR_WHITE, "Sua aparência é agora: '%s'. Use '/aparencia nenhuma' para remover isso.", Appearance[playerid]);
  13584. return true;
  13585. }
  13586. CMD:descrever(playerid, params[])//observar
  13587. {
  13588. if(!Logged{playerid}) return true;
  13589. new playa = -1;
  13590. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /descrever [ID ou nome do jogador]");
  13591. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  13592. if(strlen(Appearance[playa]) == 0) return SysMsg(playerid,"O jogador não tem descrição para ver.");
  13593. new Float:tX,Float:tY,Float:tZ;
  13594. GetPlayerPos(playa,tX,tY,tZ);
  13595. if(!IsPlayerInRangeOfPoint(playerid,5.0,tX,tY,tZ) && IsSpectating[playa] != -1) return SysMsg(playerid,"Você deve estar perto do jogador.");
  13596. format(gstr, sizeof(gstr), "* %s * (%s)", Appearance[playa], NameRP(playa));
  13597. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  13598. return true;
  13599. }
  13600. CMD:checkid(playerid, params[])
  13601. {
  13602. if(IsPlayerInAnyVehicle(playerid))
  13603. {
  13604. new v = GetPlayerVehicleID(playerid);
  13605. if(VehicleData[v][VehicleOwnerSQLID] != 0)
  13606. {
  13607. SendClientMessageF(playerid, COLOR_WHITE, "[Veiculo ID] %s - ID %i", GetVehicleName(v), VehicleData[v][VehSQLID]);
  13608. return true;
  13609. }
  13610. if(FVehicleData[v][FactionVehID] == v)
  13611. {
  13612. SendClientMessageF(playerid, COLOR_WHITE, "[Veiculo de facção ID] %s - ID %i, Criador: %s", GetVehicleName(v), FVehicleData[v][FVSQLID], GetSQLName(GetFactionVehicleCreator(FVehicleData[v][FVSQLID])));
  13613. return true;
  13614. }
  13615. }
  13616. for(new p = 0; p < MAX_SQLPICKUPS; p++)
  13617. {
  13618. if(IsPlayerInRangeOfPoint(playerid, DOOR_PROXIMITY, PickupData[p][Xpos], PickupData[p][Ypos], PickupData[p][Zpos]))
  13619. {
  13620. SendClientMessageF(playerid, COLOR_WHITE, "[Pickup ID] - ID %i", PickupData[p][PickupSQLID]);
  13621. return true;
  13622. }
  13623. }
  13624. for(new int = 0; int < MAX_INTERIORS; int++)
  13625. {
  13626. if(IsPlayerInRangeOfPoint(playerid, DOOR_PROXIMITY, Interiors[int][oPosX], Interiors[int][oPosY], Interiors[int][oPosZ]))
  13627. {
  13628. SendClientMessageF(playerid, COLOR_WHITE, "[Interior ID] ID %i", Interiors[int][interiorID]);
  13629. return true;
  13630. }
  13631. }
  13632. for(new b = 0; b < MAX_BIZZ; b++)
  13633. {
  13634. if(IsPlayerInRangeOfPoint(playerid, DOOR_PROXIMITY, BizzData[b][oPosX], BizzData[b][oPosY], BizzData[b][oPosZ]))
  13635. {
  13636. SendClientMessageF(playerid, COLOR_WHITE, "[Negocio ID] %s - ID %i", BizzData[b][BizzDescription], BizzData[b][BizzSQLID]);
  13637. return true;
  13638. }
  13639. }
  13640. for(new h = 0; h < MAX_HOUSES; h++)
  13641. {
  13642. if(IsPlayerInRangeOfPoint(playerid, DOOR_PROXIMITY, HouseData[h][oPosX], HouseData[h][oPosY], HouseData[h][oPosZ]) && GetPlayerVirtualWorld(playerid) == HouseData[h][HouseExtVW])
  13643. {
  13644. SendClientMessageF(playerid, COLOR_WHITE, "[Casa ID] %s - ID %i", HouseData[h][HouseDescription], HouseData[h][HouseSQLID]);
  13645. return true;
  13646. }
  13647. }
  13648. for(new g = 0; g < MAX_GARAGES; g++)
  13649. {
  13650. if(IsPlayerInRangeOfPoint(playerid, DOOR_PROXIMITY, GarageData[g][oPosX], GarageData[g][oPosY], GarageData[g][oPosZ]) && GetPlayerVirtualWorld(playerid) == GarageData[g][oVirtualWorld])
  13651. {
  13652. SendClientMessageF(playerid, COLOR_WHITE, "[Garagem ID] ID %i", GarageData[g][gID]);
  13653. return true;
  13654. }
  13655. }
  13656. SysMsg(playerid, "Nada foi encontrado.");
  13657. return true;
  13658. }
  13659. CMD:getid(playerid, params[])
  13660. {
  13661. if(isnull(params)) return SysMsg(playerid,"Use: /id [Parte/Nome completo do jogador]");
  13662. if(strlen(params) < 3) return SysMsg(playerid,"Use: /id [Parte/Nome completo do jogador]");
  13663. new count = 0;
  13664. foreach(new i: Player)
  13665. {
  13666. if(strfind(GetName(i), params, true) != -1)
  13667. {
  13668. count ++;
  13669. SendClientMessageF(playerid, COLOR_WHITE, "%s - ID %i", NameEx(i), i);
  13670. }
  13671. }
  13672. if(count == 0) SysMsg(playerid, "Não foi encontrado nenhum jogador com esse nome.");
  13673. return true;
  13674. }
  13675. CMD:id(playerid, params[]) return cmd_getid(playerid, params);
  13676. CMD:kill(playerid, params[])
  13677. {
  13678. if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado.");
  13679. if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você já está morto.");
  13680. if(IsJailed[playerid] == 1 || AdminJailData[playerid][0] == 1) return true;
  13681. if(IsCuffed[playerid] == 1) return true;
  13682. if(isnull(params))
  13683. {
  13684. SetPlayerHealthEx(playerid, 0.0);
  13685. SetPlayerArmourEx(playerid, 0.0, 0);
  13686. SetPlayerChatBubble(playerid, "(( O player usou /kill ))", COLOR_ORANGE, 15.0, 5000);
  13687. format(gstr, sizeof(gstr),"[Death - System] %s usou o comando /kill", NameEx(playerid));
  13688. AdminBroadcast(gstr, 1);
  13689. }
  13690. else
  13691. {
  13692. if(!IsPlayerAdminLevelOK(playerid, 3)) return SysMsg(playerid, AUTHMSG);
  13693. new playa = -1;
  13694. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /kill [player id ou nome]");
  13695. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  13696. SetPlayerHealthEx(playa,0.0);
  13697. SetPlayerArmourEx(playa,0.0, 0);
  13698. format(gstr, sizeof(gstr),"Admin %s matou você com comando admin.",NameEx(playerid));
  13699. SendClientMessage(playa,COLOR_RED,gstr);
  13700. format(gstr, sizeof(gstr),"Você matou %s.",NameEx(playa));
  13701. SendClientMessage(playerid,COLOR_LIGHTRED,gstr);
  13702. format(gstr, sizeof(gstr),"[Death - System] Admin %s mantou %s ", NameEx(playerid), NameEx(playa));
  13703. AdminBroadcast(gstr, 1);
  13704. SetPlayerChatBubble(playa, "(( Admin usou /kill neste player ))", COLOR_ORANGE, 15.0, 5000);
  13705. }
  13706. return true;
  13707. }
  13708. CMD:hora(playerid, params[])
  13709. {
  13710. if(!Logged{playerid}) return true;
  13711. if(Inventory[playerid][Watch] == 0) return SysMsg(playerid,"Você não tem um relógio.");
  13712. new StNdRdTh[4], Year, Month, Day;
  13713. getdate(Year, Month, Day);
  13714. StNdRdTh = "";
  13715. if(Day == 1||Day == 21||Day == 31) StNdRdTh = "";
  13716. else if(Day == 2||Day == 22) StNdRdTh = "";
  13717. else if(Day == 3||Day == 23) StNdRdTh = "";
  13718. SysMsgF(playerid, "Hora atual: %s, Data de hoje: %i%s de %s %i", GetTimeString(), Day, StNdRdTh, GetMonthName(Month), gServerYear);
  13719. format(gstr, sizeof(gstr),"* %s olha para seu relógio. *", NameRP(playerid));
  13720. ProxDetector(10.0,playerid,gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  13721. if(!IsPlayerInAnyVehicle(playerid)) OnePlayAnim(playerid, "PLAYIDLES", "time", 3.0, 0, 0, 0, 0, 0);
  13722. return true;
  13723. }
  13724. CMD:date(playerid, params[]) return cmd_hora(playerid, params);
  13725. CMD:showtime(playerid, params[])//showtime
  13726. {
  13727. if(!Logged{playerid}) return true;
  13728. if(Inventory[playerid][Watch] == 0) return SysMsg(playerid,"Você não tem um relógio.");
  13729. if(TimeIsDisplayed{playerid} != 0)
  13730. {
  13731. TextDrawHideForPlayer(playerid, TimeText);
  13732. TextDrawHideForPlayer(playerid, TimeText24);
  13733. TimeIsDisplayed{playerid} = 0;
  13734. SysMsg(playerid,"Exibição de tempo oculta.");
  13735. }
  13736. else
  13737. {
  13738. if(isnull(params) || !IsNumeric(params)) return SysMsg(playerid, "Use: /hora [24/12]");
  13739. if(strval(params) == 12) TextDrawShowForPlayer(playerid, TimeText);
  13740. else if(strval(params) == 24) TextDrawShowForPlayer(playerid, TimeText24);
  13741. TimeIsDisplayed{playerid} = true;
  13742. SysMsg(playerid,"Time Display On.");
  13743. }
  13744. return true;
  13745. }
  13746. CMD:togpay(playerid, params[])
  13747. {
  13748. if(!Logged{playerid}) return true;
  13749. if(!CheckReady{playerid}) return SysMsg(playerid,"Você não tem um Payday pendente.");
  13750. if(PaycheckDisplayed{playerid})
  13751. {
  13752. PlayerTextDrawHide(playerid, Signcheck[playerid]);
  13753. PaycheckDisplayed{playerid} = false;
  13754. SysMsg(playerid,"Você escondeu seu Payday, use o mesmo comando para exebi-lo na sua tela.");
  13755. }
  13756. else
  13757. {
  13758. format(gstr, sizeof(gstr), "~g~~h~~h~Payday: ~w~%i", CheckNumber[playerid]);
  13759. PlayerTextDrawSetString(playerid, Signcheck[playerid], gstr);
  13760. PlayerTextDrawShow(playerid, Signcheck[playerid]);
  13761. PaycheckDisplayed{playerid} = true;
  13762. SysMsg(playerid,"Seu Payday está aparecendo novamente, use o mesmo comando para ocultar.");
  13763. }
  13764. return true;
  13765. }
  13766. CMD:pedagio(playerid, params[])
  13767. {
  13768. new vehicleid = GetPlayerVehicleID(playerid);
  13769. new trailer = GetVehicleTrailer(vehicleid);
  13770. new Float:rot[3];
  13771. for(new pt = 0; pt < sizeof(PaytollPos); pt++)
  13772. {
  13773. if(IsPlayerInRangeOfPoint(playerid, 5.0, PaytollPos[pt][0], PaytollPos[pt][1], PaytollPos[pt][2])) // RC-BC 1
  13774. {
  13775. new Float:pos[3];
  13776. GetDynamicObjectPos(PayTolls[pt][0], pos[0], pos[1], pos[2]);
  13777. GetDynamicObjectRot(PayTolls[pt][0], rot[0], rot[1], rot[2]);
  13778. if(vehicleid == 0) return SysMsg(playerid, "Somente os veículos têm que pagar pedágio e você não está em um.");
  13779. if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid, "Somente o motorista pode pagar o pedágio.");
  13780. if(PayTolls[pt][1] == 1) return SysMsg(playerid, "A porta de pedágio já está aberta.");
  13781. if(trailer > 0)
  13782. {
  13783. if(Cash[playerid] < 10) return SysMsg(playerid, "Você não tem dinheiro suficiente para pagar o pedágio. (Você precisa de $10)");
  13784. GivePlayerCash(playerid, -10);
  13785. format(gstr, sizeof(gstr), "[Toll - "COL_MONEYGREEN"$10{FFFFFF}] Bem vindo a %s. Dirija com segurança. [Trailer/towing a taxa é $5]", PaytollNames[pt]);
  13786. SendClientMessage(playerid, COLOR_WHITE, gstr);
  13787. }
  13788. else
  13789. {
  13790. if(!QualifiesForFreeToll(playerid))
  13791. {
  13792. if(Cash[playerid] < 5) return SysMsg(playerid, "Você não tem dinheiro suficiente para pagar o pedágio. (Você precisa de $5)");
  13793. GivePlayerCash(playerid, -5);
  13794. format(gstr, sizeof(gstr), "[Toll - "COL_MONEYGREEN"$5{FFFFFF}] Bem vindo a %s. Dirija com segurança.", PaytollNames[pt]);
  13795. SendClientMessage(playerid, COLOR_WHITE, gstr);
  13796. }
  13797. else
  13798. {
  13799. format(gstr, sizeof(gstr), "[Toll - "COL_MONEYGREEN"$0{FFFFFF}] Bem vindo a %s. Você qualifica para pedágios gratuitos. Dirija com segurança.", PaytollNames[pt]);
  13800. SendClientMessage(playerid, COLOR_WHITE, gstr);
  13801. }
  13802. }
  13803. MoveDynamicObject(PayTolls[pt][0], pos[0], pos[1], pos[2]+0.001, 0.0005, rot[0], 0.0, rot[2]);
  13804. PayTolls[pt][1] = 1;
  13805. PaytollCloseTimer[pt] = SetTimerEx("CloseTollGate", 7000, 0, "df", pt, 90.0);
  13806. }
  13807. }
  13808. return true;
  13809. }
  13810. CMD:banco(playerid, params[])
  13811. {
  13812. if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado.");
  13813. if(!IsInBank(playerid)) return SysMsg(playerid, "Você não está em um banco.");
  13814. UsingATM{playerid} = false;
  13815. Dialog_Show(playerid,BankMenu,DIALOG_STYLE_LIST,"{3D9140}Gerênciamento bancário","Balance\nDeposito\nSaque\nTransferência","Continuar","Cancelar");
  13816. return true;
  13817. }
  13818. CMD:fbalance(playerid, params[])
  13819. {
  13820. if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado.");
  13821. if(!IsInBank(playerid)) return SysMsg(playerid, "You are not in a bank");
  13822. if(Faction[playerid] < 1) return SysMsg(playerid,"Você não está em uma facção.");
  13823. SendClientMessageF(playerid, COLOR_WHITE, "Equilíbrio bancário da facção {0098F2}%s{FFFFFF} - {4BB74C}$%s.", GetFactionName(playerid), format_cash(FACTIONS[Faction[playerid]][FactionBankBalance]));
  13824. return true;
  13825. }
  13826. CMD:fdepositar(playerid, params[])
  13827. {
  13828. if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado.");
  13829. if(!IsInBank(playerid)) return SysMsg(playerid, "Você não está em um banco");
  13830. if(Faction[playerid] < 1) return SysMsg(playerid,"Você não está em uma facção.");
  13831. new amount;
  13832. if(sscanf(params, "i", amount)) return SysMsg(playerid,"Use: /fdepositar [Quantidade]");
  13833. if(amount < 1) return SysMsg(playerid,"Quantidade Inválida, Must be greater that 0.");
  13834. if(amount > Cash[playerid]) return SysMsg(playerid,"Você não tem essa quantidade");
  13835. GivePlayerCash(playerid, -amount);
  13836. SendClientMessageF(playerid, COLOR_WHITE, "[Deposito] Equilíbrio bancário da facção {0098F2}%s{FFFFFF}:", GetFactionName(playerid));
  13837. SendClientMessageF(playerid, COLOR_WHITE, "[Deposito] Balance Antigo: {4BB74C}$%s{FFFFFF}, Novo Balance: {4BB74C}$%s{FFFFFF}.", format_cash(FACTIONS[Faction[playerid]][FactionBankBalance]), format_cash(FACTIONS[Faction[playerid]][FactionBankBalance]+amount));
  13838. FACTIONS[Faction[playerid]][FactionBankBalance] += amount;
  13839. MySQLUpdateInt(FACTIONS[Faction[playerid]][FactionId], "BankBalance", FACTIONS[Faction[playerid]][FactionBankBalance], "factions");
  13840. format(gstr, sizeof(gstr),"[%s] %s(%i) colocou $%i na fbank %s. (Total: $%i)", GetServerTimeString(), NameEx(playerid), playerid, amount, GetFactionName(playerid), Cash[playerid]);
  13841. AddToLog("cash", gstr);
  13842. return true;
  13843. }
  13844. //Comandos Leader Facção
  13845. CMD:fpagar(playerid, params[])
  13846. {
  13847. if(!Logged{playerid}) return true;
  13848. if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não tem um Rank alto suficiente na facção para fazer isso.");
  13849. new playa = -1,PayCash;
  13850. if(sscanf(params, "ui", playa, PayCash)) return SysMsg(playerid,"Use: /fpagar [ID ou nome do jogador] [Quantidade a pagar]");
  13851. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  13852. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  13853. if(Faction[playerid] != Faction[playa]) return SysMsg(playerid,"Esse jogador não está na mesma facção que você");
  13854. if(PayCash < 100 || PayCash > 100000) return SysMsg(playerid,"O dinheiro deve ser menos que $100 e $100,000");
  13855. if(FACTIONS[Faction[playerid]][FactionBankBalance] < PayCash) return SysMsg(playerid,"Você não tem essa quantidade de dinheiro no banco da facção.");
  13856. FACTIONS[Faction[playerid]][FactionBankBalance] -= PayCash;
  13857. BankBalance[playa] += PayCash;
  13858. MySQLUpdateInt(FACTIONS[Faction[playerid]][FactionId], "BankBalance", FACTIONS[Faction[playerid]][FactionBankBalance], "factions");
  13859. MySQLUpdateInt(SQLID[playa], "Bank", BankBalance[playa], "players");
  13860. SendClientMessageF(playerid, COLOR_LIGHTGREEN, "[DECLARAÇÃO DO BANCO DE FACÇÃO] %s - %s(Rank: %s)",GetFactionName(playerid),NameEx(playerid),GetFactionRankName(Faction[playerid], FactionRank[playerid]));
  13861. SendClientMessageF(playerid, COLOR_LIGHTGREEN, " 1. Transferir: PARA %s DE %s - $%i.",NameEx(playa),GetFactionName(playerid),PayCash);
  13862. SendClientMessageF(playerid, COLOR_LIGHTGREEN, " 2. Novo balance de facção: $%i.",FACTIONS[Faction[playerid]][FactionBankBalance]);
  13863. SendClientMessageF(playa, COLOR_LIGHTGREEN, "[PAGAMENTO DIÁRIO DA FACÇÃO] %s - %s(Rank: %s)",GetFactionName(playa),NameEx(playa),GetFactionRankName(Faction[playa], FactionRank[playa]));
  13864. SendClientMessageF(playa, COLOR_LIGHTGREEN, " 1. Deposito: %s %s - $%i.",GetFactionRankName(Faction[playerid], FactionRank[playerid]),NameEx(playerid),PayCash);
  13865. SendClientMessageF(playa, COLOR_LIGHTGREEN, " 2. Balance: $%i.",BankBalance[playa]);
  13866. printf("[Cmd] %s %s pagou %s $%i (FactionPay)",GetFactionRankName(Faction[playerid], FactionRank[playerid]), NameEx(playerid), NameEx(playa), PayCash);
  13867. return true;
  13868. }
  13869. CMD:fsave(playerid, params[])//salva posição do veiculo
  13870. {
  13871. if(!Logged{playerid}) return SysMsg(playerid,"Você precisa estar logado para usar esta ferramenta.");
  13872. if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção.");
  13873. if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não tem um Rank alto suficiente na facção para fazer isso.");
  13874. if(GetPlayerVehicleID(playerid) == 0) return SysMsg(playerid, "Você nem está em um veículo.");
  13875. if(IsFactionVehicle(GetPlayerVehicleID(playerid)) == 0) return SysMsg(playerid, "Esse veiculo não é de uma facção");
  13876. new vehicle = GetPlayerVehicleID(playerid), faction = IsFactionVehicle(vehicle);
  13877. if((faction > 0 && Faction[playerid] != faction) && !IsPlayerAdmin(playerid)) return SysMsg(playerid,"Você não pode editar esse veiculo de facção");
  13878. if(faction > 0)
  13879. {
  13880. new factionSQLID = vehicle;
  13881. if(factionSQLID == -1) return SysMsg(playerid, "Oops! Ocorreu um erro no sistema, informe para um administrador. (ERROR: 4-001)");
  13882. new Float:X, Float:Y, Float:Z, Float:R, inter, vw;
  13883. GetVehiclePos(vehicle, X, Y, Z);
  13884. GetVehicleZAngle(vehicle, R);
  13885. inter = GetPlayerInterior(playerid);
  13886. vw = GetPlayerVirtualWorld(playerid);
  13887. new sqlid = FVehicleData[vehicle][FVSQLID];
  13888. mysql_format(conn, mquery, sizeof(mquery), "UPDATE fveh SET LocationX = %f, LocationY = %f, LocationZ = %f, LocationR = %f, VWorld = %i, Interior = %i WHERE id = %i", X, Y, Z, R, vw, inter, FVehicleData[vehicle][FVSQLID]);
  13889. mysql_tquery(conn, mquery);
  13890. DestroyVehicleEx(vehicle, "vehicle");
  13891. ClearVehicleData(vehicle);
  13892. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM fveh WHERE id = %i", sqlid);
  13893. mysql_tquery(conn, mquery, "LoadFactionVehicles");
  13894. new Float:pX,Float:pY,Float:pZ;
  13895. GetPlayerPos(playerid,pX,pY,pZ);
  13896. SetPlayerPos(playerid,pX,pY,(pZ+5.0));
  13897. SendClientMessage(playerid, COLOR_WHITE, "O veículo de facção foi salvo aqui.");
  13898. }
  13899. return true;
  13900. }
  13901. CMD:contratarfac(playerid, params[])
  13902. {
  13903. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  13904. if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção.");
  13905. if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não é uma patente alta o suficiente.");
  13906. new playa = -1;
  13907. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /contratarfac [ID ou nome do jogador]");
  13908. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  13909. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  13910. if(playa == playerid) return SysMsg(playerid,"Você não pode se contratar.");
  13911. if(!Logged{playa}) return SysMsg(playerid,"Esse jogador não logou/registou.");
  13912. if(Faction[playa] != 0) return SysMsg(playerid,"Esse jogador já está em uma facção.");
  13913. InvitedToJoinFaction[playa] = Faction[playerid];
  13914. InvitedToJoinFactionBy[playa] = SQLID[playerid];
  13915. format(gstr, sizeof(gstr),"Você foi convidado por %s para se juntar à sua facção: %s. Use '/aceitar facção' para entrar.",NameEx(playerid),GetFactionName(playerid));
  13916. SendClientMessage(playa,COLOR_WHITE,gstr);
  13917. format(gstr, sizeof(gstr),"Você convidou %s para se juntar à sua Fação.",NameEx(playa));
  13918. SendClientMessage(playerid,COLOR_WHITE,gstr);
  13919. return true;
  13920. }
  13921. CMD:rebaixarrank(playerid, params[])
  13922. {
  13923. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  13924. if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção.");
  13925. if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não tem um Rank alto suficiente na facção para fazer isso.");
  13926. if(isnull(params)) return SysMsg(playerid,"Use: /rebaixarrank [Nome_Sobrenome]");
  13927. if(strmatch(params, GetName(playerid))) return SysMsg(playerid, "Você não pode se rebaixar.");
  13928. foreach(new p: Player)
  13929. {
  13930. if(strmatch(params, GetName(p)))
  13931. {
  13932. if(IsPlayerConnected(p) && Logged{p})
  13933. {
  13934. if(Faction[p] != Faction[playerid]) return SysMsg(playerid, "Você não pode rebaixar alguém que não está na sua facção.");
  13935. if(FactionRank[p] >= FactionRank[playerid]) return SysMsg(playerid, "Você não pode rebaixar alguem que tem o Rank superior ao seu.");
  13936. if(FactionRank[p] == 1) return SysMsg(playerid, "Essa pessoa já são o rank mais baixo possível.");
  13937. FactionRank[p] --;
  13938. MySQLUpdateInt(SQLID[p], "FactionRank", FactionRank[p], "players");
  13939. format(gstr, sizeof(gstr),"%s %s rebaixou você, agora você é rank %i(%s).", GetFactionRankName(Faction[playerid], FactionRank[playerid]),NameEx(playerid),FactionRank[p],GetFactionRankName(Faction[p], FactionRank[p]));
  13940. SendClientMessage(p,COLOR_ORANGE,gstr);
  13941. format(gstr, sizeof(gstr),"Você rebaixou %s! Eles são agora rank %i(%s)", NameEx(p), FactionRank[p] ,GetFactionRankName(Faction[playerid], FactionRank[p]));
  13942. SendClientMessage(playerid,COLOR_ORANGE,gstr);
  13943. return true;
  13944. }
  13945. else return SysMsg(playerid, "Esse jogador não está conectado ou ainda não fez login, tente novamente.");
  13946. }
  13947. }
  13948. mysql_format(conn, mquery, sizeof(mquery), "SELECT id, Faction, FactionRank, Name FROM players WHERE Name = '%e' LIMIT 1", params);
  13949. mysql_pquery(conn, mquery, "DemoteF", "d", playerid);
  13950. return true;
  13951. }
  13952. GREENSIDE::DemoteF(playerid)
  13953. {
  13954. if(cache_num_rows())
  13955. {
  13956. new currentFaction, currentRank, actualName[50], sqlid;
  13957. sqlid = cache_get_field_content_int(0, "id");
  13958. currentFaction = cache_get_field_content_int(0, "Faction");
  13959. currentRank = cache_get_field_content_int(0, "FactionRank");
  13960. cache_get_field_content(0, "Name", actualName);
  13961. if(Faction[playerid] != currentFaction) return SysMsg(playerid,"Esse jogador não está na mesma facção que você");
  13962. if(currentRank == 1) return SysMsg(playerid,"Eles já são o mais baixo nível.");
  13963. if(currentRank >= FactionRank[playerid]) return SysMsg(playerid,"Você não pode rebaixar membros do ranking mais alto.");
  13964. currentRank --;
  13965. MySQLUpdateInt(sqlid, "FactionRank", currentRank, "players");
  13966. /*new oldSub[2], newSub[2], oldRank;
  13967. oldRank = currentRank + 1;*/
  13968. //FactionLog(SQLID[playerid], sqlid, 2, oldSub, newSub, oldRank, currentRank, Faction[playerid]);
  13969. SendClientMessageF(playerid,COLOR_ORANGE,"Você rebaixou %s! Agora ele é Rank %i (%s)",actualName,currentRank,GetFactionRankName(Faction[playerid], currentRank));
  13970. }
  13971. else return SysMsg(playerid, "Nome não encontrado no banco de dados, use [Nome_Sobrenome] ao pesquisar.");
  13972. return true;
  13973. }
  13974. CMD:promover(playerid, params[])
  13975. {
  13976. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  13977. if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção.");
  13978. if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não tem um Rank alto suficiente na facção para fazer isso.");
  13979. if(isnull(params)) return SysMsg(playerid,"Use: /promover [Nome_Sobrenome]");
  13980. if(strmatch(params, GetName(playerid))) return SysMsg(playerid, "Você não pode promover você mesmo.");
  13981. foreach(new p: Player)
  13982. {
  13983. if(strmatch(params, GetName(p)))
  13984. {
  13985. if(IsPlayerConnected(p) && Logged{p} && SQLID[p] != SQLID[playerid])
  13986. {
  13987. if(Faction[p] != Faction[playerid]) return SysMsg(playerid, "Você não pode promover alguém que não esteja na sua facção.");
  13988. if(FactionRank[p] >= FactionRank[playerid]) return SysMsg(playerid, "Você não pode promover alguém que seja mais alto ou igual a você.");
  13989. if(FactionRank[p] >= FACTIONS[Faction[p]][FactionUberLeaderRank]) return SysMsg(playerid, "Essa pessoa já tem o Rank mais alto possivel.");
  13990. FactionRank[p] ++;
  13991. MySQLUpdateInt(SQLID[p], "FactionRank", FactionRank[p], "players");
  13992. format(gstr, sizeof(gstr),"%s %s promoveu você! Agora você é %i(%s).", GetFactionRankName(Faction[playerid], FactionRank[playerid]),NameEx(playerid),FactionRank[p],GetFactionRankName(Faction[p], FactionRank[p]));
  13993. SendClientMessage(p,COLOR_ORANGE,gstr);
  13994. UnlockAchievement(p, 63);
  13995. format(gstr, sizeof(gstr),"Você promoveu %s! Agora ele é %i(%s)", NameEx(p), FactionRank[p] ,GetFactionRankName(Faction[playerid], FactionRank[p]));
  13996. SendClientMessage(playerid,COLOR_ORANGE,gstr);
  13997. return true;
  13998. }
  13999. else return SysMsg(playerid, "Esse jogador não está conectado ou ainda não fez login, tente novamente.");
  14000. }
  14001. }
  14002. mysql_format(conn, mquery, sizeof(mquery), "SELECT id, Faction, FactionRank, Name FROM players WHERE Name = '%e' LIMIT 1", params);
  14003. mysql_pquery(conn, mquery, "PromoteF", "d", playerid);
  14004. return true;
  14005. }
  14006. CMD:despedir(playerid, params[])
  14007. {
  14008. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  14009. if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção.");
  14010. if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não tem um Rank alto suficiente na facção para fazer isso.");
  14011. new fullname[MAX_PLAYER_NAME];
  14012. if(sscanf(params, "s[24]", fullname)) return SysMsg(playerid,"Use: /despedir [Nome_Sobrenome] *Observe que isso limpa o banco de dados, não in game*");
  14013. new sqlid = MySQLCheckAccount(fullname, playerid);
  14014. if(sqlid == 0) return SysMsg(playerid, "Nome não encontrado, use NOME_SOBRENOME.");
  14015. if(sqlid == SQLID[playerid]) return SysMsg(playerid, "O nome não pode ser sua conta.");
  14016. new playa = -1;
  14017. foreach(new i: Player) if(strcmp(GetName(i), fullname, true) == 0) playa = i;
  14018. if(playa != -1 && IsPlayerConnected(playa))
  14019. {
  14020. if(Faction[playerid] != Faction[playa]) return SysMsg(playerid,"Esse jogador não está na mesma facção que você");
  14021. if(FactionRank[playerid] < FactionRank[playa]) return SysMsg(playerid,"Você não pode despedir alguem que tem o Rank superior ao seu.");
  14022. if(RadioFrequency[playa] == FACTIONS[Faction[playa]][FactionRadioChannel]) RadioFrequency[playa] = 1000;
  14023. for(new r = 0; r < 3; r++)
  14024. {
  14025. if(RadioSlot[playa][r] == FACTIONS[Faction[playa]][FactionRadioChannel])
  14026. {
  14027. RadioSlot[playa][r] = 1000;
  14028. }
  14029. }
  14030. Faction[playa] = 0;
  14031. FactionRank[playa] = 0;
  14032. if(MySpawnID[playa] == 2)
  14033. {
  14034. MySpawnID[playa] = 1;
  14035. SubFactionSpawn[playa] = 0;
  14036. }
  14037. if(RestrictedVest{playa}) SetPlayerArmourEx(playa, 0.0, 1);
  14038. ResetPlayerWeapons(playa);
  14039. for(new slot = MAX_TOTAL_WEAPONS - 1; slot != -1; slot--)
  14040. {
  14041. if(WeaponData[playa][slot][WeaponOrigin] == 3)
  14042. {
  14043. ResetWeaponVariables(playa, 0, slot);
  14044. }
  14045. }
  14046. for(new slot = MAX_TOTAL_WEAPONS - 1; slot != -1; slot--)
  14047. {
  14048. GivePlayerWeapon(playa, WeaponData[playa][slot][Weapon], WeaponData[playa][slot][WeaponAmmo]);
  14049. }
  14050. IsESU{playa} = false;
  14051. if(Clothes[playa][0] == 0)
  14052. {
  14053. cPlayersSkin[playa] = 1;
  14054. SetPlayerSkinEx(playa, 1);
  14055. }
  14056. if(Clothes[playa][0] != 0)
  14057. {
  14058. cPlayersSkin[playa] = Clothes[playa][0];
  14059. SetPlayerSkinEx(playa, Clothes[playa][0]);
  14060. }
  14061. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET Skin = %i WHERE id = %i", cPlayersSkin[playa], SQLID[playa]);
  14062. mysql_pquery(conn, mquery);
  14063. SendClientMessageF(playerid,COLOR_ORANGE,"Você despediu %s!", NameEx(playa));
  14064. FactionCustomRank[playa][0] = 0;
  14065. IsESU{playerid} = false;
  14066. SendClientMessageF(playa, COLOR_ORANGE,"%s %s despediu você, agora você é um civil.", GetFactionRankName(Faction[playerid], FactionRank[playerid]), NameEx(playerid));
  14067. //new oldSub[2], newSub[2], oldRank, newRank;
  14068. for(new p; p < MAX_TOYS; p++)
  14069. {
  14070. if(ToyInfo[playa][p][FactionMask] == 1)
  14071. {
  14072. ClearToyData(playa, p);
  14073. }
  14074. }
  14075. FirePlayer(sqlid, 1);
  14076. //FactionLog(SQLID[playerid], SQLID[playa], 1, oldSub, newSub, oldRank, newRank, Faction[playerid]);
  14077. }
  14078. else
  14079. {
  14080. mysql_format(conn, mquery, sizeof(mquery), "SELECT Faction,FactionRank,Name FROM `players` WHERE id = %i", sqlid);
  14081. mysql_pquery(conn, mquery, "Fire", "dd", playerid, sqlid);
  14082. }
  14083. return true;
  14084. }
  14085. CMD:togglef(playerid, params[])
  14086. {
  14087. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  14088. if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção.");
  14089. if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não tem um Rank alto suficiente na facção para fazer isso.");
  14090. if(FACTIONS[Faction[playerid]][FactionChatToggleOff] == 0)
  14091. {
  14092. FACTIONS[Faction[playerid]][FactionChatToggleOff] = 1;
  14093. foreach(new i: Player) if(Logged{i} && Faction[i] == Faction[playerid]) SendClientMessageF(i, COLOR_ORANGE,"Chate da facção foi desabilitado por %s.", NameEx(playerid));
  14094. }
  14095. else
  14096. {
  14097. FACTIONS[Faction[playerid]][FactionChatToggleOff] = 0;
  14098. foreach(new i: Player) if(Logged{i} && Faction[i] == Faction[playerid]) SendClientMessageF(i, COLOR_ORANGE, "Chat da Facção foi ativado por %s.", NameEx(playerid));
  14099. }
  14100. return true;
  14101. }
  14102. CMD:setsubrank(playerid, params[])
  14103. {
  14104. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  14105. if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção.");
  14106. if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não tem um Rank alto suficiente na facção para fazer isso.");
  14107. new pname[32], newrank[20], playa;
  14108. if(sscanf(params, "s[32]s[20]", pname, newrank)) return SysMsg(playerid,"Use: /setsubrank [ID / Nome_Sobrenome] [Novo Sub Rank]");
  14109. playa = GetPlayerIDs(pname);
  14110. if(!InvalidPlayer(playa))
  14111. {
  14112. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  14113. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  14114. if(Faction[playerid] != Faction[playa]) return SysMsg(playerid,"Esse jogador não está na mesma facção que você");
  14115. if((strlen(newrank) < 2 || strlen(newrank) > 15)) return SysMsg(playerid,"Certifique-se de que o tamanho da classificação esteja entre 2 e 15 letras.");
  14116. format(FactionCustomRank[playa], 16, newrank);
  14117. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET FactionCustomRank = '%e' WHERE id = %i", FactionCustomRank[playa], SQLID[playa]);
  14118. mysql_pquery(conn, mquery);
  14119. if(strfind(FactionCustomRank[playa], "ESU") != -1) IsESU{playa} = true;
  14120. else IsESU{playa} = false;
  14121. SendClientMessageF(playerid,COLOR_ORANGE, "Você definiu %s como sub-rank '%s'", NameEx(playa), newrank);
  14122. SendClientMessageF(playa,COLOR_ORANGE, "%s definiu você como sub-rank '%s'", NameEx(playerid), newrank);
  14123. }
  14124. else if(strfind(pname, "_", true) != -1)
  14125. {
  14126. new sqlid = MySQLCheckAccount(pname, playerid);
  14127. if(sqlid == 0) return SysMsg(playerid, "Nome não encontrado na base de Dados, tente novamente.");
  14128. if(sqlid == SQLID[playerid]) return SysMsg(playerid, "O nome não pode ser da sua conta.");
  14129. if(strlen(newrank) < 2 || strlen(newrank) > 15) return SysMsg(playerid,"Certifique-se de que o tamanho da classificação esteja entre 2 e 15 letras.");
  14130. MySQLUpdateString(sqlid, "FactionCustomRank", newrank, "players");
  14131. SendClientMessageF(playerid,COLOR_ORANGE,"Você definiu %s como sub-rank '%s'", RPName(pname), newrank);
  14132. }
  14133. return true;
  14134. }
  14135. CMD:frespawn(playerid, params[])//respawn de veiculos Facção
  14136. {
  14137. if(!Logged{playerid}) return true;
  14138. if(Faction[playerid] == 0) return SysMsg(playerid, "Você deve estar em uma facção.");
  14139. if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não tem um Rank alto suficiente na facção para fazer isso.");
  14140. if(isnull(params)) return SysMsg(playerid,"Use: /frespawn [ID do veículo ou TODOS] *Use /fcars para ver o ID, ou /dl*");
  14141. if(strcmp("todos", params, true) == 0)
  14142. {
  14143. new vcount = 0, tcount = 0;
  14144. for(new v = 1, x = GetVehiclePoolSize(); v <= x; v++)
  14145. {
  14146. if(IsVehicleSpawned(v) && FVehicleData[v][FVFaction] == Faction[playerid] && !FVehicleData[v][FImpounded])
  14147. {
  14148. tcount ++;
  14149. if(VehicleBeingTowed(v)) continue;
  14150. if(VehicleIsOccupied(v)) continue;
  14151. vcount ++;
  14152. RespawnFactionCar(v);
  14153. }
  14154. }
  14155. foreach(new i: Player) if(Logged{i} && Faction[i] == Faction[playerid]) SendClientMessageF(i, COLOR_ORANGE, "[Mensagem da facção] %s respawno %i dos veiculos da facção %i.", NameEx(playerid), vcount, tcount);//revisar
  14156. }
  14157. else
  14158. {
  14159. new v = strval(params);
  14160. if(IsVehicleSpawned(FVehicleData[v][FactionVehID]) && FVehicleData[v][FVFaction] == Faction[playerid])
  14161. {
  14162. if(VehicleBeingTowed(v)) return SysMsg(playerid, "Você não pode respawna um veículo que está sendo rebocado.");
  14163. if(VehicleIsOccupied(v)) return SysMsg(playerid, "Você não pode respawnar um veiculo que está ocupado no momento.");
  14164. if(FVehicleData[v][FImpounded]) return SysMsg(playerid, "Você não pode melhorar um veículo que esta confiscado.");
  14165. SendClientMessage(playerid, COLOR_ORANGE, "O veiculo foi spawnado.");
  14166. RespawnFactionCar(v);
  14167. }
  14168. }
  14169. return true;
  14170. }
  14171. CMD:setfmotd(playerid, params[])
  14172. {
  14173. if(!Logged{playerid}) return true;
  14174. if(Faction[playerid] == 0) return SysMsg(playerid, "Você deve estar em uma facção para usar isso.");
  14175. if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid, "Você não tem Rank suficiente na facção para mudar o faction MOTD.");
  14176. if(isnull(params)) return SysMsg(playerid,"Use: /setfmotd [novo faction motd]");
  14177. mysql_format(conn, mquery, sizeof(mquery), "UPDATE fmotd SET fmotd = '%e' WHERE fid = %i", params, Faction[playerid]);
  14178. mysql_pquery(conn, mquery);
  14179. SendClientMessageF(playerid, COLOR_WHITE, "Definiu o faction MOTD para %s", params);
  14180. format(sgstr, sizeof(sgstr), "Faction MOTD %i alterado", Faction[playerid]);
  14181. AdminLog(playerid, 0, params, sgstr);
  14182. return true;
  14183. }
  14184. CMD:setrank(playerid, params[])
  14185. {
  14186. if(!Logged{playerid}) return SysMsg(playerid,"Você precisa estar logado para usar esta ferramenta.");
  14187. if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção.");
  14188. if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não tem um Rank alto suficiente na facção para fazer isso.");
  14189. new vehicle = GetPlayerVehicleID(playerid);
  14190. if(vehicle == 0) return SysMsg(playerid, "Você nem está em um veículo.");
  14191. new faction = IsFactionVehicle(vehicle);
  14192. if(faction == 0) return SysMsg(playerid, "Esse veiculo não é de uma facção");
  14193. if((faction > 0 && Faction[playerid] != faction) && !IsPlayerAdmin(playerid)) return SysMsg(playerid,"Você não pode editar esse veiculo de facção");
  14194. if(faction > 0)
  14195. {
  14196. new newRank;
  14197. if(isnull(params)) return SysMsg(playerid,"Use: /setrank [Classificação necessária para conduzir o veículo]");
  14198. if(!IsNumeric(params)) return SysMsg(playerid,"O ranking deve ser um número.");
  14199. newRank = strval(params);
  14200. if(newRank < 1 || newRank > FACTIONS[Faction[playerid]][FactionUberLeaderRank]) return SysMsgF(playerid, "O Rank só pode ser de 1 a %i.", FACTIONS[Faction[playerid]][FactionUberLeaderRank]);
  14201. if(FVehicleData[vehicle][FVMinRank] == newRank) return SysMsg(playerid,"Rank já é esse valor.");
  14202. if(FVehicleData[vehicle][FVMinRank] > FactionRank[playerid]) return SysMsg(playerid,"Você não pode editar a classificação de um veículo se for superior ao seu próprio ranking.");
  14203. FVehicleData[vehicle][FVMinRank] = newRank;
  14204. MySQLUpdateInt(FVehicleData[vehicle][FVSQLID], "MinRank", newRank, "fveh");
  14205. SendClientMessageF(playerid, COLOR_WHITE, "A restrição de classificação de veículo de facção é agora %s(%i) a mais.", GetFactionRankName(Faction[playerid], newRank), newRank);
  14206. }
  14207. return true;
  14208. }
  14209. CMD:setrankname(playerid, params[])
  14210. {
  14211. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  14212. if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção.");
  14213. if(FactionRank[playerid] < FACTIONS[Faction[playerid]][FactionUberLeaderRank]) return SysMsg(playerid,"Você não tem um Rank alto suficiente na facção para fazer isso.");
  14214. new rank, desc[32];
  14215. if(sscanf(params, "is[32]", rank, desc)) return SysMsg(playerid,"Use: /setrankname [Número do RANK] [Nome] *Exemplo: /setrankname 1 Trainee*");
  14216. if(strlen(desc) > 19) return SysMsg(playerid,"O comprimento do nome da classificação é muito longo (max 19 characters).");
  14217. if(rank > FACTIONS[Faction[playerid]][FactionUberLeaderRank]) return SysMsgF(playerid, "O Rank só pode ser de 1 a %i.", FACTIONS[Faction[playerid]][FactionUberLeaderRank]);
  14218. new x = rank - 1, f = Faction[playerid];
  14219. if(strcmp(FactionRanks[f][x], desc, true) == 0) return SysMsgF(playerid, "O nome do Rank já é %s", desc);
  14220. new mysqlfield[12];
  14221. format(mysqlfield, 12, "RankName%i", rank);
  14222. format(FactionRanks[f][x], 32, desc);
  14223. MySQLUpdateString(FACTIONS[f][FactionId], mysqlfield, desc, "factions");
  14224. SendClientMessageF(playerid, COLOR_ORANGE,"Rank %i agora é %s.", rank, desc);
  14225. return true;
  14226. }
  14227. CMD:setspawnpoint(playerid, params[])
  14228. {
  14229. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  14230. if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção.");
  14231. if(FactionRank[playerid] < FACTIONS[Faction[playerid]][FactionUberLeaderRank]) return SysMsg(playerid,"Você não tem um Rank alto suficiente na facção para fazer isso.");
  14232. if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid,"Você não pode criar um spawn dentro de um veiculo.");
  14233. if(IsInHouseID[playerid] != -1) return SysMsg(playerid,"Você não pode criar um spawn dentro de uma casa.");
  14234. if(IsInBizzID[playerid] != -1) return SysMsg(playerid,"Você não pode criar um spawn dentro de um negócio.");
  14235. new spawnpoint, desc[40];
  14236. if(sscanf(params, "is[40]", spawnpoint, desc)) return SysMsg(playerid,"Use: /setspawnpoint [Ponto 1-5] [descrição] *Exemplo: /setspawnpoint 1 Escritório de Fort Carson*");
  14237. if(strlen(desc) > 39) return SysMsg(playerid,"O comprimento da descrição é muito longo (max 39 characters).");
  14238. switch(spawnpoint)
  14239. {
  14240. case 1:
  14241. {
  14242. GetPlayerPos(playerid, FACTIONS[Faction[playerid]][FactionSpawn1][0], FACTIONS[Faction[playerid]][FactionSpawn1][1], FACTIONS[Faction[playerid]][FactionSpawn1][2]);
  14243. GetPlayerFacingAngle(playerid, FACTIONS[Faction[playerid]][FactionSpawn1][3]);
  14244. FACTIONS[Faction[playerid]][FactionSpawnVW][0] = GetPlayerVirtualWorld(playerid);
  14245. FACTIONS[Faction[playerid]][FactionSpawnInt][0] = GetPlayerInterior(playerid);
  14246. format(FACTIONS[Faction[playerid]][FactionSpawn1Name], 40, desc);
  14247. mysql_format(conn, mquery, sizeof(mquery), "UPDATE factions SET Spawn1Name = '%e', Spawn1X = %f, Spawn1Y = %f, Spawn1Z = %f, Spawn1A = %f, Spawn1VW = %i, Spawn1Int = %i WHERE id = %i",
  14248. desc, FACTIONS[Faction[playerid]][FactionSpawn1][0], FACTIONS[Faction[playerid]][FactionSpawn1][1], FACTIONS[Faction[playerid]][FactionSpawn1][2], FACTIONS[Faction[playerid]][FactionSpawn1][3],
  14249. FACTIONS[Faction[playerid]][FactionSpawnVW][0], FACTIONS[Faction[playerid]][FactionSpawnInt][0], FACTIONS[Faction[playerid]][FactionId]);
  14250. mysql_pquery(conn, mquery);
  14251. }
  14252. case 2:
  14253. {
  14254. GetPlayerPos(playerid, FACTIONS[Faction[playerid]][FactionSpawn2][0], FACTIONS[Faction[playerid]][FactionSpawn2][1], FACTIONS[Faction[playerid]][FactionSpawn2][2]);
  14255. GetPlayerFacingAngle(playerid, FACTIONS[Faction[playerid]][FactionSpawn2][3]);
  14256. FACTIONS[Faction[playerid]][FactionSpawnVW][1] = GetPlayerVirtualWorld(playerid);
  14257. FACTIONS[Faction[playerid]][FactionSpawnInt][1] = GetPlayerInterior(playerid);
  14258. format(FACTIONS[Faction[playerid]][FactionSpawn2Name], 40, desc);
  14259. mysql_format(conn, mquery, sizeof(mquery), "UPDATE factions SET Spawn2Name = '%e', Spawn2X = %f, Spawn2Y = %f, Spawn2Z = %f, Spawn2A = %f, Spawn2VW = %i, Spawn2Int = %i WHERE id = %i",
  14260. desc, FACTIONS[Faction[playerid]][FactionSpawn2][0], FACTIONS[Faction[playerid]][FactionSpawn2][1], FACTIONS[Faction[playerid]][FactionSpawn2][2], FACTIONS[Faction[playerid]][FactionSpawn2][3],
  14261. FACTIONS[Faction[playerid]][FactionSpawnVW][1], FACTIONS[Faction[playerid]][FactionSpawnInt][1], FACTIONS[Faction[playerid]][FactionId]);
  14262. mysql_pquery(conn, mquery);
  14263. }
  14264. case 3:
  14265. {
  14266. if(FACTIONS[Faction[playerid]][FactionSpawn2][0] == 0) return SysMsg(playerid, "Por favor, use o ponto de spawn 2 primeiro.");
  14267. GetPlayerPos(playerid, FACTIONS[Faction[playerid]][FactionSpawn3][0], FACTIONS[Faction[playerid]][FactionSpawn3][1], FACTIONS[Faction[playerid]][FactionSpawn3][2]);
  14268. GetPlayerFacingAngle(playerid, FACTIONS[Faction[playerid]][FactionSpawn3][3]);
  14269. FACTIONS[Faction[playerid]][FactionSpawnVW][2] = GetPlayerVirtualWorld(playerid);
  14270. FACTIONS[Faction[playerid]][FactionSpawnInt][2] = GetPlayerInterior(playerid);
  14271. format(FACTIONS[Faction[playerid]][FactionSpawn3Name], 40, desc);
  14272. mysql_format(conn, mquery, sizeof(mquery), "UPDATE factions SET Spawn3Name = '%e', Spawn3X = %f, Spawn3Y = %f, Spawn3Z = %f, Spawn3A = %f, Spawn3VW = %i, Spawn3Int = %i WHERE id = %i",
  14273. desc, FACTIONS[Faction[playerid]][FactionSpawn3][0], FACTIONS[Faction[playerid]][FactionSpawn3][1], FACTIONS[Faction[playerid]][FactionSpawn3][2], FACTIONS[Faction[playerid]][FactionSpawn3][3],
  14274. FACTIONS[Faction[playerid]][FactionSpawnVW][2], FACTIONS[Faction[playerid]][FactionSpawnInt][2], FACTIONS[Faction[playerid]][FactionId]);
  14275. mysql_pquery(conn, mquery);
  14276. }
  14277. case 4:
  14278. {
  14279. if(FACTIONS[Faction[playerid]][FactionSpawn3][0] == 0) return SysMsg(playerid, "Por favor, use o ponto de spawn 2 primeiro.");
  14280. GetPlayerPos(playerid, FACTIONS[Faction[playerid]][FactionSpawn4][0], FACTIONS[Faction[playerid]][FactionSpawn4][1], FACTIONS[Faction[playerid]][FactionSpawn4][2]);
  14281. GetPlayerFacingAngle(playerid, FACTIONS[Faction[playerid]][FactionSpawn4][3]);
  14282. FACTIONS[Faction[playerid]][FactionSpawnVW][3] = GetPlayerVirtualWorld(playerid);
  14283. FACTIONS[Faction[playerid]][FactionSpawnInt][3] = GetPlayerInterior(playerid);
  14284. format(FACTIONS[Faction[playerid]][FactionSpawn4Name], 40, desc);
  14285. mysql_format(conn, mquery, sizeof(mquery), "UPDATE factions SET Spawn4Name = '%e', Spawn4X = %f, Spawn4Y = %f, Spawn4Z = %f, Spawn4A = %f, Spawn4VW = %i, Spawn4Int = %i WHERE id = %i",
  14286. desc, FACTIONS[Faction[playerid]][FactionSpawn4][0], FACTIONS[Faction[playerid]][FactionSpawn4][1], FACTIONS[Faction[playerid]][FactionSpawn4][2], FACTIONS[Faction[playerid]][FactionSpawn4][3],
  14287. FACTIONS[Faction[playerid]][FactionSpawnVW][3], FACTIONS[Faction[playerid]][FactionSpawnInt][3], FACTIONS[Faction[playerid]][FactionId]);
  14288. mysql_pquery(conn, mquery);
  14289. }
  14290. case 5:
  14291. {
  14292. if(FACTIONS[Faction[playerid]][FactionSpawn4][0] == 0) return SysMsg(playerid, "Por favor, use o ponto de spawn 2 primeiro.");
  14293. GetPlayerPos(playerid, FACTIONS[Faction[playerid]][FactionSpawn5][0], FACTIONS[Faction[playerid]][FactionSpawn5][1], FACTIONS[Faction[playerid]][FactionSpawn5][2]);
  14294. GetPlayerFacingAngle(playerid, FACTIONS[Faction[playerid]][FactionSpawn5][3]);
  14295. FACTIONS[Faction[playerid]][FactionSpawnVW][4] = GetPlayerVirtualWorld(playerid);
  14296. FACTIONS[Faction[playerid]][FactionSpawnInt][4] = GetPlayerInterior(playerid);
  14297. format(FACTIONS[Faction[playerid]][FactionSpawn5Name], 40, desc);
  14298. mysql_format(conn, mquery, sizeof(mquery), "UPDATE factions SET Spawn5Name = '%e', Spawn5X = %f, Spawn5Y = %f, Spawn5Z = %f, Spawn5A = %f, Spawn5VW = %i, Spawn5Int = %i WHERE id = %i",
  14299. desc, FACTIONS[Faction[playerid]][FactionSpawn5][0], FACTIONS[Faction[playerid]][FactionSpawn5][1], FACTIONS[Faction[playerid]][FactionSpawn5][2], FACTIONS[Faction[playerid]][FactionSpawn5][3],
  14300. FACTIONS[Faction[playerid]][FactionSpawnVW][4], FACTIONS[Faction[playerid]][FactionSpawnInt][4], FACTIONS[Faction[playerid]][FactionId]);
  14301. mysql_pquery(conn, mquery);
  14302. }
  14303. default: return SysMsg(playerid,"O ponto de Spawn só pode ser de 1 a 5.");
  14304. }
  14305. SendClientMessageF(playerid, COLOR_ORANGE, "Ponto de spawn %i foi salvo. [%s]", spawnpoint, desc);
  14306. return true;
  14307. }
  14308. CMD:removespawnpoint(playerid, params[])
  14309. {
  14310. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  14311. if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção.");
  14312. if(FactionRank[playerid] < FACTIONS[Faction[playerid]][FactionUberLeaderRank]) return SysMsg(playerid,"Você não tem um Rank alto suficiente na facção para fazer isso.");
  14313. new spawnpoint;
  14314. if(sscanf(params, "i", spawnpoint)) return SysMsg(playerid,"Use: /removespawnpoint [ponto 2-5]");
  14315. new desc[40];
  14316. switch(spawnpoint)
  14317. {
  14318. case 1: return SysMsg(playerid,"Você não pode excluir o primeiro ponto de spawn.");
  14319. case 2:
  14320. {
  14321. if(FACTIONS[Faction[playerid]][FactionSpawn2][0] == 0) return SysMsg(playerid,"Este ponto de spawn não foi configurado.");
  14322. format(desc, 40, FACTIONS[Faction[playerid]][FactionSpawn2Name]);
  14323. FACTIONS[Faction[playerid]][FactionSpawn2][0] = 0.0;
  14324. FACTIONS[Faction[playerid]][FactionSpawn2][1] = 0.0;
  14325. FACTIONS[Faction[playerid]][FactionSpawn2][2] = 0.0;
  14326. FACTIONS[Faction[playerid]][FactionSpawn2][3] = 0.0;
  14327. FACTIONS[Faction[playerid]][FactionSpawnVW][1] = 0;
  14328. FACTIONS[Faction[playerid]][FactionSpawnInt][1] = 0;
  14329. FACTIONS[Faction[playerid]][FactionSpawn2Name][0] = 0;
  14330. mysql_format(conn, mquery, sizeof(mquery), "UPDATE factions SET Spawn2Name = '', Spawn2X = 0.0, Spawn2Y = 0.0, Spawn2Z = 0.0, Spawn2A = 0.0, Spawn2VW = 0, Spawn2Int = 0 WHERE id = %i", FACTIONS[Faction[playerid]][FactionId]);
  14331. mysql_pquery(conn, mquery);
  14332. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET SubFactionSpawn=1 WHERE SubFactionSpawn=3 AND Faction=%i", Faction[playerid]);
  14333. mysql_pquery(conn, mquery);
  14334. }
  14335. case 3:
  14336. {
  14337. if(FACTIONS[Faction[playerid]][FactionSpawn3][0] == 0) return SysMsg(playerid,"Este ponto de spawn não foi definido.");
  14338. format(desc, 40, FACTIONS[Faction[playerid]][FactionSpawn3Name]);
  14339. FACTIONS[Faction[playerid]][FactionSpawn3][0] = 0.0;
  14340. FACTIONS[Faction[playerid]][FactionSpawn3][1] = 0.0;
  14341. FACTIONS[Faction[playerid]][FactionSpawn3][2] = 0.0;
  14342. FACTIONS[Faction[playerid]][FactionSpawn3][3] = 0.0;
  14343. FACTIONS[Faction[playerid]][FactionSpawnVW][2] = 0;
  14344. FACTIONS[Faction[playerid]][FactionSpawnInt][2] = 0;
  14345. FACTIONS[Faction[playerid]][FactionSpawn3Name][0] = 0;
  14346. mysql_format(conn, mquery, sizeof(mquery), "UPDATE factions SET Spawn3Name = '', Spawn3X = 0.0, Spawn3Y = 0.0, Spawn3Z = 0.0, Spawn3A = 0.0, Spawn3VW = 0, Spawn3Int = 0 WHERE id = %i", FACTIONS[Faction[playerid]][FactionId]);
  14347. mysql_pquery(conn, mquery);
  14348. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET SubFactionSpawn=1 WHERE SubFactionSpawn=3 AND Faction=%i", Faction[playerid]);
  14349. mysql_pquery(conn, mquery);
  14350. }
  14351. case 4:
  14352. {
  14353. if(FACTIONS[Faction[playerid]][FactionSpawn4][0] == 0) return SysMsg(playerid,"Este ponto de spawn não foi configurado.");
  14354. format(desc, 40, FACTIONS[Faction[playerid]][FactionSpawn4Name]);
  14355. FACTIONS[Faction[playerid]][FactionSpawn4][0] = 0.0;
  14356. FACTIONS[Faction[playerid]][FactionSpawn4][1] = 0.0;
  14357. FACTIONS[Faction[playerid]][FactionSpawn4][2] = 0.0;
  14358. FACTIONS[Faction[playerid]][FactionSpawn4][3] = 0.0;
  14359. FACTIONS[Faction[playerid]][FactionSpawnVW][3] = 0;
  14360. FACTIONS[Faction[playerid]][FactionSpawnInt][3] = 0;
  14361. FACTIONS[Faction[playerid]][FactionSpawn4Name][0] = 0;
  14362. mysql_format(conn, mquery, sizeof(mquery), "UPDATE factions SET Spawn4Name = '', Spawn4X = 0.0, Spawn4Y = 0.0, Spawn4Z = 0.0, Spawn4A = 0.0, Spawn4VW = 0, Spawn4Int = 0 WHERE id = %i", FACTIONS[Faction[playerid]][FactionId]);
  14363. mysql_pquery(conn, mquery);
  14364. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET SubFactionSpawn=1 WHERE SubFactionSpawn=4 AND Faction=%i", Faction[playerid]);
  14365. mysql_pquery(conn, mquery);
  14366. }
  14367. case 5:
  14368. {
  14369. if(FACTIONS[Faction[playerid]][FactionSpawn5][0] == 0) return SysMsg(playerid,"Este ponto de spawn não foi configurado.");
  14370. format(desc, 40, FACTIONS[Faction[playerid]][FactionSpawn5Name]);
  14371. FACTIONS[Faction[playerid]][FactionSpawn5][0] = 0.0;
  14372. FACTIONS[Faction[playerid]][FactionSpawn5][1] = 0.0;
  14373. FACTIONS[Faction[playerid]][FactionSpawn5][2] = 0.0;
  14374. FACTIONS[Faction[playerid]][FactionSpawn5][3] = 0.0;
  14375. FACTIONS[Faction[playerid]][FactionSpawnVW][4] = 0;
  14376. FACTIONS[Faction[playerid]][FactionSpawnInt][4] = 0;
  14377. FACTIONS[Faction[playerid]][FactionSpawn5Name][0] = 0;
  14378. mysql_format(conn, mquery, sizeof(mquery), "UPDATE factions SET Spawn5Name = '', Spawn5X = 0.0, Spawn5Y = 0.0, Spawn5Z = 0.0, Spawn5A = 0.0, Spawn5VW = 0, Spawn5Int = 0 WHERE id = %i", FACTIONS[Faction[playerid]][FactionId]);
  14379. mysql_pquery(conn, mquery);
  14380. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET SubFactionSpawn=1 WHERE SubFactionSpawn=5 AND Faction=%i", Faction[playerid]);
  14381. mysql_pquery(conn, mquery);
  14382. }
  14383. default: return SysMsg(playerid,"O ponto de Spawn só pode ser de 1 a 5.");
  14384. }
  14385. foreach(new i: Player)
  14386. {
  14387. if(Logged{i} && Faction[i] == Faction[playerid] && SubFactionSpawn[i] == spawnpoint)
  14388. {
  14389. SubFactionSpawn[i] = 1;
  14390. MySQLUpdateInt(SQLID[i], "SubFactionSpawn", SubFactionSpawn[i], "players");
  14391. }
  14392. }
  14393. format(gstr, sizeof(gstr), "Ponto de spawn %i (%s) foi removido.", spawnpoint, desc);
  14394. SendClientMessage(playerid, COLOR_ORANGE, gstr);
  14395. return true;
  14396. }
  14397. CMD:fsaque(playerid, params[])
  14398. {
  14399. if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado.");
  14400. if(!IsInBank(playerid)) return SysMsg(playerid, "Você não esta em um banco.");
  14401. if(Faction[playerid] < 1) return SysMsg(playerid,"Você não está em uma facção.");
  14402. if(FactionRank[playerid] < FACTIONS[Faction[playerid]][FactionUberLeaderRank]) return SysMsg(playerid,"Você não tem um Rank alto suficiente na facção para fazer isso.");
  14403. new amount;
  14404. if(sscanf(params, "i", amount)) return SysMsg(playerid,"Use: /fsaque [Quantidade]");
  14405. if(amount < 1) return SysMsg(playerid,"Quantidade Inválida, Deve ser maior que 0.");
  14406. if(amount > FACTIONS[Faction[playerid]][FactionBankBalance]) return SysMsg(playerid,"Quantidade Inválida, Não há nem mesmo na conta.");
  14407. new oldBal = FACTIONS[Faction[playerid]][FactionBankBalance];
  14408. FACTIONS[Faction[playerid]][FactionBankBalance] -= amount;
  14409. GivePlayerCash(playerid, amount);
  14410. SendClientMessageF(playerid, COLOR_WHITE, "[Saque - Facção] Equilíbrio bancário da facção {0098F2}%s:", GetFactionName(playerid));
  14411. SendClientMessageF(playerid, COLOR_WHITE, "[Saque - Facção] Balance Antigo: {4BB74C}$%s{FFFFFF}, Novo Balance: {4BB74C}$%s{FFFFFF}.", format_cash(oldBal), format_cash(FACTIONS[Faction[playerid]][FactionBankBalance]));
  14412. MySQLUpdateInt(FACTIONS[Faction[playerid]][FactionId], "BankBalance", FACTIONS[Faction[playerid]][FactionBankBalance], "factions");
  14413. format(gstr, sizeof(gstr),"[%s] %s(%i) retirou $%i da %s fbank. (Total: $%i)", GetServerTimeString(), NameEx(playerid), playerid, amount, GetFactionName(playerid), Cash[playerid]);
  14414. AddToLog("cash", gstr);
  14415. return true;
  14416. }
  14417. //==============================//
  14418. CMD:atm(playerid, params[])
  14419. {
  14420. if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado.");
  14421. new atm = IsPlayerNearATM(playerid);
  14422. if(atm == 0) return SysMsg(playerid,"Você não está proximo de um caixa eletronico.");
  14423. new Float:atmPos[3];
  14424. GetDynamicObjectPos(atm, atmPos[0], atmPos[1], atmPos[2]);
  14425. SetPlayerToFacePoint(playerid, atmPos[0], atmPos[1]);
  14426. OnePlayAnim(playerid, "ped", "ATM", 3.5, 0, 0, 0, 0, 0);
  14427. UsingATM{playerid} = true;
  14428. Dialog_Show(playerid,BankMenu,DIALOG_STYLE_LIST,"{3D9140}Gerênciamento bancário {FFFFFF}(ATM)","Balance\nSaque\nSacar tudo\nSacar metade","Selecionar","Cancelar");
  14429. return true;
  14430. }
  14431. CMD:assinarcheque(playerid, params[])
  14432. {
  14433. if(!Logged{playerid}) return true;
  14434. if(!CheckReady{playerid}) return SysMsg(playerid,"Você não tem um cheque pronto.");
  14435. if(IsPlayerInRangeOfPoint(playerid, 2.5, 756.6013,-31.4750,1008.6959) || IsPlayerInRangeOfPoint(playerid, 2.5, 915.378479, 2370.55102, 246.462112) || IsPlayerInRangeOfPoint(playerid, 2.5, 889.941467, 2261.735351, 238.230422) || IsPlayerInRangeOfPoint(playerid, 2.5, 1174.3242,1354.0504,1002.8235) || ADuty[playerid] == 1)
  14436. {
  14437. new paydaynumber;
  14438. if(sscanf(params, "i", paydaynumber)) return SysMsg(playerid,"Use: /assinarcheque [número]");
  14439. if(paydaynumber < 1111 || paydaynumber > 9111) return SysMsg(playerid,"Número de verificação inválido.");
  14440. if(paydaynumber != CheckNumber[playerid]) return SysMsg(playerid,"Número de verificação errado.");
  14441. PayDay(playerid);
  14442. CheckReady{playerid} = false;
  14443. UnlockAchievement(playerid, 11);
  14444. PlayerTextDrawSetString(playerid, Signcheck[playerid], "~g~~h~~h~Payday: ~w~0000");
  14445. PlayerTextDrawHide(playerid, Signcheck[playerid]);
  14446. printf("[PayDay] %s (%i)",NameEx(playerid),CheckReady{playerid});
  14447. return true;
  14448. }
  14449. SysMsg(playerid,"Você deve estar em uma Prefeitura da cidade para obter o seu Payday. (Palomino Creek, Fort Carson ou Angel Pine).");
  14450. return true;
  14451. }
  14452. CMD:agua(playerid)
  14453. {
  14454. if(!Logged{playerid}) return true;
  14455. if(Inventory[playerid][Water] <= 0) return SysMsg(playerid,"Você não tem água.");
  14456. Inventory[playerid][Water] --;
  14457. MySQLUpdateFloat(SQLID[playerid], "HasWater", Inventory[playerid][Water], "players");
  14458. OnePlayAnim(playerid, "FOOD", "EAT_Burger", 3.0, 0, 0, 0, 0, 0);
  14459. SendClientMessage(playerid, COLOR_WHITE, "Depois de beber alguns copos de {00B9F9}água{FFFFFF}, você se sente um pouco {00B9F9}refrescado{FFFFFF} e {00B9F9}hidratado{FFFFFF}.");
  14460. return true;
  14461. }
  14462. CMD:beber(playerid, params[]) //comando para bar //observar
  14463. {
  14464. if(!Logged{playerid}) return true;
  14465. if(!IsPlayerAtBar(playerid)) return SysMsg(playerid,"Você não está em um Bar.");
  14466. if(isnull(params)) return SysMsg(playerid,"Use: /beber [Nome do Drink] (Drinks: vinho, cerveja, sprunk, vodka, cola)");
  14467. if(strcmp("cerveja",params,true) == 0)
  14468. {
  14469. if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DRINK_BEER) return SysMsg(playerid,"Aguarde até que você tenha terminado de beber.");
  14470. GivePlayerCash(playerid, -5);
  14471. DrunkLevel[playerid] = GetPlayerDrunkLevel(playerid);
  14472. if(DrunkLevel[playerid] < 47500)
  14473. {
  14474. DrunkLevel[playerid] += 2500;
  14475. SetPlayerDrunkLevel(playerid, DrunkLevel[playerid]);
  14476. }
  14477. else
  14478. {
  14479. DrunkLevel[playerid] = 50000;
  14480. SetPlayerDrunkLevel(playerid, 50000);
  14481. }
  14482. LoopingAnim(playerid, "BAR", "Barcustom_get", 3.0, 0, 1, 1, 1, 0);
  14483. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_BEER);
  14484. SendClientMessage(playerid,COLOR_SKYBLUE,"Você comprou uma Cerveja por $5.");
  14485. format(gstr, sizeof(gstr),"* %s compra uma Garrafa de Cerveja no bar. *",NameRP(playerid));
  14486. ProxDetector(10.0,playerid,gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  14487. UnlockAchievement(playerid, 64);
  14488. return true;
  14489. }
  14490. else if(strcmp("vinho",params,true) == 0)
  14491. {
  14492. if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DRINK_WINE) return SysMsg(playerid,"Aguarde até que você tenha terminado de beber.");
  14493. GivePlayerCash(playerid, -7);
  14494. DrunkLevel[playerid] = GetPlayerDrunkLevel(playerid);
  14495. if(DrunkLevel[playerid] < 47000)
  14496. {
  14497. DrunkLevel[playerid] += 3000;
  14498. SetPlayerDrunkLevel(playerid, DrunkLevel[playerid]);
  14499. }
  14500. else
  14501. {
  14502. DrunkLevel[playerid] = 50000;
  14503. SetPlayerDrunkLevel(playerid, 50000);
  14504. }
  14505. LoopingAnim(playerid, "BAR", "Barcustom_get", 3.0, 0, 1, 1, 1, 0);
  14506. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_WINE);
  14507. SendClientMessage(playerid,COLOR_SKYBLUE,"Você comprou uma Garrafa de Vinho por $7.");
  14508. format(gstr, sizeof(gstr),"* %s compra uma garrafa de Vinho no Bar. *",NameRP(playerid));
  14509. ProxDetector(10.0,playerid,gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  14510. UnlockAchievement(playerid, 64);
  14511. return true;
  14512. }
  14513. else if(strcmp("sprunk",params,true) == 0)
  14514. {
  14515. if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DRINK_SPRUNK) return SysMsg(playerid,"Aguarde até que você tenha terminado de beber.");
  14516. GivePlayerCash(playerid, -3);
  14517. LoopingAnim(playerid, "BAR", "Barcustom_get", 3.0, 0, 1, 1, 1, 0);
  14518. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_SPRUNK);
  14519. SendClientMessage(playerid,COLOR_SKYBLUE,"Você comprou um Copo de Sprunk por $3.");
  14520. format(gstr, sizeof(gstr),"* %s compra um Copo de Sprunk no bar. *",NameRP(playerid));
  14521. ProxDetector(10.0,playerid,gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  14522. UnlockAchievement(playerid, 64);
  14523. return true;
  14524. }
  14525. else if(strcmp("cola",params,true) == 0)
  14526. {
  14527. if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DRINK_SPRUNK) return SysMsg(playerid,"Aguarde até que você tenha terminado de beber.");
  14528. GivePlayerCash(playerid, -3);
  14529. LoopingAnim(playerid, "BAR", "Barcustom_get", 3.0, 0, 1, 1, 1, 0);
  14530. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_SPRUNK);
  14531. SendClientMessage(playerid,COLOR_SKYBLUE,"Você com comprou uma latinha de Coca-Cola por $3.");
  14532. format(gstr, sizeof(gstr),"* %s compra uma Latinha de Coca-cola no bar. *",NameRP(playerid));
  14533. ProxDetector(10.0,playerid,gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  14534. UnlockAchievement(playerid, 64);
  14535. return true;
  14536. }
  14537. else if(strcmp("vodka",params,true) == 0)
  14538. {
  14539. if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DRINK_WINE) return SysMsg(playerid,"Aguarde até que você tenha terminado de beber.");
  14540. GivePlayerCash(playerid, -6);
  14541. DrunkLevel[playerid] = GetPlayerDrunkLevel(playerid);
  14542. if(DrunkLevel[playerid] < 47000)
  14543. {
  14544. DrunkLevel[playerid] += 5000;
  14545. SetPlayerDrunkLevel(playerid, DrunkLevel[playerid]);
  14546. }
  14547. else
  14548. {
  14549. DrunkLevel[playerid] = 50000;
  14550. SetPlayerDrunkLevel(playerid, 50000);
  14551. }
  14552. LoopingAnim(playerid, "BAR", "Barcustom_get", 3.0, 0, 1, 1, 1, 0);
  14553. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_WINE);
  14554. SendClientMessage(playerid,COLOR_SKYBLUE,"Você comprou uma Garrafa de Vodka $6.");
  14555. format(gstr, sizeof(gstr),"* %s compra uma garrafa de Vodka no bar. *",NameRP(playerid));
  14556. ProxDetector(10.0,playerid,gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  14557. UnlockAchievement(playerid, 64);
  14558. return true;
  14559. }
  14560. return true;
  14561. }
  14562. CMD:comprarcomida(playerid, params[])
  14563. {
  14564. if(!Logged{playerid}) return true;
  14565. gstr[0] = EOS;
  14566. if(IsPlayerInRangeOfPoint(playerid,2.5,375.593475,-119.421913,1001.499511) || IsPlayerInRangeOfPoint(playerid, 2.5, 1377.5850,230.8785,859.7217))
  14567. {
  14568. if(IsInBizzID[playerid] > 0 && BizzData[IsInBizzID[playerid]][BizzOwnerSQLID] > 0 && BizzData[IsInBizzID[playerid]][BizzStock] <= 0) return SysMsg(playerid,"Essa loja esta com estoque vazio.");
  14569. strcat(gstr, "{FFFFFF}Hamburger - {3D9140}$2\n");
  14570. strcat(gstr, "{FFFFFF}X-Tudo - {3D9140}$5\n");
  14571. strcat(gstr, "{FFFFFF}Costela Assada - {3D9140}$10\n");
  14572. strcat(gstr, "{FFFFFF}Salada - {3D9140}$10");
  14573. Dialog_Show(playerid, FoodMenu, DIALOG_STYLE_LIST, "Cardápio de comidas", gstr, "Comprar", "Sair");
  14574. return true;
  14575. }
  14576. else if(IsPlayerInRangeOfPoint(playerid,3.5,449.311401,-84.340423,999.554687) || IsPlayerInRangeOfPoint(playerid, 5.5, -1337.6069, -41.5284, 17.7579) ||
  14577. IsPlayerInRangeOfPoint(playerid,3.5,378.4463,-187.9347,1000.6328) || IsPlayerInRangeOfPoint(playerid,3.5,1981.5765,2358.3240,1023.9039))
  14578. {
  14579. if(IsInBizzID[playerid] > 0 && BizzData[IsInBizzID[playerid]][BizzOwnerSQLID] > 0 && BizzData[IsInBizzID[playerid]][BizzStock] <= 0) return SysMsg(playerid,"Essa loja esta com estoque vazio.");
  14580. strcat(gstr, "{FFFFFF}Hambúrguer - {3D9140}$4\n");
  14581. strcat(gstr, "{FFFFFF}Café - {3D9140}$1\n");
  14582. strcat(gstr, "{FFFFFF}Coca-Cola - {3D9140}$2\n");
  14583. strcat(gstr, "{FFFFFF}Double Whopper Cheeseburger - {3D9140}$20\n");
  14584. strcat(gstr, "{FFFFFF}Fritas - {3D9140}$4\n");
  14585. strcat(gstr, "{FFFFFF}Sopa - {3D9140}$3\n");
  14586. strcat(gstr, "{FFFFFF}Chá - {3D9140}$1\n");
  14587. strcat(gstr, "{FFFFFF}Torrada - {3D9140}$2");
  14588. Dialog_Show(playerid, CafeMenu, DIALOG_STYLE_LIST, "Cardápio Café", gstr, "Comprar", "Sair");
  14589. return true;
  14590. }
  14591. else if(IsPlayerInRangeOfPoint(playerid, 5.5,-2680.204833, 632.025817, 13700.49804) || IsPlayerInRangeOfPoint(playerid, 5.5, -1340.6831, -31.1640, 14.2559)) //mont hospital, prison cafes
  14592. {
  14593. strcat(gstr, "{FFFFFF}Café - {3D9140}$1\n");
  14594. strcat(gstr, "{FFFFFF}Coca-Cola - {3D9140}$2\n");
  14595. strcat(gstr, "{FFFFFF}Sopá - {3D9140}$3\n");
  14596. strcat(gstr, "{FFFFFF}Chá - {3D9140}$1\n");
  14597. strcat(gstr, "{FFFFFF}Torrada - {3D9140}$2\n");
  14598. Dialog_Show(playerid, CafeMenu, DIALOG_STYLE_LIST, "Cardápio Café", gstr, "Comprar", "Sair");
  14599. return true;
  14600. }
  14601. return true;
  14602. }
  14603. CMD:cancelarcompra(playerid, params[])//cancelarcompra
  14604. {
  14605. if(!Logged{playerid}) return true;
  14606. if(IsBrowsingMasks[playerid] > 0)
  14607. {
  14608. if(ClothesShop[playerid] == 1) // Binco
  14609. {
  14610. SetPlayerInterior(playerid, 15);
  14611. SetPlayerPos(playerid, 217.741760, -98.467315, 1005.257812);
  14612. SetPlayerFacingAngle(playerid, 85.428855);
  14613. }
  14614. else if(ClothesShop[playerid] == 2) // Pro Laps
  14615. {
  14616. SetPlayerInterior(playerid, 3);
  14617. SetPlayerPos(playerid, 199.539031, -128.424484, 1003.515197);
  14618. SetPlayerFacingAngle(playerid, 180.0);
  14619. ClothesShop[playerid] = 0;
  14620. }
  14621. else if(ClothesShop[playerid] == 3) // D Sachs
  14622. {
  14623. SetPlayerInterior(playerid, 14);
  14624. SetPlayerPos(playerid, 215.935409, -155.250579, 1000.523437);
  14625. SetPlayerFacingAngle(playerid, 90.0);
  14626. ClothesShop[playerid] = 0;
  14627. }
  14628. else if(ClothesShop[playerid] == 4) // Sub urban
  14629. {
  14630. SetPlayerInterior(playerid, 1);
  14631. SetPlayerPos(playerid, 214.644851, -40.850963, 1002.023437);
  14632. SetPlayerFacingAngle(playerid, 90.0);
  14633. ClothesShop[playerid] = 0;
  14634. }
  14635. else if(ClothesShop[playerid] == 5) // ZIP
  14636. {
  14637. SetPlayerInterior(playerid, 18);
  14638. SetPlayerPos(playerid, 180.1575, -88.2124, 1002.0234);
  14639. SetPlayerFacingAngle(playerid, 90.0);
  14640. ClothesShop[playerid] = 0;
  14641. }
  14642. SetPlayerVirtualWorldEx(playerid, BizzData[IsInBizzID[playerid]][BizzVW]);
  14643. BrowseMaskType[playerid] = 0;
  14644. IsBrowsingMasks[playerid] = 0;
  14645. ClothesShop[playerid] = 0;
  14646. SetCameraBehindPlayer(playerid);
  14647. PlayerTextDrawHide(playerid, MaskHelpText[playerid]);
  14648. TogglePlayerControllable(playerid, 1);
  14649. for(new i = 0; i < MAX_TEMPCLOTHES; i++)
  14650. {
  14651. if(Clothing_Objects[playerid][i] != INVALID_OBJECT_ID)
  14652. {
  14653. DestroyDynamicObjectEx(Clothing_Objects[playerid][i], "Clothing_Objects[playerid][i]");
  14654. Clothing_Objects[playerid][i] = INVALID_OBJECT_ID;
  14655. }
  14656. }
  14657. }
  14658. return true;
  14659. }
  14660. CMD:comprar(playerid, params[])//observar /pickups e nomes do /comprar
  14661. {
  14662. if(!Logged{playerid}) return true;
  14663. if(IsPlayerInRangeOfPoint(playerid,5.5,-27.167560,-89.524269,1003.546875) || IsPlayerInRangeOfPoint(playerid,5.5,-23.428977, -55.200191, 1003.546875) || IsPlayerInRangeOfPoint(playerid,5.5,2.20236, -28.508106, 1003.549438) || IsPlayerInRangeOfPoint(playerid, 5.5, 1248.3158,204.4189,2020.6406) || IsPlayerInRangeOfPoint(playerid, 5.5, 663.9998,-568.8943,16.3363))
  14664. {
  14665. new b;
  14666. if(IsPlayerInRangeOfPoint(playerid, 5.5, 663.9998,-568.8943,16.3363)) b = 44;
  14667. else b = IsInBizzID[playerid];
  14668. if(b <= 0) return SysMsg(playerid,"Você não esta em uma Loja.");
  14669. if(BizzData[b][BizzOwnerSQLID] > 0 && BizzData[b][BizzStock] <= 0) return SysMsg(playerid,"Essa loja esta com estoque vazio.");
  14670. gstr[0] = EOS;
  14671. strcat(gstr, "{FFFFFF}Item\t{FFFFFF}Cost\n");
  14672. strcat(gstr, "{FFFFFF}Mochila/Paraquedas\t{3D9140}$135\n");
  14673. strcat(gstr, "{FFFFFF}Calculadora básica\t{3D9140}$45\n");
  14674. strcat(gstr, "{FFFFFF}Taco de Beisebol\t{3D9140}$45\n");
  14675. strcat(gstr, "{FFFFFF}Venda de Olhos\t{3D9140}$25\n");
  14676. strcat(gstr, "{FFFFFF}Garrafa de Agua\t{3D9140}$2\n");
  14677. strcat(gstr, "{FFFFFF}Garrafas de Agua (x6)\t{3D9140}$10\n");
  14678. strcat(gstr, "{FFFFFF}Pasta\t{3D9140}$3750\n");
  14679. strcat(gstr, "{FFFFFF}Bengala\t{3D9140}$50\n");
  14680. strcat(gstr, "{FFFFFF}Dado\t{3D9140}$5\n");
  14681. strcat(gstr, "{FFFFFF}Kit de primeiros socorros\t{3D9140}$65\n");
  14682. strcat(gstr, "{FFFFFF}Flores\t{3D9140}$15\n");
  14683. strcat(gstr, "{FFFFFF}Recipiente de combustível\t{3D9140}$125\n");
  14684. strcat(gstr, "{FFFFFF}Taco de Golf\t{3D9140}$155\n");
  14685. strcat(gstr, "{FFFFFF}Isqueiro\t{3D9140}$5\n");
  14686. strcat(gstr, "{FFFFFF}Bloco de anotações\t{3D9140}$6\n");
  14687. strcat(gstr, "{FFFFFF}Maço de cigarro (x10)\t{3D9140}$3\n");
  14688. strcat(gstr, "{FFFFFF}Maço de cigarro (x20)\t{3D9140}$5\n");
  14689. strcat(gstr, "{FFFFFF}Taco de sinuca\t{3D9140}$80\n");
  14690. strcat(gstr, "{FFFFFF}Corda\t{3D9140}$12\n");
  14691. strcat(gstr, "{FFFFFF}Pá\t{3D9140}$35\n");
  14692. strcat(gstr, "{FFFFFF}Gravetos para Fogueira\t{3D9140}$100\n"); //Small Logs
  14693. strcat(gstr, "{FFFFFF}ESPECIAL: Gorro Natalino\t{3D9140}$50\n");
  14694. strcat(gstr, "{FFFFFF}Lata de Spray\t{3D9140}$50\n");
  14695. strcat(gstr, "{FFFFFF}Relógio\t{3D9140}$250\n");
  14696. strcat(gstr, "{FFFFFF}Papel de escrita (x5)\t{3D9140}$5\n");
  14697. strcat(gstr, "{FFFFFF}Caneta de escrita\t{3D9140}$3\n");
  14698. Dialog_Show(playerid, ShopDialog, DIALOG_STYLE_TABLIST_HEADERS, "Loja Geral", gstr, "Comprar", "Cancelar");
  14699. return true;
  14700. }
  14701. else if(IsPlayerInRangeOfPoint(playerid,5.5,-2236.450439, 130.609893, 1035.414062))
  14702. {
  14703. if(IsInBizzID[playerid] <= 0) return SysMsg(playerid,"Você não esta em uma Loja.");
  14704. if(BizzData[IsInBizzID[playerid]][BizzOwnerSQLID] > 0 && BizzData[IsInBizzID[playerid]][BizzStock] <= 0) return SysMsg(playerid,"Essa loja esta com estoque vazio.");
  14705. gstr[0] = EOS;
  14706. strcat(gstr, "{FFFFFF}Item\t{FFFFFF}Custo\n");
  14707. strcat(gstr, "{3D9140}$100{FFFFFF} Crédito telefônico\t{3D9140}$100\n");
  14708. strcat(gstr, "{3D9140}$10{FFFFFF} Crédito telefônico\t{3D9140}$10\n");
  14709. strcat(gstr, "{3D9140}$20{FFFFFF} Crédito telefônico\t{3D9140}$20\n");
  14710. strcat(gstr, "{3D9140}$50{FFFFFF} Crédito telefônico\t{3D9140}$50\n");
  14711. strcat(gstr, "{FFFFFF}Calculadora básica\t{3D9140}$45\n");
  14712. strcat(gstr, "{FFFFFF}Boombox (Large)\t{3D9140}$15000\n");
  14713. strcat(gstr, "{FFFFFF}Boombox (Small)\t{3D9140}$7500\n");
  14714. strcat(gstr, "{FFFFFF}Camera\t{3D9140}$125\n");
  14715. strcat(gstr, "{FFFFFF}Celular\t{3D9140}$300\n");
  14716. strcat(gstr, "{FFFFFF}Carregador de celular para carro\t{3D9140}$395\n");
  14717. strcat(gstr, "{FFFFFF}Lista telefônica\t{3D9140}$5\n");
  14718. strcat(gstr, "{FFFFFF}Pocket GPS\t{3D9140}$400\n");
  14719. strcat(gstr, "{FFFFFF}Radio\t{3D9140}$225\n");
  14720. strcat(gstr, "{FFFFFF}Relógio\t{3D9140}$250\n");
  14721. Dialog_Show(playerid, ShopDialog, DIALOG_STYLE_TABLIST_HEADERS, "Loja Eletrônica", gstr, "Comprar", "Cancelar");
  14722. return true;
  14723. }
  14724. else if(IsPlayerInRangeOfPoint(playerid,4.5,2150.958251,-100.995117,2.755812) || IsPlayerInRangeOfPoint(playerid, 4.5, -800.5269,-1922.8231,9.1117)) //fishing shop
  14725. {
  14726. gstr[0] = EOS;
  14727. strcat(gstr, "Permissão de pesca - {3D9140}$500\n");
  14728. strcat(gstr, "Vara de Pesca - {3D9140}$150\n");
  14729. strcat(gstr, "Isca (X25) - {3D9140}$10\n");
  14730. strcat(gstr, "Caixa de peixe pequeno (100 slots) - {3D9140}$1,000\n");
  14731. strcat(gstr, "Caixa de peixe médio (250 slots) - {3D9140}$2,500\n");
  14732. strcat(gstr, "Grande caixa de peixe (500 slots) - {3D9140}$5,000\n");
  14733. Dialog_Show(playerid, FishingBuy, DIALOG_STYLE_LIST, "Loja de pesca", gstr, "Comprar", "Cancelar");
  14734. return true;
  14735. }
  14736. else if(IsPlayerInRangeOfPoint(playerid,7.5,312.582183, -165.342315, 999.601013)) //ammunation
  14737. {
  14738. if(IsInBizzID[playerid] <= 0) return SysMsg(playerid,"Você não esta em uma Loja.");
  14739. if(BizzData[IsInBizzID[playerid]][BizzOwnerSQLID] > 0 && BizzData[IsInBizzID[playerid]][BizzStock] <= 0) return SysMsg(playerid,"Essa loja esta com estoque vazio.");
  14740. gstr[0] = EOS;
  14741. if(WeaponLicense[playerid] > 0)
  14742. {
  14743. strcat(gstr, "{FFFFFF}Pistola 9mm com 85 munições - {3D9140}$7500\n");
  14744. strcat(gstr, "{FFFFFF}Desert Eagle com 70 munições - {3D9140}$10000\n");
  14745. }
  14746. if(WeaponLicense[playerid] > 1)
  14747. {
  14748. strcat(gstr, "{FFFFFF}Country Rifle com 50 munições - {3D9140}$29500\n");
  14749. strcat(gstr, "{FFFFFF}Shotgun com 50 munições- {3D9140}$18500\n");
  14750. }
  14751. if(WeaponLicense[playerid] == 3)
  14752. {
  14753. strcat(gstr, "{FFFFFF}MP5 com 120 munições - {3D9140}$15000\n");
  14754. }
  14755. strcat(gstr, "{FFFFFF}Colete Leve - {3D9140}$2500\n");
  14756. strcat(gstr, "{FFFFFF}Munições para Pistola - {3D9140}$3000\n");
  14757. strcat(gstr, "{FFFFFF}Munições para Shotgun - {3D9140}$4000\n");
  14758. strcat(gstr, "{FFFFFF}Munições para SMG/UZI - {3D9140}$5000\n");
  14759. strcat(gstr, "{FFFFFF}Munições para Assault Rifle - {3D9140}$6000\n");
  14760. strcat(gstr, "{FFFFFF}Munições para Rifle/Sniper - {3D9140}$6000\n");
  14761. strcat(gstr, "{FFFFFF}ajuda loja");
  14762. Dialog_Show(playerid, AmmunationDialog, DIALOG_STYLE_LIST, "Ammunation Store", gstr, "Comprar", "Cancelar");
  14763. return true;
  14764. }
  14765. else if(IsPlayerInRangeOfPoint(playerid, 4.0, -104.774566, -11.245146, 1000.71875)) //sex shop
  14766. {
  14767. if(IsInBizzID[playerid] <= 0) return SysMsg(playerid,"Você não esta em uma Loja.");
  14768. if(BizzData[IsInBizzID[playerid]][BizzOwnerSQLID] > 0 && BizzData[IsInBizzID[playerid]][BizzStock] <= 0) return SysMsg(playerid,"Essa loja esta com estoque vazio.");
  14769. Dialog_Show(playerid, SexShopMenu, DIALOG_STYLE_LIST, "Sex Shop Itens", "{FFFFFF}Dildo roxo longo - {3D9140}$3500\n{FFFFFF}Vibrador branco pequeno - {3D9140}$2995\n{FFFFFF}Vibrato branco grander - {3D9140}$6250\n{FFFFFF}Vibrador de prata - {3D9140}$5000\n{FFFFFF}Nite Stick - {3D9140}$1200", "Comprar", "Cancelar");
  14770. return true;
  14771. }
  14772. else if(IsPlayerInRangeOfPoint(playerid, 4.0, 1465.098754, -1080.154663, 213.447738) && IsPlayerAdminLevelOK(playerid, 1)) //admin ex shop
  14773. {
  14774. Dialog_Show(playerid, SexShopMenu, DIALOG_STYLE_LIST, "Sex Shop Itens", "{FFFFFF}Dildo roxo longo - {3D9140}$3500\n{FFFFFF}Vibrador branco pequeno - {3D9140}$2995\n{FFFFFF}Vibrato branco grander - {3D9140}$6250\n{FFFFFF}Vibrador de prata - {3D9140}$5000\n{FFFFFF}Nite Stick - {3D9140}$1200", "Comprar", "Cancelar");
  14775. return true;
  14776. }
  14777. else if(IsPlayerInRangeOfPoint(playerid, 4.0, 745.4332, 1439.9840, 1102.7031)) //drug shop
  14778. {
  14779. if(IsInBizzID[playerid] <= 0) return SysMsg(playerid,"Você não esta em uma Loja.");
  14780. if(BizzData[IsInBizzID[playerid]][BizzOwnerSQLID] > 0 && BizzData[IsInBizzID[playerid]][BizzStock] <= 0) return SysMsg(playerid,"Essa loja esta com estoque vazio.");
  14781. Dialog_Show(playerid, DrugShopDialog, DIALOG_STYLE_LIST, "Itens de Drogaria",
  14782. "{FFFFFF}Rolo de Papel (x10) - {3D9140}$40\n\
  14783. {FFFFFF}Bong - {3D9140}$1350\n\
  14784. {FFFFFF}Frasco de água destilada - {3D9140}$6\n\
  14785. {FFFFFF}Sementes de Marijuana (x10) - {3D9140}$750",
  14786. "Comprar", "Cancelar");
  14787. return true;
  14788. }
  14789. else if(IsPlayerInRangeOfPoint(playerid, 4.0, 2435.888916, 111.16863, 1001.593872)) //pc garage
  14790. {
  14791. if(IsInBizzID[playerid] <= 0) return SysMsg(playerid,"Você não esta em uma Loja.");
  14792. if(BizzData[IsInBizzID[playerid]][BizzOwnerSQLID] > 0 && BizzData[IsInBizzID[playerid]][BizzStock] <= 0) return SysMsg(playerid,"Estamos atualmente sem estoque, por favor volte em outro momento.");
  14793. gstr[0] = EOS;
  14794. strcat(gstr, "{FFFFFF}Item\t{FFFFFF}Cost\n");
  14795. strcat(gstr, "{FFFFFF}Container de combustível\t{3D9140}$125\n");
  14796. strcat(gstr, "{FFFFFF}Carregador de celular para carro\t{3D9140}$395\n");
  14797. strcat(gstr, "{FFFFFF}Óleo de motor supremo\t{3D9140}$115\n");
  14798. strcat(gstr, "{FFFFFF}Caixa de ferramentas\t{3D9140}$350\n");
  14799. Dialog_Show(playerid, ShopDialog, DIALOG_STYLE_TABLIST_HEADERS, "Garagem Palomino Creek", gstr, "Comprar", "Cancelar");
  14800. return true;
  14801. }
  14802. return true;
  14803. }
  14804. CMD:medkit(playerid, params[])
  14805. {
  14806. if(!Logged{playerid}) return true;
  14807. if(Inventory[playerid][MedKit] == 0) return SysMsg(playerid, "Você não tem um kit de primeiros socorros para usar.");
  14808. if(MedKitAction[playerid] != 0 || MedKitActionPlayer[playerid] != -1) return SysMsg(playerid, "Você já está usando um medkit.");
  14809. new Float:Health;
  14810. if(strcmp("me", params, true) == 0)
  14811. {
  14812. foreach(new i: Player)
  14813. {
  14814. if(MedKitActionPlayer[i] == playerid)
  14815. {
  14816. return SysMsg(playerid, "Você já está sendo curado.");
  14817. }
  14818. }
  14819. new nlwcount = 0, lwcount = 0;
  14820. for(new x = 0; x < HitCount[playerid]; x++)
  14821. {
  14822. switch(Injuries[playerid][x][pWeaponID])
  14823. {
  14824. case 22..34,38: lwcount ++;
  14825. default: nlwcount ++;
  14826. }
  14827. }
  14828. if(lwcount >= 1) return SysMsg(playerid, "Você tem uma ferida letal. Você precisa de um tratamento médico adequado.");
  14829. GetPlayerHealth(playerid, Health);
  14830. if(Health == 100.0) return SysMsg(playerid, "Você está se sentindo perfeitamente bem assim não exija isso.");
  14831. MedKitAction[playerid] = 20;
  14832. OnePlayAnim(playerid, "CASINO", "dealone", 1.0, 1, 0, 0, 0, 20000);
  14833. format(gstr, sizeof(gstr),"* %s abre um pequeno kit de primeiros socorros... *",NameRP(playerid));
  14834. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  14835. }
  14836. else
  14837. {
  14838. new playa = -1;
  14839. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /medkit [ID ou nome do jogador Ou 'me' para usar em você mesmo]");
  14840. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  14841. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  14842. if(playa == playerid) return cmd_medkit(playerid, "me");
  14843. foreach(new i: Player)
  14844. {
  14845. if(MedKitActionPlayer[i] == playa)
  14846. {
  14847. return SysMsg(playerid, "Este jogador já está sendo curado.");
  14848. }
  14849. }
  14850. new nlwcount = 0, lwcount = 0;
  14851. for(new x = 0; x < HitCount[playa]; x++)
  14852. {
  14853. switch(Injuries[playa][x][pWeaponID])
  14854. {
  14855. case 22..34,38: lwcount ++;
  14856. default: nlwcount ++;
  14857. }
  14858. }
  14859. if(lwcount >= 1) return SysMsg(playerid, "Este jogador tem uma ferida letal. Eles precisam de um tratamento médico adequado.");
  14860. new Float:tX,Float:tY,Float:tZ;
  14861. GetPlayerPos(playa,tX,tY,tZ);
  14862. if(!IsPlayerInRangeOfPoint(playerid,4.0,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para curá-los.");
  14863. GetPlayerHealth(playa, Health);
  14864. if(Health == 100.0) return SysMsg(playerid, "Esse jogador não exige isso.");
  14865. MedKitAction[playerid] = 20;
  14866. MedKitActionPlayer[playerid] = playa;
  14867. SetPlayerToFacePlayer(playerid, playa);
  14868. OnePlayAnim(playerid, "BOMBER", "BOM_Plant_Loop", 4.0, 1, 0, 0, 1, 0);
  14869. OnePlayAnim(playa, "SWEET", "Sweet_injuredloop", 4.0, 1, 0, 0, 0, 0);
  14870. SetTimerEx("UnTazePlayer", 20000, 0, "d", playerid);
  14871. SetTimerEx("UnTazePlayer", 20000, 0, "d", playa);
  14872. format(gstr, sizeof(gstr),"* %s abre um pequeno kit de primeiros socorros... *",NameRP(playerid));
  14873. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  14874. }
  14875. return true;
  14876. }
  14877. CMD:treinar(playerid, params[])
  14878. {
  14879. if(!Logged{playerid}) return true;
  14880. if(!IsPlayerInRangeOfPoint(playerid, 5.0, 768.177551, -42.182048, 1000.686462)) return SysMsg(playerid, "Você precisa esta em uma Gym para fazer isso.");
  14881. if(isnull(params)) return SysMsg(playerid,"Use: /treinar [boxer/kungfu]");
  14882. PreloadAnimLib(playerid, "GYMNASIUM");
  14883. PreloadAnimLib(playerid, "PARK");
  14884. if(!strcmp("boxing", params, true) || !strcmp("boxer", params, true))
  14885. {
  14886. if(UsingFightStyle{playerid} == FIGHT_STYLE_BOXING) return SysMsg(playerid,"Você já estar usando seu estilo de luta Boxer.");
  14887. if(FightStyleLearned[playerid]{FS_BOXING})
  14888. {
  14889. SysMsg(playerid,"Você já esta aprendendo Boxer.");
  14890. if(UsingFightStyle{playerid} != FIGHT_STYLE_BOXING) SysMsg(playerid,"Para usar seu estilo de luta boxer, use /estiloluta (/sl).");
  14891. return 1;
  14892. }
  14893. SetPlayerVirtualWorldEx(playerid, playerid+10000);
  14894. //SetPlayerSkinEx(playerid, 81);
  14895. SetPlayerPos(playerid, 768.280273, -36.697841, 1000.686462);
  14896. SetPlayerFacingAngle(playerid, 220.9);
  14897. TogglePlayerControllable(playerid, 0);
  14898. SetPlayerCameraPos(playerid, 768.3822, -41.8251, 1000.1867);
  14899. SetPlayerCameraLookAt(playerid, 764.3148, -32.6897, 1001.923);
  14900. OnePlayAnim(playerid,"GYMNASIUM","GYMshadowbox",4.0,1,1,1,1,0);
  14901. Dialog_Show(playerid, FightDialog, DIALOG_STYLE_MSGBOX, "Gym", "{FFFFFF}Você quer aprender a lugar o estilo {4897FF}Boxer{FFFFFF}?\nIsso custará {4897FF}$50,000", "Sim", "Não");
  14902. SetPVarInt(playerid, "FStyleBuy", 1);
  14903. }
  14904. else if(!strcmp("kungfu", params, true) || !strcmp("kung fu", params, true))
  14905. {
  14906. if(UsingFightStyle{playerid} == FIGHT_STYLE_KUNGFU) return SysMsg(playerid,"You are already using your Kung Fu fighting style.");
  14907. if(FightStyleLearned[playerid]{FS_KUNGFU})
  14908. {
  14909. SysMsg(playerid,"Você já esta aprendendo Kung Fu.");
  14910. if(UsingFightStyle{playerid} != FIGHT_STYLE_KUNGFU) SysMsg(playerid,"Para usar seu estilo de luta kung fu, use /estiloluta (/sl).");
  14911. return 1;
  14912. }
  14913. SetPlayerVirtualWorldEx(playerid, playerid+10000);
  14914. //SetPlayerSkinEx(playerid, 49);
  14915. SetPlayerPos(playerid, 768.280273, -36.697841, 1000.686462);
  14916. SetPlayerFacingAngle(playerid, 220.9);
  14917. TogglePlayerControllable(playerid, 0);
  14918. SetPlayerCameraPos(playerid, 768.3822, -41.8251, 1000.1867);
  14919. SetPlayerCameraLookAt(playerid, 764.3148, -32.6897, 1001.923);
  14920. OnePlayAnim(playerid,"PARK","Tai_Chi_Loop",4.0,1,0,0,0,0);
  14921. Dialog_Show(playerid, FightDialog, DIALOG_STYLE_MSGBOX, "Gym", "{FFFFFF}Você quer aprender {4897FF}Kung Fu{FFFFFF}?\nIsso custará {4897FF}$50,000", "Sim", "Não");
  14922. SetPVarInt(playerid, "FStyleBuy", 2);
  14923. }
  14924. return true;
  14925. }
  14926. CMD:sl(playerid, params[]) return cmd_estiloluta(playerid, params);
  14927. CMD:estiloluta(playerid, params[])
  14928. {
  14929. if(isnull(params)) return SysMsg(playerid,"Use: /estiloluta [normal/boxing/kungfu]");
  14930. if(!strcmp(params, "normal", true) || !strcmp(params, "none", true) || !strcmp(params, "default", true))
  14931. {
  14932. if(UsingFightStyle{playerid} == FIGHT_STYLE_NORMAL) return SysMsg(playerid, "Você já está usando esse estilo de luta.");
  14933. SetPlayerFightingStyle(playerid, FIGHT_STYLE_NORMAL);
  14934. UsingFightStyle{playerid} = FIGHT_STYLE_NORMAL;
  14935. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET FightStyle = %i WHERE id = %i", UsingFightStyle{playerid}, SQLID[playerid]);
  14936. mysql_pquery(conn, mquery);
  14937. SendClientMessage(playerid, -1, "Estilo de luta definido para 'normal'.");
  14938. }
  14939. else if(!strcmp(params, "boxing", true) || !strcmp(params, "boxer", true))
  14940. {
  14941. if(!FightStyleLearned[playerid]{FS_BOXING}) return SysMsg(playerid, "Você não conhece esse estilo de luta.");
  14942. if(UsingFightStyle{playerid} == FIGHT_STYLE_BOXING) return SysMsg(playerid, "Você já está usando esse estilo de luta.");
  14943. SetPlayerFightingStyle(playerid, FIGHT_STYLE_BOXING);
  14944. UsingFightStyle{playerid} = FIGHT_STYLE_BOXING;
  14945. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET FightStyle = %i WHERE id = %i", UsingFightStyle{playerid}, SQLID[playerid]);
  14946. mysql_pquery(conn, mquery);
  14947. SendClientMessage(playerid, -1, "Estilo de luta definido para 'Boxing'.");
  14948. }
  14949. else if(!strcmp(params, "kungfu", true) || !strcmp(params, "kung fu", true))
  14950. {
  14951. if(!FightStyleLearned[playerid]{FS_KUNGFU}) return SysMsg(playerid, "Você não conhece esse estilo de luta.");
  14952. if(UsingFightStyle{playerid} == FIGHT_STYLE_KUNGFU) return SysMsg(playerid, "Você já está usando esse estilo de luta.");
  14953. SetPlayerFightingStyle(playerid, FIGHT_STYLE_KUNGFU);
  14954. UsingFightStyle{playerid} = FIGHT_STYLE_KUNGFU;
  14955. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET FightStyle = %i WHERE id = %i", UsingFightStyle{playerid}, SQLID[playerid]);
  14956. mysql_pquery(conn, mquery);
  14957. SendClientMessage(playerid, -1, "Estilo de luta definido para 'Kung Fu'.");
  14958. }
  14959. return true;
  14960. }
  14961. CMD:pagar(playerid, params[])
  14962. {
  14963. if(!Logged{playerid}) return true;
  14964. new playa = -1, PayCash, name[MAX_PLAYER_NAME];
  14965. if(sscanf(params, "s[24]i", name, PayCash)) return SysMsg(playerid,"Use: /pagar [ID ou nome do jogador] [Quantidade a pagar]");
  14966. if(strval(name) >= 500)
  14967. {
  14968. foreach(new p: Player)
  14969. {
  14970. if(MaskLabelNumber[p] == strval(name))
  14971. {
  14972. playa = p;
  14973. }
  14974. }
  14975. }
  14976. else playa = GetPlayerIDs(name);
  14977. if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado.");
  14978. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  14979. if(playa == playerid) return SysMsg(playerid,"Você não pode pagar a si mesmo.");
  14980. if(PayCash < 1 || PayCash > 1000000) return SysMsg(playerid,"O dinheiro deve estar entre $1 e $1,000,000.");
  14981. if(PayCash > Cash[playerid]) return SysMsg(playerid,"Você não tem essa quantidade de dinheiro.");
  14982. new Float:tX,Float:tY,Float:tZ;
  14983. GetPlayerPos(playa,tX,tY,tZ);
  14984. if(!IsPlayerInRangeOfPoint(playerid,5.5,tX,tY,tZ) || IsSpectating[playa] > -1) return SysMsg(playerid,"Você deve estar perto do jogador para pagá-lo.");
  14985. GivePlayerCash(playerid, -PayCash);
  14986. GivePlayerCash(playa, PayCash);
  14987. SendClientMessageF(playerid, COLOR_LIGHTGREEN, "Você deu a %s $%s",NameRP(playa),format_cash(PayCash));
  14988. SendClientMessageF(playa, COLOR_LIGHTGREEN, "%s te deu $%s",NameRP(playerid),format_cash(PayCash));
  14989. format(gstr, sizeof(gstr),"* %s tira algum dinheiro da carteira e dá para %s. *",NameRP(playerid),NameRP(playa));
  14990. ProxDetector(10.0,playerid,gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  14991. if(!IsPlayerInAnyVehicle(playerid) && !IsPlayerInAnyVehicle(playa))
  14992. {
  14993. SetPlayerToFacePlayer(playerid, playa);
  14994. OnePlayAnim(playerid, "DEALER", "shop_pay", 3.5, 0, 0, 0, 0, 0);
  14995. }
  14996. format(gstr, sizeof(gstr),"[%s] %s(%i) pagou %s(%i) $%i. (Total: $%i)", GetServerTimeString(), NameEx(playerid), playerid, NameEx(playa), playa, PayCash, Cash[playerid]);
  14997. AddToLog("cash", gstr);
  14998. if(PayCash >= 1000000)
  14999. {
  15000. format(gstr, sizeof(gstr), "[Admin] %s deu %s $%i.", NameEx(playerid), NameEx(playa), PayCash);
  15001. AdminBroadcast(gstr, 0);
  15002. }
  15003. return true;
  15004. }
  15005. CMD:asscheque(playerid, params[])
  15006. {
  15007. if(!Logged{playerid}) return true;
  15008. if(Inventory[playerid][Checks] == 0) return SysMsg(playerid, "Você não tem nenhum talão de cheque para assinar.");
  15009. new playa = -1, PayCash, name[MAX_PLAYER_NAME];
  15010. if(sscanf(params, "s[24]i", name, PayCash)) return SysMsg(playerid,"Use: /asscheque [ID ou nome do jogador] [Valor]");
  15011. if(strval(name) >= 500)
  15012. {
  15013. foreach(new p: Player)
  15014. {
  15015. if(MaskLabelNumber[p] == strval(name))
  15016. {
  15017. playa = p;
  15018. }
  15019. }
  15020. }
  15021. else playa = GetPlayerIDs(name);
  15022. if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado.");
  15023. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  15024. if(playa == playerid) return SysMsg(playerid,"Você não pode dar um Cheque a si mesmo.");
  15025. if(PayCash < 10 || PayCash > 50000000) return SysMsg(playerid,"O valor deve estar entre $10 e $50,000,000.");
  15026. if(PayCash > BankBalance[playerid]) return SysMsg(playerid,"Você não tem essa quantia de dinheiro em seu banco.");
  15027. new Float:tX,Float:tY,Float:tZ;
  15028. GetPlayerPos(playa,tX,tY,tZ);
  15029. if(!IsPlayerInRangeOfPoint(playerid,5.0,tX,tY,tZ)) return SysMsg(playerid,"Você precisa estar proximo ao jogador para fazer isso.");
  15030. new checkslot = -1;
  15031. for(new i = 0; i < 3; i++)
  15032. {
  15033. if(PlayerChecks[playa][i] == 0) checkslot = i;
  15034. }
  15035. if(checkslot == -1) return SysMsg(playerid, "Esse jogador não pode receber mais cheques.");
  15036. BankBalance[playerid] -= PayCash;
  15037. Inventory[playerid][Checks] --;
  15038. PlayerChecks[playa][checkslot] = PayCash;
  15039. MySQLUpdateInt(SQLID[playerid], "Bank", BankBalance[playerid], "players");
  15040. MySQLUpdateInt(SQLID[playerid], "Checks", Inventory[playerid][Checks], "players");
  15041. new str[8];
  15042. for(new x = 0; x < 3; x++)
  15043. {
  15044. format(str, sizeof(str), "Check%i", x + 1);
  15045. MySQLUpdateInt(SQLID[playa], str, PlayerChecks[playa][x], "players");
  15046. }
  15047. SendClientMessageF(playerid, COLOR_LIGHTGREEN, "Você assinou um cheque de $%s e deu para %s", format_cash(PayCash), NameRP(playa));
  15048. SendClientMessageF(playa, COLOR_LIGHTGREEN, "%s te deu um cheque de $%s. Vá para o banco para deposita-lo. (Cheques Slot %i)", NameRP(playerid), format_cash(PayCash), checkslot + 1);
  15049. format(gstr, sizeof(gstr),"* %s tira uma folha do bloco de talões de cheque, assina um cheque e entrega a %s. *", NameRP(playerid), NameRP(playa));
  15050. ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  15051. if(!IsPlayerInAnyVehicle(playerid) && !IsPlayerInAnyVehicle(playa))
  15052. {
  15053. SetPlayerToFacePlayer(playerid, playa);
  15054. OnePlayAnim(playerid, "DEALER", "shop_pay", 3.5, 0, 0, 0, 0, 0);
  15055. }
  15056. format(gstr, sizeof(gstr),"[%s] %s(%i) assina um cheque no valor de $%i para %s(%i).", GetServerTimeString(), NameEx(playerid), playerid, PayCash, NameEx(playa), playa);
  15057. AddToLog("cash", gstr);
  15058. return true;
  15059. }
  15060. CMD:obtertaloes(playerid, params[])//obtertaloes
  15061. {
  15062. if(!Logged{playerid}) return true;
  15063. if(Inventory[playerid][Checks] > 0) return SysMsg(playerid, "Você já tem um talão de Cheques.");
  15064. if(!IsInBank(playerid)) return SysMsg(playerid,"Você precisa estar em um banco.");
  15065. if(Cash[playerid] < 25) return SysMsg(playerid, "Você precisa, pelo menos, de $25 para obter um talão de cheques.");
  15066. Inventory[playerid][Checks] = 50;
  15067. GivePlayerCash(playerid, -25);
  15068. MySQLUpdateInt(SQLID[playerid], "Checks", Inventory[playerid][Checks], "players");
  15069. SendClientMessage(playerid, COLOR_LIGHTGREEN, "Você agora tem um novo talão de cheques (50 cheques bancários) Isso custa $25.");
  15070. return true;
  15071. }
  15072. CMD:depositarcheque(playerid, params[])
  15073. {
  15074. if(!Logged{playerid}) return true;
  15075. if(!IsInBank(playerid)) return SysMsg(playerid, "Você não está em um banco.");
  15076. new checkslot;
  15077. if(sscanf(params, "i", checkslot)) return SysMsg(playerid,"Use: /depositarcheque [Slot do Cheque] *Olhe o Slot em /cheques*");
  15078. if(checkslot < 1 || checkslot > 3) return SysMsg(playerid,"O slot de verificação deve ser 1, 2 or 3.");
  15079. checkslot --;
  15080. if(PlayerChecks[playerid][checkslot] == 0) return SysMsg(playerid,"Não há cheque nesse slot para depositar.");
  15081. BankBalance[playerid] += PlayerChecks[playerid][checkslot];
  15082. MySQLUpdateInt(SQLID[playerid], "Bank", BankBalance[playerid], "players");
  15083. new str[8];
  15084. for(new x = 0; x < 3; x++)
  15085. {
  15086. format(str, sizeof(str), "Check%i", x + 1);
  15087. if(checkslot != x) MySQLUpdateInt(SQLID[playerid], str, PlayerChecks[playerid][x], "players");
  15088. else MySQLUpdateInt(SQLID[playerid], str, 0, "players");
  15089. }
  15090. format(gstr, sizeof(gstr), "EXTRATO BANCÁRIO - %s @ %s\nBalance Antigo: $%s\nDeposito de Cheque: $%s\n\nNovo Balance: $%s", NameEx(playerid), GetTimeString(), format_cash(BankBalance[playerid]-PlayerChecks[playerid][checkslot]), format_cash(PlayerChecks[playerid][checkslot]), format_cash(BankBalance[playerid]));
  15091. ShowMessage(playerid, "Gerênciamento bancário - Declaração de Cheque", gstr, "Ok");
  15092. format(gstr, sizeof(gstr), "[%s] %s(%i) deposita um cheque por $%i.", GetServerTimeString(), NameEx(playerid), playerid, PlayerChecks[playerid][checkslot]);
  15093. AddToLog("cash", gstr);
  15094. PlayerChecks[playerid][checkslot] = 0;
  15095. format(gstr,sizeof(gstr),"* %s deposita um cheque. *", NameRP(playerid));
  15096. ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  15097. return true;
  15098. }
  15099. CMD:cheques(playerid, params[])
  15100. {
  15101. if(!Logged{playerid}) return true;
  15102. SendClientMessageF(playerid, COLOR_WHITE, "[Inventário] Você atualmente tem %i cheques bancário.", Inventory[playerid][Checks]);
  15103. new count, value;
  15104. for(new i = 0; i < 3; i++)
  15105. {
  15106. if(PlayerChecks[playerid][i] > 0)
  15107. {
  15108. count ++;
  15109. value += PlayerChecks[playerid][i];
  15110. format(gstr, sizeof(gstr), "Slot de Cheque %i: $%s para depositar", i + 1, format_cash(PlayerChecks[playerid][i]));
  15111. SendClientMessage(playerid, COLOR_WHITE, gstr);
  15112. }
  15113. else
  15114. {
  15115. format(gstr, sizeof(gstr), "Slot de Cheque %i: Nenhum", i + 1);
  15116. SendClientMessage(playerid, COLOR_WHITE, gstr);
  15117. }
  15118. }
  15119. SendClientMessageF(playerid, COLOR_WHITE, "Você tem %i cheques pronto para depositar no banco, gerando um valor de $%s.", count, format_cash(value));
  15120. return true;
  15121. }
  15122. CMD:cumprimentar(playerid, params[])
  15123. {
  15124. if(!Logged{playerid}) return true;
  15125. new playa = -1, name[MAX_PLAYER_NAME];
  15126. if(sscanf(params, "s[24]", name)) return SysMsg(playerid,"Use: /fcumprimentar [ID ou nome do jogador]");
  15127. if(strval(name) >= 500)
  15128. {
  15129. foreach(new p: Player)
  15130. {
  15131. if(MaskLabelNumber[p] == strval(name))
  15132. {
  15133. playa = p;
  15134. }
  15135. }
  15136. }
  15137. else playa = GetPlayerIDs(name);
  15138. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  15139. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  15140. if(playa == playerid) return SysMsg(playerid,"Você não pode fazer isso em si mesmo.");
  15141. if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid,"Você não pode fazer isso em um veiculo.");
  15142. if(GetPlayerVehicleID(playa) > 0) return SysMsg(playerid,"Você não pode fazer isso com alguém que esteja dentro de um veiculo.");
  15143. new Float:tX,Float:tY,Float:tZ;
  15144. GetPlayerPos(playa,tX,tY,tZ);
  15145. if(!IsPlayerInRangeOfPoint(playerid,2.5,tX,tY,tZ) || IsSpectating[playa] != -1) return SysMsg(playerid,"Você precisa estar próximo ao jogador para cumprimenta-lo.");
  15146. RequestedToShake[playa] = playerid;
  15147. SetTimerEx("CancelPlayerHandShake", 15000, 0, "ii", playerid, playa);
  15148. format(gstr, sizeof(gstr),"%s deseja te cumprimentar com um aperto de mão, use '/aceitar cumprimento' para continuar (Isso será tempo limite em 15 segundos)", NameRP(playerid));
  15149. SendClientMessage(playa,COLOR_WHITE,gstr);
  15150. format(gstr, sizeof(gstr),"Você pediu para cumprimentar %s com um aperto de mão, ele precisa aceitar a ação primeiro (Isso será tempo limite em 15 segundos)", NameRP(playa));
  15151. SendClientMessage(playerid,COLOR_WHITE,gstr);
  15152. return true;
  15153. }
  15154. CMD:fcumprimentar(playerid, params[])
  15155. {
  15156. if(!Logged{playerid}) return true;
  15157. new playa = -1, name[MAX_PLAYER_NAME];
  15158. if(sscanf(params, "s[24]", name)) return SysMsg(playerid,"Use: /fcumprimentar [ID ou nome do jogador]");
  15159. if(strval(name) >= 500)
  15160. {
  15161. foreach(new p: Player)
  15162. {
  15163. if(MaskLabelNumber[p] == strval(name))
  15164. {
  15165. playa = p;
  15166. }
  15167. }
  15168. }
  15169. else playa = GetPlayerIDs(name);
  15170. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  15171. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  15172. if(playa == playerid) return SysMsg(playerid,"Você não pode usar esse comando em si mesmo.");
  15173. if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid,"Você não pode fazer isso em um veiculo.");
  15174. if(GetPlayerVehicleID(playa) > 0) return SysMsg(playerid,"Você não pode fazer isso com alguém que esteja dentro de um veiculo.");
  15175. new Float:tX,Float:tY,Float:tZ;
  15176. GetPlayerPos(playa,tX,tY,tZ);
  15177. if(!IsPlayerInRangeOfPoint(playerid,2.5,tX,tY,tZ) || IsSpectating[playa] != -1) return SysMsg(playerid,"Você precisa estar próximo ao jogador para cumprimenta-lo.");
  15178. RequestedToFShake[playa] = playerid;
  15179. SetTimerEx("CancelPlayerFHandShake", 15000, 0, "ii", playerid, playa);
  15180. format(gstr, sizeof(gstr),"%s quer que cumprimentar apertando sua mão (formal), use '/aceitar fcumprimento' para continuar (Isso será tempo limite em 15 segundos)", NameRP(playerid));
  15181. SendClientMessage(playa,COLOR_WHITE,gstr);
  15182. format(gstr, sizeof(gstr),"Você pediu para cumprimentar %s com aperto de mão (formal), ele precisa aceitar primeiro (Isso será tempo limite em 15 segundos)", NameRP(playa));
  15183. SendClientMessage(playerid,COLOR_WHITE,gstr);
  15184. return true;
  15185. }
  15186. CMD:beijar(playerid, params[])
  15187. {
  15188. if(!Logged{playerid}) return true;
  15189. new playa = -1, name[MAX_PLAYER_NAME];
  15190. if(sscanf(params, "s[24]", name)) return SysMsg(playerid,"Use: /beijar [ID ou nome do jogador]");
  15191. if(strval(name) >= 500)
  15192. {
  15193. foreach(new p: Player)
  15194. {
  15195. if(MaskLabelNumber[p] == strval(name))
  15196. {
  15197. playa = p;
  15198. }
  15199. }
  15200. }
  15201. else playa = GetPlayerIDs(name);
  15202. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  15203. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  15204. if(playa == playerid) return SysMsg(playerid,"Você não pode fazer isso em si mesmo.");
  15205. if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid,"Você não pode fazer isso dentro de um veiculo.");
  15206. if(GetPlayerVehicleID(playa) > 0) return SysMsg(playerid,"Você não pode fazer isso se a outra pessoa estiver dentro do veiculo.");
  15207. new Float:tX,Float:tY,Float:tZ;
  15208. GetPlayerPos(playa,tX,tY,tZ);
  15209. if(!IsPlayerInRangeOfPoint(playerid,2.5,tX,tY,tZ) || IsSpectating[playa] != -1) return SysMsg(playerid,"Você deve estar perto do jogador para beijá-los.");
  15210. RequestedToKiss[playa] = playerid;
  15211. SetTimerEx("CancelPlayerKiss", 15000, 0, "ii", playerid, playa);
  15212. SendClientMessageF(playa, COLOR_WHITE, "%s quer beijar você, use '/aceitar beijo' para continuar. (Isso será tempo limite em 15 segundos)", NameRP(playerid));
  15213. SendClientMessageF(playerid, COLOR_WHITE, "Você pediu para beijar %s. Essa pessoa deve aceitar primeiro. (Isso será tempo limite em 15 segundos)", NameRP(playa));
  15214. return true;
  15215. }
  15216. CMD:comprarbilhete(playerid, params[])
  15217. {
  15218. if(!Logged{playerid}) return true;
  15219. if(IsPlayerInRangeOfPoint(playerid,5.5,-27.167560,-89.524269,1003.546875) || IsPlayerInRangeOfPoint(playerid,5.5,-23.428977, -55.200191, 1003.546875) || IsPlayerInRangeOfPoint(playerid,5.5,2.20236, -28.508106, 1003.549438) || IsPlayerInRangeOfPoint(playerid, 5.5, 1248.3158,204.4189,2020.6406) || IsPlayerInRangeOfPoint(playerid, 5.5, 663.9998,-568.8943,16.3363))
  15220. {
  15221. if(IsPlayingLottery{playerid}) return SysMsg(playerid,"Você já comprou um ingresso. Aguarde até o sorteio.");
  15222. if(Cash[playerid] < 5) return SysMsg(playerid,"Você não tem 5$ para comprar um bilhete de Loteria.");
  15223. new ticketnumber;
  15224. if(sscanf(params, "i", ticketnumber)) return SysMsg(playerid,"Use: /comprarbilhete [número]");
  15225. if(ticketnumber < 1 || ticketnumber > 99) return SysMsg(playerid,"O número é inválido! (Número dever ser de 1 a 99)");
  15226. LotteryNumber[playerid] = ticketnumber;
  15227. IsPlayingLottery{playerid} = true;
  15228. GivePlayerCash(playerid,-5);
  15229. LotteryJackpot += 5;
  15230. new DrawHour;
  15231. DrawHour = gServerHour + 1;
  15232. if(gServerHour == 23)
  15233. {
  15234. DrawHour = 0;
  15235. }
  15236. format(gstr, sizeof(gstr),"Obrigado por comprar um bilhete de loteria para $5: Seu número é %i, Boa sorte!", ticketnumber);
  15237. SendClientMessage(playerid,COLOR_MAGENTA,gstr);
  15238. format(gstr, sizeof(gstr),"Um sorteio é realizado por hora, e o próximo sorteio será em %i:00 ((Hora em GAME)) com jackpot atual de $%s.", DrawHour, format_cash(LotteryJackpot));
  15239. SendClientMessage(playerid,COLOR_MAGENTA,gstr);
  15240. printf("[Loteria] %s compra um bilhete de loteria: %i", NameEx(playerid), ticketnumber);
  15241. }
  15242. else SysMsg(playerid, "Você deve estar em uma loja geral para comprar um bilhete de loteria.");
  15243. return true;
  15244. }
  15245. CMD:aposta(playerid, params[])
  15246. {
  15247. if(!Logged{playerid}) return true;
  15248. if(!IsPlayerInRangeOfPoint(playerid,5.0,-2167.633544,643.458557,1052.375000)) return SysMsg(playerid,"Você não está na loja de apostas.");
  15249. new HorseID, CashBet;
  15250. if(sscanf(params, "ii", HorseID, CashBet)) return SysMsg(playerid,"Use: /aposta [ID do cavalo] [Valor da Aposta]");
  15251. if(HorseID < 1 || HorseID > 5) return SysMsg(playerid,"Identificação de cavalo inválida. Deve ser entre 1 e 5.");
  15252. if(CashBet < 50 || CashBet > 5000) return SysMsg(playerid,"Coloque uma aposta pelo menos $50 e não mais do que $5000.");
  15253. if(Cash[playerid] < CashBet) return SysMsg(playerid,"Você não tem dinheiro suficiente.");
  15254. if(HasBet[playerid] == 1) return SysMsg(playerid, "Você já colocou uma aposta.");
  15255. SetPlayerCameraPos(playerid, -2162.9819, 640.2431, 1056.1741);
  15256. SetPlayerCameraLookAt(playerid, -2172.0449, 644.4693, 1052.9184);
  15257. SetPlayerPos(playerid, -2168.866699,644.429626,1052.375000);
  15258. SetPlayerFacingAngle(playerid, 47.650478);
  15259. TogglePlayerControllable(playerid,false);
  15260. GivePlayerCash(playerid,-CashBet);
  15261. HasBet[playerid] = 1;
  15262. SetTimerEx("OnPlayerBetFinished",10000,0,"ddd",playerid,CashBet,HorseID);
  15263. SendClientMessage(playerid,COLOR_PINK,"Aguarde até a conclusão da corrida...");
  15264. ShowInfoText(playerid, "~w~Corrida em Progresso ~n~~b~Por favor aguarde", 9500);
  15265. return true;
  15266. }
  15267. CMD:comprarroupas(playerid, params[])
  15268. {
  15269. if(!Logged{playerid}) return true;
  15270. if(IsChangingSkin{playerid}) return SysMsg(playerid,"Você já está comprando roupas.");
  15271. if(IsInBizzID[playerid] > 0 && BizzData[IsInBizzID[playerid]][BizzOwnerSQLID] > 0 && BizzData[IsInBizzID[playerid]][BizzStock] <= 0) return SysMsg(playerid,"Este negócio não tem estoque restante.");
  15272. new shop_id = -1;
  15273. if(IsPlayerInRangeOfPoint(playerid, 4.5, 207.674606, -103.337852, 1005.257812)) shop_id = 1; // BINCO
  15274. if(IsPlayerInRangeOfPoint(playerid, 4.5, 207.036727, -129.569824, 1003.507812)) shop_id = 2; // PROLAPS
  15275. if(IsPlayerInRangeOfPoint(playerid, 4.5, 204.281341, -159.792633, 1000.523437)) shop_id = 3; // DEIDER SACHS
  15276. if(IsPlayerInRangeOfPoint(playerid, 4.5, 203.805587, -44.099208, 1001.804687)) shop_id = 4; // SUB URB
  15277. if(IsPlayerInRangeOfPoint(playerid, 4.5, 161.584900, -85.259500, 1001.804700)) shop_id = 5;
  15278. if(shop_id == -1) return SysMsg(playerid,"Você deve estar em uma loja de roupas para mudar sua pele.");
  15279. ClothesShop[playerid] = shop_id;
  15280. Dialog_Show(playerid, ClothingBuy, DIALOG_STYLE_LIST, "Loja de Roupas", "Comprar roupas\n", "Selecionar", "Cancelar");
  15281. return true;
  15282. }
  15283. CMD:compraitens(playerid, params[]) //loja de itens
  15284. {
  15285. if(!Logged{playerid}) return true;
  15286. if(IsChangingSkin{playerid}) return SysMsg(playerid,"Você já está comprando.");
  15287. if(IsInBizzID[playerid] > 0 && BizzData[IsInBizzID[playerid]][BizzOwnerSQLID] > 0 && BizzData[IsInBizzID[playerid]][BizzStock] <= 0) return SysMsg(playerid,"Este negócio não tem estoque restante.");
  15288. new shop_id = -1;
  15289. if(IsPlayerInRangeOfPoint(playerid, 4.5, 207.674606, -103.337852, 1005.257812)) shop_id = 1; // BINCO
  15290. if(IsPlayerInRangeOfPoint(playerid, 4.5, 207.036727, -129.569824, 1003.507812)) shop_id = 2; // PROLAPS
  15291. if(IsPlayerInRangeOfPoint(playerid, 4.5, 204.281341, -159.792633, 1000.523437)) shop_id = 3; // DEIDER SACHS
  15292. if(IsPlayerInRangeOfPoint(playerid, 4.5, 203.805587, -44.099208, 1001.804687)) shop_id = 4; // SUB URB
  15293. if(IsPlayerInRangeOfPoint(playerid, 4.5, 161.584900, -85.259500, 1001.804700)) shop_id = 5;
  15294. if(shop_id == -1) return SysMsg(playerid,"Você deve estar em uma loja de roupas para mudar sua pele.");
  15295. ClothesShop[playerid] = shop_id;
  15296. Dialog_Show(playerid, ClothingBuy, DIALOG_STYLE_LIST, "Loja de acessórios", "\nItens", "Selecionar", "Cancelar");
  15297. return true;
  15298. }
  15299. CMD:mudarroupas(playerid, params[])
  15300. {
  15301. if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado para mudar sua Skin.");
  15302. if(IsJailed[playerid] == 1) return SysMsg(playerid,"Aguarde até sair da prisão.");
  15303. if(PlayerImprisoned{playerid}) return SysMsg(playerid,"Você não pode fazer isso na prisão.");
  15304. if(IsCuffed[playerid] == 1) return SysMsg(playerid,"Esta ação não pode ser realizada se você estiver algemado.");
  15305. if(JobDuty[playerid] == 1) return SysMsg(playerid, "Você não pode troca de roupas estando aDuty.");
  15306. if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SysMsg(playerid, "Você precisa esta a pé para mudar de roupas.");
  15307. if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_ENTER_VEHICLE || GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_EXIT_VEHICLE) return SysMsg(playerid, "Você não pode usar esse comando se estiver entrando/saindo de um veiculo.");
  15308. if(SwatMode[playerid] == 1) return SysMsg(playerid, "Você não pode usar isso enquanto estiver em S.W.A.T duty.");
  15309. if((Duty[playerid] == 1 && IsCop(playerid)) || Duty[playerid] == 0)
  15310. {
  15311. new Slot;
  15312. if(sscanf(params, "i", Slot)) return SysMsg(playerid,"Use: /mudarroupas [slot] - Olhe em /Roupas os slots.");
  15313. if(Slot < 1 || Slot > 5) return SysMsg(playerid,"O número do slot deve ser de 1 a 5.");
  15314. Slot --;
  15315. if(Clothes[playerid][Slot] == 0) return SysMsg(playerid,"Você não tem roupas nasse slot.");
  15316. if(Clothes[playerid][Slot] == cPlayersSkin[playerid]) return SysMsg(playerid,"Você já está usando as roupas naquele slot.");
  15317. SetPlayerSkinEx(playerid, Clothes[playerid][Slot]);
  15318. cPlayersSkin[playerid] = Clothes[playerid][Slot];
  15319. MySQLUpdateInt(SQLID[playerid], "Skin", cPlayersSkin[playerid], "players");
  15320. Slot ++;
  15321. format(gstr, sizeof(gstr),"* %s muda suas roupas. *",NameRP(playerid));
  15322. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  15323. format(gstr, sizeof(gstr), "Você mudou para seu slot de roupas %i.", Slot);
  15324. SendClientMessage(playerid,COLOR_WHITE,gstr);
  15325. }
  15326. else return SysMsg(playerid,"Você não pode mudar de roupas se estiver OnDuty.");
  15327. return true;
  15328. }
  15329. CMD:roupas(playerid, params[])
  15330. {
  15331. if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado para mudar a sua skin.");
  15332. new tempstr[50];
  15333. format(gstr, sizeof(gstr), "Inventário de roupas: ");
  15334. for(new i = 0; i < 4; i++)
  15335. {
  15336. if(Clothes[playerid][i] > 0)
  15337. {
  15338. format(tempstr, 50, "[Slot %i: %i] ", i+1, Clothes[playerid][i]);
  15339. strcat(gstr, tempstr);
  15340. }
  15341. else
  15342. {
  15343. format(tempstr, 50, "[Slot %i: Vazio] ", i+1);
  15344. strcat(gstr, tempstr);
  15345. }
  15346. }
  15347. if(Clothes[playerid][4] > 0)
  15348. {
  15349. format(tempstr, 50, "[Facção: %i] ", Clothes[playerid][4]);
  15350. strcat(gstr, tempstr);
  15351. }
  15352. else strcat(gstr, "[Facção: Vazio] ");
  15353. SendClientMessage(playerid, COLOR_WHITE, gstr);
  15354. return true;
  15355. }
  15356. CMD:aceitar(playerid, params[]) // comando de aceitar
  15357. {
  15358. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  15359. new option[32], value[32];
  15360. if(sscanf(params, "s[32]S()[32]", option, value)) return true;
  15361. if(strmatch(option, "faction") || strmatch(option, "faccao") || strmatch(option, "facçao") || strmatch(option, "facção") || strmatch(option, "faccão"))
  15362. {
  15363. if(InvitedToJoinFaction[playerid] == 0) return SysMsg(playerid,"Você não foi convidado para uma facção.");
  15364. if(InvitedToJoinFaction[playerid] > 0)
  15365. {
  15366. Faction[playerid] = InvitedToJoinFaction[playerid];
  15367. FactionRank[playerid] = 1;
  15368. MySpawnID[playerid] = 2;
  15369. SubFactionSpawn[playerid] = 1;
  15370. SendClientMessageF(playerid,COLOR_ORANGE,"Você entrou na facção %i (%s) como rank %i (%s)",Faction[playerid],GetFactionName(playerid),FactionRank[playerid],GetFactionRankName(Faction[playerid], FactionRank[playerid]));
  15371. if(InvitedToJoinFaction[playerid] == 7) UnlockAchievement(playerid, 66);
  15372. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET Faction = %i, FactionRank = 1, MySpawnID = 2, SubFactionSpawn = 1 WHERE id = %i", InvitedToJoinFaction[playerid], SQLID[playerid]);
  15373. mysql_pquery(conn, mquery);
  15374. foreach(new players: Player)
  15375. {
  15376. if(players == playerid) continue;
  15377. if(Faction[players] == Faction[playerid] && FactionRank[players] >= 4) SendClientMessageF(players,COLOR_ORANGE,"%s agora esta na sua facção (%s) como rank %s.",NameEx(playerid),GetFactionName(playerid),GetFactionRankName(Faction[playerid], FactionRank[playerid]));
  15378. }
  15379. //GivePlayerWeapons(playerid);
  15380. InvitedToJoinFaction[playerid] = 0;
  15381. //new oldSub[2], newSub[2], oldRank, newRank;
  15382. //FactionLog(InvitedToJoinFactionBy[playerid], SQLID[playerid], 4, oldSub, newSub, oldRank, newRank, InvitedToJoinFaction[playerid]);
  15383. InvitedToJoinFaction[playerid] = 0;
  15384. InvitedToJoinFactionBy[playerid] = 0;
  15385. UnlockAchievement(playerid, 5);
  15386. return true;
  15387. }
  15388. }
  15389. else if(strmatch(option, "multa"))
  15390. {
  15391. if(PoliceFineAmount[playerid] == -1) return SysMsg(playerid, "Nenhuma multa para aceitar.");
  15392. if(sscanf(params, "s[32]s[32]", option, value)) return SysMsgF(playerid, "Use: /aceitar multa [Valor a pagar] *Não pode exceder sua multa policial pendente de $%s*", format_cash(PoliceFineAmount[playerid]));
  15393. if(!IsNumeric(value)) return SysMsg(playerid, "A valor deve ser inserido em números.");
  15394. new amount = strval(value);
  15395. if(amount > PoliceFineAmount[playerid]) return SysMsg(playerid, "Você não deve isso em multas.");
  15396. if(amount <= 0) return SysMsg(playerid, "Você deve inserir um valor acima de 0.");
  15397. if(PoliceFineAmount[playerid] - amount < 0) return SysMsg(playerid, "Você não deve tanto em multas.");
  15398. if(Cash[playerid] < amount) return SysMsg(playerid, "Você não tem tanto dinheiro.");
  15399. new minfine = floatround(0.1 * PoliceFineAmount[playerid]);
  15400. if(amount < minfine) return SysMsgF(playerid, "Você deve pagar pelo menos 10 porcento ($%s) de sua multa em um determinado momento.", format_cash(minfine));
  15401. GivePlayerCash(playerid, -amount);
  15402. FACTIONS[FACTION_COP][FactionBankBalance] += floatround(0.7 * amount);
  15403. MySQLUpdateInt(FACTION_COP, "BankBalance", FACTIONS[FACTION_COP][FactionBankBalance], "factions");
  15404. format(gstr, sizeof(gstr), "%s pagou $%s fora de sua $%s multa. O dinheiro foi adicionado ao banco da facção.", NameEx(playerid), format_cash(amount), format_cash(PoliceFineAmount[playerid]));
  15405. PoliceMessage(gstr);
  15406. SendClientMessageF(playerid, COLOR_ORANGE, "Você pagou uma multa de trânsito no valor de $%s.", format_cash(amount), format_cash(PoliceFineAmount[playerid]));//Você pagou $%s fora de sua $%s multa
  15407. PoliceFineAmount[playerid] -= amount;
  15408. if(PoliceFineAmount[playerid] == 0) PoliceFineAmount[playerid] = -1;
  15409. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET PoliceFine = %i WHERE id = %i", PoliceFineAmount[playerid], SQLID[playerid]);
  15410. mysql_pquery(conn, mquery);
  15411. return true;
  15412. }
  15413. else if(strmatch(option, "quitfaction") || strmatch(option, "sairfaccao") || strmatch(option, "sairfacçao") || strmatch(option, "sairfacção") || strmatch(option, "sairfaccão"))
  15414. {
  15415. if(QuitFromFaction[playerid] == 0) return SysMsg(playerid, "Você não está em nenhuma facção.");
  15416. SendClientMessageF(playerid, COLOR_WHITE, "Você saiu da facção %s. Você não está mais nesta facção.", GetFactionName(playerid));
  15417. if(MySpawnID[playerid] == 2)
  15418. {
  15419. MySpawnID[playerid] = 1;
  15420. SubFactionSpawn[playerid] = 0;
  15421. }
  15422. if(Clothes[playerid][0] == 0)
  15423. {
  15424. cPlayersSkin[playerid] = 1;
  15425. SetPlayerSkinEx(playerid, 1);
  15426. }
  15427. if(Clothes[playerid][0] != 0)
  15428. {
  15429. cPlayersSkin[playerid] = Clothes[playerid][0];
  15430. SetPlayerSkinEx(playerid, Clothes[playerid][0]);
  15431. }
  15432. MySQLUpdateInt(SQLID[playerid], "Skin", cPlayersSkin[playerid], "players");
  15433. if(RadioFrequency[playerid] == FACTIONS[Faction[playerid]][FactionRadioChannel]) RadioFrequency[playerid] = 1000;
  15434. for(new r = 0; r < 3; r++)
  15435. {
  15436. if(RadioSlot[playerid][r] == FACTIONS[Faction[playerid]][FactionRadioChannel])
  15437. {
  15438. RadioSlot[playerid][r] = 1000;
  15439. }
  15440. }
  15441. Faction[playerid] = 0;
  15442. FactionRank[playerid] = 0;
  15443. QuitFromFaction[playerid] = 0;
  15444. FactionCustomRank[playerid][0] = EOS;
  15445. IsESU{playerid} = false;
  15446. if(RestrictedVest{playerid}) SetPlayerArmourEx(playerid, 0.0, 1);
  15447. ResetPlayerWeapons(playerid);
  15448. for(new slot = MAX_TOTAL_WEAPONS - 1; slot != -1; slot--)
  15449. {
  15450. if(WeaponData[playerid][slot][WeaponOrigin] == 3)
  15451. {
  15452. ResetWeaponVariables(playerid, 0, slot);
  15453. }
  15454. }
  15455. for(new slot = MAX_TOTAL_WEAPONS - 1; slot != -1; slot--)
  15456. {
  15457. GivePlayerWeapon(playerid, WeaponData[playerid][slot][Weapon], WeaponData[playerid][slot][WeaponAmmo]);
  15458. }
  15459. for(new p; p < MAX_TOYS; p++)
  15460. {
  15461. if(ToyInfo[playerid][p][FactionMask] == 1)
  15462. {
  15463. ClearToyData(playerid, p);
  15464. }
  15465. }
  15466. FirePlayer(SQLID[playerid], 1); //FirePlayer is used here because the queries with /despedir and /accept quitfaction are basically the same.
  15467. return true;
  15468. }
  15469. else if(strmatch(option, "resgate"))
  15470. {
  15471. if(WantsRescue[playerid] == 0 || WantsRescue[playerid] == 1) return true;
  15472. new playa = WantsRescue[playerid] - 500;
  15473. if(IsPlayerConnected(playa))
  15474. {
  15475. SendClientMessageF(playa, COLOR_WHITE, "%s aceitou sua ajuda.", NameEx(playerid));
  15476. SendClientMessageF(playerid, COLOR_WHITE, "Você aceitou a ajuda do bombeiro %s.", NameEx(playa));
  15477. }
  15478. WantsRescue[playerid] = 1;
  15479. }
  15480. else if(strmatch(option, "casa")) //aceitar casa //aceitar casa
  15481. {
  15482. foreach(new i: Player)
  15483. {
  15484. if(IsPlayerNPC(i)) continue;
  15485. if(SellingAsset[i][1] == playerid)
  15486. {
  15487. if(SellingAsset[i][2] != 1) return SysMsg(playerid,"Você não tem casa para aceitar.");
  15488. if(HasHouseKey[i][0] != SellingAsset[i][3] && HasHouseKey[i][1] != SellingAsset[i][3])
  15489. {
  15490. SellingAsset[i][0] = 0; //yes/no
  15491. SellingAsset[i][1] = -1; //playerid
  15492. SellingAsset[i][2] = 0; //type
  15493. SellingAsset[i][3] = -1; //id
  15494. SellingAsset[i][4] = 0; //price
  15495. SellingAsset[i][5] = -1; //house slot
  15496. SysMsg(playerid,"A casa já não está disponível.");
  15497. return true;
  15498. }
  15499. if(Cash[playerid] < SellingAsset[i][4])
  15500. {
  15501. SellingAsset[i][0] = 0; //yes/no
  15502. SellingAsset[i][1] = -1; //playerid
  15503. SellingAsset[i][2] = 0; //type
  15504. SellingAsset[i][3] = -1; //id
  15505. SellingAsset[i][4] = 0; //price
  15506. SellingAsset[i][5] = -1; //house slot
  15507. SysMsg(playerid,"Você não tem dinheiro suficiente para comprar a casa.");
  15508. return true;
  15509. }
  15510. HasHouseKey[i][SellingAsset[i][5]] = -1;
  15511. HouseData[SellingAsset[i][3]][HouseOwnerSQLID] = SQLID[playerid];
  15512. MySpawnID[playerid] = 3;
  15513. ProcessHouseKey(playerid);
  15514. ProcessHouseKey(SellingAsset[i][5]);
  15515. if(HasHouseKey[playerid][0] == SellingAsset[i][3]) SpawnAtHouse[playerid] = 0;
  15516. else if(HasHouseKey[playerid][1] == SellingAsset[i][3]) SpawnAtHouse[playerid] = 1;
  15517. MySQLUpdateInt(HouseData[SellingAsset[i][3]][HouseSQLID], "OwnerSQLID", SQLID[playerid], "houses");
  15518. MySQLUpdateInt(SQLID[playerid], "MySpawnID", MySpawnID[playerid], "players");
  15519. MySQLUpdateInt(SQLID[playerid], "SpawnAtHouse", SpawnAtHouse[playerid], "players");
  15520. GivePlayerCash(playerid, -SellingAsset[i][4]);
  15521. GivePlayerCash(i, SellingAsset[i][4]);
  15522. UnlockAchievement(playerid, 9);
  15523. ShowInfoText(playerid, "~w~PROPRIEDADE ADQUIRIDA", 5000);
  15524. SendClientMessageF(i, COLOR_WHITE, "%s comprou sua casa(%s) por $%s. Você não é mais o proprietário.", NameEx(playerid), HouseData[SellingAsset[i][3]][HouseDescription], format_cash(SellingAsset[i][4]));
  15525. SendClientMessageF(playerid, COLOR_WHITE, "Você comprou a casa de %s (%s) por $%s. Você é agora o novo dono desta propriedade.", NameEx(i), HouseData[SellingAsset[i][3]][HouseDescription], format_cash(SellingAsset[i][4]));
  15526. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET GuestHouseID = 0 WHERE GuestHouseID = %i", HouseData[SellingAsset[i][3]][HouseSQLID]);
  15527. mysql_pquery(conn, mquery);
  15528. foreach(new x: Player) if(HouseData[SellingAsset[i][3]][HouseSQLID] == GuestHouseID[x]) GuestHouseID[x] = 0;
  15529. SendClientMessage(i, COLOR_WHITE, "Os convidados da sua casa (caso existam) foram expulsos automaticamente depois de vender a casa.");
  15530. if(MySpawnID[i] == 3)
  15531. {
  15532. MySpawnID[i] = 1;
  15533. MySQLUpdateInt(SQLID[i], "MySpawnID", MySpawnID[i], "players");
  15534. }
  15535. SellingAsset[i][0] = 0; //yes/no
  15536. SellingAsset[i][1] = -1; //playerid
  15537. SellingAsset[i][2] = 0; //type
  15538. SellingAsset[i][3] = -1; //id
  15539. SellingAsset[i][4] = 0; //price
  15540. SellingAsset[i][5] = -1; //house slot
  15541. break;
  15542. }
  15543. }
  15544. }
  15545. else if(strmatch(option, "negocio"))
  15546. {
  15547. foreach(new i: Player)
  15548. {
  15549. if(IsPlayerNPC(i)) continue;
  15550. if(SellingAsset[i][1] == playerid)
  15551. {
  15552. if(SellingAsset[i][2] != 2) return SysMsg(playerid,"Você não tem bizz para aceitar.");
  15553. new hasBizz = 0;
  15554. for(new bz = 0; bz < MAX_BIZZ_PER_PLAYER; bz++)
  15555. {
  15556. if(PlayerBizzID[i][bz] == SellingAsset[i][3]) hasBizz = 1;
  15557. }
  15558. if(hasBizz == 0)
  15559. {
  15560. SellingAsset[i][0] = 0; //yes/no
  15561. SellingAsset[i][1] = -1; //playerid
  15562. SellingAsset[i][2] = 0; //type
  15563. SellingAsset[i][3] = -1; //id
  15564. SellingAsset[i][4] = 0; //price
  15565. SysMsg(playerid,"O bizz não está mais disponível.");
  15566. return true;
  15567. }
  15568. if(Cash[playerid] < SellingAsset[i][4])
  15569. {
  15570. SellingAsset[i][0] = 0; //yes/no
  15571. SellingAsset[i][1] = -1; //playerid
  15572. SellingAsset[i][2] = 0; //type
  15573. SellingAsset[i][3] = -1; //id
  15574. SellingAsset[i][4] = 0; //price
  15575. SysMsg(playerid,"Você não tem dinheiro suficiente para comprar o bizz.");
  15576. return true;
  15577. }
  15578. BizzData[SellingAsset[i][3]][BizzOwnerSQLID] = SQLID[playerid];
  15579. MySQLUpdateInt(BizzData[SellingAsset[i][3]][BizzSQLID], "OwnerSQLID", SQLID[playerid], "bizz");
  15580. mysql_format(conn, mquery, sizeof(mquery), "DELETE FROM bizzmods WHERE BizzID = %i", BizzData[SellingAsset[i][3]][BizzSQLID]);
  15581. mysql_pquery(conn, mquery);
  15582. GivePlayerCash(playerid, -SellingAsset[i][4]);
  15583. GivePlayerCash(i, SellingAsset[i][4]);
  15584. new done[2] = {0};
  15585. for(new id = 0; id < MAX_BIZZ_PER_PLAYER; id++)
  15586. {
  15587. if(done[0] == 0 && PlayerBizzID[i][id] == SellingAsset[i][3])
  15588. {
  15589. PlayerBizzID[i][id] = -1;
  15590. done[0] = 1;
  15591. }
  15592. if(done[1] == 0 && PlayerBizzID[playerid][id] <= 0)
  15593. {
  15594. PlayerBizzID[playerid][id] = SellingAsset[i][3];
  15595. done[1] = 1;
  15596. }
  15597. }
  15598. new h = SellingAsset[i][3];
  15599. UpdateBizzLabel(h);
  15600. ShowInfoText(playerid, "~w~NEGÓCIO ADQUIRIDO", 5000);
  15601. SendClientMessageF(i, COLOR_WHITE, "%s comprou seu negócio (%s) por $%s. Você não é mais o proprietário.", NameEx(playerid), BizzData[SellingAsset[i][3]][BizzDescription], format_cash(SellingAsset[i][4]));
  15602. SendClientMessageF(playerid, COLOR_WHITE, "Você comprou o negócio de %s (%s) por $%s. Agora você é o novo dono.", NameEx(i), BizzData[SellingAsset[i][3]][BizzDescription], format_cash(SellingAsset[i][4]));
  15603. SellingAsset[i][0] = 0; //yes/no
  15604. SellingAsset[i][1] = -1; //playerid
  15605. SellingAsset[i][2] = 0; //type
  15606. SellingAsset[i][3] = -1; //id
  15607. SellingAsset[i][4] = 0; //price
  15608. break;
  15609. }
  15610. }
  15611. }
  15612. else if(strmatch(option, "veiculo"))
  15613. {
  15614. foreach(new i: Player)
  15615. {
  15616. if(IsPlayerNPC(i)) continue;
  15617. if(SellingAsset[i][1] == playerid)
  15618. {
  15619. if(SellingAsset[i][2] != 3) return SysMsg(playerid,"Você não tem nenhum veículo para aceitar.");
  15620. new hasBizz = 0;
  15621. for(new bz = 1, x = GetVehiclePoolSize(); bz <= x; bz++)
  15622. {
  15623. if(VehicleData[bz][VehicleOwnerSQLID] == SQLID[i])
  15624. if(bz == SellingAsset[i][3]) hasBizz = 1;
  15625. }
  15626. if(hasBizz == 0)
  15627. {
  15628. SellingAsset[i][0] = 0; //yes/no
  15629. SellingAsset[i][1] = -1; //playerid
  15630. SellingAsset[i][2] = 0; //type
  15631. SellingAsset[i][3] = -1; //id
  15632. SellingAsset[i][4] = 0; //price
  15633. SysMsg(playerid,"O veículo não está mais disponível.");
  15634. return true;
  15635. }
  15636. if(Cash[playerid] < SellingAsset[i][4])
  15637. {
  15638. SellingAsset[i][0] = 0; //yes/no
  15639. SellingAsset[i][1] = -1; //playerid
  15640. SellingAsset[i][2] = 0; //type
  15641. SellingAsset[i][3] = -1; //id
  15642. SellingAsset[i][4] = 0; //price
  15643. SysMsg(playerid,"Você não tem dinheiro suficiente para comprar o veículo.");
  15644. return true;
  15645. }
  15646. new v = SellingAsset[i][3];
  15647. VehicleData[v][VehicleOwnerSQLID] = SQLID[playerid];
  15648. mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET OwnerSQLID = %i, HotwireExpiration = 0 WHERE id = %i", SQLID[playerid], VehicleData[v][VehSQLID]);
  15649. mysql_pquery(conn, mquery);
  15650. GivePlayerCash(playerid, -SellingAsset[i][4]);
  15651. GivePlayerCash(i, SellingAsset[i][4]);
  15652. if(VehicleData[v][VehicleModel] == 508 && MySpawnID[i] == 6)
  15653. {
  15654. MySpawnID[i] = 1;
  15655. MySQLUpdateInt(SQLID[i], "MySpawnID", MySpawnID[i], "players");
  15656. }
  15657. ShowInfoText(playerid, "~w~VEICULO ADQUIRIDO", 5000);
  15658. SendClientMessageF(i, COLOR_WHITE, "%s comprou seu veículo(%s) por $%s. Você não é mais o proprietário.", NameEx(playerid), GetVehicleNameEx(VehicleData[v][VehicleModel]), format_cash(SellingAsset[i][4]));
  15659. SendClientMessageF(playerid, COLOR_WHITE, "Você comprou o veiculo de %s (%s) por $%s. Agora você é o novo dono.", NameEx(i), GetVehicleNameEx(VehicleData[v][VehicleModel]), format_cash(SellingAsset[i][4]));
  15660. if(VehicleData[v][ForSale])
  15661. {
  15662. VehicleData[v][ForSale] = false;
  15663. VehicleData[v][ForSalePrice] = 0;
  15664. DestroyDynamic3DTextLabel(VehicleData[v][ForSaleLabel]);
  15665. VehicleData[v][ForSaleLabel] = Text3D:INVALID_3DTEXT_ID;
  15666. MySQLUpdateInt(VehicleData[v][VehSQLID], "ForSale", 0, "vehicles");
  15667. MySQLUpdateInt(VehicleData[v][VehSQLID], "ForSalePrice", 0, "vehicles");
  15668. }
  15669. SellingAsset[i][0] = 0; //yes/no
  15670. SellingAsset[i][1] = -1; //playerid
  15671. SellingAsset[i][2] = 0; //type
  15672. SellingAsset[i][3] = -1; //id
  15673. SellingAsset[i][4] = 0; //price
  15674. break;
  15675. }
  15676. }
  15677. }
  15678. else if(strmatch(option, "spray"))
  15679. {
  15680. if(AwaitingSpray[playerid] == 0) return SysMsg(playerid, "Não há nenhuma oferta no momento.");
  15681. for(new v = 1, x = GetVehiclePoolSize(); v <= x; v++)
  15682. {
  15683. if(MechanicSpray[v][1] == playerid)
  15684. {
  15685. if(Cash[playerid] < MechanicSpray[v][4])
  15686. {
  15687. SysMsg(playerid, "Você não tem dinheiro suficiente para pintar o veiculo, o serviço foi cancelado.");
  15688. GoingToSprayVehicleID[MechanicSpray[v][0]] = 0;
  15689. AwaitingSpray[playerid] = 0;
  15690. MechanicSpray[v][0] = -1;
  15691. MechanicSpray[v][1] = -1;
  15692. MechanicSpray[v][2] = -1;
  15693. MechanicSpray[v][3] = -1;
  15694. MechanicSpray[v][4] = -1;
  15695. MechanicSpray[v][5] = -1;
  15696. break;
  15697. }
  15698. GivePlayerCash(playerid, -MechanicSpray[v][4]);
  15699. GivePlayerCash(MechanicSpray[v][0], MechanicSpray[v][4]);
  15700. ChangeVehicleColorEx(v, MechanicSpray[v][2], MechanicSpray[v][3]);
  15701. UnlockAchievement(MechanicSpray[v][0], 47);
  15702. for(new vi = 1, h = GetVehiclePoolSize(); vi <= h; vi++)
  15703. {
  15704. if(vi == v)
  15705. {
  15706. MySQLUpdateInt(VehicleData[vi][VehSQLID], "Color2", MechanicSpray[v][3], "vehicles");
  15707. MySQLUpdateInt(VehicleData[vi][VehSQLID], "Color1", MechanicSpray[v][2], "vehicles");
  15708. VehicleData[vi][vColor1] = MechanicSpray[v][2];
  15709. VehicleData[vi][vColor2] = MechanicSpray[v][3];
  15710. }
  15711. }
  15712. SendClientMessageF(playerid, COLOR_WHITE, "Pintura aceita - O veiculo foi repintado pelo mecanico %s por $%i.", NameEx(MechanicSpray[v][0]), MechanicSpray[v][4]);
  15713. SendClientMessageF(MechanicSpray[v][0], COLOR_WHITE, "Pinta aceita - Você repintou o veiculo por $%i.", MechanicSpray[v][4]);
  15714. format(gstr, sizeof(gstr),"* O mecanico %s repintou o veiculo %s %s e%s. *", NameEx(MechanicSpray[v][0]), GetVehicleName(v), VehicleColors[MechanicSpray[v][2]], VehicleColors[MechanicSpray[v][3]]);
  15715. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  15716. GoingToSprayVehicleID[MechanicSpray[v][0]] = 0;
  15717. AwaitingSpray[playerid] = 0;
  15718. MechanicSpray[v][0] = -1;
  15719. MechanicSpray[v][1] = -1;
  15720. MechanicSpray[v][2] = -1;
  15721. MechanicSpray[v][3] = -1;
  15722. MechanicSpray[v][4] = -1;
  15723. MechanicSpray[v][5] = -1;
  15724. break;
  15725. }
  15726. }
  15727. }
  15728. else if(strmatch(option, "cumprimento"))
  15729. {
  15730. if(RequestedToShake[playerid] == -1) return SysMsg(playerid, "Nenhum cumprimento para aceitar no momento.");
  15731. if(!IsPlayerConnected(RequestedToShake[playerid]))
  15732. {
  15733. SysMsg(playerid, "Oops! Ocorreu um erro de sistema, por favor relate a um admin. (ERROR: 1-001)");
  15734. RequestedToShake[playerid] = -1;
  15735. return true;
  15736. }
  15737. if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid,"Você não pode fazer isso em um veiculo.");
  15738. if(GetPlayerVehicleID(RequestedToShake[playerid]) > 0) return SysMsg(playerid,"Você não pode fazer isso com alguém que esteja dentro de um veiculo.");
  15739. new Float:tX, Float:tY, Float:tZ;
  15740. GetPlayerPos(RequestedToShake[playerid], tX, tY, tZ);
  15741. if(!IsPlayerInRangeOfPoint(playerid, 2.0, tX, tY, tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para apertar as mãos.");
  15742. SetPlayerToFacePlayer(playerid, RequestedToShake[playerid]);
  15743. SetPlayerToFacePlayer(RequestedToShake[playerid], playerid);
  15744. OnePlayAnim(playerid, "GANGS", "hndshkfa_swt", 3.5, 0, 0, 0, 0, 0);
  15745. OnePlayAnim(RequestedToShake[playerid], "GANGS", "hndshkfa_swt", 3.5, 0, 0, 0, 0, 0);
  15746. format(gstr, sizeof(gstr),"Cumprimento a %s foi aceito.", NameRP(playerid));
  15747. SendClientMessage(RequestedToShake[playerid],COLOR_WHITE,gstr);
  15748. format(gstr, sizeof(gstr),"Cumprimento a %s foi aceito.", NameRP(RequestedToShake[playerid]));
  15749. SendClientMessage(playerid,COLOR_WHITE,gstr);
  15750. format(gstr, sizeof(gstr),"* %s cumprimenta %s. *",NameRP(playerid),NameRP(RequestedToShake[playerid]));
  15751. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  15752. if(Faction[playerid] == Faction[RequestedToShake[playerid]]) UnlockAchievement(RequestedToShake[playerid], 36);
  15753. if(SQLID[RequestedToShake[playerid]] == 1) UnlockAchievement(playerid, 44);
  15754. if(SQLID[playerid] == 1) UnlockAchievement(RequestedToShake[playerid], 44);
  15755. RequestedToShake[playerid] = -1;
  15756. }
  15757. else if(strmatch(option, "fcumprimento"))//fshark
  15758. {
  15759. if(RequestedToFShake[playerid] == -1) return SysMsg(playerid, "Não há nenhum cumprimento para aceitar.");
  15760. if(!IsPlayerConnected(RequestedToFShake[playerid]))
  15761. {
  15762. SysMsg(playerid, "Oops! Ocorreu um erro de sistema, por favor relate a um admin. (ERROR: 1-002)");
  15763. RequestedToShake[playerid] = -1;
  15764. return true;
  15765. }
  15766. if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid,"Você não pode fazer isso em um veiculo.");
  15767. if(GetPlayerVehicleID(RequestedToFShake[playerid]) > 0) return SysMsg(playerid,"Você não pode fazer isso com alguém que esteja dentro de um veiculo.");
  15768. new Float:tX, Float:tY, Float:tZ;
  15769. GetPlayerPos(RequestedToFShake[playerid], tX, tY, tZ);
  15770. if(!IsPlayerInRangeOfPoint(playerid, 2.0, tX, tY, tZ)) return SysMsg(playerid,"Você precisa esta perto do jogador para cumprimenta-lo.");
  15771. SetPlayerToFacePlayer(playerid, RequestedToFShake[playerid]);
  15772. SetPlayerToFacePlayer(RequestedToFShake[playerid], playerid);
  15773. OnePlayAnim(playerid, "GANGS", "prtial_hndshk_biz_01", 3.5, 0, 0, 0, 0, 0);
  15774. OnePlayAnim(RequestedToFShake[playerid], "GANGS", "prtial_hndshk_biz_01", 3.5, 0, 0, 0, 0, 0);
  15775. format(gstr, sizeof(gstr),"Cumprimento formal com %s foi aceito.", NameRP(playerid));
  15776. SendClientMessage(RequestedToFShake[playerid],COLOR_WHITE,gstr);
  15777. format(gstr, sizeof(gstr),"Cumprimento formal com %s foi aceito.", NameRP(RequestedToFShake[playerid]));
  15778. SendClientMessage(playerid,COLOR_WHITE,gstr);
  15779. format(gstr, sizeof(gstr),"* %s comprimenta %s. *",NameRP(playerid),NameRP(RequestedToFShake[playerid]));
  15780. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  15781. if(Faction[playerid] == Faction[RequestedToFShake[playerid]]) UnlockAchievement(RequestedToFShake[playerid], 36);
  15782. if(strcmp("Alec_Rae", GetName(RequestedToFShake[playerid]), false) == 0) UnlockAchievement(playerid, 44);
  15783. if(strcmp("Alec_Rae", GetName(playerid), false) == 0) UnlockAchievement(RequestedToFShake[playerid], 44);
  15784. RequestedToFShake[playerid] = -1;
  15785. }
  15786. else if(strmatch(option, "beijo"))
  15787. {
  15788. if(RequestedToKiss[playerid] == -1) return SysMsg(playerid, "Ninguem te pediu um beijo.");
  15789. if(!IsPlayerConnected(RequestedToKiss[playerid]))
  15790. {
  15791. SysMsg(playerid, "Oops! Ocorreu um erro de sistema, por favor relate a um admin. (ERROR: 1-003)");
  15792. RequestedToKiss[playerid] = -1;
  15793. return true;
  15794. }
  15795. if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid,"Você não pode fazer isso em um veiculo.");
  15796. if(GetPlayerVehicleID(RequestedToKiss[playerid]) > 0) return SysMsg(playerid,"Você não pode fazer isso com alguém que esteja dentro de um veiculo.");
  15797. new Float:tX,Float:tY,Float:tZ;
  15798. GetPlayerPos(RequestedToKiss[playerid],tX,tY,tZ);
  15799. if(!IsPlayerInRangeOfPoint(playerid,2.0,tX,tY,tZ)) return SysMsg(playerid,"Você precisa está próximo do jogador para beija-lo.");
  15800. SetPlayerToFacePlayer(playerid, RequestedToKiss[playerid]);
  15801. SetPlayerToFacePlayer(RequestedToKiss[playerid], playerid);
  15802. OnePlayAnim(playerid, "KISSING", "Playa_Kiss_02", 3.5, 0, 0, 0, 0, 0);
  15803. OnePlayAnim(RequestedToKiss[playerid], "KISSING", "Grlfrd_Kiss_02", 3.5, 0, 0, 0, 0, 0);
  15804. format(gstr, sizeof(gstr),"O pedido de beijar %s foi aceita.", NameRP(playerid));
  15805. SendClientMessage(RequestedToKiss[playerid],COLOR_WHITE,gstr);
  15806. format(gstr, sizeof(gstr),"O pedido de beijar %s foi aceita.", NameRP(RequestedToKiss[playerid]));
  15807. SendClientMessage(playerid,COLOR_WHITE,gstr);
  15808. format(gstr, sizeof(gstr),"* %s beija %s. *",NameRP(playerid),NameRP(RequestedToKiss[playerid]));
  15809. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  15810. RequestedToKiss[playerid] = -1;
  15811. }
  15812. else if(strmatch(option, "vchavecompartilha"))//sharedkey //vchavecompartilha
  15813. {
  15814. if(VehicleShareOffer[playerid][0] == -1) return SysMsg(playerid, "Nenhum pedido de compartilhamento de veiculos para aceitar.");
  15815. format(gstr, sizeof(gstr),"Veiculo compartilhado com %s foi aceito.", NameRP(playerid));
  15816. SendClientMessage(VehicleShareOffer[playerid][0],COLOR_WHITE,gstr);
  15817. format(gstr, sizeof(gstr),"Veiculo compartilhado com %s foi aceito. Agora você pode usar seu veículo por %i minutos.", NameRP(VehicleShareOffer[playerid][0]), VehicleShareOffer[playerid][2]);
  15818. SendClientMessage(playerid,COLOR_WHITE,gstr);
  15819. SendClientMessage(playerid, COLOR_WHITE, "Você pode remover essa chave compartilhada a qualquer momento usando /removerchaves.");
  15820. VehicleBorrowKey[playerid] = VehicleData[VehicleShareOffer[playerid][1]][VehSQLID];
  15821. VehicleBorrowKeyTime[playerid] = VehicleShareOffer[playerid][2];
  15822. MySQLUpdateInt(SQLID[playerid], "BorrowKey", VehicleBorrowKey[playerid], "players");
  15823. MySQLUpdateInt(SQLID[playerid], "BorrowKeyTime", VehicleBorrowKeyTime[playerid], "players");
  15824. VehicleShareOffer[playerid][0] = -1;
  15825. VehicleShareOffer[playerid][1] = 0;
  15826. VehicleShareOffer[playerid][2] = 0;
  15827. }
  15828. else if(strmatch(option, "revista"))
  15829. {
  15830. if(RequestedToFrisk[playerid] == -1) return SysMsg(playerid, "Não há nenhuma pedido de revista para aceitar.");
  15831. if(!IsPlayerConnected(RequestedToFrisk[playerid]))
  15832. {
  15833. SysMsg(playerid, "Oops! Ocorreu um erro de sistema, por favor relate a um admin. (ERROR: 1-004)");
  15834. RequestedToFrisk[playerid] = -1;
  15835. return true;
  15836. }
  15837. new playa = -1;
  15838. foreach(new i: Player)
  15839. {
  15840. if(RequestedToFrisk[playerid] == i)
  15841. {
  15842. playa = i;
  15843. break;
  15844. }
  15845. }
  15846. if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid,"Você não pode fazer isso em um veículo.");
  15847. if(GetPlayerVehicleID(playa) > 0) return SysMsg(playerid,"Você não pode fazer isso com a pessoa em um veiculo.");
  15848. new Float:tX,Float:tY,Float:tZ;
  15849. GetPlayerPos(playerid,tX,tY,tZ);
  15850. if(!IsPlayerInRangeOfPoint(playerid,2.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para revistar-los.");
  15851. format(gstr, sizeof(gstr),"* %s começa a revistar %s. *", NameRP(playa), NameRP(playerid));
  15852. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  15853. format(gstr, sizeof(gstr),"%s revistou você.", NameRP(playa));
  15854. SendClientMessage(playerid, COLOR_ORANGE, gstr);
  15855. new wCount = 0;
  15856. format(gstr, sizeof(gstr), "[Armas] ");
  15857. for(new i = 0; i < MAX_TOTAL_WEAPONS; i++)
  15858. {
  15859. if(WeaponData[playerid][i][Weapon] > 0)
  15860. {
  15861. if(wCount != 0) strcat(gstr, ", ");
  15862. strcat(gstr, GetWeaponNameFromID(WeaponData[playerid][i][Weapon]));
  15863. wCount ++;
  15864. }
  15865. }
  15866. if(wCount == 0) strcat(gstr, "None.");
  15867. SendClientMessage(playa, COLOR_WHITE, gstr);
  15868. format(gstr, sizeof(gstr), "[Diversos] Dinheiro: $%s", format_cash(Cash[playerid]));
  15869. if(Inventory[playerid][Briefcase] == 1) strcat(gstr, ", Briefcase");
  15870. SendClientMessage(playa, COLOR_WHITE, gstr);
  15871. format(gstr, sizeof(gstr), "[Drogas] Marijuana: %ig, Cocaina: %ig, Moonshine: %iL", Inventory[playerid][Weed], Inventory[playerid][Cocaine], Inventory[playerid][MoonShine]);
  15872. SendClientMessage(playa, COLOR_WHITE, gstr);
  15873. RequestedToFrisk[playerid] = -1;
  15874. }
  15875. else if(strmatch(option, "mudança") || strmatch(option, "mudanca"))
  15876. {
  15877. if(OfferedMoveinFrom[playerid][0] == -1) return SysMsg(playerid, "Sem 'mudança' para aceitar agora.");
  15878. new playa = OfferedMoveinFrom[playerid][0], hid = OfferedMoveinFrom[playerid][1];
  15879. OfferedMoveinFrom[playerid][0] = -1;
  15880. OfferedMoveinFrom[playerid][1] = -1;
  15881. if(!IsPlayerConnected(playa)) return SysMsg(playerid, "Oops! Ocorreu um erro de sistema, por favor relate a um admin. (ERROR: 1-005)");
  15882. new ghouse = HasHouseKey[playa][hid];
  15883. if(ghouse <= 0) return SysMsg(playerid, "Oops! Ocorreu um erro de sistema, por favor relate a um admin. (ERROR: 1-005-1)");
  15884. MySpawnID[playerid] = 5;
  15885. GuestHouseID[playerid] = HouseData[ghouse][HouseSQLID];
  15886. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET GuestHouseID = %i, MySpawnID = %i WHERE id = %i", HouseData[ghouse][HouseSQLID], MySpawnID[playerid], SQLID[playerid]);
  15887. mysql_pquery(conn, mquery);
  15888. SendClientMessageF(playa, COLOR_WHITE, "%s acaba de se mudar para sua casa.", NameEx(playerid));
  15889. SendClientMessageF(playerid,COLOR_GOLD, "Você se mudou para casa de %s. Seu ponto de spawn foi automaticamente definido para esta casa.", HouseData[ghouse][HouseDescription], NameEx(playa));
  15890. }
  15891. else if(strmatch(option, "taxi"))
  15892. {
  15893. new vehid = GetPlayerVehicleID(playerid);
  15894. foreach(new i: Player)
  15895. {
  15896. if(vehid == GetPlayerVehicleID(i) && TaxiForceFare[i] == playerid)
  15897. {
  15898. TaxiForceFare[i] = -1;
  15899. TaxiFareID[i] = playerid;
  15900. TaxiMeter[i] = 0;
  15901. TaxiFare[playerid] = 1;
  15902. format(gstr, sizeof(gstr),"Você aceitou a viagem de %s. Onde gostaria de ir?", NameEx(i));
  15903. SendClientMessage(playerid,COLOR_WHITE,gstr);
  15904. format(gstr, sizeof(gstr),"%s confirmou a tarifa de táxi. Ele(a) agora é(são) cliente, você pode iniciar o taxímetro se necessário.", NameEx(playerid));
  15905. SendClientMessage(i,COLOR_WHITE,gstr);
  15906. return true;
  15907. }
  15908. }
  15909. SysMsg(playerid, "Nenhum táxi para aceitar agora.");
  15910. }
  15911. else if(strmatch(option, "olhosvendados")) //olhosvendados
  15912. {
  15913. if(RequestedToBlindfold[playerid] == -1) return SysMsg(playerid, "Você não possui solicitações pendentes para venda de olhos.");
  15914. if(!IsPlayerConnected(RequestedToBlindfold[playerid]))
  15915. {
  15916. SysMsg(playerid, "Oops! Ocorreu um erro no sistema, informe para um administrador. (ERROR: 1-004)");
  15917. RequestedToBlindfold[playerid] = -1;
  15918. return true;
  15919. }
  15920. new playa = -1;
  15921. foreach(new i: Player)
  15922. {
  15923. if(RequestedToBlindfold[playerid] == i)
  15924. {
  15925. playa = i;
  15926. break;
  15927. }
  15928. }
  15929. new Float:tX,Float:tY,Float:tZ;
  15930. GetPlayerPos(playerid,tX,tY,tZ);
  15931. if(!IsPlayerInRangeOfPoint(playa,2.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para aceitar uma venda de olhos dele.");
  15932. PlayerTextDrawShow(playerid, BlindfoldEffect[playerid]);
  15933. GangZoneShowForPlayer(playerid, BlindZone, COLOR_BLACK);
  15934. format(gstr, sizeof(gstr),"* %s pega uma faixa de pano, enrola em torno da cabeça de %s vendando seus olhos. *", NameRP(playa), NameRP(playerid));
  15935. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  15936. format(gstr, sizeof(gstr),"%s vendou seus olhos.", NameRP(playa));
  15937. SendClientMessage(playerid, COLOR_ORANGE, gstr);
  15938. RequestedToBlindfold[playerid] = -1;
  15939. Blindfolded[playerid] = 1;
  15940. Inventory[playa][Blindfold] = 0;
  15941. MySQLUpdateInt(SQLID[playerid], "HasBlindfold", Inventory[playa][Blindfold], "players");
  15942. }
  15943. else if(strmatch(option, "cura"))
  15944. {
  15945. if(BeingHealed[playerid] == 0) return SysMsg(playerid, "Você não tem nenhum pedido de cura.");
  15946. new playa = HealedBy[playerid];
  15947. Injuries[playerid][HealID[playerid]][pWeaponID] = 0;
  15948. Injuries[playerid][HealID[playerid]][pBodypart] = 0;
  15949. DeathTimer[playerid] += 30;
  15950. format(gstr, sizeof(gstr),"* %s cura uma ferida em %s. *", NameRP(playa), NameRP(playerid));
  15951. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  15952. format(gstr, sizeof(gstr),"%s curou uma de suas feridas.", NameRP(playa));
  15953. SendClientMessage(playerid, COLOR_ORANGE, gstr);
  15954. Healing[playa] = -1;
  15955. BeingHealed[playerid] = 0;
  15956. HealID[playerid] = -1;
  15957. HealedBy[playerid] = -1;
  15958. HitCount[playerid] --;
  15959. return true;
  15960. }
  15961. else if(strmatch(option, "morte"))
  15962. {
  15963. if(!Dead{playerid}) return SysMsg(playerid, "Você não está em uma condição crítica para aceitar morte.");
  15964. if(DeathTimer[playerid] != 0) return SysMsg(playerid, "Você não pode aceitar a morte ainda.");
  15965. if(IsPlayerInAnyVehicle(playerid))
  15966. {
  15967. RemovePlayerFromVehicle(playerid);
  15968. SetPlayerPos(playerid, PlayerPosX(playerid), PlayerPosY(playerid), PlayerPosZ(playerid) + 2);
  15969. }
  15970. HasJustDied[playerid] = 2;
  15971. Dead{playerid} = false;
  15972. DeathTimer[playerid] = 0;
  15973. CreateCorpse(playerid);
  15974. SendPlayerToHospital(playerid);
  15975. ClearInjuriesForPlayer(playerid);
  15976. format(sgstr, sizeof(sgstr), "[Admin] %s aceitou a sua morte. ((/aceitar morte))", NameEx(playerid));
  15977. AdminBroadcast(sgstr, 1);
  15978. format(sgstr, sizeof(sgstr), "[Death - System] %s aceitou morte. ((/aceitar morte))", NameRP(playerid));
  15979. ProxDetector(20.0, playerid, sgstr, COLOR_FADE3, COLOR_FADE3, COLOR_FADE3, COLOR_FADE3, COLOR_FADE3);
  15980. return true;
  15981. }
  15982. return true;
  15983. }
  15984. CMD:jn(playerid, params[])
  15985. {
  15986. if(!Logged{playerid}) return true;
  15987. new vehicleid = GetPlayerVehicleID(playerid);
  15988. if(vehicleid == 0) return SysMsg(playerid, "Você deve estar em um veículo para controlar as janelas.");
  15989. if(!VehicleHasWindows(vehicleid)) return SysMsg(playerid,"Este veículo não tem janelas para controlar.");
  15990. if(Locked{vehicleid} && IsOwnedCar(vehicleid) && SQLID[playerid] != VehicleData[vehicleid][VehicleOwnerSQLID]) return SysMsg(playerid, "Você deve abrir o veiculo.");
  15991. new status[12];
  15992. if(sscanf(params, "s[12]", status)) return SysMsg(playerid, "Use: /jn (/janelas) [abaixar/abrir Ou Levantar/Fechar]");
  15993. if(strcmp("abaixar", status, true) == 0 || strcmp("abrir", status, true) == 0)
  15994. {
  15995. if(WindowState{vehicleid} == WINDOWS_OPEN) return SysMsg(playerid, "As janelas já estão abertas.");
  15996. WindowState{vehicleid} = WINDOWS_OPEN;
  15997. SetVehicleParamsCarWindows(vehicleid, 0, 0, 0, 0);
  15998. format(gstr, sizeof(gstr),"* %s abaixa as janelas do %s. *",NameRP(playerid),GetVehicleName(vehicleid));
  15999. ProxDetector(20.0, playerid,gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  16000. return true;
  16001. }
  16002. if(strcmp("levantar", status, true) == 0 || strcmp("fechar", status, true) == 0)
  16003. {
  16004. if(WindowState{vehicleid} == WINDOWS_CLOSED) return SysMsg(playerid, "As janelas do veiculo já estão fechadas.");
  16005. WindowState{vehicleid} = WINDOWS_CLOSED;
  16006. SetVehicleParamsCarWindows(vehicleid, 1, 1, 1, 1);
  16007. format(gstr, sizeof(gstr),"* %s fecha todas as janelas do %s. *",NameRP(playerid),GetVehicleName(vehicleid));
  16008. ProxDetector(20.0, playerid,gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  16009. return true;
  16010. }
  16011. else SysMsg(playerid, "Use: /jn (/janelas) [abaixar/abrir Ou Levantar/Fechar]");
  16012. return true;
  16013. }
  16014. CMD:janelas(playerid, params[]) return cmd_jn(playerid, params);
  16015. CMD:tow(playerid, params[])
  16016. {
  16017. if(!Logged{playerid}) return true;
  16018. new vehicleid = GetPlayerVehicleID(playerid);
  16019. if(!IsTowingVehicle(vehicleid)) return SysMsg(playerid,"You must be in a vehicle that can tow.");
  16020. if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"You must be the driver.");
  16021. if(IsTrailerAttachedToVehicle(vehicleid)) return SysMsg(playerid,"You are already towing a vehicle use /detach primeiro.");
  16022. new Float:pX,Float:pY,Float:pZ;
  16023. new Float:vX,Float:vY,Float:vZ;
  16024. GetPlayerPos(playerid,pX,pY,pZ);
  16025. new Found = 0;
  16026. new vid = 1;
  16027. new x = GetVehiclePoolSize();
  16028. while(vid <= x && Found == 0)
  16029. {
  16030. vid++;
  16031. GetVehiclePos(vid,vX,vY,vZ);
  16032. if(floatabs(pX-vX) < 7.0 && floatabs(pY-vY) < 7.0 && floatabs(pZ-vZ) < 7.0 && vid != vehicleid)
  16033. {
  16034. Found = 1;
  16035. AttachTrailerToVehicle(vid, vehicleid);
  16036. }
  16037. }
  16038. if(!Found) SendClientMessage(playerid,COLOR_SKYBLUE,"Você não está perto de nenhum veículo. Assegure-se de que está perto da parte traseira de um veículo, se quiser rebocá-lo.");
  16039. return true;
  16040. }
  16041. CMD:detach(playerid, params[])//observar
  16042. {
  16043. if(!Logged{playerid}) return true;
  16044. if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você precisa estar em um veiculo.");
  16045. new vehicleid = GetPlayerVehicleID(playerid);
  16046. if(vehicleid == 0) return SysMsg(playerid, "Você não estar em um veiculo.");
  16047. new trailerid = GetVehicleTrailer(vehicleid);
  16048. if(trailerid == 0) return SysMsg(playerid, "Você não tem um Trailer.");
  16049. DetachTrailerFromVehicle(vehicleid);
  16050. SendClientMessage(playerid,COLOR_SKYBLUE,"Trailer Detached");
  16051. return true;
  16052. }
  16053. CMD:pm(playerid, params[])
  16054. {
  16055. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  16056. if(PMSpamTime[playerid] > 0) return SysMsg(playerid,"Por favor, aguarde antes de mandar outra mensagem.");
  16057. new playa = -1, msg[152];
  16058. if(sscanf(params, "us[152]", playa, msg)) return SysMsg(playerid,"Use: /pm [ID ou nome do jogador] [mensagem] *Mensagens pessoais são totalmente OOC*");
  16059. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  16060. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  16061. if(playa == playerid) return SysMsg(playerid,"Você não pode fazer um PM você mesmo.");
  16062. if(!AcceptPM{playa} && !IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid,"Esse jogador tem mensagens privadas desligadas.");
  16063. if(IsPlayerIgnoringPlayer(playerid, playa)) return SysMsg(playerid,"Você não pode enviar uma mensagem a alguém que está ignorando.");
  16064. if(IsPlayerIgnoringPlayer(playa, playerid)) return SysMsg(playerid,"As PM's desse jogador está desativada.");
  16065. if(!Logged{playa}) return SysMsg(playerid,"Você só pode enviar mensagens para jogadores conectados.");
  16066. if(!IsPlayerIgnoringPlayer(playa, playerid) || IsPlayerAdminLevelOK(playa, 1)) SendSplitMessageF(playa,COLOR_PM,"[PM from %s, ID %i] %s", NameEx(playerid), playerid, msg);
  16067. SendSplitMessageF(playerid,COLOR_PM, "[PM to %s, ID %i] %s", NameEx(playa), playa, msg);
  16068. if(!IsPlayerAdminLevelOK(playerid, 1)) PMSpamTime[playerid] = 3;
  16069. PMReplyID[playa] = playerid;
  16070. if(!AcceptPM{playerid}) SysMsg(playerid,"Nota: Você atualmente suas PM's estão desativadas, você não receberá resposta de ninguem.");
  16071. if(IsAFK{playa}) SysMsg(playerid,"Nota: O jogador que você está enviando PM está AFK, Talvez você não receberá uma resposta (Imediatamente).");
  16072. return true;
  16073. }
  16074. CMD:rpm(playerid, params[])
  16075. {
  16076. if(!Logged{playerid}) return true;
  16077. if(PMReplyID[playerid] == -1) return SysMsg(playerid, "Você não tem nenhuma PM para responder.");
  16078. if(isnull(params)) return SysMsg(playerid, "Use: /rpm [mensagem] *Envia um PM rápido para o último jogador que enviou PM para você.*");
  16079. new playa = PMReplyID[playerid];
  16080. format(sgstr, sizeof(sgstr), "%i %s", playa, params);
  16081. cmd_pm(playerid, sgstr);
  16082. return true;
  16083. }
  16084. CMD:pmignorados(playerid, params[])
  16085. {
  16086. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  16087. if(IsDonator[playerid] < 3) return SysMsg(playerid,"Somente o Nível 3 do doador e acima podem usar esse recurso.");
  16088. new playa = -1;
  16089. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /pmignorados [ID ou nome do jogador]");
  16090. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  16091. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  16092. if(playa == playerid) return SysMsg(playerid,"Você não pode fazer isso com você mesmo!");
  16093. if(IsPlayerAdminLevelOK(playa, 1)) return SysMsg(playerid,"Você receberá PM's de Administradores, mesmo que você os ignore.");
  16094. if(IsPlayerIgnoringPlayer(playerid, playa)) SendClientMessageF(playerid,COLOR_WHITE, "Você está realmente ignorando os PM de %s.", NameEx(playa));
  16095. else SendClientMessageF(playerid,COLOR_WHITE, "Você está ingnorando as PM's de %s.", NameEx(playa));
  16096. return true;
  16097. }
  16098. CMD:togpm(playerid, params[])
  16099. {
  16100. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  16101. if(isnull(params)) return SysMsg(playerid,"Use: /togpm ['on' ou 'off' ou ID]");
  16102. if(strcmp("off", params, true) == 0)
  16103. {
  16104. if(!AcceptPM{playerid}) return SysMsg(playerid,"Suas PM's já estão desativadas.");
  16105. AcceptPM{playerid} = false;
  16106. SendClientMessage(playerid, COLOR_WHITE, "Mensagens pessoais desativadas, outros jogadores não podem enviar PM para você.");
  16107. return true;
  16108. }
  16109. else if(strcmp("on", params, true) == 0)
  16110. {
  16111. if(AcceptPM{playerid}) return SysMsg(playerid,"Suas PM's já estão ativadas.");
  16112. AcceptPM{playerid} = true;
  16113. SendClientMessage(playerid, COLOR_WHITE, "Mensagens pessoais ativadas, outros jogadores podem enviar PM para você.");
  16114. return true;
  16115. }
  16116. else if(IsNumeric(params) || IsPlayerConnected(GetPlayerIDs(params)))
  16117. {
  16118. new playa = GetPlayerIDs(params);
  16119. if(playa == playerid) return SysMsg(playerid,"Você não pode se ignorar!");
  16120. if(IsPlayerAdminLevelOK(playa, 1)) return SysMsg(playerid,"Você não pode ignorar Administradores.");
  16121. if(!IsPlayerIgnoringPlayer(playerid, playa))
  16122. {
  16123. mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO `ignore` (PlayerSQLID,IgnoringSQLID) VALUES (%i,%i)", SQLID[playerid], SQLID[playa]);
  16124. mysql_pquery(conn, mquery);
  16125. SendClientMessageF(playerid, COLOR_DONATE, "Você está ignorando os PM's de %s.", NameEx(playa));
  16126. return true;
  16127. }
  16128. else if(IsPlayerIgnoringPlayer(playerid, playa))
  16129. {
  16130. mysql_format(conn, mquery, sizeof(mquery), "DELETE FROM `ignore` WHERE PlayerSQLID=%i AND IgnoringSQLID=%i", SQLID[playerid], SQLID[playa]);
  16131. mysql_pquery(conn, mquery);
  16132. SendClientMessageF(playerid, COLOR_DONATE, "Você não está mais ignorando os PM's de %s.", NameEx(playa));
  16133. return true;
  16134. }
  16135. }
  16136. SysMsg(playerid,"Use: /togpm ['on' ou 'off' ou ID]");
  16137. return true;
  16138. }
  16139. CMD:toggold(playerid)
  16140. {
  16141. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  16142. if(IsDonator[playerid] < 2) return SysMsg(playerid,"Somente os donadores de nível 2+ podem usar esse recurso.");
  16143. if(GoldToggle[playerid] == 0)
  16144. {
  16145. if(ADuty[playerid] == 1) return SysMsg(playerid, "Você está admin Duty.");
  16146. GoldToggle[playerid] = 1;
  16147. SetPlayerColor(playerid, COLOR_DONATE);
  16148. SendClientMessage(playerid, COLOR_WHITE, "Donator Mensagem: Seu golden OOC e nome agora estão ligados.");
  16149. }
  16150. else
  16151. {
  16152. GoldToggle[playerid] = 0;
  16153. SetPlayerColor(playerid, 0xFFFFFF00);
  16154. SendClientMessage(playerid, COLOR_WHITE, "Donator Mensagem: Seu golden OOC e nome agora estão desligados.");
  16155. }
  16156. return true;
  16157. }
  16158. CMD:togooc(playerid)
  16159. {
  16160. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  16161. if(IsDonator[playerid] < 2) return SysMsg(playerid,"Somente os donadores de nível 2+ podem usar esse recurso.");
  16162. if(OOCToggle[playerid] == 0)
  16163. {
  16164. OOCToggle[playerid] = 1;
  16165. SendClientMessage(playerid, COLOR_WHITE, "Donator Mensagem: O canal de bate-papo OOC agora está desativado para você.");
  16166. }
  16167. else
  16168. {
  16169. OOCToggle[playerid] = 0;
  16170. SendClientMessage(playerid, COLOR_WHITE, "Donator Mensagem: O canal de bate-papo OOC agora está habilitado para você.");
  16171. }
  16172. return true;
  16173. }
  16174. CMD:togdooc(playerid)
  16175. {
  16176. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  16177. if(IsDonator[playerid] < 1) return SysMsg(playerid,"Somente os Donadores podem usar esse recurso.");
  16178. ToggleDOOC{playerid} = !ToggleDOOC{playerid};
  16179. SendClientMessage(playerid, COLOR_WHITE, (ToggleDOOC{playerid}) ? ("Donator Mensagem: O canal de bate-papo Donator OOC agora está desativado para você.") : ("Donator Mensagem: O canal de bate-papo Donator OOC não está habilitado para você."));
  16180. return true;
  16181. }
  16182. CMD:gtoghc(playerid)
  16183. {
  16184. if(!Logged{playerid}) return true;
  16185. if(!IsPlayerAdminLevelOK(playerid, 4)) return SysMsg(playerid, AUTHMSG);
  16186. GlobalHelperChatTog = !GlobalHelperChatTog;
  16187. foreach(new i: Player)
  16188. {
  16189. if(IsHelper{i} || AdminLevel[i] != 0)
  16190. {
  16191. if(GlobalHelperChatTog) SendClientMessage(i, COLOR_LIGHTGREEN, "O Chat Helper foi desativado.");
  16192. else SendClientMessage(i, COLOR_LIGHTGREEN, "O Helper Chat foi ativado.");
  16193. }
  16194. }
  16195. return true;
  16196. }
  16197. CMD:animegrito(playerid)//Habilitar e desabilitar a animação de grito /animegrito
  16198. {
  16199. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  16200. ShoutAnimToggle{playerid} = !ShoutAnimToggle{playerid};
  16201. if(ShoutAnimToggle{playerid}) SendClientMessage(playerid, COLOR_WHITE, "A animação de grito (/g) agora está ativado para você.");
  16202. else SendClientMessage(playerid, COLOR_WHITE, "A animação de grito (/g) agora está desativado para você.");
  16203. MySQLUpdateInt(SQLID[playerid], "ShoutAnimToggle", ShoutAnimToggle{playerid}, "players");
  16204. return true;
  16205. }
  16206. CMD:toganimfalar(playerid)//toganimfalar
  16207. {
  16208. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  16209. TalkAnimToggle{playerid} = !TalkAnimToggle{playerid};
  16210. if(TalkAnimToggle{playerid}) SendClientMessage(playerid, COLOR_WHITE, "A animação de conversa agora está habilitada para você.");
  16211. else SendClientMessage(playerid, COLOR_WHITE, "A animação de conversa agora está desabilitada para você.");
  16212. MySQLUpdateInt(SQLID[playerid], "TalkAnimToggle", TalkAnimToggle{playerid}, "players");
  16213. return true;
  16214. }
  16215. CMD:tognews(playerid)
  16216. {
  16217. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  16218. NewsToggle{playerid} = !NewsToggle{playerid};
  16219. if(NewsToggle{playerid}) SendClientMessage(playerid, COLOR_WHITE, "As transmissões de notícias agora estão desativadas para você.");
  16220. else SendClientMessage(playerid, COLOR_WHITE, "As transmissões de notícias agora estão desativadas para você.");
  16221. return true;
  16222. }
  16223. CMD:toganuncios(playerid)//toganuncios
  16224. {
  16225. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  16226. AdvertsToggle{playerid} = !AdvertsToggle{playerid};
  16227. if(AdvertsToggle{playerid}) SendClientMessage(playerid, COLOR_WHITE, "Os anúncios agora estão desativados para você.");
  16228. else SendClientMessage(playerid, COLOR_WHITE, "Os anúncios agora estão ativados para você.");
  16229. return true;
  16230. }
  16231. CMD:togaudiostreams(playerid)
  16232. {
  16233. if(!Logged{playerid}) return true;
  16234. AudioToggle{playerid} = !AudioToggle{playerid};
  16235. if(AudioToggle{playerid})
  16236. {
  16237. StopAudioStreamForPlayer(playerid);
  16238. SendClientMessage(playerid, COLOR_WHITE, "Certos audio streams agora estão desabilitados para você.");
  16239. }
  16240. else SendClientMessage(playerid, COLOR_WHITE, "Certos audio streams agora estão habilitados para você.");
  16241. return true;
  16242. }
  16243. CMD:togdicas(playerid)//togdicas
  16244. {
  16245. if(!Logged{playerid}) return true;
  16246. HintToggle{playerid} = !HintToggle{playerid};
  16247. if(HintToggle{playerid}) SendClientMessage(playerid, COLOR_WHITE, "As mensagens de dica agora estão desabilitadas para você.");
  16248. else SendClientMessage(playerid, COLOR_WHITE, "As mensagens de dica agora estão habilitadas para você.");
  16249. return true;
  16250. }
  16251. CMD:notepad(playerid, params[])
  16252. {
  16253. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  16254. if(Inventory[playerid][Notepad] == 0) return SysMsg(playerid,"You don't have a Notepad to use.");
  16255. new action[10], page, text[75];
  16256. if(sscanf(params, "s[10]I(0)S()[75]", action, page, text)) return SysMsg(playerid,"Use: /notepad [Escrever / ler / limpar / editar / mostrar] [Número da Página] [texto (se escrever)]");
  16257. if(strcmp("limpar", action, false) == 0)
  16258. {
  16259. if(page == 0) return SysMsg(playerid,"Use: /notepad limpar [Número da Página]");
  16260. if(page < 1 || page > 5) return SysMsg(playerid,"Número de página inválido. Use de 1 à 5.");
  16261. if(strcmp("blank", NotepadText[playerid][page-1], true) == 0) return SysMsg(playerid,"Essa página já está em branco.");
  16262. NotepadText[playerid][page-1] = "blank";
  16263. new str[10];
  16264. for(new x = 0; x < 5; x++)
  16265. {
  16266. format(str, sizeof(str), "Notepad%i", x + 1);
  16267. MySQLUpdateString(SQLID[playerid], str, NotepadText[playerid][x], "players");
  16268. }
  16269. SendClientMessageF(playerid, COLOR_WHITE, "Você limpou a página %i do bloco de notas.", page);
  16270. return true;
  16271. }
  16272. else if(strcmp("ler", action, false) == 0)
  16273. {
  16274. if(page == 0) return SysMsg(playerid,"Use: /notepad ler [Número da Página]");
  16275. if(page < 1 || page > 5) return SysMsg(playerid,"Número de página inválido. Use de 1 à 5.");
  16276. if(strcmp("blank", NotepadText[playerid][page-1], true) == 0) return SysMsg(playerid,"That page is blank.");
  16277. format(sgstr,sizeof(sgstr),"* %s gets a notepad out and reads one of the pages. *",NameRP(playerid));
  16278. ProxDetector(15.0,playerid,sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  16279. SendClientMessageF(playerid, COLOR_WHITE, "[Notepad: Page %i] %s", page, NotepadText[playerid][page-1]);
  16280. return true;
  16281. }
  16282. else if(strcmp("escrever", action, false) == 0)
  16283. {
  16284. if(Inventory[playerid][Pen] == 0) return SysMsg(playerid,"Você não tem uma caneta para escrever.");
  16285. if(page == 0) return SysMsg(playerid,"Use: /notepad Write [Número da Página] [text]");
  16286. if(page < 1 || page > 5) return SysMsg(playerid,"Número de página inválido. Use de 1 à 5.");
  16287. if(strcmp("blank", NotepadText[playerid][page-1], true) != 0) return SysMsg(playerid,"Esta página já tem texto sobre ele. Por favor, limpe esta página para usá-lo.");
  16288. if(isnull(text)) return SysMsg(playerid,"Use: /notepad Escrever [Número da Página] [texto]");
  16289. if(strlen(text) > 73) return SysMsg(playerid,"A mensagem esta muito longa para caber na página.");
  16290. format(NotepadText[playerid][page-1], 75, text);
  16291. new str[10];
  16292. for(new x = 0; x < 5; x++)
  16293. {
  16294. format(str, sizeof(str), "Notepad%i", x + 1);
  16295. MySQLUpdateString(SQLID[playerid], str, NotepadText[playerid][x], "players");
  16296. }
  16297. format(sgstr,sizeof(sgstr),"* %s pega um bloco de notas e escreve em uma das páginas. *",NameRP(playerid));
  16298. ProxDetector(15.0,playerid,sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  16299. SendClientMessageF(playerid, COLOR_WHITE, "[Notepad: Página %i: Escreva] %s", page, NotepadText[playerid][page-1]);
  16300. Inventory[playerid][Pen] --;
  16301. MySQLUpdateInt(SQLID[playerid], "HasPen", Inventory[playerid][Pen], "players");
  16302. if(Inventory[playerid][Pen] <= 0)
  16303. {
  16304. Inventory[playerid][Pen] = 0;
  16305. format(sgstr,sizeof(sgstr),"* A caneta de %s ficou sem tinta. *",NameRP(playerid));
  16306. ProxDetector(15.0,playerid,sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  16307. SendClientMessage(playerid, COLOR_WHITE, "> Sua caneta não tem tinta, jogue fora e compre outra.");
  16308. }
  16309. return true;
  16310. }
  16311. else if(strcmp("editar", action, false) == 0)
  16312. {
  16313. if(page == 0) return SysMsg(playerid,"Use: /notepad Editar [Número da Página] [texto] - adiciona texto ao final da mensagem atual");
  16314. if(page < 1 || page > 5) return SysMsg(playerid,"Número de página inválido. Use de 1 à 5.");
  16315. if(strcmp("blank", NotepadText[playerid][page-1], true) == 0) return SysMsg(playerid,"Essa página está em branco. Você deve 'escrever' uma página em branco antes de editar.");
  16316. if(isnull(text)) return SysMsg(playerid,"Use: /notepad Editar [Número da Página] [texto] - adiciona texto ao final da mensagem atual");
  16317. if(strlen(text) + strlen(NotepadText[playerid][page-1]) > 73) return SysMsg(playerid,"A mensagem e a edição foram muito longas para caber na página.");
  16318. format(NotepadText[playerid][page-1], 75, "%s %s", NotepadText[playerid][page-1], text);
  16319. new str[10];
  16320. for(new x = 0; x < 5; x++)
  16321. {
  16322. format(str, sizeof(str), "Notepad%i", x + 1);
  16323. MySQLUpdateString(SQLID[playerid], str, NotepadText[playerid][x], "players");
  16324. }
  16325. format(sgstr,sizeof(sgstr),"*%s pega um bloco de notas e escreve em uma das páginas. *",NameRP(playerid));
  16326. ProxDetector(15.0,playerid,sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  16327. SendClientMessageF(playerid, COLOR_WHITE, "[Notepad: Página %i: Editar] %s", page, NotepadText[playerid][page-1]);
  16328. return true;
  16329. }
  16330. else if(strcmp("mostrar", action, false) == 0)
  16331. {
  16332. new Float:tX, Float:tY, Float:tZ;
  16333. if(page == 0 || isnull(text)) return SysMsg(playerid,"Use: /notepad Mostrar [Número da Página] [player id/nome]");
  16334. if(page < 1 || page > 5) return SysMsg(playerid,"Número de página inválido. Use de 1 à 5.");
  16335. if(strcmp("blank", NotepadText[playerid][page-1], true) == 0) return SysMsg(playerid,"Essa página está em branco, você precisa escrever algo antes de mostrar.");
  16336. new playa;
  16337. if(!IsNumeric(text)) playa = GetPlayerID(playerid, text); else playa = strval(text);
  16338. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  16339. GetPlayerPos(playa, tX,tY,tZ);
  16340. if(!IsPlayerInRangeOfPoint(playerid,2.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para mostrar a nota.");
  16341. format(sgstr,sizeof(sgstr),"*%s pega um bloco de notas e mostra uma das páginas para %s. *",NameRP(playerid),NameRP(playa));
  16342. ProxDetector(15.0,playerid,sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  16343. SendClientMessageF(playa, COLOR_WHITE, "[Página] %s", NotepadText[playerid][page-1]);
  16344. return true;
  16345. }
  16346. return true;
  16347. }
  16348. CMD:calc(playerid, params[])
  16349. {
  16350. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  16351. if(Inventory[playerid][Calculator] == 0) return SysMsg(playerid,"Você não tem uma calculadora para usar.");
  16352. new Float:n1, Float:n2, oper, Float:answer;
  16353. if(sscanf(params, "fcf", n1, oper, n2)) return SysMsg(playerid,"Use: /calc [Primeiro número] [+(add) OU -(Subtrair) OR *(Multiplicar) OU /(Dividir)] [Segundo número]");
  16354. format(gstr, sizeof(gstr), "*%s pega sua calculadora e pressiona alguns botões. *", NameRP(playerid));
  16355. ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  16356. switch(oper)
  16357. {
  16358. case '+': answer = n1 + n2;
  16359. case '-': answer = n1 - n2;
  16360. case '/':
  16361. {
  16362. if(n2 == 0) return SysMsg(playerid, "[CALCULADORA] ERROR: Não é possível dividir por zero");
  16363. answer = n1 / n2;
  16364. }
  16365. case '*': answer = n1 * n2;
  16366. default: return SysMsg(playerid, "[CALCULADORA] ERROR: Operador inválido");
  16367. }
  16368. SendClientMessageF(playerid, COLOR_WHITE, "[CALCULADORA] %.2f %c %.2f = %.2f", n1, oper, n2, answer);
  16369. return true;
  16370. }
  16371. CMD:jogardado(playerid, params[])//rolldice
  16372. {
  16373. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  16374. if(Inventory[playerid][Dice] == 0) return SysMsg(playerid,"Você não tem um dado, compre em uma Loja geral.");
  16375. format(gstr, sizeof(gstr),"* %s joga um dado para cima a media altura e ele cai marcando %i. *", NameRP(playerid), random(6)+1);
  16376. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  16377. return true;
  16378. }
  16379. CMD:flipcoin(playerid, params[])
  16380. {
  16381. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  16382. if(Cash[playerid] <= 0) return SysMsg(playerid,"Você não tem moedas.");
  16383. new Side[7], Rand = random(2);
  16384. if(Rand == 0) Side = "Cara";
  16385. if(Rand == 1) Side = "Coroa";
  16386. format(gstr, sizeof(gstr),"* %s joga uma moeda para cima a media altura e ela cai no chão marcando %s. *",NameRP(playerid),Side);
  16387. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  16388. return true;
  16389. }
  16390. CMD:fumar(playerid, params[])
  16391. {
  16392. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  16393. if(Inventory[playerid][Lighter] <= 0) return SysMsg(playerid,"Você precisa de um isqueiro para fumar um cigarro.");
  16394. if(Inventory[playerid][Fags] <= 0) return SysMsg(playerid,"Não sobrou mais cigarros.");
  16395. Inventory[playerid][Fags] -= 1;
  16396. Inventory[playerid][Lighter] -= 1;
  16397. MySQLUpdateInt(SQLID[playerid], "HasFags", Inventory[playerid][Fags], "players");
  16398. MySQLUpdateInt(SQLID[playerid], "HasLighter", Inventory[playerid][Lighter], "players");
  16399. if(Inventory[playerid][Lighter] <= 0)
  16400. {
  16401. SysMsg(playerid,"Seu isqueiro esta sem gás, jogue fora.");
  16402. Inventory[playerid][Lighter] = 0;
  16403. }
  16404. if(Inventory[playerid][Fags] <= 0)
  16405. {
  16406. SysMsg(playerid,"O maço de cigarro esta vazio, jogue o pacote fora.");
  16407. Inventory[playerid][Fags] = 0;
  16408. }
  16409. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_SMOKE_CIGGY);
  16410. format(gstr, sizeof(gstr),"* %s tira um palito de cigarro da carteira e o acende... *",NameRP(playerid));
  16411. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  16412. return true;
  16413. }
  16414. CMD:usarmuni(playerid, params[])
  16415. {
  16416. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  16417. if(isnull(params)) return SysMsg(playerid,"Use: /usarmuni [Tipo de munição] - Tipos: 'Pistola', 'Shotgun', 'Rifle', 'Assault', 'SMG' *Você deve estar segurando a arma que deseja adicionar munição*");
  16418. new weapid = GetPlayerWeapon(playerid), weapslot = -1;
  16419. if(strcmp("pistola", params, true) == 0)
  16420. {
  16421. if(Inventory[playerid][AmmoBox][AMMOBOX_PISTOL] > 0)
  16422. {
  16423. if(weapid == -1) return SysMsg(playerid,"Nome da arma inválida.");
  16424. if(weapid < 1 || weapid > 47) return SysMsg(playerid,"Arma inválida.");
  16425. if(weapid == 19 || weapid == 20 || weapid == 21) return SysMsg(playerid,"Arma inválida.");
  16426. weapslot = GetWeaponSlot(weapid);
  16427. if(weapslot != 2) return SysMsg(playerid,"Essa arma não pode levar munição de pistola.");
  16428. if(WeaponData[playerid][weapslot][Weapon] != weapid) return SysMsg(playerid,"Você não possui essa arma.");
  16429. if(WeaponData[playerid][weapslot][WeaponAmmo] == GetDefaultWeaponAmmo(weapid)) return SysMsg(playerid, "Essa arma já esta carregada com o máximo de munições suportada.");
  16430. Inventory[playerid][AmmoBox][AMMOBOX_PISTOL] --;
  16431. MySQLUpdateInt(SQLID[playerid], "AmmoBoxPistol", Inventory[playerid][AmmoBox][AMMOBOX_PISTOL], "players");
  16432. WeaponData[playerid][weapslot][WeaponAmmo] = GetDefaultWeaponAmmo(weapid);
  16433. SyncPlayerWeapons(playerid);
  16434. format(gstr, sizeof(gstr), "* %s retira algumas munições de uma pequena caixa e coloca na sua %s. *", NameRP(playerid), GetWeaponNameFromID(weapid));
  16435. ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  16436. format(gstr, sizeof(gstr), "Você recarregou sua %s.", GetWeaponNameFromID(weapid));
  16437. SendClientMessage(playerid, COLOR_WHITE, gstr);
  16438. SetPlayerArmedWeapon(playerid, weapid);
  16439. return true;
  16440. }
  16441. else return SysMsg(playerid, "Você não tem nenhuma caixa de munições para Pistola.");
  16442. }
  16443. else if(strcmp("shotgun", params, true) == 0)
  16444. {
  16445. if(Inventory[playerid][AmmoBox][AMMOBOX_SHOTGUN] > 0)
  16446. {
  16447. if(weapid == -1) return SysMsg(playerid,"Nome da arma inválida.");
  16448. if(weapid < 1 || weapid > 47) return SysMsg(playerid,"Arma inválida.");
  16449. if(weapid == 19 || weapid == 20 || weapid == 21) return SysMsg(playerid,"Arma inválida.");
  16450. weapslot = GetWeaponSlot(weapid);
  16451. if(weapslot != 3) return SysMsg(playerid,"Essa arma não pode levar munição de Shotgun.");
  16452. if(WeaponData[playerid][weapslot][Weapon] != weapid) return SysMsg(playerid,"Você não possui essa arma.");
  16453. if(WeaponData[playerid][weapslot][WeaponAmmo] == GetDefaultWeaponAmmo(weapid)) return SysMsg(playerid, "Essa arma já esta carregada com o máximo de munições suportada.");
  16454. Inventory[playerid][AmmoBox][AMMOBOX_SHOTGUN] --;
  16455. MySQLUpdateInt(SQLID[playerid], "AmmoBoxShotgun", Inventory[playerid][AmmoBox][AMMOBOX_SHOTGUN], "players");
  16456. WeaponData[playerid][weapslot][WeaponAmmo] = GetDefaultWeaponAmmo(weapid);
  16457. SyncPlayerWeapons(playerid);
  16458. format(gstr, sizeof(gstr), "* %s retira algumas munições de uma pequena caixa e coloca na sua %s. *", NameRP(playerid), GetWeaponNameFromID(weapid));
  16459. ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  16460. format(gstr, sizeof(gstr), "Você recarregou sua %s.", GetWeaponNameFromID(weapid));
  16461. SendClientMessage(playerid, COLOR_WHITE, gstr);
  16462. SetPlayerArmedWeapon(playerid, weapid);
  16463. return true;
  16464. }
  16465. else return SysMsg(playerid, "Você não tem nenhuma caixa de munição para Shotgun");
  16466. }
  16467. else if(strcmp("SMG", params, true) == 0)
  16468. {
  16469. if(Inventory[playerid][AmmoBox][AMMOBOX_SMG] > 0)
  16470. {
  16471. if(weapid == -1) return SysMsg(playerid,"Nome da arma inválida.");
  16472. if(weapid < 1 || weapid > 47) return SysMsg(playerid,"Arma inválida.");
  16473. if(weapid == 19 || weapid == 20 || weapid == 21) return SysMsg(playerid,"Arma inválida.");
  16474. weapslot = GetWeaponSlot(weapid);
  16475. if(weapslot != 4) return SysMsg(playerid,"Essa arma não pode levar munição SMG.");
  16476. if(WeaponData[playerid][weapslot][Weapon] != weapid) return SysMsg(playerid,"Você não possui essa arma.");
  16477. if(WeaponData[playerid][weapslot][WeaponAmmo] == GetDefaultWeaponAmmo(weapid)) return SysMsg(playerid, "Essa arma já esta carregada com o máximo de munições suportada.");
  16478. Inventory[playerid][AmmoBox][AMMOBOX_SMG] --;
  16479. MySQLUpdateInt(SQLID[playerid], "AmmoBoxSMG", Inventory[playerid][AmmoBox][AMMOBOX_SMG], "players");
  16480. WeaponData[playerid][weapslot][WeaponAmmo] = GetDefaultWeaponAmmo(weapid);
  16481. SyncPlayerWeapons(playerid);
  16482. format(gstr, sizeof(gstr), "* %s retira algumas munições de uma pequena caixa e coloca na sua %s. *", NameRP(playerid), GetWeaponNameFromID(weapid));
  16483. ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  16484. format(gstr, sizeof(gstr), "Você recarregou sua %s.", GetWeaponNameFromID(weapid));
  16485. SendClientMessage(playerid, COLOR_WHITE, gstr);
  16486. SetPlayerArmedWeapon(playerid, weapid);
  16487. return true;
  16488. }
  16489. else return SysMsg(playerid, "Você não tem caixa de munição para SMG");
  16490. }
  16491. else if(strcmp("Rifle", params, true) == 0)
  16492. {
  16493. if(Inventory[playerid][AmmoBox][AMMOBOX_RIFLE] > 0)
  16494. {
  16495. if(weapid == -1) return SysMsg(playerid,"Nome da arma inválida.");
  16496. if(weapid < 1 || weapid > 47) return SysMsg(playerid,"Arma inválida.");
  16497. if(weapid == 19 || weapid == 20 || weapid == 21) return SysMsg(playerid,"Arma inválida.");
  16498. weapslot = GetWeaponSlot(weapid);
  16499. if(weapslot != 6) return SysMsg(playerid,"Essa arma não pode levar munições para Rifle.");
  16500. if(WeaponData[playerid][weapslot][Weapon] != weapid) return SysMsg(playerid,"Você não possui essa arma.");
  16501. if(WeaponData[playerid][weapslot][WeaponAmmo] == GetDefaultWeaponAmmo(weapid)) return SysMsg(playerid, "Essa arma já esta carregada com o máximo de munições suportada.");
  16502. Inventory[playerid][AmmoBox][AMMOBOX_RIFLE] --;
  16503. MySQLUpdateInt(SQLID[playerid], "AmmoBoxRifle", Inventory[playerid][AmmoBox][AMMOBOX_RIFLE], "players");
  16504. WeaponData[playerid][weapslot][WeaponAmmo] = GetDefaultWeaponAmmo(weapid);
  16505. SyncPlayerWeapons(playerid);
  16506. format(gstr, sizeof(gstr), "* %s retira algumas munições de uma pequena caixa e coloca na sua %s. *", NameRP(playerid), GetWeaponNameFromID(weapid));
  16507. ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  16508. format(gstr, sizeof(gstr), "Você recarregou seu sua %s.", GetWeaponNameFromID(weapid));
  16509. SendClientMessage(playerid, COLOR_WHITE, gstr);
  16510. SetPlayerArmedWeapon(playerid, weapid);
  16511. return true;
  16512. }
  16513. else return SysMsg(playerid, "Você não tem uma caixa de munições para Rifle.");
  16514. }
  16515. else if(strcmp("Assault", params, true) == 0)
  16516. {
  16517. if(Inventory[playerid][AmmoBox][AMMOBOX_ASSAULT] > 0)
  16518. {
  16519. if(weapid == -1) return SysMsg(playerid,"Nome da arma inválida.");
  16520. if(weapid < 1 || weapid > 47) return SysMsg(playerid,"Arma inválida.");
  16521. if(weapid == 19 || weapid == 20 || weapid == 21) return SysMsg(playerid,"Arma inválida.");
  16522. weapslot = GetWeaponSlot(weapid);
  16523. if(weapslot != 5) return SysMsg(playerid,"Essa arma não pode levar Munição Assault Rifle.");
  16524. if(WeaponData[playerid][weapslot][Weapon] != weapid) return SysMsg(playerid,"Você não possui essa arma.");
  16525. if(WeaponData[playerid][weapslot][WeaponAmmo] == GetDefaultWeaponAmmo(weapid)) return SysMsg(playerid, "Essa arma já esta carregada com o máximo de munições suportada.");
  16526. Inventory[playerid][AmmoBox][AMMOBOX_ASSAULT] --;
  16527. MySQLUpdateInt(SQLID[playerid], "AmmoBoxAssaultR", Inventory[playerid][AmmoBox][AMMOBOX_ASSAULT], "players");
  16528. WeaponData[playerid][weapslot][WeaponAmmo] = GetDefaultWeaponAmmo(weapid);
  16529. SyncPlayerWeapons(playerid);
  16530. format(gstr, sizeof(gstr), "* %s retira algumas munições de uma pequena caixa e coloca na sua %s. *", NameRP(playerid), GetWeaponNameFromID(weapid));
  16531. ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  16532. format(gstr, sizeof(gstr), "Você recarregou sua %s.", GetWeaponNameFromID(weapid));
  16533. SendClientMessage(playerid, COLOR_WHITE, gstr);
  16534. SetPlayerArmedWeapon(playerid, weapid);
  16535. return true;
  16536. }
  16537. else return SysMsg(playerid, "Você não possui caixas de munição de rifle de assalto.");
  16538. }
  16539. SysMsg(playerid,"Use: /usarmuni [TIPO DE MUNIÇÃO] - Tipos: 'Pistola', 'Shotgun', 'Rifle', 'Assault', 'SMG'");
  16540. return true;
  16541. }
  16542. CMD:gps(playerid, params[])
  16543. {
  16544. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  16545. if(Inventory[playerid][GPS] == 0 && !IsPlayerInRangeOfPoint(playerid, 2.5, 1244.2136, 165.6529, 2091.3589)) return SysMsg(playerid,"Você não tem um GPS.");
  16546. if(IsInHospital{playerid}) return SysMsg(playerid,"O GPS está sem sinal. (error 01)");
  16547. if(IsDrivingBus{playerid}) return SysMsg(playerid,"O GPS está sem sinal. (error 02)");
  16548. if(IsInHouseID[playerid] != -1) return SysMsg(playerid,"O GPS está sem sinal. (error 03)");
  16549. if(IsInBizzID[playerid] != -1) return SysMsg(playerid,"O GPS está sem sinal. (error 04)");
  16550. new MenuText[64];
  16551. format(MenuText, sizeof(MenuText), "Definir Destino\nSalvar Local");
  16552. if(HasGPSWaypoint[playerid] == 1) strcat(MenuText, "\nRemover Checkpoint");
  16553. strcat(MenuText, "\nSair");
  16554. Dialog_Show(playerid, GPSMenu, DIALOG_STYLE_LIST, "GPS MENU", MenuText, "Selecionar", "Cancelar");
  16555. format(gstr, sizeof(gstr),"* %s visualiza seu gps... *",NameRP(playerid));
  16556. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  16557. return true;
  16558. }
  16559. CMD:navigateto(playerid, params[])
  16560. {
  16561. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  16562. if(Inventory[playerid][GPS] == 0) return SysMsg(playerid,"Você não tem um GPS.");
  16563. if(IsInHospital{playerid}) return SysMsg(playerid,"O GPS está sem sinal. (error 01)");
  16564. if(IsDrivingBus{playerid}) return SysMsg(playerid,"O GPS está sem sinal. (error 02)");
  16565. if(IsInHouseID[playerid] != -1) return SysMsg(playerid,"O GPS está sem sinal. (error 03)");
  16566. if(IsInBizzID[playerid] != -1) return SysMsg(playerid,"O GPS está sem sinal. (error 04)");
  16567. if(isnull(params)) return SysMsg(playerid,"Use: /navigateto(/navto) [Nome completo ou parto do nome de: Casa/Empresa]");
  16568. if(strlen(params) < 3) return SysMsg(playerid,"Por favor, use um termo de pesquisa mais longo.");
  16569. gstr[0] = EOS;
  16570. new matchescount, a = 0, caption[50];
  16571. for(a = 0; a < MAX_HOUSES; a++)
  16572. {
  16573. if(strlen(HouseData[a][HouseDescription]) > 1 && strfind(HouseData[a][HouseDescription], params, true) != -1)
  16574. {
  16575. if(strfind(HouseData[a][HouseDescription], "Flats Montgomery", true) != -1) continue;
  16576. if(strfind(HouseData[a][HouseDescription], "Flats Dillimore", true) != -1) continue;
  16577. if(strfind(HouseData[a][HouseDescription], "Flats Palomino", true) != -1) continue;
  16578. matchescount ++;
  16579. strcat(gstr, "{FF4753}Casa: {FFFFFF}");
  16580. strcat(gstr, HouseData[a][HouseDescription]);
  16581. strcat(gstr, "\n");
  16582. if(strlen(gstr) > 1950) break;
  16583. }
  16584. }
  16585. for(a = 0; a < MAX_BIZZ; a++)
  16586. {
  16587. if(strlen(gstr) > 1950) break;
  16588. if(strlen(BizzData[a][BizzDescription]) > 1 && strfind(BizzData[a][BizzDescription], params, true) != -1)
  16589. {
  16590. matchescount ++;
  16591. strcat(gstr, "{6896F1}Empresa: {FFFFFF}");
  16592. strcat(gstr, BizzData[a][BizzDescription]);
  16593. strcat(gstr, "\n");
  16594. }
  16595. }
  16596. for(a = 0; a < MAX_INTERIORS; a++)
  16597. {
  16598. if(strlen(gstr) > 1950) break;
  16599. if(strlen(Interiors[a][InteriorName]) > 1 && strfind(Interiors[a][InteriorName], params, true) != -1 && Interiors[a][InteriorNavTo] == 1)
  16600. {
  16601. matchescount++;
  16602. strcat(gstr, "{FFCC11}Interior: {FFFFFF}");
  16603. strcat(gstr, Interiors[a][InteriorName]);
  16604. strcat(gstr, "\n");
  16605. }
  16606. }
  16607. if(matchescount == 0) return SysMsg(playerid,"Nenhum local foi encontrado para esse nome pesquisado.");
  16608. if(strlen(gstr) > 1950) SysMsg(playerid,"Quantidade máxima de locais esta sendo mostrado, para o resto, por favor, use um termo mais específico.");
  16609. format(caption, sizeof(caption), "{FBFF00}%i {FFFFFF}possíveis localizações encontradas:", matchescount);
  16610. Dialog_Show(playerid, NavigationDialog, DIALOG_STYLE_LIST, caption, gstr, "Definir", "Cancelar");
  16611. return true;
  16612. }
  16613. CMD:navto(playerid, params[]) return cmd_navigateto(playerid, params);
  16614. CMD:amarrar(playerid, params[])
  16615. {
  16616. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  16617. if(PlayerLevel[playerid] < 4) return SysMsg(playerid,"Você precisa estar level 4 para comprar isso.");
  16618. if(Inventory[playerid][Rope] == 0) return SysMsg(playerid,"Você não tem corda, compre uma, ou dessamare uma pessoa para obter uma corda.");
  16619. if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode amarrar alguém se você mesmo estiver amarrado.");
  16620. new playa = -1;
  16621. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /amarrar [ID ou nome do jogador]");
  16622. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  16623. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  16624. if(playa == playerid) return SysMsg(playerid,"Você não pode amarrar a si mesmo.");
  16625. new vehicleid = GetPlayerVehicleID(playerid);
  16626. new tvehicleid = GetPlayerVehicleID(playa);
  16627. if(vehicleid == 0) return SysMsg(playerid, "Você precisa estar no mesmo carro de alguém para conseguir amarrar.");
  16628. if(vehicleid != tvehicleid) return SysMsg(playerid, "Você precisa estar no mesmo carro que esta pessoa para fazer isso.");
  16629. if(IsTied[playa] > 0) return SysMsg(playerid,"Esse jogador já esta amarrado.");
  16630. new success = random(50);
  16631. if(success < 25)
  16632. {
  16633. format(gstr, sizeof(gstr), "* %s tentou amarrar %s e não conseguiu. *", NameRP(playerid), NameRP(playa));
  16634. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  16635. return true;
  16636. }
  16637. Inventory[playerid][Rope] = 0;
  16638. MySQLUpdateInt(SQLID[playerid], "HasRope", Inventory[playerid][Rope], "players");
  16639. IsTied[playa] = 1200;
  16640. TogglePlayerControllable(playa, 0);
  16641. format(gstr, sizeof(gstr),"Você amarrou %s com sua corda.", NameRP(playa));
  16642. SendClientMessage(playerid, COLOR_WHITE, gstr);
  16643. format(gstr, sizeof(gstr),"* %s pega uma corda de sua mochila e amarra %s. *",NameRP(playerid),NameRP(playa));
  16644. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  16645. return true;
  16646. }
  16647. CMD:desamarra(playerid, params[])
  16648. {
  16649. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  16650. if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode desamarrar alguém quando você estiver amarrado.");
  16651. new playa = -1;
  16652. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /desamarra [ID ou nome do jogador]");
  16653. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  16654. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  16655. if(playa == playerid) return SysMsg(playerid,"Você não pode desamarrar a si mesmo.");
  16656. new Float:tX,Float:tY,Float:tZ;
  16657. GetPlayerPos(playa,tX,tY,tZ);
  16658. if(!IsPlayerInRangeOfPoint(playerid,3.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para fazer isso.");
  16659. if(IsTied[playa] == 0) return SysMsg(playerid,"Essa pessoa não está amarrada.");
  16660. Inventory[playerid][Rope] = 1;
  16661. MySQLUpdateInt(SQLID[playerid], "HasRope", Inventory[playerid][Rope], "players");
  16662. IsTied[playa] = 0;
  16663. TogglePlayerControllable(playa, 1);
  16664. format(gstr, sizeof(gstr),"Você tirou a corda de %s e pegou de volta.", NameRP(playa));
  16665. SendClientMessage(playerid, COLOR_WHITE, gstr);
  16666. format(gstr, sizeof(gstr),"* %s tira a corda de %s. *",NameRP(playerid),NameRP(playa));
  16667. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  16668. return true;
  16669. }
  16670. CMD:an(playerid, params[])
  16671. {
  16672. if(!Logged{playerid}) return true;
  16673. if(AdvertSpamTime[playerid] > 0) return SysMsg(playerid, "Aguarde entre publicar anúncios.");
  16674. if(!AdvertsToggle{playerid}) return SysMsg(playerid, "Você não pode fazer um anúncio como você tem anúncios desativados.");
  16675. if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid,"Você precisa de um celular celular para postar um anúncio.");
  16676. if(IsPlayerInRangeOfPoint(playerid, 5.0, 1213.6669, 227.0907, 1019.5281) || IsPlayerInRangeOfPoint(playerid, 5.0, 754.812927, 102.666061, 70.551887) || IsPlayerInRangeOfPoint(playerid, 5.0, 885.252014, 2262.758544, 238.230422) || IsPlayerInRangeOfPoint(playerid, 2.5, 1182.8987,1360.4265,1002.8235))
  16677. {
  16678. if(isnull(params))
  16679. {
  16680. SysMsg(playerid,"Use: /an [mensagem]");
  16681. SysMsg(playerid,"Examplo: '/an Isto é um teste' irá mostrar como: [Anúncio] Isto é um teste [Seu_Nome, celular: ###]");
  16682. return true;
  16683. }
  16684. if(strlen(params) < 30) return SysMsg(playerid, "Seu anúncio é muito curto. Seja criativo e seja apenas IC.");
  16685. new AdCost = strlen(params) * 5;
  16686. if(IsDonator[playerid] < 3)
  16687. {
  16688. GivePlayerCash(playerid, -AdCost);
  16689. AdvertSpamTime[playerid] = 60;
  16690. format(gstr, sizeof(gstr),"Você fez um anúncio %i caracteres, custando-lhe $%i ($5/Letras).",strlen(params),AdCost);
  16691. SendClientMessage(playerid,COLOR_WHITE,gstr);
  16692. }
  16693. else if(IsDonator[playerid] == 3)
  16694. {
  16695. AdCost = AdCost / 2;
  16696. GivePlayerCash(playerid, -AdCost);
  16697. AdvertSpamTime[playerid] = 60;
  16698. format(gstr, sizeof(gstr),"Você fez um anúncio %i caracteres, custando-lhe $%i. (Donator Bonus)",strlen(params),AdCost);
  16699. SendClientMessage(playerid,COLOR_WHITE,gstr);
  16700. }
  16701. else if(IsDonator[playerid] == 4)
  16702. {
  16703. AdvertSpamTime[playerid] = 60;
  16704. format(gstr, sizeof(gstr),"Você fez um anúncio %i caracteres, custando-lhe $0. (Donator Bonus)",strlen(params),AdCost);
  16705. SendClientMessage(playerid,COLOR_WHITE,gstr);
  16706. }
  16707. FACTIONS[FACTION_NEWS][FactionBankBalance] += floatround(1 * AdCost);
  16708. MySQLUpdateInt(FACTION_NEWS, "BankBalance", FACTIONS[FACTION_NEWS][FactionBankBalance], "factions");
  16709. foreach(new i: Player) if(Logged{i} && AdvertsToggle{i}) SendSplitMessageF(i, COLOR_GREEN, "[Anúncio] %s [%s, celular: %i]", params, NameEx(playerid), PhoneData[playerid][pNumber]);
  16710. AddToLog("advert", gstr);
  16711. return true;
  16712. }
  16713. SysMsg(playerid, "Você só pode criar um anúncio dentro de um escritório da News Corporation");
  16714. return true;
  16715. }
  16716. CMD:anuncioprivado(playerid, params[])
  16717. {
  16718. if(!Logged{playerid}) return true;
  16719. if(AdvertSpamTime[playerid] > 0) return SysMsg(playerid, "Aguarde entre postar anúncios.");
  16720. if(!AdvertsToggle{playerid}) return SysMsg(playerid, "Você não pode fazer um anúncio como você tem anúncios desativados.");
  16721. if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid,"Você precisa de um celular móvel para enviar um anúncio.");
  16722. if(IsPlayerInRangeOfPoint(playerid, 5.0, 1213.6669, 227.0907, 1019.5281) || IsPlayerInRangeOfPoint(playerid, 5.0, 754.812927, 102.666061, 70.551887) || IsPlayerInRangeOfPoint(playerid, 5.0, 885.252014, 2262.758544, 238.230422) || IsPlayerInRangeOfPoint(playerid, 2.5, 1182.8987,1360.4265,1002.8235))
  16723. {
  16724. if(isnull(params))
  16725. {
  16726. SysMsg(playerid,"Use: /anuncioprivado [mensagem]");
  16727. SysMsg(playerid,"Examplo: '/anuncioprivado Isto é um teste' irá mostrar como: [Anúncio privado] Isto é um teste [celular: #]");
  16728. return true;
  16729. }
  16730. if(strlen(params) < 30) return SysMsg(playerid, "Seu anúncio é muito curto. Seja criativo e seja apenas IC.");
  16731. new AdCost = strlen(params) * 8;
  16732. if(IsDonator[playerid] < 3)
  16733. {
  16734. GivePlayerCash(playerid, -AdCost);
  16735. AdvertSpamTime[playerid] = 60;
  16736. format(gstr, sizeof(gstr),"Você fez um anúncio privado com %i caracteres, custando-lhe $%i ($8/Letra).",strlen(params),AdCost);
  16737. SendClientMessage(playerid,COLOR_WHITE,gstr);
  16738. }
  16739. else if(IsDonator[playerid] == 3)
  16740. {
  16741. AdCost = AdCost / 2;
  16742. GivePlayerCash(playerid, -AdCost);
  16743. AdvertSpamTime[playerid] = 60;
  16744. format(gstr, sizeof(gstr),"Você fez um anúncio privado com %i caracteres, custando-lhe $%i. ($8/Letra)",strlen(params),AdCost);
  16745. SendClientMessage(playerid,COLOR_WHITE,gstr);
  16746. }
  16747. else if(IsDonator[playerid] == 4)
  16748. {
  16749. AdvertSpamTime[playerid] = 60;
  16750. format(gstr, sizeof(gstr),"Você fez um anúncio privado com %i caracteres, custando-lhe $%i. ($8/Letra)",strlen(params),AdCost);
  16751. SendClientMessage(playerid,COLOR_WHITE,gstr);
  16752. }
  16753. FACTIONS[FACTION_NEWS][FactionBankBalance] += floatround(1 * AdCost);
  16754. MySQLUpdateInt(FACTION_NEWS, "BankBalance", FACTIONS[FACTION_NEWS][FactionBankBalance], "factions");
  16755. format(gstr, sizeof(gstr),"[Anúncio privado, celular %i] %s", PhoneData[playerid][pNumber], params);
  16756. foreach(new i: Player) if(Logged{i} && AdvertsToggle{i}) SendSplitMessage(i, COLOR_GREEN, gstr);
  16757. format(gstr, sizeof(gstr), "[Admin] ^^ Anúncio privado por %s (ID %i)", NameEx(playerid), playerid);
  16758. AdminBroadcast(gstr, 0);
  16759. AddToLog("advert", gstr);
  16760. return true;
  16761. }
  16762. SysMsg(playerid, "Você só pode criar um anúncio dentro de um escritório da News Corporation");
  16763. return true;
  16764. }
  16765. CMD:maleta(playerid, params[]) return cmd_briefcase(playerid, params);
  16766. CMD:briefcase(playerid, params[])//sistema de maletas
  16767. {
  16768. if(!Logged{playerid}) return true;
  16769. if(Inventory[playerid][Briefcase] == 0) return SysMsg(playerid,"Você não tem uma maleta.");
  16770. new action[10], storeitem[15], storeamount[25];
  16771. if(sscanf(params, "s[10]S()[15]S()[25]", action, storeitem, storeamount)) return SysMsg(playerid,"Use: /maleta [conteúdo / mostrar / esconder / guardar / pegar / fechar / abrir / setcode]");
  16772. if(strcmp("contents", action, true) == 0)
  16773. {
  16774. new itemcount, items[128];
  16775. format(items, 128, "Minha maleta: ");
  16776. if(BriefcaseWeapon[playerid] > 0)
  16777. {
  16778. new weapon, ammo, ammostr[12];
  16779. mysql_format(conn, mquery, sizeof(mquery), "SELECT WeaponID, WeaponAmmo FROM weapons WHERE id = %i", BriefcaseWeapon[playerid]);
  16780. new Cache:result = mysql_query(conn, mquery);
  16781. if(cache_num_rows())
  16782. {
  16783. weapon = cache_get_field_content_int(0, "WeaponID");
  16784. ammo = cache_get_field_content_int(0, "WeaponAmmo");
  16785. format(ammostr, sizeof(ammostr), "%i", ammo);
  16786. itemcount ++;
  16787. strcat(items, "Weapon(");
  16788. strcat(items, GetWeaponNameFromID(weapon));
  16789. strcat(items, " - ");
  16790. strcat(items, ammostr);
  16791. strcat(items, "ammo)");
  16792. cache_delete(result);
  16793. }
  16794. else cache_delete(result);
  16795. }
  16796. if(BriefcaseCash[playerid] > 0)
  16797. {
  16798. new money[10];
  16799. format(money, 10, "%i", BriefcaseCash[playerid]);
  16800. itemcount ++;
  16801. if(itemcount > 1) strcat(items, ", ");
  16802. strcat(items, "Dinheiro($");
  16803. strcat(items, money);
  16804. strcat(items, ")");
  16805. }
  16806. if(BriefcaseWeed[playerid] > 0)
  16807. {
  16808. new drug[10];
  16809. format(drug, 10, "%i", BriefcaseWeed[playerid]);
  16810. itemcount ++;
  16811. if(itemcount > 1) strcat(items, ", ");
  16812. strcat(items, "Marijuana(");
  16813. strcat(items, drug);
  16814. strcat(items, ")");
  16815. }
  16816. if(BriefcaseCocaine[playerid] > 0)
  16817. {
  16818. new drug[10];
  16819. format(drug, 10, "%i", BriefcaseCocaine[playerid]);
  16820. itemcount ++;
  16821. if(itemcount > 1) strcat(items, ", ");
  16822. strcat(items, "Cocaina(");
  16823. strcat(items, drug);
  16824. strcat(items, ")");
  16825. }
  16826. if(itemcount == 0) strcat(items, "nada");
  16827. SendClientMessage(playerid, COLOR_WHITE, items);
  16828. }
  16829. else if(strcmp("mostrar", action, true) == 0)
  16830. {
  16831. if(BriefcaseHolding[playerid] > 0) return SysMsg(playerid,"Você já está segurando sua maleta.");
  16832. if(GetFreePlayerObjectIndex(playerid) == -1) return SysMsg(playerid, "Você está carregando muitos itens em sua pessoa no momento, tente remover alguns itens primeiro.");
  16833. if(isnull(storeitem)) return SysMsg(playerid,"Use: /maleta [mostrar] [D(ireita) OU E(squerda)] -Mão do seu personagem-");
  16834. for(new ao = 0; ao < 6; ao++)
  16835. {
  16836. if(AttachedObjects[playerid][ao][aoModelID] == 0)
  16837. {
  16838. if(strcmp("D", storeitem, true) == 0 || strcmp("direita", storeitem, true) == 0)
  16839. {
  16840. AttachedObjects[playerid][ao][aoModelID] = 19624;
  16841. AttachedObjects[playerid][ao][aoBone] = 6;
  16842. SetPlayerAttachedObject(playerid, ao, 19624, 6, 0.066999, 0.032000, 0.000000, -39.700004, -99.600051, 1.899998);
  16843. BriefcaseHolding[playerid] = 1;
  16844. return true;
  16845. }
  16846. else if(strcmp("E", storeitem, true) == 0 || strcmp("esquerda", storeitem, true) == 0)
  16847. {
  16848. AttachedObjects[playerid][ao][aoModelID] = 19624;
  16849. AttachedObjects[playerid][ao][aoBone] = 5;
  16850. SetPlayerAttachedObject(playerid, ao, 19624, 5, 0.066999, 0.032000, 0.000000, -39.700004, -99.600051, 1.899998);
  16851. BriefcaseHolding[playerid] = 2;
  16852. return true;
  16853. }
  16854. }
  16855. }
  16856. }
  16857. else if(strcmp("esconder", action, true) == 0)
  16858. {
  16859. if(BriefcaseHolding[playerid] == 0) return SysMsg(playerid,"Você não está segurando sua maleta.");
  16860. for(new ao = 0; ao < 6; ao++)
  16861. {
  16862. if(AttachedObjects[playerid][ao][aoModelID] == 19624)
  16863. {
  16864. RemovePlayerAttachedObject(playerid, ao);
  16865. AttachedObjects[playerid][ao][aoModelID] = 0;
  16866. AttachedObjects[playerid][ao][aoBone] = 0;
  16867. BriefcaseHolding[playerid] = 0;
  16868. return true;
  16869. }
  16870. }
  16871. }
  16872. else if(strcmp("guardar", action, true) == 0)
  16873. {
  16874. if(BriefcaseHolding[playerid] == 0) return SysMsg(playerid,"Você precisa estar segurando a maleta primeiro.");
  16875. if(BriefcaseLocked[playerid] == 1) return SysMsg(playerid,"A maleta está fechada.");
  16876. if(isnull(storeitem)) return SysMsg(playerid,"Use: /maleta [guardar] [Arma / Dinheiro / Marijuana / Cocaina]");
  16877. if(strcmp("arma", storeitem, true) == 0)
  16878. {
  16879. if(BriefcaseWeapon[playerid] > 0) return SysMsg(playerid,"Você já possui uma arma na sua maleta.");
  16880. if(isnull(storeamount)) return SysMsg(playerid,"Use: /maleta [guardar] [arma] [Nome da arma (Examplo: 9mm)]");
  16881. new wid = GetWeaponIdFromName(storeamount);
  16882. if(wid < 1) return SysMsg(playerid,"Nome da arma inválida.");
  16883. new Slot = GetWeaponSlot(wid);
  16884. if(WeaponData[playerid][Slot][Weapon] != wid) return SysMsg(playerid,"Você não tem essa arma para guardar.");
  16885. if(wid == 2 || wid == 5 || wid == 6 || wid == 7 || wid == 8 || wid == 9 || wid == 15 || wid == 18 || wid == 25 || wid == 27 || wid == 30 || wid == 31 || wid == 33 || wid == 35 || wid == 36 || wid == 37 || wid == 38 || wid == 42) return SysMsg(playerid,"You cannot put that weapon in your Briefcase as it is too big.");
  16886. if(WeaponData[playerid][Slot][WeaponOrigin] == 3) return SysMsg(playerid, "Você não pode armazenar armas de facção na sua maleta.");
  16887. mysql_format(conn, mquery, sizeof(mquery), "UPDATE weapons SET WeaponPossession = 0, WeaponAmmo = %i WHERE id = %i", WeaponData[playerid][Slot][WeaponAmmo], WeaponData[playerid][Slot][WeaponID]);
  16888. mysql_pquery(conn, mquery);
  16889. BriefcaseWeapon[playerid] = WeaponData[playerid][Slot][WeaponID];
  16890. ResetWeaponVariables(playerid, 0, Slot);
  16891. SetPlayerArmedWeapon(playerid, 0);
  16892. SyncPlayerWeapons(playerid);
  16893. MySQLUpdateInt(SQLID[playerid], "BriefcaseWeapon", BriefcaseWeapon[playerid], "players");
  16894. format(gstr, sizeof(gstr), "Sua %s está dentro da maleta.", GetWeaponNameFromID(wid));
  16895. SendClientMessage(playerid, COLOR_WHITE, gstr);
  16896. format(gstr, sizeof(gstr), "* %s guardar uma %s dentro de sua maleta. *", NameRP(playerid), GetWeaponNameFromID(wid));
  16897. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  16898. }
  16899. else if(strcmp("dinheiro", storeitem, true) == 0)
  16900. {
  16901. if(isnull(storeamount)) return SysMsg(playerid,"Use: /maleta [guardar] [dinheiro] [quantidade]");
  16902. if(!IsNumeric(storeamount)) return SysMsg(playerid,"O valor em dinheiro deve ser um número.");
  16903. new cashamount = strval(storeamount);
  16904. if(cashamount < 1) return SysMsg(playerid,"O valor em dinheiro deve ser pelo menos $1.");
  16905. if(cashamount > Cash[playerid]) return SysMsg(playerid,"Você não possui essa quantidade de dinheiro para armazenar.");
  16906. if(BriefcaseCash[playerid] + cashamount > 1000000) return SysMsg(playerid,"Você só pode ter um máximo de $1,000,000 na sua pasta.");
  16907. BriefcaseCash[playerid] += cashamount;
  16908. GivePlayerCash(playerid, -cashamount);
  16909. MySQLUpdateInt(SQLID[playerid], "BriefcaseCash", BriefcaseCash[playerid], "players");
  16910. format(gstr, sizeof(gstr), "Você guardou $%s dentro da sua maleta. Existe agora um total de $%s.", format_cash(cashamount), format_cash(BriefcaseCash[playerid]));
  16911. SendClientMessage(playerid, COLOR_WHITE, gstr);
  16912. format(gstr, sizeof(gstr), "* %s coloca algum dinheiro na pasta. *", NameRP(playerid));
  16913. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  16914. format(gstr, sizeof(gstr),"[%s] %s(%i) guardou $%i na maleta.", GetServerTimeString(), NameEx(playerid), playerid, cashamount);
  16915. AddToLog("cash", gstr);
  16916. }
  16917. else if(strcmp("marijuana", storeitem, true) == 0)
  16918. {
  16919. if(isnull(storeamount)) return SysMsg(playerid,"Use: /maleta [guardar] [marijuana] [quantidade (g)]");
  16920. if(!IsNumeric(storeamount)) return SysMsg(playerid,"A quantidade precisa ser em número.");
  16921. new amount = strval(storeamount);
  16922. if(amount < 1) return SysMsg(playerid,"O número precisa ser maior que 1.");
  16923. if(amount > Inventory[playerid][Weed]) return SysMsg(playerid,"Você não tem essa quantidade de erva para armazenar.");
  16924. if(BriefcaseWeed[playerid] + amount > 100) return SysMsg(playerid,"Você só pode ter um máximo de 100g em sua maleta.");
  16925. BriefcaseWeed[playerid] += amount;
  16926. Inventory[playerid][Weed] -= amount;
  16927. MySQLUpdateInt(SQLID[playerid], "BriefcaseWeed", BriefcaseWeed[playerid], "players");
  16928. MySQLUpdateInt(SQLID[playerid], "Weed", Inventory[playerid][Weed], "players");
  16929. format(gstr, sizeof(gstr), "Você guardou %ig de marijuana na maleta. Existe agora um total de %ig.", amount, BriefcaseWeed[playerid]);
  16930. SendClientMessage(playerid, COLOR_WHITE, gstr);
  16931. format(gstr, sizeof(gstr), "* %s guarda algumas drogas na maleta *", NameRP(playerid));
  16932. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  16933. }
  16934. else if(strcmp("Cocaina", storeitem, true) == 0)
  16935. {
  16936. if(isnull(storeamount)) return SysMsg(playerid,"Use: /maleta [guardar] [cocaina] [quantidade (g)]");
  16937. if(!IsNumeric(storeamount)) return SysMsg(playerid,"O valor deve ser um número.");
  16938. new amount = strval(storeamount);
  16939. if(amount < 1) return SysMsg(playerid,"O valor deve ser pelo menos 1.");
  16940. if(amount > Inventory[playerid][Cocaine]) return SysMsg(playerid,"Você não tem essa quantidade de cocaina para guardar.");
  16941. if(BriefcaseCocaine[playerid] + amount > 100) return SysMsg(playerid,"Você só pode ter um máximo de 100g em sua maleta.");
  16942. BriefcaseCocaine[playerid] += amount;
  16943. Inventory[playerid][Cocaine] -= amount;
  16944. MySQLUpdateInt(SQLID[playerid], "BriefcaseCocaine", BriefcaseCocaine[playerid], "players");
  16945. MySQLUpdateInt(SQLID[playerid], "Cocaine", Inventory[playerid][Cocaine], "players");
  16946. format(gstr, sizeof(gstr), "Você colocou %ig de cocaina na sua maleta. Existe agora um total de %ig.", amount, BriefcaseCocaine[playerid]);
  16947. SendClientMessage(playerid, COLOR_WHITE, gstr);
  16948. format(gstr, sizeof(gstr), "* %s coloca algumas drogas em sua pasta. *", NameRP(playerid));
  16949. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  16950. }
  16951. }
  16952. else if(strcmp("pegar", action, true) == 0)
  16953. {
  16954. if(BriefcaseHolding[playerid] == 0) return SysMsg(playerid,"Você precisa estar segurando a maleta primeiro.");
  16955. if(BriefcaseLocked[playerid] == 1) return SysMsg(playerid,"A maleta está fechada.");
  16956. if(isnull(storeitem)) return SysMsg(playerid,"Use: /maleta [pegar] [Arma / Dinheiro / Marijuana / Cocaina]");
  16957. if(strcmp("weapon", storeitem, true) == 0)
  16958. {
  16959. if(BriefcaseWeapon[playerid] == 0) return SysMsg(playerid,"Você não tem arma na sua maleta.");
  16960. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM weapons WHERE id = %i", BriefcaseWeapon[playerid]);
  16961. new Cache:result = mysql_query(conn, mquery);
  16962. if(cache_num_rows())
  16963. {
  16964. new wid = cache_get_field_content_int(0, "WeaponID");
  16965. new slot = GetWeaponSlot(wid);
  16966. if(WeaponData[playerid][slot][Weapon] > 0) return SysMsg(playerid,"Você já possui uma arma do mesmo tipo em seu inventário.");
  16967. WeaponData[playerid][slot][WeaponID] = BriefcaseWeapon[playerid];
  16968. WeaponData[playerid][slot][Weapon] = wid;
  16969. WeaponData[playerid][slot][WeaponAmmo] = cache_get_field_content_int(0, "WeaponAmmo");
  16970. WeaponData[playerid][slot][WeaponPossession] = cache_get_field_content_int(0, "WeaponPossession");
  16971. WeaponData[playerid][slot][wCreatorSQLID] = cache_get_field_content_int(0, "CreatorSQLID");
  16972. WeaponData[playerid][slot][wOwnerSQLID] = cache_get_field_content_int(0, "OwnerSQLID");
  16973. WeaponData[playerid][slot][WeaponType] = GetWeaponType(WeaponData[playerid][slot][Weapon]);
  16974. WeaponData[playerid][slot][WeaponOrigin] = cache_get_field_content_int(0, "WeaponOrigin");
  16975. WeaponData[playerid][slot][WeaponTimestamp] = cache_get_field_content_int(0, "Timestamp");
  16976. cache_delete(result);
  16977. BriefcaseWeapon[playerid] = 0;
  16978. SyncPlayerWeapons(playerid);
  16979. SetPlayerArmedWeapon(playerid, wid);
  16980. MySQLUpdateInt(SQLID[playerid], "BriefcaseWeapon", BriefcaseWeapon[playerid], "players");
  16981. mysql_format(conn, mquery, sizeof(mquery), "UPDATE weapons SET WeaponPossession = 1 WHERE id = %i", WeaponData[playerid][slot][WeaponID]);
  16982. mysql_pquery(conn, mquery);
  16983. format(gstr, sizeof(gstr), "Você removeu uma %s da sua maleta.", GetWeaponNameFromID(wid));
  16984. SendClientMessage(playerid, COLOR_WHITE, gstr);
  16985. format(gstr, sizeof(gstr), "* %s pega uma %s da sua maleta. *", NameRP(playerid), GetWeaponNameFromID(wid));
  16986. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  16987. }
  16988. else return SysMsg(playerid, "Ocorreu um Erro, contate um admin com este código de erro: BCGW.") && cache_delete(result);
  16989. }
  16990. else if(strcmp("dinheiro", storeitem, true) == 0)
  16991. {
  16992. if(isnull(storeamount)) return SysMsg(playerid,"Use: /maleta [pegar] [dinheiro] [quantidade]");
  16993. if(!IsNumeric(storeamount)) return SysMsg(playerid,"O valor deve ser um número.");
  16994. new cashamount = strval(storeamount);
  16995. if(cashamount < 1) return SysMsg(playerid,"O valor deve ser maior que $1.");
  16996. if(cashamount > BriefcaseCash[playerid]) return SysMsg(playerid,"Você não tem essa quantidade de dinheiro na sua maleta.");
  16997. BriefcaseCash[playerid] -= cashamount;
  16998. GivePlayerCash(playerid, cashamount);
  16999. MySQLUpdateInt(SQLID[playerid], "BriefcaseCash", BriefcaseCash[playerid], "players");
  17000. format(gstr, sizeof(gstr), "Você pegou $%s da sua maleta. Existe agora um total de $%s.", format_cash(cashamount), format_cash(BriefcaseCash[playerid]));
  17001. SendClientMessage(playerid, COLOR_WHITE, gstr);
  17002. format(gstr, sizeof(gstr), "* %s pega algum dinheiro de dentro da maleta. *", NameRP(playerid));
  17003. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  17004. format(gstr, sizeof(gstr),"[%s] %s(%i) pega $%i da sua maleta.", GetServerTimeString(), NameEx(playerid), playerid, cashamount);
  17005. AddToLog("cash", gstr);
  17006. }
  17007. else if(strcmp("marijuana", storeitem, true) == 0)
  17008. {
  17009. if(isnull(storeamount)) return SysMsg(playerid,"Use: /maleta [pgar] [marijuana] [quantidade (g)]");
  17010. if(!IsNumeric(storeamount)) return SysMsg(playerid,"O valor deve ser um número.");
  17011. new amount = strval(storeamount);
  17012. if(amount < 1) return SysMsg(playerid,"O valor deve ser pelo menos 1.");
  17013. if(amount > BriefcaseWeed[playerid]) return SysMsg(playerid,"Você não tem essa quantidade.");
  17014. if(Inventory[playerid][Weed] + amount > DRUG_MAX_WEED) return SysMsg(playerid,"Você não pode carregar essa quantidade de drogas.");
  17015. BriefcaseWeed[playerid] -= amount;
  17016. Inventory[playerid][Weed] += amount;
  17017. MySQLUpdateInt(SQLID[playerid], "BriefcaseWeed", BriefcaseWeed[playerid], "players");
  17018. MySQLUpdateInt(SQLID[playerid], "Weed", Inventory[playerid][Weed], "players");
  17019. format(gstr, sizeof(gstr), "Você pegou %ig de marijuana de sua maleta. Existe agora um total de %ig.", amount, BriefcaseWeed[playerid]);
  17020. SendClientMessage(playerid, COLOR_WHITE, gstr);
  17021. format(gstr, sizeof(gstr), "* %s pega algumas drogas de sua maleta. *", NameRP(playerid));
  17022. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  17023. }
  17024. else if(strcmp("Cocaina", storeitem, true) == 0)
  17025. {
  17026. if(strlen(storeamount) == 0) return SysMsg(playerid,"Use: /maleta [pegar] [cocaina] [quantidade (g)]");
  17027. if(!IsNumeric(storeamount)) return SysMsg(playerid,"O valor deve ser um número.");
  17028. new amount = strval(storeamount);
  17029. if(amount < 1) return SysMsg(playerid,"O valor deve ser pelo menos 1.");
  17030. if(amount > BriefcaseCocaine[playerid]) return SysMsg(playerid,"Você não tem essa quantidade.");
  17031. if(Inventory[playerid][Cocaine] + amount > DRUG_MAX_COCAINE) return SysMsg(playerid,"Você não pode carregar essa quantidade de drogas.");
  17032. BriefcaseCocaine[playerid] -= amount;
  17033. Inventory[playerid][Cocaine] += amount;
  17034. MySQLUpdateInt(SQLID[playerid], "BriefcaseCocaine", BriefcaseCocaine[playerid], "players");
  17035. MySQLUpdateInt(SQLID[playerid], "Cocaine", Inventory[playerid][Cocaine], "players");
  17036. format(gstr, sizeof(gstr), "Você pegou %ig de cocaina de sua maleta. Existe agora um total de %ig.", amount, BriefcaseCocaine[playerid]);
  17037. SendClientMessage(playerid, COLOR_WHITE, gstr);
  17038. format(gstr, sizeof(gstr), "* %s pega algumas drogas de sua maleta. *", NameRP(playerid));
  17039. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  17040. }
  17041. }
  17042. else if(strcmp("fechar", action, true) == 0)
  17043. {
  17044. if(BriefcaseHolding[playerid] == 0) return SysMsg(playerid,"Você precisa estar segurando a maleta primeiro.");
  17045. if(BriefcaseLocked[playerid] == 1) return SysMsg(playerid,"A maleta já está fechada.");
  17046. BriefcaseLocked[playerid] = 1;
  17047. MySQLUpdateInt(SQLID[playerid], "BriefcaseLocked", BriefcaseLocked[playerid], "players");
  17048. SendClientMessage(playerid, COLOR_WHITE, "Você fechou sua maleta. (Lembre-se do seu código se você tiver um conjunto ou você não poderá desbloqueá-lo)");
  17049. format(gstr, sizeof(gstr), "* %s fecha os clipes em sua maleta para trancá-la. *", NameRP(playerid));
  17050. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  17051. }
  17052. else if(strcmp("abrir", action, true) == 0)
  17053. {
  17054. if(BriefcaseHolding[playerid] == 0) return SysMsg(playerid,"Você precisa estar segurando a maleta primeiro.");
  17055. if(BriefcaseLocked[playerid] == 0) return SysMsg(playerid,"A maleta já está aberta.");
  17056. if(BriefcaseCode[playerid] > 0)
  17057. {
  17058. if(strlen(storeitem) == 0) return SysMsg(playerid,"Use: /maleta [abrir] [Code]");
  17059. if(!IsNumeric(storeitem)) return SysMsg(playerid,"o codigo precisa ser em números.");
  17060. new casecode = strval(storeitem);
  17061. if(casecode < 1000 || casecode > 9999) return SysMsg(playerid,"Código só pode ser entre 1000 à 9999.");
  17062. if(casecode != BriefcaseCode[playerid])
  17063. {
  17064. SendClientMessage(playerid, COLOR_WHITE, "Codego errado.");
  17065. format(gstr, sizeof(gstr), "* A maleta de %s falha ao tentar abrir usando um código errado. *", NameRP(playerid));
  17066. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  17067. return true;
  17068. }
  17069. BriefcaseLocked[playerid] = 0;
  17070. MySQLUpdateInt(SQLID[playerid], "BriefcaseLocked", BriefcaseLocked[playerid], "players");
  17071. SendClientMessage(playerid, COLOR_WHITE, "Você destrancou sua maleta.");
  17072. format(gstr, sizeof(gstr), "* %s abre sua maleta após inserir um código. *", NameRP(playerid));
  17073. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  17074. }
  17075. else
  17076. {
  17077. BriefcaseLocked[playerid] = 0;
  17078. MySQLUpdateInt(SQLID[playerid], "BriefcaseLocked", BriefcaseLocked[playerid], "players");
  17079. SendClientMessage(playerid, COLOR_WHITE, "Você destrancou sua maleta.");
  17080. format(gstr, sizeof(gstr), "* %s destrava sua maleta e à abre. *", NameRP(playerid));
  17081. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  17082. }
  17083. }
  17084. else if(strcmp("setcode", action, true) == 0)
  17085. {
  17086. if(BriefcaseHolding[playerid] == 0) return SysMsg(playerid,"Você precisa estar segurando a maleta primeiro.");
  17087. if(BriefcaseLocked[playerid] == 1) return SysMsg(playerid,"A maleta deve estar destrancada para fazer isso..");
  17088. if(strlen(storeitem) == 0) return SysMsg(playerid,"Use: /maleta [SetCode] [novo code] *use 0 para remover o code*");
  17089. if(!IsNumeric(storeitem)) return SysMsg(playerid,"Use apenas números.");
  17090. new casecode = strval(storeitem);
  17091. if(casecode == 0)
  17092. {
  17093. BriefcaseCode[playerid] = 0;
  17094. MySQLUpdateInt(SQLID[playerid], "BriefcaseCode", BriefcaseCode[playerid], "players");
  17095. SendClientMessage(playerid, COLOR_WHITE, "Code removido.");
  17096. return true;
  17097. }
  17098. if(casecode < 1000 || casecode > 9999) return SysMsg(playerid,"Código só pode ser entre 1000 à 9999.");
  17099. if(casecode == BriefcaseCode[playerid]) return SysMsg(playerid,"Esse code já está sendo usado.");
  17100. BriefcaseCode[playerid] = casecode;
  17101. MySQLUpdateInt(SQLID[playerid], "BriefcaseCode", BriefcaseCode[playerid], "players");
  17102. format(gstr, sizeof(gstr), "Briefcase code set to %i. (Don't forget it!)", BriefcaseCode[playerid]);
  17103. SendClientMessage(playerid, COLOR_WHITE, gstr);
  17104. }
  17105. return true;
  17106. }
  17107. CMD:o(playerid, params[])
  17108. {
  17109. if(!Logged{playerid}) return true;
  17110. if(Muted[playerid] > 0) return SysMsgF(playerid,"Você está mudo. (%i minutos restantes)", Muted[playerid]);
  17111. if(ToggleOOC == 0) return SysMsg(playerid,"Out of Character chat está desativado.");
  17112. if(IsDonator[playerid] >= 2 && OOCToggle[playerid] == 1) return SysMsg(playerid,"Mensagem doador: Seu OOC chat está desativado.");
  17113. if(gOOCDelay > 0) return SysMsg(playerid,"O chat global OOC é limitado a uma mensagem a cada 3 segundos. Por favor, espere.");
  17114. if(isnull(params)) return SysMsg(playerid,"Use: Global OOC Chat: /o [mensagem]");
  17115. new color = COLOR_OOC;
  17116. if(IsDonator[playerid] >= 2 && GoldToggle[playerid] == 1) color = COLOR_DONATE;
  17117. foreach(new i: Player) if(Logged{i}) if(OOCToggle[i] == 0) SendClientMessageF(i, color, "(( [OOC] %s diz: %s ))",NameEx(playerid),params);
  17118. gOOCDelay = 3;
  17119. return true;
  17120. }
  17121. CMD:b(playerid, params[])
  17122. {
  17123. if(!Logged{playerid}) return true;
  17124. if(Muted[playerid] > 0) return SysMsgF(playerid, "Você está mudo. (%i minutos restantes)", Muted[playerid]);
  17125. if(UsingCCTV{playerid}) return SysMsg(playerid, "Você não pode usar /b enquanto visualiza câmeras de CCTV.");
  17126. if(!LocalOOCEnabled{playerid}) return SysMsg(playerid, "Você tem atualmente OOC local chat desativado (/togb).");
  17127. if(isnull(params)) return SysMsg(playerid,"Use: Local OOC Chat: /b [mensagem]");
  17128. new oocPlayersInArea = 0;
  17129. new Float:myPos[3], vWorld = GetPlayerVirtualWorld(playerid);
  17130. GetPlayerPos(playerid, myPos[0], myPos[1], myPos[2]);
  17131. foreach(new i: Player)
  17132. {
  17133. if(GetPlayerVirtualWorld(i) == vWorld && IsPlayerInRangeOfPoint(i, 25.0, myPos[0], myPos[1], myPos[2]) && LocalOOCEnabled{i})
  17134. {
  17135. SendSplitMessageF(i, COLOR_LIGHTBLUE, "(( [OOC] %s: %s ))",NameEx(playerid),params);
  17136. if(i != playerid && GetPlayerState(i) != 9) oocPlayersInArea++;
  17137. }
  17138. }
  17139. if(oocPlayersInArea == 0) SysMsg(playerid, "Ninguém na área tem Chat OOC local habilitado.");
  17140. return true;
  17141. }
  17142. CMD:togb(playerid)
  17143. {
  17144. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  17145. LocalOOCEnabled{playerid} = !LocalOOCEnabled{playerid};
  17146. if(!LocalOOCEnabled{playerid})
  17147. {
  17148. SendClientMessage(playerid, COLOR_WHITE, "O {009FFB}Local OOC {FFFFFF}está desativado para você.");
  17149. SetPlayerChatBubble(playerid, "(( Desativado /b ))", COLOR_LIGHTBLUE, 15.0, 1000);
  17150. }
  17151. else
  17152. {
  17153. SendClientMessage(playerid, COLOR_WHITE, "O {009FFB}Local OOC {FFFFFF}chat Channel agora está habilitado para você.");
  17154. SetPlayerChatBubble(playerid, "(( Ativado /b ))", COLOR_LIGHTBLUE, 15.0, 1000);
  17155. }
  17156. return true;
  17157. }
  17158. CMD:dooc(playerid, params[])
  17159. {
  17160. if(!Logged{playerid}) return true;
  17161. if(IsDonator[playerid] == 0) return SysMsg(playerid,"Esse recurso é apenas para donadores.");
  17162. if(GlobalDOOCMute) return SysMsg(playerid,"Este bate-papo foi desativado globalmente, oh bem.");
  17163. if(ToggleDOOC{playerid}) return SysMsg(playerid,"Você desativou esse bate-papo. Use /TogDooc");
  17164. if(DOOCMuted[playerid] > 1) return SysMsg(playerid, "Você é silenciado por um Doador OOC.");
  17165. if(isnull(params)) return SysMsg(playerid,"Use: Donator OOC Chat: /dooc [mensagem]");
  17166. foreach(new i: Player)
  17167. {
  17168. if(Logged{i})
  17169. {
  17170. if(IsDonator[i] > 0 && !ToggleDOOC{i})
  17171. {
  17172. SendSplitMessageF(i, COLOR_DONATE, "[Donator OOC] %s (Level %i) diz: %s",NameEx(playerid), IsDonator[playerid], params);
  17173. }
  17174. }
  17175. }
  17176. //IRC_SayF(IRCBot, IRC_DOOC_CHANNEL, "7[Donator OOC] %s (Level %i) says: %s",NameEx(playerid), IsDonator[playerid], params);
  17177. return true;
  17178. }
  17179. CMD:g(playerid, params[])
  17180. {
  17181. if(!Logged{playerid}) return true;
  17182. if(Muted[playerid] > 0) return SysMsgF(playerid,"Você está mudo. (%i minutos restantes)", Muted[playerid]);
  17183. if(UsingCCTV{playerid}) return SysMsg(playerid,"Você não pode fazer isso enquanto estiver usando o CCTV.");
  17184. if(IsSpectating[playerid] != -1) return SysMsg(playerid, "Você não pode fazer isso enquanto espectador.");
  17185. if(isnull(params)) return SysMsg(playerid,"Use: Gritar!: /g [mensagem]");
  17186. if(GetPlayerVehicleID(playerid) == 0 && ShoutAnimToggle{playerid})
  17187. {
  17188. StopLoopingAnim(playerid);
  17189. OnePlayAnim(playerid, "RIOT", "RIOT_shout", 3.0, 0, 0, 0, 0, 0);
  17190. }
  17191. if(UsingAccent[playerid] == 1) format(gstr, sizeof(gstr),"%s grita: [sotaque %s] %s", NameRP(playerid), Accent[playerid], params);
  17192. else format(gstr, sizeof(gstr),"%s grita: %s", NameRP(playerid), params);
  17193. ProxDetector(42.0,playerid, gstr,COLOR_ORANGE,COLOR_ORANGE,COLOR_ORANGE,COLOR_ORANGE,COLOR_ORANGE);
  17194. if(UsingAccent[playerid] == 1) format(gstr, sizeof(gstr),"[sotaque %s] %s", Accent[playerid], params);
  17195. else format(gstr, sizeof(gstr),"%s", params);
  17196. if(UsingAccent[playerid] == 1) SendToInRangeBuilding(playerid, 15, COLOR_ORANGE, Accent[playerid], params);
  17197. else SendToInRangeBuilding(playerid, 15, COLOR_ORANGE, "", params);
  17198. SetPlayerChatBubble(playerid, params, COLOR_ORANGE, 15.0, 6000);
  17199. return true;
  17200. }
  17201. CMD:s(playerid, params[])
  17202. {
  17203. if(!Logged{playerid}) return true;
  17204. if(Muted[playerid] > 0) return SysMsgF(playerid,"Você está mudo. (%i minutos restantes)", Muted[playerid]);
  17205. new playa = -1, msg[150], name[MAX_PLAYER_NAME];
  17206. if(sscanf(params, "s[24]s[150]", name, msg)) return SysMsg(playerid,"Use: Sussuro: /s [ID ou nome do jogador] [mensagem]");
  17207. if(strval(name) >= 500)
  17208. {
  17209. foreach(new p: Player)
  17210. {
  17211. if(MaskLabelNumber[p] == strval(name))
  17212. {
  17213. playa = p;
  17214. }
  17215. }
  17216. }
  17217. else playa = GetPlayerIDs(name);
  17218. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  17219. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  17220. if(playa == playerid) return SysMsg(playerid,"Jogador inválido. Não pode ser você mesmo.");
  17221. if(IsSpectating[playa] >= 0) return SysMsg(playerid,"Você deve estar perto do jogador para sussurrar.");
  17222. new Float:tX,Float:tY,Float:tZ;
  17223. GetPlayerPos(playa,tX,tY,tZ);
  17224. if(!IsPlayerInRangeOfPoint(playerid,2.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para sussurrar.");
  17225. if(UsingAccent[playerid] == 1) format(gstr, sizeof(gstr),"%s sussurra para você: [sotaque %s] %s", NameRP(playerid), Accent[playerid], msg);
  17226. else format(gstr, sizeof(gstr),"%s whispers to you: %s", NameRP(playerid), msg);
  17227. SendSplitMessage(playa,0x565F91FF,gstr);
  17228. format(gstr, sizeof(gstr),"Você sussurra para %s: %s", NameRP(playa), msg);
  17229. SendSplitMessage(playerid,0x565F91FF,gstr);
  17230. format(gstr, sizeof(gstr),"* %s sussurra algo para %s... *", NameRP(playerid), NameRP(playa));
  17231. SetPlayerChatBubble(playerid, gstr, COLOR_EMOTE, 15.0, 6000);
  17232. //ProxDetector(10.0,playerid,gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  17233. return true;
  17234. }
  17235. //CMD:low(playerid, params[]) return cmd_baixo(playerid, params);
  17236. CMD:baixo(playerid, params[])
  17237. {
  17238. if(!Logged{playerid}) return true;
  17239. if(Muted[playerid] > 0) return SysMsgF(playerid, "Você está mudo. (%i minutos restantes)", Muted[playerid]);
  17240. if(UsingCCTV{playerid}) return SysMsg(playerid,"Você não pode fazer isso enquanto usa o CCTV.");
  17241. if(isnull(params)) return SysMsg(playerid,"Use: Conversa Baixo: /baixo [mensagem]");
  17242. new vid = GetPlayerVehicleID(playerid);
  17243. if(vid > 0 && VehicleHasWindows(vid))
  17244. {
  17245. if(WindowState{vid} == WINDOWS_CLOSED)
  17246. {
  17247. if(UsingAccent[playerid] == 1) format(gstr, sizeof(gstr),"[Baixo] %s diz: [sotaque %s] %s", NameRP(playerid), Accent[playerid], params);
  17248. else format(gstr, sizeof(gstr),"[Quiet] %s says: %s", NameRP(playerid), params);
  17249. foreach(new i: Player)
  17250. {
  17251. new VehId = GetPlayerVehicleID(i);
  17252. if(VehId == vid) SendSplitMessage(i,COLOR_FADE3,gstr);
  17253. }
  17254. }
  17255. else
  17256. {
  17257. if(UsingAccent[playerid] == 1) format(gstr, sizeof(gstr),"[Baixo] %s diz: [sotaque %s] %s", NameRP(playerid), Accent[playerid], params);
  17258. else format(gstr, sizeof(gstr),"[Quiet] %s says: %s", NameRP(playerid), params);
  17259. ProxDetector(4.0, playerid, gstr, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4, COLOR_FADE5);
  17260. }
  17261. }
  17262. else
  17263. {
  17264. if(UsingAccent[playerid] == 1) format(gstr, sizeof(gstr),"[Baixo] %s diz: [sotaque %s] %s", NameRP(playerid), Accent[playerid], params);
  17265. else format(gstr, sizeof(gstr),"[Quiet] %s says: %s", NameRP(playerid), params);
  17266. ProxDetector(4.0, playerid, gstr, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4, COLOR_FADE5);
  17267. }
  17268. return true;
  17269. }
  17270. CMD:a(playerid, params[])
  17271. {
  17272. if(!IsPlayerAdminLevelOK(playerid, 1)) return false;
  17273. if(isnull(params)) return SysMsg(playerid,"Use: Admin Chat: /a [mensagem]");
  17274. foreach(new i: Player)
  17275. {
  17276. if(IsPlayerAdminLevelOK(i,1))
  17277. {
  17278. SendSplitMessageF(i, COLOR_RED, "[Admin] %s: %s",NameEx(playerid),params);
  17279. }
  17280. }
  17281. //IRC_SayF(IRCBot, IRC_ADMIN_CHANNEL, "4[Admin] %s: %s", NameEx(playerid), params);
  17282. return true;
  17283. }
  17284. CMD:r(playerid, params[])
  17285. {
  17286. if(!Logged{playerid}) return true;
  17287. if(Muted[playerid] > 0) return SysMsgF(playerid,"Você está mudo. (%i minutos restantes)", Muted[playerid]);
  17288. if(Inventory[playerid][Radio] == 0) return SysMsg(playerid,"Você não tem um Radio.");
  17289. if(RadioPoweredOn[playerid] == 0) return SysMsg(playerid,"Seu Rádio não está ligado. (/ron /roff)");
  17290. if(IsJailed[playerid] == 1 || PlayerImprisoned{playerid}) return SysMsg(playerid,"Seu rádio foi confiscado e será devolvido após a sua libertação.");
  17291. if(IsCuffed[playerid] == 1) return SysMsg(playerid, "Você não pode usar o seu rádio enquanto estiver algemado.");
  17292. if(isnull(params)) return SysMsg(playerid,"Use: Radio Chat: /r [mensagem]");
  17293. foreach(new i: Player)
  17294. {
  17295. if(Logged{i} && RadioFrequency[playerid] == RadioFrequency[i] && RadioPoweredOn[i] == 1)
  17296. {
  17297. if(i != playerid) SendSplitMessageF(i, 0x967100FF, "[Radio - %i MHz] %s: %s", RadioFrequency[playerid], NameRP(playerid), params);
  17298. }
  17299. }
  17300. format(gstr, sizeof(gstr), "%s diz (radio): %s", NameRP(playerid), params);
  17301. ProxDetector(15.0, playerid, gstr, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4, COLOR_FADE5);
  17302. return true;
  17303. }
  17304. CMD:lr(playerid, params[])
  17305. {
  17306. if(!Logged{playerid}) return true;
  17307. if(Muted[playerid] > 0) return SysMsgF(playerid, "Você está mudo. (%i minutos restantes)", Muted[playerid]);
  17308. if(Inventory[playerid][Radio] == 0) return SysMsg(playerid,"Você não tem um Radio.");
  17309. if(RadioPoweredOn[playerid] == 0) return SysMsg(playerid,"Seu Rádio não está ligado. (/ron /roff)");
  17310. if(IsJailed[playerid] == 1 || PlayerImprisoned{playerid}) return SysMsg(playerid,"Seu rádio foi confiscado e será devolvido após a sua libertação.");
  17311. if(IsCuffed[playerid] == 1) return SysMsg(playerid, "Você não pode usar o seu rádio enquanto estiver algemado.");
  17312. if(isnull(params)) return SysMsg(playerid,"Use: Baixo no Radio: /lr [mensagem] *Sussurro em rádio*");
  17313. foreach(new i: Player)
  17314. {
  17315. if(Logged{i} && RadioFrequency[playerid] == RadioFrequency[i] && RadioPoweredOn[i] == 1)
  17316. {
  17317. if(i != playerid) SendSplitMessageF(i, 0x967100FF, "[Radio - %i MHz] [Baixo] %s: %s", RadioFrequency[playerid], NameRP(playerid), params);
  17318. }
  17319. }
  17320. format(gstr, sizeof(gstr), "[Baixo] %s diz (radio): %s", NameRP(playerid), params);
  17321. ProxDetector(4.0, playerid, gstr, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4, COLOR_FADE5);
  17322. return true;
  17323. }
  17324. //end of chats rtune
  17325. CMD:rfreq(playerid, params[])
  17326. {
  17327. if(!Logged{playerid}) return true;
  17328. if(Inventory[playerid][Radio] == 0) return SysMsg(playerid,"Você não tem um Radio.");
  17329. if(RadioPoweredOn[playerid] == 0) return SysMsg(playerid,"Seu Rádio não está ligado. (/ron /roff)");
  17330. new Frequency;
  17331. if(sscanf(params, "i", Frequency)) return SysMsg(playerid,"Use: /rfreq [frequência do canal]");
  17332. if(Frequency < 1000 || Frequency > 9999) return SysMsg(playerid,"A frequência do canal deve estar entre 1000 MHz e 9999 MHz.");
  17333. if(Frequency == RadioFrequency[playerid]) return SysMsg(playerid,"A frequência do canal já está configurada para isso.");
  17334. new i, allow = 1;
  17335. for(i = 0; i < MAX_FACTIONS; i++)
  17336. {
  17337. if(FACTIONS[i][FactionRadioChannel] == Frequency && Faction[playerid] != i)
  17338. {
  17339. allow = 0;
  17340. break;
  17341. }
  17342. }
  17343. if(allow == 0) return SysMsg(playerid, "A frequência do canal é reservada.");
  17344. RadioFrequency[playerid] = Frequency;
  17345. RadioSlot[playerid][RadioSlotUsed[playerid] - 1] = Frequency;
  17346. new sub[32];
  17347. format(sub, sizeof(sub), "RadioSlot%i", RadioSlotUsed[playerid]);
  17348. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET RadioFrequency = %i, %s = %i WHERE id = %i", RadioFrequency[playerid], sub, RadioFrequency[playerid], SQLID[playerid]);
  17349. mysql_pquery(conn, mquery);
  17350. SysMsgF(playerid, "Radio Re-Definido para frquência %i MHz.", RadioFrequency[playerid]);
  17351. format(gstr, sizeof(gstr), "* %s liga seu Radio e define uma frequência. *", NameRP(playerid));
  17352. ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  17353. return true;
  17354. }
  17355. CMD:rslot(playerid, params[])
  17356. {
  17357. if(!Logged{playerid}) return true;
  17358. if(Inventory[playerid][Radio] == 0) return SysMsg(playerid, "Você não tem um rádio.");
  17359. if(RadioPoweredOn[playerid] == 0) return SysMsg(playerid, "O rádio não está ligado. (/ron)");
  17360. new slot;
  17361. if(sscanf(params, "i", slot)) return SysMsg(playerid, "Use: /rslot [Radio slot 1-3]");
  17362. if(slot <= 0) return SysMsg(playerid, "Slot de rádio não pode ser menor do que 1.");
  17363. if(slot >= 4) return SysMsg(playerid, "Slot de rádio não pode ser maior do que 3.");
  17364. if(RadioSlotUsed[playerid] == slot) return SysMsg(playerid, "Você já está usando este slot.");
  17365. RadioSlotUsed[playerid] = slot;
  17366. RadioFrequency[playerid] = RadioSlot[playerid][slot - 1];
  17367. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET RadioFrequency = %i, RadioSlotInUse = %i WHERE id = %i", RadioFrequency[playerid], RadioSlotUsed[playerid], SQLID[playerid]);
  17368. mysql_pquery(conn, mquery);
  17369. SysMsgF(playerid, "O slot de rádio mudou para %i, que está sintonizado para %i", slot, RadioFrequency[playerid]);
  17370. //format(gstr, sizeof(gstr), "* %s turns a smaller dial on their radio, switching their radio slot. *", NameRP(playerid));
  17371. //ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  17372. return true;
  17373. }
  17374. CMD:rinfo(playerid, params[])
  17375. {
  17376. if(!Logged{playerid}) return true;
  17377. if(Inventory[playerid][Radio] == 0) return SysMsg(playerid,"Você não tem um Radio.");
  17378. if(IsJailed[playerid] == 1 || PlayerImprisoned{playerid}) return SysMsg(playerid,"Seu rádio foi confiscado e será devolvido após a sua libertação.");
  17379. new onoff[4], color[7];
  17380. switch(RadioPoweredOn[playerid])
  17381. {
  17382. case 0:
  17383. {
  17384. format(onoff, sizeof(onoff), "off");
  17385. format(color, sizeof(color), "FF3414");
  17386. }
  17387. case 1:
  17388. {
  17389. format(onoff, sizeof(onoff), "on");
  17390. format(color, sizeof(color), "18A300");
  17391. }
  17392. }
  17393. SendClientMessageF(playerid, COLOR_WHITE, "Seu rádio está atualmente {%s}%s{FFFFFF} e está sintonizado para {38C0FF}%i{FFFFFF} MHz no slot %i.", color, onoff, RadioFrequency[playerid], RadioSlotUsed[playerid]);
  17394. SendClientMessageF(playerid, COLOR_WHITE, "Os seus slots de rádio estão atualmente configurados para as seguintes frequências: Slot 1: %i, Slot 2: %i e slot 3: %i.", RadioSlot[playerid][0], RadioSlot[playerid][1], RadioSlot[playerid][2]);
  17395. return true;
  17396. }
  17397. CMD:ron(playerid, params[])
  17398. {
  17399. if(!Logged{playerid}) return true;
  17400. if(Inventory[playerid][Radio] == 0) return SysMsg(playerid,"Você não tem um Radio.");
  17401. if(RadioPoweredOn[playerid] == 1) return SysMsg(playerid,"Seu rádio já está ligado. (/roff)");
  17402. if(IsJailed[playerid] == 1 || PlayerImprisoned{playerid}) return SysMsg(playerid,"Seu rádio foi confiscado e será devolvido após a sua libertação.");
  17403. RadioPoweredOn[playerid] = 1;
  17404. MySQLUpdateInt(SQLID[playerid], "RadioPower", RadioPoweredOn[playerid], "players");
  17405. SysMsgF(playerid, "Rádio ativado, você está sincronizado na frequencia %i MHz.", RadioFrequency[playerid]);
  17406. return true;
  17407. }
  17408. CMD:roff(playerid, params[])
  17409. {
  17410. if(!Logged{playerid}) return true;
  17411. if(Inventory[playerid][Radio] == 0) return SysMsg(playerid,"Você não tem um Radio.");
  17412. if(RadioPoweredOn[playerid] == 0) return SysMsg(playerid,"Seu rádio já está desligado. (/ron)");
  17413. if(IsJailed[playerid] == 1 || PlayerImprisoned{playerid}) return SysMsg(playerid,"Seu rádio foi confiscado e será devolvido após a sua libertação.");
  17414. RadioPoweredOn[playerid] = 0;
  17415. MySQLUpdateInt(SQLID[playerid], "RadioPower", RadioPoweredOn[playerid], "players");
  17416. SysMsg(playerid, "Radio desligado.");
  17417. return true;
  17418. }
  17419. CMD:isafk(playerid, params[])
  17420. {
  17421. if(!Logged{playerid}) return true;
  17422. new playa = -1;
  17423. if(sscanf(params, "u", playa)) return SysMsg(playerid, "Use: /isafk [ID ou nome do jogador]");
  17424. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  17425. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  17426. if(IsAFK{playa}) SendClientMessageF(playerid, COLOR_GREEN, "[AFK] %s esteve AFK por %i minutos. Razão: %s",NameEx(playa),AwayMinutes[playa],AFKReason[playa]);
  17427. else SendClientMessageF(playerid, COLOR_GREEN, "[AFK] %s não está marcado como AFK.",NameEx(playa));
  17428. return true;
  17429. }
  17430. CMD:afk(playerid, params[])
  17431. {
  17432. if(!Logged{playerid}) return true;
  17433. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER || GetPlayerState(playerid) == 5 || ViewingBuyableCar[playerid] == 1) return SysMsg(playerid, "Você não pode ficar AFK ao dirigir.");
  17434. if(IsTied[playerid] > 0) return SysMsg(playerid, "Você não pode ir AFK quando amarrado.");
  17435. if(IsAFK{playerid}) return SysMsg(playerid, "Você já está AFK.");
  17436. if(IsCuffed[playerid] == 1) return SysMsg(playerid, "Você não pode usar o comando de AFK quando se estiver algemado.");
  17437. if(IsFrozen[playerid] == 1) return SysMsg(playerid, "Você não pode usar o comando de quando congelado.");
  17438. if(Dead{playerid}) return SysMsg(playerid, "Você não pode usar o comando de AFK se esta abatido.");
  17439. new ReasonString[64], Reason[64];
  17440. IsAFK{playerid} = true;
  17441. AwayMinutes[playerid] = 0;
  17442. if(isnull(params))
  17443. {
  17444. Reason = "Nenhuma";
  17445. format(ReasonString,sizeof(ReasonString),"[AFK]\nAway por 0 Minutos");
  17446. }
  17447. else
  17448. {
  17449. format(Reason,sizeof(Reason),params);
  17450. format(ReasonString,sizeof(ReasonString),"[AFK]\nAway por 0 Minutos\nRazão: %s", Reason);
  17451. }
  17452. FreezePlayer(playerid);
  17453. TextDrawShowForPlayer(playerid, URAFK2);
  17454. TextDrawShowForPlayer(playerid, URAFK3);
  17455. new Float:x, Float:y, Float:z;
  17456. GetPlayerPos(playerid, x, y, z);
  17457. if(!IsPlayerMasked{playerid}) format(sgstr, sizeof(sgstr), "[AFK] Um jogador próximo agora esta AFK: %s(%i) [Razão: %s]", NameEx(playerid), playerid, Reason);
  17458. else format(sgstr, sizeof(sgstr), "[AFK] Um jogador próximo agora esta AFK: %s [Razão: %s]", NameRP(playerid), Reason);
  17459. ProxDetector(20.0, playerid, sgstr, COLOR_GREEN, COLOR_GREEN, COLOR_GREEN, COLOR_GREEN, COLOR_GREEN);
  17460. AFKReason[playerid] = Reason;
  17461. if(IsPlayerMasked{playerid}) AFK_Label[playerid] = CreateDynamic3DTextLabel(ReasonString, COLOR_GREEN, x, y, z+0.5, 20.0, playerid, INVALID_VEHICLE_ID, 1, GetPlayerVirtualWorld(playerid), -1, -1, 20.0);
  17462. else AFK_Label[playerid] = CreateDynamic3DTextLabel(ReasonString, COLOR_GREEN, x, y, z, 20.0, playerid, INVALID_VEHICLE_ID, 1, GetPlayerVirtualWorld(playerid), -1, -1, 20.0);
  17463. if(ADuty[playerid] == 1)
  17464. {
  17465. ADuty[playerid] = 0;
  17466. SetPlayerColor(playerid, 0xFFFFFF00);
  17467. if(UsingPaint{playerid}) cmd_paint(playerid);
  17468. SysMsg(playerid,"Admin Duty foi desativado automaticamente desde você esta AFK.");
  17469. }
  17470. return true;
  17471. }
  17472. CMD:volta(playerid)
  17473. {
  17474. if(!Logged{playerid}) return true;
  17475. if(!IsAFK{playerid}) return SysMsg(playerid, "Você não está afk.") && DeleteAFKLabel(playerid);
  17476. printf("[Cmd] %s Não esta mais AFK. (%i:%s)",NameEx(playerid), AwayMinutes[playerid], AFKReason[playerid]);
  17477. if(!IsPlayerMasked{playerid}) format(gstr, sizeof(gstr), "[AFK] Um jogador nas proximidades não esta mais AFK: %s(%i). Ele esteve ausente por %i minutos. [Razão: %s]", NameEx(playerid), playerid, AwayMinutes[playerid], AFKReason[playerid]);
  17478. else format(gstr, sizeof(gstr), "[AFK] Um jogador nas proximidades não é mais AFK: %s. Ele esteve ausente por %i minutos. [Razão: %s]", NameRP(playerid), AwayMinutes[playerid], AFKReason[playerid]);
  17479. ProxDetector(20.0, playerid, gstr, COLOR_GREEN, COLOR_GREEN, COLOR_GREEN, COLOR_GREEN, COLOR_GREEN);
  17480. DeleteAFKLabel(playerid);
  17481. UnFreezePlayer(playerid);
  17482. ShowInfoText(playerid, " ", 100);
  17483. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) RemovePlayerFromVehicle(playerid);
  17484. TextDrawHideForPlayer(playerid, URAFK2);
  17485. TextDrawHideForPlayer(playerid, URAFK3);
  17486. return true;
  17487. }
  17488. CMD:verlistadonates(playerid, params[])
  17489. {
  17490. if(!Logged{playerid}) return true;
  17491. new count = 0;
  17492. gstr[0] = EOS;
  17493. foreach(new i: Player)
  17494. {
  17495. if(Logged{i} && IsDonator[i] > 0)
  17496. {
  17497. count ++;
  17498. format(tgstr, sizeof(tgstr), "%s (ID %i) - Level %i\n", NameEx(i), i, IsDonator[i]);
  17499. strcat(gstr, tgstr);
  17500. }
  17501. }
  17502. format(tgstr, sizeof(tgstr), "Lista de jogadores doa online (%i Donates)", count);
  17503. ShowMessage(playerid, tgstr, gstr, "Ok");
  17504. return true;
  17505. }
  17506. CMD:ajuda(playerid, params[])//traduzir
  17507. {
  17508. if(!Logged{playerid}) return true;
  17509. UnlockAchievement(playerid, 10);
  17510. if(isnull(params))
  17511. {
  17512. SendClientMessage(playerid, COLOR_LIGHTGREEN, "GreenSide Roleplay Ajuda - Use: /ajuda [Opção]");
  17513. SendClientMessage(playerid, COLOR_WHITE, "Opções: Geral, Chat, Facção, Negocio, Casa, Motel, Furniture, Veiculo, Trabalho, Pesca, Celular, Crate, Donate, Banco, Helper");
  17514. return true;
  17515. }
  17516. if(strcmp("Geral", params, true) == 0)
  17517. {
  17518. SendClientMessage(playerid,COLOR_YELLOW,"Comandos Gerais: /pagar /reportar /animlist /entrar /sair /admins /ip /hora (/afk /voltar /isafk) /an(anuncio) /comprarroupas /stats /dar");
  17519. SendClientMessage(playerid,COLOR_YELLOW,"/comprarlevel /comprar /comprarcomida /banco /escrevernota /inventario /usarmuni /beber /comprarbilhete /aposta /comprararmaskill /conquistas /verlistadonates");
  17520. SendClientMessage(playerid,COLOR_YELLOW,"/pm /forum /anuncioprivado /vender /cancelarvenda /celularinfo /velocimetro /tentar /mostrarchaves /ame /fcumprimentar /aparencia /versao(/uptime)");
  17521. SendClientMessage(playerid,COLOR_YELLOW,"/descrever /animegrito /idade /shake /beijar /faconline /mudarspawn /helpers /meuadminrecord /boombox /boomboxid");
  17522. SendClientMessage(playerid,COLOR_YELLOW,"/sos /cancelarassistencia /cancelartaxi /revistar /ultimavezonline /contamaster(/ma) /characters");
  17523. }
  17524. else if(strcmp("Crate", params, true) == 0) return cmd_caixa(playerid, "Ajuda");
  17525. else if(strcmp("Chats", params, true) == 0)
  17526. {
  17527. SendClientMessage(playerid,COLOR_YELLOW,"Comandos de bate-papo: Global OOC /o, Local OOC /b, Sussurro /w, Gritar /s, Facção /f, Baixo /baixo [RADIO: /r /lr(Falar baixo) /rfreq /ron /roff /rinfo /rslot]");
  17528. SendClientMessage(playerid,COLOR_YELLOW,"Toggle Chats: /togb /toganuncios /tognews");
  17529. }
  17530. else if(strcmp("Faccao", params, true) == 0 || strcmp("Facçao", params, true) == 0 || strcmp("Faccão", params, true) == 0 || strcmp("Facção", params, true) == 0)
  17531. {
  17532. SendClientMessage(playerid,COLOR_YELLOW,"Comandos de Facção: /skin /members /mostrarcracha /fanuncio /fcars /ultimodirigido /togf");
  17533. if(FactionRank[playerid] >= FACTIONS[Faction[playerid]][FactionLeaderRank]) SendClientMessage(playerid,COLOR_YELLOW,"Comandos Leader: /fpagar /fsave /contratarfac /rebaixarrank /promover /despedir /togglef (globally tog fchat) /setsubrank /frespawn /setfmotd /setrank(Rank dos veiculos)");
  17534. if(FactionRank[playerid] >= FACTIONS[Faction[playerid]][FactionUberLeaderRank]) SendClientMessage(playerid,COLOR_YELLOW,"Apenas Leader: /setrankname /setspawnpoint /removespawnpoint /fsaque");
  17535. if(Faction[playerid] == FACTION_COP)
  17536. {
  17537. SendClientMessage(playerid, COLOR_WHITE, "PD comandos: /duty /(un)cuff /jail /detain /taser /fine /psa /rb(/roadblock) /removeRB /wanted /swat /stinger");
  17538. SendClientMessage(playerid, COLOR_WHITE, "/find /drag /forcein /cases /ram /backup /bkcancel /removermascara /speed /pticket /impound /laser /setunit /togunit");
  17539. SendClientMessage(playerid, COLOR_WHITE, "/mdc /grantweaponlicense /revokeweaponlicense /revokelicense /viewimpounds /siren /gunrack /addsiren");
  17540. SendClientMessage(playerid, COLOR_WHITE, "/prison /editprison /releaseprisoner /celldoor /prisoners /pan /fecharpdoor");
  17541. }
  17542. else if(Faction[playerid] == FACTION_SACFD)
  17543. {
  17544. SendClientMessage(playerid, COLOR_WHITE, "SACFD comandos: /duty /siren /fheal /rb /pager /pagermsg /heal /detox");
  17545. SendClientMessage(playerid, COLOR_WHITE, "SACFD comandos: /rescue /drag /cut /ram /backup /bkCancelar");
  17546. SendClientMessage(playerid, COLOR_WHITE, "SACFD comandos: /equip /ladder /scba /smask /firehat /stretcher");
  17547. }
  17548. else if(Faction[playerid] == FACTION_NEWS)
  17549. {
  17550. SendClientMessage(playerid, COLOR_WHITE, "San Andreas News comandos: /duty /news /interview /endinterview /ichat /checkweather /starttalkshow /endtalkshow /toglines");
  17551. SendClientMessage(playerid, COLOR_WHITE, "/acceptcaller /endcall /denycaller /chamarers /tchat");
  17552. }
  17553. else if(Faction[playerid] == FACTION_TRUCKING) SendClientMessage(playerid, COLOR_WHITE, "Elite Trucking comandos: /checkfuel /deliverfuel /supplyfuel /endfueldelivery /truck /tlon /tloff /detach /tow /deliverstock");
  17554. else if(Faction[playerid] == FACTION_PROP) SendClientMessage(playerid, COLOR_WHITE, "Property comandos: /reloadhouses /reloadbizz /addp");
  17555. }
  17556. else if(strcmp("negocio", params, true) == 0)
  17557. {
  17558. SendClientMessage(playerid,COLOR_YELLOW,"Bizz comandos: /buybizz /venderbizz /mybizz /fechar /enterfee /collectearnings /requeststock /bizzmusic");
  17559. SendClientMessage(playerid, COLOR_YELLOW, "Bizz Manager comandos: /addmanager /removemanager /viewmanagers /manageactors /badvert");
  17560. }
  17561. else if(strcmp("casa", params, true) == 0)
  17562. {
  17563. SendClientMessage(playerid,COLOR_YELLOW,"House comandos: /buyhouse /vendermyhouse /minhascasas /fechar /escrevernota /batenaporta /housestore /houseget /houseview /housemusic");
  17564. SendClientMessage(playerid,COLOR_YELLOW,"House Guests: /movein /moveout /evictguest /light");
  17565. }
  17566. else if(strcmp("Motel", params, true) == 0) SendClientMessage(playerid,COLOR_YELLOW,"Comandos do motel: /alugarquarto /devolverquarto /estenderaluguel");
  17567. else if(strcmp("Furniture", params, true) == 0)
  17568. {
  17569. SendClientMessage(playerid,COLOR_YELLOW,"Furniture comandos: /placef /selectf /selectflist /removef /removeallf /pickupallf /furniturecount /furniturelimit");
  17570. SendClientMessage(playerid,COLOR_YELLOW,"Furniture comandos: /reloadmyfurniture /pagarfurn /guestfurnish /buyf /searchf");
  17571. }
  17572. else if(strcmp("Veiculo", params, true) == 0)
  17573. {
  17574. SendClientMessage(playerid,COLOR_YELLOW,"Vehicle comandos: /eon(/engineon) /moff(/engineoff) /refuel /usargalao/enchergalao /esvaziartanque /rw /trunk /eject /engineinfo");
  17575. SendClientMessage(playerid,COLOR_YELLOW,"Vehicle comandos: /luzes /vluzes /capo /trocaroleo /reparar /mod /recuperarveiculo /removeplate");
  17576. SendClientMessage(playerid,COLOR_YELLOW,"Vehicle Ownership: /fechar /savecar /meuscarros /(set)forsale /removeranuncio");
  17577. SendClientMessage(playerid,COLOR_YELLOW,"Shared Vehicle: /removerchaves /darchave");
  17578. }
  17579. else if(strcmp("trabalho", params, true) == 0)
  17580. {
  17581. SendClientMessage(playerid,COLOR_YELLOW,"Job comandos: /pegartrabalho /deixartrabalho, Side Jobs: /jobs");
  17582. if(Job[playerid] == JOB_MECHANIC) SendClientMessage(playerid, COLOR_WHITE, "Mechanic: /spray /reparar /nitro /hyd /mecanicochamadas /limparchamadamecanica");
  17583. else if(Job[playerid] == JOB_MAINTENANCE) SendClientMessage(playerid, COLOR_WHITE, "Maintenance Worker: /trabalho /checklitterbag /emptylitterbag /picklitter");
  17584. else if(Job[playerid] == JOB_TAXI) SendClientMessage(playerid, COLOR_WHITE, "Taxi Driver: /trabalho /meteron /meteroff /oferecertarifa /cancelartaximetro /atualizarmapa /taximetro /meutaximetro");
  17585. else if(Job[playerid] == JOB_DRUGDEALER) SendClientMessage(playerid, COLOR_WHITE, "Drug Dealer: /comprardrogas");
  17586. }
  17587. else if(strcmp("Pesca", params, true) == 0) SendClientMessage(playerid,COLOR_YELLOW,"Fishing comandos: /fish /venderfish /peixes /putback /putallVoltar");
  17588. else if(strcmp("Celular", params, true) == 0)
  17589. {
  17590. SendClientMessage(playerid,COLOR_YELLOW,"Phone comandos: /chamar(/discar) /sms(/sms) /pickup(/p) /finalizar(/h) /phoneoff(/coff) /phoneon(/con) /celularinfo(/cinfo)");
  17591. SendClientMessage(playerid,COLOR_YELLOW,"Phone comandos: /ccarregar /chamarback /resms(/respondersms) /caltofalante /celular /lp /celularmostrar");
  17592. }
  17593. else if(strcmp("Doador", params, true) == 0)
  17594. {
  17595. if(IsDonator[playerid] == 0) return SysMsg(playerid,"You are not a Donator.");
  17596. SendClientMessage(playerid,COLOR_YELLOW,"Donator comandos: /TogOOC /TogGold /mudarevdonate");
  17597. SendClientMessage(playerid,COLOR_YELLOW,"Ignore comandos: /togpm /pmignorados");
  17598. }
  17599. else if(strcmp("Banco", params, true) == 0) SendClientMessage(playerid,COLOR_YELLOW,"Banking & Money comandos: /banco /atm /asscheque /cheques /depositarcheque");
  17600. else if(strmatch("Helper", params))
  17601. {
  17602. if(IsHelper{playerid})
  17603. {
  17604. SendClientMessage(playerid, COLOR_YELLOW,"Helper comandos: /assistencias /fassistencia(Para finalizar) /requestadmin /freeze /unfreeze /delv /vspec ");
  17605. SendClientMessage(playerid, COLOR_YELLOW,"Helper comandos: /namechanges /confirmnome /reefer /toghmsg /hc /toghchat");
  17606. }
  17607. else return SysMsg(playerid, "Você precisa ser Helper para entrar nesta sessão.");
  17608. }
  17609. return true;
  17610. }
  17611. CMD:forum(playerid)
  17612. {
  17613. if(!Logged{playerid}) return true;
  17614. SendClientMessage(playerid, COLOR_WHITE, "Greenside Roleplay - Forum: http://greensiderp.com/forum/");//parei aqui
  17615. return true;
  17616. }
  17617. CMD:players(playerid)
  17618. {
  17619. if(!Logged{playerid}) return true;
  17620. SendClientMessageF(playerid, COLOR_WHITE, "Players Online: %i (Max %i) | NPC's Online: 1 | Veiculos: %i (Max %i) | Veículos com Dono %i (Max %i)", GetOnlinePlayerCount(), MAX_PLAYERS - 1, GetVehiclePoolSize(), MAX_VEHICLES, GetOwnedVehicleCount(), MAX_BUYVEHS);
  17621. return true;
  17622. }
  17623. CMD:actors(playerid)
  17624. {
  17625. if(!IsPlayerAdminLevelOK(playerid, 1)) return true;
  17626. SendClientMessageF(playerid, COLOR_WHITE, "%i actores atualmente estão no servidor.", GetActorPoolSize());
  17627. return true;
  17628. }
  17629. CMD:adnubs(playerid) return cmd_admins(playerid);
  17630. CMD:admins(playerid)
  17631. {
  17632. if(!Logged{playerid}) return true;
  17633. new aduty[38], acount = 0, alist[MAX_PLAYERS][2];
  17634. foreach(new i: Player)
  17635. {
  17636. if(Logged{i} && AdminLevel[i] >= 1)
  17637. {
  17638. if(AdminHidden[i] && !IsPlayerAdminLevelOK(playerid, 1)) continue;
  17639. if(MasterAccount[i] == 174) //t0mbXD master account
  17640. {
  17641. alist[acount][0] = i;
  17642. alist[acount][1] = 6;
  17643. acount ++;
  17644. continue;
  17645. }
  17646. if(AdminLevel[i] == 1)
  17647. {
  17648. alist[acount][0] = i;
  17649. alist[acount][1] = 1;
  17650. acount ++;
  17651. continue;
  17652. }
  17653. if(AdminLevel[i] == 2)
  17654. {
  17655. alist[acount][0] = i;
  17656. alist[acount][1] = 2;
  17657. acount ++;
  17658. continue;
  17659. }
  17660. if(AdminLevel[i] == 3)
  17661. {
  17662. alist[acount][0] = i;
  17663. alist[acount][1] = 3;
  17664. acount ++;
  17665. continue;
  17666. }
  17667. if(AdminLevel[i] == 4)
  17668. {
  17669. alist[acount][0] = i;
  17670. alist[acount][1] = 4;
  17671. acount ++;
  17672. continue;
  17673. }
  17674. }
  17675. }
  17676. if(acount == 0) return SendClientMessage(playerid, COLOR_SIGN, "Atualmente, não há Administradores on-line.");
  17677. SortDeepArray(alist, 1, .order = SORT_DESC);
  17678. new i;
  17679. SendClientMessage(playerid, COLOR_WHITE, "Admins Online:");
  17680. for(new count = 0; count < acount; count++)
  17681. {
  17682. i = alist[count][0];
  17683. switch(ADuty[i])
  17684. {
  17685. case 0: format(aduty, sizeof(aduty), "Status: {FF0000}In Roleplay");
  17686. case 1: format(aduty, sizeof(aduty), "Status: {4BB74C}Administrando");
  17687. case 2: format(aduty, sizeof(aduty), "Status: {7C0000}Não quer ser pertubado");
  17688. }
  17689. if(IsAssisting[i] != -1) format(aduty, sizeof(aduty), "Status: {4BB74C}Dando assistencia");
  17690. if(IsAFK{i}) format(aduty, sizeof(aduty), "Status: {FF6600}Away From Keyboard (AFK)");
  17691. if(AdminHidden[i]) format(aduty, sizeof(aduty), "Status: {636A76}Escondido");
  17692. if(alist[count][1] == 6)
  17693. {
  17694. SendClientMessageF(playerid, COLOR_SIGN, "Server Owner: %s (%s, ID %i) %s", NameEx(i), MasterAccountName[i], i, aduty);
  17695. continue;
  17696. }
  17697. if(alist[count][1] == 1)
  17698. {
  17699. SendClientMessageF(playerid, COLOR_SIGN, "Trial Administrator: %s (%s, ID %i) %s", NameEx(i), MasterAccountName[i], i, aduty);
  17700. continue;
  17701. }
  17702. if(alist[count][1] == 2)
  17703. {
  17704. SendClientMessageF(playerid, COLOR_SIGN, "Administrator: %s (%s, ID %i) %s", NameEx(i), MasterAccountName[i], i, aduty);
  17705. continue;
  17706. }
  17707. if(alist[count][1] == 3)
  17708. {
  17709. SendClientMessageF(playerid, COLOR_SIGN, "Lead Administrator: %s (%s, ID %i) %s", NameEx(i), MasterAccountName[i], i, aduty);
  17710. continue;
  17711. }
  17712. if(alist[count][1] == 4)
  17713. {
  17714. SendClientMessageF(playerid, COLOR_SIGN, "Management: %s (%s, ID %i) %s", NameEx(i), MasterAccountName[i], i, aduty);
  17715. continue;
  17716. }
  17717. }
  17718. return true;
  17719. }
  17720. CMD:helpers(playerid, params[])
  17721. {
  17722. if(!Logged{playerid}) return true;
  17723. new hcount = 0;
  17724. SendClientMessage(playerid, COLOR_WHITE, "Helpers online:");
  17725. foreach(new i: Player)
  17726. {
  17727. if(Logged{i} && IsHelper{i})
  17728. {
  17729. hcount ++;
  17730. SendClientMessageF(playerid, COLOR_SIGN, "{09B300}%s {FFFFFF}(ID %i)", NameEx(i), i);
  17731. }
  17732. }
  17733. if(hcount == 0) return SendClientMessage(playerid, COLOR_SIGN, "Atualmente, não há Helpers on-line.");
  17734. return true;
  17735. }
  17736. CMD:mudarmeunome(playerid, params[])//mudarmeunome
  17737. {
  17738. if(!Logged{playerid}) return true;
  17739. gstr[0] = EOS;
  17740. new count = 0;
  17741. foreach(new i: Player) if(IsPlayerAdminLevelOK(i,1) || IsHelper{i}) count ++;
  17742. if(count == 0) return SysMsg(playerid, "É necessário que um administrador confirme sua troca de nome, não há nenhum online no momento.");
  17743. if(Cash[playerid] < 25000) return SysMsg(playerid,"Você precisa de $25,000 para alterar seu nome.");
  17744. strcat(gstr, "{FFFFFF}Para mudar seu nome, você deve ter o dinheiro exigido.");
  17745. strcat(gstr, "\nTambém é possível limpar seu registro criminal junto com uma alteração para fins CK.");
  17746. strcat(gstr, "\n\nMude seu nome\t{9BE27F}$25,000\n{FFFFFF}Limpar Registro Criminal\t{9BE27F}Extra $25,000{FFFFFF}");
  17747. strcat(gstr, "\n\nTodas as alterações são confirmadas por um administrador e podem ser recusadas se qualquer Administrador considerar que a alteração não é adequada.");
  17748. Dialog_Show(playerid, NamechangeRequest1, DIALOG_STYLE_MSGBOX, "{FFEEA7}Mudar Nome", gstr, "Próximo", "Cancelar");
  17749. return true;
  17750. }
  17751. CMD:cancelartrocadenome(playerid, params[])//cancelartrocadenome
  17752. {
  17753. if(!Logged{playerid}) return true;
  17754. if(WantsNameChange[playerid][0] == 0) return SysMsg(playerid,"Você não tem nenhum pedido para cancelar");
  17755. SendClientMessage(playerid, COLOR_DARKBLUE, "Você cancelou seu pedido de mudança de nome.");
  17756. format(gstr, sizeof(gstr),"* %s cancelou seu nome mudado para %s.", NameEx(playerid), NameChange[playerid]);
  17757. AdminBroadcast(gstr, 1);
  17758. format(gstr, sizeof(gstr), "Mudança de nome cancelada para %s", NameChange[playerid]);
  17759. AdminLog(playerid, SQLID[playerid], GetName(playerid), gstr);
  17760. WantsNameChange[playerid][1] = 0;
  17761. WantsNameChange[playerid][0] = 0;
  17762. NameChange[playerid][0] = EOS;
  17763. return true;
  17764. }
  17765. CMD:ultimavezonline(playerid, params[])
  17766. {
  17767. if(!Logged{playerid}) return true;
  17768. if(isnull(params)) return SysMsg(playerid,"Use: /ultimavezonline [Nome_Sobrenome]");
  17769. mysql_format(conn, mquery, sizeof(mquery), "SELECT LastLogin, LastLogout, Name FROM players WHERE Name = '%e'", params);
  17770. mysql_pquery(conn, mquery, "LastOnlineCheck", "d", playerid);
  17771. return true;
  17772. }
  17773. CMD:billcosby(playerid)
  17774. {
  17775. if(!Logged{playerid}) return true;
  17776. GameTextForPlayer(playerid, "~w~zip ~r~zop ~b~zoopity ~y~bop!", 5000, 11);
  17777. return true;
  17778. }
  17779. CMD:bazinga(playerid)
  17780. {
  17781. if(!Logged{playerid}) return true;
  17782. PlayAudioStreamForPlayer(playerid, "http://redcountyrp.com/audio/bazinga.mp3");
  17783. return true;
  17784. }
  17785. CMD:valero(playerid)
  17786. {
  17787. if(!Logged{playerid}) return true;
  17788. PlayAudioStreamForPlayer(playerid, "http://redcountyrp.com/audio/valero.mp3");
  17789. return true;
  17790. }
  17791. CMD:boombox(playerid, params[])
  17792. {
  17793. if(!Logged{playerid}) return true;
  17794. if(IsBoomBanned[playerid] == 1) return SysMsg(playerid, "Você esta banido de usar boombox");
  17795. if(GetPlayerVirtualWorld(playerid) != 0 || GetPlayerInterior(playerid) != 0) return SysMsg(playerid, "Você só pode colocar uma boombox fora.");
  17796. if(Inventory[playerid][Boombox] >= 1)
  17797. {
  17798. if(IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você precisa estar a pé para executar este comando.");
  17799. new Float:pPos[4];
  17800. GetPlayerPos(playerid, pPos[0], pPos[1], pPos[2]);
  17801. pPos[3] = GetXYInFrontOfPlayer(playerid, pPos[0], pPos[1], 1.0);
  17802. foreach(new bm: Player)
  17803. {
  17804. if(Boomboxes[bm][BoomOID] >= 1)
  17805. {
  17806. if(IsPlayerInRangeOfPoint(playerid, 80, Boomboxes[bm][BoomPos][0], Boomboxes[bm][BoomPos][1], Boomboxes[bm][BoomPos][2])) return SysMsg(playerid, "Você está muito perto de outra boombox, tente em outro lugar.");
  17807. else if(Boomboxes[bm][BoomOID] == SQLID[playerid]) return SysMsg(playerid, "Você já tem uma boombox colocada, vá buscá-la.");
  17808. }
  17809. }
  17810. if(Inventory[playerid][Boombox] == 1)
  17811. {
  17812. Boomboxes[playerid][BoomObj] = CreateDynamicObject(2102, pPos[0], pPos[1], pPos[2] - 1.0, 0, 0, pPos[3]);
  17813. Boomboxes[playerid][BoomRange] = 15;
  17814. }
  17815. else if(Inventory[playerid][Boombox] == 2)
  17816. {
  17817. Boomboxes[playerid][BoomObj] = CreateDynamicObject(2226, pPos[0], pPos[1], pPos[2] - 1.0, 0, 0, pPos[3]);
  17818. Boomboxes[playerid][BoomRange] = 38;
  17819. }
  17820. Boomboxes[playerid][BoomOID] = SQLID[playerid];
  17821. Boomboxes[playerid][BoomPos][0] = pPos[0];
  17822. Boomboxes[playerid][BoomPos][1] = pPos[1];
  17823. Boomboxes[playerid][BoomPos][2] = pPos[2];
  17824. Boomboxes[playerid][BoomPos][3] = pPos[3];
  17825. Boomboxes[playerid][BoomStation][0] = 0;
  17826. Boomboxes[playerid][BoomIsPlaying] = false;
  17827. Boomboxes[playerid][BoomType] = Inventory[playerid][Boombox];
  17828. Inventory[playerid][Boombox] = 0;
  17829. OnePlayAnim(playerid,"BOMBER","BOM_Plant_Crouch_In", 4.0, 0, 0, 0, 0, 0);
  17830. Boomboxes[playerid][BoomArea] = CreateDynamicSphere(Boomboxes[playerid][BoomPos][0], Boomboxes[playerid][BoomPos][1], Boomboxes[playerid][BoomPos][2], Boomboxes[playerid][BoomRange], 0);
  17831. format(gstr, sizeof(gstr), "* %s coloca uma boombox no chão. *", NameRP(playerid));
  17832. SetPlayerChatBubble(playerid, gstr, COLOR_EMOTE, 20, 7000);
  17833. SendClientMessage(playerid, COLOR_YELLOW, "Você colocou uma boombox no chão, use /boombox para usar o boombox.");
  17834. Dialog_Show(playerid, BoomboxMenu, DIALOG_STYLE_LIST, "Boombox Menu", "Tocar Nova\n \nParar\nPegar", "Selecionar", "Fechar");
  17835. }
  17836. else if(IsPlayerInRangeOfPoint(playerid, 3.0, Boomboxes[playerid][BoomPos][0], Boomboxes[playerid][BoomPos][1], Boomboxes[playerid][BoomPos][2]))
  17837. {
  17838. if(strlen(Boomboxes[playerid][BoomStation]) >= 6) Dialog_Show(playerid, BoomboxMenu, DIALOG_STYLE_LIST, "Boombox Menu", "Toca uma nova estação\nToca Estação anterios\nParar\nPegar", "Selecionar", "Fechar");
  17839. else Dialog_Show(playerid, BoomboxMenu, DIALOG_STYLE_LIST, "Boombox Menu", "Tocar uma estação\n \nParar\nPegar", "Selecionar", "Fechar");
  17840. }
  17841. else return SysMsg(playerid, "Você não tem boombox.");
  17842. return true;
  17843. }
  17844. CMD:fogueiraid(playerid)//fogueiraid
  17845. {
  17846. if(!Logged{playerid}) return true;
  17847. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  17848. new Float:x, Float:y, Float:z;
  17849. foreach(new i: Player)
  17850. {
  17851. if(CampfirePlaced[i] != INVALID_OBJECT_ID)
  17852. {
  17853. GetDynamicObjectPos(CampfirePlaced[i], x, y, z);
  17854. if(IsPlayerInRangeOfPoint(playerid, 10.0, x, y, z))
  17855. {
  17856. SendClientMessageF(playerid, COLOR_WHITE, "Dono da Fogueira: %s (ID %i)", NameEx(i), i);
  17857. return true;
  17858. }
  17859. }
  17860. }
  17861. SysMsg(playerid, "Não foi possível encontrar fogueiras perto de você.");
  17862. return true;
  17863. }
  17864. CMD:removerfogueira(playerid, params[])//removerfogueira
  17865. {
  17866. if(!Logged{playerid}) return true;
  17867. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  17868. new playa = -1;
  17869. if(sscanf(params, "u", playa)) return SysMsg(playerid, "Use: /removerfogueira [playerID ou nome]");
  17870. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  17871. if(CampfirePlaced[playa] == INVALID_OBJECT_ID) return SysMsg(playerid, "Este jogador não colocou uma fogueira.");
  17872. DestroyDynamicObjectEx(CampfirePlaced[playa], "CampfirePlaced[playa]");
  17873. CampfirePlaced[playa] = INVALID_OBJECT_ID;
  17874. SendClientMessageF(playerid, COLOR_RED, "Você removeu a fogueira de %s.", NameEx(playa));
  17875. SendClientMessageF(playa, COLOR_RED, "Admin %s removeu sua fogueira.", NameEx(playerid));
  17876. return true;
  17877. }
  17878. CMD:fogueira(playerid)//fogueira
  17879. {
  17880. if(!Logged{playerid}) return true;
  17881. if(Inventory[playerid][Logs] == 0) return SysMsg(playerid, "Você não tem madeiras.");
  17882. if(IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você não pode usar este comando em veiculos.");
  17883. if(CampfirePlaced[playerid] == INVALID_OBJECT_ID)
  17884. {
  17885. if(GetPlayerInterior(playerid) != 0 && GetPlayerVirtualWorld(playerid) != 0) return SysMsg(playerid, "Você só pode criar fogueiras ao ar livre.");
  17886. new Float:x, Float:y, Float:z;
  17887. foreach(new i: Player)
  17888. {
  17889. if(CampfirePlaced[i] != INVALID_OBJECT_ID)
  17890. {
  17891. GetDynamicObjectPos(CampfirePlaced[i], x, y, z);
  17892. if(IsPlayerInRangeOfPoint(playerid, 20.0, x, y, z)) return SysMsg(playerid, "Você está muito perto de uma fogueira separada.");
  17893. }
  17894. }
  17895. new Float:a;
  17896. GetPlayerPos(playerid, x, y, z);
  17897. a = GetXYInFrontOfPlayer(playerid, x, y, 1.0);
  17898. CampfirePlaced[playerid] = CreateDynamicObject(19632, x, y, z - 1.0, 0, 0, a);
  17899. OnePlayAnim(playerid, "CARRY", "putdwn", 4,0,0,0,0,0);
  17900. SetPlayerChatBubble(playerid, "* Coloca alguns pequenos troncos no chão, ordenando-os em uma pilha limpa antes de acendê-los em chamas. *", COLOR_EMOTE, 15.0, 6000);
  17901. return true;
  17902. }
  17903. else
  17904. {
  17905. new Float:x, Float:y, Float:z;
  17906. GetDynamicObjectPos(CampfirePlaced[playerid], x, y, z);
  17907. if(!IsPlayerInRangeOfPoint(playerid, 10.0, x, y, z)) return SysMsg(playerid, "Você não está perto da sua fogueira.");
  17908. DestroyDynamicObjectEx(CampfirePlaced[playerid], "CampfirePlaced[playerid] 0");
  17909. CampfirePlaced[playerid] = INVALID_OBJECT_ID;
  17910. OnePlayAnim(playerid, "CARRY", "liftup", 4,0,0,0,0,0);
  17911. SetPlayerChatBubble(playerid, "* Chega ao chão e apaga sua fogueira antes de pegá-la. *", COLOR_EMOTE, 15.0, 6000);
  17912. return true;
  17913. }
  17914. }
  17915. CMD:responder(playerid, params[])//responder
  17916. {
  17917. if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado para responder.");
  17918. if(MathsStarted == 0) return SysMsg(playerid,"Não há dúvida de responder.");
  17919. if(isnull(params)) return SysMsg(playerid,"Use: /responder [Minha questão]");
  17920. if(!IsNumeric(params)) return SysMsg(playerid,"Sua resposta deve ser um número.");
  17921. new MyAnswer = strval(params);
  17922. if(MyAnswer == MathsAnswer)
  17923. {
  17924. GivePlayerCash(playerid, 1000);
  17925. format(gstr, sizeof(gstr), "%s foi o primeiro a responder corretamente e ganhou $1000. A resposta era %i.", NameEx(playerid), MathsAnswer);
  17926. SendClientMessageToAllLogged(COLOR_LIGHTRED, gstr);
  17927. MathsStarted = 0;
  17928. MathsAnswer = 0;
  17929. }
  17930. else return SysMsg(playerid,"Essa resposta está errada.");
  17931. return true;
  17932. }
  17933. CMD:fecharporta(playerid, params[])//fecharporta
  17934. {
  17935. if(IsInHouseID[playerid] == -1) return SysMsg(playerid, "Você deve estar em uma casa para usar esse comando.");
  17936. if(IsHouseOwner(playerid, IsInHouseID[playerid]) || IsHouseGuestSQL(playerid) == HouseData[IsInHouseID[playerid]][HouseSQLID])
  17937. {
  17938. new Float:pos[3], h = IsInHouseID[playerid];
  17939. for(new x = 0; x < MAX_HFURNITURE; x++)
  17940. {
  17941. if(IsValidDoorObject(HouseData[h][FurnModel][x]))
  17942. {
  17943. GetDynamicObjectPos(HouseData[h][FurnObject][x], pos[0], pos[1], pos[2]);
  17944. if(IsPlayerInRangeOfPoint(playerid, 2.0, pos[0], pos[1], pos[2]))
  17945. {
  17946. HouseData[h][DoorLocked][x] = !HouseData[h][DoorLocked][x];
  17947. if(HouseData[h][DoorLocked][x]) SysMsg(playerid, "Você fechou a porta.");
  17948. else SysMsg(playerid, "Você abriu a porta.");
  17949. mysql_pqueryf(conn, "UPDATE hfurniture SET Locked = %i WHERE id = %i", HouseData[h][DoorLocked][x], HouseData[h][FurnSQLID][x]);
  17950. return true;
  17951. }
  17952. }
  17953. }
  17954. }
  17955. else SysMsg(playerid, "Você não pode fechar esta porta.");
  17956. return true;
  17957. }
  17958. CMD:trancar(playerid, params[])
  17959. {
  17960. if(!Logged{playerid}) return true;
  17961. if(IsInHouseID[playerid] != -1)
  17962. {
  17963. new h = IsInHouseID[playerid];
  17964. if(HouseData[h][HouseOwnerSQLID] == SQLID[playerid] || IsHouseGuestSQL(playerid) == HouseData[h][HouseSQLID])
  17965. {
  17966. if(HouseData[h][HouseLocked] == 1)
  17967. {
  17968. HouseData[h][HouseLocked] = 0;
  17969. MySQLUpdateInt(HouseData[h][HouseSQLID], "HouseLocked", HouseData[h][HouseLocked], "houses");
  17970. format(sgstr, sizeof(sgstr),"* %s unlocks the door of %s. *",NameRP(playerid),HouseData[h][HouseDescription]);
  17971. ProxDetector(15.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  17972. SendClientMessageF(playerid,COLOR_WHITE, "You have {4BB74C}unlocked{FFFFFF} {BCDCBC}%s{FFFFFF}, anybody may enter this residence until it is locked again.",HouseData[h][HouseDescription]);
  17973. ShowInfoText(playerid, "~Y~House Unlocked!", 3000);
  17974. return true;
  17975. }
  17976. else
  17977. {
  17978. HouseData[h][HouseLocked] = 1;
  17979. MySQLUpdateInt(HouseData[h][HouseSQLID], "HouseLocked", HouseData[h][HouseLocked], "houses");
  17980. format(sgstr, sizeof(sgstr),"* %s locks the door of %s. *",NameRP(playerid),HouseData[h][HouseDescription]);
  17981. ProxDetector(15.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  17982. SendClientMessageF(playerid,COLOR_WHITE, "You have {8B0000}locked{FFFFFF} the doors of {BCDCBC}%s.",HouseData[h][HouseDescription]);
  17983. ShowInfoText(playerid, "~Y~House Locked!", 3000);
  17984. return true;
  17985. }
  17986. }
  17987. }
  17988. else
  17989. {
  17990. for(new h = 0; h < MAX_HOUSES; h++)
  17991. {
  17992. if(IsPlayerInRangeOfPoint(playerid, 2.0, HouseData[h][oPosX], HouseData[h][oPosY], HouseData[h][oPosZ]) && GetPlayerVirtualWorld(playerid) == HouseData[h][HouseExtVW])
  17993. {
  17994. if(HouseData[h][HouseOwnerSQLID] == SQLID[playerid] || IsHouseGuestSQL(playerid) == HouseData[h][HouseSQLID])
  17995. {
  17996. if(HouseData[h][HouseLocked] == 1)
  17997. {
  17998. HouseData[h][HouseLocked] = 0;
  17999. MySQLUpdateInt(HouseData[h][HouseSQLID], "HouseLocked", HouseData[h][HouseLocked], "houses");
  18000. format(sgstr, sizeof(sgstr),"* %s unlocks the door of %s. *",NameRP(playerid),HouseData[h][HouseDescription]);
  18001. ProxDetector(15.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18002. SendClientMessageF(playerid,COLOR_WHITE, "You have {4BB74C}unlocked{FFFFFF} {BCDCBC}%s{FFFFFF}, anybody may enter this residence until it is locked again.",HouseData[h][HouseDescription]);
  18003. ShowInfoText(playerid, "~Y~House Unlocked!", 3000);
  18004. return true;
  18005. }
  18006. else
  18007. {
  18008. HouseData[h][HouseLocked] = 1;
  18009. MySQLUpdateInt(HouseData[h][HouseSQLID], "HouseLocked", HouseData[h][HouseLocked], "houses");
  18010. format(sgstr, sizeof(sgstr),"* %s locks the door of %s. *",NameRP(playerid),HouseData[h][HouseDescription]);
  18011. ProxDetector(15.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18012. SendClientMessageF(playerid,COLOR_WHITE, "You have {8B0000}locked{FFFFFF} the doors of {BCDCBC}%s.",HouseData[h][HouseDescription]);
  18013. ShowInfoText(playerid, "~Y~House Locked!", 3000);
  18014. return true;
  18015. }
  18016. }
  18017. else return SysMsg(playerid, "You don't own or live in this house.");
  18018. }
  18019. }
  18020. }
  18021. if(IsInBizzID[playerid] >= 1)
  18022. {
  18023. new bizz = IsInBizzID[playerid];
  18024. if(BizzData[bizz][BizzOwnerSQLID] == SQLID[playerid] || IsBizzMod(playerid, bizz))
  18025. {
  18026. if(BizzData[bizz][BizzType] == BIZZ_TYPE_STATIC && BizzData[bizz][IsSpecial] == 0) return SysMsg(playerid,"This business cannot be entered.");
  18027. if(BizzData[bizz][BizzLocked])
  18028. {
  18029. BizzData[bizz][BizzLocked] = false;
  18030. MySQLUpdateInt(BizzData[IsInBizzID[playerid]][BizzSQLID], "Locked", BizzData[bizz][BizzLocked], "bizz");
  18031. SendClientMessageF(playerid,COLOR_WHITE, "You have {4BB74C}unlocked{FFFFFF} {BCDCBC}%s.",BizzData[bizz][BizzDescription]);
  18032. format(sgstr, sizeof(sgstr),"* %s unlocks the door of %s. *",NameRP(playerid),BizzData[bizz][BizzDescription]);
  18033. ProxDetector(15.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18034. return true;
  18035. }
  18036. else
  18037. {
  18038. BizzData[bizz][BizzLocked] = true;
  18039. MySQLUpdateInt(BizzData[bizz][BizzSQLID], "Locked", BizzData[bizz][BizzLocked], "bizz");
  18040. SendClientMessageF(playerid,COLOR_WHITE, "You have {8B0000}locked{FFFFFF} {BCDCBC}%s.",BizzData[bizz][BizzDescription]);
  18041. format(sgstr, sizeof(sgstr),"* %s locks the door of %s. *",NameRP(playerid),BizzData[bizz][BizzDescription]);
  18042. ProxDetector(15.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18043. return true;
  18044. }
  18045. }
  18046. }
  18047. else
  18048. {
  18049. for(new bz = 0; bz < MAX_BIZZ; bz++)
  18050. {
  18051. if(IsPlayerInRangeOfPoint(playerid, 1.5, BizzData[bz][oPosX], BizzData[bz][oPosY], BizzData[bz][oPosZ]))
  18052. {
  18053. for(new b = 0; b < MAX_BIZZ_PER_PLAYER; b++)
  18054. {
  18055. if(PlayerBizzID[playerid][b] == bz || IsBizzMod(playerid, bz))
  18056. {
  18057. if(BizzData[bz][BizzType] == BIZZ_TYPE_STATIC && BizzData[bz][IsSpecial] == 0) return SysMsg(playerid,"This business cannot be entered.");
  18058. if(BizzData[bz][BizzLocked])
  18059. {
  18060. BizzData[bz][BizzLocked] = false;
  18061. MySQLUpdateInt(BizzData[bz][BizzSQLID], "Locked", BizzData[bz][BizzLocked], "bizz");
  18062. SendClientMessageF(playerid,COLOR_WHITE, "You have {4BB74C}unlocked{FFFFFF} {BCDCBC}%s.",BizzData[bz][BizzDescription]);
  18063. format(sgstr, sizeof(sgstr),"* %s unlocks the door of %s. *",NameRP(playerid),BizzData[bz][BizzDescription]);
  18064. ProxDetector(15.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18065. return true;
  18066. }
  18067. else
  18068. {
  18069. BizzData[bz][BizzLocked] = true;
  18070. MySQLUpdateInt(BizzData[bz][BizzSQLID], "Locked", BizzData[bz][BizzLocked], "bizz");
  18071. SendClientMessageF(playerid,COLOR_WHITE, "You have {8B0000}locked{FFFFFF} {BCDCBC}%s.",BizzData[bz][BizzDescription]);
  18072. format(sgstr, sizeof(sgstr),"* %s locks the door of %s. *",NameRP(playerid),BizzData[bz][BizzDescription]);
  18073. ProxDetector(15.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18074. return true;
  18075. }
  18076. }
  18077. }
  18078. }
  18079. }
  18080. }
  18081. if(IsPlayerInAnyVehicle(playerid))
  18082. {
  18083. new veh = GetPlayerVehicleID(playerid);
  18084. if(Locked{veh})
  18085. {
  18086. if(IsOwnedCar(veh))
  18087. {
  18088. if(VehicleData[veh][VehicleOwnerSQLID] == SQLID[playerid] || VehicleBorrowKey[playerid] != 0 && VehicleBorrowKey[playerid] == VehicleData[veh][VehSQLID])
  18089. {
  18090. Locked{veh} = false;
  18091. ToggleVehicleLock(VehicleData[veh][IdVehicle], false);
  18092. PlayerPlayNearbySound(playerid, SOUND_LOCK_CAR_DOOR);
  18093. MySQLUpdateInt(VehicleData[veh][VehSQLID], "IsLocked", 0, "vehicles");
  18094. ShowInfoText(playerid, "~B~Doors Unlocked!", 3000);
  18095. SendClientMessage(playerid, COLOR_GREEN, "> Vehicle Unlocked.");
  18096. format(sgstr, sizeof(sgstr),"* %s pushes a button to unlock their %s. *",NameRP(playerid),GetVehicleName(veh));
  18097. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18098. return true;
  18099. }
  18100. else return SysMsg(playerid, "You do not have keys for this vehicle.");
  18101. }
  18102. else if(IsRentalCar(veh))
  18103. {
  18104. if(RentalCar[playerid] != veh) return SysMsg(playerid, "You do not have the keys to this rental vehicle.");
  18105. Locked{veh} = false;
  18106. ToggleVehicleLock(RentalData[veh][CarID], false);
  18107. PlayerPlayNearbySound(playerid, SOUND_LOCK_CAR_DOOR);
  18108. ShowInfoText(playerid, "~B~Doors Unlocked!", 3000);
  18109. SendClientMessage(playerid, COLOR_GREEN, "> Vehicle Unlocked.");
  18110. format(sgstr, sizeof(sgstr),"* %s pushes a button to unlock their %s. *",NameRP(playerid),GetVehicleName(veh));
  18111. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18112. return true;
  18113. }
  18114. else if(IsFactionVehicle(veh))
  18115. {
  18116. new faction = IsFactionVehicle(veh);
  18117. if(Faction[playerid] != faction && !IsPlayerAdmin(playerid)) return SysMsg(playerid,"You cannot edit this faction vehicle.");
  18118. if(FactionRank[playerid] < FVehicleData[veh][FVMinRank]) return SysMsg(playerid, "You are not the correct rank to edit this faction vehicle.");
  18119. ToggleVehicleLock(FVehicleData[veh][FactionVehID], false);
  18120. Locked{veh} = false;
  18121. SendClientMessage(playerid, COLOR_WHITE, "Faction vehicle has been unlocked.");
  18122. ShowInfoText(playerid,"~B~Doors Unlocked!",3000);
  18123. MySQLUpdateInt(FVehicleData[veh][FVSQLID], "Locked", 0, "fveh");
  18124. format(sgstr, sizeof(sgstr),"* %s pushes a button to unlock their %s. *",NameRP(playerid),GetVehicleName(FVehicleData[veh][FactionVehID]));
  18125. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18126. return true;
  18127. }
  18128. }
  18129. else
  18130. {
  18131. if(IsOwnedCar(veh))
  18132. {
  18133. if(VehicleData[veh][VehicleOwnerSQLID] == SQLID[playerid] || VehicleBorrowKey[playerid] != 0 && VehicleBorrowKey[playerid] == VehicleData[veh][VehSQLID])
  18134. {
  18135. Locked{veh} = true;
  18136. ToggleVehicleLock(veh, true);
  18137. PlayerPlayNearbySound(playerid, SOUND_LOCK_CAR_DOOR);
  18138. MySQLUpdateInt(VehicleData[veh][VehSQLID], "IsLocked", 1, "vehicles");
  18139. ShowInfoText(playerid, "~B~Doors Locked!", 3000);
  18140. SendClientMessage(playerid, COLOR_GREEN, "> Vehicle Locked.");
  18141. format(sgstr, sizeof(sgstr),"* %s pushes a button to lock their %s. *",NameRP(playerid),GetVehicleName(veh));
  18142. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18143. return true;
  18144. }
  18145. else return SysMsg(playerid, "You do not have the keys to this vehicle.");
  18146. }
  18147. else if(IsRentalCar(veh))
  18148. {
  18149. if(RentalCar[playerid] != veh) return SysMsg(playerid, "You do not have the keys to this rental vehicle.");
  18150. Locked{veh} = true;
  18151. ToggleVehicleLock(RentalData[veh][CarID], true);
  18152. PlayerPlayNearbySound(playerid, SOUND_LOCK_CAR_DOOR);
  18153. ShowInfoText(playerid, "~B~Doors Locked!", 3000);
  18154. SendClientMessage(playerid, COLOR_GREEN, "> Vehicle Locked.");
  18155. format(sgstr, sizeof(sgstr),"* %s pushes a button to lock their %s. *",NameRP(playerid),GetVehicleName(veh));
  18156. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18157. return true;
  18158. }
  18159. else if(IsFactionVehicle(veh))
  18160. {
  18161. new faction = IsFactionVehicle(veh);
  18162. if(Faction[playerid] != faction && !IsPlayerAdmin(playerid)) return SysMsg(playerid, "You do not have the keys to this vehicle.");
  18163. if(FactionRank[playerid] < FVehicleData[veh][FVMinRank]) return SysMsg(playerid, "You are not the correct rank to edit this faction vehicle.");
  18164. ToggleVehicleLock(FVehicleData[veh][FactionVehID], true);
  18165. Locked{veh} = true;
  18166. MySQLUpdateInt(FVehicleData[veh][FVSQLID], "Locked", 1, "fveh");
  18167. SendClientMessage(playerid, COLOR_WHITE, "Faction vehicle has been locked.");
  18168. ShowInfoText(playerid, "~B~Doors Locked!", 3000);
  18169. format(sgstr, sizeof(sgstr),"* %s pushes a button to lock their %s. *",NameRP(playerid),GetVehicleName(veh));
  18170. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18171. return true;
  18172. }
  18173. }
  18174. }
  18175. else
  18176. {
  18177. new v = GetClosestVehicle(playerid);
  18178. new Float:vPos[3];
  18179. GetVehiclePos(v, vPos[0], vPos[1], vPos[2]);
  18180. if(IsPlayerInRangeOfPoint(playerid, 10.0, vPos[0], vPos[1], vPos[2]))
  18181. {
  18182. if(IsOwnedCar(v))
  18183. {
  18184. if(VehicleData[v][VehicleOwnerSQLID] == SQLID[playerid] || VehicleBorrowKey[playerid] != 0 && VehicleBorrowKey[playerid] == VehicleData[v][VehSQLID] || WindowState{v} == WINDOWS_OPEN && VehicleHasWindows(v))
  18185. {
  18186. if(Locked{v})
  18187. {
  18188. Locked{v} = false;
  18189. ToggleVehicleLock(v, 0);
  18190. FlashVehicleLights(v);
  18191. PlayerPlayNearbySound(playerid, SOUND_LOCK_CAR_DOOR);
  18192. MySQLUpdateInt(VehicleData[v][VehSQLID], "IsLocked", 0, "vehicles");
  18193. ShowInfoText(playerid,"~B~Doors Unlocked!",3000);
  18194. if(WindowState{v} == WINDOWS_OPEN && VehicleHasWindows(v)) format(sgstr, sizeof(sgstr),"* %s reaches inside of the %s and unlocks it. *",NameRP(playerid),GetVehicleName(v));
  18195. else format(sgstr, sizeof(sgstr),"* %s pushes a button to unlock their %s. *",NameRP(playerid),GetVehicleName(v));
  18196. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18197. return true;
  18198. }
  18199. else
  18200. {
  18201. Locked{v} = true;
  18202. ToggleVehicleLock(v, 1);
  18203. FlashVehicleLights(v);
  18204. PlayerPlayNearbySound(playerid, SOUND_LOCK_CAR_DOOR);
  18205. MySQLUpdateInt(VehicleData[v][VehSQLID], "IsLocked", 1, "vehicles");
  18206. ShowInfoText(playerid,"~B~Doors Locked!",3000);
  18207. if(WindowState{v} == WINDOWS_OPEN && VehicleHasWindows(v)) format(sgstr, sizeof(sgstr),"* %s reaches inside of the %s and locks it. *",NameRP(playerid),GetVehicleName(v));
  18208. else format(sgstr, sizeof(sgstr),"* %s pushes a button to lock their %s. *",NameRP(playerid),GetVehicleName(v));
  18209. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18210. return true;
  18211. }
  18212. }
  18213. else return SysMsg(playerid, "You do not have keys for this vehicle.");
  18214. }
  18215. else if(IsRentalCar(v))
  18216. {
  18217. if(RentalCar[playerid] != v) return SysMsg(playerid, "You do not have the keys to this rental vehicle.");
  18218. if(Locked{v})
  18219. {
  18220. Locked{v} = false;
  18221. ToggleVehicleLock(RentalData[v][CarID], false);
  18222. PlayerPlayNearbySound(playerid, SOUND_LOCK_CAR_DOOR);
  18223. FlashVehicleLights(v);
  18224. ShowInfoText(playerid,"~B~Doors Unlocked!",3000);
  18225. SendClientMessage(playerid, COLOR_GREEN, "> Vehicle Unlocked.");
  18226. format(sgstr, sizeof(sgstr),"* %s pushes a button to unlock their %s. *",NameRP(playerid),GetVehicleName(v));
  18227. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18228. return true;
  18229. }
  18230. else
  18231. {
  18232. Locked{v} = true;
  18233. ToggleVehicleLock(RentalData[v][CarID], true);
  18234. PlayerPlayNearbySound(playerid, SOUND_LOCK_CAR_DOOR);
  18235. FlashVehicleLights(v);
  18236. ShowInfoText(playerid,"~B~Doors Locked!",3000);
  18237. SendClientMessage(playerid, COLOR_GREEN, "> Vehicle Locked.");
  18238. format(sgstr, sizeof(sgstr),"* %s pushes a button to lock their %s. *",NameRP(playerid),GetVehicleName(v));
  18239. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18240. return true;
  18241. }
  18242. }
  18243. else if(IsFactionCar(v))
  18244. {
  18245. new fveh = IsFactionVehicle(v);
  18246. if(Faction[playerid] != fveh && !IsPlayerAdmin(playerid)) return SysMsg(playerid, "You do not have the keys to this vehicle.");
  18247. if(FactionRank[playerid] < FVehicleData[v][FVMinRank]) return SysMsg(playerid, "You cannot edit this faction vehicle.");
  18248. if(Locked{v})
  18249. {
  18250. ToggleVehicleLock(FVehicleData[v][FactionVehID], false);
  18251. Locked{FVehicleData[v][FactionVehID]} = false;
  18252. PlayerPlayNearbySound(playerid, SOUND_LOCK_CAR_DOOR);
  18253. FlashVehicleLights(v);
  18254. SendClientMessage(playerid, COLOR_WHITE, "Faction vehicle has been unlocked.");
  18255. ShowInfoText(playerid,"~B~Doors Unlocked!",3000);
  18256. MySQLUpdateInt(FVehicleData[v][FVSQLID], "Locked", 0, "fveh");
  18257. format(sgstr, sizeof(sgstr),"* %s pushes a button to unlock their %s. *",NameRP(playerid),GetVehicleName(FVehicleData[v][FactionVehID]));
  18258. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18259. return true;
  18260. }
  18261. else
  18262. {
  18263. ToggleVehicleLock(FVehicleData[v][FactionVehID], true);
  18264. Locked{FVehicleData[v][FactionVehID]} = true;
  18265. PlayerPlayNearbySound(playerid, SOUND_LOCK_CAR_DOOR);
  18266. FlashVehicleLights(v);
  18267. SendClientMessage(playerid, COLOR_WHITE, "Faction vehicle has been locked.");
  18268. ShowInfoText(playerid,"~B~Doors Locked!",3000);
  18269. MySQLUpdateInt(FVehicleData[v][FVSQLID], "Locked", 1, "fveh");
  18270. format(sgstr, sizeof(sgstr),"* %s pushes a button to lock their %s. *",NameRP(playerid),GetVehicleName(FVehicleData[v][FactionVehID]));
  18271. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18272. return true;
  18273. }
  18274. }
  18275. }
  18276. }
  18277. if(GetPlayerInterior(playerid) == 0)
  18278. {
  18279. new m = RentRoom[playerid];
  18280. if(IsPlayerInRangeOfPoint(playerid, 3.0, MotelData[m][RoomX], MotelData[m][RoomY], MotelData[m][RoomZ]))
  18281. {
  18282. if(MotelData[m][RoomLocked] == 1)
  18283. {
  18284. MotelData[m][RoomLocked] = 0;
  18285. MySQLUpdateInt(m, "RoomLocked", MotelData[m][RoomLocked], "motel");
  18286. format(sgstr, sizeof(sgstr),"* %s unlocks the door of their Motel Room. *",NameRP(playerid));
  18287. ProxDetector(15.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18288. SendClientMessage(playerid, COLOR_WHITE, "You have {4BB74C}unlocked{FFFFFF} your Motel Room.");
  18289. ShowInfoText(playerid,"~Y~Room Unlocked!",3000);
  18290. return true;
  18291. }
  18292. else
  18293. {
  18294. MotelData[m][RoomLocked] = 1;
  18295. MySQLUpdateInt(m, "RoomLocked", MotelData[m][RoomLocked], "motel");
  18296. format(sgstr, sizeof(sgstr),"* %s locks the door of their Motel Room. *",NameRP(playerid));
  18297. ProxDetector(15.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18298. SendClientMessage(playerid, COLOR_WHITE, "You have {8B0000}locked{FFFFFF} your Motel Room.");
  18299. ShowInfoText(playerid,"~Y~Room Locked!",3000);
  18300. return true;
  18301. }
  18302. }
  18303. }
  18304. else
  18305. {
  18306. if(IsInMotel[playerid] >= 1)
  18307. {
  18308. new m = IsInMotel[playerid];
  18309. if(MotelData[m][RoomOwner] == SQLID[playerid])
  18310. {
  18311. if(MotelData[m][RoomLocked] == 1)
  18312. {
  18313. MotelData[m][RoomLocked] = 0;
  18314. MySQLUpdateInt(m, "RoomLocked", MotelData[m][RoomLocked], "motel");
  18315. format(sgstr, sizeof(sgstr),"* %s unlocks the door of their Motel Room. *",NameRP(playerid));
  18316. ProxDetector(15.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18317. SendClientMessage(playerid, COLOR_WHITE, "You have {4BB74C}unlocked{FFFFFF} your Motel Room.");
  18318. ShowInfoText(playerid,"~Y~Room Unlocked!",3000);
  18319. return true;
  18320. }
  18321. else
  18322. {
  18323. MotelData[m][RoomLocked] = 1;
  18324. MySQLUpdateInt(m, "RoomLocked", MotelData[m][RoomLocked], "motel");
  18325. format(sgstr, sizeof(sgstr),"* %s locks the door of their Motel Room. *",NameRP(playerid));
  18326. ProxDetector(15.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18327. SendClientMessage(playerid, COLOR_WHITE, "You have {8B0000}locked{FFFFFF} your Motel Room.");
  18328. ShowInfoText(playerid,"~Y~Room Locked!",3000);
  18329. return true;
  18330. }
  18331. }
  18332. return SysMsg(playerid, "You are not renting this room.");
  18333. }
  18334. }
  18335. if(IsInPrison(playerid))
  18336. {
  18337. if(Faction[playerid] == FACTION_COP || IsPlayerAdmin(playerid))
  18338. {
  18339. for(new w = 0; w < sizeof(PrisonDoors); w++)
  18340. {
  18341. if(IsPlayerInRangeOfPoint(playerid, 1.5, PrisonDoors[w][0], PrisonDoors[w][1], PrisonDoors[w][2]))
  18342. {
  18343. if(PrisonDoorsLock[w] == 1)
  18344. {
  18345. format(sgstr, sizeof(sgstr),"* %s takes a set of keys and uses one to unlock the door. *", NameRP(playerid));
  18346. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18347. SendClientMessage(playerid, COLOR_WHITE, "This door has now been {4BB74C}unlocked{FFFFFF}.");
  18348. PrisonDoorsLock[w] = 0;
  18349. }
  18350. else
  18351. {
  18352. format(sgstr, sizeof(sgstr),"* %s takes a set of keys and uses one to lock the door. *", NameRP(playerid));
  18353. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18354. SendClientMessage(playerid, COLOR_WHITE, "This door has now been {8B0000}locked{FFFFFF}.");
  18355. PrisonDoorsLock[w] = 1;
  18356. }
  18357. return true;
  18358. }
  18359. if(IsPlayerInRangeOfPoint(playerid, 1.5, PrisonDoors[w][4], PrisonDoors[w][5], PrisonDoors[w][6]))
  18360. {
  18361. if(PrisonDoorsLock[w] == 1)
  18362. {
  18363. format(sgstr, sizeof(sgstr),"* %s takes a set of keys and uses one to unlock the door. *", NameRP(playerid));
  18364. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18365. SendClientMessage(playerid, COLOR_WHITE, "This door has now been {4BB74C}unlocked{FFFFFF}.");
  18366. PrisonDoorsLock[w] = 0;
  18367. }
  18368. else
  18369. {
  18370. format(sgstr, sizeof(sgstr),"* %s takes a set of keys and uses one to lock the door. *", NameRP(playerid));
  18371. ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18372. SendClientMessage(playerid, COLOR_WHITE, "This door has now been {8B0000}locked{FFFFFF}.");
  18373. PrisonDoorsLock[w] = 1;
  18374. }
  18375. return true;
  18376. }
  18377. }
  18378. }
  18379. }
  18380. SysMsg(playerid, "You are not near anything that you can lock.");
  18381. return true;
  18382. }
  18383. CMD:trancargarage(playerid, params[])
  18384. {
  18385. if(!Logged{playerid}) return true;
  18386. if(IsInGarageID[playerid] != -1)
  18387. {
  18388. new g = IsInGarageID[playerid], h = GarageData[g][gHouseID];
  18389. if(HouseData[h][HouseOwnerSQLID] == SQLID[playerid] || IsHouseGuest(playerid) == h)
  18390. {
  18391. if(GarageData[g][GarageLocked] == 1)
  18392. {
  18393. GarageData[g][GarageLocked] = 0;
  18394. MySQLUpdateInt(GarageData[g][gID], "Locked", GarageData[g][GarageLocked], "garages");
  18395. SendClientMessageF(playerid,COLOR_WHITE, "Você {4BB74C}abriu{FFFFFF} sua garagem.", HouseData[h][HouseDescription]);
  18396. format(gstr, sizeof(gstr),"* %s abre sua garagem. *",NameRP(playerid));
  18397. ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18398. return true;
  18399. }
  18400. else
  18401. {
  18402. GarageData[g][GarageLocked] = 1;
  18403. MySQLUpdateInt(GarageData[g][gID], "Locked", GarageData[g][GarageLocked], "garages");
  18404. SendClientMessageF(playerid,COLOR_WHITE, "Você {8B0000}fechou{FFFFFF} sua garagem.", HouseData[h][HouseDescription]);
  18405. format(gstr, sizeof(gstr),"* %s fecha sua garagem. *",NameRP(playerid));
  18406. ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18407. return true;
  18408. }
  18409. }
  18410. else SysMsg(playerid, "Você não tem acesso a esta garagem.");
  18411. }
  18412. else
  18413. {
  18414. for(new g = 0; g < MAX_GARAGES; g++)
  18415. {
  18416. if(IsPlayerInRangeOfPoint(playerid, 2.0, GarageData[g][oPosX], GarageData[g][oPosY], GarageData[g][oPosZ]))
  18417. {
  18418. new h = GarageData[g][gHouseID];
  18419. if(HouseData[h][HouseOwnerSQLID] == SQLID[playerid] || IsHouseGuest(playerid) == h)
  18420. {
  18421. if(GarageData[g][GarageLocked] == 1)
  18422. {
  18423. GarageData[g][GarageLocked] = 0;
  18424. MySQLUpdateInt(GarageData[g][gID], "Locked", GarageData[g][GarageLocked], "garages");
  18425. SendClientMessageF(playerid,COLOR_WHITE, "Você {4BB74C}abriu{FFFFFF} sua garagem.", HouseData[h][HouseDescription]);//%s
  18426. format(gstr, sizeof(gstr),"* %s abre sua garagem. *",NameRP(playerid));
  18427. ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18428. return true;
  18429. }
  18430. else
  18431. {
  18432. GarageData[g][GarageLocked] = 1;
  18433. MySQLUpdateInt(GarageData[g][gID], "Locked", GarageData[g][GarageLocked], "garages");
  18434. SendClientMessageF(playerid,COLOR_WHITE, "Você {8B0000}fechou{FFFFFF} sua garagem.", HouseData[h][HouseDescription]);//%s
  18435. format(gstr, sizeof(gstr),"* %s trava sua garagem. *",NameRP(playerid));
  18436. ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  18437. return true;
  18438. }
  18439. }
  18440. else SysMsg(playerid, "Você não pode acessar esta garagem.");
  18441. }
  18442. }
  18443. }
  18444. return true;
  18445. }
  18446. CMD:conquistas(playerid, params[])
  18447. {
  18448. Dialog_Show(playerid,AchievementMenu,DIALOG_STYLE_LIST,"Conquistas","Ver minhas conquistas\nVer outras conquistas\nMeu resumo","Ok","Fechar");
  18449. return true;
  18450. }
  18451. CMD:svo(playerid, params[]) return cmd_setvisibleobjects(playerid, params);
  18452. CMD:setvisibleobjects(playerid, params[])
  18453. {
  18454. if(isnull(params) || !IsNumeric(params)) return SysMsg(playerid, "Use: /setvisibleobjects [350-1000] *Esse comando alterará a quantidade máxima de objetos mapeados que serão transmitidos para o seu cliente.*");
  18455. new objects = strval(params);
  18456. if(objects > 1000) return SysMsg(playerid, "O limite de objeto não pode ser superior a 1,000.");
  18457. if(objects < 350) return SysMsg(playerid, "O limite do objeto não pode ser inferior a 350.");
  18458. if(objects == VisibleObjects[playerid]) return SysMsgF(playerid, "O limite de objeto já está %i.", objects);
  18459. Streamer_SetVisibleItems(STREAMER_TYPE_OBJECT, objects, playerid);
  18460. if(objects < VisibleObjects[playerid] && GetPlayerVirtualWorld(playerid) == 0 && GetPlayerInterior(playerid) == 0) Streamer_DestroyAllVisibleItems(playerid, STREAMER_TYPE_OBJECT);
  18461. Streamer_UpdateEx(playerid, PlayerPosX(playerid), PlayerPosY(playerid), PlayerPosZ(playerid), GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid));
  18462. VisibleObjects[playerid] = objects;
  18463. mysql_pqueryf(conn, "UPDATE masters SET MaxVisibleObjects = %i WHERE id = %i", VisibleObjects[playerid], MasterAccount[playerid]);
  18464. SysMsgF(playerid, "Você definiu o limite máximo de objeto visível para %i. Nota: Este limite será ignorado em interiores para garantir que todos os detalhes sejam carregados enquanto estiverem dentro.", VisibleObjects[playerid]);
  18465. return true;
  18466. }
  18467. CMD:hotkeys(playerid)
  18468. {
  18469. if(!Logged{playerid}) return true;
  18470. SendClientMessage(playerid, COLOR_WHITE, "{FFFF82}'~k~~CONVERSATION_YES~'{FFFFFF} pode ser usado como uma alternativa para {44C300}/entrar.");
  18471. SendClientMessage(playerid, COLOR_WHITE, "{FFFF82}'~k~~CONVERSATION_NO~'{FFFFFF} pode ser usado como uma alternativa para {44C300}/fechar.");
  18472. SendClientMessage(playerid, COLOR_WHITE, "{FFFF82}'~k~~SNEAK_ABOUT~'{FFFFFF} pode ser usado para descongelar o seu jogador ao entrar em edifícios.");
  18473. return true;
  18474. }
  18475. CMD:cage(playerid, params[])//observar
  18476. {
  18477. if(IsPlayerInRangeOfPoint(playerid, 3.0, 249.6434,-169.6998,1017.9922))
  18478. {
  18479. LillyCage{playerid} = !LillyCage{playerid};
  18480. if(LillyCage{playerid}) SetPlayerPos(playerid, 248.8951,-167.8426,1018.3791);//in
  18481. else SetPlayerPos(playerid, 249.6434,-169.6998,1017.9922); //out
  18482. }
  18483. return true;
  18484. }
  18485. CMD:roof(playerid, params[])//observar
  18486. {
  18487. if(!Logged{playerid}) return true;
  18488. if(Faction[playerid] == FACTION_COP)
  18489. {
  18490. if(IsPlayerInRangeOfPoint(playerid,3.0,635.7831,-566.9708,1011.9344))
  18491. {
  18492. SetPlayerPos(playerid,621.417,-570.289,26.1432);
  18493. SetPlayerInterior(playerid,0);
  18494. SetPlayerVirtualWorldEx(playerid,0);
  18495. SetTimerEx("UnFreezePlayer", 1000, 0, "d", playerid);
  18496. TogglePlayerControllable(playerid, 0);
  18497. }
  18498. }
  18499. if(IsPlayerInRangeOfPoint(playerid,3.0,243.210525, 66.328117, 1003.640625))
  18500. {
  18501. SetPlayerPos(playerid,94.300003, 1062.325683, 24.817752);
  18502. SetPlayerInterior(playerid,0);
  18503. SetPlayerVirtualWorldEx(playerid,0);
  18504. SetTimerEx("UnFreezePlayer", 1000, 0, "d", playerid);
  18505. TogglePlayerControllable(playerid, 0);
  18506. }
  18507. if(IsPlayerInRangeOfPoint(playerid, 3.0, 678.033081, 1814.505371, -5.632563))
  18508. {
  18509. TogglePlayerControllable(playerid, 0);
  18510. Streamer_UpdateEx(playerid, 667.4, 1816.2, 10.2, 0, 0);
  18511. SetPlayerPos(playerid,667.43804931641, 1816.2852783203, 10.272919654846);
  18512. SetPlayerInterior(playerid,0);
  18513. SetPlayerVirtualWorldEx(playerid,0);
  18514. SetTimerEx("UnFreezePlayer", 1000, 0, "d", playerid);
  18515. }
  18516. return true;
  18517. }
  18518. CMD:entrar(playerid, params[])
  18519. {
  18520. if(!Logged{playerid}) return true;
  18521. new vid = GetPlayerVehicleID(playerid);
  18522. if(vid == 0)
  18523. {
  18524. for(new in = 0; in < MAX_INTERIORS; in++)
  18525. {
  18526. if(IsPlayerInRangeOfPoint(playerid, 1.5, Interiors[in][oPosX], Interiors[in][oPosY], Interiors[in][oPosZ]) && GetPlayerVirtualWorld(playerid) == Interiors[in][oVirtualWorld])
  18527. {
  18528. if(Interiors[in][IntFaction] > 0 && Interiors[in][IntFaction] != Faction[playerid] && !IsPlayerAdmin(playerid)) return SysMsg(playerid,"Você não pode entrar.");
  18529. if(Interiors[in][IntFactionRank] > 0 && Interiors[in][IntFactionRank] > FactionRank[playerid] && !IsPlayerAdmin(playerid)) return SysMsg(playerid,"Seu rank na facção não é suficiente para entrar neste interior.");
  18530. Teleport(playerid, Interiors[in][iPosX], Interiors[in][iPosY], Interiors[in][iPosZ], Interiors[in][iAngle], Interiors[in][iInteriorID], Interiors[in][iVirtualWorld]);
  18531. new interiorText[100];
  18532. format(interiorText, 100, "~W~");
  18533. strcat(interiorText, Interiors[in][InteriorName]);
  18534. strcat(interiorText, "~N~~R~Escreva /sair para sair do local");
  18535. ShowInfoText(playerid, interiorText, 5000);
  18536. if(Interiors[in][interiorID] == 9 || Interiors[in][interiorID] == 10 || Interiors[in][interiorID] == 11)
  18537. SendClientMessage(playerid, COLOR_WHITE, "Regra: Faça roleplay quando recolher seu (Payday). Por favor, não corra dentro da prefeitura.");
  18538. return true;
  18539. }
  18540. }
  18541. for(new h = 0; h < MAX_HOUSES; h++)
  18542. {
  18543. if(IsPlayerInRangeOfPoint(playerid, DOOR_PROXIMITY, HouseData[h][oPosX],HouseData[h][oPosY],HouseData[h][oPosZ]) && GetPlayerVirtualWorld(playerid) == HouseData[h][HouseExtVW])
  18544. {
  18545. if(HouseData[h][HouseLocked] == 1 && ADuty[playerid] != 1) return SysMsgF(playerid, "%s está trancada.",HouseData[h][HouseDescription]);
  18546. if(strlen(HouseData[h][DoorNoteMessage]) > 1 && HouseData[h][HouseOwnerSQLID] == SQLID[playerid])
  18547. {
  18548. new noteMsg[200];
  18549. format(noteMsg,200,"Mensagem: '%s'",HouseData[h][DoorNoteMessage]);
  18550. ShowMessage(playerid, "Nota na porta", noteMsg, "Done");
  18551. mysql_format(conn, mquery, sizeof(mquery), "UPDATE houses SET DoorNote = '' WHERE id = %i", HouseData[h][HouseSQLID]);
  18552. mysql_pquery(conn, mquery);
  18553. HouseData[h][DoorNoteMessage][0] = 0;
  18554. }
  18555. if(HouseData[h][InsideID] == 11) //custom interiors
  18556. {
  18557. Teleport(playerid, HouseData[h][intPosX], HouseData[h][intPosY], HouseData[h][intPosZ], 0.0, HouseData[h][HouseInterior], HouseData[h][HouseVW]);
  18558. IsInHouseID[playerid] = h;
  18559. GameTextForPlayer(playerid,"~N~~N~~N~~W~Escreva ~r~/sair ~w~para sair do local",5000,3);
  18560. }
  18561. else //default interiors
  18562. {
  18563. new x = HouseData[h][InsideID] - 1;
  18564. Teleport(playerid, InsideIDs[x][InsideX], InsideIDs[x][InsideY], InsideIDs[x][InsideZ], InsideIDs[x][InsideAng], InsideIDs[x][InsideInt], HouseData[h][HouseVW]);
  18565. IsInHouseID[playerid] = h;
  18566. GameTextForPlayer(playerid,"~N~~N~~N~~W~Escreva ~r~/sair ~w~para sair do local",5000,3);
  18567. }
  18568. HouseData[h][HouseOccupants] ++;
  18569. if(HouseData[h][HMusicPlaying] == 1) PlayAudioStreamForPlayerEx(playerid, HouseData[h][HMusic]);
  18570. return true;
  18571. }
  18572. }
  18573. for(new b = 0; b < MAX_BIZZ; b++)
  18574. {
  18575. if(IsPlayerInRangeOfPoint(playerid, DOOR_PROXIMITY, BizzData[b][oPosX],BizzData[b][oPosY],BizzData[b][oPosZ]))
  18576. {
  18577. if(BizzData[b][BizzType] == BIZZ_TYPE_STATIC && BizzData[b][IsSpecial] == 0) return SysMsg(playerid,"Este negócio não pode ser inserido.");
  18578. if(BizzData[b][BizzLocked] && ADuty[playerid] == 0) return SysMsgF(playerid, "[%s] A porta está trancada.", BizzData[b][BizzDescription]);
  18579. if(BizzData[b][EnterFee] > 0 && (BizzData[b][BizzOwnerSQLID] > 0 && BizzData[b][BizzOwnerSQLID] != SQLID[playerid]))
  18580. {
  18581. new nopay = 0;
  18582. //no enter fee for SAN employees at SAN building
  18583. if(BizzData[b][BizzSQLID] == 19 && Faction[playerid] == FACTION_NEWS) nopay = 1;
  18584. if(IsBizzMod(playerid, b)) nopay = 1;
  18585. if(nopay == 0)
  18586. {
  18587. if(Cash[playerid] < BizzData[b][EnterFee]) return SysMsg(playerid,"Você não tem dinheiro suficiente para a taxa de entrada.");
  18588. GivePlayerCash(playerid, -BizzData[b][EnterFee]);
  18589. BizzData[b][BizzEarnings] += BizzData[b][EnterFee];
  18590. MySQLUpdateInt(BizzData[b][BizzSQLID], "BizzEarnings", BizzData[b][BizzEarnings], "bizz");
  18591. }
  18592. }
  18593. if(BizzData[b][BizzOwnerSQLID] > 0)
  18594. {
  18595. if(BizzData[b][BizzOwnerSQLID] == SQLID[playerid]) SendClientMessageF(playerid, COLOR_WHITE, "[%s] Você é o dono deste negócio. Para uso de comandos relacionados a negócios '/ajuda negocio'", BizzData[b][BizzDescription]);
  18596. else if(BizzData[b][BizzOwnerSQLID] == -5) SendClientMessageF(playerid, COLOR_WHITE, "Bem vindo a %s, Propriedade da Silver Trading. Taxa de entrada: $%i", BizzData[b][BizzDescription], BizzData[b][EnterFee]);
  18597. else SendClientMessageF(playerid, COLOR_WHITE, "Bem vindo a %s, Propriedade de %s. Taxa de entrada: $%i", BizzData[b][BizzDescription], GetSQLName(BizzData[b][BizzOwnerSQLID]), BizzData[b][EnterFee]);
  18598. }
  18599. else SendClientMessageF(playerid, COLOR_WHITE, "Bem-vindo a %s, este negócio não tem dono.", BizzData[b][BizzDescription]);
  18600. if(BizzData[b][IsSpecial] == 1)
  18601. {
  18602. Teleport(playerid, BizzData[b][iPosX], BizzData[b][iPosY], BizzData[b][iPosZ], 0.0, BizzData[b][InteriorID], BizzData[b][BizzVW]);
  18603. IsInBizzID[playerid] = b;
  18604. }
  18605. else
  18606. {
  18607. new x = BizzData[b][BizzType];
  18608. Teleport(playerid, BInsideIDs[x][InsideX], BInsideIDs[x][InsideY], BInsideIDs[x][InsideZ], BInsideIDs[x][InsideAng], BInsideIDs[x][InsideInt], BizzData[b][BizzVW]);
  18609. GameTextForPlayer(playerid, "~N~~N~~N~~W~Bem-vindo ao negócio~N~~R~escreva /sair para sair do local.", 5000, 3);
  18610. IsInBizzID[playerid] = b;
  18611. }
  18612. BizzData[b][BizzOccupants] ++;
  18613. if(BizzData[b][BMusicPlaying] == 1) PlayAudioStreamForPlayerEx(playerid, BizzData[b][BMusic]);
  18614. return true;
  18615. }
  18616. }
  18617. for(new i = 1; i < MAX_MOTELROOMS; i++)
  18618. {
  18619. if(IsPlayerInRangeOfPoint(playerid, 0.75, MotelData[i][RoomX], MotelData[i][RoomY], MotelData[i][RoomZ]) && MotelData[i][RoomOwner] > 0)
  18620. {
  18621. if(MotelData[i][RoomLocked] == 1) return SysMsg(playerid, "Esta sala está trancada.");
  18622. Teleport(playerid, -434.7513, -775.4567, 971.0526, 0.0, 11, 50000+i);
  18623. IsInMotel[playerid] = i;
  18624. /*switch(MotelData[i][MotelID])
  18625. {
  18626. case 1,4,5,6: // $100 rent
  18627. {
  18628. Teleport(playerid, 2282.726806, -1139.603515, 1050.898437, 0.0, 11, 50000+i);
  18629. IsInMotel[playerid] = i;
  18630. return true;
  18631. }
  18632. case 2,7: // $200 rent
  18633. {
  18634. Teleport(playerid, 2217.425781, -1076.156494, 1050.484375, 9.0, 1, 50000+i);
  18635. IsInMotel[playerid] = i;
  18636. return true;
  18637. }
  18638. case 3: // $500 rent
  18639. {
  18640. Teleport(playerid, 2233.775634, -1114.455688, 1050.882812, 0.0, 5, 50000+i);
  18641. IsInMotel[playerid] = i;
  18642. return true;
  18643. }
  18644. }*/
  18645. }
  18646. }
  18647. }
  18648. for(new g = 0; g < MAX_GARAGES; g++)
  18649. {
  18650. if(IsPlayerInRangeOfPoint(playerid, 2.0, GarageData[g][oPosX], GarageData[g][oPosY], GarageData[g][oPosZ]))
  18651. {
  18652. if(GarageData[g][GarageLocked] == 1 && ADuty[playerid] != 1) return SysMsg(playerid, "Esta garagem está trancada.");
  18653. if(GarageData[g][gType] == 1) //tiny 1 car garage
  18654. {
  18655. if(GarageCheck(g, 1) && IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Há atualmente um veículo que bloqueia a entrada da garagem.");
  18656. if(vid >= 1)
  18657. {
  18658. SetVehiclePos(vid, 1449.0339, -2518.7883, 13.7018);
  18659. SetVehicleZAngle(vid, 90.0);
  18660. SetVehicleVirtualWorld(vid, GarageData[g][iVirtualWorld]);
  18661. LinkVehicleToInterior(vid, 1);
  18662. foreach(new p: Player)
  18663. {
  18664. if(GetPlayerVehicleID(p) == vid)
  18665. {
  18666. SetPlayerVirtualWorld(p, GarageData[g][iVirtualWorld]);
  18667. SetPlayerInterior(p, 1);
  18668. IsInGarageID[p] = g;
  18669. }
  18670. }
  18671. return true;
  18672. }
  18673. else
  18674. {
  18675. Teleport(playerid, 1452.6891, -2516.3198, 13.5750, 90.0, 1, GarageData[g][iVirtualWorld]);
  18676. IsInGarageID[playerid] = g;
  18677. return true;
  18678. }
  18679. }
  18680. if(GarageData[g][gType] == 2) //normal single car garage
  18681. {
  18682. if(GarageCheck(g, 1) && IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Há atualmente um veículo que bloqueia a entrada da garagem.");
  18683. if(vid >= 1)
  18684. {
  18685. SetVehiclePos(vid, 1836.6912, -2440.2810, 13.7131);
  18686. SetVehicleZAngle(vid, 90.0);
  18687. SetVehicleVirtualWorld(vid, GarageData[g][iVirtualWorld]);
  18688. LinkVehicleToInterior(vid, 1);
  18689. foreach(new p: Player)
  18690. {
  18691. if(GetPlayerVehicleID(p) == vid)
  18692. {
  18693. SetPlayerVirtualWorld(p, GarageData[g][iVirtualWorld]);
  18694. SetPlayerInterior(p, 1);
  18695. IsInGarageID[p] = g;
  18696. }
  18697. }
  18698. return true;
  18699. }
  18700. else
  18701. {
  18702. Teleport(playerid, 1840.1310, -2436.8567, 13.5859, 90.0, 1, GarageData[g][iVirtualWorld]);
  18703. IsInGarageID[playerid] = g;
  18704. return true;
  18705. }
  18706. }
  18707. else if(GarageData[g][gType] == 3) //standard 2 car garage
  18708. {
  18709. if(vid >= 1)
  18710. {
  18711. new side[6];
  18712. if(sscanf(params, "s[6]", side)) return SysMsg(playerid, "Use: /enter [Esquerda/Direita]");
  18713. if(strcmp(side, "esquerda", true) == 0)
  18714. {
  18715. if(GarageCheck(g, 1, 0)) return SysMsg(playerid, "Há atualmente um veículo que bloqueia a entrada da garagem.");
  18716. SetVehiclePos(vid, 2081.5933, -2479.1887, 13.7145);
  18717. }
  18718. else if(strcmp(side, "direita", true) == 0)
  18719. {
  18720. if(GarageCheck(g, 1, 1)) return SysMsg(playerid, "Há atualmente um veículo que bloqueia a entrada da garagem.");
  18721. SetVehiclePos(vid, 2081.593, -2473.189, 13.92);
  18722. }
  18723. else return SysMsg(playerid, "Use: /entra [Esquerda/Direita]");
  18724. SetVehicleZAngle(vid, 90.0);
  18725. SetVehicleVirtualWorld(vid, GarageData[g][iVirtualWorld]);
  18726. LinkVehicleToInterior(vid, 1);
  18727. foreach(new p: Player)
  18728. {
  18729. if(GetPlayerVehicleID(p) == vid)
  18730. {
  18731. SetPlayerVirtualWorld(p, GarageData[g][iVirtualWorld]);
  18732. IsInGarageID[p] = g;
  18733. SetPlayerInterior(p, 1);
  18734. }
  18735. }
  18736. return true;
  18737. }
  18738. else
  18739. {
  18740. Teleport(playerid, 2086.1670, -2476.5586, 13.5859, 90.0, 1, GarageData[g][iVirtualWorld]);
  18741. SetPlayerVirtualWorld(playerid, GarageData[g][iVirtualWorld]);
  18742. IsInGarageID[playerid] = g;
  18743. return true;
  18744. }
  18745. }
  18746. else if(GarageData[g][gType] == 4) //fancy 2 car garage
  18747. {
  18748. if(vid >= 1)
  18749. {
  18750. new side[6];
  18751. if(sscanf(params, "s[6]", side)) return SysMsg(playerid, "Use: /entra [Esquerda/Direita]");
  18752. if(strmatch("esquerda", side))
  18753. {
  18754. if(GarageCheck(g, 1, 0)) return SysMsg(playerid, "Há atualmente um veículo que bloqueia a entrada da garagem.");
  18755. SetVehiclePos(vid, 1566.3131, -2562.6003, 13.7139);
  18756. }
  18757. else if(strmatch("dinheiro", side))
  18758. {
  18759. if(GarageCheck(g, 1, 1)) return SysMsg(playerid, "Há atualmente um veículo que bloqueia a entrada da garagem.");
  18760. SetVehiclePos(vid, 1566.283, -2555.600, 13.296);
  18761. }
  18762. else return SysMsg(playerid, "Use: /entra [Esquerda/Direita]");
  18763. SetVehicleZAngle(vid, 90.0);
  18764. SetVehicleVirtualWorld(vid, GarageData[g][iVirtualWorld]);
  18765. LinkVehicleToInterior(vid, 1);
  18766. foreach(new p: Player)
  18767. {
  18768. if(GetPlayerVehicleID(p) == vid)
  18769. {
  18770. SetPlayerVirtualWorld(p, GarageData[g][iVirtualWorld]);
  18771. IsInGarageID[p] = g;
  18772. SetPlayerInterior(p, 1);
  18773. }
  18774. }
  18775. return true;
  18776. }
  18777. else
  18778. {
  18779. Teleport(playerid, 1571.5144, -2567.9014, 13.5989, 90.0, 1, GarageData[g][iVirtualWorld]);
  18780. SetPlayerVirtualWorld(playerid, GarageData[g][iVirtualWorld]);
  18781. IsInGarageID[playerid] = g;
  18782. return true;
  18783. }
  18784. }
  18785. else if(GarageData[g][gType] == 5) //custom garage
  18786. {
  18787. if(vid >= 1)
  18788. {
  18789. SetVehiclePos(vid, GarageData[g][iPosX], GarageData[g][iPosY], GarageData[g][iPosZ]);
  18790. SetVehicleVirtualWorld(vid, GarageData[g][iVirtualWorld]);
  18791. LinkVehicleToInterior(vid, GarageData[g][InsideInt]);
  18792. foreach(new p: Player)
  18793. {
  18794. if(GetPlayerVehicleID(p) == vid)
  18795. {
  18796. SetPlayerVirtualWorld(p, GarageData[g][iVirtualWorld]);
  18797. if(GarageData[g][UseHouse]) IsInHouseID[p] = GarageData[g][gHouseID];
  18798. else IsInGarageID[p] = g;
  18799. SetPlayerInterior(p, GarageData[g][InsideInt]);
  18800. }
  18801. }
  18802. return true;
  18803. }
  18804. else
  18805. {
  18806. Teleport(playerid, GarageData[g][iPosX], GarageData[g][iPosY], GarageData[g][iPosZ], GarageData[g][iAngle], 1, GarageData[g][iVirtualWorld]);
  18807. if(GarageData[g][UseHouse]) IsInHouseID[playerid] = GarageData[g][gHouseID];
  18808. else IsInGarageID[playerid] = g;
  18809. SetPlayerInterior(playerid, GarageData[g][InsideInt]);
  18810. return true;
  18811. }
  18812. }
  18813. }
  18814. }
  18815. if(IsPlayerInRangeOfPoint(playerid, 5.0, -4118.1626, 1863.7806, -6.0066)) //pirate ship
  18816. {
  18817. new Float:x, Float:y, Float:z;
  18818. GetPlayerPos(playerid, x, y, z);
  18819. SetPlayerPos(playerid, x, y, z + 20.0);
  18820. TogglePlayerControllable(playerid, false);
  18821. SetTimerEx("PutPlayerInShip", 500, 0, "i", playerid);
  18822. return true;
  18823. }
  18824. new model = GetVehicleModel(vid);
  18825. UnlockAchievement(playerid,12);
  18826. if(model == 592 && vid > 0)
  18827. {
  18828. RemovePlayerFromVehicle(playerid);
  18829. SetPlayerPos(playerid,315.747528,973.342773,1961.580932);
  18830. SetPlayerFacingAngle(playerid,4.525218);
  18831. SetPlayerInterior(playerid,9);
  18832. return true;
  18833. }
  18834. // Aperture
  18835. else if(IsPlayerInRangeOfPoint(playerid,2.5,281.6272,1821.7705,17.6406)) //Area51 Onto Runway
  18836. {
  18837. if(vid > 0)
  18838. {
  18839. SetVehiclePos(vid,291.2745,1821.3871,17.6406);
  18840. SetVehicleZAngle(vid,265.0996);
  18841. }
  18842. else
  18843. {
  18844. SetPlayerPos(playerid,291.2745,1821.3871,17.6406);
  18845. SetPlayerFacingAngle(playerid,265.0996);
  18846. }
  18847. return true;
  18848. }
  18849. else if(IsPlayerInRangeOfPoint(playerid,2.5,291.2745,1821.3871,17.6406) && Faction[playerid] == FACTION_RESEARCH) //Area51 Off Runway
  18850. {
  18851. if(vid > 0)
  18852. {
  18853. SetVehiclePos(vid,281.6272,1821.7705,17.6406);
  18854. SetVehicleZAngle(vid,265.0996);
  18855. }
  18856. else
  18857. {
  18858. SetPlayerPos(playerid,281.6272,1821.7705,17.6406);
  18859. SetPlayerFacingAngle(playerid,265.0996);
  18860. }
  18861. return true;
  18862. }
  18863. else if(IsPlayerInRangeOfPoint(playerid,10.0,135.2250,1952.6047,19.4092) && Faction[playerid] == FACTION_RESEARCH) //Area51 In base
  18864. {
  18865. if(vid > 0)
  18866. {
  18867. SetVehiclePos(vid,134.8420,1929.8167,19.2142);
  18868. SetVehicleZAngle(vid,180.0);
  18869. }
  18870. }
  18871. else if(IsPlayerInRangeOfPoint(playerid,10.0,134.8420,1929.8167,19.2142) && Faction[playerid] == FACTION_RESEARCH) //Area51 Out base
  18872. {
  18873. if(vid > 0)
  18874. {
  18875. SetVehiclePos(vid,135.2250,1952.6047,19.4092);
  18876. SetVehicleZAngle(vid,0.0);
  18877. return true;
  18878. }
  18879. }
  18880. //Aperture Post
  18881. else if(IsPlayerInRangeOfPoint(playerid, 2.0, -119.2304,1607.1378,18.1936) && Faction[playerid] == FACTION_RESEARCH)
  18882. {
  18883. SetPlayerPos(playerid,-121.0000,1607.1378,18.4500);
  18884. return true;
  18885. }
  18886. else if(IsPlayerInRangeOfPoint(playerid, 2.0, -107.9196,1607.6631,18.1957) && Faction[playerid] == FACTION_RESEARCH)
  18887. {
  18888. SetPlayerPos(playerid,-105.9196,1607.6631,18.4500);
  18889. return true;
  18890. }
  18891. else if(IsPlayerInRangeOfPoint(playerid,5.0, 974.4432,-1091.5729,24.2055)) //ST garage ENTER
  18892. {
  18893. if(Faction[playerid] != FACTION_PROP) return true;
  18894. if(vid == 0)
  18895. {
  18896. SetPlayerPos(playerid,1484.3281,-2592.6111,13.6177);
  18897. SetPlayerFacingAngle(playerid, 358.4381);
  18898. SetPlayerInterior(playerid,187);
  18899. SetPlayerVirtualWorldEx(playerid, 187);
  18900. }
  18901. else
  18902. {
  18903. SetVehiclePos(vid, 1481.2957,-2589.0603,13.6197);
  18904. SetVehicleZAngle(vid, 360.0);
  18905. LinkVehicleToInteriorEx(vid, 187);
  18906. SetVehicleVirtualWorld(vid, 187);
  18907. foreach(new v: Player)
  18908. {
  18909. if(Logged{v})
  18910. {
  18911. if(GetPlayerVehicleID(v) == vid)
  18912. {
  18913. SetPlayerVirtualWorldEx(v, 187);
  18914. SetPlayerInterior(v, 187);
  18915. }
  18916. }
  18917. }
  18918. }
  18919. ShowInfoText(playerid,"~W~ST garagem~N~~R~escreva /sair para voltar",5000);
  18920. return true;
  18921. }
  18922. else if(IsPlayerInRangeOfPoint(playerid, 10.0, -63.7647, -1116.42, 1.078)) //rosmc garage enter
  18923. {
  18924. if(vid == 0) Teleport(playerid, -108.818, -1136.22, 1001.34, 90.0, 1, 3);
  18925. else
  18926. {
  18927. SetVehiclePos(vid, -113.4797, -1137.5911, 1001.5186);
  18928. SetVehicleZAngle(vid, 90.0);
  18929. LinkVehicleToInteriorEx(vid, 1);
  18930. SetVehicleVirtualWorld(vid, 3);
  18931. foreach(new v: Player)
  18932. {
  18933. if(Logged{v})
  18934. {
  18935. if(GetPlayerVehicleID(v) == vid)
  18936. {
  18937. SetPlayerVirtualWorldEx(v, 3);
  18938. SetPlayerInterior(v, 1);
  18939. }
  18940. }
  18941. }
  18942. }
  18943. ShowInfoText(playerid,"~W~RosMC garage~N~~R~escreva /sair para voltar",5000);
  18944. return true;
  18945. }
  18946. else if(IsPlayerInRangeOfPoint(playerid,5.0, 623.303771, -598.885620, 17.077930)) //dpd garage ENTER
  18947. {
  18948. if(!IsCop(playerid)) return SysMsg(playerid, "Você deve ser um policial se quiser entrar nesta garagem.");
  18949. if(vid == 0)
  18950. {
  18951. SetPlayerPos(playerid,2300.9836,2498.7104,3.2734);
  18952. SetPlayerFacingAngle(playerid, 180.0);
  18953. SetPlayerVirtualWorldEx(playerid, 911);
  18954. }
  18955. else
  18956. {
  18957. SetVehiclePos(vid, 2300.9836,2498.7104,3.2734);
  18958. SetVehicleZAngle(vid, 180.0);
  18959. SetVehicleVirtualWorld(vid, 911);
  18960. foreach(new v: Player)
  18961. {
  18962. if(Logged{v})
  18963. {
  18964. if(GetPlayerVehicleID(v) == vid)
  18965. {
  18966. SetPlayerVirtualWorldEx(v, 911);
  18967. }
  18968. }
  18969. }
  18970. }
  18971. ShowInfoText(playerid,"~W~DPD garagem~N~~R~escreva /sair para voltar",5000);
  18972. return true;
  18973. }
  18974. else if(IsPlayerInRangeOfPoint(playerid,5.0, 1198.8041,254.2202,19.5547)) //SAN garage ENTER
  18975. {
  18976. if(Faction[playerid] != FACTION_NEWS) return SysMsg(playerid,"Você não pode entrar nesta garagem.");
  18977. if(vid == 0)
  18978. {
  18979. SetPlayerPos(playerid, 2040.6063, -2587.3342, 13.6177);
  18980. SetPlayerFacingAngle(playerid, 90.0);
  18981. SetPlayerInterior(playerid,6);
  18982. SetPlayerVirtualWorldEx(playerid, 558822);
  18983. }
  18984. else
  18985. {
  18986. SetVehiclePos(vid, 2036.1995, -2593.0525, 13.6216);
  18987. SetVehicleZAngle(vid, 90.0);
  18988. LinkVehicleToInteriorEx(vid, 6);
  18989. SetVehicleVirtualWorld(vid, 558822);
  18990. foreach(new v: Player)
  18991. {
  18992. if(Logged{v})
  18993. {
  18994. if(GetPlayerVehicleID(v) == vid)
  18995. {
  18996. SetPlayerVirtualWorldEx(v, 558822);
  18997. SetPlayerInterior(v, 6);
  18998. }
  18999. }
  19000. }
  19001. }
  19002. ShowInfoText(playerid,"~W~SAN garagem~N~~R~escreva /sair para voltar",5000);
  19003. return true;
  19004. }
  19005. else if(IsPlayerInRangeOfPoint(playerid, 5.0, 844.2215, -598.8593, 18.4219)) //swat garage ENTER
  19006. {
  19007. if(Faction[playerid] != FACTION_COP) return SysMsg(playerid,"Você não pode entrar nesta garagem.");
  19008. if(vid == 0)
  19009. {
  19010. SetPlayerPos(playerid, 2040.6063, -2587.3342, 13.6177);
  19011. SetPlayerFacingAngle(playerid, 90.0);
  19012. SetPlayerInterior(playerid,6);
  19013. SetPlayerVirtualWorldEx(playerid, 558821);
  19014. }
  19015. else
  19016. {
  19017. SetVehiclePos(vid, 2036.1995, -2593.0525, 13.6216);
  19018. SetVehicleZAngle(vid, 90.0);
  19019. LinkVehicleToInteriorEx(vid, 6);
  19020. SetVehicleVirtualWorld(vid, 558821);
  19021. foreach(new v: Player)
  19022. {
  19023. if(Logged{v})
  19024. {
  19025. if(GetPlayerVehicleID(v) == vid)
  19026. {
  19027. SetPlayerVirtualWorldEx(v, 558821);
  19028. SetPlayerInterior(v, 6);
  19029. }
  19030. }
  19031. }
  19032. }
  19033. ShowInfoText(playerid,"~W~Swat garagem~N~~R~escreva /sair para voltar",5000);
  19034. return true;
  19035. }
  19036. else if(IsPlayerInRangeOfPoint(playerid, 5.0, 1239.3077, 180.7602, 19.9204)) //info center left entrance
  19037. {
  19038. if(vid == 0) return SysMsg(playerid, "Você deve estar em um veículo para usar esta entrada.");
  19039. if(!IsRentalCar(vid)) return SysMsg(playerid, "O veículo deve ser um carro alugado.");
  19040. SetVehiclePos(vid, 1245.4321, 170.6587, 2086.3684);
  19041. SetVehicleZAngle(vid, 180.0);
  19042. LinkVehicleToInteriorEx(vid, 3);
  19043. SetVehicleVirtualWorld(vid, 40073);
  19044. new b = GetBizzIDFromSQL(73);
  19045. foreach(new v: Player)
  19046. {
  19047. if(Logged{v} && GetPlayerVehicleID(v) == vid)
  19048. {
  19049. SetPlayerVirtualWorldEx(v, 40073);
  19050. SetPlayerInterior(v, 3);
  19051. IsInBizzID[v] = b;
  19052. }
  19053. }
  19054. }
  19055. else if(IsPlayerInRangeOfPoint(playerid, 5.0, 1219.8643, 189.4231, 19.9018)) //info center right entrance
  19056. {
  19057. if(vid == 0) return SysMsg(playerid, "Você deve estar em um veículo para usar esta entrada.");
  19058. SetVehiclePos(vid, 1224.1946, 171.3404, 2086.3726);
  19059. SetVehicleZAngle(vid, 180.0);
  19060. LinkVehicleToInteriorEx(vid, 3);
  19061. SetVehicleVirtualWorld(vid, 40073);
  19062. new b = GetBizzIDFromSQL(73);
  19063. IsInBizzID[playerid] = b;
  19064. foreach(new v: Player)
  19065. {
  19066. if(Logged{v})
  19067. {
  19068. if(GetPlayerVehicleID(v) == vid)
  19069. {
  19070. SetPlayerVirtualWorldEx(v, 40073);
  19071. SetPlayerInterior(v, 3);
  19072. IsInBizzID[v] = b;
  19073. }
  19074. }
  19075. }
  19076. }
  19077. else if(IsPlayerInRangeOfPoint(playerid, 5.0, 617.8813, 1667.3865, 6.9922)) //Trucking Garage 1
  19078. {
  19079. if(Faction[playerid] != FACTION_TRUCKING) return SysMsg(playerid, "Só os camionistas podem entrar na garagem.");
  19080. if(vid > 0)
  19081. {
  19082. SetVehiclePos(vid, 1062.526489, 2084.312500, 11.83835);
  19083. SetVehicleZAngle(vid, 270.0);
  19084. ShowInfoText(playerid,"~W~Elite trucking garagem~N~~R~escreva /sair para voltar",5000);
  19085. }
  19086. return true;
  19087. }
  19088. else if(IsPlayerInRangeOfPoint(playerid, 5.0, 584.7940, 1644.5438, 6.9922)) //Trucking Garage 2
  19089. {
  19090. if(Faction[playerid] != FACTION_TRUCKING) return SysMsg(playerid, "Só os camionistas podem entrar na garagem.");
  19091. if(vid > 0)
  19092. {
  19093. SetVehiclePos(vid, 1062.935791, 2132.715087, 11.839662);
  19094. SetVehicleZAngle(vid, 255.4);
  19095. ShowInfoText(playerid,"~W~Elite trucking garagem~N~~R~escreva /sair para voltar",5000);
  19096. }
  19097. return true;
  19098. }
  19099. else if(IsPlayerInRangeOfPoint(playerid, 7.0, 219.3465,8.0401,2.2700)) // BB Garage
  19100. {
  19101. if(vid > 0)
  19102. {
  19103. SetVehiclePos(vid, 1060.2075,2086.2024,10.5256);
  19104. SetVehicleZAngle(vid, 328.4567);
  19105. SetVehicleVirtualWorld(vid, 187);
  19106. foreach(new p: Player) if(GetPlayerVehicleID(p) == vid) SetPlayerVirtualWorldEx(p, 187);
  19107. return true;
  19108. }
  19109. else
  19110. {
  19111. SetPlayerPos(playerid,1060.2075,2086.2024,10.5256);
  19112. SetPlayerFacingAngle(playerid,328.4567);
  19113. SetPlayerVirtualWorldEx(playerid,187);
  19114. return true;
  19115. }
  19116. }
  19117. if(vid == 0)
  19118. {
  19119. new cVeh = GetClosestVehicle(playerid);
  19120. new Float:Pos[3];
  19121. GetVehiclePos(cVeh, Pos[0], Pos[1], Pos[2]);
  19122. if(GetVehicleModel(cVeh) == 519 && IsPlayerInRangeOfPoint(playerid, 15.0, Pos[0], Pos[1], Pos[2]))
  19123. {
  19124. Teleport(playerid, 1.752286,34.395935,1199.593750, 182.570526, 1, cVeh);
  19125. ShamalInterior[playerid] = cVeh;
  19126. return true;
  19127. }
  19128. if(GetVehicleModel(cVeh) == 508 && IsPlayerInRangeOfPoint(playerid, 10.0, Pos[0], Pos[1], Pos[2]))
  19129. {
  19130. if(Locked{cVeh}) return SysMsg(playerid, "A Caravana está trancada.");
  19131. Teleport(playerid, 2216.6523, -465.2169, 1023.7059, 0.0, 1, cVeh);
  19132. JourneyInterior[playerid] = cVeh;
  19133. return true;
  19134. }
  19135. if(GetVehicleModel(cVeh) == 454 && IsPlayerInRangeOfPoint(playerid, 15.0, Pos[0], Pos[1], Pos[2]))
  19136. {
  19137. if(Locked{cVeh}) return SysMsg(playerid, "Este Trópic está trancado.");
  19138. Teleport(playerid, 2120.3872, -94.9943, 950.1429, 0.0, 1, cVeh);
  19139. TropicInterior[playerid] = cVeh;
  19140. return true;
  19141. }
  19142. if(IsTrailer(cVeh) && IsPlayerInRangeOfPoint(playerid, 10.0, Pos[0], Pos[1], Pos[2]))
  19143. {
  19144. foreach(new i: Player)
  19145. {
  19146. if(TruckingTrailer[i] == cVeh)
  19147. {
  19148. if(IsTrucking[i] == 1 || DeliveringStock[i] == 1) Teleport(playerid, 585.0163, 1682.1957, 995.6417, 0.0, 2, cVeh);
  19149. return true;
  19150. }
  19151. }
  19152. Teleport(playerid, 585.0163, 1682.1957, 995.6417, 0.0, 1, cVeh);
  19153. TrailerInterior[playerid] = cVeh;
  19154. }
  19155. }
  19156. else if(vid > 0)
  19157. {
  19158. if(GetVehicleModel(vid) == 508)
  19159. {
  19160. Teleport(playerid, 2216.6523, -465.2169, 1023.7059, 0.0, 1, vid);
  19161. JourneyInterior[playerid] = vid;
  19162. return true;
  19163. }
  19164. if(GetVehicleModel(vid) == 454)
  19165. {
  19166. Teleport(playerid, 2120.3872, -94.9943, 950.1429, 0.0, 1, vid);
  19167. TropicInterior[playerid] = vid;
  19168. return true;
  19169. }
  19170. }
  19171. if(IsInPrison(playerid))
  19172. {
  19173. for(new w = 0; w < 16; w++)
  19174. {
  19175. if(IsPlayerInRangeOfPoint(playerid, 1.0, PrisonCellsOut[w][0], PrisonCellsOut[w][1], PrisonCellsOut[w][2]))
  19176. {
  19177. if(PrisonCellsLock[w] == 1) return SysMsg(playerid, "A porta da cela está trancada.");
  19178. else return SetPlayerPos(playerid, PrisonCellsIn[w][0], PrisonCellsIn[w][1], PrisonCellsIn[w][2]);
  19179. }
  19180. }
  19181. for(new w = 0; w < sizeof(PrisonDoors); w++)
  19182. {
  19183. if(IsPlayerInRangeOfPoint(playerid, 1.0, PrisonDoors[w][0], PrisonDoors[w][1], PrisonDoors[w][2]) && GetPlayerVirtualWorld(playerid) == PrisonWorldsOut[w])
  19184. {
  19185. if(PrisonDoorsLock[w] == 1) return SysMsg(playerid, "Esta porta está trancada.");
  19186. SetPlayerPos(playerid, PrisonDoors[w][4], PrisonDoors[w][5], PrisonDoors[w][6]);
  19187. SetPlayerFacingAngle(playerid, PrisonDoors[w][7]);
  19188. SetPlayerVirtualWorld(playerid, PrisonWorldsIn[w]);
  19189. return true;
  19190. }
  19191. else if(IsPlayerInRangeOfPoint(playerid, 1.0, PrisonDoors[w][4], PrisonDoors[w][5], PrisonDoors[w][6]) && GetPlayerVirtualWorld(playerid) == PrisonWorldsIn[w])
  19192. {
  19193. if(PrisonDoorsLock[w] == 1) return SysMsg(playerid, "Esta porta está trancada.");
  19194. if(w == 12)
  19195. {
  19196. TogglePlayerControllable(playerid, false);
  19197. SetTimerEx("UnFreezePlayer", 1000, 0, "d", playerid);
  19198. }
  19199. SetPlayerPos(playerid, PrisonDoors[w][0], PrisonDoors[w][1], PrisonDoors[w][2]);
  19200. SetPlayerFacingAngle(playerid, PrisonDoors[w][3]);
  19201. SetPlayerVirtualWorld(playerid, PrisonWorldsOut[w]);
  19202. return true;
  19203. }
  19204. }
  19205. }
  19206. foreach(new p: Player)
  19207. {
  19208. if(IsSpectating[p] == playerid)
  19209. {
  19210. SetPlayerVirtualWorldEx(p, GetPlayerVirtualWorld(playerid));
  19211. SetPlayerInterior(p, GetPlayerInterior(playerid));
  19212. PlayerSpectatePlayer(p, playerid);
  19213. }
  19214. }
  19215. return true;
  19216. }
  19217. CMD:ent(playerid, params[]) return cmd_entrar(playerid, params);
  19218. CMD:e(playerid, params[])
  19219. {
  19220. if(GetPlayerState(playerid) == 1) return cmd_entrar(playerid, params);
  19221. else return cmd_motor(playerid);
  19222. }
  19223. CMD:sair(playerid)
  19224. {
  19225. if(!Logged{playerid}) return true;
  19226. UnlockAchievement(playerid,13);
  19227. for(new i = 0; i < MAX_INTERIORS; i++)
  19228. {
  19229. if(IsPlayerInRangeOfPoint(playerid, 5.0, Interiors[i][iPosX], Interiors[i][iPosY], Interiors[i][iPosZ]) && GetPlayerVirtualWorld(playerid) == Interiors[i][iVirtualWorld] && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  19230. {
  19231. Teleport(playerid, Interiors[i][oPosX], Interiors[i][oPosY], Interiors[i][oPosZ], Interiors[i][oAngle], Interiors[i][oInteriorID], Interiors[i][oVirtualWorld]);
  19232. if(Interiors[i][interiorID] == 115) IsInBizzID[playerid] = GetBizzID("SANews HQ Corporation");
  19233. if(Interiors[i][oInteriorID] == 0 && Interiors[i][oVirtualWorld] == 0)
  19234. {
  19235. IsInHouseID[playerid] = -1;
  19236. IsInBizzID[playerid] = -1;
  19237. IsInGarageID[playerid] = -1;
  19238. }
  19239. return true;
  19240. }
  19241. }
  19242. if(IsInGarageID[playerid] != -1 && GetPlayerVirtualWorld(playerid) == GarageData[IsInGarageID[playerid]][iVirtualWorld])
  19243. {
  19244. new g = IsInGarageID[playerid];
  19245. if(IsPlayerInAnyVehicle(playerid))
  19246. {
  19247. if(GarageCheck(g, 0)) return SysMsg(playerid, "Há atualmente um veículo bloqueando sua saída.");
  19248. new vid = GetPlayerVehicleID(playerid);
  19249. SetVehiclePos(vid, GarageData[g][oPosX], GarageData[g][oPosY], GarageData[g][oPosZ]);
  19250. SetVehicleVirtualWorld(vid, 0);
  19251. LinkVehicleToInterior(vid, 0);
  19252. SetVehicleZAngle(vid, GarageData[g][oVehicleAngle]);
  19253. foreach(new i: Player)
  19254. {
  19255. if(GetPlayerVehicleID(i) == vid)
  19256. {
  19257. SetPlayerVirtualWorld(i, 0);
  19258. SetPlayerInterior(i, 0);
  19259. IsInGarageID[i] = -1;
  19260. }
  19261. }
  19262. return true;
  19263. }
  19264. else
  19265. {
  19266. SetPlayerPos(playerid, GarageData[g][oPosX], GarageData[g][oPosY], GarageData[g][oPosZ]);
  19267. SetPlayerVirtualWorld(playerid, 0);
  19268. SetPlayerInterior(playerid, 0);
  19269. IsInGarageID[playerid] = -1;
  19270. }
  19271. return true;
  19272. }
  19273. new VehId = GetPlayerVehicleID(playerid);
  19274. if(IsPlayerInRangeOfPoint(playerid,7.5,315.747528,973.342773,1961.580932)) //Adromada
  19275. {
  19276. for(new v = 1, x = GetVehiclePoolSize(); v <= x; v++)
  19277. {
  19278. new model = GetVehicleModel(v);
  19279. if(model == 592)
  19280. {
  19281. new Float:ox,Float:oy,Float:oz,Float:ang;
  19282. GetVehiclePos(v,ox,oy,oz);
  19283. GetVehicleZAngle(v,ang);
  19284. if(ang < 90 && ang > 0)
  19285. {
  19286. SetPlayerPos(playerid,ox-5,oy-5,oz);
  19287. SetPlayerInterior(playerid,0);
  19288. SetPlayerVirtualWorldEx(playerid,0);
  19289. return true;
  19290. }
  19291. else if(ang > 89 && ang < 181)
  19292. {
  19293. SetPlayerPos(playerid,ox-5,oy+5,oz);
  19294. SetPlayerInterior(playerid,0);
  19295. SetPlayerVirtualWorldEx(playerid,0);
  19296. return true;
  19297. }
  19298. else if(ang < 271 && ang > 180)
  19299. {
  19300. SetPlayerPos(playerid,ox+5,oy+5,oz);
  19301. SetPlayerInterior(playerid,0);
  19302. SetPlayerVirtualWorldEx(playerid,0);
  19303. return true;
  19304. }
  19305. else if(ang > 270 && ang < 0)
  19306. {
  19307. SetPlayerPos(playerid,ox+5,oy-5,oz);
  19308. SetPlayerInterior(playerid,0);
  19309. SetPlayerVirtualWorldEx(playerid,0);
  19310. return true;
  19311. }
  19312. }
  19313. }
  19314. }
  19315. else if(ShamalInterior[playerid] > 0)
  19316. {
  19317. new Float:sPos[3];
  19318. GetVehiclePos(ShamalInterior[playerid], sPos[0], sPos[1], sPos[2]);
  19319. SetPlayerPos(playerid, sPos[0]+2.0, sPos[1]+2.0, sPos[2]);
  19320. SetPlayerInterior(playerid, 0);
  19321. SetPlayerVirtualWorldEx(playerid, 0);
  19322. ShamalInterior[playerid] = 0;
  19323. return true;
  19324. }
  19325. else if(JourneyInterior[playerid] > 0)
  19326. {
  19327. new seatavailable = 1;
  19328. foreach(new pl: Player)
  19329. {
  19330. if(GetPlayerVehicleID(pl) == JourneyInterior[playerid] && GetPlayerState(pl) == PLAYER_STATE_PASSENGER)
  19331. {
  19332. seatavailable = 0;
  19333. }
  19334. }
  19335. SetPlayerInterior(playerid, 0);
  19336. SetPlayerVirtualWorldEx(playerid, GetVehicleVirtualWorld(JourneyInterior[playerid]));
  19337. if(seatavailable == 0)
  19338. {
  19339. new Float:sPos[3];
  19340. GetVehiclePos(JourneyInterior[playerid], sPos[0], sPos[1], sPos[2]);
  19341. SetPlayerPos(playerid, sPos[0]+2.0, sPos[1]+2.0, sPos[2]);
  19342. }
  19343. else PutPlayerInVehicle(playerid, JourneyInterior[playerid], 1);
  19344. JourneyInterior[playerid] = 0;
  19345. return true;
  19346. }
  19347. else if(TropicInterior[playerid] > 0)
  19348. {
  19349. new Float:x, Float:y, Float:z, Float:a;
  19350. GetVehiclePos(TropicInterior[playerid], x, y, z);
  19351. GetVehicleZAngle(TropicInterior[playerid], a);
  19352. TogglePlayerControllable(playerid, 0);
  19353. SetPlayerPos(playerid, x, y, z + 5);
  19354. SetPlayerInterior(playerid, 0);
  19355. SetPlayerVirtualWorld(playerid, 0);
  19356. TropicInterior[playerid] = 0;
  19357. TeleportTimer[playerid] = 4;
  19358. BeingTeleported{playerid} = true;
  19359. return true;
  19360. }
  19361. else if(TrailerInterior[playerid] > 0)
  19362. {
  19363. new Float:x, Float:y, Float:z, Float:a;
  19364. GetVehiclePos(TrailerInterior[playerid], x, y, z);
  19365. GetVehicleZAngle(TrailerInterior[playerid], a);
  19366. TogglePlayerControllable(playerid, 0);
  19367. SetPlayerPos(playerid, x, y, z + 3);
  19368. SetPlayerInterior(playerid, 0);
  19369. SetPlayerVirtualWorld(playerid, GetVehicleVirtualWorld(TrailerInterior[playerid]));
  19370. TrailerInterior[playerid] = 0;
  19371. TeleportTimer[playerid] = 4;
  19372. BeingTeleported{playerid} = true;
  19373. return true;
  19374. }
  19375. else if(IsPlayerInRangeOfPoint(playerid, 7.0, 1061.1815,2084.6909,10.5256) && GetPlayerVirtualWorld(playerid) == 187) //BB Garage
  19376. {
  19377. if(VehId > 0)
  19378. {
  19379. SetVehiclePos(VehId, 219.3465,8.0401,2.2797);
  19380. SetVehicleZAngle(VehId, 269.8848);
  19381. SetVehicleVirtualWorld(VehId, 0);
  19382. foreach(new p: Player)
  19383. {
  19384. if(GetPlayerVehicleID(p) == VehId)
  19385. {
  19386. SetPlayerVirtualWorldEx(p, 0);
  19387. }
  19388. }
  19389. }
  19390. else
  19391. {
  19392. SetPlayerPos(playerid,219.3465,8.0401,2.2797);
  19393. SetPlayerFacingAngle(playerid,269.8848);
  19394. SetPlayerInterior(playerid,0);
  19395. SetPlayerVirtualWorldEx(playerid,0);
  19396. }
  19397. return true;
  19398. }
  19399. else if(IsPlayerInRangeOfPoint(playerid, 5.0, 1481.2957,-2589.0603,13.6197) && GetPlayerVirtualWorld(playerid) == 187) //ST Garage EXIT
  19400. {
  19401. if(VehId == 0)
  19402. {
  19403. SetPlayerPos(playerid, 974.4432,-1091.5729,24.2055);
  19404. SetPlayerFacingAngle(playerid, 269.5953);
  19405. SetPlayerInterior(playerid, 0);
  19406. SetPlayerVirtualWorldEx(playerid, 0);
  19407. }
  19408. else
  19409. {
  19410. SetVehiclePos(VehId, 974.4432,-1091.5729,24.2055);
  19411. SetVehicleZAngle(VehId, 269.5953);
  19412. SetVehicleVirtualWorld(VehId, 0);
  19413. LinkVehicleToInteriorEx(VehId, 0);
  19414. foreach(new v: Player)
  19415. {
  19416. if(Logged{v} && GetPlayerVehicleID(v) == VehId)
  19417. {
  19418. SetPlayerVirtualWorldEx(v, 0);
  19419. SetPlayerInterior(v, 0);
  19420. }
  19421. }
  19422. }
  19423. return true;
  19424. }
  19425. else if(IsPlayerInRangeOfPoint(playerid, 5.0, -113.4797,-1137.5911,1001.5186) && GetPlayerVirtualWorld(playerid) == 3) //RosMC Garage EXIT
  19426. {
  19427. if(VehId == 0)
  19428. {
  19429. SetPlayerPos(playerid, -63.7647, -1116.42, 1.078);
  19430. SetPlayerFacingAngle(playerid, 68.373);
  19431. SetPlayerInterior(playerid, 0);
  19432. SetPlayerVirtualWorldEx(playerid, 0);
  19433. }
  19434. else
  19435. {
  19436. SetVehiclePos(VehId, -67.4992, -1119.4043, 0.7837);
  19437. SetVehicleZAngle(VehId, 70.0);
  19438. SetVehicleVirtualWorld(VehId, 0);
  19439. LinkVehicleToInteriorEx(VehId, 0);
  19440. foreach(new v: Player)
  19441. {
  19442. if(Logged{v} && GetPlayerVehicleID(v) == VehId)
  19443. {
  19444. SetPlayerVirtualWorldEx(v, 0);
  19445. SetPlayerInterior(v, 0);
  19446. }
  19447. }
  19448. }
  19449. return true;
  19450. }
  19451. else if(IsPlayerInRangeOfPoint(playerid, 5.0, 2300.9836,2498.7104,3.2734) && GetPlayerVirtualWorld(playerid) == 911) //DPD Garage EXIT
  19452. {
  19453. if(VehId == 0) return true;
  19454. else
  19455. {
  19456. SetPlayerVirtualWorldEx(playerid, 0);
  19457. SetVehiclePos(VehId, 623.303771, -598.885620, 17.077930);
  19458. SetVehicleZAngle(VehId, 270.0);
  19459. SetVehicleVirtualWorld(VehId, 0);
  19460. foreach(new v: Player)
  19461. {
  19462. if(Logged{v} && GetPlayerVehicleID(v) == VehId)
  19463. {
  19464. SetPlayerVirtualWorldEx(v, 0);
  19465. }
  19466. }
  19467. }
  19468. return true;
  19469. }
  19470. else if(IsPlayerInRangeOfPoint(playerid, 5.0, 2036.1995, -2593.0525, 13.6216) && GetPlayerVirtualWorld(playerid) == 558822) //SAN Garage EXIT
  19471. {
  19472. if(VehId == 0)
  19473. {
  19474. SetPlayerPos(playerid, 1198.8041,254.2202,19.5547);
  19475. SetPlayerFacingAngle(playerid, 335.8774);
  19476. SetPlayerInterior(playerid, 0);
  19477. SetPlayerVirtualWorldEx(playerid, 0);
  19478. }
  19479. else
  19480. {
  19481. SetVehiclePos(VehId, 1200.2883, 257.5103, 19.3547);
  19482. SetVehicleZAngle(VehId, 335.8774);
  19483. SetVehicleVirtualWorld(VehId, 0);
  19484. LinkVehicleToInteriorEx(VehId, 0);
  19485. foreach(new v: Player)
  19486. {
  19487. if(Logged{v} && GetPlayerVehicleID(v) == VehId)
  19488. {
  19489. SetPlayerVirtualWorldEx(v, 0);
  19490. SetPlayerInterior(v, 0);
  19491. }
  19492. }
  19493. }
  19494. return true;
  19495. }
  19496. else if(IsPlayerInRangeOfPoint(playerid, 5.0, 2036.1995, -2593.0525, 13.6216) && GetPlayerVirtualWorld(playerid) == 558821) //SWAT Garage EXIT
  19497. {
  19498. if(VehId == 0)
  19499. {
  19500. SetPlayerPos(playerid, 844.2215, -598.8593, 18.4219);
  19501. SetPlayerFacingAngle(playerid, 335.8774);
  19502. SetPlayerInterior(playerid, 0);
  19503. SetPlayerVirtualWorldEx(playerid, 0);
  19504. }
  19505. else
  19506. {
  19507. SetVehiclePos(VehId, 844.2215, -598.8593, 18.4219);
  19508. SetVehicleZAngle(VehId, 335.8774);
  19509. SetVehicleVirtualWorld(VehId, 0);
  19510. LinkVehicleToInteriorEx(VehId, 0);
  19511. foreach(new v: Player)
  19512. {
  19513. if(Logged{v} && GetPlayerVehicleID(v) == VehId)
  19514. {
  19515. SetPlayerVirtualWorldEx(v, 0);
  19516. SetPlayerInterior(v, 0);
  19517. }
  19518. }
  19519. }
  19520. return true;
  19521. }
  19522. else if(IsPlayerInRangeOfPoint(playerid, 5.0, 1224.2386, 184.9009, 2090.1450)) //info center garage left exit
  19523. {
  19524. if(VehId == 0) return SysMsg(playerid, "Você deve estar em um veículo para usar esta saída.");
  19525. SetVehiclePos(VehId, 1219.8643, 189.4231, 19.9018);
  19526. SetVehicleZAngle(VehId, 335.8774);
  19527. SetVehicleVirtualWorld(VehId, 0);
  19528. LinkVehicleToInteriorEx(VehId, 0);
  19529. IsInBizzID[playerid] = -1;
  19530. foreach(new v: Player)
  19531. {
  19532. if(Logged{v} && GetPlayerVehicleID(v) == VehId)
  19533. {
  19534. SetPlayerVirtualWorldEx(v, 0);
  19535. SetPlayerInterior(v, 0);
  19536. IsInBizzID[v] = -1;
  19537. }
  19538. }
  19539. }
  19540. else if(IsPlayerInRangeOfPoint(playerid, 5.0, 1244.7186, 184.5773 ,2090.0583)) //info center garage right exit
  19541. {
  19542. if(VehId == 0) return SysMsg(playerid, "Você deve estar em um veículo para usar esta saída.");
  19543. SetVehiclePos(VehId, 1239.3077, 180.7602, 19.9204);
  19544. SetVehicleZAngle(VehId, 335.8774);
  19545. SetVehicleVirtualWorld(VehId, 0);
  19546. LinkVehicleToInteriorEx(VehId, 0);
  19547. IsInBizzID[playerid] = -1;
  19548. foreach(new v: Player)
  19549. {
  19550. if(Logged{v} && GetPlayerVehicleID(v) == VehId)
  19551. {
  19552. SetPlayerVirtualWorldEx(v, 0);
  19553. SetPlayerInterior(v, 0);
  19554. IsInBizzID[v] = -1;
  19555. }
  19556. }
  19557. }
  19558. if(IsPlayerInRangeOfPoint(playerid, 5.0, -2887.7366, 1914.3883, -18.6266)) //pirate ship
  19559. {
  19560. Teleport(playerid, -4118.1626, 1863.7806, 1.0000, 0.0, 0, 0);
  19561. return true;
  19562. }
  19563. else if(IsPlayerInRangeOfPoint(playerid,7.5,1064.570678, 2085.178955, 10.820312)) //Trucking Garage 1
  19564. {
  19565. if(VehId > 0)
  19566. {
  19567. SetVehiclePos(VehId, 608.7408, 1661.5490, 6.9922);
  19568. SetVehicleZAngle(VehId, 33.82);
  19569. }
  19570. return true;
  19571. }
  19572. else if(IsPlayerInRangeOfPoint(playerid,7.5,1065.835571, 2131.229248, 10.820312)) //Trucking Garage 2
  19573. {
  19574. if(VehId > 0)
  19575. {
  19576. SetVehiclePos(VehId, 627.3016, 1673.2096, 6.9922);
  19577. SetVehicleZAngle(VehId, 33.82);
  19578. }
  19579. return true;
  19580. }
  19581. else if(IsPlayerInRangeOfPoint(playerid, 5.0, 2807.619873, -1171.899902, 1025.570312) && GetPlayerVirtualWorld(playerid) == 9876543)
  19582. {
  19583. SetPlayerPos(playerid, -691.797058, 939.202087, 13.632812);
  19584. SetPlayerVirtualWorldEx(playerid, 0);
  19585. SetPlayerInterior(playerid, 0);
  19586. return true;
  19587. }
  19588. else if(IsPlayerInRangeOfPoint(playerid, 15.0, 2299.4983, 2498.2363, 3.2734) && VehId > 0 && Faction[playerid] == FACTION_COP && GetPlayerVirtualWorld(playerid) == 911)
  19589. {
  19590. SetVehiclePos(VehId, 623.303771, -598.885620, 17.077930);
  19591. SetVehicleZAngle(VehId, 270.0);
  19592. SetVehicleVirtualWorld(VehId, 0);
  19593. foreach(new p: Player)
  19594. {
  19595. if(GetPlayerVehicleID(p) == VehId)
  19596. {
  19597. SetPlayerVirtualWorldEx(p, 0);
  19598. }
  19599. }
  19600. return true;
  19601. }
  19602. //Aperture Post
  19603. else if(IsPlayerInRangeOfPoint(playerid, 2.0, -121.2304,1607.1378,18.1936) && Faction[playerid] == FACTION_RESEARCH) SetPlayerPos(playerid,-119.0000,1607.1378,18.1936);
  19604. else if(IsPlayerInRangeOfPoint(playerid, 2.0, -105.9196,1607.6631,18.1957) && Faction[playerid] == FACTION_RESEARCH) SetPlayerPos(playerid,-107.9196,1607.6631,18.1957);
  19605. else if(IsInHouseID[playerid] != -1)
  19606. {
  19607. new h = IsInHouseID[playerid];
  19608. if(HouseData[h][HouseExtVW] == 0) //This check is for houses that aren't flats.
  19609. {
  19610. if(HouseData[h][InsideID] == 11) //cheques if the interior is a custom interior.
  19611. {
  19612. if(IsPlayerInRangeOfPoint(playerid, 2.0, HouseData[h][intPosX], HouseData[h][intPosY], HouseData[h][intPosZ]))
  19613. {
  19614. Teleport(playerid, HouseData[h][oPosX], HouseData[h][oPosY], HouseData[h][oPosZ], 0.0, 0, 0);
  19615. if(HouseData[h][HouseLocked] == 1) SysMsg(playerid,"Você pulou pela janela enquanto a porta estava trancada.");
  19616. if(HouseData[h][HMusicPlaying] == 1) StopAudioStreamForPlayer(playerid);
  19617. HouseData[h][HouseOccupants] --;
  19618. IsInHouseID[playerid] = -1;
  19619. CancelEdit(playerid);
  19620. return true;
  19621. }
  19622. }
  19623. else //The interior is not a custom interior.
  19624. {
  19625. if(IsPlayerInRangeOfPoint(playerid, 2.0, InsideIDs[HouseData[h][InsideID] - 1][InsideX], InsideIDs[HouseData[h][InsideID] - 1][InsideY], InsideIDs[HouseData[h][InsideID] - 1][InsideZ]))
  19626. {
  19627. Teleport(playerid, HouseData[h][oPosX], HouseData[h][oPosY], HouseData[h][oPosZ], 0.0, 0, 0);
  19628. if(HouseData[h][HouseLocked] == 1) SysMsg(playerid,"Você pulou pela janela enquanto a porta estava trancada.");
  19629. if(HouseData[h][HMusicPlaying] == 1) StopAudioStreamForPlayer(playerid);
  19630. HouseData[h][HouseOccupants] --;
  19631. IsInHouseID[playerid] = -1;
  19632. CancelEdit(playerid);
  19633. return true;
  19634. }
  19635. }
  19636. }
  19637. else
  19638. {
  19639. if(HouseData[h][InsideID] == 11) //cheques if the interior is a custom interior.
  19640. {
  19641. if(IsPlayerInRangeOfPoint(playerid, 2.0, HouseData[h][intPosX], HouseData[h][intPosY], HouseData[h][intPosZ]))
  19642. {
  19643. Teleport(playerid, HouseData[h][oPosX], HouseData[h][oPosY], HouseData[h][oPosZ], 0.0, 0, 0);
  19644. if(HouseData[h][HouseLocked] == 1) SysMsg(playerid,"Você pulou pela janela enquanto a porta estava trancada.");
  19645. if(HouseData[h][HMusicPlaying] == 1) StopAudioStreamForPlayer(playerid);
  19646. HouseData[h][HouseOccupants] --;
  19647. IsInHouseID[playerid] = -1;
  19648. CancelEdit(playerid);
  19649. return true;
  19650. }
  19651. }
  19652. else //The interior is not a custom interior.
  19653. {
  19654. if(IsPlayerInRangeOfPoint(playerid, 2.0, InsideIDs[HouseData[h][InsideID] - 1][InsideX], InsideIDs[HouseData[h][InsideID] - 1][InsideY], InsideIDs[HouseData[h][InsideID] - 1][InsideZ]))
  19655. {
  19656. Teleport(playerid, HouseData[h][oPosX], HouseData[h][oPosY], HouseData[h][oPosZ], 0.0, 2, HouseData[h][HouseExtVW]);
  19657. if(HouseData[h][HouseLocked] == 1) SysMsg(playerid,"Você pulou pela janela enquanto a porta estava trancada.");
  19658. if(HouseData[h][HMusicPlaying] == 1) StopAudioStreamForPlayer(playerid);
  19659. HouseData[h][HouseOccupants] --;
  19660. IsInHouseID[playerid] = -1;
  19661. CancelEdit(playerid);
  19662. return true;
  19663. }
  19664. }
  19665. }
  19666. }
  19667. else if(IsInBizzID[playerid] != -1)
  19668. {
  19669. new b = IsInBizzID[playerid];
  19670. if(GetPlayerVirtualWorld(playerid) == BizzData[b][BizzVW])
  19671. {
  19672. if(BizzData[b][IsSpecial] == 1) //cheques if the player is in a special business
  19673. {
  19674. if(IsPlayerInRangeOfPoint(playerid, 2.0, BizzData[b][iPosX], BizzData[b][iPosY], BizzData[b][iPosZ]))
  19675. {
  19676. Teleport(playerid, BizzData[b][oPosX], BizzData[b][oPosY], BizzData[b][oPosZ], 0.0, 0, BizzData[b][ExitVW]);
  19677. if(BizzData[b][BMusicPlaying] == 1) StopAudioStreamForPlayer(playerid);
  19678. BizzData[b][BizzOccupants] --;
  19679. IsInBizzID[playerid] = -1;
  19680. return true;
  19681. }
  19682. }
  19683. else //cheques if the player is in a standard business
  19684. {
  19685. if(IsPlayerInRangeOfPoint(playerid, 2.0, BInsideIDs[BizzData[b][BizzType]][InsideX], BInsideIDs[BizzData[b][BizzType]][InsideY], BInsideIDs[BizzData[b][BizzType]][InsideZ]))
  19686. {
  19687. Teleport(playerid, BizzData[b][oPosX], BizzData[b][oPosY], BizzData[b][oPosZ], 0.0, 0, BizzData[b][ExitVW]);
  19688. if(BizzData[b][BMusicPlaying] == 1) StopAudioStreamForPlayer(playerid);
  19689. BizzData[b][BizzOccupants] --;
  19690. IsInBizzID[playerid] = -1;
  19691. return true;
  19692. }
  19693. }
  19694. }
  19695. }
  19696. else if(IsInMotel[playerid] > 0 && GetPlayerVirtualWorld(playerid) == 50000+IsInMotel[playerid])
  19697. {
  19698. Teleport(playerid, MotelData[IsInMotel[playerid]][RoomX], MotelData[IsInMotel[playerid]][RoomY], MotelData[IsInMotel[playerid]][RoomZ], 0.0, 0, 0);
  19699. IsInMotel[playerid] = 0;
  19700. return true;
  19701. }
  19702. else if(ViewingMicksCar[playerid] >= 0)
  19703. {
  19704. DestroyVehicleEx(ViewingMicksCarID[playerid], "ViewingMicksCarID 2");
  19705. ViewingMicksCar[playerid] = -1;
  19706. ViewingMicksCarID[playerid] = -1;
  19707. SetPlayerVirtualWorldEx(playerid, 0);
  19708. SetCameraBehindPlayer(playerid);
  19709. TogglePlayerControllable(playerid, 1);
  19710. ShowMessage(playerid, "Dillimore concessionária automotiva", "Você saiu Dillimore catálogo automóvel concessionária.\n\nObrigado pela visita, Volte sempre.", "Ok");
  19711. return true;
  19712. }
  19713. else if(ViewingBuyBikes[playerid] >= 0)
  19714. {
  19715. DestroyVehicleEx(ViewingBikeID[playerid], "ViewingBikeID[playerid] 2");
  19716. ViewingBuyBikes[playerid] = -1;
  19717. ViewingBikeID[playerid] = -1;
  19718. SetPlayerVirtualWorldEx(playerid, 0);
  19719. SetCameraBehindPlayer(playerid);
  19720. TogglePlayerControllable(playerid, 1);
  19721. ShowMessage(playerid, "Concessionária de motocicletas", "Você saiu do catálogo de concessionárias.\n\nObrigado pela visita, Volte sempre.", "Ok");
  19722. return true;
  19723. }
  19724. else if(ViewingBuyBoats[playerid] >= 0)
  19725. {
  19726. DestroyVehicleEx(ViewingBoatID[playerid], "ViewingboatID[playerid] 2");
  19727. ViewingBuyBoats[playerid] = -1;
  19728. ViewingBoatID[playerid] = -1;
  19729. SetPlayerVirtualWorldEx(playerid, 0);
  19730. SetCameraBehindPlayer(playerid);
  19731. TogglePlayerControllable(playerid, 1);
  19732. ShowMessage(playerid, "Concessionária de barcos", "Você saiu do catálogo de concessionárias.\n\nObrigado pela visita, Volte sempre.", "Ok");
  19733. return true;
  19734. }
  19735. if(IsInPrison(playerid))
  19736. {
  19737. for(new w = 0; w < 16; w++)
  19738. {
  19739. if(IsPlayerInRangeOfPoint(playerid, 1.0, PrisonCellsIn[w][0], PrisonCellsIn[w][1], PrisonCellsIn[w][2]))
  19740. {
  19741. if(PrisonCellsLock[w] == 1) return SysMsg(playerid, "A porta da cela está trancada.");
  19742. else return SetPlayerPos(playerid, PrisonCellsOut[w][0], PrisonCellsOut[w][1], PrisonCellsOut[w][2]);
  19743. }
  19744. }
  19745. }
  19746. foreach(new p: Player)
  19747. {
  19748. if(IsSpectating[p] == playerid)
  19749. {
  19750. SetPlayerVirtualWorldEx(p, GetPlayerVirtualWorld(playerid));
  19751. SetPlayerInterior(p, GetPlayerInterior(playerid));
  19752. PlayerSpectatePlayer(p, playerid);
  19753. }
  19754. }
  19755. return true;
  19756. }
  19757. CMD:revistar(playerid, params[])
  19758. {
  19759. if(!Logged{playerid}) return true;
  19760. if(PlayerLevel[playerid] < 3) return SysMsg(playerid,"Você precisa ser pelo menos nível 3 para usar isso.");
  19761. new playa = -1, name[MAX_PLAYER_NAME];
  19762. if(sscanf(params, "s[24]", name)) return SysMsg(playerid,"Use: /revistar [ID ou parte do nome ou ID estranho]");
  19763. if(strval(name) >= 500)
  19764. {
  19765. foreach(new p: Player)
  19766. {
  19767. if(MaskLabelNumber[p] == strval(name))
  19768. {
  19769. playa = p;
  19770. }
  19771. }
  19772. }
  19773. else playa = GetPlayerIDs(name);
  19774. if(playa == playerid) return SysMsg(playerid,"Você não pode se revistar.");
  19775. if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado.");
  19776. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  19777. new Float:tX,Float:tY,Float:tZ;
  19778. GetPlayerPos(playa,tX,tY,tZ);
  19779. if(!IsPlayerInRangeOfPoint(playerid,5.0,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para revistar-los.");
  19780. RequestedToFrisk[playa] = playerid;
  19781. SetTimerEx("CancelPlayerFrisk", 15000, 0, "ii", playerid, playa);
  19782. SendClientMessageF(playa, COLOR_WHITE, "%s quer revistar você, use '/aceitar revista' para continuar. (Isso será tempo limite em 15 segundos)", NameRP(playerid));
  19783. SendClientMessageF(playerid, COLOR_WHITE, "Você pediu para revistar %s. Espere ele(a) aceitar primeiro. (Isso será tempo limite em 15 segundos)", NameRP(playa));
  19784. return true;
  19785. }
  19786. CMD:vendarolhos(playerid, params[])
  19787. {
  19788. if(!Logged{playerid}) return true;
  19789. if(PlayerLevel[playerid] < 3) return SysMsg(playerid, "Você precisa ter no mínimo nível 3 para vendar os olhos de alguém.");
  19790. if(Inventory[playerid][Blindfold] == 0) return SysMsg(playerid, "Você precisa ter uma venda de pano para vendar os olhos de alguém.");
  19791. new playa = -1, name[MAX_PLAYER_NAME];
  19792. if(sscanf(params, "s[24]", name)) return SysMsg(playerid,"Use: /vendarolhos [Identificação ou parte do nome ou ID do Estrangeiro]");
  19793. if(strval(name) >= 500)
  19794. {
  19795. foreach(new p: Player)
  19796. {
  19797. if(MaskLabelNumber[p] == strval(name))
  19798. {
  19799. playa = p;
  19800. }
  19801. }
  19802. }
  19803. else playa = GetPlayerIDs(name);
  19804. if(Blindfolded[playa] == 1) return SysMsg(playerid, "Esse jogador já tem seus olhos vendados.");
  19805. if(playa == playerid) return SysMsg(playerid,"Você não pode colocar venda em seus proprios olhos.");
  19806. if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado.");
  19807. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  19808. new Float:tX,Float:tY,Float:tZ;
  19809. GetPlayerPos(playa,tX,tY,tZ);
  19810. if(!IsPlayerInRangeOfPoint(playerid,5.0,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto deste jogador.");
  19811. RequestedToBlindfold[playa] = playerid;
  19812. SetTimerEx("CancelPlayerBlindfold", 15000, 0, "ii", playerid, playa);
  19813. SendClientMessageF(playa, COLOR_WHITE, "%s quer tapar seus olhos com uma faixa, use '/aceitar blindfold' para continuar. (Pode demorar 15 segundos)", NameRP(playerid));
  19814. SendClientMessage(playa, COLOR_WHITE, "Certifique-se de que o jogador que tentou vendar seus olhos tenha feito um bom roleplay antes de aceitar.");
  19815. SendClientMessageF(playerid, COLOR_WHITE, "Você pediu para tapar os olhos de %s. Ele(a) precisa aceitar primeiro. (Pode demorar 15 segundos)", NameRP(playa));
  19816. return true;
  19817. }
  19818. CMD:destapar(playerid, params[])
  19819. {
  19820. if(!Logged{playerid}) return true;
  19821. new playa = -1, name[MAX_PLAYER_NAME];
  19822. if(sscanf(params, "s[24]", name)) return SysMsg(playerid,"Use: /destapar [Identificação ou parte do nome ou ID do Estrangeiro]");
  19823. if(strval(name) >= 500)
  19824. {
  19825. foreach(new p: Player)
  19826. {
  19827. if(MaskLabelNumber[p] == strval(name))
  19828. {
  19829. playa = p;
  19830. }
  19831. }
  19832. }
  19833. else playa = GetPlayerIDs(name);
  19834. if(Blindfolded[playa] == 0) return SysMsg(playerid, "Esse jogador não tem os olhos tapados.");
  19835. if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado.");
  19836. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  19837. if(playa == playerid && IsTied[playa] > 0) return SysMsg(playerid, "Você não pode remover uma Faixa de Tapar olhos de si mesmo.");
  19838. if(playa == playerid)
  19839. {
  19840. format(gstr, sizeof(gstr),"* %s se posiciona atrás da cabeça de %s desamarra a faixa. *",NameRP(playerid), NameRP(playa));
  19841. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  19842. SendClientMessage(playerid, COLOR_ORANGE, "Você removeu a faixa que tapava os olhos desse jogador.");
  19843. }
  19844. else
  19845. {
  19846. format(gstr, sizeof(gstr),"* %s remove a faixa que tapava os olhos de %s. *",NameRP(playerid), NameRP(playa));
  19847. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  19848. SendClientMessageF(playa, COLOR_ORANGE, "%s removeu a faixa que tapava seus olhos.", NameRP(playerid));
  19849. }
  19850. Inventory[playerid][Blindfold] = 1;
  19851. MySQLUpdateInt(SQLID[playerid], "HasBlindfold", Inventory[playerid][Blindfold], "players");
  19852. PlayerTextDrawHide(playa, BlindfoldEffect[playerid]);
  19853. GangZoneHideForPlayer(playa, BlindZone);
  19854. Blindfolded[playa] = 0;
  19855. return true;
  19856. }
  19857. CMD:vender(playerid, params[])
  19858. {
  19859. if(!Logged{playerid}) return true;
  19860. new element[10], playa = -1, price, slotid;
  19861. if(sscanf(params, "s[10]U(-1)", element, playa)) return SysMsg(playerid,"Use: /vender [casa/negocio/veiculo]");
  19862. if(strcmp("casa", element, true) == 0)
  19863. {
  19864. if(GetPlayerHouseCount(playerid) == 0) return SysMsg(playerid,"Você não tem uma casa.");
  19865. new id;
  19866. if(sscanf(params, "s[10]uii", element, playa, id, price))
  19867. {
  19868. for(new x = 0; x < MAX_HOUSE_PER_PLAYER; x++)
  19869. {
  19870. if(HasHouseKey[playerid][x] != -1)
  19871. {
  19872. SendClientMessageF(playerid, COLOR_WHITE, "Casa ID: %i - %s", x, HouseData[HasHouseKey[playerid][x]][HouseDescription]);
  19873. }
  19874. }
  19875. return SysMsg(playerid,"Use: /vender Casa [ID do jogador ou nome] [ID da casa acima] [preço]");
  19876. }
  19877. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  19878. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  19879. if(playa == playerid) return SysMsg(playerid,"Você não pode vender isso para si mesmo.");
  19880. if(id != 0 && id != 1) return SysMsg(playerid, "Casa inválida.");
  19881. if(HasHouseKey[playerid][id] == -1) return SysMsg(playerid, "Você não tem uma casa nesse slot.");
  19882. new Float:tX,Float:tY,Float:tZ;
  19883. GetPlayerPos(playa,tX,tY,tZ);
  19884. if(!IsPlayerInRangeOfPoint(playerid,4.0,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador.");
  19885. if(GetPlayerHouseCount(playa) >= MAX_HOUSE_PER_PLAYER) return SysMsg(playerid,"Esse jogador já têm uma chave de casa.");
  19886. if(price < 1 || price > 100000000) return SysMsg(playerid,"O preço está fora dos limites: $1 até $100,000,000.");
  19887. SellingAsset[playerid][0] = 1; //yes/no
  19888. SellingAsset[playerid][1] = playa; //playerid
  19889. SellingAsset[playerid][2] = 1; //type
  19890. SellingAsset[playerid][3] = HasHouseKey[playerid][id]; //id
  19891. SellingAsset[playerid][4] = price; //price
  19892. SellingAsset[playerid][5] = id;
  19893. SendClientMessageF(playa, COLOR_WHITE, "%s quer vender sua casa(%s) por $%s. Use '/aceitar casa' para confirmar.", NameEx(playerid), HouseData[HasHouseKey[playerid][id]][HouseDescription], format_cash(price));
  19894. SendClientMessageF(playerid, COLOR_WHITE, "Você está vendendo sua casa(%s) para %s por $%s. Ele(a) deve aceitar para confirmar.", HouseData[HasHouseKey[playerid][id]][HouseDescription], NameEx(playa), format_cash(price));
  19895. }
  19896. else if(strcmp("negocio", element, true) == 0)
  19897. {
  19898. new bizzCount = 0;
  19899. for(new biz = 0; biz < MAX_BIZZ_PER_PLAYER; biz++)
  19900. {
  19901. if(PlayerBizzID[playerid][biz] != -1) bizzCount ++;
  19902. }
  19903. if(bizzCount == 0) return SysMsg(playerid,"Você não tem negócios para vender.");
  19904. if(sscanf(params, "s[10]uii", element, playa, slotid, price))
  19905. {
  19906. SysMsg(playerid, "Empresas que você pode vender:");
  19907. for(new biz = 0; biz < MAX_BIZZ_PER_PLAYER; biz++) if(PlayerBizzID[playerid][biz] != -1) SendClientMessageF(playerid, COLOR_WHITE, "Negócio ID: %i - %s", biz+1, BizzData[PlayerBizzID[playerid][biz]][BizzDescription]);
  19908. SysMsg(playerid,"Use: /vender Negocio [ID do jogador ou nome] [ID do Negocio (de cima)] [preço]");
  19909. return true;
  19910. }
  19911. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  19912. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  19913. if(playa == playerid) return SysMsg(playerid,"Você não pode vender isso para si mesmo.");
  19914. new Float:tX,Float:tY,Float:tZ;
  19915. GetPlayerPos(playa,tX,tY,tZ);
  19916. if(!IsPlayerInRangeOfPoint(playerid,4.0,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador.");
  19917. bizzCount = 0;
  19918. for(new bz = 0; bz < MAX_BIZZ_PER_PLAYER; bz++)
  19919. {
  19920. if(PlayerBizzID[playa][bz] != -1) bizzCount ++;
  19921. }
  19922. if(bizzCount == MAX_BIZZ_PER_PLAYER) return SysMsg(playerid,"Esse jogador não pode ter mais negócios.");
  19923. if(slotid < 1 || slotid > MAX_BIZZ_PER_PLAYER) return SysMsg(playerid,"ID do negócio inválido [Error 1]");
  19924. slotid --;
  19925. if(PlayerBizzID[playerid][slotid] == -1) return SysMsg(playerid,"ID do negócio inválido. [Error 2]");
  19926. if(price < 1 || price > 100000000) return SysMsg(playerid,"O preço está fora dos limites: $1 à $100,000,000.");
  19927. SellingAsset[playerid][0] = 1; //yes/no
  19928. SellingAsset[playerid][1] = playa; //playerid
  19929. SellingAsset[playerid][2] = 2; //type
  19930. SellingAsset[playerid][3] = PlayerBizzID[playerid][slotid]; //id
  19931. SellingAsset[playerid][4] = price; //price
  19932. SendClientMessageF(playa, COLOR_WHITE, "%s quer vender seu negócio(%s) por $%s. Use '/aceitar negocio' para confirmar.", NameEx(playerid), BizzData[PlayerBizzID[playerid][slotid]][BizzDescription], format_cash(price));
  19933. SendClientMessageF(playerid, COLOR_WHITE, "Você está vendendo seu negócio(%s) para %s por $%s. Ele(a) deve aceitar primeiro para confirmar.", BizzData[PlayerBizzID[playerid][slotid]][BizzDescription], NameEx(playa), format_cash(price));
  19934. }
  19935. else if(strcmp("veiculo", element, true) == 0)
  19936. {
  19937. if(GetPlayerOwnedVehicleCount(playerid) == 0) return SysMsg(playerid,"Você não possui veículos para vender.");
  19938. if(sscanf(params, "s[10]uii", element, playa, slotid, price))
  19939. {
  19940. new counter = 0;
  19941. SysMsg(playerid, "Veículos que você pode vender:");
  19942. for(new vh = 1, x = GetVehiclePoolSize(); vh <= x; vh++)
  19943. {
  19944. if(VehicleData[vh][VehicleOwnerSQLID] == SQLID[playerid])
  19945. {
  19946. if(!VehicleData[vh][Impounded] && !VehicleData[vh][NeedsRecovery])
  19947. {
  19948. counter ++;
  19949. format(gstr, sizeof(gstr), "ID do veículo: %i - %s", counter, GetVehicleName(vh));
  19950. SendClientMessage(playerid, COLOR_WHITE, gstr);
  19951. }
  19952. }
  19953. }
  19954. if(counter == 0) return SysMsg(playerid,"Você não tem veículos para vender, você não pode vender veículos imobilizados ou que exigem recuperação.");
  19955. SysMsg(playerid,"Use: /vender veiculo [ID do jogador ou nome] [ID do veículo (de cima)] [preço]");
  19956. return true;
  19957. }
  19958. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  19959. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  19960. if(playa == playerid) return SysMsg(playerid,"Você não pode vender isso para si mesmo.");
  19961. new Float:tX,Float:tY,Float:tZ;
  19962. GetPlayerPos(playa,tX,tY,tZ);
  19963. if(!IsPlayerInRangeOfPoint(playerid,4.0,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador.");
  19964. if(GetPlayerOwnedVehicleCount(playa) >= MAX_VEH_PER_PLAYER) return SysMsg(playerid,"Esse jogador não pode ter mais veículos.");
  19965. if(slotid < 1 || slotid > MAX_VEH_PER_PLAYER) return SysMsg(playerid,"O ID do veículo era inválido. [Error 1]");
  19966. new vehd = 0, vslot = slotid, x;
  19967. for(vehd = 1, x = GetVehiclePoolSize(); vehd <= x; vehd++)
  19968. {
  19969. if(VehicleData[vehd][VehicleOwnerSQLID] == SQLID[playerid])
  19970. {
  19971. vslot --;
  19972. if(vslot != 0) continue;
  19973. else break;
  19974. }
  19975. }
  19976. if(VehicleData[vehd][DonatorCar]) return SysMsg(playerid,"Você não pode vender um carro de Donator.");
  19977. if(VehicleData[vehd][Impounded]) return SysMsg(playerid,"O veículo esta apreendido, você não pode vendê-lo.");
  19978. if(price < 1 || price > 10000000) return SysMsg(playerid,"O preço está fora dos limites: $1 até $10,000,000.");
  19979. SellingAsset[playerid][0] = 1; //yes/no
  19980. SellingAsset[playerid][1] = playa; //playerid
  19981. SellingAsset[playerid][2] = 3; //type
  19982. SellingAsset[playerid][3] = vehd; //id
  19983. SellingAsset[playerid][4] = price; //price
  19984. format(gstr, sizeof(gstr),"%s quer vender seu veículo(%s) por $%s. Use '/aceitar veiculo' para confirmar", NameEx(playerid), GetVehicleName(vehd), format_cash(price));
  19985. SendClientMessage(playa, COLOR_WHITE, gstr);
  19986. format(gstr, sizeof(gstr),"Você está vendendo seu veículo(%s) para %s por $%s. Ele(a) deve aceitar para confirmar.", GetVehicleName(vehd), NameEx(playa), format_cash(price));
  19987. SendClientMessage(playerid, COLOR_WHITE, gstr);
  19988. }
  19989. return true;
  19990. }
  19991. CMD:cancelarvenda(playerid, params[])
  19992. {
  19993. if(!Logged{playerid}) return true;
  19994. foreach(new i: Player)
  19995. {
  19996. if(SellingAsset[playerid][1] == i)
  19997. {
  19998. if(SellingAsset[playerid][2] == 1) SysMsg(i,"O jogador que você estava comprando uma casa cancelou o acordo.");
  19999. else if(SellingAsset[playerid][2] == 2) SysMsg(i,"O jogador que você estava comprando um negócio cancelou o acordo.");
  20000. else if(SellingAsset[playerid][2] == 3) SysMsg(i,"O jogador que você estava comprando um veículo cancelou o negócio.");
  20001. SysMsg(playerid,"Você cancelou o negócio.");
  20002. SellingAsset[playerid][0] = 0; //yes/no
  20003. SellingAsset[playerid][1] = -1; //playerid
  20004. SellingAsset[playerid][2] = 0; //type
  20005. SellingAsset[playerid][3] = -1; //id
  20006. SellingAsset[playerid][4] = 0; //price
  20007. SellingAsset[playerid][5] = -1;
  20008. break;
  20009. }
  20010. }
  20011. return true;
  20012. }
  20013. CMD:alugarquarto(playerid, params[])
  20014. {
  20015. if(!Logged{playerid}) return true;
  20016. if(RentRoom[playerid] > 0) return SysMsg(playerid,"Você já alugou um quarto de Motel.");
  20017. new motel = GetMotelID(playerid);
  20018. if(motel == 0) return SysMsg(playerid,"Você não está em nenhum motel");
  20019. mysql_format(conn, mquery, sizeof(mquery), "SELECT id FROM motel WHERE MotelID = %i AND OwnerSQLID = 0 LIMIT 1", motel);
  20020. mysql_pquery(conn, mquery, "ProcessRoomRental", "dds", playerid, motel, params);
  20021. return true;
  20022. }
  20023. CMD:estenderaluguel(playerid, params[])
  20024. {
  20025. if(!Logged{playerid}) return true;
  20026. if(RentRoom[playerid] == 0) return SysMsg(playerid,"Você não tem um quarto de motel alugado.");
  20027. new motel = GetMotelID(playerid);
  20028. if(motel == 0) return SysMsg(playerid,"Você não está perto de nenhum motel.");
  20029. if(MotelData[RentRoom[playerid]][RoomDaysLeft] > 2) return SysMsg(playerid,"Você só pode estender a sua estadia aqui quando Você tem 2 ou menos dias restantes.");
  20030. if(isnull(params)) return SysMsg(playerid,"Use: /estenderaluguel [quantidade de dias para adicionar]");
  20031. new daystostay = strval(params);
  20032. if(daystostay < 1 || daystostay > 7) return SysMsg(playerid,"Você só pode estender a sua estadia em um máximo de 7 dias e um mínimo de 1 dia.");
  20033. new fee;
  20034. switch(MotelData[RentRoom[playerid]][MotelID])
  20035. {
  20036. case 1,4,5: fee = 100 * daystostay;
  20037. case 2,7: fee = 200 * daystostay;
  20038. case 3,8,9: fee = 500 * daystostay;
  20039. case 6: fee = 150 * daystostay;
  20040. }
  20041. if(Cash[playerid] < fee) return SysMsg(playerid,"Você não tem dinheiro suficiente para estender a sua estadia aqui.");
  20042. GivePlayerCash(playerid, -fee);
  20043. MotelData[RentRoom[playerid]][RoomDaysLeft] += daystostay;
  20044. MySQLUpdateInt(RentRoom[playerid], "RoomDaysLeft", MotelData[RentRoom[playerid]][RoomDaysLeft], "motel");
  20045. SendClientMessageF(playerid,COLOR_GOLD,"Você ampliou a sua estadia por %i dias significa que agora Você tem %i dias restantes. O custo ?de $%i.", daystostay, MotelData[RentRoom[playerid]][RoomDaysLeft], fee);
  20046. return true;
  20047. }
  20048. CMD:devolterquarto(playerid, params[])
  20049. {
  20050. if(!Logged{playerid}) return true;
  20051. if(RentRoom[playerid] == 0) return SysMsg(playerid,"Você não tem um quarto de motel.");
  20052. new motel = GetMotelID(playerid);
  20053. if(motel != MotelData[RentRoom[playerid]][MotelID]) return SysMsg(playerid,"Você não está perto do escritóio do motel para o checkout.");
  20054. new ID = RentRoom[playerid];
  20055. MotelData[ID][RoomOwner] = 0;
  20056. RentRoom[playerid] = 0;
  20057. MotelWaypoint[playerid] = 0;
  20058. DestroyDynamicPickup(MotelData[ID][RoomPickupID]);
  20059. if(MySpawnID[playerid] == 4)
  20060. {
  20061. MySpawnID[playerid] = 1;
  20062. MySQLUpdateInt(SQLID[playerid], "MySpawnID", MySpawnID[playerid], "players");
  20063. }
  20064. mysql_format(conn, mquery, sizeof(mquery), "UPDATE motel SET OwnerSQLID=0 AND RoomDaysLeft=0 AND Weapon=0 AND WeaponAmmo=0 WHERE id=%i", ID);
  20065. mysql_pquery(conn, mquery, "UpdateMotelSign", "i", MotelData[ID][MotelID] - 1);
  20066. SendClientMessage(playerid,COLOR_GOLD,"Você saiu deste motel. Obrigado!");
  20067. return true;
  20068. }
  20069. CMD:escrevernota(playerid, params[])
  20070. {
  20071. if(!Logged{playerid}) return true;
  20072. for(new h = 0; h < MAX_HOUSES; h++)
  20073. {
  20074. if(IsPlayerInRangeOfPoint(playerid,3.5,HouseData[h][oPosX],HouseData[h][oPosY],HouseData[h][oPosZ]) && GetPlayerVirtualWorld(playerid) == HouseData[h][HouseExtVW])
  20075. {
  20076. if(HouseData[h][HouseOwnerSQLID] > 0)
  20077. {
  20078. if(strlen(HouseData[h][DoorNoteMessage]) > 1) return SysMsg(playerid,"Já existe uma nota nesta porta.");
  20079. if(HasHouseKey[playerid][0] == h || HasHouseKey[playerid][1] == h) return SysMsg(playerid,"Você não pode colocar uma nota em sua própria porta.");
  20080. if(isnull(params)) return SysMsg(playerid,"Use: /escrevernota [mensagem]");
  20081. format(HouseData[h][DoorNoteMessage], 128, params);
  20082. mysql_format(conn, mquery, sizeof(mquery), "UPDATE houses SET DoorNote = '%e' WHERE id = %i", HouseData[h][DoorNoteMessage], HouseData[h][HouseSQLID]);
  20083. mysql_pquery(conn, mquery);
  20084. format(gstr, sizeof(gstr),"* %s deixa uma carta com uma mensagem fixada na porta da casa. *", NameRP(playerid), HouseData[h][HouseDescription]);
  20085. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  20086. SendClientMessageF(playerid,COLOR_GOLD,"Você deixou uma nota em %s.",HouseData[h][HouseDescription]);
  20087. break;
  20088. }
  20089. else return SysMsg(playerid,"Esta propriedade nem sequer é comprada.");
  20090. }
  20091. }
  20092. return true;
  20093. }
  20094. CMD:batenaporta(playerid, params[])
  20095. {
  20096. if(!Logged{playerid}) return true;
  20097. if(IsInHouseID[playerid] != -1) return SysMsg(playerid,"Você não pode bater uma porta de dentro de uma casa.");
  20098. for(new h = 0; h < MAX_HOUSES; h++)
  20099. {
  20100. if(IsPlayerInRangeOfPoint(playerid, DOOR_PROXIMITY, HouseData[h][oPosX],HouseData[h][oPosY],HouseData[h][oPosZ]) && GetPlayerVirtualWorld(playerid) == HouseData[h][HouseExtVW])
  20101. {
  20102. if(HouseData[h][HouseOwnerSQLID] != 0)
  20103. {
  20104. foreach(new i: Player)
  20105. {
  20106. if(Logged{i})
  20107. {
  20108. if(IsInHouseID[i] == h)
  20109. {
  20110. SendClientMessageF(i, COLOR_EMOTE, "KNOCK KNOCK KNOCK ((%s))", NameRP(playerid), HouseData[h][HouseDescription]);
  20111. }
  20112. }
  20113. }
  20114. format(gstr, sizeof(gstr),"* %s bate na porta da casa. *", NameRP(playerid), HouseData[h][HouseDescription]);// exemplo bate na porta de Montgomery House
  20115. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  20116. return true;
  20117. }
  20118. else return SysMsg(playerid,"Esta propriedade nem sequer é comprada.");
  20119. }
  20120. }
  20121. SysMsg(playerid,"Você não está em uma porta da casa.");
  20122. return true;
  20123. }
  20124. CMD:cquarto(playerid, params[])
  20125. {
  20126. if(IsPlayerAdmin(playerid))
  20127. {
  20128. if(isnull(params)) return SysMsg(playerid,"Use: /cquarto [motel id]");
  20129. if(!IsNumeric(params)) return SysMsg(playerid,"A facção deve ser um número.");
  20130. new motel = strval(params);
  20131. if(motel < 1) return SysMsg(playerid,"ID do motel deve ser > 0");
  20132. new Float:X, Float:Y, Float:Z;
  20133. GetPlayerPos(playerid, X, Y, Z);
  20134. MotelData[CurrentMotelEnumID][MotelID] = motel;
  20135. MotelData[CurrentMotelEnumID][RoomX] = X;
  20136. MotelData[CurrentMotelEnumID][RoomY] = Y;
  20137. MotelData[CurrentMotelEnumID][RoomZ] = Z;
  20138. MotelData[CurrentMotelEnumID][RoomLocked] = 0;
  20139. MotelData[CurrentMotelEnumID][RoomOwner] = 0;
  20140. mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO motel (MotelID) VALUES (%i)", motel);
  20141. mysql_pquery(conn, mquery);
  20142. mysql_format(conn, mquery, sizeof(mquery), "UPDATE motel SET RoomLocked = 0, OwnerSQLID = 0, OutsideX = %f, OutsideY = %f, OutsideZ = %f WHERE id = %i", X, Y, Z, CurrentMotelEnumID);
  20143. mysql_pquery(conn, mquery);
  20144. CurrentMotelEnumID ++;
  20145. SendClientMessageF(playerid,COLOR_GOLD, "Quarto de Motel criado: %i.", CurrentMotelEnumID);
  20146. AdminLog(playerid, 0, "", "Criado novo quarto de Motel");
  20147. }
  20148. else return SysMsg(playerid, AUTHMSG);
  20149. return true;
  20150. }
  20151. CMD:annoyingobject(playerid, params[])
  20152. {
  20153. if(!IsPlayerAdminLevelOK(playerid, 2)) return SysMsg(playerid, CMDFMSG);
  20154. SysMsgF(playerid, "Objetos visíveis: %i. Total de objetos: %i", Streamer_CountVisibleItems(playerid, STREAMER_TYPE_OBJECT), CountDynamicObjects());
  20155. SelectObject(playerid);
  20156. SetPVarInt(playerid, "SelectingAnnoyingObject", 1);
  20157. return true;
  20158. }
  20159. CMD:verrota(playerid, params[])
  20160. {
  20161. if(!Logged{playerid}) return true;
  20162. new Float:x, Float:y, Float:z;
  20163. gstr[0] = EOS;
  20164. for(new i = 0; i < MAX_BUSSTOPS; i++)
  20165. {
  20166. GetDynamicObjectPos(BusStopObjectIDStart + i, x, y, z);
  20167. if(IsPlayerInRangeOfPoint(playerid, 2.0, x, y, z))
  20168. {
  20169. strcat(gstr, "{4BB74C}Blueberry {FFFFFF}(Panoptican, Farm, BB Acres, Centro da Cidade)\n");
  20170. strcat(gstr, "{4BB74C}Fort Carson {FFFFFF}(Estacionamento de trailers somente)\n");
  20171. strcat(gstr, "{4BB74C}Las Barrancas\n");
  20172. strcat(gstr, "{4BB74C}Tierra Robada\n");
  20173. strcat(gstr, "{4BB74C}El Quebrados\n");
  20174. strcat(gstr, "{4BB74C}Valle Ocultado\n");
  20175. strcat(gstr, "{4BB74C}Las Payasdas\n");
  20176. strcat(gstr, "{4BB74C}Hunter Quarry {FFFFFF}(via West Bone County)\n");
  20177. strcat(gstr, "{4BB74C}Fort Carson {FFFFFF}(Estacionamento de trailers, Hospital, Centro da Cidade)\n");
  20178. strcat(gstr, "{4BB74C}Hampton Barns\n");
  20179. strcat(gstr, "{4BB74C}Montgomery {FFFFFF}(Hospital, Cabbie Co, Centro da Cidade, Casino)\n");
  20180. strcat(gstr, "{4BB74C}Palomino Creek {FFFFFF}(Main Street, Bank)\n");
  20181. strcat(gstr, "{4BB74C}Dillimore {FFFFFF}(via Montgomery Cutoff)\n");
  20182. strcat(gstr, "{4BB74C}Sul de Blueberry {FFFFFF}(Panoptican, Farm, BB Acres)\n");
  20183. strcat(gstr, "{4BB74C}Estação de onibus");
  20184. Dialog_Show(playerid, DIALOG_NONE, DIALOG_STYLE_MSGBOX, "Rota do onibus", gstr, "OK", "");
  20185. break;
  20186. }
  20187. }
  20188. return true;
  20189. }
  20190. CMD:licencainfo(playerid)
  20191. {
  20192. if(!IsPlayerInRangeOfPoint(playerid, 2.5, 1239.9242, 185.4836, 2091.3547)) return true;
  20193. gstr[0] = EOS;
  20194. strcat(gstr, "Durante um teste de condução, você terá que seguir uma determinada rota de um checkpoint a outro checkpoint, preste ATENÇÃO aos LIMITES de velocidade e mantendo seu carro intacto.\n");
  20195. strcat(gstr, "O DMV está localizado em Montgomery, ao lado do parque de trailers. (( Use /gps para encontrar a sua localização. )) Lá você pode obter as seguintes licença:\n\n");
  20196. strcat(gstr, "- Licença Geral de Veículos [GVL-1] A licença custa $100. O veículo que você usado é um admiral, não ultrapasse a velocidade permitida e não bata o veiculo, fique atento ao tempo se quiser passar.\n");
  20197. strcat(gstr, "- Licença de veículo grande [GVL-2] A licença custa $3.000. O veículo que você usa é um Mule, não ultrapasse a velocidade permitida e não bata o veiculo, fique atento ao tempo se quiser passar..\n");
  20198. strcat(gstr, "- Licença de moto [MB] A licença custa $2,500. A moto que você usa é um Sanchez, não ultrapasse a velocidade permitida e não caia da Moto, fique atento ao tempo se quiser passar.\n");
  20199. strcat(gstr, "- Licença de Barco [B ]A licença custa $4,000. O barco que você usa é um Guarda Costeira, não ultrapasse a velocidade permitida, fique atento ao tempo se quiser passar.\n");
  20200. strcat(gstr, "- Licença de helicóptero [A1] A licença custa $15,000. O helicóptero que você usa é um Pardal, não ultrapasse a velocidade permitida e não danifique o helicóptero, fique atento ao tempo se quiser passar.\n");
  20201. strcat(gstr, "- Licença de avião [A2] A licença custa $25,000. O avião que você usa é um Dodo, não ultrapasse a velocidade permitida e não bata o veiculo, fique atento ao tempo se quiser passar.\n");
  20202. ShowMessage(playerid, "Informação de Licença", gstr, "Fechar!");
  20203. return true;
  20204. }
  20205. CMD:info(playerid)
  20206. {
  20207. if(!IsPlayerInRangeOfPoint(playerid, 2.5, 1234.6780, 180.5994, 2091.3687)) return true;
  20208. gstr[0] = EOS;
  20209. strcat(gstr, "O que você pode fazer no Centro de Informação?\n");
  20210. strcat(gstr, "- Saque dinheiro da sua conta bancária através de um caixa eletrônico (ATM)\n");
  20211. strcat(gstr, "- Ligue para uma pessoa ou uma linha direta através de um celular público\n");
  20212. strcat(gstr, "- Procure números de celular importantes\n");
  20213. strcat(gstr, "- Descubra como obter uma carteira de motorista\n");
  20214. strcat(gstr, "- Alugue um veículo\n");
  20215. strcat(gstr, "- Publique um anúncio no rádio SAN Network Rádio\n");
  20216. strcat(gstr, "- Encontre um endereço ou um Ponto de Interesse localizado no Condado de Red, Bone ou Flint County\n");
  20217. strcat(gstr, "- Veja uma lista de empregos a tempo inteiro e a tempo parcial disponíveis para você\n");
  20218. strcat(gstr, "- Descarte o seu veículo no lote de carros usados e coloque-o para venda\n");
  20219. strcat(gstr, "- Obter-se contratado como taxista no Cabbie Co\n");
  20220. strcat(gstr, "- Veja um mapa de todos os locais-chave em San Andreas)\n");
  20221. ShowMessage(playerid, "Centro de informações", gstr, "Fechar!");
  20222. return true;
  20223. }
  20224. CMD:vendainfo(playerid)
  20225. {
  20226. if(!IsPlayerInRangeOfPoint(playerid, 2.5, 1226.7029, 164.5297, 2086.6648)) return true;
  20227. gstr[0] = EOS;
  20228. strcat(gstr, "Em primeiro lugar, você deve visitar qualquer loja geral e comprar uma caneta e um papel. Depois disso, entre em seu veículo e use '/colocaravenda PREÇO', por exemplo '/colocaravenda 5000'.\n");
  20229. strcat(gstr, "Certifique-se de estacionar o seu veículo em qualquer lugar visível, use /savecar para fazê-lo. Mantenha o celular ligado, você pode receber ligação de alguém interessado em seu veículo.\n");
  20230. strcat(gstr, "Se você mudar de idéia e desejar cancelar a venda, use /cancelarvenda.");
  20231. ShowMessage(playerid, "Lote de vendas de carros usados", gstr, "Fechar!");
  20232. return true;
  20233. }
  20234. CMD:alugarvinfo(playerid)
  20235. {
  20236. if(!IsPlayerInRangeOfPoint(playerid, 2.5, 1242.5016, 164.4828, 2086.6648)) return true;
  20237. gstr[0] = EOS;
  20238. strcat(gstr, "Temos alguns veículos que podem ser alugados. Aqui está uma lista deles junto com seus preços:\n\n");
  20239. strcat(gstr, "- Willard - $650\n");
  20240. strcat(gstr, "- Admiral - $750\n");
  20241. strcat(gstr, "- Manana- $350\n");
  20242. strcat(gstr, "- Cadrona - $350\n");
  20243. strcat(gstr, "- Rancher - $1000\n");
  20244. strcat(gstr, "- Previon - $350\n");
  20245. strcat(gstr, "- Reefer - $1000 (localizado na baía de Palomino Creek)\n");
  20246. strcat(gstr, "- Tropic - $1500 (localizado na baía de Palomino Creek)\n\n");
  20247. strcat(gstr, "Se você deseja alugar um veículo, simplesmente escolha o que mais gosta, então insira-o e use /alugarveiculo.\n");
  20248. strcat(gstr, "Você será cobrado um determinado preço e você pagará novamente a cada hora. Quando você decide retornar o veículo, volte para a garagem e use /devolverveiculo.\n");
  20249. strcat(gstr, "Se você danificou o veículo, você será cobrado adicionalmente pelos reparos.\n");
  20250. ShowMessage(playerid, "Red County Aluguel de carros", gstr, "Fechar!");
  20251. return true;
  20252. }