admins.pwn 275 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061
  1. //admin commands
  2. CMD:gotopos(playerid,params[])
  3. {
  4. if(!Logged{playerid}) return true;
  5. if(!IsPlayerAdminLevelOK(playerid, 4)) return SysMsg(playerid, AUTHMSG);
  6. {
  7. new Float:x, Float:y, Float:z;
  8. if(sscanf(params, "fff", x, y, z))
  9. {
  10. SendClientMessage(playerid,COLOR_BLUE,"[ADMIN]{FFFFFF} /gotopos <X> <Y> <Z>");
  11. return 1;
  12. }
  13. SetPlayerPos(playerid, x, y, z);
  14. //Log_Write("logs/admin.txt", "[%s] %s se teleportou para posição : x=%f y=%f z=%f", ReturnDate(), GetName(playerid), x, y, z);
  15. }
  16. return 1;
  17. }
  18. CMD:biztypes(playerid, params[])
  19. {
  20. if(!Logged{playerid}) return true;
  21. if(!IsPlayerAdminLevelOK(playerid, 4)) return SysMsg(playerid, AUTHMSG);
  22. SendClientMessage(playerid, COLOR_GRAD2, "0:STATIC");
  23. SendClientMessage(playerid, COLOR_GRAD2, "1:GENERALSHOP_S");
  24. SendClientMessage(playerid, COLOR_GRAD2, "2:CLOTHES_BINCO");
  25. SendClientMessage(playerid, COLOR_GRAD2, "3:WEAPONS_1FLOOR");
  26. SendClientMessage(playerid, COLOR_GRAD2, "4:CAFE");
  27. SendClientMessage(playerid, COLOR_GRAD2, "5:PIZZA");
  28. SendClientMessage(playerid, COLOR_GRAD2, "6:RESTUARANT");
  29. SendClientMessage(playerid, COLOR_GRAD2, "7:CLUCKINBELL");
  30. SendClientMessage(playerid, COLOR_GRAD2, "8:GENERALSHOP_M");
  31. SendClientMessage(playerid, COLOR_GRAD2, "9:GENERALSHOP_L");
  32. SendClientMessage(playerid, COLOR_GRAD2, "10:CLOTHES_SUBU");
  33. SendClientMessage(playerid, COLOR_GRAD2, "11:CLOTHES_RICH");
  34. SendClientMessage(playerid, COLOR_GRAD2, "12:WEAPONS_2FLOOR");
  35. SendClientMessage(playerid, COLOR_GRAD2, "13:BARBERS");
  36. SendClientMessage(playerid, COLOR_GRAD2, "14:CLOTHES_PROLAPS");
  37. SendClientMessage(playerid, COLOR_GRAD2, "15:ELECTRONICS");
  38. SendClientMessage(playerid, COLOR_GRAD2, "16:SEX");
  39. SendClientMessage(playerid, COLOR_GRAD2, "17:PLEASUREDOME");
  40. SendClientMessage(playerid, COLOR_GRAD2, "18:DRUGSHOP");
  41. SendClientMessage(playerid, COLOR_GRAD2, "19:CASINO");
  42. SendClientMessage(playerid, COLOR_GRAD2, "20:STRIPCLUB");
  43. SendClientMessage(playerid, COLOR_GRAD2, "21:POSTOFFICE");
  44. SendClientMessage(playerid, COLOR_GRAD2, "22:FURNITURE");
  45. SendClientMessage(playerid, COLOR_GRAD2, "23:CLOTHES_ZIP");
  46. SendClientMessage(playerid, COLOR_GRAD2, " ");
  47. return 1;
  48. }
  49. CMD:removeskin(playerid, params[]) return cmd_removeskin(playerid, params);
  50. CMD:rskin(playerid, params[])
  51. {
  52. if(!Logged{playerid}) return true;
  53. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  54. new playa = -1, slot;
  55. if(sscanf(params, "ui", playa, slot)) return SysMsg(playerid, "Use: /rskin [playerID ou name] [skin slot 1-5]");
  56. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  57. if(playa == playerid) return SysMsg(playerid, "Não pode ser você mesmo.");
  58. if(slot > 5 || slot < 1) return SysMsg(playerid, "Slot inválido. Por favor, insira 1-5.");
  59. slot --;
  60. if(Clothes[playa][slot] == 0) return SysMsg(playerid, "Esse player não tem skin neste slot");
  61. if(Clothes[playa][slot] == cPlayersSkin[playa]) return SysMsg(playerid, "Atualmente ele está usando esta skin.");
  62. Clothes[playa][slot] = 0;
  63. slot ++;
  64. new str[10];
  65. format(str,sizeof(str),"SkinSet%i",slot);
  66. MySQLUpdateInt(SQLID[playa], str, Clothes[playa][slot-1], "players");
  67. SendClientMessageF(playerid, COLOR_RED, "Você removeu a skin de %s do slot %i.", NameEx(playa), slot);
  68. SendClientMessageF(playa, COLOR_RED, "Admin %s removeu sua skin do slot %i.", NameEx(playerid), slot);
  69. return true;
  70. }
  71. CMD:verskins(playerid, params[])
  72. {
  73. if(!Logged{playerid}) return true;
  74. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  75. new playa = -1;
  76. if(sscanf(params, "u", playa)) return SysMsg(playerid, "Use: /verskins [playerID ou name]");
  77. if(InvalidPlayer(playerid)) return SysMsg(playerid, NOPLAYER);
  78. new tempstr[50];
  79. format(gstr, sizeof(gstr), "Inventário de roupas: ");
  80. for(new i = 0; i < 4; i++)
  81. {
  82. if(Clothes[playa][i] > 0)
  83. {
  84. format(tempstr, 50, "[Slot %i: %i] ", i+1, Clothes[playa][i]);
  85. strcat(gstr, tempstr);
  86. }
  87. else
  88. {
  89. format(tempstr, 50, "[Slot %i: Vazio] ", i+1);
  90. strcat(gstr, tempstr);
  91. }
  92. }
  93. if(Clothes[playa][4] > 0)
  94. {
  95. format(tempstr, 50, "[Facção: %i] ", Clothes[playa][4]);
  96. strcat(gstr, tempstr);
  97. }
  98. else strcat(gstr, "[Facção: Vazio] ");
  99. SendClientMessage(playerid, COLOR_WHITE, gstr);
  100. return true;
  101. }
  102. CMD:listavigiados(playerid, params[])
  103. {
  104. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  105. if(isnull(params)) return SysMsg(playerid, "Use: /listavigiados [ver/add/remover]");
  106. if(strcmp(params, "ver", true) == 0)
  107. {
  108. mysql_pquery(conn, "SELECT * FROM watchlist", "ShowWatchlistInfo", "i", playerid);
  109. }
  110. else if(strfind(params, "add", true) != -1)
  111. {
  112. new option[12], maname[25], info[150];
  113. if(sscanf(params, "s[12]s[25]s[150]", option, maname, info)) return SysMsg(playerid, "Use: /listavigiados add [Nome da conta Master] [informação]");
  114. if(!strlen(maname)) return SysMsg(playerid, "Por favor, coloque o nome da Conta Master.");
  115. if(!strlen(info)) return SysMsg(playerid, "Você deve inserir informações sobre a entrada da lista de observação.");
  116. new sqlid = MySQLCheckMaster_AgainstName(maname);
  117. if(sqlid == 0) return SysMsg(playerid, "Não é possível encontrar um MA com esse nome");
  118. mysql_format(conn, mquery, sizeof(mquery), "SELECT NULL FROM watchlist WHERE Player = %i", sqlid);
  119. mysql_pquery(conn, mquery, "AddUserToWatchlist", "iiss", playerid, sqlid, maname, info);
  120. return true;
  121. }
  122. else if(strfind(params, "remover", true) != -1)
  123. {
  124. new option[12], id;
  125. if(sscanf(params, "s[12]i", option, id)) return SysMsg(playerid, "Use: /listavigiados remove [ID da /listavigiados ver]");
  126. mysql_format(conn, mquery, sizeof(mquery), "SELECT NULL FROM watchlist WHERE id = %i", id);
  127. mysql_pquery(conn, mquery, "ProcessWatchlistRemoval", "ii", playerid, id);
  128. }
  129. return true;
  130. }
  131. RCRP::ShowWatchlistInfo(playerid)
  132. {
  133. if(!cache_num_rows()) return SysMsg(playerid, "A lista de vigilância está atualmente vazia.");
  134. SendClientMessage(playerid, COLOR_WHITE, "[Watchlist]");
  135. new reason[30][150], id[30], player[30];
  136. for(new i = 0, x = cache_num_rows(); i < x; i++)
  137. {
  138. id[i] = cache_get_field_content_int(i, "id");
  139. player[i] = cache_get_field_content_int(i, "Player");
  140. cache_get_field_content(i, "Reason", reason[i], conn, 150);
  141. }
  142. for(new i = 0, x = cache_num_rows(); i < x; i++)
  143. {
  144. SendSplitMessageF(playerid, COLOR_WHITE, "Entrada %i: [%s - %s]", id[i], GetMasterName(player[i]), reason[i]);
  145. }
  146. return true;
  147. }
  148. RCRP::ProcessWatchlistRemoval(playerid, id)
  149. {
  150. if(!cache_num_rows()) return SendClientMessage(playerid, COLOR_WHITE, "Não foi encontrada nenhuma entrada na lista de observação.");
  151. mysql_format(conn, mquery, sizeof(mquery), "DELETE FROM watchlist WHERE id = %i", id);
  152. mysql_pquery(conn, mquery);
  153. SendClientMessage(playerid, COLOR_WHITE, "Entrada da lista de vigilância removida.");
  154. return true;
  155. }
  156. RCRP::AddUserToWatchlist(playerid, sqlid, maname[], info[])
  157. {
  158. if(cache_num_rows()) return SendClientMessage(playerid, COLOR_WHITE, "Este usuário já está na lista de vigilância.");
  159. mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO watchlist (Player, Reason, AdminSQLID) VALUES (%i, '%e', %i)", sqlid, info, SQLID[playerid]);
  160. mysql_pquery(conn, mquery);
  161. SendClientMessageF(playerid, COLOR_WHITE, "Você adicionou %s para lista de Jogadores Vigiados.", maname);
  162. return true;
  163. }
  164. CMD:usarnota(playerid, params[])
  165. {
  166. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  167. new accountname[25], note[150];
  168. if(sscanf(params, "s[25]s[150]", accountname, note)) return SysMsg(playerid, "Use: /usarnota [Nome da Conta Master] [Nota]");
  169. if(!strlen(accountname)) return SysMsg(playerid, "Você deve inserir um nome de MA");
  170. if(!strlen(note)) return SysMsg(playerid, "Você deve inserir uma nota.");
  171. new sqlid = MySQLCheckMaster_AgainstName(accountname);
  172. if(sqlid == 0) return SysMsg(playerid, "Não foi possível encontrar um MA com esse nome");
  173. mysql_format(conn, mquery, sizeof(mquery), "UPDATE masters SET UserNote = '%e' WHERE id = %i", note, sqlid);
  174. mysql_pquery(conn, mquery);
  175. SendClientMessageF(playerid, COLOR_WHITE, "Você adicionou uma nota para conta %s.", accountname);
  176. return true;
  177. }
  178. CMD:removerusernota(playerid, params[])
  179. {
  180. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  181. if(isnull(params)) return SysMsg(playerid, "Use: /removerusernota [Nome da Conta Master]");
  182. new sqlid = MySQLCheckMaster_AgainstName(params);
  183. if(sqlid == 0) return SysMsg(playerid, "não conseguiu encontrar um MA com esse nome.");
  184. mysql_format(conn, mquery, sizeof(mquery), "UPDATE masters SET UserNote = '' WHERE id = %i", sqlid);
  185. mysql_pquery(conn, mquery);
  186. SendClientMessageF(playerid, COLOR_WHITE, "Removeu a noda da conta %s.", params);
  187. return true;
  188. }
  189. /*CMD:reconnectbot(playerid)
  190. {
  191. if(!Logged{playerid}) return true;
  192. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  193. format(sgstr, sizeof(sgstr), "Admin %s is reconnecting the bot.", NameEx(playerid));
  194. IRC_Quit(IRCBot, sgstr);
  195. IRCBot = IRC_Connect("irc.tl", 6667, "RCRPBot", "The Holy Light of Hegebe", "Hegebe123", false);
  196. SendClientMessage(playerid, COLOR_RED, "[Admin] Bot reconnected.");
  197. return true;
  198. }*/
  199. CMD:jogadoresabatidos(playerid)
  200. {
  201. if(!Logged{playerid}) return true;
  202. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  203. new downedcount = 0;
  204. foreach(new i: Player)
  205. {
  206. if(Dead{i})
  207. {
  208. downedcount ++;
  209. SendClientMessageF(playerid, COLOR_WHITE, "%s (ID %i) Esta abatido. Tempo de morte: %i segundos.", NameEx(i), i, DeathTimer[i]);
  210. }
  211. }
  212. if(downedcount == 0) SendClientMessage(playerid, COLOR_WHITE, "Nenhum jogador está abatido no momento.");
  213. return true;
  214. }
  215. CMD:cadaveres(playerid)//cadáveres
  216. {
  217. if(!Logged{playerid}) return true;
  218. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  219. gstr[0] = EOS;
  220. new corpsecount = 0;
  221. for(new x = 0; x < MAX_CORPSES; x++)
  222. {
  223. if(CorpseData[x][CorpseUsed])
  224. {
  225. corpsecount ++;
  226. format(sgstr, sizeof(sgstr), "ID %i - %s\n", x, GetSQLName(CorpseData[x][CorpseOwner]));
  227. strcat(gstr, sgstr);
  228. }
  229. }
  230. if(corpsecount == 0) return SysMsg(playerid, "Nenhum cadável encontrado.");
  231. else Dialog_Show(playerid, CorpseList, DIALOG_STYLE_LIST, "Todos cadáveres", gstr, "Teleporte", "Cancelar");
  232. return true;
  233. }
  234. CMD:fazercadavel(playerid)//fazercadavel
  235. {
  236. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  237. CreateCorpse(playerid);
  238. SendClientMessage(playerid, -1, "ok");
  239. return true;
  240. }
  241. CMD:anticheat(playerid, params[])
  242. {
  243. if(!Logged{playerid}) return true;
  244. if(IsPlayerAdminLevelOK(playerid, 4)) ShowAntiCheatSettings(playerid);
  245. return true;
  246. }
  247. CMD:paint(playerid)
  248. {
  249. if(!Logged{playerid}) return true;
  250. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, CMDFMSG);
  251. if(!UsingPaint{playerid})
  252. {
  253. if(ADuty[playerid] != 1) return SysMsg(playerid, "Você deve estar administrando para usar esse comando.");
  254. foreach(new i: Player)
  255. {
  256. if(Logged{i})
  257. {
  258. format(tgstr, sizeof(tgstr), "%s (%i)", NameEx(i), i);
  259. PaintLabels[playerid][i] = CreateDynamic3DTextLabel(tgstr, COLOR_ORANGE, PlayerPosX(i), PlayerPosY(i), PlayerPosZ(i), 500, i, INVALID_VEHICLE_ID, 0, -1, -1, playerid, 500.0);
  260. }
  261. }
  262. Streamer_Update(playerid);
  263. UsingPaint{playerid} = true;
  264. SendClientMessage(playerid, COLOR_RED, "[Admin] Você ativou os Text Labels para todos os jogadores.");
  265. }
  266. else
  267. {
  268. for(new x = 0; x < MAX_PLAYERS; x++)
  269. {
  270. if(PaintLabels[playerid][x] != Text3D:INVALID_3DTEXT_ID)
  271. {
  272. DestroyDynamic3DTextLabel(PaintLabels[playerid][x]);
  273. PaintLabels[playerid][x] = Text3D:INVALID_3DTEXT_ID;
  274. }
  275. }
  276. UsingPaint{playerid} = false;
  277. SendClientMessage(playerid, COLOR_RED, "[Admin] Você desativou os Text Labels para todos os jogadores.");
  278. }
  279. return true;
  280. }
  281. CMD:pvars(playerid)//revisar
  282. {
  283. new varname[128], varcount = GetPVarsUpperIndex(playerid);
  284. if(varcount == 0) return SendClientMessage(playerid, -1, "Nenhum PV encontrado no seu ID de jogador.");
  285. for(new i = 0; i < varcount; i++)
  286. {
  287. GetPVarNameAtIndex(playerid, i, varname, 128);
  288. switch(GetPVarType(playerid, varname))
  289. {
  290. case PLAYER_VARTYPE_NONE: format(sgstr, sizeof(sgstr), "pVar %i: {FF0000}NÃO UTILIZADO", i);
  291. case PLAYER_VARTYPE_INT: format(sgstr, sizeof(sgstr), "pVar %i: %s - %i", i, varname, GetPVarInt(playerid, varname));
  292. case PLAYER_VARTYPE_STRING:
  293. {
  294. new pvarstring[128];
  295. GetPVarString(playerid, varname, pvarstring, 128);
  296. format(sgstr, sizeof(sgstr), "pVar %i: %s - %s", i, varname, pvarstring);
  297. }
  298. case PLAYER_VARTYPE_FLOAT: format(sgstr, sizeof(sgstr), "pVar %i: %s - %f", i, varname, GetPVarFloat(playerid, varname));
  299. }
  300. SendSplitMessage(playerid, -1, sgstr);
  301. }
  302. return true;
  303. }
  304. CMD:reportes(playerid, params[])//reportares
  305. {
  306. if(!Logged{playerid}) return true;
  307. if(IsPlayerAdminLevelOK(playerid, 1))
  308. {
  309. gstr[0] = EOS;
  310. for(new x = 0; x < MAX_REPORTS; x++)
  311. {
  312. if(strlen(Reports[x][ReporterName]))
  313. {
  314. format(sgstr, sizeof(sgstr), "Reporte de %s sobre %s. {FF0000}Clique para ver a razão{FFFFFF}\n", Reports[x][ReporterName], Reports[x][ReportedName], Reports[x][ReportReason]);
  315. strcat(gstr, sgstr);
  316. }
  317. }
  318. if(!strlen(gstr)) return SysMsg(playerid, "Não nenhum reporte ativo.");
  319. Dialog_Show(playerid, ReportsList, DIALOG_STYLE_LIST, "Reportes ativos", gstr, "Detalhes", "Fechar");
  320. }
  321. return true;
  322. }
  323. CMD:limparmdc(playerid, params[])//limparmdc
  324. {
  325. if(!IsPlayerAdmin(playerid)) return true;
  326. mysql_pquery(conn, "SELECT SuspectSQLID FROM mdc GROUP BY SuspectSQLID", "MDCCleanup", "d", playerid);
  327. return true;
  328. }
  329. RCRP::MDCCleanup(playerid)
  330. {
  331. new c = 0, account1, account2;
  332. for(new x = 0, i = cache_num_rows(); x < i; x++)
  333. {
  334. account1 = cache_get_field_content_int(x, "SuspectSQLID");
  335. account2 = MySQLCheckAccountBanned(account1);
  336. if(account2 == 0)
  337. {
  338. mysql_format(conn, mquery, sizeof(mquery), "DELETE FROM mdc WHERE SuspectSQLID = %i", account1);
  339. mysql_pquery(conn, mquery);
  340. c++;
  341. }
  342. }
  343. SysMsgF(playerid, "%i contas removidas do MDC.", c);
  344. return true;
  345. }
  346. CMD:aj(playerid)
  347. {
  348. if(!Logged{playerid}) return true;
  349. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  350. SendClientMessage(playerid, COLOR_RED, "Ajuda > Admin Ajuda");
  351. SendClientMessage(playerid, COLOR_WHITE, "Comandos admin Trial:");
  352. SendClientMessage(playerid, COLOR_ORANGE, "/aduty /a /kick /ban /tban /view(t|d)bans /dateban /(un)mute /dooc(un)mute /mutes /stats [id] /ip [id] /aa /aboombox /confirmnome");
  353. SendClientMessage(playerid, COLOR_ORANGE, "/ajudar /assistencias /fassistencia(Para finalizar) /cars /togamsg /afklista /estranhos /veiculos /vid /checkguns /checkplayer /checkconta /removedateban");
  354. SendClientMessage(playerid, COLOR_ORANGE, "/ajail /inajail /ujail /trazer /ir /irveh /getv /spec /specoff /rspec /vdamage /slap /slapdown /adminrecord /puniroff /tunban");
  355. SendClientMessage(playerid, COLOR_ORANGE, "/avisar /avisarings /ipcheck /vspec /reefer /avabrir /avfechar /delv /localadmin /quemspawn /queme /unban /setunbandate /acceptra /revive /removerfogo");
  356. SendClientMessage(playerid, COLOR_ORANGE, "/freeze /unfreeze /set /inventario [id] /ircasa /irnegocio /checkallguns /tp /removermascara /xyz /acars /quemspec /vget /acars");
  357. SendClientMessage(playerid, COLOR_ORANGE, "/aesconder /playerareas /armaslocal /veiculosarea /precisao /object /paint /jogadoresabatidos /clientid /guninfo /userlog");
  358. SendClientMessage(playerid, COLOR_ORANGE, "/rskin /removercadaver /limparcadaveres /cadaveres");
  359. if(IsPlayerAdminLevelOK(playerid, 2))
  360. {
  361. SendClientMessage(playerid, COLOR_WHITE, "Admin Comandos:");
  362. SendClientMessage(playerid, COLOR_ORANGE, "/desabilitarconta /habilitaconta /v /flip /fazerhelper /disarm /infodinheiro /createstillfire /fids /respawnvf");
  363. }
  364. if(IsPlayerAdminLevelOK(playerid, 3))
  365. {
  366. SendClientMessage(playerid, COLOR_WHITE, "Lead Admin Comandos:");
  367. SendClientMessage(playerid, COLOR_ORANGE, "/anuncioadm /kill [id] /bc /contagemr /iniciarevento /pararevento /gmx /cancelgmx /dararma /vreparar");
  368. SendClientMessage(playerid, COLOR_ORANGE, "/(un)freezeall /darlicenca /removelicenca /mudartelefone /refunddrogas");
  369. SendClientMessage(playerid, COLOR_ORANGE, "/(un)banip /disableaccid /doubleslap /criarfogo /tooc");
  370. }
  371. if(IsPlayerAdminLevelOK(playerid, 4))
  372. {
  373. SendClientMessage(playerid, COLOR_WHITE, "Management Comandos:");
  374. SendClientMessage(playerid, COLOR_ORANGE, "/vehattach /settime /anim /fedit /cfv /dfv /rbanip /reloadfactions /refundodinheiro /mudarsenha /kickping /xyz /gtoghc /addfuel");
  375. SendClientMessage(playerid, COLOR_WHITE, "Os comandos adicionais via RCON podem ser encontrados por using /rch");
  376. }
  377. SendClientMessage(playerid, COLOR_WHITE, "Todos os comandos abaixo do seu ranking também podem ser usados.");
  378. return true;
  379. }
  380. CMD:adminajuda(playerid, params[]) return cmd_aj(playerid);
  381. CMD:aajuda(playerid, params[]) return cmd_aj(playerid);
  382. CMD:mudarsenha(playerid, params[])
  383. {
  384. //if(!IsPlayerAdminLevelOK(playerid, 4)) return SysMsg(playerid, AUTHMSG);
  385. new accountname[MAX_PLAYER_NAME], password[50], hashpass[150], sqlid;
  386. if(sscanf(params, "s[20]s[50]", accountname, password)) return SysMsg(playerid,"Use: /mudarsenha [Conta Master] [Nova Senha]");
  387. sqlid = MySQLCheckMaster_AgainstName(accountname);
  388. if(sqlid <= 1) return SysMsg(playerid,"Este nome não foi encontrado.");
  389. WP_Hash(hashpass, 150, password);
  390. MySQLUpdateString(sqlid, "Password", hashpass, "masters");
  391. format(gstr, sizeof(gstr), "Você mudou a senha da conta para '%s'", GetSQLName(sqlid), password);
  392. SendClientMessage(playerid, COLOR_RED, gstr);
  393. AdminLog(playerid, sqlid, accountname, "Senha da conta Alterado.");
  394. return true;
  395. }
  396. CMD:addfuel(playerid, params[])
  397. {
  398. if(!Logged{playerid}) return true;
  399. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  400. new fuelamount, fuelplace[6], fueltype[7];
  401. if(sscanf(params, "s[6]s[7]i", fuelplace, fueltype, fuelamount)) return SysMsg(playerid,"Use: /addfuel [mont,pc,dil,bce,bcw,elq,fc,ap,aps,flint,aper] [petroler/diesel] [Quantidade]");
  402. new fidx = -1;
  403. if(!strcmp(fuelplace, "mont")) fidx = 0;
  404. else if(!strcmp(fuelplace, "pc")) fidx = 1;
  405. else if(!strcmp(fuelplace, "dil")) fidx = 2;
  406. else if(!strcmp(fuelplace, "fc")) fidx = 3;
  407. else if(!strcmp(fuelplace, "bce")) fidx = 4;
  408. else if(!strcmp(fuelplace, "elq")) fidx = 5;
  409. else if(!strcmp(fuelplace, "bcw")) fidx = 6;
  410. else if(!strcmp(fuelplace, "flint")) fidx = 7;
  411. else if(!strcmp(fuelplace, "aps")) fidx = 8;
  412. else if(!strcmp(fuelplace, "ap")) fidx = 9;
  413. else if(!strcmp(fuelplace, "aper")) fidx = 10;
  414. if(!strcmp(fueltype, "gasolina"))
  415. {
  416. if(FuelStations[fidx][PetrolAmount] + fuelamount > FuelStations[fidx][PetrolAmountMax]) return SysMsg(playerid,"A estação não pode suportar muito combustível.");
  417. FuelStations[fidx][PetrolAmount] += fuelamount;
  418. UpdateFuelStationSign(fidx);
  419. format(gstr, sizeof(gstr), "Admin %s adicionou %i Galões de gasolina para o posto de gasolina %s.", NameEx(playerid), fuelamount, FuelStations[fidx][StationDescription]);
  420. SendClientMessageToAllLogged(COLOR_OOC, gstr);
  421. format(gstr, sizeof(gstr), "Você adicionou %i Galões de gasolina para o posto de gasolina %s", fuelamount, FuelStations[fidx][StationDescription]);
  422. AdminLog(playerid, 0, "", gstr);
  423. return true;
  424. }
  425. else if(!strcmp(fueltype, "diesel"))
  426. {
  427. if(FuelStations[fidx][DieselAmount] + fuelamount > FuelStations[fidx][DieselAmountMax]) return SysMsg(playerid,"Station cannot hold this much fuel.");
  428. FuelStations[fidx][DieselAmount] += fuelamount;
  429. UpdateFuelStationSign(fidx);
  430. format(gstr, sizeof(gstr), "Admin %s adicionou %i Galões de Diesel para o posto de gasolina %s.", NameEx(playerid), fuelamount, FuelStations[fidx][StationDescription]);
  431. SendClientMessageToAllLogged(COLOR_OOC, gstr);
  432. format(gstr, sizeof(gstr), "Você adicionou %i Galões de gasolina para o posto de gasolina %s", fuelamount, FuelStations[fidx][StationDescription]);
  433. AdminLog(playerid, 0, "", gstr);
  434. return true;
  435. }
  436. SysMsg(playerid,"Erro com parâmetros.");
  437. return true;
  438. }
  439. CMD:gtogdooc(playerid)
  440. {
  441. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  442. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  443. GlobalDOOCMute = !GlobalDOOCMute;
  444. if(!GlobalDOOCMute) SendClientMessageToAllLogged(COLOR_DONATE, "O canal de bate-papo Donator OOC foi ativado.");
  445. else SendClientMessageToAllLogged(COLOR_DONATE, "O canal de bate-papo Donator OOC foi desativado.");
  446. return true;
  447. }
  448. CMD:togamsg(playerid)
  449. {
  450. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  451. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  452. if(ADuty[playerid] == 1) return SysMsg(playerid,"Você não pode modificar isso enquanto estiver de plantão.");
  453. AdminMsgToggle{playerid} = !AdminMsgToggle{playerid};
  454. if(AdminMsgToggle{playerid}) SendClientMessage(playerid, COLOR_WHITE, "Certas mensagens de administrador não estão habilitadas para você.");
  455. else SendClientMessage(playerid, COLOR_WHITE, "Certas mensagens de administrador agora estão desativadas para você.");
  456. return true;
  457. }
  458. CMD:togip(playerid)
  459. {
  460. if(!Logged{playerid}) return true;
  461. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  462. IPTog{playerid} = !IPTog{playerid};
  463. if(IPTog{playerid}) SysMsg(playerid, "Os endereços IP não aparecerão mais para você ao juntar mensagens.");
  464. else SysMsg(playerid, "Os endereços IP não serão exibidos para você ao juntar mensagens.");
  465. return true;
  466. }
  467. CMD:afklista(playerid)
  468. {
  469. if(!Logged{playerid}) return true;
  470. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  471. gstr[0] = EOS;
  472. foreach(new i: Player)
  473. {
  474. if(Logged{i} && IsAFK{i})
  475. {
  476. format(sgstr, sizeof(sgstr), "%s(%i) - %i minutos (Razão: %s)\n", NameEx(i), i, AwayMinutes[i], AFKReason[i]);
  477. strcat(gstr, sgstr);
  478. }
  479. }
  480. if(!strlen(gstr)) return SysMsg(playerid, "Sem jogadores AFK.");
  481. else ShowMessage(playerid, "Server AFK", gstr, "Ok");
  482. return true;
  483. }
  484. CMD:estranhos(playerid)
  485. {
  486. if(!Logged{playerid}) return true;
  487. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  488. new sub[60], count = 0;
  489. gstr[0] = EOS;
  490. foreach(new i: Player)
  491. {
  492. if(Logged{i} && IsPlayerMasked{i} && MaskHideName{i})
  493. {
  494. if(count > 0) format(sub, sizeof(sub), "\nEstranho_%i - %s(ID %i)", MaskLabelNumber[i], NameEx(i), i);
  495. else format(sub, sizeof(sub), "Estranho_%i - %s(ID %i)", MaskLabelNumber[i], NameEx(i), i);
  496. count ++;
  497. strcat(gstr, sub);
  498. }
  499. }
  500. if(count > 0) ShowMessage(playerid, "Lista de mascarados", gstr, "Ok");
  501. return true;
  502. }
  503. CMD:rch(playerid)
  504. {
  505. if(!Logged{playerid}) return true;
  506. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  507. SendClientMessage(playerid, COLOR_RED, "Ajuda > RCON Admin Ajuda");
  508. SendClientMessage(playerid, COLOR_WHITE, "RCON comandos:");
  509. SendClientMessage(playerid, COLOR_ORANGE, "/setdonate /dlevelup /venderoldassets /venderbanassets /pagarday /setgravity");
  510. SendClientMessage(playerid, COLOR_ORANGE, "/kickall /healall /vlabel /delvlabel /gt /msgall /playsound /msgp /bone /sdo /plantbomb /explode /disarmbomb");
  511. SendClientMessage(playerid, COLOR_ORANGE, "/maths /attach /uberslap /queimadinheiro /stopqueimardinheiro /explodir /setserversenha /tc /fach");
  512. SendClientMessage(playerid, COLOR_ORANGE, "/saction /fakeme /recordbot /stoprecord /criarcasa /editarcasa /reloadhouses /fazerveh /editveh");
  513. SendClientMessage(playerid, COLOR_ORANGE, "/makepickup /makebizz /editbizz /reloadbizz /reloadpickups /cquarto /darxp /delacc /reloadweaponinfo");
  514. return true;
  515. }
  516. CMD:veiculos(playerid)
  517. {
  518. if(!Logged{playerid}) return true;
  519. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  520. new vehDone[212];
  521. gstr[0] = EOS;
  522. for(new vid = 1, x = GetVehiclePoolSize(); vid <= x; vid++)
  523. {
  524. if(IsVehicleSpawned(vid))
  525. {
  526. new model = GetVehicleModel(vid);
  527. new Count = 0;
  528. for(new v = 1, x2 = GetVehiclePoolSize(); v <= x2; v++)
  529. {
  530. if(GetVehicleModel(v) == model && vehDone[model-400] == 0)
  531. {
  532. Count++;
  533. }
  534. }
  535. if(Count > 0 && vehDone[model-400] == 0)
  536. {
  537. new subStr[128];
  538. if(Count == 1) format(subStr,128,"\n1 %s",GetVehicleNameEx(model));
  539. else format(subStr,128,"\n%i %s's",Count,GetVehicleNameEx(model));
  540. format(gstr, sizeof(gstr),"%s\n%s",gstr,subStr);
  541. }
  542. vehDone[model-400] = 1;
  543. }
  544. }
  545. Dialog_Show(playerid,DIALOG_NONE,DIALOG_STYLE_LIST,"Dados do veículo",gstr,"Pronto","");
  546. return true;
  547. }
  548. CMD:mysqlstats(playerid, params)
  549. {
  550. if(IsPlayerAdminLevelOK(playerid, 4))
  551. {
  552. gstr[0] = EOS;
  553. mysql_stat(gstr);
  554. SendSplitMessage(playerid, COLOR_WHITE, gstr);
  555. SendClientMessageF(playerid, COLOR_WHITE, "Unpro Queries: %i", mysql_unprocessed_queries());
  556. }
  557. else return SysMsg(playerid, CMDFMSG);
  558. return true;
  559. }
  560. CMD:v(playerid, params[])
  561. {
  562. if(!IsPlayerAdminLevelOK(playerid, 2)) return SysMsg(playerid, AUTHMSG);
  563. if(IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você não pode spawnar um veiculo estando dentro de um.");
  564. new vehiclename[20];
  565. if(sscanf(params, "s[20]", vehiclename)) return SysMsg(playerid,"Use: /v [nome do model] [Optional: cor 1] [Optional: cor 2]");
  566. if(GetVehiclePoolSize()+1 > MAX_VEHICLES) return SysMsg(playerid,"Error: Língua de aproximação do veículo.");
  567. new Car = GetVehicleModelIdFromName(vehiclename);
  568. if(Car == -1)
  569. {
  570. Car = strval(vehiclename);
  571. if(Car < 400 || Car > 611) return SysMsg(playerid,"Isso não parece ser um veículo válido. Use o nome do modelo ou ID.");
  572. }
  573. if(!IsPlayerAdmin(playerid))
  574. {
  575. new restrictedModels[12] = {406, 425, 432, 447, 537, 538, 569, 570, 577, 590, 592, 520};
  576. for(new i = 0; i < sizeof(restrictedModels); i++) if(Car == restrictedModels[i]) return SysMsg(playerid, "O veículo está restrito de spawn.");
  577. }
  578. new Float:X, Float:Y, Float:Z, Float:A, interior, vw;
  579. GetPlayerPos(playerid, X, Y, Z);
  580. GetPlayerFacingAngle(playerid, A);
  581. X += (5 * floatsin(-A, degrees));
  582. Y += (5 * floatcos(-A, degrees));
  583. interior = GetPlayerInterior(playerid);
  584. vw = GetPlayerVirtualWorld(playerid);
  585. new carid = CreateVehicleEx(Car, X, Y, Z, A, 7, 7, -1);
  586. aspawned{carid} = true;
  587. ToggleVehicleEngine(carid, 1);
  588. EngineStatus[carid] = 1;
  589. PutPlayerInVehicle(playerid, carid, 0);
  590. Locked{carid} = false;
  591. AdminLocked{carid} = false;
  592. foreach(new i: Player) Objective[carid][i] = 0;
  593. ToggleVehicleLock(carid, 0);
  594. if(interior > 0)
  595. {
  596. LinkVehicleToInteriorEx(carid, interior);
  597. }
  598. if(vw > 0)
  599. {
  600. SetVehicleVirtualWorld(carid, vw);
  601. }
  602. if(!VehicleHasEngine(carid))
  603. {
  604. EngineStatus[carid] = 1;
  605. Fuel[carid] = 100;
  606. }
  607. VehicleSpawnedBy[carid][0] = SQLID[playerid];
  608. SendClientMessageF(playerid, COLOR_LIGHTGREEN, "Veiculo spawnado: {FFFFFF}%s{00FF00} (ID {FFFFFF}%i{00FF00}, Model {FFFFFF}%i{00FF00})", GetVehicleName(carid), carid, Car);
  609. format(sgstr, sizeof(sgstr), "Veiculo spawnado: %s (ID %i, Model %i)", GetVehicleName(carid), carid, Car);
  610. AdminLog(playerid, 0, "", sgstr);
  611. return true;
  612. }
  613. CMD:veh(playerid, params[]) return cmd_v(playerid, params);
  614. CMD:quemspawn(playerid, params[])
  615. {
  616. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  617. new vehid = GetPlayerVehicleID(playerid);
  618. if(vehid == 0) if(sscanf(params, "i", vehid)) return SysMsg(playerid,"Use: /quemspawn [veiculo ID] || /quemspawn se você estiver em um veículo");
  619. new whospawned[MAX_PLAYER_NAME], h, m, diff = gettime() - VehicleSpawnedBy[vehid][1];
  620. if(VehicleSpawnedBy[vehid][0] == 0) format(whospawned, MAX_PLAYER_NAME, "Servidor");
  621. else format(whospawned, MAX_PLAYER_NAME, GetSQLName(VehicleSpawnedBy[vehid][0]));
  622. while(diff > 3600)
  623. {
  624. diff -= 3600;
  625. h++;
  626. }
  627. while(diff > 60)
  628. {
  629. diff -= 60;
  630. m++;
  631. }
  632. SendClientMessageF(playerid, COLOR_WHITE, "[%s, ID %i] Spawnado por %s %ih e %im atrás.", GetVehicleName(vehid), vehid, whospawned, h, m);
  633. return true;
  634. }
  635. CMD:vehattach(playerid, params[])
  636. {
  637. if(!IsPlayerAdminLevelOK(playerid, 4)) return SysMsg(playerid, AUTHMSG);
  638. new Float:pX,Float:pY,Float:pZ;
  639. new Float:vX,Float:vY,Float:vZ;
  640. GetPlayerPos(playerid,pX,pY,pZ);
  641. new Found = 0;
  642. new vid = 1;
  643. new vehicleid = GetPlayerVehicleID(playerid);
  644. new x = GetVehiclePoolSize();
  645. while(vid <= x && !Found)
  646. {
  647. vid++;
  648. GetVehiclePos(vid,vX,vY,vZ);
  649. if(floatabs(pX-vX) < 7.0 && floatabs(pY-vY) < 7.0 && floatabs(pZ-vZ) < 7.0 && vid != vehicleid)
  650. {
  651. Found = 1;
  652. if(IsTrailerAttachedToVehicle(vehicleid)) DetachTrailerFromVehicle(vehicleid);
  653. else AttachTrailerToVehicle(vid,vehicleid);
  654. }
  655. }
  656. return true;
  657. }
  658. CMD:acars(playerid, params[])
  659. {
  660. new count = 0;
  661. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid,"Você não está autorizado a usar esse comando.");
  662. gstr[0] = EOS;
  663. for(new v = 1, x = GetVehiclePoolSize(); v <= x; v++)
  664. {
  665. if(VehicleSpawnedBy[v][0] != 0)
  666. {
  667. format(gstr, sizeof(gstr), "%s%i - %s - Spawnado por: %s\n", gstr, v, GetVehicleName(v), GetSQLName(VehicleSpawnedBy[v][0]));
  668. count++;
  669. }
  670. }
  671. if(count == 0) return SysMsg(playerid,"Não há nenhum veiculo spawnado por administradores no momento.");
  672. Dialog_Show(playerid, AdminCarList, DIALOG_STYLE_LIST, "Veiculos admin", gstr, "Despawn", "Cancelar");
  673. return true;
  674. }
  675. CMD:delv(playerid, params[])
  676. {
  677. if(!IsPlayerAdminLevelOK(playerid, 1) && !IsHelper{playerid}) return SysMsg(playerid, AUTHMSG);
  678. new id[12];
  679. if(IsPlayerInAnyVehicle(playerid)) format(id, 12, "%i", GetPlayerVehicleID(playerid));
  680. else if(sscanf(params, "s[12]", id)) return SysMsg(playerid, "Use: /delv [Veiculo ID / All]");
  681. if(IsNumeric(id))
  682. {
  683. new v = strval(id);
  684. if(v < 1 || v > MAX_VEHICLES || !IsVehicleSpawned(v)) return SysMsg(playerid, "Veiculo ID inválido");
  685. if(v > MAX_VEHICLES) return SysMsg(playerid, "Você não pode deletar veiculos do servidor.");
  686. new faction = IsFactionVehicle(v);
  687. if(faction > 0) return SysMsg(playerid,"Você não pode deletar veiculos de uma facção. (/dfv)");
  688. if(IsServerCar(v)) return SysMsg(playerid,"Você não pode deletar esse veiculo do servidor.");
  689. if(IsHelper{playerid} && IsAssisting[playerid] == -1) return SysMsg(playerid,"Você precisa está prestando assistência para usar esse comando");
  690. if(VehicleData[v][IdVehicle] == v) return SysMsg(playerid,"Você não pode deletar um veiculo que tem dono.");
  691. if(IsRentalCar(v)) return SysMsg(playerid, "Você não pode deletar um veiculo de aluguél.");
  692. CarColor[v][0] = 1;
  693. CarColor[v][1] = 1;
  694. AdminLocked{v} = false;
  695. JustDeletedVehicle{playerid} = true;
  696. SendClientMessageF(playerid, COLOR_LIGHTGREEN, "Veiculo destruido: {FFFFFF}%s{00FF00} (ID {FFFFFF}%i{00FF00})", GetVehicleName(v), v);
  697. format(sgstr, sizeof(sgstr), "Veiculo destruido: %s (ID %i)", GetVehicleName(v), v);
  698. VehicleSpawnedBy[v][0] = 0;
  699. DestroyVehicleEx(v, "0");
  700. ClearVehicleData(v);
  701. AdminLog(playerid, 0, "", sgstr);
  702. }
  703. else if(strmatch("all", id))
  704. {
  705. if(IsPlayerAdminLevelOK(playerid, 2))
  706. {
  707. new count = 0, opp = 0;
  708. for(new v = 0, x = GetVehiclePoolSize(); v <= x; v++)
  709. {
  710. if(aspawned{v})
  711. {
  712. if(!IsVehicleOccupied(v))
  713. {
  714. CarColor[v][0] = 1;
  715. CarColor[v][1] = 1;
  716. AdminLocked{v} = false;
  717. count++;
  718. VehicleSpawnedBy[v][0] = 0;
  719. DestroyVehicleEx(v, "v 1");
  720. ClearVehicleData(v);
  721. }
  722. opp++;
  723. }
  724. }
  725. if(count == 0)
  726. {
  727. if(opp == 0) SendClientMessage(playerid, COLOR_RED, "Não há nenhum veiculo administrativo para despawn.");
  728. else SendClientMessage(playerid, COLOR_RED, "Todos os veiculos administrativos estão atualmente ocupados.");
  729. return true;
  730. }
  731. SendClientMessageF(playerid, COLOR_LIGHTGREEN, "Você despawnou %i fora de %i veiculos spawnados.", count, opp);
  732. format(gstr, sizeof(gstr), "[Admin] %s despawno um veiculo %i out of %i admin spawned vehicles.", NameEx(playerid), count, opp);
  733. AdminBroadcast(gstr, 1);
  734. }
  735. else return SysMsg(playerid, AUTHMSG);
  736. }
  737. else return SysMsg(playerid, "Use: /delv [Veiculo ID / ALL]");
  738. return true;
  739. }
  740. CMD:delveh(playerid, params[]) return cmd_delv(playerid, params);
  741. CMD:setvh(playerid, params[])
  742. {
  743. if(!IsPlayerAdminLevelOK(playerid, 3)) return SysMsg(playerid, AUTHMSG);
  744. new vid = GetPlayerVehicleID(playerid);
  745. if(vid > 0)
  746. {
  747. SetVehicleHealthEx(vid, strval(params));
  748. SysMsgF(playerid, "Saúde do veículo definida para %i.", strval(params));
  749. }
  750. return true;
  751. }
  752. CMD:ln(playerid, params[])
  753. {
  754. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  755. SendClientMessageF(playerid, COLOR_WHITE, "Desenhar: %i", WinningLotteryNumber);
  756. return true;
  757. }
  758. CMD:fl(playerid, params[])
  759. {
  760. if(!IsPlayerAdminLevelOK(playerid, 2)) return SysMsg(playerid, AUTHMSG);
  761. if(IsPlayerInAnyVehicle(playerid))
  762. {
  763. new id = GetPlayerVehicleID(playerid), Float:a;
  764. GetVehicleZAngle(id,a);
  765. SetVehicleZAngle(id,a);
  766. format(gstr, sizeof(gstr), "Veiculo capotado: %s(%i)", GetVehicleName(id),id);
  767. SendClientMessage(playerid, COLOR_LIGHTGREEN, gstr);
  768. }
  769. else return SysMsg(playerid,"Você não está em um veículo.");
  770. return true;
  771. }
  772. CMD:flip(playerid, params[]) return cmd_fl(playerid, params);
  773. CMD:dararma(playerid, params[])
  774. {
  775. if(!IsPlayerAdminLevelOK(playerid, 3)) return SysMsg(playerid, AUTHMSG);
  776. new playa = -1, gunid[30], reason[8];
  777. if(sscanf(params, "us[30]s[8]", playa, gunid, reason)) return SysMsg(playerid,"Use: /dararma [ID ou nome do jogador] [arman id/parte do nome] [evento/refundo/facção]");
  778. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  779. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  780. if(GetFreeWeaponObjectIndex(playa) == -1) return SysMsg(playerid, "Esse jogador não pode ter outra arma agora.");
  781. new wid;
  782. if(!IsNumeric(gunid)) wid = GetWeaponIdFromName(gunid);
  783. else wid = strval(gunid);
  784. if(wid == -1) return SysMsg(playerid,"Arma inválida.");
  785. if(wid < 0 || wid > 47) return SysMsg(playerid,"Arma inválida.");
  786. if(wid == 19 || wid == 20 || wid == 21) return SysMsg(playerid,"Arma inválida.");
  787. new ammo = GetDefaultWeaponAmmo(wid);
  788. if(!IsPlayerAdmin(playa) && IsBanWeapon(wid)) return SysMsg(playerid,"Esse jogador não pode ter uma arma");
  789. new wname[30];
  790. wname = GetWeaponNameFromID(wid);
  791. if(!WeaponCheck(playa, wid) && IsActualGun(wid)) return SysMsg(playerid, "Este jogador não pode pegar esta arma.");
  792. if(WeaponData[playa][GetWeaponSlot(wid)][Weapon] >= 1) return SysMsg(playerid, "Este jogador já possui uma arma nesse slot.");
  793. if(strcmp("refundo", reason, true) == 0)
  794. {
  795. GivePlayerWeaponEx(playa, wid, ammo, 1, -1, 1, SQLID[playerid]);
  796. format(sgstr, sizeof(sgstr),"Admin %s refundou uma arma: %s(Id:%i) Munições: %i", NameEx(playerid), wname, wid, ammo);
  797. SendClientMessage(playa, COLOR_LIGHTGREEN, sgstr);
  798. format(sgstr, sizeof(sgstr),"[Admin] %s refundou %s uma arma: %s(Id:%i) Munições: %i", NameEx(playerid), NameEx(playa), wname, wid, ammo);
  799. AdminBroadcast(sgstr, 1);
  800. format(sgstr, sizeof(sgstr), "Give weapon %s, ammo=%i, reason=Refund", wname, ammo);
  801. AdminLog(playerid, SQLID[playa], GetName(playa), sgstr);
  802. }
  803. else if(strcmp("evento", reason, true) == 0)
  804. {
  805. GivePlayerWeapon(playa, wid, ammo);
  806. HasEventWeapon{playa} = true;
  807. PauseAC(playerid);
  808. format(sgstr, sizeof(sgstr),"Admin %s te deu uma arma para evento: %s(Id:%i) Munições: %i", NameEx(playerid), wname, wid, ammo);
  809. SendClientMessage(playa, COLOR_LIGHTGREEN, sgstr);
  810. format(sgstr, sizeof(sgstr),"[Admin] %s deu a %s uma arma para evento: %s(Id:%i) Munições: %i", NameEx(playerid), NameEx(playa), wname, wid, ammo);
  811. AdminBroadcast(sgstr, 1);
  812. format(sgstr, sizeof(sgstr), "Give weapon %s, ammo=%i, reason=Event", wname, ammo);
  813. AdminLog(playerid, SQLID[playa], GetName(playa), sgstr);
  814. format(sgstr, sizeof(sgstr), "[%s] %s (%i) has been given %s with %i ammo. [EVENT]", GetServerTimeString(), NameEx(playa), playa, weaponstring[wid], ammo);
  815. AddToLog("cheat", sgstr);
  816. }
  817. else if(strcmp("fac", reason, true) == 0)
  818. {
  819. GivePlayerWeaponEx(playa, wid, ammo, 3, -1, 1, SQLID[playerid]);
  820. format(sgstr, sizeof(sgstr),"Admin %s refundou sua arma da facção: %s(Id:%i) Munições: %i", NameEx(playerid), wname, wid, ammo);
  821. SendClientMessage(playa, COLOR_LIGHTGREEN, sgstr);
  822. format(sgstr, sizeof(sgstr),"[Admin] %s refundou %s uma arma de facção: %s(Id:%i) Munições: %i", NameEx(playerid), NameEx(playa), wname, wid, ammo);
  823. AdminBroadcast(sgstr, 1);
  824. format(sgstr, sizeof(sgstr), "Give weapon %s, ammo=%i, reason=Faction Wep", wname, ammo);
  825. AdminLog(playerid, SQLID[playa], GetName(playa), sgstr);
  826. }
  827. else SysMsg(playerid,"Use: /dararma [ID ou nome do jogador] [arma id/parte do nome] [evento/refundo/fac]");
  828. return true;
  829. }
  830. CMD:guninfo(playerid, params[])
  831. {
  832. if(!Logged{playerid}) return true;
  833. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  834. new playa = -1;
  835. if(sscanf(params, "u", playa)) return SysMsg(playerid, "Use: /guninfo [playerID ou name]");
  836. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  837. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM weapons WHERE WeaponPossession = 1 AND OwnerSQLID = %i AND Deleted = 0", SQLID[playa]);
  838. mysql_pquery(conn, mquery, "ShowWeaponInfo", "i", playerid);
  839. return true;
  840. }
  841. RCRP::ShowWeaponInfo(playerid)
  842. {
  843. if(!cache_num_rows()) return SysMsg(playerid, "Este jogador está desarmado.");
  844. new creator[15], timestamp[15], origin[15], weaponid[15], ammo[15], id[15], count;
  845. for(new i = 0, x = cache_num_rows(); i < x; i++)
  846. {
  847. id[i] = cache_get_field_content_int(i, "id");
  848. creator[i] = cache_get_field_content_int(i, "CreatorSQLID");
  849. timestamp[i] = cache_get_field_content_int(i, "Timestamp");
  850. origin[i] = cache_get_field_content_int(i, "WeaponOrigin");
  851. weaponid[i] = cache_get_field_content_int(i, "WeaponID");
  852. ammo[i] = cache_get_field_content_int(i, "WeaponAmmo");
  853. count ++;
  854. }
  855. for(new i = 0; i < count; i++)
  856. {
  857. SendSplitMessageF(playerid, COLOR_BLUE, "([Arma ID %i (%s, %i munições)] Nome do criador: %s, Origem: %s, Timestamp %s)", id[i], GetWeaponNameFromID(weaponid[i]), ammo[i], GetSQLName(creator[i]), GetWeaponOrigin(origin[i]), UnixDate(timestamp[i], 0, 0));
  858. }
  859. return true;
  860. }
  861. stock GetWeaponOrigin(origin)
  862. {
  863. new worigin[32];
  864. switch(origin)
  865. {
  866. case 1: worigin = "Refundo Admin";
  867. case 2: worigin = "Arma ilegal";
  868. case 3: worigin = "Arma de facção";
  869. case 4: worigin = "Arma legal";
  870. case 7: worigin = "Loja Item Comprado";
  871. }
  872. return worigin;
  873. }
  874. CMD:cg(playerid, params[]) return cmd_checkguns(playerid, params);
  875. CMD:checkguns(playerid, params[])
  876. {
  877. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  878. new playa = -1;
  879. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /checkguns [playerid/name]");
  880. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  881. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  882. new clientID, clientAmmo, wCount = 0;
  883. for(new w = 0; w < MAX_TOTAL_WEAPONS; w++)
  884. {
  885. GetPlayerWeaponData(playa, w, clientID, clientAmmo);
  886. if(clientID == WEAPON_SILENCED && HasTaser{playa}) continue;
  887. if(clientID > 0 || WeaponData[playa][w][Weapon] > 0)
  888. {
  889. if(clientID == WeaponData[playa][w][Weapon] && WeaponData[playa][w][WeaponID] != 0)
  890. {
  891. SendClientMessageF(playerid, 0x63FF2DFF, "[SERVER & CLIENTE] %s(ID %i) Slot %i | %s(ID %i - %i C.Mun - %i S.Mun)", NameEx(playa), playa, w, GetWeaponNameFromID(clientID), clientID, clientAmmo, WeaponData[playa][w][WeaponAmmo]);
  892. wCount ++;
  893. }
  894. else if(clientID != WeaponData[playa][w][Weapon] && WeaponData[playa][w][Weapon] == 0 && clientAmmo > 0 && WeaponData[playa][w][WeaponID] == 0)
  895. {
  896. SendClientMessageF(playerid, 0xF2CD3BFF, "[SOMENTE CLIENTE] %s(ID %i) Slot %i | %s(ID %i - %i C.Mun - %i S.Mun)", NameEx(playa), playa, w, GetWeaponNameFromID(clientID), clientID, clientAmmo, WeaponData[playa][w][WeaponAmmo]);
  897. wCount ++;
  898. }
  899. else if(clientID != WeaponData[playa][w][Weapon] && clientID == 0)
  900. {
  901. SendClientMessageF(playerid, 0xF2CD3BFF, "[SOMENTE SERVIDOR] %s(ID %i) Slot %i | %s(ID %i - %i C.Mun - %i S.Mun)", NameEx(playa), playa, w, GetWeaponNameFromID(WeaponData[playa][w][Weapon]), WeaponData[playa][w][Weapon], clientAmmo, WeaponData[playa][w][WeaponAmmo]);
  902. wCount ++;
  903. }
  904. }
  905. }
  906. if(wCount == 0) SendClientMessage(playerid, COLOR_LIGHTBLUE, "Este jogador não tem arma para mostrar.");
  907. return true;
  908. }
  909. CMD:checkallguns(playerid, params[])
  910. {
  911. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  912. new w, clientID, clientAmmo;
  913. foreach(new i: Player)
  914. {
  915. if(IsPlayerNPC(i) || !Logged{i}) continue;
  916. for(w = 0; w < MAX_TOTAL_WEAPONS; w++)
  917. {
  918. GetPlayerWeaponData(i, w, clientID, clientAmmo);
  919. if(clientID == WEAPON_SILENCED && HasTaser{i}) continue;
  920. if(clientID > 0 && clientAmmo > 0)
  921. {
  922. if(WeaponData[i][w][Weapon] != clientID)
  923. {
  924. format(gstr, sizeof(gstr),"%s (ID %i) Possivel Hack - Slot %i, Arma %s(ID %i), %i Munições", NameEx(i), i, w, GetWeaponNameFromID(clientID), clientID, clientAmmo);
  925. SendClientMessage(playerid, COLOR_DARKBLUE, gstr);
  926. }
  927. }
  928. }
  929. }
  930. SendClientMessage(playerid, COLOR_DARKBLUE, "Verificou todos os jogadores por armas pirateadas.");
  931. return true;
  932. }
  933. CMD:refunddrogas(playerid, params[])
  934. {
  935. if(!IsPlayerAdminLevelOK(playerid, 3)) return SysMsg(playerid, AUTHMSG);
  936. new pname[MAX_PLAYER_NAME], playa = -1, drug[10], amount;
  937. if(sscanf(params, "s[24]s[10]i", pname, drug, amount)) return SysMsg(playerid,"Use: /refunddrogas [player id ou nome completo] [marijuana/cocaina/moonshine] [Quantidade]");
  938. new sqlid = -1;
  939. if(IsNumeric(pname))
  940. {
  941. if(!IsPlayerConnected(strval(pname)) || !Logged{strval(pname)}) return SysMsg(playerid, "O ID do jogador não foi conectado e conectado.");
  942. playa = strval(pname);
  943. sqlid = SQLID[playa];
  944. }
  945. else
  946. {
  947. sqlid = MySQLCheckAccount(pname, playerid);
  948. if(sqlid <= 0) return SysMsg(playerid, "O nome não foi encontrado. Por favor, inclua o primeiro nome, sobrenome e um título de destaque OU use o ID de identidade atual.");
  949. }
  950. if(sqlid == -1) return SysMsg(playerid, "O nome não foi encontrado. Por favor, inclua o primeiro nome, sobrenome e um título de destaque OU use o ID de identidade atual.");
  951. if(sqlid == SQLID[playerid] && !IsPlayerAdmin(playerid)) return SysMsg(playerid, "Não pode ser você mesmo.");
  952. if(playa >= 0)
  953. {
  954. if(strcmp("marijuana", drug, true) == 0)
  955. {
  956. if(amount < 1) return SysMsg(playerid,"Essa quantidade é inválida.");
  957. if(amount + Inventory[playa][Weed] > DRUG_MAX_WEED) return SysMsgF(playerid, "Quantidade Inválida, %s não seria capaz de carregar tanta marijuana. Você pode dar um máximo de %i gramas.", NameEx(playa), DRUG_MAX_WEED - Inventory[playa][Weed]);
  958. Inventory[playa][Weed] += amount;
  959. MySQLUpdateInt(SQLID[playa], "Weed", Inventory[playa][Weed], "players");
  960. format(gstr, sizeof(gstr),"Admin %s refundou a você %i gramas de marijuana.", NameEx(playerid), amount);
  961. SendClientMessage(playa, COLOR_LIGHTGREEN, gstr);
  962. format(gstr, sizeof(gstr),"[Admin] %s refundou a %s %i gramas de marijuana.", NameEx(playerid), NameEx(playa), amount);
  963. AdminBroadcast(gstr, 0);
  964. format(gstr, sizeof(gstr), "Refundo Drogas %i x %s", amount, drug);
  965. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  966. return true;
  967. }
  968. if(strcmp("cocaina", drug, true) == 0)
  969. {
  970. if(amount < 1) return SysMsg(playerid,"Essa quantidade é inválida.");
  971. if(amount + Inventory[playa][Cocaine] > DRUG_MAX_COCAINE) return SysMsgF(playerid, "Quantidade Inválida, %s não poderia levar tanto cocaína. Você pode dar um máximo de %i gramas.", NameEx(playa), DRUG_MAX_COCAINE - Inventory[playa][Cocaine]);
  972. Inventory[playa][Cocaine] += amount;
  973. MySQLUpdateInt(SQLID[playa], "Cocaine", Inventory[playa][Cocaine], "players");
  974. format(gstr, sizeof(gstr),"Admin %s refundou a você %i gramas de Cocaina.", NameEx(playerid), amount);
  975. SendClientMessage(playa, COLOR_LIGHTGREEN, gstr);
  976. format(gstr, sizeof(gstr),"[Admin] %s refundou a %s %i gramas de Cocaina.", NameEx(playerid), NameEx(playa), amount);
  977. AdminBroadcast(gstr, 0);
  978. format(gstr, sizeof(gstr), "Refundo Drogas %i x %s", amount, drug);
  979. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  980. return true;
  981. }
  982. if(strcmp("moonshine", drug, true) == 0)
  983. {
  984. if(amount < 1) return SysMsg(playerid,"Essa quantidade é inválida.");
  985. if(amount + Inventory[playa][MoonShine] > DRUG_MAX_MOONSHINE) return SysMsgF(playerid, "Quantidade Inválida, %s não seria capaz de carregar essa quantidad de MoonShine. Você pode dar um máximo de %i litro(s).", NameEx(playa), DRUG_MAX_MOONSHINE - Inventory[playa][MoonShine]);
  986. Inventory[playa][MoonShine] += amount;
  987. MySQLUpdateInt(SQLID[playa], "MoonShine", Inventory[playa][MoonShine], "players");
  988. format(gstr, sizeof(gstr),"Admin %s refundou a você %i litro(s) de MoonShine.", NameEx(playerid), amount);
  989. SendClientMessage(playa, COLOR_LIGHTGREEN, gstr);
  990. format(gstr, sizeof(gstr),"[Admin] %s refundou a %s %i litro(s) de MoonShine.", NameEx(playerid), NameEx(playa), amount);
  991. AdminBroadcast(gstr, 0);
  992. format(gstr, sizeof(gstr), "Refundo Drogas %i x %s", amount, drug);
  993. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  994. return true;
  995. }
  996. }
  997. else
  998. {
  999. foreach(new i: Player) if(sqlid == SQLID[i]) return SysMsg(playerid, "O nome completo do jogador não foi encontrado, tente usar o ID.");
  1000. if(strcmp("marijuana", drug, true) == 0)
  1001. {
  1002. if(amount < 1) return SysMsg(playerid,"Essa quantidade é inválida.");
  1003. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET Weed = Weed + %i WHERE id = %i", amount, sqlid);
  1004. mysql_pquery(conn, mquery);
  1005. format(gstr, sizeof(gstr),"[Admin] %s refundou a %s %i gramas de marijuana.", NameEx(playerid), GetSQLName(sqlid), amount);
  1006. AdminBroadcast(gstr, 0);
  1007. format(gstr, sizeof(gstr), "Refundo Drogas %i x %s", amount, drug);
  1008. AdminLog(playerid, sqlid, GetSQLName(sqlid), gstr);
  1009. return true;
  1010. }
  1011. if(strcmp("cocaina", drug, true) == 0)
  1012. {
  1013. if(amount < 1) return SysMsg(playerid,"Essa quantidade é inválida.");
  1014. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET Cocaine = Cocaine + %i WHERE id = %i", amount, sqlid);
  1015. mysql_pquery(conn, mquery);
  1016. format(gstr, sizeof(gstr),"[Admin] %s refundou a %s %i gramas de Cocaina.", NameEx(playerid), GetSQLName(sqlid), amount);
  1017. AdminBroadcast(gstr, 0);
  1018. format(gstr, sizeof(gstr), "Refundo Drogas %i x %s", amount, drug);
  1019. AdminLog(playerid, sqlid, GetSQLName(sqlid), gstr);
  1020. return true;
  1021. }
  1022. if(strcmp("moonshine", drug, true) == 0)
  1023. {
  1024. if(amount < 1) return SysMsg(playerid,"Essa quantidade é inválida.");
  1025. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET MoonShine = MonnShine + %i WHERE id = %i", amount, sqlid);
  1026. mysql_pquery(conn, mquery);
  1027. format(gstr, sizeof(gstr),"[Admin] %s refundou a %s %i listro de MoonShine.", NameEx(playerid), GetSQLName(sqlid), amount);
  1028. AdminBroadcast(gstr, 0);
  1029. format(gstr, sizeof(gstr), "Refundo Drogas %i x %s", amount, drug);
  1030. AdminLog(playerid, sqlid, GetSQLName(sqlid), gstr);
  1031. return true;
  1032. }
  1033. }
  1034. return true;
  1035. }
  1036. CMD:checkplayer(playerid, params[])
  1037. {
  1038. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  1039. new playa = -1;
  1040. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /checkplayer [playerid/name]");
  1041. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  1042. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  1043. new id = playa;
  1044. new Float:Health, Float:Armour, Float:X, Float:Y, Float:Z, Float:Ang, Interior, World, GPM = GetPlayerMoney(id), armedWeapon = GetPlayerWeapon(id), zone[MAX_ZONE_NAME], tutstatus[12];
  1045. GetPlayerHealth(id, Health);
  1046. GetPlayerArmour(id, Armour);
  1047. GetPlayerPos(id, X, Y, Z);
  1048. GetPlayerFacingAngle(id, Ang);
  1049. Interior = GetPlayerInterior(id);
  1050. World = GetPlayerVirtualWorld(id);
  1051. GetPlayer3DZone(id, zone, MAX_ZONE_NAME);
  1052. if(CompletedTutorial{id}) format(tutstatus, sizeof(tutstatus), "Yes");
  1053. else format(tutstatus, sizeof(tutstatus), "No");
  1054. SendClientMessageF(playerid, COLOR_LIGHTBLUE, "Player Data - %s ID:%i - Stats: %s - Tutorial completado: %s",NameEx(id),id, GetPlayerStateEx(id), tutstatus);
  1055. SendClientMessageF(playerid, COLOR_WHITE, "Health: %.0f(Server:%f) - Colete: %.0f(Server:%f) - Armado: %s(%i)",Health,HealthVar[id],Armour,ArmourVar[id],GetWeaponNameFromID(armedWeapon),armedWeapon);
  1056. SendClientMessageF(playerid, COLOR_WHITE, "Dinheiro Server: %i - Dinheiro Client: %i",Cash[id],GPM);
  1057. SendClientMessageF(playerid,COLOR_WHITE, "Localização: %s (%f[X], %f[Y], %f[Z], %f[RA]) - Interior ID: %i - VW: %i", zone, X, Y, Z, Ang, Interior, World);
  1058. if(IsPlayerInAnyVehicle(id)) SendClientMessageF(playerid, COLOR_WHITE, "Veiculo INFO: %s - %i", GetVehicleName(GetPlayerVehicleID(id)), GetPlayerVehicleID(id));
  1059. return true;
  1060. }
  1061. CMD:cp(playerid, params[]) return cmd_checkplayer(playerid, params);
  1062. CMD:darlicenca(playerid, params[])
  1063. {
  1064. if(!IsPlayerAdminLevelOK(playerid, 3)) return SysMsg(playerid, AUTHMSG);
  1065. new playa = -1, licensename[6];
  1066. if(sscanf(params, "us[6]", playa, licensename)) return SysMsg(playerid,"Use: /darlicenca [ID ou nome do jogador] [car/bike/boat/plane/heli/large]");
  1067. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  1068. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  1069. new lic = -1, sqlname[24];
  1070. if(strcmp("car", licensename, true) == 0) { lic = 0; sqlname = "LicenseCar"; }
  1071. else if(strcmp("large", licensename, true) == 0) { lic = 1; sqlname = "LicenseLargeVehicle"; }
  1072. else if(strcmp("bike", licensename, true) == 0) { lic = 2; sqlname = "LicenseBike"; }
  1073. else if(strcmp("boat", licensename, true) == 0) { lic = 3; sqlname = "LicenseBoat"; }
  1074. else if(strcmp("heli", licensename, true) == 0) { lic = 4; sqlname = "LicenseHelicopter"; }
  1075. else if(strcmp("plane", licensename, true) == 0) { lic = 5; sqlname = "LicensePlane"; }
  1076. else return SysMsg(playerid,"Não há nenhuma licença desse tipo.");
  1077. if(Licenses[playa][lic] == 1) return SysMsg(playerid,"Este jogador já tem essa carteira.");
  1078. Licenses[playa][lic] = 1;
  1079. MySQLUpdateInt(SQLID[playa], sqlname, Licenses[playa][lic], "players");
  1080. for(new tu = 0; tu < sizeof(licensename); tu++) licensename[tu] = toupper(licensename[tu]);
  1081. format(gstr, sizeof(gstr),"Admin %s te deu uma lincensa de %s.", NameEx(playerid), licensename);
  1082. SendClientMessage(playa,COLOR_WHITE, gstr);
  1083. format(gstr, sizeof(gstr),"Você deu a %s uma lincesa de %s.", NameEx(playa), licensename);
  1084. SendClientMessage(playerid,COLOR_WHITE, gstr);
  1085. format(gstr, sizeof(gstr), "Deu uma lincesa de %s", licensename);
  1086. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  1087. return true;
  1088. }
  1089. CMD:removelicence(playerid, params[])
  1090. {
  1091. if(!IsPlayerAdminLevelOK(playerid, 3)) return SysMsg(playerid, AUTHMSG);
  1092. new playa = -1, licensename[6];
  1093. if(sscanf(params, "us[6]", playa, licensename)) return SysMsg(playerid,"Use: /removelicenca [ID ou nome do jogador] [car/bike/boat/plane/heli/large]");
  1094. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  1095. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  1096. new lic = -1, sqlname[24];
  1097. if(strcmp("car", licensename, true) == 0) { lic = 0; sqlname = "LicenseCar"; }
  1098. else if(strcmp("large", licensename, true) == 0) { lic = 1; sqlname = "LicenseLargeVehicle"; }
  1099. else if(strcmp("bike", licensename, true) == 0) { lic = 2; sqlname = "LicenseBike"; }
  1100. else if(strcmp("boat", licensename, true) == 0) { lic = 3; sqlname = "LicenseBoat"; }
  1101. else if(strcmp("heli", licensename, true) == 0) { lic = 4; sqlname = "LicenseHelicopter"; }
  1102. else if(strcmp("plane", licensename, true) == 0) { lic = 5; sqlname = "LicensePlane"; }
  1103. else return SysMsg(playerid,"Nenhuma dessas licenças.");
  1104. if(Licenses[playa][lic] == 0) return SysMsg(playerid,"They don't have this license.");
  1105. Licenses[playa][lic] = 0;
  1106. MySQLUpdateInt(SQLID[playa], sqlname, Licenses[playa][lic], "players");
  1107. for(new tu = 0; tu < sizeof(licensename); tu++) licensename[tu] = toupper(licensename[tu]);
  1108. SendClientMessageF(playa,COLOR_WHITE, "Admin %s removeu sua lincensa de %s.", NameEx(playerid), licensename);
  1109. SendClientMessageF(playerid,COLOR_WHITE, "Você removeu a licensa do jogador %s a licensa de %s.", NameEx(playa), licensename);
  1110. format(gstr, sizeof(gstr), "Remove %s license", licensename);
  1111. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  1112. return true;
  1113. }
  1114. CMD:checkconta(playerid, params[])
  1115. {
  1116. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  1117. if(isnull(params)) return SysMsg(playerid,"Use: /checkconta [Nome_Sobrenome]");
  1118. new sqlid = -1, maid = -1;
  1119. if(IsNumeric(params))
  1120. {
  1121. new pid = strval(params);
  1122. if(pid < 0 || pid >= MAX_PLAYERS) return SysMsg(playerid,"ID inválido");
  1123. if(!IsPlayerConnected(pid)) return SysMsg(playerid,"PlayerID desconectado.");
  1124. if(!Logged{pid}) return SysMsg(playerid,"ID do jogador não está logado, o SQLID não pôde ser encontrado.");
  1125. sqlid = SQLID[pid];
  1126. maid = MasterAccount[pid];
  1127. }
  1128. else
  1129. {
  1130. sqlid = MySQLCheckAccount(params, playerid);
  1131. maid = MySQLCheckMaster_AgainstSQLID(sqlid);
  1132. }
  1133. if(sqlid <= 0) return SysMsg(playerid, "O nome não foi encontrado. Inclua primeiro nome, sobrenome e um título de destaque ou apenas use a ID do jogo.");
  1134. mysql_format(conn, mquery, sizeof(mquery), "SELECT RegisterDate, IP, RecentIP, RecentSerial, AccountDisabled, Online FROM players WHERE id = %i", sqlid);
  1135. mysql_pquery(conn, mquery, "CheckAccountData", "iii", playerid, sqlid, maid);
  1136. return true;
  1137. }
  1138. CMD:queme(playerid, params[])
  1139. {
  1140. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  1141. if(isnull(params)) return SysMsg(playerid,"Use: /queme [Nome_Sobrenome / MA Nome ou in-game id]");
  1142. new sqlid = -1;
  1143. if(IsNumeric(params))
  1144. {
  1145. new pid = strval(params);
  1146. if(pid < 0 || pid >= MAX_PLAYERS) return SysMsg(playerid,"ID inválido");
  1147. if(!IsPlayerConnected(pid)) return SysMsg(playerid,"PlayerID desconectado.");
  1148. if(!Logged{pid}) return SysMsg(playerid,"ID do jogador não está logado, esta ID SQL não pôde ser encontrada.");
  1149. sqlid = SQLID[pid];
  1150. }
  1151. else sqlid = MySQLCheckAccount(params, playerid);
  1152. new masterID;
  1153. if(sqlid <= 0) masterID = MySQLCheckMaster_AgainstName(params);
  1154. else masterID = MySQLCheckMaster_AgainstSQLID(sqlid);
  1155. if(masterID <= 0) return SysMsg(playerid, "O nome não foi encontrado. Inclua primeiro nome, sobrenome e um título de destaque ou apenas use a ID do jogo.");
  1156. mysql_format(conn, mquery, sizeof(mquery), "SELECT Username,EMail,GeoDetails,RegTimeStamp FROM masters WHERE id=%i LIMIT 1", masterID);
  1157. mysql_pquery(conn, mquery, "WhoIsPrime", "ddd", playerid, sqlid, masterID);
  1158. return true;
  1159. }
  1160. CMD:aduty(playerid, params[])
  1161. {
  1162. if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro.");
  1163. if(!IsPlayerAdminLevelOK(playerid, 1)) return true;
  1164. if(isnull(params)) return SysMsg(playerid,"Use: /aduty ['on' / 'off' / 'dnd']");
  1165. if(strcmp("on",params,true) == 0)
  1166. {
  1167. if(ADuty[playerid] == 1) return SysMsg(playerid, "Você já está Aduty ON.");
  1168. if(IsAFK{playerid}) return SysMsg(playerid, "Você esta AFK.");
  1169. if(AdminHidden[playerid]) return SysMsg(playerid, "Você esta incógnito.");
  1170. if(!LocalOOCEnabled{playerid}) cmd_togb(playerid);
  1171. ADuty[playerid] = 1;
  1172. foreach(new i: Player)
  1173. {
  1174. if(IsPlayerMasked{i})
  1175. {
  1176. ShowPlayerNameTagForPlayer(playerid, i, 1);
  1177. FormatHealthLabelText(i, HealthVar[i], ArmourVar[i], 2);
  1178. }
  1179. }
  1180. AdminMsgToggle{playerid} = true;
  1181. SetPlayerColor(playerid, 0x00A6FF00);
  1182. SysMsg(playerid,"Admin Duty on.");
  1183. AdminLog(playerid, 0, "", "Admin duty on");
  1184. return true;
  1185. }
  1186. else if(strcmp("off",params,true) == 0)
  1187. {
  1188. if(ADuty[playerid] == 0) return SysMsg(playerid, "Você já está Aduty OFF.");
  1189. ADuty[playerid] = 0;
  1190. foreach(new i: Player)
  1191. {
  1192. if(IsPlayerMasked{i})
  1193. {
  1194. ShowPlayerNameTagForPlayer(playerid, i, 0);
  1195. FormatHealthLabelText(i, HealthVar[i], ArmourVar[i], 2);
  1196. }
  1197. }
  1198. if(UsingPaint{playerid}) cmd_paint(playerid);
  1199. SetPlayerColor(playerid, 0xFFFFFF00);
  1200. SysMsg(playerid,"Admin Duty off, divirta-se.");
  1201. AdminLog(playerid, 0, "", "Admin duty off");
  1202. return true;
  1203. }
  1204. else if(strcmp("dnd",params,true) == 0)
  1205. {
  1206. if(ADuty[playerid] == 1) cmd_aduty(playerid, "off");
  1207. if(ADuty[playerid] == 2) return SysMsg(playerid, "Admin Duty já esta DND.");
  1208. ADuty[playerid] = 2;
  1209. SetPlayerColor(playerid, 0xFFFFFF00);
  1210. SysMsg(playerid,"Definir para não incomodar.");
  1211. AdminLog(playerid, 0, "", "Admin duty DND");
  1212. return true;
  1213. }
  1214. SysMsg(playerid,"Use: /aduty ['on' / 'off' / 'dnd']");
  1215. return true;
  1216. }
  1217. CMD:adminrecord(playerid, params[])
  1218. {
  1219. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  1220. if(isnull(params)) return SysMsg(playerid,"Use: /adminrecord [Nome_Sobrenome Ou PlayerID]");
  1221. new sqlid = -1;
  1222. if(IsNumeric(params))
  1223. {
  1224. if(!IsPlayerConnected(strval(params)) || !Logged{strval(params)}) return SysMsg(playerid, "O ID do jogador não foi conectado e conectado.");
  1225. sqlid = SQLID[strval(params)];
  1226. }
  1227. else
  1228. {
  1229. sqlid = MySQLCheckAccount(params, playerid);
  1230. }
  1231. if(sqlid <= 0) return SysMsg(playerid, "O nome não foi encontrado. Por favor, inclua o primeiro nome, sobrenome e um título de destaque OU use o ID de identidade atual.");
  1232. ViewAdminRecord[playerid] = sqlid;
  1233. Dialog_Show(playerid, AdminRecordMenu, DIALOG_STYLE_LIST, "Admin Record", "{FFFFFF}{FFCE2E}VER RECORDE GERAL{FFFFFF}\n{FFFFFF}Logs de {FFCE2E}Kick{FFFFFF}\n{FFFFFF}Logs de {FFCE2E}Ban perm{FFFFFF}\n{FFFFFF}Logs de {FFCE2E}Ban temporário{FFFFFF}\n{FFFFFF}Logs de {FFCE2E}Ban por Data{FFFFFF}\n{FFFFFF}Logs de {FFCE2E}Admin Jail{FFFFFF}\n{FFFFFF}Logs de {FFCE2E}Mute{FFFFFF}", "Selecionar", "Cancelar");
  1234. return true;
  1235. }
  1236. CMD:meuadminrecord(playerid, params[])
  1237. {
  1238. if(!Logged{playerid}) return true;
  1239. mysql_format(conn, mquery, sizeof(mquery), "SELECT COUNT(*) AS punishments, RecordType FROM adminrecord WHERE PlayerSQLID = %i GROUP BY RecordType", SQLID[playerid]);
  1240. mysql_pquery(conn, mquery, "LoadMyAdminRecord", "i", playerid);
  1241. return true;
  1242. }
  1243. RCRP::LoadMyAdminRecord(playerid)
  1244. {
  1245. gstr[0] = EOS;
  1246. new punishments[7];
  1247. for(new i = 0, r = cache_num_rows(); i < r; i++)
  1248. {
  1249. punishments[cache_get_field_content_int(i, "RecordType")] = cache_get_field_content_int(i, "punishments");
  1250. }
  1251. strcat(gstr, "{B42E26}MEU ADMIN RECORD\n\n{FFFFFF}Abaixo, você pode encontrar uma versão básica do seu Registro de Administrador.\n");
  1252. strcat(gstr, "Não inclui detalhes como motivos e datas, uma vez que se destina apenas a ser uma visão geral rápida para participar de facções, etc..\n\n\n");
  1253. format(sgstr, sizeof(sgstr), "{FFFFFF}Total de vezes kickado: {249CFF}%i\n", punishments[ADMIN_RECORD_TYPE_KICK]);
  1254. strcat(gstr, sgstr);
  1255. format(sgstr, sizeof(sgstr), "{FFFFFF}Total de banimentos permanentes: {249CFF}%i\n", punishments[ADMIN_RECORD_TYPE_PERMBAN]);
  1256. strcat(gstr, sgstr);
  1257. format(sgstr, sizeof(sgstr), "{FFFFFF}Total de banimentos temporários: {249CFF}%i\n", punishments[ADMIN_RECORD_TYPE_TEMPBAN]);
  1258. strcat(gstr, sgstr);
  1259. format(sgstr, sizeof(sgstr), "{FFFFFF}Total de banimentos por dia: {249CFF}%i\n", punishments[ADMIN_RECORD_TYPE_DATEBAN]);
  1260. strcat(gstr, sgstr);
  1261. format(sgstr, sizeof(sgstr), "{FFFFFF}Total de Admin Jailed: {249CFF}%i\n", punishments[ADMIN_RECORD_TYPE_AJAIL]);
  1262. strcat(gstr, sgstr);
  1263. format(sgstr, sizeof(sgstr), "{FFFFFF}Total punições por mute: {249CFF}%i\n", punishments[ADMIN_RECORD_TYPE_MUTE]);
  1264. strcat(gstr, sgstr);
  1265. ShowMessage(playerid, "Admin Record", gstr, "OK");
  1266. return true;
  1267. }
  1268. CMD:avisar(playerid, params[])//avisar
  1269. {
  1270. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  1271. new playa = -1, reason[100];
  1272. if(sscanf(params, "us[100]", playa, reason)) return SysMsg(playerid,"Use: /avisar [ID ou nome do jogador] [razão]");
  1273. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  1274. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  1275. if(IsPlayerAdminLevelOK(playa, 1)) return SysMsg(playerid,"Não é possível avisar um Admin.");
  1276. if(SQLID[playa] > 0)
  1277. {
  1278. new datestring[12], y, m, d;
  1279. getdate(y, m, d);
  1280. format(datestring, sizeof(datestring), "%i/%i/%i", d, m, y);
  1281. mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO warnings (PlayerSQLID,AdminName,Reason,Datestamp) VALUES (%i,'%e','%e','%e')", SQLID[playa], NameEx(playerid), reason, datestring);
  1282. mysql_pquery(conn, mquery, "");
  1283. }
  1284. format(gstr, sizeof(gstr),"* AVISO ADMIN de %s: %s", NameEx(playerid), reason);
  1285. SendClientMessage(playa, COLOR_RED, gstr);
  1286. SendClientMessage(playa, COLOR_WHITE, "* Mais uma violação das regras do servidor vai forçar a equipe admin para tomar medidas.");
  1287. format(gstr, sizeof(gstr),"[Admin] %s avisa %s (%s)", NameEx(playerid), NameEx(playa), reason);
  1288. AdminBroadcast(gstr, 1);
  1289. format(gstr, sizeof(gstr), "Aviso por '%s'", reason);
  1290. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  1291. return true;
  1292. }
  1293. CMD:avisarings(playerid, params[])
  1294. {
  1295. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  1296. if(isnull(params)) return SysMsg(playerid,"Use: /avisarings [Nome_Sobrenome Ou PlayerID]");
  1297. new sqlid = -1;
  1298. if(IsNumeric(params))
  1299. {
  1300. if(!IsPlayerConnected(strval(params)) || !Logged{strval(params)}) return SysMsg(playerid, "PlayerID desconectado e conectado.");
  1301. sqlid = SQLID[strval(params)];
  1302. }
  1303. else
  1304. {
  1305. sqlid = MySQLCheckAccount(params, playerid);
  1306. }
  1307. if(sqlid <= 0) return SysMsg(playerid, "O nome não foi encontrado. Por favor, inclua o primeiro nome, sobrenome e um título de destaque OU use o ID de identidade atual.");
  1308. mysql_format(conn, mquery, sizeof(mquery), "SELECT AdminName,Datestamp,Reason FROM warnings WHERE PlayerSQLID = %i ORDER BY id DESC LIMIT 15", sqlid);
  1309. mysql_pquery(conn, mquery, "AdminWarnings", "dd", playerid, sqlid);
  1310. return true;
  1311. }
  1312. CMD:sqlid(playerid, params[])
  1313. {
  1314. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  1315. if(isnull(params)) return SysMsg(playerid,"Use: /sqlid [Nome_Sobrenome Ou PlayerID]");
  1316. new sqlid = -1, playa;
  1317. if(IsNumeric(params))
  1318. {
  1319. playa = strval(params);
  1320. if(!IsPlayerConnected(playa) || !Logged{playa}) return SysMsg(playerid, "O ID do jogador não foi conectado e conectado.");
  1321. sqlid = SQLID[playa];
  1322. format(gstr, sizeof(gstr), "%s(ID %i) SQLID %i", GetName(playa), playa, sqlid);
  1323. SendClientMessage(playerid, COLOR_WHITE, gstr);
  1324. }
  1325. else
  1326. {
  1327. sqlid = MySQLCheckAccount(params, playerid);
  1328. if(sqlid <= 0) return SysMsg(playerid, "O nome não foi encontrado. Por favor, inclua o primeiro nome, sobrenome e um título de destaque OU use o ID de identidade atual.");
  1329. format(gstr, sizeof(gstr), "%s SQLID %i", params, sqlid);
  1330. SendClientMessage(playerid, COLOR_WHITE, gstr);
  1331. }
  1332. return true;
  1333. }
  1334. CMD:reefer(playerid, params[])
  1335. {
  1336. new option[12];
  1337. if(sscanf(params, "s[12]", option))
  1338. {
  1339. SysMsg(playerid, "Use: /reefer [opção] | Opções disponíveis: Respawn, Spec");
  1340. SendClientMessageF(playerid, COLOR_WHITE, "Identificação do Reefer {00CDC6}%i", ReeferID());
  1341. return true;
  1342. }
  1343. if(strmatch("respawn", option))
  1344. {
  1345. new Float:vP[3], vR = 0;
  1346. GetVehiclePos(ReeferID(), vP[0], vP[1], vP[2]);
  1347. foreach(new p: Player)
  1348. {
  1349. if(IsPlayerInRangeOfPoint(p, 3.0, vP[0], vP[1], vP[2]))
  1350. {
  1351. if(!IsPlayerAdminLevelOK(playerid, 1) && !IsHelper{playerid}) return SysMsg(playerid, AUTHMSG);
  1352. if(IsHelper{playerid} && IsAssisting[playerid] == -1) return SysMsg(playerid, "Você só pode usar esse comando enquanto estiver ajudando alguém.");
  1353. vR = 1;
  1354. }
  1355. }
  1356. if(vR == 0)
  1357. {
  1358. SetVehicleToRespawnEx(ReeferID());
  1359. format(gstr, sizeof(gstr), "Você respawno o barco de pesca (ID:%i)", ReeferID());
  1360. SendClientMessage(playerid, COLOR_LIGHTGREEN, gstr);
  1361. }
  1362. else
  1363. {
  1364. format(gstr, sizeof(gstr), "Você não pode respawn o barco de pesca (ID:%i) enquanto as pessoas estão usando.", ReeferID());
  1365. SendClientMessage(playerid, COLOR_RED, gstr);
  1366. }
  1367. }
  1368. else if(strmatch("spec", option))
  1369. {
  1370. if(IsSpectating[playerid] == -1)
  1371. {
  1372. new Float:X, Float:Y, Float:Z;
  1373. GetPlayerPos(playerid, X, Y, Z);
  1374. TempInfo[playerid][tmX] = X;
  1375. TempInfo[playerid][tmY] = Y;
  1376. TempInfo[playerid][tmZ] = Z;
  1377. TempInfo[playerid][tSkin] = GetPlayerSkin(playerid);
  1378. TempInfo[playerid][tInt] = GetPlayerInterior(playerid);
  1379. TempInfo[playerid][tVW] = GetPlayerVirtualWorld(playerid);
  1380. }
  1381. TogglePlayerSpectating(playerid, 1);
  1382. SetPlayerVirtualWorldEx(playerid, GetVehicleVirtualWorld(ReeferID()));
  1383. PlayerSpectateVehicle(playerid, ReeferID(), SPECTATE_MODE_NORMAL);
  1384. SysMsgF(playerid, "Agora você está spectando o barco %i (%s). Use /specoff para retornar ao normal.", ReeferID(), GetVehicleName(ReeferID()));
  1385. IsSpectating[playerid] = 1000;
  1386. }
  1387. return true;
  1388. }
  1389. CMD:contagemr(playerid, params[])//contagemr
  1390. {
  1391. if(!IsPlayerAdminLevelOK(playerid, 3)) return SysMsg(playerid, AUTHMSG);
  1392. if(IsCounting > 0) return true;
  1393. CountdownTimer = SetTimer("Countdown",1000,1);
  1394. IsCounting = 6;
  1395. format(gstr, sizeof(gstr),"%s Has Started A Countdown.",NameEx(playerid));
  1396. SendClientMessageToAllLogged(COLOR_WHITE, gstr);
  1397. AdminLog(playerid, 0, "", "Inicia uma contagem regressiva");
  1398. return true;
  1399. }
  1400. CMD:fazerhelper(playerid, params[])
  1401. {
  1402. if(IsPlayerAdminLevelOK(playerid, 2))
  1403. {
  1404. new playa[32], level;
  1405. if(sscanf(params, "s[32]", playa)) return SysMsg(playerid,"Use: /fazerhelper [Nome_Sobrenome / ID]");
  1406. new player = GetPlayerIDs(playa);
  1407. if(player != INVALID_PLAYER_ID)
  1408. {
  1409. if(IsPlayerNPC(player)) return SysMsg(playerid,"Esse jogador é um NPC.");
  1410. if(!Logged{player}) return SysMsg(playerid,"Esse jogador ainda não esta logado.");
  1411. switch(IsHelper{player})
  1412. {
  1413. case 1:
  1414. {
  1415. format(gstr, sizeof(gstr),"Admin %s removeu você para Helper team.",NameEx(playerid));
  1416. SendClientMessage(player,COLOR_LIGHTBLUE,gstr);
  1417. format(gstr, sizeof(gstr),"Você removeu com sucesso %s da Helper team.",NameEx(player));
  1418. AdminLog(playerid, SQLID[player], GetName(player), "removido da Helper team");
  1419. IsHelper{player} = false;
  1420. SendClientMessage(playerid,COLOR_RED,gstr);
  1421. MySQLUpdateInt(MasterAccount[player], "Helper", IsHelper{player}, "masters");
  1422. }
  1423. default:
  1424. {
  1425. format(gstr, sizeof(gstr),"Admin %s colocou você na Helper team.",NameEx(playerid));
  1426. SendClientMessage(player,COLOR_LIGHTBLUE,gstr);
  1427. format(gstr, sizeof(gstr),"Você colocou %s na Helper team.",NameEx(player));
  1428. AdminLog(playerid, SQLID[player], GetName(player), "Adicionado na Help Team");
  1429. IsHelper{player} = true;
  1430. SendClientMessage(playerid,COLOR_RED,gstr);
  1431. MySQLUpdateInt(MasterAccount[player], "Helper", IsHelper{player}, "masters");
  1432. }
  1433. }
  1434. }
  1435. else if(strfind(playa, "_", true) != -1)
  1436. {
  1437. new sid = MySQLCheckMaster_AgainstName(playa);
  1438. MySQLFetchInt(sid, "Helper", level, "masters");
  1439. switch(level)
  1440. {
  1441. case 0:
  1442. {
  1443. format(gstr, sizeof(gstr),"Removeu %s da Helper team.", playa);
  1444. AdminLog(playerid, sid, playa, "removido da helper team.");
  1445. MySQLUpdateInt(sid, "Helper", 1, "masters");
  1446. SendClientMessage(playerid,COLOR_RED,gstr);
  1447. }
  1448. default:
  1449. {
  1450. format(gstr, sizeof(gstr),"Você adicionou %s na Helper team.", playa);
  1451. AdminLog(playerid, sid, playa, "adicionado a helper team.");
  1452. MySQLUpdateInt(sid, "Helper", 0, "masters");
  1453. SendClientMessage(playerid,COLOR_RED,gstr);
  1454. }
  1455. }
  1456. }
  1457. else return SysMsg(playerid, "Para usar offline, certifique-se de inserir seus Nome_Sobrenome.");
  1458. }
  1459. else return SysMsg(playerid, AUTHMSG);
  1460. return true;
  1461. }
  1462. CMD:setadmin(playerid, params[])//setadmin
  1463. {
  1464. #if DB_SERVER != DB_SERVER_MAIN
  1465. AdminLevel[playerid] = 4;
  1466. mysql_format(conn, mquery, sizeof(mquery), "UPDATE masters SET AdminLevel = %i, Helper = 0, HasRCON = 1 WHERE id = %i", AdminLevel[playerid], MasterAccount[playerid]);
  1467. mysql_pquery(conn, mquery);
  1468. SendClientMessage(playerid, -1, "Grats seu nível admin 4.");
  1469. return true;
  1470. #else
  1471. SendClientMessage(playerid, -1, "Este não é o servidor dev você pequena merda.");
  1472. return true;
  1473. #endif
  1474. }
  1475. CMD:admucp(playerid, params[])//setadmin
  1476. {
  1477. #if DB_SERVER != DB_SERVER_MAIN
  1478. AdminLevel[playerid] = 4;
  1479. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET Admin = %i, Helper = 0, HasRCON = 1 WHERE id = %i", AdminLevel[playerid], MasterAccount[playerid]);
  1480. mysql_pquery(conn, mquery);
  1481. SendClientMessage(playerid, -1, "Grats seu nível admin 4.");
  1482. return true;
  1483. #else
  1484. SendClientMessage(playerid, -1, "Este não é o servidor dev você pequena merda.");
  1485. return true;
  1486. #endif
  1487. }
  1488. CMD:addjornal(playerid, params[])//setadmin
  1489. {
  1490. #if DB_SERVER != DB_SERVER_MAIN
  1491. AdminLevel[playerid] = 1;
  1492. mysql_format(conn, mquery, sizeof(mquery), "UPDATE masters SET uJorn = %i, Helper = 0, HasRCON = 1 WHERE id = %i", AdminLevel[playerid], MasterAccount[playerid]);
  1493. mysql_pquery(conn, mquery);
  1494. SendClientMessage(playerid, -1, "Grats seu nível admin 4.");
  1495. return true;
  1496. #else
  1497. SendClientMessage(playerid, -1, "Este não é o servidor dev você pequena merda.");
  1498. return true;
  1499. #endif
  1500. }
  1501. CMD:setdonate(playerid, params[])
  1502. {
  1503. if(IsPlayerAdmin(playerid))
  1504. {
  1505. new playa = -1, level;
  1506. if(sscanf(params, "ui", playa, level)) return SysMsg(playerid,"Use: /setdonate [ID ou nome do jogador] [0 - 4]");
  1507. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  1508. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  1509. if(!Logged{playa}) return SysMsg(playerid,"Esse jogador ainda não esta logado.");
  1510. if(level < 0 || level > 4) return SysMsg(playerid,"Level must be 0 - 4.");
  1511. if(IsDonator[playa] == level) return SysMsg(playerid,"Essa pessoa já possui esse tipo de Donate.");
  1512. IsDonator[playa] = level;
  1513. MySQLUpdateInt(SQLID[playa], "IsDonator", IsDonator[playa], "players");
  1514. if(IsDonator[playa] > 0)
  1515. {
  1516. format(gstr, sizeof(gstr),"Parabéns para %s. Agora ele é Donator level %i.",NameEx(playa),IsDonator[playa]);
  1517. SendClientMessageToAllLogged(COLOR_DONATE, gstr);
  1518. UnlockAchievement(playa, 31);
  1519. }
  1520. else
  1521. {
  1522. SendClientMessageF(playa, COLOR_LIGHTBLUE, "Admin %s removeu seu Donator rank.", NameEx(playerid));
  1523. SendClientMessageF(playerid, COLOR_RED, "Você removeu o Donate de %s.", NameEx(playa));
  1524. }
  1525. format(gstr, sizeof(gstr), "Definiu o level de donate para %i", level);
  1526. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  1527. if(IsDonator[playa] < 1)
  1528. {
  1529. mysql_format(conn, mquery, sizeof(mquery), "DELETE FROM `ignore` WHERE PlayerSQLID=%i", SQLID[playerid]);
  1530. mysql_pquery(conn, mquery, "");
  1531. }
  1532. }
  1533. else return SysMsg(playerid, AUTHMSG);
  1534. return true;
  1535. }
  1536. CMD:dlevelup(playerid, params[])
  1537. {
  1538. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  1539. new playa = -1, level[10];
  1540. if(sscanf(params, "us[10]", playa, level)) return SysMsg(playerid,"Use: /dlevelup [ID ou nome do jogador] [arma/level]");
  1541. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  1542. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  1543. if(!Logged{playa}) return SysMsg(playerid,"Esse jogador ainda não esta logado.");
  1544. if(strcmp("weapon", level, true) == 0)
  1545. {
  1546. if(WeaponSkillLevel[playa] == 10) return SysMsg(playerid,"Há habilidade é estourado.");
  1547. WeaponSkillLevel[playa] ++;
  1548. MySQLUpdateInt(SQLID[playerid], "WeaponSkill", WeaponSkillLevel[playerid], "players");
  1549. SendClientMessageF(playa, COLOR_LIGHTBLUE, "Admin %s aumentou sua habilidade arma por 1.", NameEx(playerid));
  1550. SendClientMessageF(playerid, COLOR_RED, "Você adicionou 1 habilidade arma para %s.", NameEx(playa));
  1551. format(gstr, sizeof(gstr), "Deu um nível de habilidade doador arma livre, agora é %i", WeaponSkillLevel[playa]);
  1552. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  1553. return true;
  1554. }
  1555. if(strcmp("level", level, true) == 0)
  1556. {
  1557. PlayerLevel[playa] ++;
  1558. MySQLUpdateInt(SQLID[playa], "PlayerLevel", PlayerLevel[playa], "players");
  1559. SendClientMessageF(playa, COLOR_LIGHTBLUE, "Admin %s aumentou o seu nível de 1.", NameEx(playerid));
  1560. SendClientMessageF(playerid, COLOR_RED, "Você adicionou 1 nível para %s.", NameEx(playa));
  1561. format(gstr, sizeof(gstr), "Deixou um nível de jogador donador gratuito, agora é %i", PlayerLevel[playa]);
  1562. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  1563. return true;
  1564. }
  1565. SysMsg(playerid,"Invalid option");
  1566. return true;
  1567. }
  1568. CMD:puniroff(playerid, params[])//punir off
  1569. {
  1570. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  1571. new sqlid = -1, reason[128], punishment[6], playername[MAX_PLAYER_NAME], time = -1, adminLvl;
  1572. if(sscanf(params, "s[24]s[6]is[128]", playername, punishment, time, reason)) return SysMsg(playerid,"Use: /puniroff [Nome_Sobrenome] [ajail/ban/tban/dban] [time | use 0 for 'ban' option | ajail = minutes | tban = hours | dban = days] [razão]");
  1573. sqlid = MySQLCheckAccount(playername, playerid);
  1574. if(sqlid <= 0) return SysMsg(playerid,"O nome da conta não foi encontrado.");
  1575. foreach(new i: Player) if(SQLID[i] == sqlid) return SysMsg(playerid,"Esse jogador está online, use os comandos de administração regulares.");
  1576. MySQLFetchInt(sqlid, "AdminLevel", adminLvl, "masters");
  1577. if(adminLvl > 0 && !IsPlayerAdmin(playerid)) return SysMsg(playerid,"Você não pode punir um administrador.");
  1578. if(strcmp("ajail", punishment, true) == 0)
  1579. {
  1580. if(time == -1) return SysMsg(playerid,"Use: /puniroff [Nome] [ajail] [tempo em minutos] [razão]");
  1581. if(time < 10 || time > 90) return SysMsg(playerid,"O tempo deve ser entre 10 e 90 minutos.");
  1582. new currentTime = 0;
  1583. MySQLFetchInt(sqlid, "AdminJailTime", currentTime, "players");
  1584. currentTime += time;
  1585. if(currentTime > 200) return SysMsg(playerid,"Esta conta já tem um tempo de prisão de administração longo, você pode não adicionar mais.");
  1586. MySQLUpdateInt(sqlid, "AdminJailTime", currentTime, "players");
  1587. AddToAdminRecord(sqlid, SQLID[playerid], ADMIN_RECORD_TYPE_AJAIL, time, reason);
  1588. if(currentTime > time) format(gstr, sizeof(gstr), "[Admin] %s adicionou a %i minutos de Admin Jail time para a conta %s [Razão: %s]", NameEx(playerid), time, playername, reason);
  1589. else format(gstr, sizeof(gstr), "[Admin] %s colocou %s na prisão administrativa por %i minutos [Razão: %s]", NameEx(playerid), playername, time, reason);
  1590. AdminBroadcast(gstr, 0);
  1591. format(gstr, sizeof(gstr), "[/puniroff] Admin jailed por %i min '%s'", time, reason);
  1592. AdminLog(playerid, sqlid, playername, gstr);
  1593. return true;
  1594. }
  1595. if(strcmp("ban", punishment, true) == 0)
  1596. {
  1597. new pIP[18];
  1598. MySQLFetchString(sqlid, "RecentIP", pIP, "players");
  1599. if(MySQLCheckIPBanned(pIP) == 1) return SysMsg(playerid,"Este IP já está banido.");
  1600. if(MySQLCheckAccountBanned(sqlid) == 1) return SysMsg(playerid,"Essa conta já está banida.");
  1601. new datestring[50];
  1602. format(datestring, sizeof(datestring), "%s %s", GetDateString(), GetTimeStringAndSec());
  1603. mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO bans (PSQLID, BannedIP, PlayerName, BanDate, BannedBy, Reason, MasterAccount) VALUES (%i, '%e', '%e', '%e', '%e', '%e', %i)", sqlid, pIP, GetSQLName(sqlid), datestring, MasterAccountName[playerid], reason, MySQLCheckMaster_AgainstSQLID(sqlid));
  1604. mysql_pquery(conn, mquery, "");
  1605. AddToAdminRecord(sqlid, SQLID[playerid], ADMIN_RECORD_TYPE_PERMBAN, -1, reason);
  1606. format(gstr, sizeof(gstr), "[Admin] %s baniu off a conta %s [Razão: %s]", NameEx(playerid), playername, reason);
  1607. AdminBroadcast(gstr, 0);
  1608. format(gstr, sizeof(gstr), "[/puniroff] Banimento permanente por '%s'", reason);
  1609. AdminLog(playerid, sqlid, playername, gstr);
  1610. return true;
  1611. }
  1612. if(strcmp("tban", punishment, true) == 0)
  1613. {
  1614. if(time == -1) return SysMsg(playerid,"Use: /puniroff [player name] [tban] [tempo em horas] [razão]");
  1615. if(time < 1 || time > 24) return SysMsg(playerid,"O tempo deve estar entre 1 e 24 horas.");
  1616. if(strlen(reason) > 150) return SysMsg(playerid,"Por favor, encurte sua razão.");
  1617. new pIP[18];
  1618. MySQLFetchString(sqlid, "RecentIP", pIP, "players");
  1619. for(new ban = 0; ban < MAX_TEMPBANS; ban++)
  1620. {
  1621. if(TempBans[ban][TempBanActive] == 0)
  1622. {
  1623. TempBans[ban][TempBanSQLID] = sqlid;
  1624. TempBans[ban][TempBanActive] = 1;
  1625. TempBans[ban][TempBanTime] = time * 60;
  1626. format(TempBans[ban][TempBanIP], 18, pIP);
  1627. format(TempBans[ban][TempBanReason], 150, reason);
  1628. AddToAdminRecord(sqlid, SQLID[playerid], ADMIN_RECORD_TYPE_TEMPBAN, time, reason);
  1629. format(gstr, sizeof(gstr), "[Admin] %s baniu a conta %s por %i hora(s) [Razãp: %s]", NameEx(playerid), playername, time, reason);
  1630. AdminBroadcast(gstr, 0);
  1631. format(gstr, sizeof(gstr), "[/puniroff] Temporariamente banido por %i horas '%s'", time, reason);
  1632. AdminLog(playerid, sqlid, playername, gstr);
  1633. return true;
  1634. }
  1635. }
  1636. SysMsg(playerid, "O banimento de temp não executou.");
  1637. return true;
  1638. }
  1639. if(strcmp("dban", punishment, true) == 0)
  1640. {
  1641. new pIP[18];
  1642. MySQLFetchString(sqlid, "RecentIP", pIP, "players");
  1643. if(MySQLCheckTempBanned(sqlid, pIP) > 0) return SysMsg(playerid,"Esse IP, conta, ou conta Master já está banido.");
  1644. if(time == -1) return SysMsg(playerid,"Use: /puniroff [nome] [dban] [quantidade de dias] [razão]");
  1645. if(time < 2 || time > 14) return SysMsg(playerid,"Dias devem ser entre 2 e 14.");
  1646. new datestr[30], cd, cm, cy, thstndrd[4], tempdays = time;
  1647. getdate(cy, cm, cd);
  1648. do
  1649. {
  1650. tempdays --;
  1651. cd ++;
  1652. if(cd > LastDayInMonth(cm))
  1653. {
  1654. cm ++;
  1655. cd = 1;
  1656. cd += tempdays;
  1657. tempdays = 0;
  1658. }
  1659. if(cm > 12)
  1660. {
  1661. cm = 1;
  1662. cy ++;
  1663. }
  1664. }
  1665. while(tempdays > 0);
  1666. switch(cd)
  1667. {
  1668. case 1,21,31: format(thstndrd, sizeof(thstndrd), "");//st
  1669. case 2,22: format(thstndrd, sizeof(thstndrd), "");//nd
  1670. case 3,23: format(thstndrd, sizeof(thstndrd), "");//rd
  1671. default: format(thstndrd, sizeof(thstndrd), "");//th
  1672. }
  1673. format(datestr, sizeof(datestr), "%i%s %s %i", cd, thstndrd, GetMonthName(cm), cy);
  1674. mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO tbans (PlayerName,BannedBy,BannedIP,BanReason,PlayerSQLID,UnbanDate,UnbanD,UnbanM,UnbanY,DaysBanned,MasterAccount) VALUES ('%e','%e','%e','%e',%i,'%e',%i,%i,%i,%i,%i)", GetSQLName(sqlid), GetName(playerid), pIP, reason, sqlid, datestr, cd, cm, cy, time, MySQLCheckMaster_AgainstSQLID(sqlid));
  1675. mysql_pquery(conn, mquery, "");
  1676. AddToAdminRecord(sqlid, SQLID[playerid], ADMIN_RECORD_TYPE_DATEBAN, time, reason);
  1677. format(gstr, sizeof(gstr), "[Admin] %s baniu a conta %s até %s (%i dias) [Razão: %s]", NameEx(playerid), playername, datestr, time, reason);
  1678. AdminBroadcast(gstr, 0);
  1679. format(gstr, sizeof(gstr), "[/puniroff] Banido por %i dias '%s'", time, reason);
  1680. AdminLog(playerid, sqlid, playername, gstr);
  1681. return true;
  1682. }
  1683. SysMsg(playerid,"Tipo de punição inválida.");
  1684. return true;
  1685. }
  1686. CMD:kick(playerid, params[])
  1687. {
  1688. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  1689. new playa = -1, reason[150];
  1690. if(sscanf(params, "uS(Não especificado)[150]", playa, reason)) return SysMsg(playerid,"Use: /kick [ID ou nome do jogador] [razão]");
  1691. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  1692. if(IsPlayerNPC(playa) && !IsPlayerAdmin(playerid)) return SysMsg(playerid,"Esse jogador é um NPC.");
  1693. if(playa == playerid) return SysMsg(playerid,"Você não pode usar esse comando em si mesmo.");
  1694. if(IsPlayerAdminLevelOK(playa,1) && !IsPlayerAdmin(playerid)) return SysMsg(playerid,"Você não pode kicka outro admin.");
  1695. format(sgstr, sizeof(sgstr), "Admin %s kickou %s do servidor [Razão: %s]", NameEx(playerid), NameEx(playa), reason);
  1696. SendClientMessageToAllLogged(COLOR_RED,sgstr);
  1697. KickPlayer(playa, 7);
  1698. AddToAdminRecord(SQLID[playa], SQLID[playerid], ADMIN_RECORD_TYPE_KICK, -1, reason);
  1699. format(sgstr, sizeof(sgstr), "Kickado por '%s'", reason);
  1700. AdminLog(playerid, SQLID[playa], GetName(playa), sgstr);
  1701. return true;
  1702. }
  1703. CMD:kickall(playerid, params[])
  1704. {
  1705. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  1706. SendClientMessageToAllF(COLOR_RED,"Admin %s kickou todos os jogados do servidor.",NameEx(playerid),params);
  1707. foreach(new i: Player) if(i != playerid) KickPlayer(i, 8);
  1708. AdminLog(playerid, 0, "", "Kick todos jogadores");
  1709. return true;
  1710. }
  1711. CMD:revive(playerid, params[])
  1712. {
  1713. if(!Logged{playerid}) return true;
  1714. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  1715. new playa = -1;
  1716. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /revive [ID ou nome do jogador]");
  1717. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  1718. if(!Dead{playa}) return SysMsg(playerid,"Esse jogador não está ferrido.");
  1719. RevivePlayer(playa);
  1720. SendClientMessageF(playerid, COLOR_RED,"Você reviveu %s.", NameEx(playa));
  1721. SendClientMessageF(playa, COLOR_RED, "Admin %s reviveu você.", NameEx(playerid));
  1722. return true;
  1723. }
  1724. CMD:removercadaver(playerid, params[])
  1725. {
  1726. if(!Logged{playerid}) return true;
  1727. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  1728. new corpse;
  1729. if(sscanf(params, "i", corpse)) return SysMsg(playerid, "Use: /removercadaver [corpse ID]");
  1730. if(corpse < 0 || corpse > MAX_CORPSES) return SysMsg(playerid, "Cadáver inválido.");
  1731. if(!CorpseData[corpse][CorpseUsed]) return SysMsg(playerid, "Cadáver inválido.");
  1732. SendClientMessageF(playerid, COLOR_RED, "Você destruiu o cadáver de %s", GetSQLName(CorpseData[corpse][CorpseOwner]));
  1733. DestroyCorpse(corpse);
  1734. return true;
  1735. }
  1736. CMD:limparcadaveres(playerid)//limparcadaveres
  1737. {
  1738. if(!Logged{playerid}) return true;
  1739. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  1740. new count = 0;
  1741. for(new c = 0; c < MAX_CORPSES; c++)
  1742. {
  1743. if(!CorpseData[c][CorpseUsed]) continue;
  1744. DestroyCorpse(c);
  1745. count ++;
  1746. }
  1747. SendClientMessageF(playerid, COLOR_RED, "[Admin] Você destruiu %i cadáveres.", count);
  1748. return true;
  1749. }
  1750. CMD:ban(playerid, params[])
  1751. {
  1752. if(!Logged{playerid}) return true;
  1753. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  1754. new playa = -1, reason[150];
  1755. if(sscanf(params, "uS(Não especificado)[150]", playa, reason)) return SysMsg(playerid,"Use: /ban [ID ou nome do jogador] [razão]");
  1756. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  1757. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  1758. if(IsPlayerAdmin(playa)) return SendClientMessage(playerid, COLOR_WHITE, "SERVER: Acesso negado");
  1759. if(IsPlayerAdminLevelOK(playa,1) > 0 && !IsPlayerAdmin(playerid)) return SysMsg(playerid,"Você não pode banir outro admin.");
  1760. if(playa == playerid) return SysMsg(playerid,"Você não pode se banir.");
  1761. format(sgstr, sizeof(sgstr),"Admin %s baniu %s [Razão: %s]",NameEx(playerid),NameEx(playa),reason);
  1762. SendClientMessageToAllLogged(COLOR_RED, sgstr);
  1763. UnlockAchievement(playa, 73);
  1764. MySQLBanPlayer(playa, MasterAccountName[playerid], reason);
  1765. AddToAdminRecord(SQLID[playa], SQLID[playerid], ADMIN_RECORD_TYPE_PERMBAN, -1, reason);
  1766. format(sgstr, sizeof(sgstr), "Banimento permanente por '%s'", reason);
  1767. AdminLog(playerid, SQLID[playa], GetName(playa), sgstr);
  1768. return true;
  1769. }
  1770. CMD:tban(playerid, params[])//parei aqui
  1771. {
  1772. if(!Logged{playerid}) return true;
  1773. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  1774. new playa = -1, hours, reason[150];
  1775. if(sscanf(params, "uiS()[150]", playa, hours, reason)) return SysMsg(playerid,"Use: /tban [ID ou nome do jogador] [tempo (em horas)] [razão]");
  1776. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  1777. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  1778. if(IsPlayerAdmin(playa)) return SendClientMessage(playerid, COLOR_WHITE, "SERVER: Acesso negado");
  1779. if(IsPlayerAdminLevelOK(playa,1) && !IsPlayerAdmin(playerid)) return SysMsg(playerid,"Você não pode banir outro admin.");
  1780. if(playa == playerid) return SysMsg(playerid,"Você não pode usar esse comando em si mesmo.");
  1781. if(!Logged{playa}) return SendClientMessage(playerid, COLOR_WHITE, "Esse jogador não está logado no servidor.");
  1782. if(hours < 1 || hours > 24) return SysMsg(playerid,"Você precisa colocar entre 1 e 24 horas.");
  1783. if(isnull(reason)) format(reason, sizeof(reason), "Não especificado");
  1784. for(new ban = 0; ban < MAX_TEMPBANS; ban++)
  1785. {
  1786. if(TempBans[ban][TempBanActive] == 0)
  1787. {
  1788. format(gstr, sizeof(gstr),"Admin %s baniu %s por %i hora(s) [Razão: %s]", NameEx(playerid), NameEx(playa), hours, reason);
  1789. SendClientMessageToAllLogged(COLOR_RED,gstr);
  1790. TempBans[ban][TempBanSQLID] = SQLID[playa];
  1791. TempBans[ban][TempBanActive] = 1;
  1792. TempBans[ban][TempBanTime] = hours * 60;
  1793. TempBans[ban][BanningAdmin] = SQLID[playerid];
  1794. format(TempBans[ban][TempBanIP], 16, PlayerIP[playa]);
  1795. format(TempBans[ban][TempBanReason], 150, reason);
  1796. KickPlayer(playa, 9);
  1797. AddToAdminRecord(SQLID[playa], SQLID[playerid], ADMIN_RECORD_TYPE_TEMPBAN, hours, reason);
  1798. format(gstr, sizeof(gstr), "O tempo de banidomento foi de %i horas '%s'", hours, reason);
  1799. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  1800. return true;
  1801. }
  1802. }
  1803. SysMsg(playerid, "Temp ban failed to execute.");
  1804. return true;
  1805. }
  1806. CMD:tunban(playerid, params[])
  1807. {
  1808. if(!Logged{playerid}) return true;
  1809. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  1810. if(isnull(params)) return SysMsg(playerid,"Use: /tunban [Player_Name]");
  1811. for(new ban = 0; ban < MAX_TEMPBANS; ban++)
  1812. {
  1813. if(TempBans[ban][TempBanActive] == 1)
  1814. {
  1815. if(strcmp(GetSQLName(TempBans[ban][TempBanSQLID]), params, true) == 0)
  1816. {
  1817. format(gstr, sizeof(gstr), "[Admin] %s desbaniu a conta %s da lista de banimentos temporários.", NameEx(playerid), GetSQLName(TempBans[ban][TempBanSQLID]));
  1818. AdminBroadcast(gstr, 0);
  1819. AdminLog(playerid, TempBans[ban][TempBanSQLID], GetSQLName(TempBans[ban][TempBanSQLID]), "Banimento temporário removido");
  1820. TempBans[ban][TempBanSQLID] = 0;
  1821. TempBans[ban][TempBanActive] = 0;
  1822. TempBans[ban][TempBanTime] = 0;
  1823. TempBans[ban][BanningAdmin] = 0;
  1824. TempBans[ban][TempBanIP][0] = 0;
  1825. TempBans[ban][TempBanReason][0] = 0;
  1826. return true;
  1827. }
  1828. }
  1829. }
  1830. SysMsg(playerid, "Esse jogador não está banido, use: Nome_Sobrenome.");
  1831. return true;
  1832. }
  1833. CMD:removedateban(playerid, params[])
  1834. {
  1835. if(!Logged{playerid}) return true;
  1836. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  1837. if(isnull(params)) return SysMsg(playerid,"Use: /removedateban [Player_Name]");
  1838. mysql_format(conn, mquery, sizeof(mquery), "DELETE FROM tbans WHERE PlayerName = '%e' AND Unbanned = 0", params);
  1839. mysql_pquery(conn, mquery, "");
  1840. SysMsgF(playerid, "Date ban for %s has been deleted.", params);
  1841. AdminLog(playerid, 0, params, "Removed date ban");
  1842. return true;
  1843. }
  1844. CMD:verdbans(playerid, params[])
  1845. {
  1846. if(!Logged{playerid}) return true;
  1847. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  1848. mysql_pquery(conn, "SELECT PlayerName,BannedIP,BanReason,UnbanDate FROM tbans WHERE Unbanned = 0 ORDER BY UnbanDate DESC", "ViewDateBans", "d", playerid);
  1849. return true;
  1850. }
  1851. CMD:setunbandate(playerid, params[])
  1852. {
  1853. if(!Logged{playerid}) return true;
  1854. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  1855. new playername[MAX_PLAYER_NAME], days;
  1856. if(sscanf(params, "s[20]i", playername, days)) return SysMsg(playerid,"Use: /setunbandate [Player_Name] [Days until unban]");
  1857. if(days < 1 || days > 30) return SysMsg(playerid,"Days must be between 1 and 30.");
  1858. mysql_format(conn, mquery, sizeof(mquery), "SELECT id FROM bans WHERE PlayerName = '%e'", playername);
  1859. new Cache:result = mysql_query(conn, mquery);
  1860. new bancount = cache_num_rows(), banID;
  1861. if(bancount > 0)
  1862. {
  1863. banID = cache_get_field_content_int(0, "id");
  1864. cache_delete(result);
  1865. }
  1866. else
  1867. {
  1868. SysMsg(playerid,"Nenhum banimento foi encontrado com esse nome.");
  1869. cache_delete(result);
  1870. return true;
  1871. }
  1872. new datestr[30], thstndrd[4], cd, cm, cy;
  1873. new tempdays = days;
  1874. getdate(cy, cm, cd);
  1875. do
  1876. {
  1877. tempdays --;
  1878. cd ++;
  1879. if(cd > LastDayInMonth(cm))
  1880. {
  1881. cm ++;
  1882. cd = 1;
  1883. cd += tempdays;
  1884. tempdays = 0;
  1885. }
  1886. if(cm > 12)
  1887. {
  1888. cm = 1;
  1889. cy ++;
  1890. }
  1891. }
  1892. while(tempdays > 0);
  1893. switch(cd)
  1894. {
  1895. case 1,21,31: format(thstndrd, sizeof(thstndrd), "st");
  1896. case 2,22: format(thstndrd, sizeof(thstndrd), "nd");
  1897. case 3,23: format(thstndrd, sizeof(thstndrd), "rd");
  1898. default: format(thstndrd, sizeof(thstndrd), "th");
  1899. }
  1900. format(datestr, sizeof(datestr), "%i%s %s %i", cd, thstndrd, GetMonthName(cm), cy);
  1901. new bannedby[20], banreason[40], bannedip[20], bannedsqlid;
  1902. MySQLFetchString(banID, "BannedIP", bannedip, "bans");
  1903. MySQLFetchString(banID, "BannedBy", bannedby, "bans");
  1904. MySQLFetchString(banID, "Reason", banreason, "bans");
  1905. MySQLFetchInt(banID, "PSQLID", bannedsqlid, "bans");
  1906. format(gstr, sizeof(gstr), "[Admin] %s definiu o banimento permanente de %s para expirar em %s(%i dias)", NameEx(playerid), playername, datestr, days);
  1907. AdminBroadcast(gstr, 0);
  1908. format(gstr, sizeof(gstr), "Set perm ban to expire in %i days", days);
  1909. AdminLog(playerid, bannedsqlid, playername, gstr);
  1910. DeleteBan(banID);
  1911. mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO tbans (PlayerName,BannedBy,BannedIP,BanReason,PlayerSQLID,UnbanDate,UnbanD,UnbanM,UnbanY,DaysBanned,MasterAccount) VALUES ('%e','%e','%e','%e',%i,'%e',%i,%i,%i,%i,%i)", playername, bannedby, bannedip, banreason, bannedsqlid, datestr, cd, cm, cy, days, MySQLCheckMaster_AgainstSQLID(bannedsqlid));
  1912. mysql_pquery(conn, mquery, "");
  1913. return true;
  1914. }
  1915. CMD:vertbans(playerid, params[])
  1916. {
  1917. if(!Logged{playerid}) return true;
  1918. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  1919. new count = 0;
  1920. gstr[0] = EOS;
  1921. for(new ban = 0; ban < MAX_TEMPBANS; ban++)
  1922. {
  1923. if(TempBans[ban][TempBanActive] == 1)
  1924. {
  1925. new sub[90];
  1926. format(sub, 90, "%s [%s, %i minutos, Razão: '%s']\n", GetSQLName(TempBans[ban][TempBanSQLID]), TempBans[ban][TempBanIP], TempBans[ban][TempBanTime], TempBans[ban][TempBanReason]);
  1927. strcat(gstr, sub);
  1928. count ++;
  1929. }
  1930. }
  1931. if(count == 0) return SysMsg(playerid, "Ninguem está temporariamente banido.");
  1932. ShowMessage(playerid, "Banimentos temporários", gstr, "pronto");
  1933. return true;
  1934. }
  1935. CMD:dban(playerid, params[]) return cmd_dateban(playerid, params);
  1936. CMD:dateban(playerid, params[])
  1937. {
  1938. if(!Logged{playerid}) return true;
  1939. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  1940. new playa = -1, days, reason[150];
  1941. if(sscanf(params, "uis[150]", playa, days, reason)) return SysMsg(playerid,"Use: /dateban [ID ou nome do jogador] [dias] [razão]");
  1942. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  1943. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  1944. if(IsPlayerAdmin(playa)) return SendClientMessage(playerid, COLOR_WHITE, "SERVER: Acesso negado");
  1945. if(IsPlayerAdminLevelOK(playa,1) && !IsPlayerAdmin(playerid)) return SysMsg(playerid,"Você não pode banir outro admin.");
  1946. if(playa == playerid) return SysMsg(playerid,"Você não pode banir a si mesmo.");
  1947. if(!Logged{playa}) return SendClientMessage(playerid, COLOR_WHITE, "Esse jogador não está logado no servidor.");
  1948. if((days < 2 || days > 14) && !IsPlayerAdmin(playerid)) return SysMsg(playerid,"Days must be between 2 and 14.");
  1949. if(strlen(reason) > 149) return SysMsg(playerid,"Sua razão está muito grande, max de 150 letras.");
  1950. new datestr[30], cd, cm, cy, thstndrd[4], tempdays = days;
  1951. getdate(cy, cm, cd);
  1952. do
  1953. {
  1954. tempdays --;
  1955. cd ++;
  1956. if(cd > LastDayInMonth(cm))
  1957. {
  1958. cm ++;
  1959. cd = 1;
  1960. /*cd += tempdays;
  1961. tempdays = 0;*/
  1962. }
  1963. if(cm > 12)
  1964. {
  1965. cm = 1;
  1966. cy ++;
  1967. }
  1968. }
  1969. while(tempdays > 0);
  1970. switch(cd)
  1971. {
  1972. case 1,21,31: format(thstndrd, sizeof(thstndrd), "st");
  1973. case 2,22: format(thstndrd, sizeof(thstndrd), "nd");
  1974. case 3,23: format(thstndrd, sizeof(thstndrd), "rd");
  1975. default: format(thstndrd, sizeof(thstndrd), "th");
  1976. }
  1977. format(datestr, sizeof(datestr), "%i%s %s %i", cd, thstndrd, GetMonthName(cm), cy);
  1978. format(gstr, sizeof(gstr), "Admin %s baniu %s até %s (%i days) [Razão: %s]", NameEx(playerid), NameEx(playa), datestr, days, reason);
  1979. SendClientMessageToAllLogged(COLOR_RED, gstr);
  1980. mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO tbans (PlayerName,BannedBy,BannedIP,BanReason,PlayerSQLID,UnbanDate,UnbanD,UnbanM,UnbanY,DaysBanned,MasterAccount) VALUES ('%e','%e','%e','%e',%i,'%e',%i,%i,%i,%i,%i)", GetName(playa), MasterAccountName[playerid], PlayerIP[playa], reason, SQLID[playa], datestr, cd, cm, cy, days, MySQLCheckMaster_AgainstSQLID(SQLID[playa]));
  1981. mysql_pquery(conn, mquery, "");
  1982. format(gstr, sizeof(gstr), "Date banned for %i days", days);
  1983. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  1984. KickPlayer(playa, 10);
  1985. AddToAdminRecord(SQLID[playa], SQLID[playerid], ADMIN_RECORD_TYPE_DATEBAN, days, reason);
  1986. return true;
  1987. }
  1988. CMD:rban(playerid, params[])
  1989. {
  1990. if(!Logged{playerid}) return true;
  1991. if(IsPlayerAdmin(playerid))
  1992. {
  1993. new playa = -1, reason[40];
  1994. if(sscanf(params, "us[40]", playa, reason)) return SysMsg(playerid,"Use: /rban [ID ou nome do jogador] [razão]");
  1995. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  1996. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  1997. if(playa == playerid) return SysMsg(playerid,"Você não pode usar esse comando em si mesmo.");
  1998. if(isnull(reason)) format(reason, sizeof(reason), "Não especificado");
  1999. new ip1, ip2, ip3, ip4;
  2000. sscanf(PlayerIP[playa], "p<.>iiii", ip1, ip2, ip3, ip4);
  2001. format(gstr, sizeof(gstr), "banip %i.%i.*.*", ip1, ip2);
  2002. SendRconCommand(gstr);
  2003. format(gstr, sizeof(gstr),"Admin %s Range Banned %s [Razão: %s]",NameEx(playerid),NameEx(playa),reason);
  2004. SendClientMessageToAllLogged(COLOR_RED,gstr);
  2005. format(gstr, sizeof(gstr), "Range banned, reason=%s", reason);
  2006. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  2007. KickPlayer(playa, 11);
  2008. }
  2009. else return SysMsg(playerid, AUTHMSG);
  2010. return true;
  2011. }
  2012. CMD:rbanip(playerid, params[])
  2013. {
  2014. if(!Logged{playerid}) return true;
  2015. if(IsPlayerAdminLevelOK(playerid, 4))
  2016. {
  2017. if(isnull(params)) return SysMsg(playerid,"Use: /rbanip [ip]");
  2018. format(gstr, sizeof(gstr),"Admin %s range banned IP %s.",NameEx(playerid),params);
  2019. AdminBroadcast(gstr, 0);
  2020. format(gstr, sizeof(gstr), "Range banned %s", params);
  2021. AdminLog(playerid, 0, "", gstr);
  2022. format(gstr, sizeof(gstr), "banip %s", params);
  2023. SendRconCommand(gstr);
  2024. }
  2025. else return SysMsg(playerid, AUTHMSG);
  2026. return true;
  2027. }
  2028. CMD:banip(playerid, params[])
  2029. {
  2030. if(!Logged{playerid}) return true;
  2031. if(IsPlayerAdminLevelOK(playerid, 3))
  2032. {
  2033. new ip[16], reason[150];
  2034. if(sscanf(params, "s[16]S()[150]", ip, reason)) return SysMsg(playerid,"Use: /banip [IP] [reason] *DO NOT USE AN IP WILDCARD*");
  2035. if(strfind(reason, "*") != -1) return SysMsg(playerid, "YOU USED A WILDCARD.");
  2036. if(isnull(reason)) format(reason, sizeof(reason), "Não especificado");
  2037. format(gstr, sizeof(gstr),"Admin %s banned IP %s [Razão: %s]",NameEx(playerid),ip,reason);
  2038. SendClientMessageToAllLogged(COLOR_RED,gstr);
  2039. format(gstr, sizeof(gstr), "Banned IP %s for '%s'", ip, reason);
  2040. AdminLog(playerid, 0, "", gstr);
  2041. MySQLBanIP(ip, NameEx(playerid), reason);
  2042. foreach(new i: Player)
  2043. {
  2044. if(strcmp(PlayerIP[i], ip, true) == 0)
  2045. {
  2046. KickPlayer(i, 12);
  2047. break;
  2048. }
  2049. }
  2050. }
  2051. else return SysMsg(playerid, AUTHMSG);
  2052. return true;
  2053. }
  2054. CMD:banhost(playerid, params[])
  2055. {
  2056. if(!Logged{playerid}) return true;
  2057. if(IsPlayerAdmin(playerid))
  2058. {
  2059. if(isnull(params)) return SysMsg(playerid,"Use: /banhost [hostname]");
  2060. format(gstr, sizeof(gstr),"Admin %s Banned the host '%s'",NameEx(playerid),params);
  2061. AdminBroadcast(gstr, 0);
  2062. mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO hostbans (BannedHost) VALUES ('%e')", params);
  2063. mysql_pquery(conn, mquery, "");
  2064. format(HostBans[HostBanIDX], 128, params);
  2065. format(gstr, sizeof(gstr), "Blocked hostname %s", params);
  2066. AdminLog(playerid, 0, "", gstr);
  2067. }
  2068. else return SysMsg(playerid, AUTHMSG);
  2069. return true;
  2070. }
  2071. CMD:banhosts(playerid, params[])
  2072. {
  2073. if(!Logged{playerid}) return true;
  2074. if(IsPlayerAdmin(playerid))
  2075. {
  2076. for(new b = 0; b < 15; b++)
  2077. {
  2078. HostBans[b][0] = 0;
  2079. }
  2080. HostBanIDX = 0;
  2081. mysql_pquery(conn, "SELECT BannedHost FROM hostbans", "ReloadBanHosts", "d", playerid);
  2082. }
  2083. else return SysMsg(playerid, AUTHMSG);
  2084. return true;
  2085. }
  2086. CMD:unbanip(playerid, params[])
  2087. {
  2088. if(!Logged{playerid}) return true;
  2089. if(IsPlayerAdminLevelOK(playerid, 3))
  2090. {
  2091. if(isnull(params)) return SysMsg(playerid,"Use: /unbanip [IP]");
  2092. if(MySQLCheckIPBanned(params) == 0) return SysMsg(playerid,"That IP is not banned so cannot be unbanned.");
  2093. mysql_format(conn, mquery, sizeof(mquery), "DELETE FROM bans WHERE BannedIP = '%e'", params);
  2094. mysql_pquery(conn, mquery, "");
  2095. format(gstr, sizeof(gstr),"[Admin] %s removeu todos os banimentos com IP: %s",NameEx(playerid),params);
  2096. AdminBroadcast(gstr, 0);
  2097. format(gstr, sizeof(gstr), "Unbanned IP %s", params);
  2098. AdminLog(playerid, 0, "", gstr);
  2099. }
  2100. else return SysMsg(playerid, AUTHMSG);
  2101. return true;
  2102. }
  2103. CMD:unban(playerid, params[])
  2104. {
  2105. if(!Logged{playerid}) return true;
  2106. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  2107. if(isnull(params)) return SysMsg(playerid,"Use: /unban [Nome_Sobrenome]");
  2108. new banid = GetBanID(params);
  2109. if(banid > 0)
  2110. {
  2111. DeleteBan(banid);
  2112. format(gstr, sizeof(gstr),"[Admin] %s unbanned %s.", NameEx(playerid), params);
  2113. AdminBroadcast(gstr, 0);
  2114. AdminLog(playerid, 0, params, "Conta desbanida");
  2115. }
  2116. else SendClientMessage(playerid, COLOR_WHITE, "Nenhum banimento foi encontrado com esse nome.");
  2117. return true;
  2118. }
  2119. CMD:desabilitarconta(playerid, params[])
  2120. {
  2121. if(!Logged{playerid}) return true;
  2122. if(!IsPlayerAdminLevelOK(playerid, 2)) return SysMsg(playerid, AUTHMSG);
  2123. new playa = -1;
  2124. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /desabilitarconta [player id]");
  2125. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  2126. if(!Logged{playa}) return SysMsg(playerid,"Esse jogador não está logado no servidor.");
  2127. if(playa == playerid) return SysMsg(playerid, "Você não pode desabilitar sua propria conta.");
  2128. MySQLUpdateInt(SQLID[playa], "AccountDisabled", 1, "players");
  2129. format(gstr, sizeof(gstr),"Admin %s desabilitou sua conta.", NameEx(playerid));
  2130. SendClientMessage(playa, COLOR_RED, gstr);
  2131. SendClientMessage(playa, COLOR_RED, "Você não poderá mais acessar esta conta.");
  2132. AdminLog(playerid, SQLID[playa], GetName(playa), "Conta desabilitada");
  2133. format(gstr, sizeof(gstr),"Admin %s desabilitou a conta de %s.", NameEx(playerid), NameEx(playa));
  2134. KickPlayer(playa, 13);
  2135. SendClientMessageToAllLogged(COLOR_RED, gstr);
  2136. return true;
  2137. }
  2138. CMD:habilitaconta(playerid, params[])
  2139. {
  2140. if(!Logged{playerid}) return true;
  2141. if(!IsPlayerAdminLevelOK(playerid, 2)) return SysMsg(playerid, AUTHMSG);
  2142. if(isnull(params)) return SysMsg(playerid,"Use: /habilitaconta [Nome_Sobrenome]");
  2143. new sqlid = MySQLCheckAccount(params, playerid);
  2144. if(sqlid <= 0) return SysMsg(playerid,"Este nome não pode ser encontrado.");
  2145. new status;
  2146. MySQLFetchInt(sqlid, "AccountDisabled", status, "players");
  2147. if(status == 0) return SysMsg(playerid,"Essa conta já está habilitada.");
  2148. MySQLUpdateInt(sqlid, "AccountDisabled", 0, "players");
  2149. format(gstr, sizeof(gstr),"[Admin] %s re-habilitou a conta de %s.", NameEx(playerid), GetSQLName(sqlid));
  2150. AdminBroadcast(gstr, 0);
  2151. AdminLog(playerid, sqlid, GetSQLName(sqlid), "Conta habilitada");
  2152. return true;
  2153. }
  2154. CMD:disableaccid(playerid, params[])
  2155. {
  2156. if(!Logged{playerid}) return true;
  2157. if(!IsPlayerAdminLevelOK(playerid, 3)) return SysMsg(playerid, AUTHMSG);
  2158. if(isnull(params)) return SysMsg(playerid,"Use: /disableaccid [account id]");
  2159. if(!IsNumeric(params)) return SysMsg(playerid,"Conta inválida.");
  2160. new account = strval(params);
  2161. if(account < 0) return SysMsg(playerid,"Conta inválida.");
  2162. MySQLUpdateInt(account, "AccountDisabled", 1, "players");
  2163. format(gstr, sizeof(gstr),"A conta %i foi desativada.", account);
  2164. SendClientMessage(playerid, COLOR_RED, gstr);
  2165. AdminLog(playerid, account, GetSQLName(account), "Conta desabilitada");
  2166. return true;
  2167. }
  2168. CMD:gt(playerid, params[])
  2169. {
  2170. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  2171. new playa = -1, towho[20], style, secTime, text[75];
  2172. if(sscanf(params, "s[20]iis[75]", towho, style, secTime, text)) return SysMsg(playerid,"Use: /gt [playerid/nome /todos] [estilo] [time(segundos)] [texto]");
  2173. if(strcmp(towho,"todos",true) == 0) playa = 1000;
  2174. else
  2175. {
  2176. if(!IsNumeric(towho)) playa = GetPlayerID(playerid, towho); else playa = strval(towho);
  2177. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  2178. }
  2179. if(style < 0 || style > 6) return SysMsg(playerid,"Estilo inválido.");
  2180. if(secTime < 1 || secTime > 10) return SysMsg(playerid,"Tempo inválido.");
  2181. if(playa == 1000) GameTextForAll(text, secTime*1000, style);
  2182. else GameTextForPlayer(playa, text, secTime*1000, style);
  2183. return true;
  2184. }
  2185. CMD:bc(playerid, params[])
  2186. {
  2187. if(!IsPlayerAdminLevelOK(playerid, 3)) return SysMsg(playerid, AUTHMSG);
  2188. if(ToggleBC == 0) return SysMsg(playerid,"Broadcast está desabilitado.");
  2189. if(isnull(params)) return SysMsg(playerid,"Use: /bc [mensagem]");
  2190. GameTextForAll(params, 10000, 3);
  2191. format(gstr, sizeof(gstr), "Broadcast: %s", params);
  2192. AdminLog(playerid, 0, "", gstr);
  2193. return true;
  2194. }
  2195. CMD:anuncioadm(playerid, params[])// /an
  2196. {
  2197. if(!IsPlayerAdminLevelOK(playerid, 3)) return SysMsg(playerid, AUTHMSG);
  2198. if(isnull(params)) return SysMsg(playerid,"Use: (Anúncio OOC) /anuncioadm [mensagem]");
  2199. new anMsg[196];
  2200. format(anMsg,196,"Anúncio de %s: %s", NameEx(playerid), params);
  2201. SendClientMessageToAllLogged(0x00FFFFFF,anMsg);
  2202. strins(anMsg, "11", 0);
  2203. //IRC_Say(IRCBot, IRC_CHANNEL, anMsg);
  2204. //IRC_Say(IRCBot, IRC_ADMIN_CHANNEL, anMsg);
  2205. format(anMsg, sizeof(anMsg), "Anúncio: %s", params);
  2206. AdminLog(playerid, 0, "", anMsg);
  2207. return true;
  2208. }
  2209. CMD:aa(playerid, params[])
  2210. {
  2211. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  2212. if(isnull(params)) return SysMsg(playerid, "Use: /aa [mensagem]");
  2213. format(sgstr, sizeof(sgstr),"* Admin %s: %s", NameEx(playerid), params);
  2214. SendClientMessageToAllLogged(0xC520FFFF, sgstr);
  2215. strins(sgstr, "6", 0);
  2216. //IRC_Say(IRCBot, IRC_CHANNEL, sgstr);
  2217. //IRC_Say(IRCBot, IRC_ADMIN_CHANNEL, sgstr);
  2218. format(sgstr, sizeof(sgstr), "Diz: %s", params);
  2219. AdminLog(playerid, 0, "", sgstr);
  2220. return true;
  2221. }
  2222. CMD:dizarea(playerid, params[])//falar em área
  2223. {
  2224. if(IsPlayerAdminLevelOK(playerid, 1))
  2225. {
  2226. new playa = -1, range, message[196];
  2227. if(sscanf(params, "iis[196]", playa, range, message)) return SysMsg(playerid,"Use: /dizarea [playerid] [área] [mensagem]");
  2228. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  2229. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  2230. if(!Logged{playa}) return SysMsg(playerid,"Esse jogador não está logado.");
  2231. if(range == 0) return SysMsg(playerid, "Digite um intervalo maior que 0.");
  2232. foreach(new i: Player)
  2233. {
  2234. if(Logged{i} && IsPlayerInRangeOfPoint(i, range, PlayerPosX(playa), PlayerPosY(playa), PlayerPosZ(playa)) || i == playerid)
  2235. {
  2236. SendClientMessageF(i, 0xC520FFFF, "* [AREA] Admin %s: %s", NameEx(playerid), message);
  2237. }
  2238. }
  2239. format(gstr, sizeof(gstr), "Área: %s", params);
  2240. AdminLog(playerid, 0, "", gstr);
  2241. }
  2242. else SysMsg(playerid, AUTHMSG);
  2243. return true;
  2244. }
  2245. CMD:kickping(playerid, params[])//kicka por ping
  2246. {
  2247. if(!IsPlayerAdminLevelOK(playerid, 4)) return SysMsg(playerid, AUTHMSG);
  2248. new playa = -1, toggle;
  2249. if(sscanf(params, "ui", playa, toggle)) return SysMsg(playerid,"Use: Ping King Exemption /kickping [playerid/name] [0/1]");
  2250. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  2251. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  2252. if(!Logged{playa}) return SysMsg(playerid,"Esse jogador ainda não esta logado.");
  2253. if(toggle < 0 || toggle > 1) return SysMsg(playerid, "Toggle deve ser 0 ou 1.");
  2254. if(toggle == 0) PingKickExemption{playa} = false;
  2255. else PingKickExemption{playerid} = true;
  2256. MySQLUpdateInt(SQLID[playa], "PingKickExemption", toggle, "players");
  2257. if(toggle == 0)
  2258. {
  2259. SendClientMessageF(playa, COLOR_RED, "Admin %s tornou-se responsável por altos golpes de ping.", NameEx(playerid));
  2260. SendClientMessageF(playerid, COLOR_RED, "Você permitiu %s para ser chutado.", NameEx(playa));
  2261. AdminLog(playerid, SQLID[playa], GetName(playa), "Ping Kick Exemption configurado para 0");
  2262. }
  2263. else
  2264. {
  2265. SendClientMessageF(playa, COLOR_RED, "Admin %s kickou você pode ping alto.", NameEx(playerid));
  2266. SendClientMessageF(playerid, COLOR_RED, "Você fez %s ser kickado por ping alto.", NameEx(playa));
  2267. AdminLog(playerid, SQLID[playa], GetName(playa), "Ping Kick Exemption set to 1");
  2268. }
  2269. return true;
  2270. }
  2271. CMD:msgall(playerid, params[])
  2272. {
  2273. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  2274. new caption[30], message[200], button1[20], button2[20];
  2275. if(sscanf(params, "s[30]s[20]s[20]s[200]", caption, button1, button2, message)) return SysMsg(playerid, "Use: /msgall [Legenda] [button1] [button2] [mensagem]");
  2276. foreach(new i: Player) if(Logged{i}) Dialog_Show(i, DIALOG_NONE, DIALOG_STYLE_MSGBOX, caption, message, button1, button2);
  2277. return true;
  2278. }
  2279. CMD:playsound(playerid, params[])
  2280. {
  2281. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  2282. new towho[20], playa, soundid;
  2283. if(sscanf(params, "s[20]i", towho, soundid)) return SysMsg(playerid, "Use: /playsound [playerid/name] [sound id]");
  2284. if(strcmp("all", towho, true) == 0)
  2285. {
  2286. foreach(new i: Player) PlayerPlaySound(i, soundid, 0.0, 0.0, 0.0);
  2287. }
  2288. else
  2289. {
  2290. if(!IsNumeric(towho)) playa = GetPlayerID(playerid, towho); else playa = strval(towho);
  2291. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  2292. PlayerPlaySound(playa, soundid, 0.0, 0.0, 0.0);
  2293. }
  2294. return true;
  2295. }
  2296. CMD:aboombox(playerid, params[])
  2297. {
  2298. if(IsPlayerAdminLevelOK(playerid, 1))
  2299. {
  2300. new option[12], playa = -1;
  2301. if(sscanf(params, "s[64]I(-1)", option, playa)) return SysMsg(playerid, "Use: /aboombox [ban / delete] [Optional: ID]");
  2302. if(playa == -1)
  2303. {
  2304. foreach(new p: Player)
  2305. {
  2306. if(IsPlayerInRangeOfPoint(playerid, 2.0, Boomboxes[p][BoomPos][0], Boomboxes[p][BoomPos][1], Boomboxes[p][BoomPos][2]))
  2307. {
  2308. if(strmatch(option, "delete"))
  2309. {
  2310. SetPVarInt(playerid, "bbID", p);
  2311. format(gstr, sizeof(gstr), "Tem certeza que deseja deletar a boombox de %s ?", NameRP(p));
  2312. return Dialog_Show(playerid, BoomboxDelete, DIALOG_STYLE_MSGBOX, "Boombox Menu", gstr, "Sim", "Cancelar");
  2313. }
  2314. else if(strmatch(option, "ban"))
  2315. {
  2316. SetPVarInt(playerid, "bbID", p);
  2317. format(gstr, sizeof(gstr), "Tem certeza que deseja banir a boombox de %s, ele não podera usar mais boombox ?", NameRP(p));
  2318. return Dialog_Show(playerid, BoomboxBan, DIALOG_STYLE_MSGBOX, "Boombox Menu", gstr, "Sim", "Cancelar");
  2319. }
  2320. }
  2321. }
  2322. return SysMsg(playerid, "Nenhuma boombox encontrada, use /aboombox [playerid].");
  2323. }
  2324. else if(IsPlayerConnected(playa))
  2325. {
  2326. if(strmatch(option, "delete"))
  2327. {
  2328. if(Boomboxes[playa][BoomOID] == SQLID[playa])
  2329. {
  2330. SetPVarInt(playerid, "bbID", playa);
  2331. format(gstr, sizeof(gstr), "Tem certeza que deseja deletar a boombox de %s ?", NameRP(playa));
  2332. return Dialog_Show(playerid, BoomboxDelete, DIALOG_STYLE_MSGBOX, "Boombox Menu", gstr, "Sim", "Cancelar");
  2333. }
  2334. else return SysMsg(playerid, "Esse jogador não possui boombox ativo.");
  2335. }
  2336. else if(strmatch(option, "ban"))
  2337. {
  2338. SetPVarInt(playerid, "bbID", playa);
  2339. format(gstr, sizeof(gstr), "Tem certeza que deseja banir a boombox de %s, ele não podera usar mais boombox ?", NameRP(playa));
  2340. return Dialog_Show(playerid, BoomboxBan, DIALOG_STYLE_MSGBOX, "Boombox Menu", gstr, "Sim", "Cancelar");
  2341. }
  2342. }
  2343. else return SysMsg(playerid, NOPLAYER);
  2344. }
  2345. else return SysMsg(playerid, AUTHMSG);
  2346. return true;
  2347. }
  2348. CMD:bmxban(playerid, params[])
  2349. {
  2350. if(IsPlayerAdminLevelOK(playerid, 1))
  2351. {
  2352. new playa = -1;
  2353. if(sscanf(params, "u", playa)) return SysMsg(playerid, "Use: /bmxban [playerID ou name]");
  2354. if(!IsNumeric(params)) return SysMsg(playerid,"Você deve inserir uma identificação de jogador.");
  2355. if(BMXBanned[playa] == 1) return SysMsg(playerid, "O privilégio de bicicleta desse jogador já foi removido.");
  2356. if(playerid == playa) return SysMsg(playerid, "Você não pode usar esse comando em si mesmo.");
  2357. if(IsPlayerAdminLevelOK(playa, 1)) return SysMsg(playerid, "Você não pode usar esse comando em outro administradores.");
  2358. SysMsgF(playa, "Administrator %s removeu sua permissão de usar Bmx.", NameEx(playerid));
  2359. SysMsgF(playerid, "Você removeu a permissão de %s de usar Bmx.", NameEx(playa));
  2360. mysql_format(conn, mquery, sizeof(mquery), "UPDATE masters SET BMXBanned = 1 WHERE id = %i", MasterAccount[playerid]);
  2361. mysql_pquery(conn, mquery);
  2362. BMXBanned[playa] = 1;
  2363. }
  2364. return true;
  2365. }
  2366. CMD:playmusic(playerid, params[])
  2367. {
  2368. if(!IsPlayerAdminLevelOK(playerid, 4)) return SysMsg(playerid, AUTHMSG);
  2369. new towho[24], playa, musicLink[200];
  2370. if(sscanf(params, "s[24]s[200]", towho, musicLink)) return SysMsg(playerid, "Use: /playmusic (for) [[playerid/name]/todos/admins] [link/stop]");
  2371. if(strcmp(musicLink, "stop") == 0)
  2372. {
  2373. if(strcmp("todos", towho, true) == 0)
  2374. {
  2375. foreach(new i: Player) if(Logged{i}) StopAudioStreamForPlayer(i);
  2376. }
  2377. else if(strcmp("admins", towho, true) == 0)
  2378. {
  2379. foreach(new i: Player) if(IsPlayerAdminLevelOK(i, 1)) StopAudioStreamForPlayer(i);
  2380. }
  2381. else
  2382. {
  2383. if(!IsNumeric(towho)) playa = GetPlayerID(playerid, towho); else playa = strval(towho);
  2384. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  2385. StopAudioStreamForPlayer(playa);
  2386. }
  2387. }
  2388. else
  2389. {
  2390. if(strcmp("todos", towho, true) == 0)
  2391. {
  2392. foreach(new i: Player)
  2393. {
  2394. if(Logged{i})
  2395. {
  2396. StopAudioStreamForPlayer(i);
  2397. PlayAudioStreamForPlayerEx(i, musicLink);
  2398. SendClientMessageF(i, COLOR_RED, "DJ %s esta tocando algumas musicas.", GetPlayersFirstName(playerid));
  2399. ListeningBoom[i] = -1;
  2400. }
  2401. }
  2402. }
  2403. else if(strcmp("admins", towho, true) == 0)
  2404. {
  2405. foreach(new i: Player)
  2406. {
  2407. if(IsPlayerAdminLevelOK(i, 1))
  2408. {
  2409. StopAudioStreamForPlayer(i);
  2410. PlayAudioStreamForPlayerEx(i, musicLink);
  2411. SendClientMessageF(i, COLOR_RED, "DJ %s esta tocando algumas musicas.", GetPlayersFirstName(playerid));
  2412. ListeningBoom[i] = -1;
  2413. }
  2414. }
  2415. }
  2416. else
  2417. {
  2418. if(!IsNumeric(towho)) playa = GetPlayerID(playerid, towho);
  2419. else playa = strval(towho);
  2420. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  2421. PlayAudioStreamForPlayerEx(playa, musicLink);
  2422. SendClientMessageF(playa, COLOR_RED, "DJ %s esta tocando algumsa musicas.", GetPlayersFirstName(playerid));
  2423. }
  2424. }
  2425. return true;
  2426. }
  2427. CMD:ahangout(playerid, params[])
  2428. {
  2429. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  2430. SetPlayerPos(playerid, 1452.110717, -1059.402343, 213.411880);
  2431. SetPlayerFacingAngle(playerid, 0.0);
  2432. SetPlayerVirtualWorldEx(playerid, 1337);
  2433. SetPlayerInterior(playerid, 0);
  2434. SendClientMessage(playerid, COLOR_BLUEGREEN, "Bem-vindo ao admin Lounge!");
  2435. return true;
  2436. }
  2437. CMD:msgp(playerid, params[])
  2438. {
  2439. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  2440. new playa = -1, caption[30], message[200], button1[20], button2[20];
  2441. if(sscanf(params, "us[30]s[20]s[20]s[200]", playa, caption, button1, button2, message)) return SysMsg(playerid, "Use: /msgp [playerid/name] [caption] [button1] [button2] [mensagem]");
  2442. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  2443. Dialog_Show(playa, DIALOG_NONE, DIALOG_STYLE_MSGBOX, caption, message, button1, button2);
  2444. return true;
  2445. }
  2446. CMD:maths(playerid, params[])
  2447. {
  2448. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  2449. new Number1, Number2, chara[2];
  2450. if(sscanf(params, "is[2]i", Number1, chara, Number2)) return SysMsg(playerid,"Use: /maths [número 1] [operator '+' or '-'] [número 2]");
  2451. if(strcmp(chara, "+", true) == 0)
  2452. {
  2453. format(gstr, sizeof(gstr), "Questão: O que é %i + %i ? Use /responder.", Number1, Number2);
  2454. SendClientMessageToAllLogged(COLOR_LIGHTRED, gstr);
  2455. MathsStarted = 1;
  2456. MathsAnswer = Number1 + Number2;
  2457. }
  2458. else if(strcmp(chara, "-", true) == 0)
  2459. {
  2460. format(gstr, sizeof(gstr), "Questão: O que é %i - %i ? Use /responder.", Number1, Number2);
  2461. SendClientMessageToAllLogged(COLOR_LIGHTRED, gstr);
  2462. MathsStarted = 1;
  2463. MathsAnswer = Number1 - Number2;
  2464. }
  2465. return true;
  2466. }
  2467. CMD:iniciarevento(playerid, params[])
  2468. {
  2469. if(!IsPlayerAdminLevelOK(playerid, 3)) return SysMsg(playerid, AUTHMSG);
  2470. if(EventOpen == 1) return SysMsg(playerid,"Já existe um evento.");
  2471. if(isnull(params)) return SysMsg(playerid, "Use: /iniciarevento [Nome do envento]");
  2472. new Float:EventPos[3];
  2473. new Int, VW;
  2474. GetPlayerPos(playerid, EventPos[0], EventPos[1], EventPos[2]);
  2475. Int = GetPlayerInterior(playerid);
  2476. VW = GetPlayerVirtualWorld(playerid);
  2477. EventData[EventX] = EventPos[0];
  2478. EventData[EventY] = EventPos[1];
  2479. EventData[EventZ] = EventPos[2];
  2480. EventData[EventInterior] = Int;
  2481. EventData[EventVW] = VW;
  2482. format(EventData[EventName], 50, params);
  2483. EventOpen = 1;
  2484. format(gstr, sizeof(gstr), "%s iniciou um evento, use /entrarevento para entrar! [Descrição: %s]", NameEx(playerid), params);
  2485. SendClientMessageToAllLogged(COLOR_PINK, gstr);
  2486. format(gstr, sizeof(gstr), "Evento iniciado: %s", params);
  2487. AdminLog(playerid, 0, "", gstr);
  2488. return true;
  2489. }
  2490. CMD:pararevento(playerid, params[])
  2491. {
  2492. if(!IsPlayerAdminLevelOK(playerid, 3)) return SysMsg(playerid, AUTHMSG);//pararevento
  2493. if(EventOpen == 0) return SysMsg(playerid,"Não há evento que ocorrendo.");
  2494. EventData[EventX] = 0.0;
  2495. EventData[EventY] = 0.0;
  2496. EventData[EventZ] = 0.0;
  2497. EventData[EventInterior] = 0;
  2498. EventData[EventVW] = 0;
  2499. format(EventData[EventName], 50, " ");
  2500. EventOpen = 0;
  2501. format(gstr, sizeof(gstr), "%s finalizou o evento. É tarde demais para se juntar.", NameEx(playerid));
  2502. SendClientMessageToAllLogged(COLOR_PINK, gstr);
  2503. AdminLog(playerid, 0, "", "Closed an event");
  2504. return true;
  2505. }
  2506. CMD:bone(playerid, params[])
  2507. {
  2508. if(!Logged{playerid} || !IsPlayerAdmin(playerid)) return true;
  2509. new objectid, boneid, index, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, Float:sX = 1, Float:sY = 1, Float:sZ = 1;
  2510. if(sscanf(params, "iiiF(0)F(0)F(0)F(0)F(0)F(0)F(1)F(1)F(1)", objectid, boneid, index, X, Y, Z, rX, rY, rZ, sX, sY, sZ)) return SysMsg(playerid,"Use: /bone [object] [bone] [index] [Float:X] [Float:Y] [Float:Z] [Float:rX] [Float:rY] [Float:rZ] [Float:sX] [Float:sY] [Float:sZ]");
  2511. SetPlayerAttachedObject(playerid, index, objectid, boneid, X, Y, Z, rX, rY, rZ, sX, sY, sZ);
  2512. return true;
  2513. }
  2514. CMD:vobj(playerid, params[])
  2515. {
  2516. if(!Logged{playerid} || !IsPlayerAdmin(playerid) || !IsPlayerInAnyVehicle(playerid)) return true;
  2517. new objectid, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, vehicleid = GetPlayerVehicleID(playerid);
  2518. if(sscanf(params, "iF(0)F(0)F(0)F(0)F(0)F(0)", objectid, X, Y, Z, rX, rY, rZ)) return SysMsg(playerid,"Use: /vobj [object] [Float:X] [Float:Y] [Float:Z] [Float:rX] [Float:rY] [Float:rZ]");
  2519. if(VehObject[vehicleid] != INVALID_OBJECT_ID)
  2520. {
  2521. DestroyDynamicObjectEx(VehObject[vehicleid], "VehObject[vehicleid] 1");
  2522. VehObject[vehicleid] = INVALID_OBJECT_ID;
  2523. }
  2524. VehObject[vehicleid] = CreateVehicleObject(objectid, vehicleid, X, Y, Z, rX, rY, rZ);
  2525. return true;
  2526. }
  2527. CMD:delvobj(playerid, params[])
  2528. {
  2529. if(!Logged{playerid} || !IsPlayerAdmin(playerid) || GetPlayerVehicleID(playerid) < 1) return true;
  2530. new Vehicleid = GetPlayerVehicleID(playerid);
  2531. if(VehObject[Vehicleid] != INVALID_OBJECT_ID)
  2532. {
  2533. DestroyDynamicObjectEx(VehObject[Vehicleid], "VehObject[vehicleid] 2");
  2534. VehObject[Vehicleid] = INVALID_OBJECT_ID;
  2535. }
  2536. return true;
  2537. }
  2538. CMD:mute(playerid, params[])
  2539. {
  2540. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  2541. new playa = -1, minutes;
  2542. if(sscanf(params, "ui", playa, minutes)) return SysMsg(playerid,"Use: /mute [ID ou nome do jogador] [time in minutes]");
  2543. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  2544. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  2545. if(Muted[playa] > 0) return SysMsg(playerid,"Esse jogador já está silenciado.");
  2546. if(minutes < 1 || minutes > 60) return SysMsg(playerid,"Os minutos só podem ser de 1 a 60 minutos");
  2547. Muted[playa] = minutes;
  2548. MySQLUpdateInt(SQLID[playa], "Muted", Muted[playa], "players");
  2549. SysMsgF(playerid,"Você silenciou %s por %i minutos.",NameEx(playa), minutes);
  2550. SysMsgF(playa, "Você foi silenciado por %s por %i minutos. Você não pode falar.",NameEx(playerid),minutes);
  2551. format(gstr, sizeof(gstr), "Silenciado por %i min", minutes);
  2552. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  2553. AddToAdminRecord(SQLID[playa], SQLID[playerid], ADMIN_RECORD_TYPE_MUTE, minutes, "");
  2554. return true;
  2555. }
  2556. CMD:unmute(playerid, params[])
  2557. {
  2558. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  2559. new playa = -1;
  2560. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /unmute [ID ou nome do jogador]");
  2561. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  2562. if(Muted[playa] == 0) return SysMsg(playerid,"Esse player não está silenciado.");
  2563. Muted[playa] = 0;
  2564. MySQLUpdateInt(SQLID[playa], "Muted", Muted[playa], "players");
  2565. SysMsgF(playerid, "Você desmulto %s",NameEx(playa));
  2566. SysMsgF(playa, "Você foi desmutado por %s. Agora você pode falar.",NameEx(playerid));
  2567. AdminLog(playerid, SQLID[playa], GetName(playa), "Unmuted");
  2568. return true;
  2569. }
  2570. CMD:doocmute(playerid, params[])
  2571. {
  2572. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  2573. new playa = -1, minutes;
  2574. if(sscanf(params, "ui", playa, minutes)) return SysMsg(playerid,"Use: /doocmute [ID ou nome do jogador] [time in minutes]");
  2575. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  2576. if(playa == playerid) return SysMsg(playerid, "Você não pode usar esse comando em si mesmo.");
  2577. if(IsPlayerAdminLevelOK(playa, 1)) return SysMsg(playerid, "Você não pode usar esse comando em outro admin.");
  2578. if(DOOCMuted[playa] > 0) return SysMsg(playerid,"Este jogador já está desmutado.");
  2579. if(minutes < 1 || minutes > 60) return SysMsg(playerid,"Os minutos só podem ser de 1 a 60 minutos");
  2580. DOOCMuted[playa] = minutes;
  2581. MySQLUpdateInt(SQLID[playa], "DOOCMuted", DOOCMuted[playa], "players");
  2582. SysMsgF(playerid,"Você foi mutado por %s por %i minutos do DOOC.",NameEx(playa), minutes);
  2583. SysMsgF(playa,"Você foi silenciado do DOOC por %i minutos por %s",minutes, NameEx(playerid));
  2584. format(gstr, sizeof(gstr), "Mutado por %i min", minutes);
  2585. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  2586. AddToAdminRecord(SQLID[playa], SQLID[playerid], ADMIN_RECORD_TYPE_MUTE, minutes, "");
  2587. return true;
  2588. }
  2589. CMD:doocunmute(playerid, params[])
  2590. {
  2591. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  2592. new playa = -1;
  2593. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /doocunmute [ID ou nome do jogador]");
  2594. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  2595. if(DOOCMuted[playa] == 0) return SysMsg(playerid,"O jogador já não está desmutado.");
  2596. DOOCMuted[playa] = 0;
  2597. MySQLUpdateInt(SQLID[playa], "DOOCMuted", DOOCMuted[playa], "players");
  2598. SysMsgF(playerid, "Você desmutou %s do DOOC.",NameEx(playa));
  2599. SysMsgF(playa, "Você não foi mutado de DOOC.",NameEx(playerid));
  2600. AdminLog(playerid, SQLID[playa], GetName(playa), "Unmuted");
  2601. return true;
  2602. }
  2603. CMD:mutes(playerid, params[])
  2604. {
  2605. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  2606. new sub[100], count;
  2607. gstr[0] = EOS;
  2608. foreach(new i: Player)
  2609. {
  2610. if(Logged{i})
  2611. {
  2612. if(Muted[i] > 0)
  2613. {
  2614. format(sub, 100, "%s(ID %i) Global silenciado por %i minutos\n", NameEx(i), i, Muted[i]);
  2615. strcat(gstr, sub);
  2616. count ++;
  2617. }
  2618. }
  2619. }
  2620. if(count == 0) return SysMsg(playerid,"Ninguém está mudo agora.");
  2621. ShowMessage(playerid, "Lista de mudos", gstr, "Pronto");
  2622. return true;
  2623. }
  2624. CMD:ipcheck(playerid, params[])
  2625. {
  2626. if(!Logged{playerid}) return true;
  2627. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  2628. if(isnull(params)) return SysMsg(playerid,"Use: /ipcheck [IP]");
  2629. mysql_format(conn, mquery, sizeof(mquery), "SELECT Name FROM players WHERE IP='%e' OR RecentIP='%e'", params, params);
  2630. mysql_pquery(conn, mquery, "checkIP", "ds", playerid, params);
  2631. return true;
  2632. }
  2633. CMD:clientid(playerid, params[])
  2634. {
  2635. if(!Logged{playerid}) return true;
  2636. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  2637. new playa = -1;
  2638. if(sscanf(params, "u", playa)) return SysMsg(playerid, "Use: /clientid [playerID ou name]");
  2639. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  2640. if(!strlen(PlayerSerial[playa])) return SysMsg(playerid, "Nenhum serial encontrado para este jogador.");
  2641. SendClientMessageF(playerid, COLOR_WHITE, "Serial do jogo para %s: %s.", NameEx(playa), PlayerSerial[playa]);
  2642. SendSplitMessage(playerid, COLOR_WHITE, "Nota: As séries de jogos não são um identificador único de 100 porcento para um jogador, portanto, não os use como evidências concretas contra uma suspeita de evasão de proibição.");
  2643. return true;
  2644. }
  2645. CMD:serialcheck(playerid, params[])
  2646. {
  2647. if(!Logged{playerid}) return true;
  2648. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  2649. new playa = -1;
  2650. if(sscanf(params, "u", playa)) return SysMsg(playerid, "Use: /clientid [playerID ou name]");
  2651. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  2652. if(!strlen(PlayerSerial[playa])) return SysMsg(playerid, "Nenhuma série encontrada para este jogador.");
  2653. mysql_format(conn, mquery, sizeof(mquery), "SELECT Name FROM players WHERE RecentSerial = '%e'", PlayerSerial[playa]);
  2654. mysql_pquery(conn, mquery, "CheckSerial", "ds", playerid, PlayerSerial[playa]);
  2655. return true;
  2656. }
  2657. CMD:darxp(playerid, params[])
  2658. {
  2659. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  2660. new playa = -1, xp;
  2661. if(sscanf(params, "ui", playa, xp)) return SysMsg(playerid,"Use: /darxp [ID ou nome do jogador] [Quantidade]");
  2662. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  2663. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  2664. if(xp < 1 || xp > 2500) return SysMsg(playerid,"Quantidade de XP inválida! (Deve estar entre 1 e 2500)");
  2665. PlayerXP[playa] += xp;
  2666. MySQLUpdateInt(SQLID[playa], "PlayerXP", PlayerXP[playa], "players");
  2667. SendClientMessageF(playa, COLOR_GREEN, "Admin %s te deu %i Pontos de experiência",NameEx(playerid),xp);
  2668. SendClientMessageF(playerid, COLOR_GREEN, "Você deu a %s %i Pontos de experiência",NameEx(playa),xp);
  2669. format(gstr, sizeof(gstr), "Deu %i XP points", xp);
  2670. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  2671. return true;
  2672. }
  2673. CMD:mudartelefone(playerid, params[])
  2674. {
  2675. if(!IsPlayerAdminLevelOK(playerid, 3)) return SysMsg(playerid, AUTHMSG);
  2676. new playa = -1, newnumber;
  2677. if(sscanf(params, "ui", playa, newnumber)) return SysMsg(playerid,"Use: /mudartelefone [ID ou Nome] [Novo número]");
  2678. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  2679. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  2680. if(newnumber < 1000000 || newnumber > 9999999) return SysMsg(playerid,"Número inválido. (Deve estar entre 1000000 e 9999999)");
  2681. if(IsPhoneNumberUsed(newnumber) > 0) return SysMsg(playerid,"Número inválido. (Já em uso)");
  2682. mysql_format(conn, mquery, sizeof(mquery), "UPDATE phonecontacts SET PhoneNumber = %i WHERE PhoneNumber = %i", newnumber, PhoneData[playa][pNumber]);
  2683. mysql_pquery(conn, mquery);
  2684. PhoneData[playa][pNumber] = newnumber;
  2685. mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET PhoneNumber = %i WHERE id = %i", PhoneData[playa][pNumber], PhoneData[playa][pID]);
  2686. mysql_pquery(conn, mquery);
  2687. SendClientMessageF(playa, COLOR_GREEN, "Admin %s definiu seu número para %i.", NameEx(playerid), newnumber);
  2688. SendClientMessageF(playerid, COLOR_GREEN, "Você definiu o número de %s para %i.", NameEx(playa) ,newnumber);
  2689. format(gstr, sizeof(gstr), "Mudou o número de telefone para %i", newnumber);
  2690. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  2691. return true;
  2692. }
  2693. CMD:freeze(playerid, params[])
  2694. {
  2695. if(IsPlayerAdminLevelOK(playerid, 1) || IsHelper{playerid})
  2696. {
  2697. new playa = -1;
  2698. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /freeze [ID ou nome do jogador]");
  2699. if(!IsPlayerAdminLevelOK(playerid, 1) && IsHelper{playerid} && IsAssisting[playerid] != playa) return SysMsg(playerid, "You can't use this command on someone you aren't assisting.");
  2700. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  2701. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  2702. TogglePlayerControllable(playa, false);
  2703. IsFrozen[playa] = 1;
  2704. if(IsPlayerAdminLevelOK(playerid, 1)) SendClientMessageF(playa, COLOR_LIGHTGREEN, "Admin %s froze you.",NameEx(playerid));
  2705. else if(IsHelper{playerid}) SendClientMessageF(playa, COLOR_LIGHTGREEN, "Helper %s froze you.",NameEx(playerid));
  2706. SendClientMessageF(playerid, COLOR_LIGHTGREEN, "You froze %s",NameEx(playa));
  2707. AdminLog(playerid, SQLID[playa], GetName(playa), "Froze player");
  2708. }
  2709. else return SysMsg(playerid, AUTHMSG);
  2710. return true;
  2711. }
  2712. CMD:unfreeze(playerid, params[])
  2713. {
  2714. if(IsPlayerAdminLevelOK(playerid, 1) || IsHelper{playerid})
  2715. {
  2716. new playa = -1;
  2717. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /unfreeze [ID ou nome do jogador]");
  2718. if(!IsPlayerAdminLevelOK(playerid, 1) && IsHelper{playerid} && IsAssisting[playerid] != playa) return SysMsg(playerid, "You can't use this command on someone you aren't assisting.");
  2719. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  2720. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  2721. TogglePlayerControllable(playa, true);
  2722. IsFrozen[playa] = 0;
  2723. if(IsPlayerAdminLevelOK(playerid, 1)) format(gstr, sizeof(gstr),"Admin %s unfroze you.",NameEx(playerid));
  2724. else if(IsHelper{playerid}) format(gstr, sizeof(gstr),"Helper %s unfroze you.",NameEx(playerid));
  2725. SendClientMessage(playa, COLOR_LIGHTGREEN, gstr);
  2726. format(gstr, sizeof(gstr),"You unfroze %s",NameEx(playa));
  2727. SendClientMessage(playerid, COLOR_LIGHTGREEN, gstr);
  2728. AdminLog(playerid, SQLID[playa], GetName(playa), "Unfroze player");
  2729. }
  2730. else return SysMsg(playerid, AUTHMSG);
  2731. return true;
  2732. }
  2733. CMD:ajail(playerid, params[])
  2734. {
  2735. if(!Logged{playerid}) return true;
  2736. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  2737. new playa = -1;
  2738. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /ajail [ID ou nome do jogador]");
  2739. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  2740. InitiateAdminJail(playerid, playa);
  2741. return true;
  2742. }
  2743. CMD:ujail(playerid, params[])
  2744. {
  2745. if(!Logged{playerid}) return true;
  2746. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  2747. new playa = -1;
  2748. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /ujail [ID ou nome do jogador]");
  2749. if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado.");
  2750. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  2751. if(AdminJailData[playa][0] == 0) return SysMsg(playerid,"Este jogador não está em prisão administrativa.");
  2752. AUnJailPlayer(playa);
  2753. MySQLUpdateInt(SQLID[playa], "AdminJailTime", 0, "players");
  2754. format(gstr, sizeof(gstr), "Admin %s removeu você da prisão administrativa.", NameEx(playerid));
  2755. SendClientMessage(playa, COLOR_RED, gstr);
  2756. format(gstr, sizeof(gstr), "[Admin] %s removeu %s da prisão administrativa.", NameEx(playerid), NameEx(playa));
  2757. AdminBroadcast(gstr, 1);
  2758. AdminLog(playerid, SQLID[playa], GetName(playa), "Removido da admin jail");
  2759. return true;
  2760. }
  2761. CMD:gmx(playerid, params[])
  2762. {
  2763. if(IsPlayerAdminLevelOK(playerid, 3))
  2764. {
  2765. new mins, reason[64];
  2766. if(sscanf(params, "iS()[64]", mins, reason)) return SysMsg(playerid,"Use: /gmx [cronograma 0-10 minutos] [Optional: Breve razão] *Pode ser cancelado com /cancelgmx*");
  2767. if(mins < 0 || mins > 10) return SysMsg(playerid, "Tempo inválido! (0-10)");
  2768. if(mins == 0)
  2769. {
  2770. if(isnull(reason)) format(reason, sizeof(reason), "Não especificado");
  2771. format(gstr, sizeof(gstr), "~n~~n~~n~~n~~n~~n~~b~~h~server reiniciado por~n~~w~%s", NameEx(playerid));
  2772. GameTextForAll(gstr, 12000, 3);
  2773. AdminLog(playerid, 0, "", "Imediato GMX");
  2774. foreach(new i: Player)
  2775. {
  2776. SetPlayerName(i, MasterAccountName[i]);
  2777. }
  2778. SetTimer("DelayedGameModeExit", 1000, false);
  2779. return true;
  2780. }
  2781. MinutesUntilGMX = mins;
  2782. SendClientMessageToAllF(COLOR_GOLD, "* Admin %s agendou um reinício do servidor em %i minuto(s)", NameEx(playerid), mins);
  2783. //IRC_SayF(IRCBot, IRC_CHANNEL, "7* Admin %s has scheduled a server restart in %i minute(s)", NameEx(playerid), mins);
  2784. //IRC_SayF(IRCBot, IRC_ADMIN_CHANNEL, "7* Admin %s has scheduled a server restart in %i minute(s)", NameEx(playerid), mins);
  2785. if(strlen(reason) > 1)
  2786. {
  2787. SendClientMessageToAllF(COLOR_GOLD, "* Razão: %s", reason);
  2788. //IRC_SayF(IRCBot, IRC_CHANNEL, "7* Reason: %s", reason);
  2789. //IRC_SayF(IRCBot, IRC_ADMIN_CHANNEL, "7* Reason: %s", reason);
  2790. }
  2791. format(gstr, sizeof(gstr), "~n~~n~~n~~b~~h~REINICIO DO SERVE~w~ em ~g~~h~%i MINUTOS", mins);
  2792. GameTextForAll(gstr, 10000, 3);
  2793. format(gstr, sizeof(gstr), "GMX agendado em %i min", mins);
  2794. AdminLog(playerid, 0, "", gstr);
  2795. }
  2796. else return SysMsg(playerid, AUTHMSG);
  2797. return true;
  2798. }
  2799. CMD:cancelgmx(playerid, params[])
  2800. {
  2801. if(IsPlayerAdminLevelOK(playerid, 3))
  2802. {
  2803. if(MinutesUntilGMX == 0) return SysMsg(playerid,"No GMX scheduled.");
  2804. MinutesUntilGMX = 0;
  2805. SendClientMessageToAllF(COLOR_GOLD,"* Admin %s cancelou o reinício do servidor.",NameEx(playerid));
  2806. AdminLog(playerid, 0, "", "GMX Cancelado");
  2807. }
  2808. else return SysMsg(playerid, AUTHMSG);
  2809. return true;
  2810. }
  2811. CMD:jp(playerid, params[])
  2812. {
  2813. if(!IsPlayerAdminLevelOK(playerid, 3)) return SysMsg(playerid, AUTHMSG);
  2814. if(isnull(params))
  2815. {
  2816. if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK) SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE);
  2817. else SetPlayerSpecialAction(playerid,SPECIAL_ACTION_USEJETPACK);
  2818. return true;
  2819. }
  2820. new playa = -1;
  2821. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /jp [ID ou nome do jogador]");
  2822. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  2823. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  2824. if(!IsPlayerAdminLevelOK(playa,1)) return SysMsg(playerid,"Este jogador não pode usar um Jet pack.");
  2825. if(GetPlayerSpecialAction(playa) == SPECIAL_ACTION_USEJETPACK)
  2826. {
  2827. SetPlayerSpecialAction(playa, SPECIAL_ACTION_NONE);
  2828. SendClientMessageF(playa, COLOR_GREEN, "Admin %s removeu seu Jet Pack.",NameEx(playerid));
  2829. SendClientMessageF(playerid, COLOR_GREEN, "Removeu o Jet Pack de %s",NameEx(playa));
  2830. }
  2831. else
  2832. {
  2833. SetPlayerSpecialAction(playa,SPECIAL_ACTION_USEJETPACK);
  2834. SendClientMessageF(playa, COLOR_GREEN, "Admin %s te deu um Jet Pack",NameEx(playerid));
  2835. SendClientMessageF(playerid, COLOR_GREEN, "Você deu a %s um Jet Pack",NameEx(playa));
  2836. }
  2837. return true;
  2838. }
  2839. CMD:savecp(playerid, params[])
  2840. {
  2841. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  2842. new Float:pX, Float:pY, Float:pZ;
  2843. GetPlayerPos(playerid, pX, pY, pZ);
  2844. format(gstr, sizeof(gstr), "{%f, %f, %f} //%s", pX, pY, pZ, params);
  2845. AddToLog("savedpos", gstr);
  2846. SysMsg(playerid, "> Posição de Ponto de Verificação Salvo para Arquivo (Checkpoint).");
  2847. return true;
  2848. }
  2849. CMD:apayday(playerid, params[])
  2850. {
  2851. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  2852. new towho[20];
  2853. if(sscanf(params, "s[24]", towho)) return SysMsg(playerid,"Use: /pagarday [ID ou nome do jogador / Todos]");
  2854. if(strcmp("todos", towho, true) == 0)
  2855. {
  2856. foreach(new i: Player)
  2857. {
  2858. if(Logged{i}) PayDay(i);
  2859. }
  2860. format(gstr, sizeof(gstr),"Todos receberam um Payday pelo Admin %s.",NameEx(playerid));
  2861. SendClientMessageToAllLogged(COLOR_RED,gstr);
  2862. AdminLog(playerid, 0, "", "Deu payday a todos");
  2863. }
  2864. else
  2865. {
  2866. new playa = -1;
  2867. if(!IsNumeric(towho)) playa = GetPlayerID(playerid, towho); else playa = strval(towho);
  2868. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  2869. if(!Logged{playa}) return SysMsg(playerid, NOPLAYER);
  2870. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  2871. PayDay(playa);
  2872. format(gstr, sizeof(gstr),"Admin %s te deu um Payday.",NameEx(playerid));
  2873. SendClientMessage(playa,COLOR_RED,gstr);
  2874. format(gstr, sizeof(gstr),"Você deu a %s um Payday.",NameEx(playa));
  2875. SendClientMessage(playerid,COLOR_RED,gstr);
  2876. AdminLog(playerid, SQLID[playa], GetName(playa), "Deu um Payday");
  2877. }
  2878. return true;
  2879. }
  2880. CMD:freezeall(playerid, params[])
  2881. {
  2882. if(!IsPlayerAdminLevelOK(playerid, 3)) return SysMsg(playerid, AUTHMSG);
  2883. new PsFrozen = 0;
  2884. foreach(new i: Player)
  2885. {
  2886. if(Logged{i})
  2887. {
  2888. TogglePlayerControllable(i,false);
  2889. PsFrozen ++;
  2890. }
  2891. }
  2892. format(gstr, sizeof(gstr),"Everyone(%i) Has Been Frozen By Admin %s.",PsFrozen,NameEx(playerid));
  2893. SendClientMessageToAllLogged(COLOR_RED,gstr);
  2894. AdminLog(playerid, 0, "", "Congelou todos");
  2895. return true;
  2896. }
  2897. CMD:unfreezeall(playerid, params[])
  2898. {
  2899. if(!IsPlayerAdminLevelOK(playerid, 3)) return SysMsg(playerid, AUTHMSG);
  2900. new PsunFrozen = 0;
  2901. foreach(new i: Player)
  2902. {
  2903. if(Logged{i})
  2904. {
  2905. TogglePlayerControllable(i,true);
  2906. PsunFrozen ++;
  2907. }
  2908. }
  2909. format(gstr, sizeof(gstr),"Everyone(%i) Has Been Un-Frozen By Admin %s.",PsunFrozen,NameEx(playerid));
  2910. SendClientMessageToAllLogged(COLOR_RED,gstr);
  2911. AdminLog(playerid, 0, "", "Descongelou todos");
  2912. return true;
  2913. }
  2914. CMD:slap(playerid, params[])
  2915. {
  2916. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  2917. new playa = -1;
  2918. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /slap [ID ou nome do jogador]");
  2919. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  2920. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  2921. if(IsJailed[playa] == 1) return SysMsg(playerid,"Aguarde o jogador sair da cadeia.");
  2922. if(IsCuffed[playa] == 1) return SysMsg(playerid,"Aguarde até que esse jogador seje desalgemado.");
  2923. new vehicleid = GetPlayerVehicleID(playa);
  2924. if(vehicleid == 0)
  2925. {
  2926. new Float:pX,Float:pY,Float:pZ;
  2927. GetPlayerPos(playa,pX,pY,pZ);
  2928. SetPlayerPos(playa,pX,pY,(pZ+5.0));
  2929. PlayerPlaySound(playa, SOUND_SLAP, 0,0,0);
  2930. //SendClientMessageF(playa, COLOR_LIGHTBLUE, "Admin %s has slapped you!",NameEx(playerid));
  2931. }
  2932. else
  2933. {
  2934. new Float:vX,Float:vY,Float:vZ;
  2935. GetVehicleVelocity(vehicleid,vX,vY,vZ);
  2936. SetVehicleVelocity(vehicleid,vX,vY,vZ+0.25);
  2937. PlayerPlaySound(playa, SOUND_SLAP, 0,0,0);
  2938. //SendClientMessageF(playa, COLOR_LIGHTBLUE, "Admin %s has slapped your vehicle!",NameEx(playerid));
  2939. }
  2940. return true;
  2941. }
  2942. CMD:slapdown(playerid, params[])
  2943. {
  2944. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  2945. new playa = -1;
  2946. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /slapdown [ID ou nome do jogador]");
  2947. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  2948. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  2949. if(IsJailed[playa] == 1) return SysMsg(playerid,"Aguarde o jogador sair da cadeia.");
  2950. if(IsCuffed[playa] == 1) return SysMsg(playerid,"Aguarde até que esse jogador seje desalgemado.");
  2951. new vehicleid = GetPlayerVehicleID(playa);
  2952. if(vehicleid == 0)
  2953. {
  2954. new Float:pX,Float:pY,Float:pZ;
  2955. GetPlayerPos(playa,pX,pY,pZ);
  2956. SetPlayerPos(playa,pX,pY,(pZ-1.0));
  2957. PlayerPlaySound(playa, SOUND_SLAP, 0,0,0);
  2958. //format(gstr, sizeof(gstr),"Admin %s has slapped you!",NameEx(playerid));
  2959. //SendClientMessage(playa,COLOR_LIGHTBLUE,gstr);
  2960. }
  2961. else
  2962. {
  2963. new Float:vX,Float:vY,Float:vZ;
  2964. GetVehicleVelocity(vehicleid,vX,vY,vZ);
  2965. SetVehicleVelocity(vehicleid,vX,vY,vZ-0.25);
  2966. PlayerPlaySound(playa, SOUND_SLAP, 0,0,0);
  2967. // format(gstr, sizeof(gstr),"Admin %s has slapped your vehicle!",NameEx(playerid));
  2968. //SendClientMessage(playa,COLOR_LIGHTBLUE,gstr);
  2969. }
  2970. return true;
  2971. }
  2972. CMD:doubleslap(playerid, params[])
  2973. {
  2974. if(!IsPlayerAdminLevelOK(playerid, 3)) return SysMsg(playerid, AUTHMSG);
  2975. new playa = -1;
  2976. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /doubleslap [ID ou nome do jogador]");
  2977. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  2978. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  2979. if(IsJailed[playa] == 1) return SysMsg(playerid,"Aguarde o jogador sair da cadeia.");
  2980. if(IsCuffed[playa] == 1) return SysMsg(playerid,"Aguarde até que esse jogador seje desalgemado.");
  2981. new vehicleid = GetPlayerVehicleID(playa);
  2982. if(vehicleid == 0)
  2983. {
  2984. new Float:pX,Float:pY,Float:pZ;
  2985. GetPlayerPos(playa,pX,pY,pZ);
  2986. SetPlayerPos(playa,pX,pY,(pZ+10.0));
  2987. PlayerPlaySound(playa, SOUND_SLAP, 0,0,0);
  2988. PlayerPlaySound(playa, SOUND_SLAP, 0,0,0);
  2989. //format(gstr, sizeof(gstr),"Admin %s has double-slapped you!",NameEx(playerid));
  2990. // SendClientMessage(playa,COLOR_LIGHTBLUE,gstr);
  2991. }
  2992. else
  2993. {
  2994. new Float:vX,Float:vY,Float:vZ;
  2995. GetVehicleVelocity(vehicleid,vX,vY,vZ);
  2996. SetVehicleVelocity(vehicleid,vX,vY,vZ+0.75);
  2997. PlayerPlaySound(playa, SOUND_SLAP, 0,0,0);
  2998. PlayerPlaySound(playa, SOUND_SLAP, 0,0,0);
  2999. //format(gstr, sizeof(gstr),"Admin %s tem duplo-sleep em seu veículo!",NameEx(playerid));
  3000. SendClientMessage(playa,COLOR_LIGHTBLUE,gstr);
  3001. }
  3002. return true;
  3003. }
  3004. CMD:uberslap(playerid, params[])
  3005. {
  3006. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  3007. new playa = -1;
  3008. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /uberslap [ID ou nome do jogador]");
  3009. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  3010. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  3011. if(IsJailed[playa] == 1) return SysMsg(playerid,"Aguarde o jogador sair da cadeia.");
  3012. if(IsCuffed[playa] == 1) return SysMsg(playerid,"Aguarde até que esse jogador seje desalgemado.");
  3013. new vehicleid = GetPlayerVehicleID(playa);
  3014. if(vehicleid == 0)
  3015. {
  3016. new Float:pX,Float:pY,Float:pZ;
  3017. GetPlayerPos(playa,pX,pY,pZ);
  3018. SetPlayerPos(playa,pX,pY,(pZ+30.0));
  3019. PlayerPlaySound(playa, SOUND_SLAP, 0,0,0);
  3020. PlayerPlaySound(playa, SOUND_SLAP, 0,0,0);
  3021. //format(gstr, sizeof(gstr),"Admin %s has uber-slapped you!",NameEx(playerid));
  3022. SendClientMessage(playa,COLOR_LIGHTBLUE,gstr);
  3023. }
  3024. else
  3025. {
  3026. new Float:vX,Float:vY,Float:vZ;
  3027. GetVehicleVelocity(vehicleid,vX,vY,vZ);
  3028. SetVehicleVelocity(vehicleid,vX,vY,vZ+5.0);
  3029. PlayerPlaySound(playa, SOUND_SLAP, 0,0,0);
  3030. PlayerPlaySound(playa, SOUND_SLAP, 0,0,0);
  3031. //format(gstr, sizeof(gstr),"Admin %s has uber-slapped your vehicle!",NameEx(playerid));
  3032. SendClientMessage(playa,COLOR_LIGHTBLUE,gstr);
  3033. }
  3034. return true;
  3035. }
  3036. CMD:queimadinheiro(playerid, params[])//parei aqui
  3037. {
  3038. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  3039. new playa = -1;
  3040. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /queimadinheiro [ID ou nome do jogador]");
  3041. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  3042. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  3043. BurningMoney[playa] = 1;
  3044. SendClientMessageF(playa, COLOR_YELLOW, "Admin %s Agora está queimando seu dinheiro! MWAHAHAHAHA!", NameEx(playerid));
  3045. SendClientMessageF(playerid, COLOR_YELLOW, "Você está queimando o dinheiro de %s.", NameEx(playa));
  3046. return true;
  3047. }
  3048. CMD:stopqueimardinheiro(playerid, params[])
  3049. {
  3050. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  3051. new playa = -1;
  3052. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /stopqueimardinheiro [ID ou nome do jogador]");
  3053. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  3054. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  3055. if(BurningMoney[playa] == 0) return SysMsg(playerid,"Players money is not burning.");
  3056. BurningMoney[playa] = 0;
  3057. format(gstr, sizeof(gstr), "Admin %s parou de queimar seu dinheiro!", NameEx(playerid));
  3058. SendClientMessage(playa, COLOR_YELLOW, gstr);
  3059. format(gstr, sizeof(gstr), "Você parou de queimar o dinheiro de %s.", NameEx(playa));
  3060. SendClientMessage(playerid, COLOR_YELLOW, gstr);
  3061. return true;
  3062. }
  3063. CMD:setmin(playerid, params[])
  3064. {
  3065. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  3066. if(isnull(params)) return SysMsg(playerid,"Use: /setmin [Minute]");
  3067. if(!IsNumeric(params)) return SysMsg(playerid,"O minuto deve ser um número.");
  3068. new Minute = strval(params);
  3069. if(Minute < 0 || Minute > 59) return SysMsg(playerid,"O minuto foi inválido (0 to 59)");
  3070. if(Minute == gServerMinute) return SysMsg(playerid,"Minute já está configurado para isso.");
  3071. gServerMinute = Minute;
  3072. format(gstr, sizeof(gstr),"[Admin] %s mudou o minuto para %i.",NameEx(playerid),Minute);
  3073. AdminBroadcast(gstr, 0);
  3074. format(gstr, sizeof(gstr), "Minuto modificado para %i", Minute);
  3075. AdminLog(playerid, 0, "", gstr);
  3076. return true;
  3077. }
  3078. CMD:setgravity(playerid, params[])
  3079. {
  3080. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  3081. new Float:Grav;
  3082. if(sscanf(params, "f", Grav)) return SysMsg(playerid,"Use: /setgravity [Float:Value]");
  3083. SetGravity(Grav);
  3084. format(gstr, sizeof(gstr),"Admin %s mudou a gravidade para %.6f.",NameEx(playerid),Grav);
  3085. SendClientMessageToAllLogged(COLOR_LIGHTBLUE,gstr);
  3086. format(gstr, sizeof(gstr), "Mudou a gravidade para %.6f", Grav);
  3087. AdminLog(playerid, 0, "", gstr);
  3088. return true;
  3089. }
  3090. CMD:xyz(playerid, params[])
  3091. {
  3092. if(!IsPlayerAdmin(playerid) && !IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  3093. new Float:X, Float:Y, Float:Z;
  3094. if(sscanf(params, "fff", X, Y, Z)) return SysMsg(playerid,"Use: /xyz [Float:X] [Float:Y] [Float:Z]");
  3095. SetPlayerPos(playerid, X, Y, Z);
  3096. return true;
  3097. }
  3098. CMD:tc(playerid, params[])
  3099. {
  3100. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  3101. SysMsgF(playerid, "Contagem de tiques = %i", GetTickCount());
  3102. return true;
  3103. }
  3104. CMD:setserversenha(playerid, params[])
  3105. {
  3106. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  3107. if(isnull(params)) return SysMsg(playerid,"Use: /setserversenha [senha]");
  3108. format(gstr, sizeof(gstr),"senha %s",params);
  3109. SendRconCommand(gstr);
  3110. SysMsgF(playerid, "Nova senha do servidor: %s.",params);
  3111. AdminLog(playerid, 0, "", "Mudou a senha do servidor");
  3112. return true;
  3113. }
  3114. CMD:saction(playerid, params[])
  3115. {
  3116. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  3117. new vehicleid = GetPlayerVehicleID(playerid);
  3118. if(vehicleid > 0) return SysMsg(playerid,"Você não deve estar em um veículo.");
  3119. if(isnull(params)) return SysMsg(playerid,"Use: /saction [id]");
  3120. if(!IsNumeric(params)) return SysMsg(playerid,"ID deve ser um número.");
  3121. SetPlayerSpecialAction(playerid, strval(params));
  3122. return true;
  3123. }
  3124. CMD:anim(playerid, params[])
  3125. {
  3126. if(!IsPlayerAdminLevelOK(playerid, 4)) return SysMsg(playerid, AUTHMSG);
  3127. new lib[30], aname[30];
  3128. if(sscanf(params, "s[30]s[30]", lib, aname)) return SysMsg(playerid,"Use: /anim [library] [nome]");
  3129. OnePlayAnim(playerid, lib, aname, 3.5, 1, 0, 0, 0, 0);
  3130. return true;
  3131. }
  3132. CMD:tooc(playerid, params[])
  3133. {
  3134. if(!IsPlayerAdminLevelOK(playerid, 3)) return SysMsg(playerid, AUTHMSG);
  3135. if(ToggleOOC == 0)
  3136. {
  3137. ToggleOOC = 1;
  3138. SendClientMessageToAllLogged(COLOR_WHITE, "Global OOC chat ativada por um administrador.");
  3139. AdminLog(playerid, 0, "", "Ativado global OOC");
  3140. }
  3141. else
  3142. {
  3143. ToggleOOC = 0;
  3144. SendClientMessageToAllLogged(COLOR_WHITE, "Global OOC Chat Desabilitado por um administrador.");
  3145. AdminLog(playerid, 0, "", "Desativado global OOC");
  3146. }
  3147. return true;
  3148. }
  3149. CMD:tbc(playerid, params[])
  3150. {
  3151. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  3152. if(ToggleBC == 0)
  3153. {
  3154. ToggleBC = 1;
  3155. AdminBroadcast("[Admin] Broadcasting Ativado por um administrador.", 1);
  3156. AdminLog(playerid, 0, "", "Ativado broadcasts");
  3157. }
  3158. else
  3159. {
  3160. ToggleBC = 0;
  3161. AdminBroadcast("[Admin] Broadcasting Desabilitado por um administrador.", 1);
  3162. AdminLog(playerid, 0, "", "Desativado broadcasts");
  3163. }
  3164. return true;
  3165. }
  3166. CMD:reloadfcars(playerid, params[])//regarregar veiculos de facção refreshfcars
  3167. {
  3168. if(!Logged{playerid}) return true;
  3169. if(!IsPlayerAdminLevelOK(playerid, 4)) return SysMsg(playerid, AUTHMSG);
  3170. new fid;
  3171. if(sscanf(params, "i", fid)) return SysMsg(playerid, "Use: /refreshfcars [facção ID]");
  3172. if(fid <= 0 || fid > MAX_FACTIONS-1) return SysMsg(playerid,"Número de facção inválido (check /fids)");
  3173. for(new v = 1, x = GetVehiclePoolSize(); v <= x; v++)
  3174. {
  3175. if(FVehicleData[v][FVFaction] == fid)
  3176. {
  3177. DestroyVehicleEx(v, "v 2");
  3178. ClearVehicleData(v);
  3179. }
  3180. }
  3181. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM fveh WHERE Faction = %i", fid);
  3182. mysql_pquery(conn, mquery, "LoadFactionVehicles");
  3183. foreach(new i: Player)
  3184. {
  3185. if(IsPlayerAdminLevelOK(i, 1) || Faction[i] == fid)
  3186. {
  3187. SendClientMessageF(i, COLOR_RED, "Admin %s atualizou os veículos das facções de %s", NameEx(playerid), FACTIONS[fid][FactionName]);
  3188. }
  3189. }
  3190. return true;
  3191. }
  3192. CMD:respawnvf (playerid, params[]) //respawnar veiculo de facção
  3193. {
  3194. if(!Logged{playerid}) return true;
  3195. if(!IsPlayerAdminLevelOK(playerid, 2)) return SysMsg(playerid, AUTHMSG);
  3196. new vehicle[10], option[10];
  3197. if(sscanf(params, "s[10]S(-1)[10]", vehicle, option)) return SysMsg(playerid,"Use: /respawnvf [Veiculo ID ou Todos] [ID de facção se respawning todos]");
  3198. if(strcmp("all", vehicle, true) == 0 && strcmp("todos", option, true) == 0)
  3199. {
  3200. for(new v = 1, x = GetVehiclePoolSize(); v <= x; v++)
  3201. {
  3202. if(IsVehicleSpawned(v) && FVehicleData[v][FVFaction] != 0)
  3203. {
  3204. if(VehicleBeingTowed(v)) continue;
  3205. if(VehicleIsOccupied(v)) continue;
  3206. RespawnFactionCar(v);
  3207. }
  3208. }
  3209. SendClientMessageToAllLoggedF(COLOR_RED, "Admin %s respawnou TODOS os veículos de facção desocupados.", NameEx(playerid));
  3210. }
  3211. else if(strcmp("todos", vehicle, true) == 0)
  3212. {
  3213. if(strcmp(option, "-1", true) == 0 || !IsNumeric(option)) return SysMsg(playerid,"Use: /respawnvf todos [facção id]");
  3214. new fid = strval(option);
  3215. if(fid <= 0 || fid > MAX_FACTIONS-1) return SysMsg(playerid,"Número de facção inválido (check /fids)");
  3216. new vcount = 0, tcount = 0;
  3217. for(new v = 1, x = GetVehiclePoolSize(); v <= x; v++)
  3218. {
  3219. if(IsVehicleSpawned(v) && FVehicleData[v][FVFaction] == fid && !FVehicleData[v][FImpounded])
  3220. {
  3221. tcount ++;
  3222. if(VehicleBeingTowed(v)) continue;
  3223. if(VehicleIsOccupied(v)) continue;
  3224. vcount ++;
  3225. RespawnFactionCar(v);
  3226. }
  3227. }
  3228. foreach(new i: Player) if(Logged{i} && Faction[i] == fid || playerid == i) SendClientMessageF(i, COLOR_ORANGE, "[Mensagem de facção] %s respawnou %i veiculos da facção %i.", NameEx(playerid), vcount, tcount);
  3229. }
  3230. else
  3231. {
  3232. new v = strval(vehicle);
  3233. if(IsVehicleSpawned(v) && FVehicleData[v][FVFaction] >= 1)
  3234. {
  3235. if(VehicleBeingTowed(v)) return SysMsg(playerid, "Você não pode respawnar um veículo que está sendo rebocado.");
  3236. if(VehicleIsOccupied(v)) return SysMsg(playerid, "Você não pode respawnar um veículo que está ocupado.");
  3237. if(FVehicleData[v][FImpounded]) return SysMsg(playerid, "Você não pode respawnar um veiculo confiscado.");
  3238. RespawnFactionCar(v);
  3239. SendClientMessage(playerid, COLOR_ORANGE, "O veículo foi respawnado.");
  3240. }
  3241. }
  3242. return true;
  3243. }
  3244. CMD:vid(playerid, params[])
  3245. {
  3246. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  3247. new VehId = GetPlayerVehicleID(playerid), Model = GetVehicleModel(VehId), Float:Pos[4], SurfingID = GetPlayerSurfingVehicleID(playerid), SeatID = GetPlayerVehicleSeat(playerid), cols[2];
  3248. GetVehiclePos(VehId,Pos[0],Pos[1],Pos[2]);
  3249. GetVehicleZAngle(VehId,Pos[3]);
  3250. GetVehicleColors(VehId, cols[0], cols[1]);
  3251. SysMsgF(playerid,"Veiculo ID: %i (Surfing ID: %i) | Model ID: %i | Meu lugar ID: %i | Pos: [X]%f, [Y]%f, [Z]%f, [ZA]%f",VehId,SurfingID,Model,SeatID,Pos[0],Pos[1],Pos[2],Pos[3]);
  3252. if(VehId > 0) SysMsgF(playerid,"%s: Janelas: %i(Estado: %i), Motor: %i(Estado: %i), Porta-malas: %i, Assento: %i, Cor: %i,%i", GetVehicleName(VehId),VehicleHasWindows(VehId),WindowState{VehId},VehicleHasEngine(VehId),EngineStatus[VehId],VehicleHasTrunk(VehId),GetVehicleSeatCount(VehId),cols[0],cols[1]);
  3253. return true;
  3254. }
  3255. CMD:vdamage(playerid, params[])
  3256. {
  3257. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  3258. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você precisa estar em um veiculo.");
  3259. new VehId = GetPlayerVehicleID(playerid);
  3260. new panels, doors, lights, tires;
  3261. GetVehicleDamageStatus(VehId, panels, doors, lights, tires);
  3262. SysMsgF(playerid,"[%s damage] Painéis: %i, Portas: %i, Luzes: %i, Pneus: %i", GetVehicleName(VehId), panels, doors, lights, tires);
  3263. return true;
  3264. }
  3265. CMD:avfechar(playerid, params[])
  3266. {
  3267. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  3268. new VehId = GetPlayerVehicleID(playerid);
  3269. if(VehId == 0) return SysMsg(playerid,"Você precisa estar próximo ao veiculo para fechar.");
  3270. if(Locked{VehId}) return SysMsgF(playerid,"[%s] Já está fechado.",GetVehicleName(VehId));
  3271. Locked{VehId} = true;
  3272. AdminLocked{VehId} = true;
  3273. ToggleVehicleLock(VehId, 1);
  3274. SendClientMessage(playerid, COLOR_GREEN, "> Veiculo Fechado. (Admin)");
  3275. return true;
  3276. }
  3277. CMD:avabrir(playerid, params[])//abrir e fechar veiculo admin /avabrir //aabrir
  3278. {
  3279. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  3280. new VehId = GetPlayerVehicleID(playerid);
  3281. if(VehId > 0)
  3282. {
  3283. if(!Locked{VehId}) return SysMsgF(playerid,"[%s] Já está destrancado.",GetVehicleName(VehId));
  3284. Locked{VehId} = false;
  3285. AdminLocked{VehId} = false;
  3286. ToggleVehicleLock(VehId, 0);
  3287. SendClientMessage(playerid, COLOR_GREEN, "> Veiculo Aberto. (Admin)");
  3288. }
  3289. else if(VehId == 0)
  3290. {
  3291. new v = GetClosestVehicle(playerid);
  3292. if(AdminLocked{v})
  3293. {
  3294. new Float:vPos[3];
  3295. GetVehiclePos(v, vPos[0], vPos[1], vPos[2]);
  3296. if(IsPlayerInRangeOfPoint(playerid, 10.0, vPos[0], vPos[1], vPos[2]))
  3297. {
  3298. Locked{v} = false;
  3299. AdminLocked{v} = false;
  3300. ToggleVehicleLock(v, 0);
  3301. SendClientMessage(playerid, COLOR_GREEN, "> Veiculo Aberto. (Admin)");
  3302. }
  3303. }
  3304. }
  3305. return true;
  3306. }
  3307. CMD:cars(playerid, params[])
  3308. {
  3309. if(!IsPlayerAdminLevelOK(playerid, 1) && !IsHelper{playerid}) return SysMsg(playerid, AUTHMSG);
  3310. new playa;
  3311. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /cars [ID ou nome do jogador]");
  3312. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  3313. if(IsHelper{playerid} && playa != IsAssisting[playerid]) return SysMsg(playerid, "Você não pode usar este comando em um jogador que você não está ajudando.");
  3314. new lockedTxt[9], Vcount = 0, sub[100];
  3315. gstr[0] = EOS;
  3316. for(new v = 1, x = GetVehiclePoolSize(); v <= x; v++)
  3317. {
  3318. if(Vcount < MAX_VEH_PER_PLAYER)
  3319. {
  3320. if(VehicleData[v][VehicleOwnerSQLID] == SQLID[playa])
  3321. {
  3322. if(VehicleData[v][IdVehicle] > 0)
  3323. {
  3324. if(Locked{v}) lockedTxt = "Locked";
  3325. else lockedTxt = "Unlocked";
  3326. if(VehicleData[v][Hotwired] == 1) lockedTxt = "Stolen";
  3327. Vcount ++;
  3328. format(sub, sizeof(sub), "%s - %s (ID: %i Slot: %i Reg: %s)\n", GetVehicleNameEx(VehicleData[v][VehicleModel]), lockedTxt, VehicleData[v][IdVehicle], v, VehicleData[v][RegPlate]);
  3329. strcat(gstr, sub);
  3330. }
  3331. }
  3332. else if(ImpoundData[v][iOwnerSQLID] == SQLID[playa])
  3333. {
  3334. if(ImpoundData[v][iImpoundTime] < 1) ImpoundData[v][iImpoundTime] = 0;
  3335. if(ImpoundData[v][iImpoundTime] == 0) format(sub, sizeof(sub), "%s - Atualmente confinado (Aguardando busca)\n", GetVehicleNameEx(ImpoundData[v][iModel]));
  3336. else format(sub, sizeof(sub), "%s - Atualmente confinado (%i minutos restantes)\n", GetVehicleNameEx(ImpoundData[v][iModel]), ImpoundData[v][iImpoundTime]);
  3337. Vcount++;
  3338. strcat(gstr, sub);
  3339. }
  3340. if(RepairData[v][rOwnerSQLID] == SQLID[playa])
  3341. {
  3342. if(RepairData[v][rTime] < gettime()) format(sub, sizeof(sub), "%s - Sendo trabalhado em %s (Aguardando busca)\n", GetVehicleNameEx(RepairData[v][rModel]), GetRepairGarageName(RepairData[v][rGarage]));
  3343. else format(sub, sizeof(sub), "%s - Sendo trabalhado no %s\n", GetVehicleNameEx(RepairData[v][rModel]), GetRepairGarageName(RepairData[v][rGarage]));
  3344. Vcount++;
  3345. strcat(gstr, sub);
  3346. }
  3347. }
  3348. }
  3349. mysql_format(conn, mquery, sizeof(mquery), "SELECT VehicleModel FROM vehicles WHERE NeedsRecovery = 1 AND OwnerSQLID = %i", SQLID[playa]);
  3350. mysql_pquery(conn, mquery, "TheirCarsRecovery", "iisi", playerid, playa, gstr, Vcount);
  3351. return true;
  3352. }
  3353. CMD:gof(playerid, params[])
  3354. {
  3355. if(!Logged{playerid}) return true;
  3356. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  3357. new Float:Dist, playa = -1;
  3358. if(sscanf(params, "fU(-1)", Dist, playa)) Dist = 3.0;
  3359. if(InvalidPlayer(playa)) playa = playerid;
  3360. new Float:X, Float:Y, Float:Z, Float:Ang;
  3361. GetPlayerPos(playa, X, Y, Z);
  3362. Ang = GetXYInFrontOfPlayer(playa, X, Y, Dist);
  3363. SetPlayerPos(playa, X, Y, Z);
  3364. SetPlayerFacingAngle(playa, Ang);
  3365. return true;
  3366. }
  3367. CMD:goup(playerid, params[])
  3368. {
  3369. if(!Logged{playerid}) return true;
  3370. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  3371. new Float:Dist, playa = -1;
  3372. if(sscanf(params, "fU(-1)", Dist, playa)) Dist = 3.0;
  3373. if(InvalidPlayer(playa)) playa = playerid;
  3374. SetPlayerPos(playa, PlayerPosX(playa), PlayerPosY(playa), PlayerPosZ(playa) + Dist);
  3375. return true;
  3376. }
  3377. CMD:godown(playerid, params[])
  3378. {
  3379. if(!Logged{playerid}) return true;
  3380. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  3381. new Float:Dist, playa = -1;
  3382. if(sscanf(params, "fU(-1)", Dist, playa)) Dist = 3.0;
  3383. if(InvalidPlayer(playa)) playa = playerid;
  3384. SetPlayerPos(playa, PlayerPosX(playa), PlayerPosY(playa), PlayerPosZ(playa) - Dist);
  3385. return true;
  3386. }
  3387. CMD:tele(playerid, params[]) return cmd_teleporte(playerid, params);
  3388. CMD:tp(playerid, params[]) return cmd_teleporte(playerid, params);
  3389. CMD:teleporte(playerid, params[])
  3390. {
  3391. gstr[0] = EOS;
  3392. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  3393. new playa = -1;
  3394. if(sscanf(params, "u", playa))
  3395. {
  3396. for(new i = 0; i < sizeof(Teleports); i++)
  3397. {
  3398. format(tgstr, sizeof(tgstr), "%s\n", Teleports[i][TPName]);
  3399. strcat(gstr, tgstr);
  3400. }
  3401. new vehicleid = GetPlayerVehicleID(playerid);
  3402. if(vehicleid != 0) SetPVarInt(playerid, "tpVID", vehicleid);
  3403. SetPVarInt(playerid, "tpID", playerid);
  3404. Dialog_Show(playerid, TPList, DIALOG_STYLE_LIST, "Teleporta você mesmo ...", gstr, "Teleporte", "Cancelar");
  3405. return true;
  3406. }
  3407. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  3408. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  3409. if(IsJailed[playa] == 1) return SysMsg(playerid,"Este jogador está em jail.");
  3410. if(IsCuffed[playa] == 1) return SysMsg(playerid,"That player is in cuffs.");
  3411. new vehicleid = GetPlayerVehicleID(playa);
  3412. if(vehicleid != 0) SetPVarInt(playerid, "tpVID", vehicleid);
  3413. SetPVarInt(playerid, "tpID", playa);
  3414. for(new i = 0; i < sizeof(Teleports); i++)
  3415. {
  3416. format(tgstr, sizeof(tgstr), "%s\n", Teleports[i][TPName]);
  3417. strcat(gstr, tgstr);
  3418. }
  3419. Dialog_Show(playerid, TPList, DIALOG_STYLE_LIST, "Teleporta Jogador ...", gstr, "Teleporte", "Cancelar");
  3420. return true;
  3421. }
  3422. CMD:tpto(playerid, params[])
  3423. {
  3424. if(!Logged{playerid}) return true;
  3425. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  3426. if(isnull(params)) return SysMsg(playerid, "Use: /tpto [nome de teletransporte da lista do /tp] *Use /tptop para outros jogadores*");
  3427. new p = -1;
  3428. for(new x = 0; x < sizeof(Teleports); x++)
  3429. {
  3430. if(strfind(Teleports[x][TPName], params, true) != -1)
  3431. {
  3432. p = x;
  3433. break;
  3434. }
  3435. }
  3436. if(p == -1) return SysMsg(playerid, "Não é possível encontrar o nome teleport.");
  3437. if(IsPlayerInAnyVehicle(playerid))
  3438. {
  3439. new v = GetPlayerVehicleID(playerid);
  3440. SetVehiclePos(v, Teleports[p][TPx],Teleports[p][TPy],Teleports[p][TPz]);
  3441. foreach(new i: Player)
  3442. {
  3443. if(IsPlayerInVehicle(i, v))
  3444. {
  3445. SetPlayerVirtualWorldEx(i ,Teleports[p][TPVw]);
  3446. SetPlayerInterior(i, Teleports[p][TPInt]);
  3447. }
  3448. }
  3449. LinkVehicleToInteriorEx(v, Teleports[p][TPInt]);
  3450. SetVehicleVirtualWorld(v, Teleports[p][TPVw]);
  3451. if(IsInHouseID[playerid] != -1) IsInHouseID[playerid] = -1;
  3452. if(IsInBizzID[playerid] != -1) IsInBizzID[playerid] = -1;
  3453. if(IsInGarageID[playerid] != -1) IsInGarageID[playerid] = -1;
  3454. SendClientMessageF(playerid, COLOR_LIGHTBLUE, "Admin %s teleportou você para %s.",NameEx(playerid),Teleports[p][TPName]);
  3455. format(gstr, sizeof(gstr),"[Admin] %s teleportou %s para %s", NameEx(playerid),NameEx(playerid),Teleports[p][TPName]);
  3456. AdminBroadcast(gstr, 1);
  3457. format(gstr, sizeof(gstr), "Teleportado para %s", Teleports[p][TPName]);
  3458. AdminLog(playerid, SQLID[playerid], GetName(playerid), gstr);
  3459. return true;
  3460. }
  3461. else
  3462. {
  3463. SetPlayerPos(playerid,Teleports[p][TPx],Teleports[p][TPy],Teleports[p][TPz]);
  3464. SetPlayerFacingAngle(playerid,Teleports[p][TPa]);
  3465. SetPlayerInterior(playerid,Teleports[p][TPInt]);
  3466. SetPlayerVirtualWorldEx(playerid,Teleports[p][TPVw]);
  3467. if(IsInHouseID[playerid] != -1) IsInHouseID[playerid] = -1;
  3468. if(IsInBizzID[playerid] != -1) IsInBizzID[playerid] = -1;
  3469. if(IsInGarageID[playerid] != -1) IsInGarageID[playerid] = -1;
  3470. JourneyInterior[playerid] = 0;
  3471. ShamalInterior[playerid] = 0;
  3472. TropicInterior[playerid] = 0;
  3473. TrailerInterior[playerid] = 0;
  3474. SendClientMessageF(playerid,COLOR_LIGHTBLUE, "Admin %s teleportou você para %s.",NameEx(playerid), Teleports[p][TPName]);
  3475. format(gstr, sizeof(gstr),"[Admin] %s teleportou %s para %s.",NameEx(playerid),NameEx(playerid), Teleports[p][TPName]);
  3476. AdminBroadcast(gstr, 1);
  3477. format(gstr, sizeof(gstr), "Teleportado para %s", Teleports[p][TPName]);
  3478. AdminLog(playerid, SQLID[playerid], GetName(playerid), gstr);
  3479. return true;
  3480. }
  3481. }
  3482. CMD:tptop(playerid, params[])//teleportar jogador
  3483. {
  3484. if(!Logged{playerid}) return true;
  3485. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  3486. new loc[32], player = -1;
  3487. if(sscanf(params, "us[32]", player, loc)) return SysMsg(playerid, "Use: /tptop [ID ou nome do jogador] [teleport nome de /tp list]");
  3488. if(InvalidPlayer(player)) return SysMsg(playerid, NOPLAYER);
  3489. new p = -1;
  3490. for(new x = 0; x < sizeof(Teleports); x++)
  3491. {
  3492. if(strfind(Teleports[x][TPName], loc, true) != -1)
  3493. {
  3494. p = x;
  3495. break;
  3496. }
  3497. }
  3498. if(p == -1) return SysMsg(playerid, "Não é possível encontrar o nome teleporte.");
  3499. if(IsPlayerInAnyVehicle(player))
  3500. {
  3501. new v = GetPlayerVehicleID(player);
  3502. SetVehiclePos(v, Teleports[p][TPx],Teleports[p][TPy],Teleports[p][TPz]);
  3503. foreach(new i: Player)
  3504. {
  3505. if(IsPlayerInVehicle(i, v))
  3506. {
  3507. SetPlayerVirtualWorldEx(i ,Teleports[p][TPVw]);
  3508. SetPlayerInterior(i, Teleports[p][TPInt]);
  3509. }
  3510. }
  3511. LinkVehicleToInteriorEx(v, Teleports[p][TPInt]);
  3512. SetVehicleVirtualWorld(v, Teleports[p][TPVw]);
  3513. if(IsInHouseID[player] != -1) IsInHouseID[player] = -1;
  3514. if(IsInBizzID[player] != -1) IsInBizzID[player] = -1;
  3515. if(IsInGarageID[player] != -1) IsInGarageID[player] = -1;
  3516. SendClientMessageF(player, COLOR_LIGHTBLUE, "Admin %s teleportou você para %s.",NameEx(playerid),Teleports[p][TPName]);
  3517. format(gstr, sizeof(gstr),"[Admin] %s teleportou %s para %s", NameEx(playerid),NameEx(player),Teleports[p][TPName]);
  3518. AdminBroadcast(gstr, 1);
  3519. format(gstr, sizeof(gstr), "Teleportado para %s", Teleports[p][TPName]);
  3520. AdminLog(playerid, SQLID[player], GetName(player), gstr);
  3521. return true;
  3522. }
  3523. else
  3524. {
  3525. SetPlayerPos(player,Teleports[p][TPx],Teleports[p][TPy],Teleports[p][TPz]);
  3526. SetPlayerFacingAngle(player,Teleports[p][TPa]);
  3527. SetPlayerInterior(player,Teleports[p][TPInt]);
  3528. SetPlayerVirtualWorldEx(player,Teleports[p][TPVw]);
  3529. if(IsInHouseID[player] != -1) IsInHouseID[player] = -1;
  3530. if(IsInBizzID[player] != -1) IsInBizzID[player] = -1;
  3531. if(IsInGarageID[player] != -1) IsInGarageID[player] = -1;
  3532. JourneyInterior[player] = 0;
  3533. ShamalInterior[player] = 0;
  3534. TropicInterior[player] = 0;
  3535. TrailerInterior[player] = 0;
  3536. SendClientMessageF(player,COLOR_LIGHTBLUE, "Admin %s teleportou você para %s.",NameEx(playerid), Teleports[p][TPName]);
  3537. format(gstr, sizeof(gstr),"[Admin] %s teleportou %s para %s.",NameEx(playerid),NameEx(player), Teleports[p][TPName]);
  3538. AdminBroadcast(gstr, 1);
  3539. format(gstr, sizeof(gstr), "Teleportado para %s", Teleports[p][TPName]);
  3540. AdminLog(playerid, SQLID[player], GetName(player), gstr);
  3541. return true;
  3542. }
  3543. }
  3544. CMD:trazer(playerid, params[])
  3545. {
  3546. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  3547. if(IsJailed[playerid] == 1) return SysMsg(playerid,"Aguarde até sair da prisão.");
  3548. if(IsCuffed[playerid] == 1) return SysMsg(playerid,"Esta ação não pode ser executada enquanto você estiver em algemas.");
  3549. new playa = -1;
  3550. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /trazer [ID ou nome do jogador]");
  3551. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  3552. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  3553. if(IsJailed[playa] == 1) return SysMsg(playerid,"Este jogador está em jail.");
  3554. if(IsSpectating[playa] >= 0) return SysMsg(playerid,"Você não pode usar este comando em uma pessoa spectando.");
  3555. new Float:pX,Float:pY,Float:pZ;
  3556. new InteriorId,VirtualWorldId;
  3557. GetPlayerPos(playerid,pX,pY,pZ);
  3558. InteriorId = GetPlayerInterior(playerid);
  3559. VirtualWorldId = GetPlayerVirtualWorld(playerid);
  3560. if(!IsPlayerInAnyVehicle(playa)) Teleport(playa, pX + 1.0, pY + 1.0, pZ + 2.0, 0.0, InteriorId, VirtualWorldId);
  3561. else
  3562. {
  3563. new TargetsVehicleId = GetPlayerVehicleID(playa);
  3564. SetVehiclePos(TargetsVehicleId, pX + 2.0, pY + 2.0, pZ + 5.0);
  3565. SetVehicleVirtualWorld(TargetsVehicleId, VirtualWorldId);
  3566. LinkVehicleToInteriorEx(TargetsVehicleId, InteriorId);
  3567. SetPlayerVirtualWorldEx(playa, VirtualWorldId);
  3568. SetPlayerInterior(playa, InteriorId);
  3569. }
  3570. if(IsInHouseID[playa] != -1)
  3571. {
  3572. if(HouseData[IsInHouseID[playa]][HMusicPlaying] == 1)
  3573. {
  3574. StopAudioStreamForPlayer(playa);
  3575. }
  3576. }
  3577. if(IsInHouseID[playerid] != -1)
  3578. {
  3579. IsInHouseID[playa] = IsInHouseID[playerid];
  3580. if(HouseData[IsInHouseID[playerid]][HMusicPlaying] == 1)
  3581. {
  3582. StopAudioStreamForPlayer(playa);
  3583. PlayAudioStreamForPlayerEx(playa, HouseData[IsInHouseID[playerid]][HMusic]);
  3584. ListeningBoom[playa] = -1;
  3585. }
  3586. }
  3587. if(IsInBizzID[playa] != -1)
  3588. {
  3589. if(BizzData[IsInBizzID[playa]][BMusicPlaying] == 1)
  3590. {
  3591. StopAudioStreamForPlayer(playa);
  3592. }
  3593. }
  3594. if(IsInBizzID[playerid] != -1)
  3595. {
  3596. IsInBizzID[playa] = IsInBizzID[playerid];
  3597. if(BizzData[IsInBizzID[playerid]][BMusicPlaying] == 1)
  3598. {
  3599. StopAudioStreamForPlayer(playa);
  3600. PlayAudioStreamForPlayerEx(playa, BizzData[IsInBizzID[playerid]][BMusic]);
  3601. ListeningBoom[playa] = -1;
  3602. }
  3603. }
  3604. if(IsInGarageID[playerid] != -1)
  3605. {
  3606. IsInGarageID[playa] = IsInGarageID[playerid];
  3607. }
  3608. JourneyInterior[playa] = JourneyInterior[playerid];
  3609. ShamalInterior[playa] = ShamalInterior[playerid];
  3610. TropicInterior[playa] = TropicInterior[playerid];
  3611. TrailerInterior[playa] = TrailerInterior[playerid];
  3612. SendClientMessageF(playa, COLOR_LIGHTBLUE, "Admin %s te teleportou a sua posição.",NameEx(playerid));
  3613. SendClientMessageF(playerid, COLOR_LIGHTGREEN, "Você teleportou o jogador %s para sua posição.",NameEx(playa));
  3614. AdminLog(playerid, SQLID[playa], GetName(playa), "Jogador puxado");
  3615. return true;
  3616. }
  3617. CMD:vget(playerid, params[])
  3618. {
  3619. new vehicleid, player;
  3620. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  3621. if(sscanf(params, "ii", player, vehicleid)) return SysMsg(playerid, "Use: /vget [playerid] [vehicleid]");
  3622. if(InvalidPlayer(player)) return SysMsg(playerid,"ID inválido.");
  3623. if(IsPlayerNPC(player)) return SysMsg(playerid,"Esse jogador é um NPC.");
  3624. if(!Logged{player}) return SysMsg(playerid,"Não está logado");
  3625. if(vehicleid < 1 || vehicleid > MAX_VEHICLES || !IsVehicleSpawned(vehicleid)) return SysMsg(playerid, "You have specified an Veiculo ID inválido.");
  3626. if(IsPlayerInAnyVehicle(player)) return SysMsg(playerid, "Esse jogador já está em um veículo.");
  3627. new seatid = GetVehicleAvailableSeat(vehicleid);
  3628. if(seatid == -1) return SysMsg(playerid, "Não há lugares para entrar.");
  3629. PutPlayerInVehicle(player, vehicleid, seatid);
  3630. return true;
  3631. }
  3632. CMD:ir(playerid, params[])
  3633. {
  3634. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  3635. new playa = -1, playa2 = -1;
  3636. if(sscanf(params, "uU(-1)", playa, playa2)) return SysMsg(playerid,"Use: /ir [ID do jogador] [Optional: Jogador sendo teletransportado]");
  3637. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  3638. if(IsSpectating[playa] >= 0) return SysMsg(playerid, "Você não pode se teletransportar para alguém enquanto está vislumbrando outro jogador.");
  3639. if(!Logged{playa}) return SysMsg(playerid, "Este jogador não iniciou sessão (Não está logado).");
  3640. new Float:pX, Float:pY, Float:pZ;
  3641. if(playa2 == -1)
  3642. {
  3643. GetPlayerPos(playa,pX,pY,pZ);
  3644. if(IsSpectating[playerid] >= 0) cmd_spectateoff(playerid);
  3645. if(IsPlayerInAnyVehicle(playerid))
  3646. {
  3647. SetVehiclePos(GetPlayerVehicleID(playerid),pX + 3.5,pY + 3.5,pZ);
  3648. SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),GetPlayerVirtualWorld(playa));
  3649. LinkVehicleToInteriorEx(GetPlayerVehicleID(playerid), GetPlayerInterior(playa));
  3650. SetPlayerInterior(playerid,GetPlayerInterior(playa));
  3651. SetPlayerVirtualWorldEx(playerid,GetPlayerVirtualWorld(playa));
  3652. }
  3653. else Teleport(playerid, pX+2, pY+2, pZ, 0.0, GetPlayerInterior(playa), GetPlayerVirtualWorld(playa));
  3654. SendClientMessageF(playerid, COLOR_LIGHTGREEN,"Você se teleportou até %s", NameEx(playa));
  3655. SendClientMessageF(playa, COLOR_SKYBLUE, "Admin %s se teleportou a sua posição.", NameEx(playerid));
  3656. IsInHouseID[playerid] = IsInHouseID[playa];
  3657. IsInBizzID[playerid] = IsInBizzID[playa];
  3658. IsInGarageID[playerid] = IsInGarageID[playa];
  3659. if(IsInHouseID[playa] != -1)
  3660. {
  3661. StopAudioStreamForPlayer(playerid);
  3662. if(HouseData[IsInHouseID[playa]][HMusicPlaying] == 1) PlayAudioStreamForPlayerEx(playerid, HouseData[IsInHouseID[playa]][HMusic]);
  3663. }
  3664. if(IsInBizzID[playa] != -1)
  3665. {
  3666. StopAudioStreamForPlayer(playerid);
  3667. if(BizzData[IsInBizzID[playa]][BMusicPlaying] == 1) PlayAudioStreamForPlayerEx(playerid, BizzData[IsInBizzID[playa]][BMusic]);
  3668. }
  3669. JourneyInterior[playerid] = 0;
  3670. ShamalInterior[playerid] = 0;
  3671. TropicInterior[playerid] = 0;
  3672. TrailerInterior[playerid] = 0;
  3673. format(gstr, sizeof(gstr), "Jogador teleportado", GetName(playa));
  3674. AdminLog(playerid, SQLID[playa], GetName(playa), "Jogador teleportado");
  3675. }
  3676. else if(IsPlayerConnected(playa2))
  3677. {
  3678. GetPlayerPos(playa,pX,pY,pZ);
  3679. if(IsSpectating[playa2] >= 0) cmd_spectateoff(playa2);
  3680. if(IsPlayerInAnyVehicle(playa2))
  3681. {
  3682. SetVehiclePos(GetPlayerVehicleID(playa2),pX + 3.5,pY + 3.5,pZ);
  3683. SetVehicleVirtualWorld(GetPlayerVehicleID(playa2),GetPlayerVirtualWorld(playa));
  3684. LinkVehicleToInteriorEx(GetPlayerVirtualWorld(playa2), GetPlayerInterior(playa));
  3685. }
  3686. else SetPlayerPos(playa2,pX+2,pY+2,pZ);
  3687. SetPlayerInterior(playa2,GetPlayerInterior(playa));
  3688. SetPlayerVirtualWorldEx(playa2,GetPlayerVirtualWorld(playa));
  3689. IsInHouseID[playa2] = IsInHouseID[playa];
  3690. IsInBizzID[playa2] = IsInBizzID[playa];
  3691. IsInGarageID[playa2] = IsInGarageID[playa];
  3692. if(IsInHouseID[playa] != -1)
  3693. {
  3694. StopAudioStreamForPlayer(playa2);
  3695. if(HouseData[IsInHouseID[playa]][HMusicPlaying] == 1) PlayAudioStreamForPlayerEx(playa2, HouseData[IsInHouseID[playa]][HMusic]);
  3696. }
  3697. if(IsInBizzID[playa] != -1)
  3698. {
  3699. StopAudioStreamForPlayer(playa2);
  3700. if(BizzData[IsInBizzID[playa]][BMusicPlaying] == 1) PlayAudioStreamForPlayerEx(playa2, BizzData[IsInBizzID[playa]][BMusic]);
  3701. }
  3702. JourneyInterior[playa] = JourneyInterior[playa2];
  3703. ShamalInterior[playa] = ShamalInterior[playa2];
  3704. TropicInterior[playa] = TropicInterior[playa2];
  3705. TrailerInterior[playa] = TrailerInterior[playa2];
  3706. if(IsJailed[playa2] == 1) return SysMsg(playerid,"Esse jogador atualmente está em Preso.");
  3707. if(IsCuffed[playa2] == 1) return SysMsg(playerid,"Esse jogador atualmente está algemado.");
  3708. if(IsSpectating[playa2] >= 0) return SysMsg(playerid,"O jogador atualmente está atualmente");
  3709. SendClientMessageF(playerid, COLOR_LIGHTGREEN, "Você teletransportou %s[ID %i] para %s[ID %i]", NameEx(playa2), playa2, NameEx(playa), playa);
  3710. SendClientMessageF(playa2, COLOR_TURQUOISE, "Admin %s te teletransportou para posição de %s.", NameEx(playerid), NameEx(playa));
  3711. format(gstr, sizeof(gstr), "Jogador teletransportado para %s", GetName(playa));
  3712. AdminLog(playerid, SQLID[playa2], GetName(playa2), gstr);
  3713. }
  3714. return true;
  3715. }
  3716. CMD:ircasa(playerid, params[])
  3717. {
  3718. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  3719. new hname[32],h;
  3720. if(sscanf(params, "s[32]", hname)) return SysMsg(playerid,"Use: /ircasa [Nome da casa]");
  3721. h = GetHouseLocation(hname);
  3722. new vehid_P = GetPlayerVehicleID(playerid);
  3723. new vw = 0;
  3724. if(h != -1)
  3725. {
  3726. if(strfind(HouseData[h][HouseDescription], "Flat") != -1) vw = 2;
  3727. if(vehid_P == 0)
  3728. {
  3729. SetPlayerPos(playerid, HouseData[h][oPosX],HouseData[h][oPosY],HouseData[h][oPosZ]);
  3730. SetPlayerVirtualWorldEx(playerid, HouseData[h][HouseExtVW]);
  3731. SetPlayerInterior(playerid, vw);
  3732. IsInHouseID[playerid] = -1;
  3733. IsInGarageID[playerid] = -1;
  3734. IsInBizzID[playerid] = -1;
  3735. }
  3736. else
  3737. {
  3738. SetVehiclePos(vehid_P, HouseData[h][oPosX],HouseData[h][oPosY],HouseData[h][oPosZ]);
  3739. SetVehicleVirtualWorld(vehid_P,HouseData[h][HouseExtVW]);
  3740. LinkVehicleToInteriorEx(vehid_P,vw);
  3741. SetPlayerInterior(playerid,vw);
  3742. IsInHouseID[playerid] = -1;
  3743. IsInGarageID[playerid] = -1;
  3744. IsInBizzID[playerid] = -1;
  3745. }
  3746. }
  3747. else return SysMsg(playerid, "Endereço inválido da casa");
  3748. return true;
  3749. }
  3750. CMD:irnegocio(playerid, params[])
  3751. {
  3752. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  3753. new hname[32],h;
  3754. if(sscanf(params, "s[32]", hname)) return SysMsg(playerid,"Use: /irnegocio [Nome do Negócio]");
  3755. h = GetBizzLocation(hname);
  3756. new vehid_P = GetPlayerVehicleID(playerid);
  3757. if(h != -1)
  3758. {
  3759. if(vehid_P == 0)
  3760. {
  3761. SetPlayerPos(playerid, BizzData[h][oPosX],BizzData[h][oPosY],BizzData[h][oPosZ]);
  3762. SetPlayerVirtualWorldEx(playerid,0);
  3763. SetPlayerInterior(playerid, 0);
  3764. IsInHouseID[playerid] = -1;
  3765. IsInGarageID[playerid] = -1;
  3766. IsInBizzID[playerid] = -1;
  3767. }
  3768. else
  3769. {
  3770. SetVehiclePos(vehid_P, BizzData[h][oPosX],BizzData[h][oPosY],BizzData[h][oPosZ]);
  3771. SetVehicleVirtualWorld(vehid_P,0);
  3772. LinkVehicleToInteriorEx(vehid_P, 0);
  3773. SetPlayerVirtualWorldEx(playerid, 0);
  3774. SetPlayerInterior(playerid, 0);
  3775. IsInHouseID[playerid] = -1;
  3776. IsInGarageID[playerid] = -1;
  3777. IsInBizzID[playerid] = -1;
  3778. }
  3779. }
  3780. else return SysMsg(playerid, "Endereço de negócios inválido");
  3781. return true;
  3782. }
  3783. CMD:irveh(playerid, params[])
  3784. {
  3785. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  3786. if(IsJailed[playerid] == 1) return SysMsg(playerid,"Aguarde até sair da prisão.");
  3787. if(IsCuffed[playerid] == 1) return SysMsg(playerid,"Esta ação não pode ser executada enquanto você estiver em algemas.");
  3788. new vid, id;
  3789. if(sscanf(params, "iI(-1)", vid, id)) return SysMsg(playerid,"Use: /irveh [Veiculo ID] [Optional: Jogador sendo teletransportado]");
  3790. if(!IsVehicleSpawned(vid)) return SysMsg(playerid,"Nenhum Veiculo ID gerou.");
  3791. new Float:vX, Float:vY, Float:vZ;
  3792. GetVehiclePos(vid, vX, vY, vZ);
  3793. new vehid = GetPlayerVehicleID(playerid);
  3794. if(id == -1)
  3795. {
  3796. if(IsSpectating[playerid] >= 0) cmd_spectateoff(playerid);
  3797. if(IsInHouseID[playerid] != -1) IsInHouseID[playerid] = -1;
  3798. if(IsInBizzID[playerid] != -1) IsInBizzID[playerid] = -1;
  3799. if(vehid == 0)
  3800. {
  3801. SetPlayerPos(playerid, vX, vY, vZ + 4.0);
  3802. SetPlayerVirtualWorldEx(playerid, GetVehicleVirtualWorld(vid));
  3803. if(FVehicleData[vid][FVSQLID] > 0) SetPlayerInterior(playerid, FVehicleData[vid][TempFVInterior]);
  3804. else SetPlayerInterior(playerid, 0);
  3805. }
  3806. else
  3807. {
  3808. SetVehiclePos(vehid, vX + 4.0, vY + 4.0, vZ + 4.0);
  3809. SetVehicleVirtualWorld(vehid, GetVehicleVirtualWorld(vid));
  3810. if(FVehicleData[vid][FVSQLID] > 0)
  3811. {
  3812. LinkVehicleToInteriorEx(vehid, FVehicleData[vid][TempFVInterior]);
  3813. if(IsFactionVehicle(vehid)) FVehicleData[vehid][TempFVInterior] = FVehicleData[vid][TempFVInterior];
  3814. }
  3815. else LinkVehicleToInterior(vehid, 0);
  3816. }
  3817. SendClientMessageF(playerid, COLOR_LIGHTGREEN, "Você se teletransportou para um %s [ID %i]", GetVehicleName(vid), vid);
  3818. }
  3819. else if(IsPlayerConnected(id))
  3820. {
  3821. if(IsSpectating[id] >= 0) cmd_spectateoff(id);
  3822. if(IsInHouseID[id] != -1) IsInHouseID[id] = -1;
  3823. if(IsInBizzID[id] != -1) IsInBizzID[id] = -1;
  3824. if(vehid == 0)
  3825. {
  3826. SetPlayerPos(id, vX, vY, vZ + 4.0);
  3827. SetPlayerVirtualWorldEx(id, GetVehicleVirtualWorld(vid));
  3828. if(FVehicleData[vid][FVSQLID] > 0) SetPlayerInterior(id, FVehicleData[vid][TempFVInterior]);
  3829. else SetPlayerInterior(id, 0);
  3830. }
  3831. else
  3832. {
  3833. SetVehiclePos(vehid, vX + 4.0, vY + 4.0, vZ + 4.0);
  3834. SetVehicleVirtualWorld(vehid, GetVehicleVirtualWorld(vid));
  3835. if(FVehicleData[vid][FVSQLID] > 0)
  3836. {
  3837. LinkVehicleToInteriorEx(vehid, FVehicleData[vid][TempFVInterior]);
  3838. if(IsFactionVehicle(vehid)) FVehicleData[vehid][TempFVInterior] = FVehicleData[vid][TempFVInterior];
  3839. }
  3840. else LinkVehicleToInterior(vehid, 0);
  3841. }
  3842. SendClientMessageF(playerid, COLOR_LIGHTGREEN, "Você teletransportou %s para %s [ID %i]", NameEx(id), GetVehicleName(vid), vid);
  3843. SendClientMessageF(id, COLOR_TURQUOISE, "Admin %s teletransportou você para um %s [ID %i]", NameEx(playerid), GetVehicleName(vid), vid);
  3844. }
  3845. return true;
  3846. }
  3847. CMD:getv(playerid, params[])
  3848. {
  3849. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  3850. if(IsJailed[playerid] == 1) return SysMsg(playerid,"Aguarde até sair da prisão.");
  3851. if(IsCuffed[playerid] == 1) return SysMsg(playerid,"Esta ação não pode ser executada enquanto você estiver em algemas.");
  3852. if(isnull(params)) return SysMsg(playerid,"Use: /getv [Veiculo ID]");
  3853. if(!IsNumeric(params)) return SysMsg(playerid,"Veiculo ID deve ser um número.");
  3854. new vehicleid = strval(params);
  3855. if(vehicleid < 1) return SysMsg(playerid,"Veículo inválido.");
  3856. if(!IsVehicleSpawned(vehicleid)) return SysMsg(playerid,"Nenhum veiculo com esse ID está spawnado.");
  3857. new Float:x, Float:y, Float:z;
  3858. GetPlayerPos(playerid, x, y, z);
  3859. LinkVehicleToInteriorEx(vehicleid, GetPlayerInterior(playerid));
  3860. SetVehicleVirtualWorld(vehicleid, GetPlayerVirtualWorld(playerid));
  3861. SetVehiclePos(vehicleid, x+4, y+4, z+4);
  3862. return true;
  3863. }
  3864. CMD:explodir(playerid, params[])
  3865. {
  3866. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  3867. if(IsJailed[playerid] == 1) return SysMsg(playerid,"Aguarde até sair da prisão.");
  3868. if(IsCuffed[playerid] == 1) return SysMsg(playerid,"Esta ação não pode ser executada enquanto você estiver em algemas.");
  3869. new playa = -1;
  3870. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /explodir [ID ou nome do jogador]");
  3871. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  3872. if(IsJailed[playa] == 1) return SysMsg(playerid,"Este jogador está em jail.");
  3873. new Float:pX,Float:pY,Float:pZ;
  3874. GetPlayerPos(playa,pX,pY,pZ);
  3875. CreateExplosion(pX,pY,pZ,0,10);
  3876. CreateExplosion(pX,pY,pZ,0,10);
  3877. CreateExplosion(pX,pY,pZ,0,10);
  3878. AdminLog(playerid, SQLID[playa], GetName(playa), "Explode");
  3879. return true;
  3880. }
  3881. CMD:fakeme(playerid, params[])
  3882. {
  3883. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  3884. new playa = -1, action[128];
  3885. if(sscanf(params, "us[128]", playa, action)) return SysMsg(playerid,"Use: /fakeme [playerid/name] [ação]");
  3886. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  3887. format(gstr, sizeof(gstr), "%s %s",NameEx(playa),action);
  3888. ProxDetector(20.0,playa,gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  3889. return true;
  3890. }
  3891. CMD:fakedo(playerid, params[])
  3892. {
  3893. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  3894. new playa = -1, action[128];
  3895. if(sscanf(params, "us[128]", playa, action)) return SysMsg(playerid,"Use: /fakedo [playerid/name] [ação]");
  3896. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  3897. format(gstr, sizeof(gstr), "%s ((%s))",action,NameRP(playa));
  3898. ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE);
  3899. return true;
  3900. }
  3901. CMD:disarm(playerid, params[])
  3902. {
  3903. if(!IsPlayerAdminLevelOK(playerid, 2)) return SysMsg(playerid, AUTHMSG);
  3904. new playa = -1;
  3905. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /disarm [ID ou nome do jogador]");
  3906. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  3907. ResetPlayerWeaponsEx(playa);
  3908. SyncPlayerWeapons(playa);
  3909. format(gstr, sizeof(gstr),"Admin %s desarmou você.",NameEx(playerid));
  3910. SendClientMessage(playa, COLOR_LIGHTGREEN, gstr);
  3911. format(gstr, sizeof(gstr),"Você desarmou %s.",NameEx(playa));
  3912. SendClientMessage(playerid, COLOR_LIGHTGREEN, gstr);
  3913. AdminLog(playerid, SQLID[playa], GetName(playa), "Desarmado");
  3914. return true;
  3915. }
  3916. CMD:rspec(playerid)
  3917. {
  3918. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  3919. new str[10], rand = GetRandomOnlinePlayer();
  3920. while(rand != playerid && Logged{rand} && IsSpectating[rand] != -1)
  3921. {
  3922. rand = GetRandomOnlinePlayer();
  3923. }
  3924. format(str, sizeof(str), "%i", rand);
  3925. cmd_spectate(playerid, str);
  3926. return true;
  3927. }
  3928. CMD:spec(playerid, params[]) return cmd_spectate(playerid, params);
  3929. CMD:spectate(playerid, params[])
  3930. {
  3931. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  3932. new playa = -1;
  3933. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /spec [ID ou nome do jogador]");
  3934. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  3935. if(playa == playerid) return SysMsg(playerid,"Você não pode specta a si mesmo.");
  3936. if(!Logged{playa}) return SysMsg(playerid, "Este jogador não iniciou sessão. Aguarde até ter iniciado sessão para especificá-los.");
  3937. if(IsSpectating[playa] >= 0) return SysMsg(playerid,"Você não pode falar sobre uma pessoa que também está se encontrando.");
  3938. if(PfSpec[playa][FlySpec] == 1) return SysMsg(playerid, "Você não pode especificar uma pessoa que está usando /fly.");
  3939. if(MasterAccount[playa] == 29469 && MasterAccount[playerid] == 19025) return SysMsg(playerid, "Boa tentativa, camarada. Ame, Emmalee");
  3940. if(IsSpectating[playerid] == -1)
  3941. {
  3942. new Float:X, Float:Y, Float:Z;
  3943. GetPlayerPos(playerid, X, Y, Z);
  3944. TempInfo[playerid][tmX] = X;
  3945. TempInfo[playerid][tmY] = Y;
  3946. TempInfo[playerid][tmZ] = Z;
  3947. TempInfo[playerid][tSkin] = GetPlayerCustomSkin(playerid);
  3948. if(!TempInfo[playerid][tSkin]) { TempInfo[playerid][tSkin] = GetPlayerSkin(playerid); }
  3949. TempInfo[playerid][tInt] = GetPlayerInterior(playerid);
  3950. TempInfo[playerid][tVW] = GetPlayerVirtualWorld(playerid);
  3951. }
  3952. if(PfSpec[playerid][FlySpec] == 1)
  3953. {
  3954. PfSpec[playerid][FlySpec] = 0;
  3955. TogglePlayerSpectating(playerid, false);
  3956. if(IsValidObject(PfSpec[playerid][fsobj]))
  3957. DestroyPlayerObject(playerid, PfSpec[playerid][fsobj]);
  3958. }
  3959. SetPlayerInterior(playerid, GetPlayerInterior(playa));
  3960. SetPlayerVirtualWorldEx(playerid, GetPlayerVirtualWorld(playa));
  3961. TogglePlayerSpectating(playerid, 1);
  3962. new tVehId = GetPlayerVehicleID(playa);
  3963. if(tVehId > 0)
  3964. {
  3965. PlayerSpectateVehicle(playerid, tVehId, SPECTATE_MODE_NORMAL);
  3966. SysMsgF(playerid, "Você está agora observando %s (no veículo) Use /specoff para retornar ao normal.",NameEx(playa));
  3967. IsSpectating[playerid] = playa;
  3968. PlayerTextDrawShow(playerid, pSpecTD[playerid]);
  3969. format(gstr, sizeof(gstr), "Spectando ~P~%s (%i)", NameEx(playa), playa);
  3970. PlayerTextDrawSetString(playerid, pSpecTD[playerid], gstr);
  3971. }
  3972. else
  3973. {
  3974. PlayerSpectatePlayer(playerid, playa, SPECTATE_MODE_NORMAL);
  3975. SysMsgF(playerid, "Você está agora observando %s (a pé) Use /specoff para retornar ao normal.",NameEx(playa));
  3976. IsSpectating[playerid] = playa;
  3977. PlayerTextDrawShow(playerid, pSpecTD[playerid]);
  3978. format(gstr, sizeof(gstr), "Spectando ~P~%s (%i)", NameEx(playa), playa);
  3979. PlayerTextDrawSetString(playerid, pSpecTD[playerid], gstr);
  3980. }
  3981. AdminLog(playerid, SQLID[playa], GetName(playa), "Spectate");
  3982. return true;
  3983. }
  3984. CMD:fly(playerid, params[])
  3985. {
  3986. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  3987. if(PfSpec[playerid][FlySpec] == 0) StartFlyEditor(playerid);
  3988. else if(PfSpec[playerid][FlySpec] == 1) EndFlyEditor(playerid);
  3989. return true;
  3990. }
  3991. CMD:vspec(playerid, params[])
  3992. {
  3993. if(!IsPlayerAdminLevelOK(playerid, 1) && !IsHelper{playerid}) return SysMsg(playerid, AUTHMSG);
  3994. new vehicleid = 0;
  3995. if(isnull(params)) return SysMsg(playerid,"Use: /vspec [Veiculo ID]");
  3996. if(!IsNumeric(params) && strval(params) > 0) return SysMsg(playerid,"Use: /vspec [Veiculo ID]");
  3997. vehicleid = strval(params);
  3998. if(vehicleid > MAX_VEHICLES) return SysMsg(playerid, "Veículo inválido.");
  3999. if(!IsPlayerAdminLevelOK(playerid, 1) && !IsHelper{playerid}) return SysMsg(playerid, AUTHMSG);
  4000. if(IsHelper{playerid} && IsAssisting[playerid] == -1) return SysMsg(playerid, "Você não pode usar este comando se você não estiver em uma assistência.");
  4001. if(IsHelper{playerid} && IsAssisting[playerid] != -1 && VehicleData[vehicleid][VehicleOwnerSQLID] != SQLID[IsAssisting[playerid]]) return SysMsg(playerid, "Você só pode spectar o veículo do jogador que você está ajudando atualmente.");
  4002. if(!IsVehicleSpawned(vehicleid)) return SysMsg(playerid,"Veiculo ID inválido.");
  4003. if(IsSpectating[playerid] == -1)
  4004. {
  4005. new Float:X, Float:Y, Float:Z;
  4006. GetPlayerPos(playerid, X, Y, Z);
  4007. TempInfo[playerid][tmX] = X;
  4008. TempInfo[playerid][tmY] = Y;
  4009. TempInfo[playerid][tmZ] = Z;
  4010. TempInfo[playerid][tSkin] = GetPlayerSkin(playerid);
  4011. TempInfo[playerid][tInt] = GetPlayerInterior(playerid);
  4012. TempInfo[playerid][tVW] = GetPlayerVirtualWorld(playerid);
  4013. }
  4014. TogglePlayerSpectating(playerid, 1);
  4015. SetPlayerVirtualWorldEx(playerid, GetVehicleVirtualWorld(vehicleid));
  4016. if(FVehicleData[vehicleid][FVSQLID] > 0) SetPlayerInterior(playerid, FVehicleData[vehicleid][TempFVInterior]);
  4017. PlayerSpectateVehicle(playerid, vehicleid, SPECTATE_MODE_NORMAL);
  4018. SysMsgF(playerid, "Agora você está spectando o viculo ID %i (%s). Use /specoff para voltar ao normal.",vehicleid,GetVehicleNameEx(GetVehicleModel(vehicleid)));
  4019. IsSpectating[playerid] = 1000;
  4020. return true;
  4021. }
  4022. CMD:specoff(playerid) return cmd_spectateoff(playerid);
  4023. CMD:spectateoff(playerid)
  4024. {
  4025. if(!IsPlayerAdminLevelOK(playerid, 1) && !IsHelper{playerid}) return SysMsg(playerid, AUTHMSG);
  4026. if(IsSpectating[playerid] == -1) return SysMsg(playerid,"Você não está spectando.");
  4027. TogglePlayerSpectating(playerid, 0);
  4028. SetPlayerPos(playerid, TempInfo[playerid][tmX], TempInfo[playerid][tmY], TempInfo[playerid][tmZ]);
  4029. SetPlayerInterior(playerid, TempInfo[playerid][tInt]);
  4030. SetPlayerVirtualWorldEx(playerid, TempInfo[playerid][tVW]);
  4031. SetPlayerSkinEx(playerid, TempInfo[playerid][tSkin]);
  4032. IsSpectating[playerid] = -2;
  4033. SyncPlayerWeapons(playerid);
  4034. SetTimerEx("UnFreezePlayer", 200, 0, "d", playerid);
  4035. ClearTempInfo(playerid);
  4036. if(PfSpec[playerid][FlySpec] == 1) PfSpec[playerid][FlySpec] = 0;
  4037. for(new ao = 0; ao < 10; ao++)
  4038. {
  4039. if(AttachedObjects[playerid][ao][aoModelID] > 0)
  4040. {
  4041. SetPlayerAttachedObject(playerid, ao, AttachedObjects[playerid][ao][aoModelID], AttachedObjects[playerid][ao][aoBone], AttachedObjects[playerid][ao][aoOffset][0], AttachedObjects[playerid][ao][aoOffset][1],
  4042. AttachedObjects[playerid][ao][aoOffset][2], AttachedObjects[playerid][ao][aoRot][0], AttachedObjects[playerid][ao][aoRot][1], AttachedObjects[playerid][ao][aoRot][2], AttachedObjects[playerid][ao][aoScale][0],
  4043. AttachedObjects[playerid][ao][aoScale][1], AttachedObjects[playerid][ao][aoScale][2], AttachedObjects[playerid][ao][aoColor], AttachedObjects[playerid][ao][aoColor]);
  4044. }
  4045. }
  4046. PlayerTextDrawHide(playerid, pSpecTD[playerid]);
  4047. //TextDrawHideForPlayer(playerid, SpeedText[IsSpectating[playerid]]);
  4048. return true;
  4049. }
  4050. CMD:quemspec(playerid, params[])
  4051. {
  4052. new count = 0;
  4053. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  4054. foreach(new i: Player)
  4055. {
  4056. if(IsSpectating[i] != -1 && AdminLevel[i] >= 1 && IsSpectating[i] != 1000)
  4057. {
  4058. SendClientMessageF(playerid, COLOR_WHITE, "O adminstrador %s está spectando %s.", NameEx(i), NameEx(IsSpectating[i]));
  4059. count++;
  4060. }
  4061. }
  4062. if(count == 0) return SysMsg(playerid, "Ninguem está spectando.");
  4063. return true;
  4064. }
  4065. CMD:fach(playerid, params[])
  4066. {
  4067. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  4068. new playa = -1, achievID;
  4069. if(sscanf(params, "ui", playa, achievID)) return SysMsg(playerid,"Use: /fach [ID ou nome do jogador] [achievement id]");
  4070. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  4071. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  4072. if(!Logged{playa}) return SysMsg(playerid,"Player Id is Não está logado");
  4073. if(achievID < 1 || achievID >= MAX_ACHS) return SysMsg(playerid,"Realização inválida.");
  4074. UnlockAchievement(playa, achievID);
  4075. SendClientMessageF(playa, COLOR_LIGHTGREEN, "Admin %s desbloqueou a conquista %i para você.", NameEx(playerid), achievID);
  4076. SendClientMessageF(playerid, COLOR_LIGHTGREEN, "Você desbloqueou a conquista %i para %s.", achievID, NameEx(playa));
  4077. format(gstr, sizeof(gstr), "Conquista desbloqueada %i", achievID);
  4078. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  4079. return true;
  4080. }
  4081. CMD:veiculosarea(playerid, params[])
  4082. {
  4083. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  4084. if(isnull(params)) return SysMsg(playerid, "Use: /veiculosarea [Nome do modelo]");
  4085. new v = GetVehicleModelIdFromName(params), count = 0;
  4086. gstr[0] = EOS;
  4087. foreach(new i: Player)
  4088. {
  4089. if(GetVehicleModel(GetPlayerVehicleID(i)) == v)
  4090. {
  4091. new zone[MAX_ZONE_NAME];
  4092. GetPlayer3DZone(i, zone, MAX_ZONE_NAME);
  4093. format(gstr, sizeof(gstr), "%s%s (ID: %i, Loc: %s) - %s, %i\n", gstr, NameEx(i), i, zone, GetVehicleNameEx(v), GetPlayerVehicleID(i));
  4094. count++;
  4095. }
  4096. }
  4097. if(count == 0) return SysMsgF(playerid, "Não foi possível encontrar jogadores que dirigissem um(a) %s", params);
  4098. ShowMessage(playerid, "Jogadores em veiculos", gstr, "Pronto");
  4099. return true;
  4100. }
  4101. CMD:armaslocal(playerid, params[])
  4102. {
  4103. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  4104. if(isnull(params)) return SysMsg(playerid, "Use: /armaslocal [nome da arma]");
  4105. new wid = GetWeaponIdFromName(params), count = 0;
  4106. if(wid == -1) return SysMsg(playerid, "Arma inválida.");
  4107. gstr[0] = EOS;
  4108. foreach(new i: Player)
  4109. {
  4110. if(GetPlayerWeapon(i) == wid)
  4111. {
  4112. new wep, ammo, zone[MAX_ZONE_NAME];
  4113. GetPlayerWeaponData(i, GetWeaponSlot(wid), wep, ammo);
  4114. GetPlayer3DZone(i, zone, MAX_ZONE_NAME);
  4115. format(sgstr, sizeof(sgstr), "%s (ID: %i, Loc: %s) - %s, %i munições\n", NameEx(i), i, zone, GetWeaponNameFromID(wid), ammo);
  4116. strcat(gstr, sgstr);
  4117. count++;
  4118. }
  4119. }
  4120. if(count == 0) return SysMsgF(playerid, "Não foi possível encontrar nenhum jogador segurando %s", weaponstring[wid]);
  4121. ShowMessage(playerid, "Jogadores que prendem essa arma", gstr, "Pronto");
  4122. return true;
  4123. }
  4124. CMD:playerareas(playerid, params[])
  4125. {
  4126. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  4127. if(isnull(params))
  4128. {
  4129. SysMsg(playerid, "Use: /playerareas [área de interesse. e.g, montgomery]");
  4130. SysMsg(playerid, "Nota: O nome da área deve MATCH uma das zonas no jogo, caso contrário, nenhum jogador será encontrado.");
  4131. return true;
  4132. }
  4133. new count = 0;
  4134. gstr[0] = EOS;
  4135. foreach(new i: Player)
  4136. {
  4137. new zone[MAX_ZONE_NAME];
  4138. GetPlayer3DZone(i, zone, MAX_ZONE_NAME);
  4139. if(strmatch(zone, params))
  4140. {
  4141. format(gstr, sizeof(gstr), "%s%s (ID: %i) - %s\n", gstr, NameEx(i), i, zone);
  4142. count++;
  4143. }
  4144. }
  4145. if(count == 0) return SysMsgF(playerid, "Não foi possível encontrar jogadores em %s", params);
  4146. ShowMessage(playerid, "Jogadores encontrados na zona", gstr, "Pronto");
  4147. return true;
  4148. }
  4149. CMD:setmotd(playerid, params[])
  4150. {
  4151. new motdid;
  4152. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  4153. if(sscanf(params, "is[128]", motdid, gstr)) return SysMsg(playerid,"Use: /setmotd [motd id] [mensagem]") && SysMsg(playerid, "MOTD IDs are 1: Admin, 2: Helper, 3: Player");
  4154. if(motdid < 1 || motdid > 3) return SysMsg(playerid, "Você deve inserir uma ID da MOTD válida. IDs MOTD disponíveis são 1: Admin, 2: Helper, 3: Player");
  4155. if(motdid == 1) //Admin MOTD
  4156. {
  4157. if(!IsPlayerAdminLevelOK(playerid, 4)) return SysMsg(playerid, "Você não é o administrador apropriado para modificar este MOTD");
  4158. mysql_format(conn, mquery, sizeof(mquery), "UPDATE motd SET message = '%e' WHERE motdid = %i", gstr, motdid-1);
  4159. mysql_pquery(conn, mquery);
  4160. SendClientMessageF(playerid, COLOR_WHITE, "Você configurou o Admin MOTD para %s", gstr);
  4161. AdminLog(playerid, 0, gstr, "Admin modificado MOTD");
  4162. return true;
  4163. }
  4164. if(motdid == 2) //ajudaer MOTD
  4165. {
  4166. if(!IsPlayerAdminLevelOK(playerid, 2)) return SysMsg(playerid, "Você não é o administrador apropriado para modificar este MOTD");
  4167. mysql_format(conn, mquery, sizeof(mquery), "UPDATE motd SET message = '%e' WHERE motdid = %i", gstr, motdid-1);
  4168. mysql_pquery(conn, mquery);
  4169. SendClientMessageF(playerid, COLOR_WHITE, "Você definiu o Helper MOTD para %s", gstr);
  4170. AdminLog(playerid, 0, gstr, "Helper modificado MOTD");
  4171. return true;
  4172. }
  4173. if(motdid == 3) //Player MOTD
  4174. {
  4175. if(!IsPlayerAdminLevelOK(playerid, 3)) return SysMsg(playerid, "Você não é o administrador apropriado para modificar este MOTD");
  4176. mysql_format(conn, mquery, sizeof(mquery), "UPDATE motd SET message = '%e' WHERE motdid = %i", gstr, motdid-1);
  4177. mysql_pquery(conn, mquery);
  4178. SendClientMessageF(playerid, COLOR_WHITE, "Você configurou o Player MOTD para %s", gstr);
  4179. AdminLog(playerid, 0, gstr, "Player modificado MOTD");
  4180. return true;
  4181. }
  4182. return true;
  4183. }
  4184. CMD:set(playerid, params[])
  4185. {
  4186. new playa, pname[32], option[24], Value[32], Value2[32];
  4187. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  4188. if(sscanf(params, "s[32]s[24]S(None)[32]S(None)[32]", pname, option, Value, Value2))
  4189. {
  4190. SysMsg(playerid,"Use: /set [Player ID/Veiculo ID] [opção] [valor]");
  4191. SysMsg(playerid,"Opções: VW, Interior, HP, Armour");
  4192. if(IsPlayerAdminLevelOK(playerid, 2)) SysMsg(playerid, "Opções: Skin, combustivel, Weather");
  4193. if(IsPlayerAdminLevelOK(playerid, 3))
  4194. {
  4195. SysMsg(playerid, "Opções: Facção, Rank, Trabalho, Nome, Estilolutar");
  4196. SysMsg(playerid, "Opções: Bebado, Weaponskill, vh");
  4197. }
  4198. if(IsPlayerAdminLevelOK(playerid, 4)) SysMsg(playerid, "Opções: AdminLevel, Time");
  4199. return true;
  4200. }
  4201. if(strmatch("combustivel", pname))
  4202. {
  4203. new playerState = GetPlayerState(playerid);
  4204. if(!IsPlayerAdminLevelOK(playerid, 2)) return SysMsg(playerid, AUTHMSG);
  4205. if(!IsNumeric(option)) return SysMsg(playerid,"O valor deve ser um número.");
  4206. if(strval(option) < 0 || strval(option) > 100) return SysMsg(playerid,"O valor deve ser de 0 a 100.");
  4207. new vid = GetPlayerVehicleID(playerid);
  4208. if(vid == 0) return SysMsg(playerid,"Você não está em um veiculo.");
  4209. Fuel[vid] = floatstr(option);
  4210. // UpdateFuelText(vid, gstr);
  4211. // PlayerTextDrawSetString(playerid, FuelText[playerid], gstr);
  4212. //TextDrawShowForPlayer(playerid,FuelText[playerid]);
  4213. if(playerState == PLAYER_STATE_PASSENGER) SendClientMessageF(playerid, COLOR_LIGHTGREEN, "Combustível adicionado para %i no(a) %s(%i)", strval(option),GetVehicleName(vid),vid);
  4214. else if(playerState == PLAYER_STATE_DRIVER && Fuel[vid] >= 10)
  4215. {
  4216. // PlayerTextDrawShow(playerid, FuelText[playerid]);
  4217. SendClientMessageF(playerid, COLOR_LIGHTGREEN, "Combustível adicionado para %i no(a) %s(%i)", strval(option),GetVehicleName(vid),vid);
  4218. }
  4219. else if(Fuel[vid] < 10 && playerState == PLAYER_STATE_DRIVER) TextDrawShowForPlayer(playerid, LowFuelText);
  4220. TextDrawHideForPlayer(playerid, LowFuelText);
  4221. return true;
  4222. }
  4223. else if(strmatch("vh", pname))
  4224. {
  4225. if(!IsPlayerAdminLevelOK(playerid, 3)) return SysMsg(playerid, AUTHMSG);
  4226. new vid = GetPlayerVehicleID(playerid);
  4227. if(vid > 0)
  4228. {
  4229. SetVehicleHealthEx(vid, strval(option));
  4230. SysMsgF(playerid, "Saúde do veículo definida para %i.", strval(option));
  4231. }
  4232. return true;
  4233. }
  4234. else if(strmatch("weather", pname))
  4235. {
  4236. if(!IsPlayerAdminLevelOK(playerid, 2)) return SysMsg(playerid, AUTHMSG);
  4237. foreach(new i: Player)
  4238. {
  4239. if(GetPlayerInterior(i) == 0 && GetPlayerVirtualWorld(i) == 0)
  4240. {
  4241. SetPlayerWeather(i, strval(option));
  4242. }
  4243. }
  4244. gServerWeather = strval(option);
  4245. format(gstr, sizeof(gstr),"[Admin] %s mudou o clima para ID %i(%s).",NameEx(playerid),strval(option),GetWeatherName(strval(option)));
  4246. AdminBroadcast(gstr, 0);
  4247. format(gstr, sizeof(gstr), "Mudou o tempo para %i", strval(option));
  4248. AdminLog(playerid, 0, "", gstr);
  4249. return true;
  4250. }
  4251. else if(strmatch("time", pname))
  4252. {
  4253. if(!IsPlayerAdminLevelOK(playerid, 3)) return SysMsg(playerid, AUTHMSG);
  4254. gServerHour = strval(option);
  4255. foreach(new i: Player)
  4256. {
  4257. if(IsInHouseID[i] == -1 && IsInBizzID[i] == -1)
  4258. {
  4259. SetPlayerTime(i, gServerHour, gServerMinute);
  4260. }
  4261. }
  4262. format(gstr, sizeof(gstr),"[Admin] %s mudou o tempo para %i.",NameEx(playerid),strval(option));
  4263. AdminBroadcast(gstr, 0);
  4264. format(gstr, sizeof(gstr), "Mudou o tempo para %i", strval(option));
  4265. AdminLog(playerid, 0, "", gstr);
  4266. return true;
  4267. }
  4268. playa = GetPlayerIDs(pname);
  4269. if(InvalidPlayer(playa)) return SysMsg(playerid,"Jogador ou opção inválida.");
  4270. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  4271. if(!Logged{playa}) return SysMsg(playerid,"ID do jogador não está logado.");
  4272. if(strmatch("int", option) || strmatch("interior", option))
  4273. {
  4274. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  4275. if(!IsNumeric(Value)) return SysMsg(playerid, "O valor precisa ser um número.");
  4276. SendClientMessageF(playerid, COLOR_LIGHTGREEN, "Você definiu com sucesso %s's [ID:%i] ID do mundo interior para %i.", NameEx(playa), playa, strval(Value));
  4277. SendClientMessageF(playa, COLOR_LIGHTGREEN, "Admin %s configurou seu mundo interior para ID %i.", NameEx(playerid), strval(Value));
  4278. SetPlayerInterior(playa, strval(Value));
  4279. }
  4280. else if(strmatch("vw", option) || strmatch("virtual", option))
  4281. {
  4282. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  4283. if(!IsNumeric(Value)) return SysMsg(playerid, "O valor precisa ser um número.");
  4284. SendClientMessageF(playerid, COLOR_LIGHTGREEN, "Você definiu com sucesso o Vw de %s [ID:%i] ID do mundo virtual para %i.", NameEx(playa), playa, strval(Value));
  4285. SendClientMessageF(playa, COLOR_LIGHTGREEN, "Admin %s configurou seu mundo virtual para %i.", NameEx(playerid), strval(Value));
  4286. SetPlayerVirtualWorldEx(playa, strval(Value));
  4287. }
  4288. else if(strcmp("faction",option,true) == 0 || strcmp("facção",option,true) == 0)
  4289. {
  4290. if(IsPlayerAdminLevelOK(playerid, 3))
  4291. {
  4292. if(strval(Value) < 0) return SysMsg(playerid,"Valor inválido! (Não há tal número de facção)");
  4293. if(strval(Value) > MAX_FACTIONS-1) return SysMsg(playerid,"Valor inválido! (Não há tal número de facção)");
  4294. if(strval(Value) == Faction[playa]) return SysMsg(playerid,"Valor inválido! (Já definido para esse valor)");
  4295. if(strval(Value) == FACTION_PROP && !CanSetST(playerid)) return SysMsg(playerid,"Você precisa ser convidado para essa facção!");
  4296. if(Faction[playa] > 0 && strval(Value) == 0) MySpawnID[playa] = 1;
  4297. if(Faction[playa] == 0 && strval(Value) > 0) MySpawnID[playa] = 2;
  4298. Faction[playa] = strval(Value);
  4299. FactionRank[playa] = 1;
  4300. SubFactionSpawn[playerid] = 1;
  4301. //GivePlayerWeapons(playa);
  4302. Duty[playerid] = 0;
  4303. mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET FactionRank = %i, Faction = %i, SubFactionSpawn = %i, MySpawnID = %i WHERE id = %i", FactionRank[playa], Faction[playa], SubFactionSpawn[playa], MySpawnID[playa], SQLID[playa]);
  4304. mysql_pquery(conn, mquery);
  4305. SendClientMessageF(playerid, COLOR_LIGHTGREEN, "Você colocou %s na facção %s(%i).",NameEx(playa),GetFactionNameFromId(strval(Value)),strval(Value));
  4306. SendClientMessageF(playa, COLOR_LIGHTGREEN, "Admin %s colocou você na facção %s(%i).",NameEx(playerid),GetFactionNameFromId(strval(Value)),strval(Value));
  4307. format(gstr, sizeof(gstr), "Set faction to %i", strval(Value));
  4308. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  4309. UnlockAchievement(playerid, 5);
  4310. }
  4311. else return SysMsg(playerid, "Você não é uma classificação suficientemente alta para usar essa opção.");
  4312. }
  4313. else if(strcmp("rank",option,true) == 0)
  4314. {
  4315. if(IsPlayerAdminLevelOK(playerid, 3))
  4316. {
  4317. if(strval(Value) < 1 || strval(Value) > 15) return SysMsg(playerid,"Valor inválido! (Nenhum tal número Rank)");
  4318. if(strval(Value) > FACTIONS[Faction[playa]][FactionUberLeaderRank]) return SysMsg(playerid,"Essa patente não existe nessa facção.");
  4319. if(strval(Value) == FactionRank[playa]) return SysMsg(playerid,"Valor inválido! (Já definido para esse valor)");
  4320. FactionRank[playa] = strval(Value);
  4321. MySQLUpdateInt(SQLID[playa], "FactionRank", FactionRank[playa], "players");
  4322. SendClientMessageF(playerid, COLOR_LIGHTGREEN, "Você definiu o rank de facção de %s para %s(%i).",NameEx(playa),GetFactionRankName(Faction[playa], FactionRank[playa]),strval(Value));
  4323. SendClientMessageF(playa, COLOR_LIGHTGREEN, "Admin %s definiu seu rank de facção para %s(%i).",NameEx(playerid),GetFactionRankName(Faction[playa], FactionRank[playa]),strval(Value));
  4324. format(gstr, sizeof(gstr), "Set faction rank to %i", strval(Value));
  4325. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  4326. }
  4327. else return SysMsg(playerid, "Você não é um rank alto o suficiente para usar esta opção.");
  4328. }
  4329. else if(strcmp("job",option,true) == 0 || strcmp("trabalho",option,true) == 0)
  4330. {
  4331. if(IsPlayerAdminLevelOK(playerid, 3))
  4332. {
  4333. if(strval(Value) < 0 || strval(Value) > MAX_JOBS) return SysMsg(playerid,"Valor inválido! (Nenhum trabalho desse tipo)");
  4334. if(strval(Value) == Job[playa]) return SysMsg(playerid,"Valor inválido! (Já definido para esse valor)");
  4335. if(strval(Value) == 3) return SysMsg(playerid, "Este trabalho não está mais disponível.");
  4336. Job[playa] = strval(Value);
  4337. MySQLUpdateInt(SQLID[playa], "Job", Job[playa], "players");
  4338. new JName[25];
  4339. switch(Job[playa])
  4340. {
  4341. case 0: JName = "Nenhum";
  4342. case JOB_MECHANIC: JName = "Mecanico";
  4343. case JOB_DRUGDEALER: JName = "Traficante";
  4344. case JOB_MAINTENANCE: JName = "manutenção";
  4345. case JOB_TAXI: JName = "Taxista";
  4346. }
  4347. SendClientMessageF(playerid, COLOR_LIGHTGREEN, "Você adicionou para %s o trabalho %s(%i).",NameEx(playa),JName,strval(Value));
  4348. SendClientMessageF(playa, COLOR_LIGHTGREEN, "Admin %s te deu o trabalho %s(%i).",NameEx(playerid),JName,strval(Value));
  4349. format(gstr, sizeof(gstr), "Definir trabalho para %i(%s)", strval(Value), JName);
  4350. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  4351. }
  4352. else return SysMsg(playerid, "Você não é uma classificação suficientemente alta para usar essa opção.");
  4353. return true;
  4354. }
  4355. else if(strmatch("hp", option) || strmatch("health", option))
  4356. {
  4357. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid,"Você não é uma classificação suficientemente alta para usar essa opção.");
  4358. if(strval(Value) < 0) return SysMsg(playerid,"Invalid health points! (0-100 only)");
  4359. if(strval(Value) > 100 && !IsPlayerAdmin(playerid)) return SysMsg(playerid,"Invalid health points! (0-100 only)");
  4360. if(strval(Value) >= 50) ClearInjuriesForPlayer(playa);
  4361. if(Dead{playa} && strval(Value) >= 50)
  4362. {
  4363. RevivePlayer(playa);
  4364. }
  4365. SetPlayerHealthEx(playa, strval(Value));
  4366. if(IsPlayerMasked{playa}) FormatHealthLabelText(playa, HealthVar[playa], ArmourVar[playa], 2);
  4367. IsDead[playerid] = 0;
  4368. DeathTimer[playerid] = 0;
  4369. SendClientMessageF(playa, COLOR_LIGHTBLUE, "Sua saúde foi definida para %i por %s",strval(Value),NameEx(playerid));
  4370. SendClientMessageF(playerid, COLOR_RED, "Você definiu o hp de %s para %i",NameEx(playa),strval(Value));
  4371. format(gstr, sizeof(gstr), "Defina saúde para %i", strval(Value));
  4372. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  4373. }
  4374. else if(strmatch("armour", option) || strmatch("colete", option))
  4375. {
  4376. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  4377. if(strval(Value) < 0 || strval(Value) > 100) return SysMsg(playerid,"Quantidade de armadura inválida! (0-100 somente)");
  4378. SetPlayerArmourEx(playa, strval(Value), 1);
  4379. SendClientMessageF(playa, COLOR_LIGHTBLUE, "Seu colete foi definito para %i por %s",strval(Value),NameEx(playerid));
  4380. SendClientMessageF(playerid, COLOR_RED, "Você definiu o colete de %s para %i",NameEx(playa),strval(Value));
  4381. format(gstr, sizeof(gstr), "Colete definido para %i", strval(Value));
  4382. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  4383. if(IsPlayerMasked{playa}) FormatHealthLabelText(playa, HealthVar[playa], ArmourVar[playa], 2);
  4384. }
  4385. else if(strmatch("nome", option))
  4386. {
  4387. if(!IsPlayerAdminLevelOK(playerid, 3)) return SysMsg(playerid, AUTHMSG);
  4388. if(strcmp(GetName(playa),Value,false) == 0) return SysMsg(playerid,"Já existe um jogador com esse nome.");
  4389. if(!IsValidRoleplayName(Value)) return SysMsg(playerid,"Esse nome não é considerado para jogo de rol.");
  4390. if(MySQLCheckAccount(Value, playerid) != 0) return SysMsg(playerid,"Esse nome já foi retirado no banco de dados.");
  4391. if(strlen(Value) > 24) return SysMsg(playerid,"Error: SAMP só permite nomes com 24 ou menos letras.");
  4392. if(hmData[playa][hmActive] == 1) return SysMsg(playerid, "Este jogador é atualmente aliased. Contate-os por favor pessoalmente se você precisa de mudar seu nome");
  4393. new oldname[MAX_PLAYER_NAME];
  4394. format(oldname, MAX_PLAYER_NAME, GetName(playa));
  4395. if(SetPlayerName(playa, Value) != 1) return SysMsg(playerid, "Esse nome é muito curto, muito longo, em uso, o mesmo ou contém letras inválidas.");
  4396. MySQLUpdateString(SQLID[playa], "Name", Value, "players");
  4397. mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET OwnerName = '%e' WHERE OwnerSQLID = %i", Value, SQLID[playa]);
  4398. mysql_pquery(conn, mquery);
  4399. format(PhoneData[playa][pOwnerName], 25, "%s", Value);
  4400. SendClientMessageF(playa,COLOR_DARKBLUE,"Admin %s mudou seu nome para %s.", GetName(playerid), Value);
  4401. SendClientMessageF(playerid, COLOR_RED, "Você mudou o nome de %s para %s.", oldname, Value);
  4402. format(sgstr, sizeof(sgstr), "Nome de %s alterado para %s", oldname, Value);
  4403. AdminLog(playerid, SQLID[playa], GetName(playa), sgstr);
  4404. for(new b = 0; b < MAX_BIZZ_PER_PLAYER; b++)
  4405. {
  4406. if(PlayerBizzID[playa][b] != -1)
  4407. {
  4408. new h = PlayerBizzID[playa][b];
  4409. UpdateBizzLabel(h);
  4410. }
  4411. }
  4412. foreach(new i: Player)
  4413. {
  4414. if(UsingPaint{i})
  4415. {
  4416. format(tgstr, sizeof(tgstr), "%s (%i)", NameEx(playa), playa);
  4417. UpdateDynamic3DTextLabelText(PaintLabels[i][playa], COLOR_ORANGE, tgstr);
  4418. }
  4419. }
  4420. }
  4421. else if(strmatch("skin", option))
  4422. {
  4423. if(!IsPlayerAdminLevelOK(playerid, 2)) return SysMsg(playerid, AUTHMSG);
  4424. //if(IsPlayerInAnyVehicle(playa)) return SysMsg(playerid,"That player is currently in a vehicle, please ask them to exit before setting their skin.");
  4425. if(GetPlayerSpecialAction(playa) == SPECIAL_ACTION_ENTER_VEHICLE || GetPlayerSpecialAction(playa) == SPECIAL_ACTION_EXIT_VEHICLE) return SysMsg(playerid, "Você não pode fazer isso enquanto o jogador está entrando / saindo de um veículo.");
  4426. if(GetPlayerSpecialAction(playa) == SPECIAL_ACTION_DUCK) return SysMsg(playerid,"Você não pode mudar uma pele quando eles estão agachados.");
  4427. if(GetPlayerVehicleID(playa) > 0) return SysMsg(playerid,"Você não pode mudar uma pele quando está em um veículo.");
  4428. if(strval(Value) < 1 || strval(Value) > 30000 || strval(Value) == 74) return SysMsg(playerid,"O ID da skin inválido.");
  4429. new oldskin = GetPlayerSkin(playerid);
  4430. for(new i = 0; i < 4; i++)
  4431. {
  4432. if(Clothes[playa][i] == oldskin)
  4433. {
  4434. Clothes[playa][i] = strval(Value);
  4435. new str[10];
  4436. format(str,sizeof(str),"SkinSet%i",i+1);
  4437. MySQLUpdateInt(SQLID[playa], str, Clothes[playa][i], "players");
  4438. break;
  4439. }
  4440. }
  4441. SetPlayerSkinEx(playa, strval(Value));
  4442. cPlayersSkin[playa] = strval(Value);
  4443. MySQLUpdateInt(SQLID[playa], "Skin", cPlayersSkin[playa], "players");
  4444. format(gstr, sizeof(gstr), "Skin definida para %i", strval(Value));
  4445. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  4446. }
  4447. else if(strmatch("estilolutar", option) || strmatch("fight", option))
  4448. {
  4449. if(!IsPlayerAdminLevelOK(playerid, 3)) return SysMsg(playerid, AUTHMSG);
  4450. if(strmatch("None", Value))
  4451. {
  4452. SysMsg(playerid,"Use: /set [ID ou nome do jogador] estilolutar [Estilo id/name]");
  4453. SysMsg(playerid,"Tipos de estilo: 0-Normal, 1-Boxer, 2-Kungfu");
  4454. return true;
  4455. }
  4456. new StyleType = -1;
  4457. if(IsNumeric(Value))
  4458. {
  4459. if(strval(Value) < 0 || strval(Value) > 2) return SysMsg(playerid,"Estilo inválido (0-2).");
  4460. StyleType = strval(Value);
  4461. }
  4462. if(StyleType == 0 || strcmp("normal",Value,true) == 0)
  4463. {
  4464. if(GetPlayerFightingStyle(playa) == FIGHT_STYLE_NORMAL) return SysMsg(playerid,"Error: Esse jogador já está usando este estilo de luta.");
  4465. SetPlayerFightingStyle(playa, FIGHT_STYLE_NORMAL);
  4466. UsingFightStyle{playa} = FIGHT_STYLE_NORMAL;
  4467. MySQLUpdateInt(SQLID[playa], "FightStyle", FIGHT_STYLE_NORMAL, "players");
  4468. format(gstr, sizeof(gstr),"Admin %s mudou seu estilo de luta para normal.",NameEx(playerid));
  4469. SendClientMessage(playa, COLOR_LIGHTGREEN, gstr);
  4470. format(gstr, sizeof(gstr),"Você definiu o estilo de luta de %s para normal.",NameEx(playa));
  4471. SendClientMessage(playerid,COLOR_RED, gstr);
  4472. return true;
  4473. }
  4474. if(StyleType == 1 || strcmp("boxer",Value,true) == 0)
  4475. {
  4476. if(GetPlayerFightingStyle(playa) == FIGHT_STYLE_BOXING) return SysMsg(playerid,"Error: Esse jogador já está usando este estilo de luta.");
  4477. SetPlayerFightingStyle(playa, FIGHT_STYLE_BOXING);
  4478. UsingFightStyle{playa} = FIGHT_STYLE_BOXING;
  4479. if(!FightStyleLearned[playa]{FS_BOXING})
  4480. {
  4481. FightStyleLearned[playa]{FS_BOXING} = true;
  4482. MySQLUpdateInt(SQLID[playa], "FightStyleLearnedBoxing", 1, "players");
  4483. }
  4484. MySQLUpdateInt(SQLID[playa], "FightStyle", FIGHT_STYLE_BOXING, "players");
  4485. format(gstr, sizeof(gstr),"Admin %s mudou seu estilo de luta para boxer.",NameEx(playerid));
  4486. SendClientMessage(playa, COLOR_LIGHTGREEN, gstr);
  4487. format(gstr, sizeof(gstr),"Você mudou o estilo de luta de %s para boxer.",NameEx(playa));
  4488. SendClientMessage(playerid,COLOR_RED, gstr);
  4489. return true;
  4490. }
  4491. if(StyleType == 2 || strcmp("kungfu",Value,true) == 0)
  4492. {
  4493. if(GetPlayerFightingStyle(playa) == FIGHT_STYLE_KUNGFU) return SysMsg(playerid,"Error: Esse jogador já está usando este estilo de luta.");
  4494. SetPlayerFightingStyle(playa, FIGHT_STYLE_KUNGFU);
  4495. UsingFightStyle{playa} = FIGHT_STYLE_KUNGFU;
  4496. if(!FightStyleLearned[playa]{FS_KUNGFU})
  4497. {
  4498. FightStyleLearned[playa]{FS_KUNGFU} = true;
  4499. MySQLUpdateInt(SQLID[playa], "FightStyleLearnedKungFu", 1, "players");
  4500. }
  4501. MySQLUpdateInt(SQLID[playa], "FightStyle", FIGHT_STYLE_KUNGFU, "players");
  4502. format(gstr, sizeof(gstr),"Admin %s mudou seu estilo de luta para kung-fu.",NameEx(playerid));
  4503. SendClientMessage(playa, COLOR_LIGHTGREEN, gstr);
  4504. format(gstr, sizeof(gstr),"Você mudou o estilo de luta de %s para kung-fu.",NameEx(playa));
  4505. SendClientMessage(playerid,COLOR_RED, gstr);
  4506. return true;
  4507. }
  4508. format(gstr, sizeof(gstr), "Defina estilo de luta para %i/%s", StyleType, Value);
  4509. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  4510. }
  4511. else if(strmatch("bebado", option))
  4512. {
  4513. if(!IsPlayerAdminLevelOK(playerid, 3)) return SysMsg(playerid, AUTHMSG);
  4514. new DLevel = strval(Value);
  4515. if(isnull(Value)) return SysMsg(playerid, "Use: /set [ID] bebado [0-50000]");
  4516. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  4517. if(DLevel < 0 || DLevel > 50000) return SysMsg(playerid,"Nível inválido. (0-50000)");
  4518. SetPlayerDrunkLevel(playa, DLevel);
  4519. DrunkLevel[playerid] = DLevel;
  4520. format(gstr, sizeof(gstr),"Admin %s mudou sua embriaguez para %i",NameEx(playerid),DLevel);
  4521. SendClientMessage(playa, COLOR_LIGHTGREEN, gstr);
  4522. format(gstr, sizeof(gstr),"Você definiu o nível de embriaguez %s para %i",NameEx(playa),DLevel);
  4523. SendClientMessage(playerid,COLOR_RED, gstr);
  4524. format(gstr, sizeof(gstr), "Set level de embriaguez para %i", DLevel);
  4525. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  4526. }
  4527. else if(strmatch("weaponskill", option))
  4528. {
  4529. if(!IsPlayerAdminLevelOK(playerid, 3)) return SysMsg(playerid, AUTHMSG);
  4530. new skill = strval(Value2);
  4531. if(strmatch("None", Value))
  4532. {
  4533. SysMsg(playerid,"Use: /set [ID ou nome do jogador] weaponskill [arma/nome] [skill level]");
  4534. SysMsg(playerid,"Tipo de arma: 0-9mm, 1-Silenced 9mm, 2-D.Eagle, 3-Shotgun, 4-Sawn-off, 5-SPAS, 6-Micro UZI");
  4535. SysMsg(playerid,"Tipo de arma: 7-MP5, 8-AK47, 9-M4, 10-Sniper, *11-TODAS ARMAS*");
  4536. return true;
  4537. }
  4538. new wtype = -1;
  4539. if(IsNumeric(Value))
  4540. {
  4541. if(strval(Value) < 0 || strval(Value) > 11) return SysMsg(playerid,"Tipo de arma inválido.");
  4542. wtype = strval(Value);
  4543. }
  4544. if(skill < 0 || skill > 10) return SysMsg(playerid,"Nível de habilidade inválido. (0 - 10)");
  4545. MySQLUpdateInt(SQLID[playa], "WeaponSkill", skill, "players");
  4546. if(wtype == 0 || strcmp("9mm",Value,true) == 0)
  4547. {
  4548. SetPlayerSkillLevel(playa, WEAPONSKILL_PISTOL, (skill * 100) - 10);
  4549. WeaponSkillLevel[playa] = skill;
  4550. format(gstr, sizeof(gstr),"Admin %s definiu sua habilidade de 9mm para %i",NameEx(playerid),(skill * 100) - 1);
  4551. SendClientMessage(playa, COLOR_LIGHTGREEN, gstr);
  4552. format(gstr, sizeof(gstr),"Você definiu o nível de habilidade de 9mm de %s para %i",NameEx(playa),(skill * 100) - 1);
  4553. SendClientMessage(playerid,COLOR_RED, gstr);
  4554. format(gstr, sizeof(gstr), "Habilidade de 9mm definida para %i", (skill * 100) - 1);
  4555. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  4556. return true;
  4557. }
  4558. if(wtype == 1 || strcmp("silenced9mm",Value,true) == 0)
  4559. {
  4560. SetPlayerSkillLevel(playa, WEAPONSKILL_PISTOL_SILENCED, (skill * 100) - 1);
  4561. WeaponSkillLevel[playa] = skill;
  4562. format(gstr, sizeof(gstr),"Admin %s definiu sua habilidade de 9mm Silenciada para %i",NameEx(playerid),(skill * 100) - 1);
  4563. SendClientMessage(playa, COLOR_LIGHTGREEN, gstr);
  4564. format(gstr, sizeof(gstr),"Você definiu o nível de habilidade de 9mm Silenciada de %s para %i",NameEx(playa),(skill * 100) - 1);
  4565. SendClientMessage(playerid,COLOR_RED, gstr);
  4566. format(gstr, sizeof(gstr), "Habilidade de 9mm Silenciada definida para %i", (skill * 100) - 1);
  4567. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  4568. return true;
  4569. }
  4570. if(wtype == 2 || strcmp("deagle",Value,true) == 0)
  4571. {
  4572. SetPlayerSkillLevel(playa, WEAPONSKILL_DESERT_EAGLE, (skill * 100) - 1);
  4573. WeaponSkillLevel[playa] = skill;
  4574. format(gstr, sizeof(gstr),"Admin %s definiu sua habilidade de de Desert Eagle para %i",NameEx(playerid),(skill * 100) - 1);
  4575. SendClientMessage(playa, COLOR_LIGHTGREEN, gstr);
  4576. format(gstr, sizeof(gstr),"Você definiu o nível de habilidade de Desert Eagle de %s para %i",NameEx(playa),(skill * 100) - 1);
  4577. SendClientMessage(playerid,COLOR_RED, gstr);
  4578. format(gstr, sizeof(gstr), "Habilidade de Desert Eagle definida para %i", (skill * 100) - 1);
  4579. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  4580. return true;
  4581. }
  4582. if(wtype == 3 || strcmp("Shotgun",Value,true) == 0)
  4583. {
  4584. SetPlayerSkillLevel(playa, WEAPONSKILL_SHOTGUN, (skill * 100) - 1);
  4585. WeaponSkillLevel[playa] = skill;
  4586. format(gstr, sizeof(gstr),"Admin %s definiu sua habilidade de de Shotgun para %i",NameEx(playerid),(skill * 100) - 1);
  4587. SendClientMessage(playa, COLOR_LIGHTGREEN, gstr);
  4588. format(gstr, sizeof(gstr),"Você definiu o nível de habilidade de Shotgun de %s para %i",NameEx(playa),(skill * 100) - 1);
  4589. SendClientMessage(playerid,COLOR_RED, gstr);
  4590. format(gstr, sizeof(gstr), "Habilidade de Shotgun definida para %i", (skill * 100) - 1);
  4591. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  4592. return true;
  4593. }
  4594. if(wtype == 4 || strcmp("sawnoff",Value,true) == 0)
  4595. {
  4596. SetPlayerSkillLevel(playa, WEAPONSKILL_SAWNOFF_SHOTGUN, (skill * 100) - 1);
  4597. WeaponSkillLevel[playa] = skill;
  4598. format(gstr, sizeof(gstr),"Admin %s definiu sua habilidade de de Sawn-off para %i",NameEx(playerid),(skill * 100) - 1);
  4599. SendClientMessage(playa, COLOR_LIGHTGREEN, gstr);
  4600. format(gstr, sizeof(gstr),"Você definiu o nível de habilidade de Sawn-off de %s para %i",NameEx(playa),(skill * 100) - 1);
  4601. SendClientMessage(playerid,COLOR_RED, gstr);
  4602. format(gstr, sizeof(gstr), "Habilidade de Sawn-off definida para %i", (skill * 100) - 1);
  4603. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  4604. return true;
  4605. }
  4606. if(wtype == 5 || strcmp("spas",Value,true) == 0)
  4607. {
  4608. SetPlayerSkillLevel(playa, WEAPONSKILL_SPAS12_SHOTGUN, (skill * 100) - 1);
  4609. WeaponSkillLevel[playa] = skill;
  4610. format(gstr, sizeof(gstr),"Admin %s definiu sua habilidade de de SPAS12 para %i",NameEx(playerid),(skill * 100) - 1);
  4611. SendClientMessage(playa, COLOR_LIGHTGREEN, gstr);
  4612. format(gstr, sizeof(gstr),"Você definiu o nível de habilidade de SPAS12 de %s para %i",NameEx(playa),(skill * 100) - 1);
  4613. SendClientMessage(playerid,COLOR_RED, gstr);
  4614. format(gstr, sizeof(gstr), "Habilidade de SPAS12 definida para %i", (skill * 100) - 1);
  4615. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  4616. return true;
  4617. }
  4618. if(wtype == 6 || strcmp("uzi",Value,true) == 0)
  4619. {
  4620. SetPlayerSkillLevel(playa, WEAPONSKILL_MICRO_UZI, (skill * 100) - 1);
  4621. WeaponSkillLevel[playa] = skill;
  4622. format(gstr, sizeof(gstr),"Admin %s definiu sua habilidade de de UZI para %i",NameEx(playerid),(skill * 100) - 1);
  4623. SendClientMessage(playa, COLOR_LIGHTGREEN, gstr);
  4624. format(gstr, sizeof(gstr),"Você definiu o nível de habilidade de UZI de %s para %i",NameEx(playa),(skill * 100) - 1);
  4625. SendClientMessage(playerid,COLOR_RED, gstr);
  4626. format(gstr, sizeof(gstr), "Habilidade de UZI definida para %i", (skill * 100) - 1);
  4627. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  4628. return true;
  4629. }
  4630. if(wtype == 7 || strcmp("mp5",Value,true) == 0)
  4631. {
  4632. SetPlayerSkillLevel(playa, WEAPONSKILL_MP5, (skill * 100) - 1);
  4633. WeaponSkillLevel[playa] = skill;
  4634. format(gstr, sizeof(gstr),"Admin %s definiu sua habilidade de de MP5 para %i",NameEx(playerid),(skill * 100) - 1);
  4635. SendClientMessage(playa, COLOR_LIGHTGREEN, gstr);
  4636. format(gstr, sizeof(gstr),"Você definiu o nível de habilidade de MP5 de %s para %i",NameEx(playa),(skill * 100) - 1);
  4637. SendClientMessage(playerid,COLOR_RED, gstr);
  4638. format(gstr, sizeof(gstr), "Habilidade de MP5 definida para %i", (skill * 100) - 1);
  4639. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  4640. return true;
  4641. }
  4642. if(wtype == 8 || strcmp("ak47",Value,true) == 0)
  4643. {
  4644. SetPlayerSkillLevel(playa, WEAPONSKILL_AK47, (skill * 100) - 1);
  4645. WeaponSkillLevel[playa] = skill;
  4646. format(gstr, sizeof(gstr),"Admin %s definiu sua habilidade de de AK-47 para %i",NameEx(playerid),(skill * 100) - 1);
  4647. SendClientMessage(playa, COLOR_LIGHTGREEN, gstr);
  4648. format(gstr, sizeof(gstr),"Você definiu o nível de habilidade de AK-47 de %s para %i",NameEx(playa),(skill * 100) - 1);
  4649. SendClientMessage(playerid,COLOR_RED, gstr);
  4650. format(gstr, sizeof(gstr), "Habilidade de AK-47 definida para %i", (skill * 100) - 1);
  4651. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  4652. return true;
  4653. }
  4654. if(wtype == 9 || strcmp("M4",Value,true) == 0)
  4655. {
  4656. SetPlayerSkillLevel(playa, WEAPONSKILL_M4, (skill * 100) - 1);
  4657. WeaponSkillLevel[playa] = skill;
  4658. format(gstr, sizeof(gstr),"Admin %s definiu sua habilidade de de m4 para %i",NameEx(playerid),(skill * 100) - 1);
  4659. SendClientMessage(playa, COLOR_LIGHTGREEN, gstr);
  4660. format(gstr, sizeof(gstr),"Você definiu o nível de habilidade de m4 de %s para %i",NameEx(playa),(skill * 100) - 1);
  4661. SendClientMessage(playerid,COLOR_RED, gstr);
  4662. format(gstr, sizeof(gstr), "Habilidade de M4 definida para %i", (skill * 100) - 1);
  4663. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  4664. return true;
  4665. }
  4666. if(wtype == 10 || strcmp("sniper",Value,true) == 0)
  4667. {
  4668. SetPlayerSkillLevel(playa, WEAPONSKILL_SNIPERRIFLE, (skill * 100) - 1);
  4669. WeaponSkillLevel[playa] = skill;
  4670. format(gstr, sizeof(gstr),"Admin %s set your Sniper skill to %i",NameEx(playerid),(skill * 100) - 1);
  4671. SendClientMessage(playa, COLOR_LIGHTGREEN, gstr);
  4672. format(gstr, sizeof(gstr),"You set %s's Sniper to %i",NameEx(playa),(skill * 100) - 1);
  4673. SendClientMessage(playerid,COLOR_RED, gstr);
  4674. format(gstr, sizeof(gstr), "Set Sniper weapon skill to %i", (skill * 100) - 1);
  4675. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  4676. return true;
  4677. }
  4678. if(wtype == 11 || strcmp("all",Value,true) == 0 || strcmp("todas",Value,true) == 0)
  4679. {
  4680. SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL,(skill * 100) - 10);
  4681. SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL_SILENCED,(skill * 100) - 1);
  4682. SetPlayerSkillLevel(playerid, WEAPONSKILL_DESERT_EAGLE,(skill * 100) - 1);
  4683. SetPlayerSkillLevel(playerid, WEAPONSKILL_SHOTGUN,(skill * 100) - 1);
  4684. SetPlayerSkillLevel(playerid, WEAPONSKILL_SAWNOFF_SHOTGUN,(skill * 100) - 1);
  4685. SetPlayerSkillLevel(playerid, WEAPONSKILL_SPAS12_SHOTGUN,(skill * 100) - 1);
  4686. SetPlayerSkillLevel(playerid, WEAPONSKILL_MICRO_UZI,(skill * 100) - 1);
  4687. SetPlayerSkillLevel(playerid, WEAPONSKILL_MP5,(skill * 100) - 1);
  4688. SetPlayerSkillLevel(playerid, WEAPONSKILL_AK47,(skill * 100) - 1);
  4689. SetPlayerSkillLevel(playerid, WEAPONSKILL_M4,(skill * 100) - 1);
  4690. SetPlayerSkillLevel(playerid, WEAPONSKILL_SNIPERRIFLE,(skill * 100) - 1);
  4691. WeaponSkillLevel[playa] = skill;
  4692. SendClientMessageF(playa, COLOR_LIGHTGREEN, "Admin %s definiu todas as habilidades de armas para %i",NameEx(playerid),(skill * 100) - 1);
  4693. SendClientMessageF(playerid,COLOR_RED, "Você definiu todos os níveis de arma de %s para %i",NameEx(playa),(skill * 100) - 1);
  4694. format(gstr, sizeof(gstr), "Definir toda a habilidade arma para %i", (skill * 100) - 1);
  4695. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  4696. }
  4697. }
  4698. else if(strmatch("admin", option) || strmatch("adminlevel", option))
  4699. {
  4700. if(!IsPlayerAdminLevelOK(playerid, 4)) return SysMsg(playerid, AUTHMSG);
  4701. if(isnull(Value)) SysMsg(playerid, "Use: /set [Player ID or Nome_Sobrenome] adminlevel [level 0-4]");
  4702. if(IsPlayerConnected(playa) || !Logged{playa})
  4703. {
  4704. if(playa == playerid) return SysMsg(playerid, "Não pode ser você mesmo.");
  4705. if(strval(Value) < 0 || strval(Value) > 4) return SysMsg(playerid,"Admin nível deve estar entre 0 e 4.");
  4706. AdminLevel[playa] = strval(Value);
  4707. if(IsHelper{playa}) IsHelper{playa} = false;
  4708. mysql_format(conn, mquery, sizeof(mquery), "UPDATE masters SET AdminLevel = %i, Helper = %i WHERE id = %i", AdminLevel[playa], IsHelper{playa}, MasterAccount[playa]);
  4709. mysql_pquery(conn, mquery);
  4710. if(strval(Value) > AdminLevel[playa]) return PlaySoundForPlayer(playa, 31205);
  4711. SendClientMessageF(playa,COLOR_LIGHTBLUE, "Admin %s mudou o nível de administrador para %i.",NameEx(playerid),AdminLevel[playa]);
  4712. SendClientMessageF(playerid,COLOR_RED, "Você mudou o level de admin de %s para %i.",NameEx(playa),AdminLevel[playa]);
  4713. format(gstr, sizeof(gstr), "Definir nível de administrador para %i", strval(Value));
  4714. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  4715. }
  4716. else if(strfind(pname, "_") != -1)
  4717. {
  4718. new sqlid = MySQLCheckMaster_AgainstName(pname);
  4719. if(sqlid <= 1) return SysMsg(playerid, "O nome não foi encontrado. Por favor, inclua o primeiro nome, sobrenome e um título de destaque OU use o ID de identidade atual.");
  4720. if(sqlid == SQLID[playerid]) return SysMsg(playerid, "Não pode ser você mesmo.");
  4721. if(strval(Value) < 0 || strval(Value) > 4) return SysMsg(playerid,"Admin nível deve estar entre 0 e 4.");
  4722. mysql_format(conn, mquery, sizeof(mquery), "UPDATE masters SET AdminLevel = %i, Helper = 0 WHERE id = %i", strval(Value), sqlid);
  4723. mysql_pquery(conn, mquery);
  4724. SendClientMessageF(playerid,COLOR_RED, "Você mudou o level de admin de %s para %i.",GetSQLName(sqlid),strval(Value));
  4725. format(gstr, sizeof(gstr), "Definir nível de administrador para %i", strval(Value));
  4726. AdminLog(playerid, sqlid, GetSQLName(sqlid), gstr);
  4727. }
  4728. }
  4729. else return SysMsg(playerid, "Você não está autorizado a usar este comando ou você digitou uma opção inválida.");
  4730. return true;
  4731. }
  4732. CMD:recordbot(playerid, params[])
  4733. {
  4734. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  4735. if(isnull(params)) return SysMsg(playerid,"Use: /record [name *1 WORD*]");
  4736. new VehID = GetPlayerVehicleID(playerid);
  4737. if(VehID > 0 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) StartRecordingPlayerData(playerid, PLAYER_RECORDING_TYPE_DRIVER, params);
  4738. else StartRecordingPlayerData(playerid, PLAYER_RECORDING_TYPE_ONFOOT, params);
  4739. GameTextForPlayer(playerid,"~n~~n~~n~~n~~r~~>~REC",5000,3);
  4740. return true;
  4741. }
  4742. CMD:stoprecord(playerid, params[])
  4743. {
  4744. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  4745. StopRecordingPlayerData(playerid);
  4746. SendClientMessage(playerid, COLOR_WHITE, ">> The Recording Has Been Saved.");
  4747. return true;
  4748. }
  4749. CMD:object(playerid, params[])//criar objetos
  4750. {
  4751. if(!Logged{playerid}) return true;
  4752. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  4753. new option[24], modelid[24], purpose[64];
  4754. if(sscanf(params, "s[24]S(-1)[24]S()[64]", option, modelid, purpose)) return SysMsg(playerid, "Use: /object [spawn/delete/goto/edit/view/exportar]");
  4755. if(strmatch(option, "spawn"))
  4756. {
  4757. if(strval(modelid) == -1) return SysMsg(playerid, "Digite um ID de modelo válido.");
  4758. if(!strlen(purpose)) return SysMsg(playerid, "Digite uma finalidade para o objeto.");
  4759. if(GetFreeTempObjectSlot() == -1) return SysMsg(playerid, "Não há slots de objetos gratuitos no momento.");
  4760. //if(IsValidModel(strval(modelid))) return SysMsg(playerid, "ID do modelo inválida.");
  4761. new slot = GetFreeTempObjectSlot();
  4762. GetPlayerPos(playerid, TempObjects[slot][ObjectPosX], TempObjects[slot][ObjectPosY], TempObjects[slot][ObjectPosZ]);
  4763. GetPlayerFacingAngle(playerid, TempObjects[slot][ObjectPosRZ]);
  4764. GetXYInFrontOfPlayer(playerid, TempObjects[slot][ObjectPosX], TempObjects[slot][ObjectPosY], 1.5);
  4765. TempObjects[slot][ObjectID] = CreateDynamicObject(strval(modelid), TempObjects[slot][ObjectPosX], TempObjects[slot][ObjectPosY], TempObjects[slot][ObjectPosZ], 0.0, 0.0, TempObjects[slot][ObjectPosRZ], GetPlayerVirtualWorld(playerid));
  4766. TempObjects[slot][ObjectModel] = strval(modelid);
  4767. TempObjects[slot][ObjectVW] = GetPlayerVirtualWorld(playerid);
  4768. TempObjects[slot][ObjectPosRX] = 0.0;
  4769. TempObjects[slot][ObjectPosRY] = 0.0;
  4770. TempObjects[slot][ObjectPurpose] = purpose;
  4771. TempObjects[slot][SpawnedBy] = SQLID[playerid];
  4772. EditingTempObject[playerid] = slot;
  4773. EditDynamicObject(playerid, TempObjects[slot][ObjectID]);
  4774. format(gstr, sizeof(gstr), "Objeto temporário spawnado. (%i)", strval(modelid));
  4775. AdminLog(playerid, 0, "", gstr);
  4776. return true;
  4777. }
  4778. else if(strmatch(option, "delete"))
  4779. {
  4780. if(strval(modelid) == -1) return SysMsg(playerid, "Digite um slot.");
  4781. if(strval(modelid) < 0 || strval(modelid) > MAX_TEMPOBJECTS) return SysMsgF(playerid, "O slot de objeto deve ser de 0-%i", MAX_TEMPOBJECTS);
  4782. if(TempObjects[strval(modelid)][ObjectID] == INVALID_OBJECT_ID) return SysMsg(playerid, "Nenhum objeto encontrado neste slot.");
  4783. new slot = strval(modelid);
  4784. DestroyDynamicObjectEx(TempObjects[slot][ObjectID], "TempObjects[slot][ObjectID]");
  4785. TempObjects[slot][ObjectID] = INVALID_OBJECT_ID;
  4786. TempObjects[slot][ObjectModel] = 0;
  4787. TempObjects[slot][ObjectVW] = 0;
  4788. TempObjects[slot][ObjectPosX] = 0;
  4789. TempObjects[slot][ObjectPosY] = 0;
  4790. TempObjects[slot][ObjectPosZ] = 0;
  4791. TempObjects[slot][ObjectPosRX] = 0;
  4792. TempObjects[slot][ObjectPosRY] = 0;
  4793. TempObjects[slot][ObjectPosRZ] = 0;
  4794. TempObjects[slot][ObjectPurpose][0] = EOS;
  4795. TempObjects[slot][SpawnedBy] = 0;
  4796. SendClientMessageF(playerid, COLOR_RED, "Você destruiu o objeto %i.", slot);
  4797. return true;
  4798. }
  4799. else if(strmatch(option, "goto"))
  4800. {
  4801. if(strval(modelid) == -1) return SysMsg(playerid, "Please enter a slot.");
  4802. if(strval(modelid) < 0 || strval(modelid) > MAX_TEMPOBJECTS) return SysMsgF(playerid, "O slot de objeto deve ser de 0-%i", MAX_TEMPOBJECTS);
  4803. if(TempObjects[strval(modelid)][ObjectID] == INVALID_OBJECT_ID) return SysMsg(playerid, "Nenhum objeto encontrado neste slot.");
  4804. new slot = strval(modelid);
  4805. SetPlayerPos(playerid, TempObjects[slot][ObjectPosX], TempObjects[slot][ObjectPosY], TempObjects[slot][ObjectPosZ] + 2);
  4806. SetPlayerVirtualWorld(playerid, TempObjects[slot][ObjectVW]);
  4807. SendClientMessageF(playerid, COLOR_RED, "Você tem teletransportado para o objeto %i.", slot);
  4808. return true;
  4809. }
  4810. else if(strmatch(option, "editar"))
  4811. {
  4812. if(strval(modelid) == -1) return SysMsg(playerid, "Por favor, insira um slot.");
  4813. if(strval(modelid) < 0 || strval(modelid) > MAX_TEMPOBJECTS) return SysMsgF(playerid, "O slot de objeto deve ser de 0-%i", MAX_TEMPOBJECTS);
  4814. if(TempObjects[strval(modelid)][ObjectID] == INVALID_OBJECT_ID) return SysMsg(playerid, "Nenhum objeto encontrado neste slot.");
  4815. new slot = strval(modelid);
  4816. if(!IsPlayerInRangeOfPoint(playerid, 50.0, TempObjects[slot][ObjectPosX], TempObjects[slot][ObjectPosY], TempObjects[slot][ObjectPosZ])) return SysMsg(playerid, "Você deve estar mais próximo do objeto para editá-lo.");
  4817. EditingTempObject[playerid] = slot;
  4818. EditDynamicObject(playerid, TempObjects[slot][ObjectID]);
  4819. }
  4820. else if(strmatch(option, "ver"))
  4821. {
  4822. new bigstr[3000], count = 0;
  4823. strcat(bigstr, "Slot\tModel\tPropósito\tSpawnado por\n");
  4824. for(new x = 0; x < MAX_TEMPOBJECTS; x++)
  4825. {
  4826. if(TempObjects[x][ObjectID] != INVALID_OBJECT_ID)
  4827. {
  4828. format(sgstr, sizeof(sgstr), "%i\t%i\t%s\t%s\n", x, TempObjects[x][ObjectModel], TempObjects[x][ObjectPurpose], GetSQLName(TempObjects[x][SpawnedBy]));
  4829. strcat(bigstr, sgstr);
  4830. count ++;
  4831. }
  4832. }
  4833. if(count == 0) return SysMsg(playerid, "Não há objetos spawnado no momento.");
  4834. Dialog_Show(playerid, ObjectTeleport, DIALOG_STYLE_TABLIST_HEADERS, "Objetos temporários atuais", bigstr, "Teleporte", "Fechar");
  4835. }
  4836. else if(strmatch(option, "exportar"))
  4837. {
  4838. if(sscanf(params, "s[24]s[32]", option, modelid)) return SysMsg(playerid, "Use: /object exportar [filename] *Deve incluir .TXT*");
  4839. new File:f = fopen(modelid, io_write);
  4840. for(new x = 0; x < MAX_TEMPOBJECTS; x++)
  4841. {
  4842. if(TempObjects[x][ObjectID] != INVALID_OBJECT_ID)
  4843. {
  4844. format(sgstr, sizeof(sgstr), "CreateDynamicObject(%i, %f, %f, %f, %f, %f, %f); //%s (%s)\r\n",TempObjects[x][ObjectModel], TempObjects[x][ObjectPosX],TempObjects[x][ObjectPosY],
  4845. TempObjects[x][ObjectPosZ], TempObjects[x][ObjectPosRX], TempObjects[x][ObjectPosRY], TempObjects[x][ObjectPosRZ], TempObjects[x][ObjectPurpose], GetSQLName(TempObjects[x][SpawnedBy]));
  4846. fwrite(f, sgstr);
  4847. }
  4848. }
  4849. fclose(f);
  4850. }
  4851. else cmd_object(playerid, "");
  4852. return true;
  4853. }
  4854. CMD:tagban(playerid, params[])
  4855. {
  4856. if(!Logged{playerid}) return true;
  4857. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  4858. new playa = -1;
  4859. if(sscanf(params, "u", playa)) return SysMsg(playerid, "Use: /tagban [playerID ou name] *ISSO NÃO PODE SER REMOVIDO*");
  4860. if(TagBanned{playa}) return SysMsg(playerid, "Este usuário já está banido tag.");
  4861. mysql_format(conn, mquery, sizeof(mquery), "UPDATE masters SET TagBanned = 1 WHERE id = %i", MasterAccount[playa]);
  4862. mysql_pquery(conn, mquery);
  4863. TagBanned{playa} = true;
  4864. SendClientMessageF(playerid, COLOR_RED, "[Admin] Você baniu %s de usar tag labels.", NameEx(playa));
  4865. SendClientMessageF(playa, COLOR_RED, "Admin %s proibiu-o de usar tag labels.", NameEx(playerid));
  4866. return true;
  4867. }
  4868. CMD:tag(playerid, params[])
  4869. {
  4870. if(!Logged{playerid}) return true;
  4871. if(TagBanned{playerid}) return SysMsg(playerid, "Você está proibido de usar este recurso.");
  4872. if(PlayerLevel[playerid] < 4 && !IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, "Você deve ser pelo menos nível 4 para usar esse recurso.");
  4873. new option[24], value[150];
  4874. if(sscanf(params, "s[24]S()[150]", option, value)) return SysMsg(playerid, "Use: /tag [criar/excluir/id/editar]");
  4875. if(strcmp(option, "criar", true) == 0)
  4876. {
  4877. if(isnull(value)) return SysMsg(playerid, "Use: /tag criare [Descrição]");
  4878. if(PlayerHasLabel(playerid) && !IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, "Você já criou uma marca descritiva. Contate por favor um admin para criar mais.");
  4879. if(Dead{playerid}) return SysMsg(playerid, "Não é possível utilizar este recurso enquanto estiver abatido.");
  4880. if(strlen(value) > 140) return SysMsg(playerid, "Sua mensagem de tag é muito longa. Por favor, encurte.");
  4881. new temptext[150];
  4882. temptext = value;
  4883. if(strlen(temptext) > 100) strins(temptext, "\n", 101);
  4884. SetPVarString(playerid, "PendingLabelText", value);
  4885. format(sgstr, sizeof(sgstr), "Tem certeza de que deseja criar uma marca com o seguinte texto?\n\n%s", temptext);
  4886. Dialog_Show(playerid, LabelCreate, DIALOG_STYLE_MSGBOX, "Tem certeza?", sgstr, "Sim", "Não");
  4887. return true;
  4888. }
  4889. else if(strcmp(option, "excluir", true) == 0)
  4890. {
  4891. if(!IsPlayerAdminLevelOK(playerid, 1))
  4892. {
  4893. for(new x = 0; x < MAX_LABELS; x++)
  4894. {
  4895. if(RPLabels[x][LabelOwner] == SQLID[playerid])
  4896. {
  4897. DestroyRPLabel(x);
  4898. SendClientMessage(playerid, COLOR_RED, "Você removeu sua tag.");
  4899. return true;
  4900. }
  4901. }
  4902. SysMsg(playerid, "Não foi possível encontrar uma marca criada por você.");
  4903. return true;
  4904. }
  4905. if(isnull(value)) return SysMsg(playerid, "Use: /tag excluir [tag id] *Use /tag id perto de uma tag para obter o seu ID.*");
  4906. if(!IsNumeric(value)) return SysMsg(playerid, "ID de marca deve ser numérico.");
  4907. new id = strval(value);
  4908. if(id < 0 || id >= MAX_LABELS) return SysMsgF(playerid, "Valor deve ser maior que 0 e menor que %i.", MAX_LABELS);
  4909. if(!RPLabels[id][LabelUsed]) return SysMsg(playerid, "Esta ID de tag não está em uso no momento.");
  4910. DestroyRPLabel(id);
  4911. SendClientMessageF(playerid, COLOR_RED, "Você removeu a tag %i.", id);
  4912. return true;
  4913. }
  4914. else if(strcmp(option, "id", true) == 0)
  4915. {
  4916. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  4917. for(new x = 0; x < MAX_LABELS; x++)
  4918. {
  4919. if(IsPlayerInRangeOfPoint(playerid, 2.5, RPLabels[x][LabelX], RPLabels[x][LabelY], RPLabels[x][LabelZ]))
  4920. {
  4921. SendClientMessageF(playerid, COLOR_RED, "Este rótulo é de propriedade de %s e seu ID da tag é %i.", GetSQLName(RPLabels[x][LabelOwner]), x);
  4922. return true;
  4923. }
  4924. }
  4925. SysMsg(playerid, "Você não está perto de rótulos.");
  4926. return true;
  4927. }
  4928. else if(strcmp(option, "editar", true) == 0)
  4929. {
  4930. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  4931. new value2[150];
  4932. if(sscanf(params, "s[24]s[150]s[150]", option, value, value2))
  4933. if(!IsNumeric(value)) return SysMsg(playerid, "Tag ID deve ser numérico.");
  4934. if(strval(value) < 0 || strval(value) >= MAX_LABELS) return SysMsgF(playerid, "Valor deve ser maior que 0 e menor que %i.", MAX_LABELS);
  4935. if(!RPLabels[strval(value)][LabelUsed]) return SysMsg(playerid, "Que ID de rótulo não está em uso no momento.");
  4936. if(strlen(value2) > 140) return SysMsg(playerid, "Sua mensagem de tag é muito longa. Por favor, encurte.");
  4937. new id = strval(value);
  4938. UpdateDynamic3DTextLabelText(RPLabels[id][LabelID], COLOR_WHITE, value2);
  4939. SendSplitMessageF(playerid, COLOR_RED, "Você atualizou o texto do rótulo para '%s'", value2);
  4940. return true;
  4941. }
  4942. return true;
  4943. }
  4944. stock PlayerHasLabel(playerid)
  4945. {
  4946. for(new x = 0; x < MAX_LABELS; x++)
  4947. {
  4948. if(RPLabels[x][LabelOwner] == SQLID[playerid]) return true;
  4949. }
  4950. return false;
  4951. }
  4952. stock CreateRPLabel(playerid, text[])
  4953. {
  4954. new x = GetFreeRPLabelID();
  4955. if(x == -1) return SysMsg(playerid, "Atualmente não há slots de tag disponíveis.");
  4956. GetPlayerPos(playerid, RPLabels[x][LabelX], RPLabels[x][LabelY], RPLabels[x][LabelZ]);
  4957. RPLabels[x][LabelID] = CreateDynamic3DTextLabel(text, COLOR_WHITE, RPLabels[x][LabelX], RPLabels[x][LabelY], RPLabels[x][LabelZ], 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, GetPlayerVirtualWorld(playerid));
  4958. RPLabels[x][LabelUsed] = true;
  4959. RPLabels[x][LabelOwner] = SQLID[playerid];
  4960. SendClientMessage(playerid, COLOR_WHITE, "Você criou com êxito uma marca descritiva.");
  4961. return true;
  4962. }
  4963. stock DestroyRPLabel(id)
  4964. {
  4965. DestroyDynamic3DTextLabel(RPLabels[id][LabelID]);
  4966. RPLabels[id][LabelID] = Text3D:INVALID_3DTEXT_ID;
  4967. RPLabels[id][LabelX] = 0.0;
  4968. RPLabels[id][LabelY] = 0.0;
  4969. RPLabels[id][LabelZ] = 0.0;
  4970. RPLabels[id][LabelUsed] = false;
  4971. RPLabels[id][LabelOwner] = 0;
  4972. return true;
  4973. }
  4974. stock GetFreeRPLabelID()
  4975. {
  4976. for(new x = 0; x < MAX_LABELS; x++)
  4977. {
  4978. if(!RPLabels[x][LabelUsed]) return x;
  4979. }
  4980. return -1;
  4981. }
  4982. CMD:aspray(playerid, params[])
  4983. {
  4984. if(!Logged{playerid}) return SysMsg(playerid,"Você precisa estar logado no servidor para usar essa função.");
  4985. if(!IsPlayerAdminLevelOK(playerid, 2)) return SysMsg(playerid, AUTHMSG);
  4986. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você deve estar em um veículo para re-spray.");
  4987. new color1, color2;
  4988. if(sscanf(params, "iI(-1)", color1, color2)) return SysMsg(playerid,"Use: /spray [Cor primária] [Optional: Cor secundária]");
  4989. if(color1 < 0 || color1 > 255) return SysMsg(playerid,"A cor primária, deve ser entre 0 e 255");
  4990. if(color2 == -1) color2 = color1;
  4991. else if(color2 < 0 || color2 > 255) return SysMsg(playerid,"A cor secundária 2, deve ser entre 0 e 255.");
  4992. new v = GetPlayerVehicleID(playerid);
  4993. if(v == INVALID_VEHICLE_ID) return SysMsg(playerid, "Você não está em um veículo.");
  4994. if(FVehicleData[v][FVFaction] > 0)
  4995. {
  4996. mysql_format(conn, mquery, sizeof(mquery), "UPDATE fveh SET Col1 = %i, Col2 = %i WHERE id = %i", color1, color2, FVehicleData[v][FVSQLID]);
  4997. mysql_pquery(conn, mquery);
  4998. FVehicleData[v][FVCol1] = color1;
  4999. FVehicleData[v][FVCol2] = color2;
  5000. ChangeVehicleColorEx(v, color1, color2);
  5001. ShowInfoText(playerid,"~G~R~R~E~B~S~Y~P~P~R~W~A~G~Y",3000);
  5002. SendClientMessageF(playerid, COLOR_WHITE, "A cor do veículo da facção mudou para: %s(%i) & %s(%i)", VehicleColors[color1], color1, VehicleColors[color2], color2);
  5003. return true;
  5004. }
  5005. else if(VehicleData[v][VehicleOwnerSQLID] > 0)
  5006. {
  5007. mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET Color1 = %i, Color2 = %i WHERE id = %i", color1, color2, VehicleData[v][VehSQLID]);
  5008. mysql_pquery(conn, mquery);
  5009. VehicleData[v][vColor1] = color1;
  5010. VehicleData[v][vColor2] = color2;
  5011. ChangeVehicleColorEx(v, color1, color2);
  5012. ShowInfoText(playerid,"~G~R~R~E~B~S~Y~P~P~R~W~A~G~Y",3000);
  5013. SendClientMessageF(playerid, COLOR_WHITE, "Cor do veículo de propriedade mudou para: %s(%i) & %s(%i)", VehicleColors[color1], color1, VehicleColors[color2], color2);
  5014. return true;
  5015. }
  5016. else if(aspawned{v})
  5017. {
  5018. ChangeVehicleColorEx(v, color1, color2);
  5019. SendClientMessageF(playerid, COLOR_WHITE, "Admin spawnou cor do veículo mudou para: %s(%i) & %s(%i)", VehicleColors[color1], color1, VehicleColors[color2], color2);
  5020. return true;
  5021. }
  5022. return true;
  5023. }
  5024. CMD:vreparar(playerid, params[])
  5025. {
  5026. if(!Logged{playerid}) return true;
  5027. if(!IsPlayerAdminLevelOK(playerid, 3)) return SysMsg(playerid, AUTHMSG);
  5028. new id;
  5029. if(IsPlayerInAnyVehicle(playerid) && sscanf(params, "i", id)) id = GetPlayerVehicleID(playerid);
  5030. else if(sscanf(params, "i", id)) return SysMsg(playerid, "Use: /vreparar [veiculo ID]");
  5031. if(id > GetVehiclePoolSize()) return SysMsg(playerid, "Não há nenhum veiculo.");
  5032. VehicleBroke[id] = 0;
  5033. FuelTypeAfterRefuel[id] = 0;
  5034. PlayerPlaySound(playerid, SOUND_CAR_MOD, 0, 0, 0);
  5035. RepairVehicleEx(id);
  5036. format(gstr, sizeof(gstr), "[Admin] Admin %s reparou o veiculo %s [ID %i].", NameEx(playerid), GetVehicleName(id), id);
  5037. AdminBroadcast(gstr, 1, 4);
  5038. return true;
  5039. }
  5040. CMD:inajail(playerid, params[])// atualmente ajail /inajail
  5041. {
  5042. if(!Logged{playerid}) return true;
  5043. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  5044. new count = 0;
  5045. SendClientMessage(playerid, COLOR_WHITE, "Atualmente Administrado preso");
  5046. foreach(new i: Player)
  5047. {
  5048. if(Logged{i})
  5049. {
  5050. if(AdminJailData[i][0] == 1)
  5051. {
  5052. SendClientMessageF(playerid, COLOR_LIGHTBLUE, "%s (%i) - %i minuto(s) remanescente.", NameEx(i), i, AdminJailData[i][1]);
  5053. count++;
  5054. }
  5055. }
  5056. }
  5057. if(count == 0) SendClientMessage(playerid, COLOR_LIGHTBLUE, "Ninguem");
  5058. return true;
  5059. }
  5060. CMD:clearstingers(playerid, params[])
  5061. {
  5062. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  5063. foreach(new i: Player)
  5064. {
  5065. if(StingerObjectID[i] >= 1)
  5066. {
  5067. DestroyDynamicObjectEx(StingerObjectID[i], "StingerObjectID[i] 0");
  5068. StingerObjectID[i] = INVALID_OBJECT_ID;
  5069. DestroyDynamicArea(StingerAreaID[i]);
  5070. StingerAreaID[i] = -1;
  5071. }
  5072. }
  5073. SendClientMessage(playerid, COLOR_LIGHTBLUE, "Todos os ferrões limpos.");
  5074. return true;
  5075. }
  5076. CMD:removerfogo(playerid, params[])//removerfogo
  5077. {
  5078. if(!Logged{playerid}) return true;
  5079. if((Faction[playerid] == FACTION_SACFD && FactionRank[playerid] > 8) || IsPlayerAdminLevelOK(playerid, 1))
  5080. {
  5081. new count = 0;
  5082. for(new i = 0; i < MAX_FIRES; i++)
  5083. {
  5084. if(Flame[i][Spawned] == 1)
  5085. {
  5086. count ++;
  5087. RemoveFire(i);
  5088. }
  5089. }
  5090. SendClientMessageF(playerid, COLOR_WHITE, "%i incêndios foram extintos", count);
  5091. }
  5092. else SysMsg(playerid, AUTHMSG);
  5093. return true;
  5094. }
  5095. CMD:togengine(playerid, params[])
  5096. {
  5097. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  5098. new vehicleid, status[5];
  5099. if(sscanf(params, "is[5]", vehicleid, status)) return SysMsg(playerid, "Use: /togengine [Veiculo ID] [on/off]");
  5100. if(vehicleid == INVALID_VEHICLE_ID) return SysMsg(playerid, "Veículo inválido.");
  5101. if(strmatch(status, "on"))
  5102. {
  5103. SendClientMessageF(playerid, COLOR_RED, "Você ativou o motor deste(a) %s (%i)", GetVehicleName(vehicleid), vehicleid);
  5104. ToggleVehicleEngine(vehicleid, 1);
  5105. }
  5106. if(strmatch(status, "off"))
  5107. {
  5108. SendClientMessageF(playerid, COLOR_RED, "Você desativou o motor deste(a) %s (%i)", GetVehicleName(vehicleid), vehicleid);
  5109. ToggleVehicleEngine(vehicleid, 0);
  5110. }
  5111. return true;
  5112. }
  5113. CMD:criarcasa(playerid, params[])
  5114. {
  5115. if(!Logged{playerid}) return true;
  5116. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  5117. if(GetFreeHouseArraySlot() == -1) return SysMsg(playerid, "Não há slots de casas gratuitas. (MAX_HOUSES atingiu)");
  5118. new NewHouseCost, NewInsideID, Description[30];
  5119. if(sscanf(params, "iis[30]", NewHouseCost, NewInsideID, Description)) return SysMsg(playerid,"Use: /criarcasa [valor] [opção interior] [descrição]");
  5120. if(NewHouseCost < 1) return SysMsg(playerid,"O custo deve ser > 0");
  5121. if(NewInsideID < 1 || NewInsideID > 29) return SysMsg(playerid,"Não existe tal InsideID.");
  5122. mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO houses (Description,oPosX,oPosY,oPosZ) VALUES ('%e',%f,%f,%f)", Description, PlayerPosX(playerid), PlayerPosY(playerid), PlayerPosZ(playerid));
  5123. mysql_pquery(conn, mquery, "InsertHouse", "ddds", playerid, NewHouseCost, NewInsideID, Description);
  5124. return true;
  5125. }
  5126. CMD:criargaragem(playerid, params[])
  5127. {
  5128. new GarageType, GarageHouse, Float:pos[3], Float:angle;
  5129. if(!IsPlayerAdminLevelOK(playerid, 4)) return SysMsg(playerid, AUTHMSG);
  5130. if(sscanf(params, "iif", GarageType, GarageHouse, angle)) return SysMsg(playerid,"Use: /criargaragem [tipo de garagem] [Casa ID(use /checkid)] [ângulo de saída do veículo]");
  5131. GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
  5132. mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO garages (HouseSQLID, GarageType, OutsideX, OutsideY, OutsideZ, InsideVW, OutsideVAngle) VALUES (%i, %i, %f, %f, %f, %i, %f)", GarageHouse, GarageType, pos[0], pos[1], pos[2], GarageHouse+60000, angle);
  5133. mysql_pquery(conn, mquery, "InsertHouseGarage", "iiifffif", GarageHouse, GarageType, pos[0], pos[1], pos[2], GarageHouse+60000, angle);
  5134. return true;
  5135. }
  5136. RCRP::InsertHouseGarage(playerid, GarageHouse, GarageType, Float:x, Float:y, Float:z, VW, Float:angle)
  5137. {
  5138. new g = GetFreeGarageArraySlot();
  5139. GarageData[g][gID] = cache_insert_id();
  5140. GarageData[g][gHouseID] = GetHouseIDFromSQLID(GarageHouse);
  5141. GarageData[g][gType] = GarageType;
  5142. GarageData[g][oPosX] = x;
  5143. GarageData[g][oPosY] = y;
  5144. GarageData[g][oPosZ] = z;
  5145. GarageData[g][iPosX] = 0.0;
  5146. GarageData[g][iPosY] = 0.0;
  5147. GarageData[g][iPosZ] = 0.0;
  5148. GarageData[g][iAngle] = 0.0;
  5149. GarageData[g][oAngle] = 0.0;
  5150. GarageData[g][oVehicleAngle] = angle;
  5151. GarageData[g][iVehicleAngle] = 0.0;
  5152. GarageData[g][iVirtualWorld] = VW;
  5153. GarageData[g][oVirtualWorld] = 0;
  5154. GarageData[g][GaragePickup] = CreateDynamicPickup(1318, 23, GarageData[g][oPosX], GarageData[g][oPosY], GarageData[g][oPosZ], 0, 0, -1, 10);
  5155. SysMsg(playerid, "A garagem foi criada.");
  5156. return true;
  5157. }
  5158. RCRP::InsertHouse(playerid, NewHouseCost, NewInsideID, Desc[])
  5159. {
  5160. new houseID = cache_insert_id(), vw = houseID+20000;
  5161. mysql_format(conn, mquery, sizeof(mquery), "UPDATE houses SET Price = %i, InsideID = %i, HouseVW = %i, OwnerSQLID = 0 WHERE id = %i", NewHouseCost, NewInsideID, vw, houseID);
  5162. mysql_pquery(conn, mquery);
  5163. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM houses WHERE id = %i LIMIT 1", houseID);
  5164. mysql_pquery(conn, mquery, "LoadHouses", "d", 1);
  5165. format(gstr, sizeof(gstr), "Casa criada '%s' por $%i", Desc, NewHouseCost);
  5166. AdminLog(playerid, 0, "", gstr);
  5167. return true;
  5168. }
  5169. CMD:editarcasa(playerid, params[])
  5170. {
  5171. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  5172. new houseid = -1;
  5173. for(new h = 0; h < MAX_HOUSES; h++)
  5174. {
  5175. if(IsPlayerInRangeOfPoint(playerid,DOOR_PROXIMITY,HouseData[h][oPosX],HouseData[h][oPosY],HouseData[h][oPosZ]) && GetPlayerVirtualWorld(playerid) == HouseData[h][HouseExtVW])
  5176. {
  5177. houseid = h;
  5178. break;
  5179. }
  5180. }
  5181. if(houseid == -1) return SysMsg(playerid,"Você não está perto de nenhuma casa.");
  5182. new element[10], value[30];
  5183. if(sscanf(params, "s[10]s[30]", element, value)) return SysMsg(playerid,"Use: /editarcasa [opção] [valor] Elementos: Valor, Dono, InsideID, Nome, Steamdist");
  5184. if(strcmp("valor", element, true) == 0)
  5185. {
  5186. if(!IsNumeric(value)) return SysMsg(playerid,"O custo deve ser um número.");
  5187. new NewHouseCost = strval(value);
  5188. if(NewHouseCost < 1) return SysMsg(playerid,"O custo deve ser > 0");
  5189. MySQLUpdateInt(HouseData[houseid][HouseSQLID], "Price", NewHouseCost, "houses");
  5190. HouseData[houseid][HousePrice] = NewHouseCost;
  5191. SysMsgF(playerid, "O preço da casa é agora $%i.", HouseData[houseid][HousePrice]);
  5192. format(gstr, sizeof(gstr), "Casa editada #%i preço para $%i", HouseData[houseid][HouseSQLID], NewHouseCost);
  5193. AdminLog(playerid, 0, "", gstr);
  5194. return true;
  5195. }
  5196. else if(strcmp("insideid", element, true) == 0)
  5197. {
  5198. if(!IsNumeric(value)) return SysMsg(playerid,"Inside ID deve ser um número.");
  5199. new NewInsideID = strval(value);
  5200. if(NewInsideID < 1 || NewInsideID > 35) return SysMsg(playerid,"ID interna inválida.");
  5201. if(NewInsideID == HouseData[houseid][HouseInterior]) return SysMsgF(playerid, "InsideID já está %i", NewInsideID);
  5202. if(NewInsideID == 11)
  5203. {
  5204. new Float:X, Float:Y, Float:Z, houseint;
  5205. if(sscanf(params, "s[10]ifffi", element, NewInsideID, X, Y, Z, houseint)) return SysMsg(playerid,"Use: /editarcasa InsideID 11 [x] [y] [z] [interior]");//interior novo
  5206. mysql_format(conn, mquery, sizeof(mquery), "UPDATE houses SET intPosX = %f, intPosY = %f, intPosZ = %f, InsideID = 11, HouseInterior = %i WHERE id = %i", X, Y, Z, houseint, HouseData[houseid][HouseSQLID]);
  5207. mysql_pquery(conn, mquery);
  5208. HouseData[houseid][InsideID] = NewInsideID;
  5209. HouseData[houseid][HouseInterior] = houseint;
  5210. HouseData[houseid][intPosX] = X;
  5211. HouseData[houseid][intPosY] = Y;
  5212. HouseData[houseid][intPosZ] = Z;
  5213. SysMsgF(playerid, "Casa dentro ID é agora %i. [%f, %f, %f, interior %i]", HouseData[houseid][InsideID], X, Y, Z, houseint);
  5214. return true;
  5215. }
  5216. mysql_format(conn, mquery, sizeof(mquery), "UPDATE houses SET intPosX = 0.0, intPosY = 0.0, intPosZ = 0.0, InsideID = %i WHERE id = %i", NewInsideID, HouseData[houseid][HouseSQLID]);
  5217. mysql_pquery(conn, mquery);
  5218. HouseData[houseid][InsideID] = NewInsideID;
  5219. HouseData[houseid][intPosX] = 0.0;
  5220. HouseData[houseid][intPosY] = 0.0;
  5221. HouseData[houseid][intPosZ] = 0.0;
  5222. SysMsgF(playerid, "Casa dentro ID é agora %i.", HouseData[houseid][InsideID]);
  5223. format(gstr, sizeof(gstr), "Casa editada #%i Inside ID para %i", houseid, NewInsideID);
  5224. AdminLog(playerid, 0, "", gstr);
  5225. return true;
  5226. }
  5227. else if(strcmp("dono", element, true) == 0)
  5228. {
  5229. if(strcmp(value, "None", false) == 0)
  5230. {
  5231. foreach(new i: Player)
  5232. {
  5233. if(HouseData[houseid][HouseOwnerSQLID] == SQLID[i])
  5234. {
  5235. HasHouseKey[i][0] = -1;
  5236. HasHouseKey[i][1] = -1;
  5237. ProcessHouseKey(i);
  5238. break;
  5239. }
  5240. }
  5241. HouseData[houseid][HouseOwnerSQLID] = 0;
  5242. HouseData[houseid][HouseLocked] = 0;
  5243. UpdateHousePickup(houseid);
  5244. MySQLUpdateInt(HouseData[houseid][HouseSQLID], "OwnerSQLID", 0, "houses");
  5245. format(sgstr, sizeof(sgstr), "Casa editada #%i proprietário de NONE", houseid);
  5246. AdminLog(playerid, 0, "", sgstr);
  5247. return true;
  5248. }
  5249. new accid = MySQLCheckAccount(value, playerid);
  5250. if(accid == 0) return SysMsg(playerid, "Nenhuma conta de jogador encontrada.");
  5251. MySQLUpdateInt(HouseData[houseid][HouseSQLID], "OwnerSQLID", accid, "houses");
  5252. foreach(new i: Player)
  5253. {
  5254. if(HouseData[houseid][HouseOwnerSQLID] == SQLID[i])
  5255. {
  5256. HasHouseKey[i][0] = -1;
  5257. HasHouseKey[i][1] = -1;
  5258. ProcessHouseKey(i);
  5259. break;
  5260. }
  5261. }
  5262. HouseData[houseid][HouseOwnerSQLID] = accid;
  5263. SysMsgF(playerid, "Proprietário da casa é agora %s.", GetSQLName(HouseData[houseid][HouseOwnerSQLID]));
  5264. format(gstr, sizeof(gstr), "Casa editada #%i proprietário para %s", GetSQLName(HouseData[houseid][HouseOwnerSQLID]));
  5265. AdminLog(playerid, 0, "", gstr);
  5266. return true;
  5267. }
  5268. else if(strcmp("nome", element, true) == 0)
  5269. {
  5270. MySQLUpdateString(HouseData[houseid][HouseSQLID], "Description", value, "houses");
  5271. format(HouseData[houseid][HouseDescription], 60, value);
  5272. UpdateHouseLabel(houseid);
  5273. SysMsgF(playerid, "Nome da casa é agora %s.", HouseData[houseid][HouseDescription]);
  5274. format(gstr, sizeof(gstr), "Casa editada #%i nome para %s", HouseData[houseid][HouseSQLID], HouseData[houseid][HouseDescription]);
  5275. AdminLog(playerid, 0, "", gstr);
  5276. return true;
  5277. }
  5278. else if(strcmp("streamdist", element, true) == 0)
  5279. {
  5280. if(!IsNumeric(value)) return SysMsg(playerid, "Use: /editarcasa streamdist [valor] *Deve ser numérico*");
  5281. new distance = strval(value);
  5282. if(distance > 25) return SysMsg(playerid, "A distância deve ser 25 ou maior.");
  5283. HouseData[houseid][ExtStreamDist] = float(distance);
  5284. mysql_format(conn, mquery, sizeof(mquery), "UPDATE houses SET ExteriorStreamDistance = %f WHERE id = %i", float(distance), HouseData[houseid][HouseSQLID]);
  5285. mysql_pquery(conn, mquery);
  5286. SysMsgF(playerid, "A distância da mobília exterior da casa ajustou-se a %i", distance);
  5287. return true;
  5288. }
  5289. SysMsg(playerid,"*Usage: /editarcasa [opção] [valor] Elementos: Valor, Dono, InsideID, Nome");
  5290. return true;
  5291. }
  5292. CMD:editveh(playerid, params[])
  5293. {
  5294. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  5295. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você precisa estar em um veiculo.");
  5296. new vehicle = GetPlayerVehicleID(playerid), element[10], value[30];
  5297. if(sscanf(params, "s[10]S()[30]", element, value)) return SysMsg(playerid,"Use: /editveh [opção] [número] Elementos: Valor, Pos, Trancado, placa");
  5298. if(strcmp("valor", element, true) == 0)
  5299. {
  5300. if(vehicle == VehicleData[vehicle][IdVehicle])
  5301. {
  5302. if(isnull(value)) return SysMsg(playerid,"Use: /editveh valor [número]");
  5303. if(!IsNumeric(value)) return SysMsg(playerid,"O custo deve ser um número.");
  5304. new NewVehicleCost = strval(value);
  5305. if(NewVehicleCost < 1) return SysMsg(playerid,"O custo deve ser > 0");
  5306. mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET Price = %i WHERE id = %i", NewVehicleCost, VehicleData[vehicle][VehSQLID]);
  5307. mysql_pquery(conn, mquery);
  5308. VehicleData[vehicle][VehiclePrice] = NewVehicleCost;
  5309. SysMsgF(playerid, "O valor do veiculo agora é $%i.", VehicleData[vehicle][VehiclePrice]);
  5310. return true;
  5311. }
  5312. return SysMsg(playerid,"Você não estar em nenhum veiculo (de um proprietário).");
  5313. }
  5314. else if(strcmp("pos", element, true) == 0)
  5315. {
  5316. if(VehicleData[vehicle][IdVehicle] > 0) return SysMsg(playerid,"Você não estar em nenhum veiculo (de um proprietário).");
  5317. new Float:vPos[4];
  5318. GetVehiclePos(vehicle, vPos[0], vPos[1], vPos[2]);
  5319. GetVehicleZAngle(vehicle, vPos[3]);
  5320. mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET LastX = %f, LastY = %f, LastZ = %f, LastRot = %f WHERE id = %i", vPos[0], vPos[1], vPos[2], vPos[3], VehicleData[vehicle][VehSQLID]);
  5321. mysql_pquery(conn, mquery);
  5322. VehicleData[vehicle][LastX] = vPos[0];
  5323. VehicleData[vehicle][LastY] = vPos[1];
  5324. VehicleData[vehicle][LastZ] = vPos[2];
  5325. VehicleData[vehicle][LastRot] = vPos[3];
  5326. SysMsg(playerid, "Posição de veiculo atualizada.");
  5327. return true;
  5328. }
  5329. else if(strcmp("placa", element, true) == 0)
  5330. {
  5331. if(vehicle == 0) return SysMsg(playerid,"Você não estar em nenhum veiculo.");
  5332. if(vehicle == VehicleData[vehicle][IdVehicle])
  5333. {
  5334. if(isnull(value)) return SysMsg(playerid,"Use: /editveh placa [novo número]");
  5335. if(strlen(value) > MAX_REG_PLATE-1) return SysMsg(playerid,"Essa placa é muito grande.");
  5336. mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET RegPlate = '%e' WHERE id = %i", value, VehicleData[vehicle][VehSQLID]);
  5337. mysql_pquery(conn, mquery);
  5338. format(VehicleData[vehicle][RegPlate], MAX_REG_PLATE, value);
  5339. SysMsgF(playerid,"O número da placa agora é '%s'.", VehicleData[vehicle][RegPlate]);
  5340. return true;
  5341. }
  5342. }
  5343. SysMsg(playerid,"*Usage: /editveh [opção] [valor] opçãões: Valor, Pos, Fechado, Delete, Regplate");
  5344. return true;
  5345. }
  5346. CMD:reloadgates(playerid)
  5347. {
  5348. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  5349. SendRconCommand("reloadfs Doors_And_Gates");
  5350. SendClientMessage(playerid, COLOR_WHITE, "Todos os portões e portas foram {44C300}re-carregados.");
  5351. return true;
  5352. }
  5353. CMD:reloadpicks(playerid)
  5354. {
  5355. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  5356. SendRconCommand("reloadfs picks");
  5357. SendClientMessage(playerid, COLOR_WHITE, "Todos os portões e portas foram {44C300}re-carregados.");
  5358. return true;
  5359. }
  5360. CMD:reloadmaps(playerid)
  5361. {
  5362. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  5363. SendRconCommand("reloadfs Maps");
  5364. SendClientMessage(playerid, COLOR_WHITE, "Todos os mapas foram {44C300}re-carregados.");
  5365. return true;
  5366. }
  5367. CMD:reloadmaps2(playerid)
  5368. {
  5369. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  5370. SendRconCommand("reloadfs Maps2");
  5371. SendClientMessage(playerid, COLOR_WHITE, "Todos os mapas foram {44C300}re-carregados.");
  5372. return true;
  5373. }
  5374. CMD:reloadmremovidos(playerid)
  5375. {
  5376. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  5377. SendRconCommand("reloadfs mremovidos");
  5378. SendClientMessage(playerid, COLOR_WHITE, "Todos os mapas removidos foram {44C300}re-carregados.");
  5379. return true;
  5380. }
  5381. CMD:reloadfactions(playerid, params[])//reloadfactions
  5382. {
  5383. new hof;
  5384. MySQLFetchInt(MasterAccount[playerid], "HoF", hof, "masters");
  5385. if(!IsPlayerAdminLevelOK(playerid, 4) && hof == 0) return SysMsg(playerid, AUTHMSG);
  5386. for(new f = 0; f > 20; f++)
  5387. {
  5388. FACTIONS[f][FactionId] = 0;
  5389. FACTIONS[f][FactionName][0] = 0;
  5390. FACTIONS[f][FNameShort][0] = 0;
  5391. FACTIONS[f][FactionSpawn1][0] = 0;
  5392. FACTIONS[f][FactionSpawn1][1] = 0;
  5393. FACTIONS[f][FactionSpawn1][2] = 0;
  5394. FACTIONS[f][FactionSpawn1][3] = 0;
  5395. FACTIONS[f][FactionSpawn2][0] = 0;
  5396. FACTIONS[f][FactionSpawn2][1] = 0;
  5397. FACTIONS[f][FactionSpawn2][2] = 0;
  5398. FACTIONS[f][FactionSpawn2][3] = 0;
  5399. FACTIONS[f][FactionSpawn3][0] = 0;
  5400. FACTIONS[f][FactionSpawn3][1] = 0;
  5401. FACTIONS[f][FactionSpawn3][2] = 0;
  5402. FACTIONS[f][FactionSpawn3][3] = 0;
  5403. FACTIONS[f][FactionSpawn4][0] = 0;
  5404. FACTIONS[f][FactionSpawn4][1] = 0;
  5405. FACTIONS[f][FactionSpawn4][2] = 0;
  5406. FACTIONS[f][FactionSpawn4][3] = 0;
  5407. FACTIONS[f][FactionSpawn5][0] = 0;
  5408. FACTIONS[f][FactionSpawn5][1] = 0;
  5409. FACTIONS[f][FactionSpawn5][2] = 0;
  5410. FACTIONS[f][FactionSpawn5][3] = 0;
  5411. FACTIONS[f][FactionSpawnVW][0] = 0;
  5412. FACTIONS[f][FactionSpawnVW][1] = 0;
  5413. FACTIONS[f][FactionSpawnVW][2] = 0;
  5414. FACTIONS[f][FactionSpawnVW][3] = 0;
  5415. FACTIONS[f][FactionSpawnVW][4] = 0;
  5416. FACTIONS[f][FactionSpawnInt][0] = 0;
  5417. FACTIONS[f][FactionSpawnInt][1] = 0;
  5418. FACTIONS[f][FactionSpawnInt][2] = 0;
  5419. FACTIONS[f][FactionSpawnInt][3] = 0;
  5420. FACTIONS[f][FactionSpawnInt][4] = 0;
  5421. FACTIONS[f][FactionSpawn1Name][0] = 0;
  5422. FACTIONS[f][FactionSpawn2Name][0] = 0;
  5423. FACTIONS[f][FactionSpawn3Name][0] = 0;
  5424. FACTIONS[f][FactionIsGang] = 0;
  5425. FACTIONS[f][FactionIsActive] = 0;
  5426. FACTIONS[f][FactionBankBalance] = 0;
  5427. FACTIONS[f][FactionRadioChannel] = 0;
  5428. FACTIONS[f][FactionRankPay][0] = 0;
  5429. FACTIONS[f][FactionRankPay][1] = 0;
  5430. FACTIONS[f][FactionRankPay][2] = 0;
  5431. FACTIONS[f][FactionRankPay][3] = 0;
  5432. FACTIONS[f][FactionRankPay][4] = 0;
  5433. FACTIONS[f][FactionRankPay][5] = 0;
  5434. FACTIONS[f][FactionRankPay][6] = 0;
  5435. FACTIONS[f][FactionRankPay][7] = 0;
  5436. FACTIONS[f][FactionRankPay][8] = 0;
  5437. FACTIONS[f][FactionRankPay][9] = 0;
  5438. FACTIONS[f][FactionRankPay][10] = 0;
  5439. FACTIONS[f][FactionRankPay][11] = 0;
  5440. FACTIONS[f][FactionRankPay][12] = 0;
  5441. FACTIONS[f][FactionRankPay][13] = 0;
  5442. FACTIONS[f][FactionRankPay][14] = 0;
  5443. FACTIONS[f][FactionPayDayTax] = 0;
  5444. FACTIONS[f][FactionSkins][0] = 0;
  5445. FACTIONS[f][FactionSkins][1] = 0;
  5446. FACTIONS[f][FactionSkins][2] = 0;
  5447. FACTIONS[f][FactionSkins][3] = 0;
  5448. FACTIONS[f][FactionSkins][4] = 0;
  5449. FACTIONS[f][FactionSkins][5] = 0;
  5450. FACTIONS[f][FactionSkins][6] = 0;
  5451. FACTIONS[f][FactionSkins][7] = 0;
  5452. FACTIONS[f][FactionSkins][8] = 0;
  5453. FACTIONS[f][FactionSkins][9] = 0;
  5454. FACTIONS[f][FactionSkins][10] = 0;
  5455. FACTIONS[f][FactionSkins][11] = 0;
  5456. FACTIONS[f][FactionSkins][12] = 0;
  5457. FACTIONS[f][FactionSkins][13] = 0;
  5458. FACTIONS[f][FactionSkins][14] = 0;
  5459. FACTIONS[f][FactionLeaderRank] = 0;
  5460. FACTIONS[f][FactionUberLeaderRank] = 0;
  5461. for(new x = 0; x < 15; x++)
  5462. {
  5463. FactionRanks[f][x][0] = EOS;
  5464. }
  5465. }
  5466. mysql_pquery(conn, "SELECT * FROM factions ORDER BY id ASC", "LoadFactions");
  5467. SendClientMessage(playerid, COLOR_WHITE, "Todos facções foram {44C300}re-carregadas.");
  5468. AdminLog(playerid, 0, "", "Todos facções da base de dados foram recarregadas");
  5469. return true;
  5470. }
  5471. CMD:reloadgarages(playerid, params[])
  5472. {
  5473. if(!IsPlayerAdminLevelOK(playerid, 4)) return SysMsg(playerid, AUTHMSG);
  5474. for(new i = 0; i < MAX_GARAGES; i++)
  5475. {
  5476. GarageData[i][gID] = 0;
  5477. GarageData[i][gHouseID] = -1;
  5478. GarageData[i][gType] = 0;
  5479. GarageData[i][oPosX] = 0;
  5480. GarageData[i][oPosY] = 0;
  5481. GarageData[i][oPosZ] = 0;
  5482. GarageData[i][iPosX] = 0;
  5483. GarageData[i][iPosY] = 0;
  5484. GarageData[i][iPosZ] = 0;
  5485. GarageData[i][iAngle] = 0;
  5486. GarageData[i][oAngle] = 0;
  5487. GarageData[i][oVehicleAngle] = 0;
  5488. GarageData[i][iVehicleAngle] = 0;
  5489. GarageData[i][iVirtualWorld] = 0;
  5490. GarageData[i][oVirtualWorld] = 0;
  5491. GarageData[i][InsideInt] = 0;
  5492. DestroyDynamicPickup(GarageData[i][GaragePickup]);
  5493. GarageData[i][GaragePickup] = 0;
  5494. GarageData[i][UseHouse] = false;
  5495. }
  5496. mysql_pquery(conn, "SELECT * FROM garages", "LoadGarages");
  5497. SendClientMessage(playerid, COLOR_WHITE, "Todos os portões foram {44C300}re-carregados.");
  5498. return true;
  5499. }
  5500. CMD:reloadhouse(playerid, params[]) return cmd_reloadhouses(playerid, params);
  5501. CMD:reloadhouses(playerid, params[])
  5502. {
  5503. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  5504. if(isnull(params)) return SysMsg(playerid, "Use: /reloadhouse [todas / nome da casa]");
  5505. if(strcmp(params, "todas", true) == 0)
  5506. {
  5507. for(new b = 0; b < MAX_HOUSES; b++)
  5508. {
  5509. if(HouseData[b][HouseSQLID] >= 1)
  5510. {
  5511. DestroyDynamicPickup(HouseData[b][HousePickup]);
  5512. DeleteHouseLabel(b);
  5513. ClearHouseFuritureVariables(b);
  5514. ClearOutdoorFurnitureVariables(b);
  5515. HouseData[b][HouseSQLID] = 0;
  5516. HouseData[b][oPosX] = 0;
  5517. HouseData[b][oPosY] = 0;
  5518. HouseData[b][oPosZ] = 0;
  5519. HouseData[b][intPosX] = 0;
  5520. HouseData[b][intPosY] = 0;
  5521. HouseData[b][intPosZ] = 0;
  5522. HouseData[b][HouseInterior] = 0;
  5523. HouseData[b][HouseExtVW] = 0;
  5524. HouseData[b][HousePrice] = 0;
  5525. HouseData[b][HouseOwnerSQLID] = 0;
  5526. HouseData[b][HouseDescription][0] = EOS;
  5527. HouseData[b][HouseLocked] = 0;
  5528. HouseData[b][InsideID] = 0;
  5529. HouseData[b][StoredCash] = 0;
  5530. HouseData[b][StoredWeed] = 0;
  5531. HouseData[b][StoredCocaine] = 0;
  5532. HouseData[b][StoredMoonShine] = 0;
  5533. HouseData[b][StoredPhone] = 0;
  5534. HouseData[b][DoorNoteMessage][0] = 0;
  5535. HouseData[b][HouseVW] = 0;
  5536. HouseData[b][HousePickup] = 0;
  5537. HouseData[b][HouseLabel] = Text3D:INVALID_3DTEXT_ID;
  5538. HouseData[b][HouseLights] = false;
  5539. }
  5540. }
  5541. mysql_tquery(conn, "SELECT * FROM houses", "LoadHouses", "d", 0);
  5542. mysql_tquery(conn, "SELECT * FROM hfurniture ORDER BY HouseSQLID ASC", "LoadHouseFurniture");
  5543. mysql_tquery(conn, "SELECT * FROM efurniture ORDER BY HouseSQLID ASC", "LoadExteriorHouseFurniture");
  5544. SetTimer("ProcessHKeys", 1000, 0);
  5545. SendClientMessage(playerid, COLOR_WHITE, "Todas as casas foram {44C300}re-carregadas.");
  5546. AdminLog(playerid, 0, "", "Todas as casas da base de dados foram re-carregadas.");
  5547. }
  5548. else
  5549. {
  5550. new h = GetHouseLocation(params), sql;
  5551. if(h < 0 || h >= MAX_HOUSES) return SysMsg(playerid, "A casa não é válida.");
  5552. SendClientMessageF(playerid,COLOR_WHITE, "%s (ID %i) {44C300}recarregada", HouseData[h][HouseDescription], HouseData[h][HouseSQLID]);
  5553. DestroyDynamicPickup(HouseData[h][HousePickup]);
  5554. DeleteHouseLabel(h);
  5555. ClearHouseFuritureVariables(h);
  5556. ClearOutdoorFurnitureVariables(h);
  5557. sql = HouseData[h][HouseSQLID];
  5558. HouseData[h][HouseSQLID] = 0;
  5559. HouseData[h][oPosX] = 0;
  5560. HouseData[h][oPosY] = 0;
  5561. HouseData[h][oPosZ] = 0;
  5562. HouseData[h][intPosX] = 0;
  5563. HouseData[h][intPosY] = 0;
  5564. HouseData[h][intPosZ] = 0;
  5565. HouseData[h][HouseInterior] = 0;
  5566. HouseData[h][HouseExtVW] = 0;
  5567. HouseData[h][HousePrice] = 0;
  5568. HouseData[h][HouseOwnerSQLID] = 0;
  5569. HouseData[h][HouseDescription][0] = EOS;
  5570. HouseData[h][HouseLocked] = 0;
  5571. HouseData[h][InsideID] = 0;
  5572. HouseData[h][StoredCash] = 0;
  5573. HouseData[h][StoredWeed] = 0;
  5574. HouseData[h][StoredCocaine] = 0;
  5575. HouseData[h][StoredMoonShine] = 0;
  5576. HouseData[h][StoredPhone] = 0;
  5577. HouseData[h][DoorNoteMessage][0] = 0;
  5578. HouseData[h][HouseVW] = 0;
  5579. HouseData[h][HousePickup] = 0;
  5580. HouseData[h][HouseLabel] = Text3D:INVALID_3DTEXT_ID;
  5581. HouseData[h][HouseLights] = false;
  5582. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM houses WHERE id = %i LIMIT 1", sql);
  5583. mysql_pquery(conn, mquery, "LoadHouses", "d", 1);
  5584. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM hfurniture WHERE HouseSQLID = %i", sql);
  5585. mysql_pquery(conn, mquery, "LoadHouseFurniture");
  5586. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM efurniture WHERE HouseSQLID = %i", sql);
  5587. mysql_pquery(conn, mquery, "LoadExteriorHouseFurniture");
  5588. format(tgstr, sizeof(tgstr), "Reloaded house %i", h);
  5589. AdminLog(playerid, 0, "", tgstr);
  5590. }
  5591. return true;
  5592. }
  5593. CMD:reloadinteriors(playerid, params[])
  5594. {
  5595. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  5596. for(new i = 0; i < MAX_INTERIORS; i++)
  5597. {
  5598. Interiors[i][interiorID] = 0;
  5599. Interiors[i][oPosX] = 0;
  5600. Interiors[i][oPosY] = 0;
  5601. Interiors[i][oPosZ] = 0;
  5602. Interiors[i][iPosX] = 0;
  5603. Interiors[i][iPosY] = 0;
  5604. Interiors[i][iPosZ] = 0;
  5605. Interiors[i][iAngle] = 0;
  5606. Interiors[i][oAngle] = 0;
  5607. Interiors[i][iInteriorID] = 0;
  5608. Interiors[i][oInteriorID] = 0;
  5609. Interiors[i][iVirtualWorld] = 0;
  5610. Interiors[i][oVirtualWorld] = 0;
  5611. Interiors[i][InteriorNavTo] = 0;
  5612. Interiors[i][IntFaction] = 0;
  5613. Interiors[i][IntFactionRank] = 0;
  5614. Interiors[i][InteriorName][0] = 0;
  5615. }
  5616. mysql_pquery(conn, "SELECT * FROM interiors", "LoadInteriors");
  5617. SendClientMessage(playerid, COLOR_WHITE, "Todos os interior foram {44C300}recarregada.");
  5618. return true;
  5619. }
  5620. CMD:reloadpickups(playerid, params[])
  5621. {
  5622. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  5623. for(new i = 0; i < MAX_SQLPICKUPS; i++)
  5624. {
  5625. DestroyDynamicPickup(PickupData[i][IGPickupID]);
  5626. PickupData[i][IGPickupID] = 0;
  5627. PickupData[i][PickupText][0] = 0;
  5628. PickupData[i][Xpos] = 0;
  5629. PickupData[i][Ypos] = 0;
  5630. PickupData[i][Zpos] = 0;
  5631. PickupData[i][PickupModel] = 0;
  5632. PickupData[i][WorldID] = 0;
  5633. PickupData[i][PickupType] = 0;
  5634. }
  5635. mysql_pquery(conn, "SELECT * FROM pickups", "LoadAllPickups");
  5636. SendClientMessage(playerid, COLOR_WHITE, "Todas pickups foram {44C300}recarregada.");
  5637. return true;
  5638. }
  5639. CMD:reloadrentalcars(playerid, params[])
  5640. {
  5641. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  5642. foreach(new i: Player)
  5643. {
  5644. if(RentalCar[i] >= 1) return SysMsg(playerid, "Há um jogador atualmente com veiculo alugado.");
  5645. }
  5646. for(new v = 0, x = GetVehiclePoolSize(); v <= x; v++)
  5647. {
  5648. if(RentalData[v][CarID] != 0)
  5649. {
  5650. DestroyVehicleEx(RentalData[v][CarID], "RentalData[v][CarID]");
  5651. RentalData[v][CarSQLID] = 0;
  5652. RentalData[v][CarID] = 0;
  5653. RentalData[v][CarModel] = 0;
  5654. RentalData[v][rColor1] = 0;
  5655. RentalData[v][rColor2] = 0;
  5656. RentalData[v][CarMileage] = 0.0;
  5657. RentalData[v][rPosX] = 0.0;
  5658. RentalData[v][rPosY] = 0.0;
  5659. RentalData[v][rPosZ] = 0.0;
  5660. RentalData[v][rRot] = 0.0;
  5661. RentalData[v][RentalPrice] = 0;
  5662. RentalData[v][RentalPlate][0] = 0;
  5663. }
  5664. }
  5665. mysql_pquery(conn, "SELECT * FROM `rentals`", "LoadRentalCars");
  5666. SendClientMessage(playerid, COLOR_WHITE, "Todos os veiculos de aluguel foram {44C300}Recarregada.");
  5667. return true;
  5668. }
  5669. CMD:criarcarrodealuguel(playerid, params[])
  5670. {
  5671. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  5672. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você precisa estar em um veiculo para usar esse comando.");
  5673. if(VehicleData[GetPlayerVehicleID(playerid)][VehSQLID] >= 1) return SysMsg(playerid, "Você não pode fazer veículos de propriedade em carros de aluguer.");
  5674. if(FVehicleData[GetPlayerVehicleID(playerid)][FVSQLID] >= 1) return SysMsg(playerid, "Você não pode fazer veículos facção em carros de aluguer.");
  5675. new cost;
  5676. if(sscanf(params, "i", cost)) return SysMsg(playerid, "Use: /criarcarrodealuguel [valor] *Assegure-se de que o veículo está na posição correcta e tem as cores correctas.*");
  5677. new pos[64], Float:vpos[4], v = GetPlayerVehicleID(playerid), col[2], plate[12], model;
  5678. GetVehiclePos(v, vpos[0], vpos[1], vpos[2]);
  5679. GetVehicleZAngle(v, vpos[3]);
  5680. GetVehicleColors(v, col[0], col[1]);
  5681. model = GetVehicleModel(v);
  5682. format(pos, sizeof(pos), "%f,%f,%f,%f", vpos[0], vpos[1], vpos[2], vpos[3]);
  5683. format(plate, sizeof(plate), "%s", GetNewRegPlate());
  5684. DestroyVehicleEx(v, "v 3");
  5685. ClearVehicleData(v);
  5686. mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO rentals (Model, Color1, Color2, Position, Price, RegPlate) VALUES (%i, %i, %i, '%e', %i, '%e')", model, col[0], col[1], pos, cost, plate);
  5687. mysql_pquery(conn, mquery, "LoadNewRentalCar", "d", playerid);
  5688. return true;
  5689. }
  5690. CMD:fazerveh(playerid, params[])
  5691. {
  5692. if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG);
  5693. new vid;
  5694. new NewVehCost, NewC1, NewC2, donator, ownerSQLID = -1, mileage, lastoiled;
  5695. vid = GetPlayerVehicleID(playerid);
  5696. if(!vid) return SysMsg(playerid,"Você precisa estar dentro do veiculo.");
  5697. if(sscanf(params, "iiiiiii", NewVehCost, NewC1, NewC2, donator, mileage, lastoiled, ownerSQLID)) return SysMsg(playerid,"Use: /fazerveh [valor] [col1] [col2] [donator 1/0] [mileage] [last oiled] [owner sqlid or 0]");
  5698. if(NewVehCost < 1) return SysMsg(playerid,"O custo deve ser > 0");
  5699. if(NewC1 < 0 || NewC1 > 255) return SysMsg(playerid,"As cores devem estar entre 0-255");
  5700. if(NewC2 < 0 || NewC2 > 255) return SysMsg(playerid,"As cores devem estar entre 0-255");
  5701. mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM vehicles WHERE OwnerSQLID = %i", ownerSQLID);
  5702. mysql_pquery(conn, mquery, "MakeVeh", "dddddddd", playerid, NewVehCost, NewC1, NewC2, donator, mileage, lastoiled, ownerSQLID);
  5703. return true;
  5704. }
  5705. CMD:cfv(playerid, params[])
  5706. {
  5707. new hof;
  5708. MySQLFetchInt(MasterAccount[playerid], "HoF", hof, "masters");
  5709. if(!IsPlayerAdminLevelOK(playerid, 4) && hof != 1) return SysMsg(playerid, AUTHMSG);
  5710. new Float:X, Float:Y, Float:Z, Float:Rot, model, vid, NewC1, NewC2, inter, faction, confirm[12], j;
  5711. vid = GetPlayerVehicleID(playerid);
  5712. if(!vid) return SysMsg(playerid,"Você precisa estar dentro do veiculo.");
  5713. model = GetVehicleModel(vid);
  5714. new t = 0;
  5715. for(j = 0; j < sizeof(AllowedFactionVehs); j++)
  5716. {
  5717. if(model == AllowedFactionVehs[j][0])
  5718. {
  5719. t = 1;
  5720. break;
  5721. }
  5722. }
  5723. if(t == 0) return SysMsg(playerid, "Este veículo não é um veículo de facção aprovado.");
  5724. if(model != AllowedFactionVehs[j][0]) return SysMsg(playerid, "Este veículo não é um veículo de facção aprovado.");
  5725. if(sscanf(params, "iS(none)[12]", faction, confirm)) return SysMsg(playerid, "Use: /cfv [facção ID]");
  5726. if(faction < 1 || faction > MAX_FACTIONS) return SysMsg(playerid,"Facção deve ser mais do que 0.");
  5727. if(FACTIONS[faction][FactionId] == 0) return SysMsg(playerid, "Facção deve ser válida.");
  5728. if(strmatch("none", confirm)) SendSplitMessageF(playerid, COLOR_LIGHTGREEN, "[CFV] Adicionou este %s na facção %s [ID %i] vai custar um total de $%s, tipo (/cfv %i confirmar) para confirmar a transação.", GetVehicleNameEx(AllowedFactionVehs[j][0]), GetFactionNameFromId(faction), faction, format_cash(AllowedFactionVehs[j][1]), faction);
  5729. else if(strmatch("confirmar", confirm))
  5730. {
  5731. if(model != AllowedFactionVehs[j][0]) return SysMsg(playerid, "Este veículo não é um veículo de facção aprovado.");
  5732. if(Cash[playerid] < AllowedFactionVehs[j][1]) return SysMsg(playerid, "Você não tem dinheiro suficiente para executar este comando.");
  5733. new plate[8];
  5734. GetVehiclePos(vid,X,Y,Z);
  5735. GetVehicleZAngle(vid,Rot);
  5736. GetVehicleColors(vid, NewC1, NewC2);
  5737. inter = GetPlayerInterior(playerid);
  5738. format(plate, MAX_REG_PLATE, GetNewRegPlate());
  5739. DestroyVehicleEx(vid, "vid 0");
  5740. mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO fveh (Model, Col1, Col2, Faction, RegPlate, MinRank, LocationX, LocationY, LocationZ, LocationR, Interior, VWorld, Creator) VALUES (%i, %i, %i, %i, '%e', 1, %f, %f, %f, %f, %i, %i, %i)",
  5741. model, NewC1, NewC2, faction, plate, X, Y, Z, Rot, inter, GetPlayerVirtualWorld(playerid), SQLID[playerid]);
  5742. mysql_pquery(conn, mquery, "CreateFVeh");
  5743. GivePlayerCash(playerid, -AllowedFactionVehs[j][1]);
  5744. SendClientMessageF(playerid, COLOR_LIGHTGREEN, "Adicionou este %s na facção %s [ID %i] vai custar um total de $%s.", GetVehicleNameEx(AllowedFactionVehs[j][0]), GetFactionNameFromId(faction), faction, format_cash(AllowedFactionVehs[j][1]));
  5745. format(sgstr, sizeof(sgstr), "Criado f.veh por %s(fid %i), %s", GetFactionNameFromId(faction), faction, GetVehicleName(vid));
  5746. AdminLog(playerid, 0, "", sgstr);
  5747. }
  5748. return true;
  5749. }
  5750. CMD:dfv(playerid)
  5751. {
  5752. new hof;
  5753. MySQLFetchInt(MasterAccount[playerid], "HoF", hof, "masters");
  5754. if(!IsPlayerAdminLevelOK(playerid, 4) && hof != 1) return SysMsg(playerid, AUTHMSG);
  5755. if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você precisa estar dentro do veiculo.");
  5756. if(!IsFactionVehicle(GetPlayerVehicleID(playerid))) return SysMsg(playerid, "You must be in a faction vehicle.");
  5757. new vid = GetPlayerVehicleID(playerid);
  5758. mysql_format(conn, mquery, sizeof(mquery), "DELETE FROM fveh WHERE id=%i LIMIT 1", FVehicleData[vid][FVSQLID]);
  5759. mysql_pquery(conn, mquery);
  5760. format(sgstr, sizeof(sgstr), "Deleted f.veh for %s(fid %i), %s", GetFactionNameFromId(FVehicleData[vid][FVFaction]), FVehicleData[vid][FVFaction], GetVehicleName(vid));
  5761. AdminLog(playerid, 0, "", sgstr);
  5762. ClearVehicleData(vid);
  5763. DestroyVehicleEx(vid, "vid 1");
  5764. SysMsgF(playerid, "o veiculo de facção ID %i foi deletado.", vid);
  5765. return true;
  5766. }
  5767. CMD:fids(playerid, params[])
  5768. {
  5769. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  5770. gstr[0] = EOS;
  5771. new fname[35];
  5772. for(new i = 1; i < MAX_FACTIONS; i++)
  5773. {
  5774. if(FACTIONS[i][FactionId] >= 1)
  5775. {
  5776. format(fname, sizeof(fname), "%i - %s\n", FACTIONS[i][FactionId], FACTIONS[i][FactionName]);
  5777. strcat(gstr, fname);
  5778. }
  5779. }
  5780. ShowMessage(playerid, "Facções ID", gstr, "OK");
  5781. return true;
  5782. }
  5783. CMD:fedit(playerid, params[])
  5784. {
  5785. new hof, header[64];
  5786. MySQLFetchInt(MasterAccount[playerid], "HoF", hof, "masters");
  5787. if(IsPlayerAdminLevelOK(playerid, 4) || hof == 1)
  5788. {
  5789. if(isnull(params)) return SysMsg(playerid, "Use: /fedit [facção ID]");
  5790. if(!IsNumeric(params)) return SysMsg(playerid, "Use: /fedit [facção ID]");
  5791. if(strval(params) >= MAX_FACTIONS) return SysMsg(playerid, "Faction ID exceeds max factions.");
  5792. if(FACTIONS[strval(params)][FactionId] == 0) return SysMsg(playerid, "Invalid faction.");
  5793. new f = strval(params);
  5794. new isgang[8], isactive[8];
  5795. if(FACTIONS[f][FactionIsGang] == 1) format(isgang, 8, "YES");
  5796. else format(isgang, 8, "NO");
  5797. if(FACTIONS[f][FactionIsActive] == 1) format(isactive, 8, "YES");
  5798. else format(isactive, 8, "NO");
  5799. format(gstr, sizeof(gstr), "{FFFFFF}Editar nome da facção\nEditar Abv da facção. [Atual: {D9D925}%s{FFFFFF}]\nEdit Uber Rank [Atual: {D9D925}%s [%i]{ffffff}]\nEditar Rank do líder [Atual: {D9D925}%s [%i]{FFFFFF}]\nEditar líder [Atual: {D9D925}%s{FFFFFF}]\nEditar rádio freq [Atual: {D9D925}%i MHz{FFFFFF}]\nÉ Gang [{D9D925}%s{FFFFFF}]\nÉ ativa [{D9D925}%s{FFFFFF}]", FACTIONS[f][FNameShort],
  5800. GetFactionRankName(f, FACTIONS[f][FactionUberLeaderRank]), FACTIONS[f][FactionUberLeaderRank], GetFactionRankName(f, FACTIONS[f][FactionLeaderRank]), FACTIONS[f][FactionLeaderRank], GetSQLName(FACTIONS[f][FactionLeader]), FACTIONS[f][FactionRadioChannel], isgang, isactive);
  5801. SetPVarInt(playerid, "fEditf", f);
  5802. format(header, sizeof(header), "Menu Editar facção - %s [ID %i]", GetFactionNameFromId(f), f);
  5803. Dialog_Show(playerid, FactionEditMenu, DIALOG_STYLE_LIST, header, gstr, "Selecionar", "Cancelar");
  5804. }
  5805. else return SysMsg(playerid, AUTHMSG);
  5806. return true;
  5807. }
  5808. CMD:precisao(playerid, params[])
  5809. {
  5810. if(!Logged{playerid}) return true;
  5811. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  5812. new playa = -1;
  5813. if(sscanf(params, "u", playa)) return SysMsg(playerid, "Use: /precisao [playerID ou name]");
  5814. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  5815. if(ShotsFired[playa] == 0) return SysMsg(playerid, "Este jogador não disparou nenhuma bala.");
  5816. SendClientMessageF(playerid, COLOR_LIGHTGREEN, "Visualizando a exatidão de {FFFFFF}%s!", NameEx(playa));
  5817. SendClientMessageF(playerid, COLOR_WHITE, "Número de balas disparadas na sessão atual: %i. Número de balas atingidas na sessão atual: %i. Número de headshots na sessão atual: %i.", ShotsFired[playa], ShotsHit[playa], HeadshotsHit[playa]);
  5818. SendClientMessageF(playerid, COLOR_WHITE, "Precisão de acerto total: %.2f. Porcentagem Headshot: %.2f", GetHitAccuracy(playa), GetHeadshotAccuracy(playa));
  5819. return true;
  5820. }
  5821. CMD:userlog(playerid, params[])
  5822. {
  5823. if(!Logged{playerid}) return true;
  5824. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  5825. new playa = -1, page;
  5826. if(sscanf(params, "ui", playa, page)) return SysMsg(playerid, "Use: /userlog [playerID ou name] [pagina 1 or 2]");
  5827. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  5828. if(MasterAccount[playa] == 29469 && MasterAccount[playerid] == 19025) return SysMsg(playerid, "É bom tentar, amigo. Amor, Emmalee");
  5829. if(page != 1 && page != 2) return SysMsg(playerid, "Página inválida. Insira 1 ou 2.");
  5830. new bigstring[3000];
  5831. sgstr[0] = EOS;
  5832. if(page == 1)
  5833. {
  5834. for(new x = 24; x != -1; x--)
  5835. {
  5836. if(strlen(ActionLog[playa][x]))
  5837. {
  5838. strunpack(sgstr, ActionLog[playa][x], sizeof(sgstr));
  5839. strcat(bigstring, sgstr);
  5840. strcat(bigstring, "\n");
  5841. }
  5842. }
  5843. }
  5844. else
  5845. {
  5846. for(new x = 49; x != 24; x--)
  5847. {
  5848. if(strlen(ActionLog[playa][x]))
  5849. {
  5850. strunpack(sgstr, ActionLog[playa][x], sizeof(sgstr));
  5851. strcat(bigstring, sgstr);
  5852. strcat(bigstring, "\n");
  5853. }
  5854. }
  5855. }
  5856. if(!strlen(bigstring)) return SysMsg(playerid, "Não foi possível encontrar um registro de ação para este jogador.");
  5857. new sub[32];
  5858. format(sub, 32, "Registro de ação de %s", NameEx(playa));
  5859. ShowMessage(playerid, sub, bigstring, "Fechar!");
  5860. return true;
  5861. }
  5862. CMD:ccash(playerid, params[])
  5863. {
  5864. if(!Logged{playerid}) return true;
  5865. if(!IsPlayerAdminLevelOK(playerid, 2)) return SysMsg(playerid, AUTHMSG);
  5866. new playa = -1;
  5867. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /infodinheiro [ID ou nome do jogador]");
  5868. if(InvalidPlayer(playa)) return SysMsg(playerid,"Esse jogador não está conectado.");
  5869. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  5870. if(!Logged{playa}) return SysMsg(playerid,"Esse jogador não está logado.");
  5871. SendClientMessageF(playerid, COLOR_WHITE, "Detalhes financeiros de %s: Dinheiro em mãos: $%s, Saldo bancário: $%s",NameEx(playa), format_cash(Cash[playa]), format_cash(BankBalance[playa]));
  5872. return true;
  5873. }
  5874. CMD:skiphosp(playerid, params[])
  5875. {
  5876. if(!Logged{playerid}) return true;
  5877. if(!IsPlayerAdminLevelOK(playerid, 1)) return true;
  5878. if(isnull(params))
  5879. {
  5880. ReleaseHospitalizedPlayer(playerid);
  5881. AdminLog(playerid, 0, "", "Skipped hospital");
  5882. }
  5883. else
  5884. {
  5885. new playa = -1;
  5886. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /skiphosp [player id ou nome]");
  5887. if(!IsInHospital{playa}) return SysMsg(playerid, "That player is not in the hospital.");
  5888. ReleaseHospitalizedPlayer(playa);
  5889. SendClientMessageF(playerid, COLOR_LIGHTGREEN, "You have successfully skipped %s[ID %i]'s hospital time.", NameEx(playa), playa);
  5890. format(gstr, sizeof(gstr), "[Admin] Admin %s has skipped %s[ID %i]'s hospital.", NameEx(playerid), NameEx(playa), playa);
  5891. AdminBroadcast(gstr, 1, 3);
  5892. SendClientMessage(playa, COLOR_LIGHTRED, "You have been discharged from hospital. Have a nice day and be careful out there!");
  5893. AdminLog(playerid, 0, "", "Skipped hospital for a player");
  5894. }
  5895. return true;
  5896. }
  5897. /* CMD:ip(playerid, params[])
  5898. {
  5899. if(isnull(params))
  5900. {
  5901. SendClientMessageF(playerid, COLOR_WHITE, "IP Address: %s", PlayerIP[playerid]);
  5902. SendClientMessageF(playerid, COLOR_WHITE, "Server Latency: %ims", GetPlayerPing(playerid));
  5903. }
  5904. else
  5905. {
  5906. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  5907. new playa = -1;
  5908. if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /ip [ID ou nome do jogador]");
  5909. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  5910. //SendClientMessageF(playerid, COLOR_WHITE, "IP Address: %s, Server Latency: %ims", PlayerIP[playa], GetPlayerPing(playa));
  5911. SendClientMessageF(playerid, COLOR_WHITE, "IP Address: %s, Country: %s, Area: %s", PlayerIP[playa], GetPlayerCountryName(playa), GetPlayerCountryRegion(playa));
  5912. SendClientMessageF(playerid, COLOR_WHITE, "Server Latency: %ims, ISP: %s", GetPlayerPing(playa), GetPlayerISP(playa));
  5913. }
  5914. return true;
  5915. } */
  5916. CMD:refundodinheiro(playerid, params[])
  5917. {
  5918. if(!IsPlayerAdminLevelOK(playerid, 4)) return false;
  5919. new pname[MAX_PLAYER_NAME], playa = -1, amount, sqlid = -1;
  5920. if(sscanf(params, "s[24]i", pname, amount)) return SysMsg(playerid,"Use: /refundodinheiro [playerid ou nome] [Quantidade]");
  5921. if(IsNumeric(pname))
  5922. {
  5923. if(!IsPlayerConnected(strval(pname)) || !Logged{strval(pname)}) return SysMsg(playerid, "O ID do jogador não foi conectado e conectado.");
  5924. playa = strval(pname);
  5925. sqlid = SQLID[playa];
  5926. }
  5927. else
  5928. {
  5929. sqlid = MySQLCheckAccount(pname, playerid);
  5930. if(sqlid <= 0) return SysMsg(playerid, "O nome não foi encontrado. Por favor, inclua o primeiro nome, sobrenome e um título de destaque OU use o ID de identidade atual.");
  5931. }
  5932. if(sqlid == -1) return SysMsg(playerid, "O nome não foi encontrado. Por favor, inclua o primeiro nome, sobrenome e um título de destaque OU use o ID de identidade atual.");
  5933. if(sqlid == SQLID[playerid] && !IsPlayerAdmin(playerid)) return SysMsg(playerid, "Não pode ser você mesmo.");
  5934. if(amount < 1 || amount > 10000000) return SysMsg(playerid,"Amount must be more than 0 and 10,000,000 or less.");
  5935. if(playa >= 0)
  5936. {
  5937. GivePlayerCash(playa, amount);
  5938. MySQLUpdateInt(SQLID[playa], "Cash", Cash[playa], "players");
  5939. format(gstr, sizeof(gstr),"Admin %s refundou a você $%s.", NameEx(playerid), format_cash(amount));
  5940. SendClientMessage(playa, COLOR_LIGHTGREEN, gstr);
  5941. format(gstr, sizeof(gstr),"[Admin] %s refundou a %s $%s.", NameEx(playerid), NameEx(playa), format_cash(amount));
  5942. AdminBroadcast(gstr, 0);
  5943. format(gstr, sizeof(gstr),"[%s] O jogador %s(%i) recebeu refundo de $%i do administrador %s(%i). (Total: $%i)", GetServerTimeString(), NameEx(playa), playa, amount, NameEx(playerid), playerid, Cash[playa]);
  5944. AddToLog("cash", gstr);
  5945. format(gstr, sizeof(gstr), "Refund cash $%i", amount);
  5946. AdminLog(playerid, SQLID[playa], GetName(playa), gstr);
  5947. }
  5948. else
  5949. {
  5950. foreach(new i: Player) if(sqlid == SQLID[i]) return SysMsg(playerid, "Nada foi encontrado, use o ID do jogador.");
  5951. new tempval;
  5952. MySQLFetchInt(sqlid, "Cash", tempval, "players");
  5953. tempval += amount;
  5954. MySQLUpdateInt(sqlid, "Cash", tempval, "players");
  5955. format(gstr, sizeof(gstr),"[Admin] %s refundou a %s $%s.", NameEx(playerid), GetSQLName(sqlid), format_cash(amount));
  5956. AdminBroadcast(gstr, 0);
  5957. format(gstr, sizeof(gstr),"[%s] O jogador Offline %s recebeu de refundo $%i do administrador %s(%i). (Total: $%i)", GetServerTimeString(), GetSQLName(sqlid), amount, NameEx(playerid), playerid, tempval);
  5958. AddToLog("cash", gstr);
  5959. format(gstr, sizeof(gstr), "Reembolso em dinheiro $%i", amount);
  5960. AdminLog(playerid, sqlid, GetSQLName(sqlid), gstr);
  5961. }
  5962. return true;
  5963. }
  5964. CMD:delacc(playerid, params[])
  5965. {
  5966. if(!IsPlayerAdmin(playerid)) return false;
  5967. new sqlid = -1;
  5968. if(isnull(params)) return SysMsg(playerid,"Use: /delacc [Nome_Sobrenome] *Irá deletar uma conta*");
  5969. sqlid = MySQLCheckAccount(params, playerid);
  5970. if(sqlid <= 1) return SysMsg(playerid, "Esse nome não foi encontrado, escreva o (Nome_Sobrenome) corretamente.");
  5971. if(sqlid == SQLID[playerid]) return SysMsg(playerid, "Não pode ser você mesmo.");
  5972. foreach(new p: Player)
  5973. {
  5974. if(sqlid == SQLID[p] && Logged{p})
  5975. {
  5976. SendClientMessageToAllF(COLOR_RED, "Admin %s deletou permanente a conta %s.", NameEx(playerid), NameEx(p));
  5977. KickPlayer(p, 15);
  5978. }
  5979. }
  5980. format(gstr, sizeof(gstr),"[Admin] %s deletou a conta '%s' da database do servidor.", NameEx(playerid), GetSQLName(sqlid));
  5981. AdminBroadcast(gstr, 0);
  5982. format(gstr, sizeof(gstr), "Conta deletada %s(SQLID %i)", GetSQLName(sqlid), sqlid);
  5983. AdminLog(playerid, 0, "", gstr);
  5984. mysql_format(conn, mquery, sizeof(mquery), "DELETE FROM players WHERE id = %i LIMIT 1", sqlid);
  5985. mysql_pquery(conn, mquery);
  5986. return true;
  5987. }
  5988. CMD:boomboxid(playerid, params[])
  5989. {
  5990. if(!Logged{playerid}) return true;
  5991. foreach(new p: Player)
  5992. {
  5993. if(IsPlayerInDynamicArea(playerid, Boomboxes[p][BoomArea]) && IsValidDynamicArea(Boomboxes[p][BoomArea]))
  5994. {
  5995. return SendClientMessageF(playerid, COLOR_OOC, "O ID deste boombox é %i.", p);
  5996. }
  5997. }
  5998. SysMsg(playerid, "Você não está perto de uma boombox, chegue mais perto e tente novamente.");
  5999. return true;
  6000. }
  6001. CMD:fcarlist(playerid, params[])
  6002. {
  6003. for(new j = 0; j < sizeof(AllowedFactionVehs); j++)
  6004. {
  6005. printf("%s - $%s", GetVehicleNameEx(AllowedFactionVehs[j][0]), format_cash(AllowedFactionVehs[j][1]));
  6006. }
  6007. return true;
  6008. }
  6009. CMD:aesconder(playerid, params[])
  6010. {
  6011. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, CMDFMSG);
  6012. AdminHidden[playerid] = !AdminHidden[playerid];
  6013. if(ADuty[playerid] == 1)
  6014. {
  6015. ADuty[playerid] = 0;
  6016. SetPlayerColor(playerid, 0xFFFFFF00);
  6017. SysMsg(playerid,"O dever de administração foi desligado automaticamente.");
  6018. if(UsingPaint{playerid}) cmd_paint(playerid);
  6019. }
  6020. if(AdminHidden[playerid]) SysMsg(playerid, "Você está escondido agora do /admins.");
  6021. else SysMsg(playerid, "Você não está mais escondido do /admins.");
  6022. return true;
  6023. }
  6024. CMD:stranger(playerid, params[])
  6025. {
  6026. if(!Logged{playerid}) return true;
  6027. if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG);
  6028. new stranger, playa = -1;
  6029. if(sscanf(params, "i", stranger)) return SysMsg(playerid,"Use: /estranho [mascara ID]");
  6030. foreach(new i: Player)
  6031. {
  6032. if(Logged{i} && IsPlayerMasked{i} && MaskLabelNumber[i] == stranger)
  6033. {
  6034. playa = i;
  6035. break;
  6036. }
  6037. }
  6038. if(playa == -1) return SysMsg(playerid,"Não há jogadores atualmente usando esse ID de mascara");
  6039. SendClientMessageF(playerid,COLOR_YELLOW, "*Mascarado %i(%s ID %i)", stranger, NameEx(playa), playa);
  6040. return true;
  6041. }
  6042. CMD:reportar(playerid, params[])
  6043. {
  6044. if(!Logged{playerid}) return true;
  6045. new AdminCount = 0;
  6046. foreach(new i: Player) if(IsPlayerAdminLevelOK(i, 1)) AdminCount ++;
  6047. if(AdminCount == 0) return SysMsg(playerid, "No momento não há admins/helpers online.");
  6048. new playa = -1, reason[150], name[MAX_PLAYER_NAME];
  6049. if(sscanf(params, "s[24]s[150]", name, reason))
  6050. {
  6051. SysMsg(playerid,"Use: /reportar [ID ou nome do jogador] [razão *Max 50 Caracteres*]");
  6052. SysMsg(playerid, "Lembrete: Este comando é para reportar outros jogadores que estão quebrando regras.");
  6053. return SysMsg(playerid, "Aviso: Use /assistencia Se você tiver uma pergunta ou exigir assistência admin.");
  6054. }
  6055. if(strval(name) >= 500)
  6056. {
  6057. foreach(new p: Player)
  6058. {
  6059. if(MaskLabelNumber[p] == strval(name))
  6060. {
  6061. playa = p;
  6062. }
  6063. }
  6064. }
  6065. else playa = GetPlayerIDs(name);
  6066. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  6067. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  6068. if(playa == playerid) return SysMsg(playerid,"Não pode se reportar a si mesmo.");
  6069. SendReport(playerid, playa, reason);
  6070. foreach(new i: Player)
  6071. {
  6072. if(IsPlayerAdminLevelOK(i, 1))
  6073. {
  6074. SendSplitMessageF(i,COLOR_YELLOW,"* Reporte de %s(%i) sobre %s(%i): %s", NameEx(playerid), playerid, NameEx(playa), playa, reason);
  6075. }
  6076. }
  6077. SendClientMessage(playerid, COLOR_ORANGE, "Relatório enviado a todos os administradores on-line. Use /cancelarreporte se você não precisa mais.");
  6078. return true;
  6079. }
  6080. CMD:cancelarreporte(playerid, params[])
  6081. {
  6082. if(!Logged{playerid}) return true;
  6083. new name[24], playa = -1;
  6084. if(sscanf(params, "s[24]", name)) return SysMsg(playerid,"Use: /cancelarreporte [ID ou nome do jogador]");
  6085. if(strval(name) >= 500)
  6086. {
  6087. foreach(new p: Player)
  6088. {
  6089. if(MaskLabelNumber[p] == strval(name))
  6090. {
  6091. playa = p;
  6092. }
  6093. }
  6094. }
  6095. else playa = GetPlayerIDs(name);
  6096. if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER);
  6097. if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC.");
  6098. if(playa == playerid) return SysMsg(playerid,"Não pode se reportar.");
  6099. new reportcancelled = 0;
  6100. for(new x = 0; x < MAX_REPORTS; x++)
  6101. {
  6102. if(strmatch(Reports[x][ReportedName], NameEx(playa)))
  6103. {
  6104. Reports[x][ReporterName][0] = EOS;
  6105. Reports[x][ReportedName][0] = EOS;
  6106. Reports[x][ReportReason][0] = EOS;
  6107. Reports[x][ReportTime] = 0;
  6108. reportcancelled = 1;
  6109. }
  6110. }
  6111. if(reportcancelled == 0) SendClientMessage(playerid, COLOR_ORANGE, "Não foi possível encontrar um reporte sobre esse jogador.");
  6112. else SendClientMessageF(playerid, COLOR_ORANGE, "Você cancelou seu reporte. %s.", NameRP(playa));
  6113. return true;
  6114. }
  6115. CMD:entrarevento(playerid, params[])//entrarevento
  6116. {
  6117. if(!Logged{playerid}) return true;
  6118. if(EventOpen == 0) return SysMsg(playerid,"Não há evento.");
  6119. if(IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você não pode participar em um veículo.");
  6120. if(LastEventPos[playerid][0] != -1.0) return SysMsg(playerid,"Você já está no evento.");
  6121. GetPlayerPos(playerid, LastEventPos[playerid][0], LastEventPos[playerid][1], LastEventPos[playerid][2]);
  6122. LastEventIDs[playerid][0] = GetPlayerInterior(playerid);
  6123. LastEventIDs[playerid][1] = GetPlayerVirtualWorld(playerid);
  6124. SetPlayerPos(playerid, EventData[EventX], EventData[EventY], EventData[EventZ]);
  6125. SetPlayerInterior(playerid, EventData[EventInterior]);
  6126. SetPlayerVirtualWorldEx(playerid, EventData[EventVW]);
  6127. format(gstr, sizeof(gstr), "Você se juntou ao evento: %s. Use /sairevento para sair.", EventData[EventName]);
  6128. SendClientMessage(playerid, COLOR_ORANGE, gstr);
  6129. UnlockAchievement(playerid, 67);
  6130. return true;
  6131. }
  6132. CMD:exitevent(playerid, params[])//sairevento
  6133. {
  6134. if(!Logged{playerid}) return true;
  6135. if(IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você não pode sair em um veículo.");
  6136. if(LastEventPos[playerid][0] == -1.0) return SysMsg(playerid,"Você não está em um evento.");
  6137. SetPlayerPos(playerid, LastEventPos[playerid][0], LastEventPos[playerid][1], LastEventPos[playerid][2]);
  6138. SetPlayerInterior(playerid, LastEventIDs[playerid][0]);
  6139. SetPlayerVirtualWorldEx(playerid, LastEventIDs[playerid][1]);
  6140. LastEventPos[playerid][0] = -1.0;
  6141. LastEventPos[playerid][1] = -1.0;
  6142. LastEventPos[playerid][2] = -1.0;
  6143. LastEventIDs[playerid][0] = 0;
  6144. LastEventIDs[playerid][1] = 0;
  6145. SendClientMessage(playerid, COLOR_ORANGE, "Você saiu do evento.");
  6146. return true;
  6147. }