123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248 |
- /* TODO
- wirkt unvollständig: function resetplayer(uuid) {
- *) Display. HP als Prozent anzeigen
- read.number
- //artefakt platzieren. wo erlaubt?
- //fiktionalen schaden austeilen
- kampfwaffen
- 0...20 --> reales leben
- 0...xyz --> fiktives leben
- fiktive schadenszahl durch 2 = xp
- mit nicht kampfwaffen
- fiktive schadenszahl mal 2 = xp
- //schaden einstecken
- nur wenn man komplette rüstung anhat, erlittener schaden durch 3 = xp
- Eropster, [22.11.17 07:59]
- Notiz an mich: Reparatur level einbauen, Elo und Einfluss, Gold- und Itemdrops
- Magier Zepter
- Jäger Bogen
- Krieger Schwert
- Barbar Axt
- Schurke Dolch
- Mönch Kampfstab
- TODO before release
- *) //cancel = true; Auskommentiert: Um Bauarbeiten zu ermöglichen, während andere Spieler in der Nähe sind
- *) bei seasonreset auskommentierung des teleports entfernen
- */
- /* Erklärung für Codeverständnis
- Art Name Inhalt und Erklärung
- gdmap gilden <id>, <gtype/membersatm/membersmax/adelatm/adelmax/golddelay/gold/name/
- - gtype Unterscheidung Gruppe/Gilde
- - membersatm momentane Mitgliederzahl
- - membersmax maximale Mitgliederzahl
- - adelatm momentane Adelanzahl
- - adelmax maximale Adelanzahl
- - golddelay Anzahl der Tage, seit eine Gilde im Minus ist
- - gold Gold
- - name Name
- gmap gildenblock <id>, <loc>; Loc des Gildenblocks
- gmap gildentime <id>, <time>; Wann die Gilde das nächste Mal angegriffen werden kann
- gmap gildenplot <id>, <plotid>; Liefert die Plotid zur Gildenid
- gmap gsharexp <id>, <true/false>; Gruppe/Gilde XP-Teilung an/aus
- gmap gsharegold <id>, <true/false>; Gruppe/Gilde Gold-Teilung an/aus
- gdmap gildenplayer <uuid>, <joined/
- gvar gpvpjoined Boolean, ob Spieler in gpvpwelt war
- gmap gpvpplayers <uuid>, "wusi"; Alle Spieler im Gildenpvp
- gvar gcoinsatm Gold, das der Spieler bei sich trägt
- gvar gcoinsbank <anzahl>; Gold, das der Spieler in der Bank aufbewahrt
- gvar nextjoin <time>; wann ein Spieler wieder einer Gilde beitreten kann
- gdmap gmembers <id> <uuid>, <rang>; Rang eines Spielers innerhalb der Gilde/Gruppe
- gmap gnicknames <uuid>, <nickname>; Nickname eines Spielers in der Gilde
- sgvar gildencounter forlaufende ID, Anzahl aller Gilden und Gruppen
- sgvar artedaycounter jeden 3.Tag wird der arteblock in die ruine gesetzt
- sgvar arteyetloc die momentane position des arteblocks, falls platziert, ansonsten uuid des trägers
- sgvar artehitpoints 250 in ruine/10 auf gilden gs
- gdmap gildeninvite <uuid> <gname>, <senderuuid>; Gildeneinladungen für einen Spieler. senderuuid ist der Einlader
- gdmap dailyrewardplayers <uuid>, <day>, <1/null>; 1 = kiste(geöffnet), null = zukunft/blackconcrete; monatsübersicht der täglichen belohnungen aller spieler
- gdmap gfriends <uuid>, <uuid(Freund)>, true;
- map newfriends <uuid(Einlader)>, <uuid(Eingeladener)>
- map blocktime <id>, <time.getMillis()>; Damit Gildenblock nur 1 Mal pro Sekunde geklickt werden kann
- map gmoveids <moveid>, <gildenid>;
- var artetime time.getMillis(); Damit Artefakt nur 1 Mal pro Sekunde geklickt werden kann
- table onothergs UUID, plotid; Zur Überprüfung, ob Spieler noch immer auf fremden Gildengs
- list scheduledtax <id>; Verzögerte Abrechnung der Steuer, weil Gilde im Kampf
- map gstatus <plotid>, <0/1>; 0 = kampfphase (60 minuten), 1 = stehl phase (30 minuten)
- table gstatustable <plotid>, <0/1>; 0 = kampfphase (60 minuten), 1 = stehl phase (30 minuten)
- map gattackers <attacker-id>, <defender-id>;
- map gdefenders <defender-id>, <attacker-id>;
- set forbiddenblocks <loc>; Block unter Gildenblock (von allen Gildenblocks)
- set forbiddenblocks2 <loc>; Berech 11x11x7 um den Gildenblock
- map gfights <plotid>, <set>; Plot-ID der verteidigenden Gilde, mit allen Spielern eines Kampfes im Set
- map clicks <gildenblockloc>, <0-200>; HP des Gildenblocks
- table invitations <uuid(Eingeladener)>, <id>; Hier ist jede Gilden-Einladung vorhanden. Nach 5 Min wird Index 0 gelöscht.
- gmap gildenplot2 <plotid>, <id>; Liefert die Gildenid zur Plotid
- set gameadmins <uuid>; Spieler mit absoluten Verwaltungsrechten (im Normalfall nur der Snuvimaster, also marvinius)
- set gamemasters <uuid>; Spieler mit mehr Team-Berechtigungen
- map bindingmenus <uuid>, <inv>; Enthält die Hotkey-Invs zum Skills casten
- map onlinelists <id>, <list>; Enthält die Listen der Online-Spieler der Gilden/Gruppen
- map gclassvi <uuid>, <entity_name>; Den Namen des Entities, bei dem man gerade im Menü ist.
- list gcreaterlist <uuid>; Alle Spieler, die den Gildenvillager anklicken. Werden nach einer gewissen Zeit gelöscht (5 Min)
- map adcooldown <player>, <time>; 180 Sekunden Cooldown für "ad"-Weltnachrichten
- */
- msg("dev", "§bGildenpvp §rwurde geladen.");
- event.load("bucket_fill");
- event.load("entity_click");
- event.load("entity_death");
- event.load("custom_command");
- event.load("command");
- event.load("block_place");
- event.load("block_break");
- event.load("block_click");
- event.load("inv_click");
- event.load("player_move");
- event.load("player_login");
- event.load("player_logout");
- event.load("player_pre_respawn");
- event.load("player_hurt");
- event.load("player_heal");
- event.load("player_pickup");
- event.load("portal");
- event.load("player_death");
- event.load("function_key");
- event.load("inv_close");
- command.add("gilde");
- command.add("g");
- command.add("guild");
- command.add("pay");
- command.add("group");
- command.add("friend");
- command.add("placearte");
- command.add("slots");
- command.add("skill");
- command.add("pinfo");
- command.add("playerinfo");
- command.add("bank");
- command.add("money");
- map.new(xpforblocks);
- map.add(xpforblocks, "minecraft:coal_ore", 3);
- map.add(xpforblocks, "minecraft:redstone_ore", 7);
- map.add(xpforblocks, "minecraft:lapis_ore", 12);
- map.add(xpforblocks, "minecraft:iron_ore", 15);
- map.add(xpforblocks, "minecraft:gold_ore", 18);
- map.add(xpforblocks, "minecraft:obsidian", 20);
- map.add(xpforblocks, "minecraft:diamond_ore", 25);
- map.add(xpforblocks, "minecraft:emerald_ore", 35);
- map.add(xpforblocks, "minecraft:log", 2);
- map.add(xpforblocks, "minecraft:log2", 2);
- map.add(xpforblocks, "minecraft:leaves", 2);
- map.add(xpforblocks, "minecraft:leaves2", 2);
- map.add(xpforblocks, "minecraft:web", 2);
- map.add(xpforblocks, "minecraft:potatoes", 3);
- map.add(xpforblocks, "minecraft:carrots", 3);
- map.add(xpforblocks, "minecraft:beetroot", 3);
- map.add(xpforblocks, "minecraft:cacao", 3);
- map.add(xpforblocks, "minecraft:reeds", 3);
- map.add(xpforblocks, "minecraft:pumpkin", 15);
- map.add(xpforblocks, "minecraft:melon_block", 15);
- set.new(richblocks);
- set.add(richblocks, "minecraft:coal_block");
- set.add(richblocks, "minecraft:gold_block");
- set.add(richblocks, "minecraft:iron_block");
- set.add(richblocks, "minecraft:redstone_block");
- set.add(richblocks, "minecraft:lapis_block");
- set.add(richblocks, "minecraft:emerald_block");
- set.add(richblocks, "minecraft:diamond_block");
- set.add(richblocks, "minecraft:coal_ore");
- set.add(richblocks, "minecraft:gold_ore");
- set.add(richblocks, "minecraft:iron_ore");
- set.add(richblocks, "minecraft:redstone_ore");
- set.add(richblocks, "minecraft:lapis_ore");
- set.add(richblocks, "minecraft:emerald_ore");
- set.add(richblocks, "minecraft:diamond_ore");
- map.new(xpforentities); //math.random(xp * 0.7, xp * 1.3);
- map.add(xpforentities, "EntityWither", 1000);
- map.add(xpforentities, "EntityZombie", 110);
- map.add(xpforentities, "EntitySpider", 110);
- map.add(xpforentities, "EntitySkeleton", 110);
- map.add(xpforentities, "EntityCreeper", 110);
- map.add(xpforentities, "EntityPigZombie", 110);
- map.add(xpforentities, "EntityEndermite", 110);
- map.add(xpforentities, "EntityMagmaCube", 110);
- map.add(xpforentities, "EntitySlime", 110);
- map.add(xpforentities, "EntityZomieVillager", 110);
- map.add(xpforentities, "EntityEnderman", 185);
- map.add(xpforentities, "EntityWitch", 185);
- map.add(xpforentities, "EntitySilverfish", 185);
- map.add(xpforentities, "EntityGhast", 185);
- map.add(xpforentities, "EntityWitherSkeleton", 185);
- map.new(skillnametoid);
- //Jäger
- map.add(skillnametoid, "Splitterbombe", 56);
- map.add(skillnametoid, "Schnellschuss", 57);
- map.add(skillnametoid, "Trollsalbe", 58);
- map.add(skillnametoid, "Stachelpfeil", 59);
- map.add(skillnametoid, "Sprung", 60);
- map.add(skillnametoid, "Magentritt", 61);
- map.add(skillnametoid, "Trägheitspfeil", 62);
- map.add(skillnametoid, "Netzfalle", 63);
- map.add(skillnametoid, "Arkaner Schuss", 64);
- map.add(skillnametoid, "Brandpfeil", 65);
- map.add(skillnametoid, "Waldhorn", 66);
- map.add(skillnametoid, "Giftslave", 67);
- map.add(skillnametoid, "Blendpfeil", 68);
- map.add(skillnametoid, "Schnellfeuer", 69);
- map.add(skillnametoid, "Dornenranken", 70);
- map.add(skillnametoid, "Blätterkokon", 71);
- //Schurke
- map.add(skillnametoid, "Dolchangriff", 72);
- map.add(skillnametoid, "Bandagieren", 73);
- map.add(skillnametoid, "Schattenhieb", 74);
- map.add(skillnametoid, "Trittnägel", 75);
- map.add(skillnametoid, "Rauchbombe", 76);
- map.add(skillnametoid, "Schattenform", 77);
- map.add(skillnametoid, "Festnageln", 78);
- map.add(skillnametoid, "Dietrich", 79);
- map.add(skillnametoid, "Giftklinge", 80);
- map.add(skillnametoid, "Schattenschritt", 81);
- map.add(skillnametoid, "Herzsucher", 82);
- map.add(skillnametoid, "Rückruf", 83);
- map.add(skillnametoid, "Assassinensiegel", 84);
- map.add(skillnametoid, "Kehlschnitt", 85);
- map.add(skillnametoid, "Widerhaken", 86);
- map.add(skillnametoid, "Todgeweiht", 87);
- //Barbar
- map.add(skillnametoid, "Axthieb", 88);
- map.add(skillnametoid, "Blutrausch", 89);
- map.add(skillnametoid, "Wuchtschlag", 90);
- map.add(skillnametoid, "Aggressiver Ausbruch", 91);
- map.add(skillnametoid, "Axtwurf", 92);
- map.add(skillnametoid, "Zertrümmern", 93);
- map.add(skillnametoid, "Innere Wut", 94);
- map.add(skillnametoid, "Verkrüppeln", 95);
- map.add(skillnametoid, "Aufstampfen", 96);
- map.add(skillnametoid, "Lebensbrecher", 97);
- map.add(skillnametoid, "Ausweiden", 98);
- map.add(skillnametoid, "Kampfeslust", 99);
- map.add(skillnametoid, "Knochenbrecher", 100);
- map.add(skillnametoid, "Schlachtruf", 101);
- map.add(skillnametoid, "Pfad der Narben", 102);
- map.add(skillnametoid, "Hungernde Klinge", 103);
- //Krieger
- map.add(skillnametoid, "Schwerthieb", 104);
- map.add(skillnametoid, "Schmerz ertragen", 105);
- map.add(skillnametoid, "Schildstoß", 106);
- map.add(skillnametoid, "Klingenwirbel", 107);
- map.add(skillnametoid, "Eiserner Wille", 108);
- map.add(skillnametoid, "Kniezerschmetterer", 109);
- map.add(skillnametoid, "Stürmen", 110);
- map.add(skillnametoid, "Kriegsruf", 111);
- map.add(skillnametoid, "Drachenhaut", 112);
- map.add(skillnametoid, "Wütender Schlag", 113);
- map.add(skillnametoid, "Schildwall", 114);
- map.add(skillnametoid, "Schwertknaufschlag", 115);
- map.add(skillnametoid, "Entwaffnen", 116);
- map.add(skillnametoid, "Dornenpanzer", 117);
- map.add(skillnametoid, "Unbeugsam", 118);
- map.add(skillnametoid, "Verspotten", 119);
- gamesworld = world.get("games");
- gpvpworld = world.get("gpvpnew");
- spawnislandtoloc = loc.new(gamesworld, -323, 143, 7, -90, 0);
- gildenvillagerloc = loc.new(gpvpworld, 134, 142, 490);
- gildenspawnloc = loc.new(gpvpworld, 27.5, 106, 414.5);
- serverspawn = read.location(ggv("SERVER", "serverspawn")); //Hauptspawn
- artefaktfixloc = loc.new(gpvpworld, -139, 72, 477);
- magierbuttontploc = loc.new(gpvpworld, -4, 204, 519);
- magierreturntploc = loc.new(gpvpworld, 22, 141, 518);
- magierturmtploc = loc.new(gpvpworld, -2, 190, 511);
- pvpsuedfromtploc = loc.new(gpvpworld, 73.5, 129, 511.5);
- pvpsuedtotploc = loc.new(gpvpworld, 82, 68, 536.5);
- artefaktitem = read.item("{id:'km:artefact',Count:1b,Damage:0s}");
- guildblockitem = read.item("{id:'km:guild_block',Count:1b,Damage:0s}");
- airitem = read.item("{id:'minecraft:air',Count:1b,Damage:0s}");
- time.new(artetime, time.getMillis() - 60000);
- spawnplotid = 87;
- artefaktplotid = 87;
- time.new(actualdaycal, time.getMillis());
- actualday = time.getDay(actualdaycal);
- pinvolved = false;
- sharing = false;
- moveidfromworldspawn = event.addMoveData(loc.new(gamesworld, -414, 87, 120), loc.new(gamesworld, -410, 89, 121), 5, -1);
- moveidfromspawnisland = event.addMoveData(loc.new(gamesworld, -268, 168, 23), loc.new(gamesworld, -264, 163, 19), 5, -1);
- moveidmagier = event.addMoveData(loc.new(gpvpworld, 15, 133, 519), loc.new(gpvpworld, 18, 138, 516), 5, -1);
- moveidspawn = event.addMoveData(loc.new(gpvpworld, 187, 0, 605), loc.new(gpvpworld, -74, 255, 330), 5, -1);
- moveidtopvpsued = event.addMoveData(loc.new(gpvpworld, 73, 121, 514), loc.new(gpvpworld, 76, 127, 517), 7, -1);
- moveidfrompvpsued = event.addMoveData(loc.new(gpvpworld, 80, 69, 532), loc.new(gpvpworld, 84, 73, 533), 7, -1);
- fehlerpräfix = "§cFehler";
- commandspräfix = "§6Commands";
- freundepräfix = "§5Freunde";
- gruppepräfix = "§9Gruppe";
- gildepräfix = "§6Gilde";
- //Nur Argumente von (Gilden-)Befehlen, für die man in einer Gilde sein muss
- set.new(gcommandsset);
- set.addAll(gcommandsset, "invite", "newpos", "rename", "fight", "leader", "nick");
- set.addAll(gcommandsset, "officer", "adel", "degrade", "kick", "leave", "deposit");
- set.addAll(gcommandsset, "steal", "disband", "home", "spawn", "msg", "mail", "withdraw");
- set.new(gameadmins);
- set.add(gameadmins, "e41b5335-3c74-46e9-a6c5-dafc6334a477"); //marvinius
- set.new(gamemasters);
- set.add(gamemasters, "e41b5335-3c74-46e9-a6c5-dafc6334a477"); //marvinius
- set.add(gamemasters, "9a3d753d-2283-4c21-98a3-313f52859fc6"); //eropster
- set.add(gamemasters, "51e240f9-ab10-4ea6-8a5d-779319f51257"); //kajetanjohannes
- map.new(adcooldown);
- map.new(gclassvi);
- map.new(bindingmenus);
- map.new(onlinelists);
- map.new(gfights);
- map.new(gstatus); //gstatus: 0 = ersten 60 minuten angriffsphase; 1 = 30 minuten stehl phase
- table.new(gstatustable, 2);
- table.new(onothergs, 2);
- table.new(invitations, 2);
- map.new(gattackers);
- map.new(gdefenders);
- map.new(clicks);
- map.new(blocktime);
- map.new(newfriends);
- map.new(newfriends2);
- map.new(gmoveids);
- map.new(gmoveids2);
- set.new(warned);
- list.new(gstealername);
- list.new(gstealerloc);
- list.new(gstealerstate);
- list.new(scheduledtax);
- list.new(gcreaterlist);
- list.new(movelist);
- map.new(groupinvitations);
- table.new(groupinvitations2, 2);
- //Einmalige Initialisierung bei Seasonstart
- if(ggv("SERVER", "artedaycounter") == null) {
- sgv("SERVER", "artedaycounter", 0);
- }
- if(ggv("SERVER", "arteyetloc") == null) {
- sgv("SERVER", "arteyetloc", text.location(artefaktfixloc));
- }
- //Falls Server down oder Script terminiert war, Arte resetten
- artefaktyetloc = read.location(ggv("SERVER", "arteyetloc"));
- if(artefaktyetloc == null) { //Keine Location erkannt --> Ein Spieler hat Artefakt noch
- gosub("arteresetcore");
- }
- if(artefaktyetloc == artefaktfixloc) { //Arte bekommt nach Neustart fulllife
- sgv("SERVER", "artehitpoints", 250);
- } else {
- sgv("SERVER", "artehitpoints", 10);
- }
- time.new(midnight, time.getMillis());
- time.nextDay(midnight);
- halftwentyoclock = time.from(midnight) + 70200000;
- sgoto(halftwentyoclock - time.getMillis(), "checkartereset");
- //Alle Einladungen löschen
- gdmap.removeAll("gildeninvite");
- //Move-Gebiete erstellen
- //Blöcke unter Gildenblock und 11x11x7 Bereich um den Gildenblock einem Set hinzufügen (dürfen nicht abgebaut werden)
- gmap.toTable(gildenblocktable, "gildenblock");
- set.new(forbiddenblocks);
- set.new(forbiddenblocks2);
- for(i = 0; i <= table.getSize(gildenblocktable) - 1; i++) {
- //11x11x7 Bereich
- gildenblockloc = read.location(table.get(gildenblocktable, i, 1));
- set.add(forbiddenblocks, loc.mod(gildenblockloc, 0, -1, 0));
- for(y = 0; y <= 7; y++) {
- for(z = -5; z <= 5; z++) {
- for(x = -5; x <= 5; x++) {
- set.add(forbiddenblocks2, loc.mod(gildenblockloc, x, y, z));
- }
- }
- }
- //Move-Gebiete erstellen
- x = loc.getX(gildenblockloc);
- x1 = x - 150;
- x2 = x + 150;
- z = loc.getZ(gildenblockloc);
- z1 = z -150;
- z2 = z + 150;
- gsedge1 = read.location(concat("gpvpnew:", x1, ":0:", z1));
- gsedge2 = read.location(concat("gpvpnew:", x2, ":255:", z2));
- moveid = event.addMoveData(gsedge1, gsedge2, 100, -1);
- map.add(gmoveids, moveid, gildenid);
- map.add(gmoveids2, gildenid, moveid);
- }
- //Block unter Artefakt darf auch nicht abgebaut werden
- set.add(forbiddenblocks, loc.mod(artefaktyetloc, 0, -1, 0));
- buypricegblock = 2000;
- gildenvillagername = "Gildenvillager";
- bankvillagername = "§rBänker";
- if(ggv("SERVER", "gildencounter") == null) {
- sgv("SERVER", "gildencounter", 0);
- }
- for(id = 1; id <= ggv("SERVER", "gildencounter"); id++) {
- map.add(onlinelists, id, list.new());
- }
- time.new(midnight, time.getMillis());
- time.nextDay(midnight);
- taxtime = time.from(midnight) + 28800000;
- sgoto(taxtime - time.getMillis(), "gettax");
- list.new(xplist);
- //Um von Lvl1 auf Lvl2 zu kommen braucht man 300 Xp
- list.addAll(xplist, 300, 315, 331, 347, 365, 383, 402, 422, 443, 465);
- list.addAll(xplist, 489, 513, 539, 566, 594, 624, 655, 688, 722, 758);
- list.addAll(xplist, 796, 836, 878, 921, 968, 1016, 1067, 1120, 1176, 1235);
- list.addAll(xplist, 1297, 1361, 1429, 1501, 1576, 1655, 1738, 1824, 1916, 2011);
- list.addAll(xplist, 2112, 2218, 2328, 2445, 2567, 2696, 2830, 2972, 3120, 3276);
- list.addAll(xplist, 3440, 3612, 3793, 3982, 4182, 4391, 4610, 4841, 5083, 5337);
- list.addAll(xplist, 5604, 5884, 6178, 6487, 6811, 7152, 7510, 7885, 8279, 8693);
- list.addAll(xplist, 9128, 9584, 10064, 10567, 11095, 11650, 12232, 12844, 13486, 14160);
- list.addAll(xplist, 14868, 15612, 16392, 17212, 18073, 18976, 19925, 20921, 21967, 23066);
- list.addAll(xplist, 24219, 25430, 26702, 28037, 29438, 30910, 32456, 34079, 35783);
- list.new(classvillagers);
- list.add(classvillagers, "§2Jäger");
- list.add(classvillagers, "§2Barbar");
- list.add(classvillagers, "§2Schurke");
- list.add(classvillagers, "§2Krieger");
- list.add(classvillagers, "§2Magier");
- list.add(classvillagers, "§2Mönch");
- map.new(classids);
- map.add(classids, "§2Jäger", 2);
- map.add(classids, "§2Schurke", 3);
- map.add(classids, "§2Barbar", 4);
- map.add(classids, "§2Krieger", 5);
- map.add(classids, "§2Magier", 6);
- map.add(classids, "§2Mönch", 7);
- inv.newdynamic(choosejäger, "222222222", concat("§rKlasse §2Jäger §rwählen?"));
- inv.newdynamic(choosebarbar, "222222222", concat("§rKlasse §2Barbar §rwählen?"));
- inv.newdynamic(chooseschurke, "222222222", concat("§rKlasse §2Schurke §rwählen?"));
- inv.newdynamic(choosekrieger, "222222222", concat("§rKlasse §2Krieger §rwählen?"));
- inv.newdynamic(choosemagier, "222222222", concat("§rKlasse §2Magier §rwählen?"));
- inv.newdynamic(choosemönch, "222222222", concat("§rKlasse §2Mönch §rwählen?"));
- jägerinvid = inv.getID(choosejäger);
- barbarinvid = inv.getID(choosebarbar);
- schurkeinvid = inv.getID(chooseschurke);
- kriegerinvid = inv.getID(choosekrieger);
- magierinvid = inv.getID(choosemagier);
- mönchinvid = inv.getID(choosemönch);
- map.new(classinvs);
- map.add(classinvs, "§2Jäger", choosejäger);
- map.add(classinvs, "§2Barbar", choosebarbar);
- map.add(classinvs, "§2Schurke", chooseschurke);
- map.add(classinvs, "§2Krieger", choosekrieger);
- map.add(classinvs, "§2Magier", choosemagier);
- map.add(classinvs, "§2Mönch", choosemönch);
- yes = read.item("{id:'minecraft:wool',Count:1b,tag:{display:{Name:'§rJa'}},Damage:5s}");
- no = read.item("{id:'minecraft:wool',Count:1b,tag:{display:{Name:'§rNein'}},Damage:14s}");
- for(i = 0; i <= list.getSize(classvillagers) - 1; i++) {
- class = list.getIndex(classvillagers, i);
- inv = map.get(classinvs, class);
- inv.setItem(inv, 0, yes);
- inv.setItem(inv, 1, no);
- }
- sgoto(200, "witherloop");
- inv.newdynamic(pvequests, "222222222", "§rPvE Quests");
- pvequestsinvid = inv.getID(pvequests);
- inv.setItem(pvequests, 0, read.item("WRITABLE_BOOK", 1, 0, "§rFriedliche Mobs"));
- inv.setItem(pvequests, 1, read.item("WRITABLE_BOOK", 1, 0, "§rFeindliche Mobs"));
- inv.setItem(pvequests, 2, read.item("WRITABLE_BOOK", 1, 0, "§rBlöcke und Landwirtschaft"));
- inv.newdynamic(pvemenu1, "222222222222222222222222222222222222", "§rFriedliche Mobs");
- pvemenu1invid = inv.getID(pvemenu1);
- inv.setItem(pvemenu1, 0, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 10 Kühe"));
- inv.setItem(pvemenu1, 1, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 25 Kühe"));
- inv.setItem(pvemenu1, 2, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 50 Kühe"));
- inv.setItem(pvemenu1, 3, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 250 Kühe"));
- inv.setItem(pvemenu1, 5, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 10 Schafe"));
- inv.setItem(pvemenu1, 6, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 25 Schafe"));
- inv.setItem(pvemenu1, 7, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 50 Schafe"));
- inv.setItem(pvemenu1, 8, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 250 Schafe"));
- inv.setItem(pvemenu1, 9, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 10 Schweine"));
- inv.setItem(pvemenu1, 10, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 25 Schweine"));
- inv.setItem(pvemenu1, 11, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 50 Schweine"));
- inv.setItem(pvemenu1, 12, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 250 Schweine"));
- inv.setItem(pvemenu1, 14, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 10 Hühner"));
- inv.setItem(pvemenu1, 15, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 25 Hühner"));
- inv.setItem(pvemenu1, 16, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 50 Hühner"));
- inv.setItem(pvemenu1, 17, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 250 Hühner"));
- inv.setItem(pvemenu1, 18, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 10 Hasen"));
- inv.setItem(pvemenu1, 19, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 25 Hasen"));
- inv.setItem(pvemenu1, 20, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 50 Hasen"));
- inv.setItem(pvemenu1, 21, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 250 Hasen"));
- inv.setItem(pvemenu1, 23, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 10 Pferde"));
- inv.setItem(pvemenu1, 24, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 25 Pferde"));
- inv.setItem(pvemenu1, 25, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 50 Pferde"));
- inv.setItem(pvemenu1, 26, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 250 Pferde"));
- inv.setItem(pvemenu1, 27, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 10 Tintenfische"));
- inv.setItem(pvemenu1, 28, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 25 Tintenfische"));
- inv.setItem(pvemenu1, 29, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 50 Tintenfische"));
- inv.setItem(pvemenu1, 30, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 250 Tintenfische"));
- inv.setItem(pvemenu1, 35, read.item("WOODEN_DOOR", 1, 0, "§rZurück"));
- inv.newdynamic(pvemenu2, "222222222222222222222222222", "§rFeindliche Mobs");
- pvemenu2invid = inv.getID(pvemenu2);
- inv.setItem(pvemenu2, 0, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 25 Zombies"));
- inv.setItem(pvemenu2, 1, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 50 Zombies"));
- inv.setItem(pvemenu2, 2, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 100 Zombies"));
- inv.setItem(pvemenu2, 3, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 1000 Zombies"));
- inv.setItem(pvemenu2, 5, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 25 Skelette"));
- inv.setItem(pvemenu2, 6, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 50 Skelette"));
- inv.setItem(pvemenu2, 7, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 100 Skelette"));
- inv.setItem(pvemenu2, 8, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 1000 Skelette"));
- inv.setItem(pvemenu2, 9, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 25 Spinnen"));
- inv.setItem(pvemenu2, 10, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 50 Spinnen"));
- inv.setItem(pvemenu2, 11, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 100 Spinnen"));
- inv.setItem(pvemenu2, 12, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 1000 Spinnen"));
- inv.setItem(pvemenu2, 14, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 25 Silberfische"));
- inv.setItem(pvemenu2, 15, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 50 Silberfische"));
- inv.setItem(pvemenu2, 16, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 100 Silberfische"));
- inv.setItem(pvemenu2, 17, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 1000 Silberfische"));
- inv.setItem(pvemenu2, 18, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 25 Creeper"));
- inv.setItem(pvemenu2, 19, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 50 Creeper"));
- inv.setItem(pvemenu2, 20, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 100 Creeper"));
- inv.setItem(pvemenu2, 21, read.item("WRITABLE_BOOK", 1, 0, "§rTöte 1000 Creeper"));
- inv.setItem(pvemenu2, 26, read.item("WOODEN_DOOR", 1, 0, "§rZurück"));
- inv.newdynamic(pvemenu3, "222222222222222222222222222222222222", "§rBlöcke und Landwirtschaft");
- pvemenu3invid = inv.getID(pvemenu3);
- inv.setItem(pvemenu3, 0, read.item("WRITABLE_BOOK", 1, 0, "§rSammle 100 Obsidian"));
- inv.setItem(pvemenu3, 1, read.item("WRITABLE_BOOK", 1, 0, "§rSammle 500 Obsidian"));
- inv.setItem(pvemenu3, 2, read.item("WRITABLE_BOOK", 1, 0, "§rSammle 1000 Obsidian"));
- inv.setItem(pvemenu3, 3, read.item("WRITABLE_BOOK", 1, 0, "§rSammle 10000 Obsidian"));
- inv.setItem(pvemenu3, 5, read.item("WRITABLE_BOOK", 1, 0, "§rSammle 100 Weizen"));
- inv.setItem(pvemenu3, 6, read.item("WRITABLE_BOOK", 1, 0, "§rSammle 500 Weizen"));
- inv.setItem(pvemenu3, 7, read.item("WRITABLE_BOOK", 1, 0, "§rSammle 1000 Weizen"));
- inv.setItem(pvemenu3, 8, read.item("WRITABLE_BOOK", 1, 0, "§rSammle 10000 Weizen"));
- inv.setItem(pvemenu3, 9, read.item("WRITABLE_BOOK", 1, 0, "§rSammle 100 Karotten"));
- inv.setItem(pvemenu3, 10, read.item("WRITABLE_BOOK", 1, 0, "§rSammle 500 Karotten"));
- inv.setItem(pvemenu3, 11, read.item("WRITABLE_BOOK", 1, 0, "§rSammle 1000 Karotten"));
- inv.setItem(pvemenu3, 12, read.item("WRITABLE_BOOK", 1, 0, "§rSammle 10000 Karotten"));
- inv.setItem(pvemenu3, 14, read.item("WRITABLE_BOOK", 1, 0, "§rSammle 100 Kartoffeln"));
- inv.setItem(pvemenu3, 15, read.item("WRITABLE_BOOK", 1, 0, "§rSammle 500 Kartoffeln"));
- inv.setItem(pvemenu3, 16, read.item("WRITABLE_BOOK", 1, 0, "§rSammle 1000 Kartoffeln"));
- inv.setItem(pvemenu3, 17, read.item("WRITABLE_BOOK", 1, 0, "§rSammle 10000 Kartoffeln"));
- inv.setItem(pvemenu3, 35, read.item("WOODEN_DOOR", 1, 0, "§rZurück"));
- inv.newdynamic(bankmenu, "222222222", "§rBank");
- bankinvid = inv.getID(bankmenu);
- inv.setItem(bankmenu, 0, read.item("{id:'km:coin_gold',Count:1b,tag:{display:{Name:'§r1 Gold einzahlen'}},Damage:0s}"));
- inv.setItem(bankmenu, 1, read.item("{id:'km:coin_gold',Count:1b,tag:{display:{Name:'§r10 Gold einzahlen'}},Damage:0s}"));
- inv.setItem(bankmenu, 2, read.item("{id:'km:coin_gold',Count:1b,tag:{display:{Name:'§r100 Gold einzahlen'}},Damage:0s}"));
- inv.setItem(bankmenu, 3, read.item("{id:'km:coin_gold',Count:1b,tag:{display:{Name:'§r1000 Gold einzahlen'}},Damage:0s}"));
- inv.setItem(bankmenu, 5, read.item("{id:'km:coin_silver',Count:1b,tag:{display:{Name:'§r1 Gold abheben'}},Damage:0s}"));
- inv.setItem(bankmenu, 6, read.item("{id:'km:coin_silver',Count:1b,tag:{display:{Name:'§r10 Gold abheben'}},Damage:0s}"));
- inv.setItem(bankmenu, 7, read.item("{id:'km:coin_silver',Count:1b,tag:{display:{Name:'§r100 Gold abheben'}},Damage:0s}"));
- inv.setItem(bankmenu, 8, read.item("{id:'km:coin_silver',Count:1b,tag:{display:{Name:'§r1000 Gold abheben'}},Damage:0s}"));
- list.new(rewardlist1); //Diamanten
- list.add(rewardlist1, read.item("DIAMOND"));
- list.add(rewardlist1, read.item("DIAMOND", 2));
- list.add(rewardlist1, read.item("DIAMOND", 3));
- list.add(rewardlist1, read.item("DIAMOND", 4));
- list.add(rewardlist1, read.item("DIAMOND", 5));
- list.add(rewardlist1, read.item("DIAMOND", 6));
- list.add(rewardlist1, read.item("DIAMOND", 7));
- list.add(rewardlist1, read.item("DIAMOND_BLOCK"));
- list.new(rewardlist2); //Gold
- list.addAll(rewardlist2, 20, 50, 125, 175, 250, 300, 350, 500);
- list.new(rewardlist3); //KlassenXP
- list.addAll(rewardlist3, 500, 1000, 1500, 2000, 2500, 3000, 3500, 4000);
- list.new(rewardlist4); //Seelenpunkt
- list.add(rewardlist4, 1);
- list.new(rewardlist5); //Villager-Spawnei
- list.add(rewardlist5, read.item("{id:'minecraft:spawn_egg',Count:1b,tag:{EntityTag:{id:'minecraft:villager'}},Damage:0s}"));
- list.new(allrewards);
- list.addAll(allrewards, rewardlist1, rewardlist2, rewardlist3, rewardlist4, rewardlist5);
- map.new(rewardstext);
- map.add(rewardstext, rewardlist1, "Diamanten");
- map.add(rewardstext, rewardlist2, "Gold");
- map.add(rewardstext, rewardlist3, "KlassenXP");
- map.add(rewardstext, rewardlist4, "Seelenpunkt");
- map.add(rewardstext, rewardlist5, "Villager-Spawnei");
- map.new(monthlist);
- map.add(monthlist, 1, "Januar");
- map.add(monthlist, 2, "Februar");
- map.add(monthlist, 3, "März");
- map.add(monthlist, 4, "April");
- map.add(monthlist, 5, "Mai");
- map.add(monthlist, 6, "Juni");
- map.add(monthlist, 7, "Juli");
- map.add(monthlist, 8, "August");
- map.add(monthlist, 9, "September");
- map.add(monthlist, 10, "Oktober");
- map.add(monthlist, 11, "November");
- map.add(monthlist, 12, "Dezember");
- map.new(monthdays);
- map.add(monthdays, 1, 31);
- map.add(monthdays, 2, 28);
- map.add(monthdays, 3, 31);
- map.add(monthdays, 4, 30);
- map.add(monthdays, 5, 31);
- map.add(monthdays, 6, 30);
- map.add(monthdays, 7, 31);
- map.add(monthdays, 8, 31);
- map.add(monthdays, 9, 30);
- map.add(monthdays, 10, 31);
- map.add(monthdays, 11, 30);
- map.add(monthdays, 12, 31);
- gosub("initdreward");
- gosub("setreward");
- players.toWorldList(world, gpvpworld);
- for(i = 0; i <= list.getSize(world) - 1; i++) {
- player = list.getIndex(world, i);
- //Spieler noch nicht initialisiert (Neuer Spieler, der in die Welt geht, bevor Gildenpvp-Script gestartet ist)
- if(ggv(player, "gpvpjoined") == null) {
- sgv(player, "gpvpjoined", true);
- sgv(player, "gcoinsatm", 0);
- sgv(player, "gcoinsbank", 0);
- gmap.add("gpvpplayers", player.getUuid(player), "wusi");
- }
- display.reset(player);
- displaygold(player, ggv(player, "gcoinsatm"));
- displayhealth(player, math.roundDown(entity.getHealth(player)));
- displaymana(player);
- jobid = getgpvpjob(player);
- if(jobid != null) {
- level = job.getLevel(player, jobid);
- display.add(player, 44, "#26-1- ", text.number(job.getXp(player, jobid)), "/", text.number(list.getIndex(xplist, level - 1)));
- display.add(player, 41, "Stufe §a", text.number(level));
- }
- gid = player.getGuild(player);
- if(gid > 0) {
- list = map.get(onlinelists, gid);
- list.add(list, player);
- }
- }
- @wait
- wait();
- if(event == "entity_death") { //Dieser Event muss bereits vorher überprüft werden, da nicht immer PlayerVars gesetzt werden.
- if(player_involved) {
- if(loc.getCoord(entity.getLocation(player), "w") == "gpvpnew") {
- entity_type = text.class(entity);
- prexp = map.get(xpforentities, entity_type);
- if(prexp == null) {
- goto("wait");
- }
- xp = math.random(prexp * 0.7, prexp * 1.3);
- gold = math.random(0.1, 1.4);
- p = player;
- gid = player.getGuild(p);
- if(gmap.get("gtype", gid) != null) {
- if(gmap.get("gsharexp", gid)) {
- gosub("addsharedxp");
- }
- if(gmap.get("gsharegold", gid)) {
- gosub("addsharedgold");
- }
- goto("wait");
- }
- sendmsg = true;
- gosub("addxp");
- goldnew = ggv(p, "gcoinsatm") + gold;
- sgv(p, "gcoinsatm", goldnew);
- displaygold(p, goldnew);
- }
- }
- goto("wait");
- }
- if(event == "player_move") { //Andere Welt
- if(id == moveidfromworldspawn) {
- entity.teleport(player, spawnislandtoloc);
- }
- elseif(id == moveidfromspawnisland) {
- entity.teleport(player, gildenspawnloc);
- gildenid = map.get(gmoveids, id);
- if(gildenid != null) {
- gname = gmap.get("gildennamen", gildenid);
- display.add(player, 39, "§6", gname);
- list.add(movelist, player_name);
- sgoto(160, "checkifwildnis");
- }
- goto("player_login");
- }
- elseif(id == moveidspawn) {
- display.add(player, 39, "§6Spawn");
- list.add(movelist, player_name);
- sgoto(160, "checkifwildnis");
- goto("wait");
- }
- elseif(id == moveidtopvpsued) {
- entity.teleport(player, pvpsuedtotploc);
- goto("wait");
- }
- elseif(id == moveidfrompvpsued) {
- entity.teleport(player, pvpsuedfromtploc);
- goto("wait");
- }
- elseif(id == moveidmagier) {
- entity.teleport(player, magierturmtploc);
- goto("wait");
- }
- gildenid = map.get(gmoveids, id);
- if(gildenid != null) {
- gname = gmap.get("gildennamen", gildenid);
- display.add(player, 39, "§6", gname);
- list.add(movelist, player_name);
- sgoto(160, "checkifwildnis");
- }
- goto("wait");
- }
- if(event == "portal") { //Die Var 'from' würde weiter nicht mehr verarbeitet werden (weil außerhalb der Gpvpwelt)
- if(from == "gpvpnew") {
- if(ggv("SERVER", "arteyetloc") == player.getUuid(player)) {
- gosub("arteresetcore");
- }
- id = player.getGuild(player);
- if(id > 0) {
- list = map.get(onlinelists, id);
- list.remove(list, player);
- }
- display.reset(player);
- goto("wait");
- }
- if(to == "gpvpnew") {
- goto("player_login");
- }
- goto("wait");
- }
- player_loc = entity.getLocation(player);
- if(loc.getCoord(player_loc, "w") != "gpvpnew") {
- goto("wait");
- }
- ignoreGoto(event);
- goto("wait");
- @player_pre_respawn
- player.setSpawn(player, gildenspawnloc);
- displayhealth(player, 20);
- goto("wait");
- @checkifwildnis
- pname = list.getIndex(movelist, 0);
- list.removeIndex(movelist, 0);
- p = read.player(pname);
- if(p == null) {
- goto("wait");
- }
- player_loc = entity.getLocation(p);
- if(loc.getCoord(player_loc, "w") == "gpvpnew") {
- plotid = getplotid(player_loc);
- if(plotid == null) {
- display.add(player, 39, "§6Wildnis");
- }
- }
- goto("wait");
- @bucket_fill
- //Überprüfung, ob während eines Gildenkampfes Eimer am Kampfgrundstück benutzt werden. Cancelt Events beider Gilden
- if(map.contains(gfights, plotid)) {
- player.speak(player, fehlerpräfix, "§rGildenkampf im Gange. Eimer nicht benutzbar");
- cancel = true;
- }
- goto("wait");
- @entity_click
- entity_name = entity.getName(entity);
- if(entity_name == "Tutorial") {
- msg(player, "§rHallo, ich werde vllt ein Tutorial sein");
- goto("wait");
- }
- if(entity_name == "PvE") {
- inv.open(pvequests, player);
- goto("wait");
- }
- if(list.contains(classvillagers, entity_name)) {
- map.add(gclassvi, player.getUuid(player), entity_name);
- inv = map.get(classinvs, entity_name);
- inv.open(inv, player);
- goto("wait");
- }
- if(entity_name == bankvillagername) {
- inv.open(bankmenu, player);
- goto("wait");
- }
- if(entity_name == gildenvillagername) {
- if(isinguild(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu bist bereits in einer Gilde");
- goto("wait");
- }
- if(getplotid(player_loc) != spawnplotid) {
- player.speak(player, fehlerpräfix, "§rDu bist nicht am Gildenpvp-Spawn");
- goto("wait");
- }
- if(ggv(player, "gcoinsatm") == null) {
- sgv(player, "gcoinsatm", 0);
- displaygold(player, 0);
- }
- if(ggv(player, "gcoinsatm") < buypricegblock) {
- player.speak(player, fehlerpräfix, "§rDu besitzt nicht genug Gold um eine Gilde zu gründen");
- } else {
- player.speak(player, gildepräfix, "§rGib deinen gewünschten Gildennamen folgendermaßen ein: /gilde create <name>");
- list.add(gcreaterlist, player.getUuid(player));
- sgoto(6000, "removegcreater"); //Der Spieler hat 5 Minuten Zeit, eine Gilde per Befehl zu gründen
- }
- }
- goto("wait");
- @block_place
- plotid = getplotid(block_loc);
- //Wertvoller Blöcke/Erze dürfen nicht gesetzt werden
- if(set.contains(richblocks, block_type)) {
- cancel = true;
- player.speak(player, fehlerpräfix, "§rWertvoller Blöcke/Erze dürfen nicht gesetzt werden");
- goto("wait");
- }
- if(block_type == "km:artefact") {
- cancel = true;
- player.speak(player, fehlerpräfix, "§rBenutze /placearte, sofern du der Artefaktträger bist");
- goto("wait");
- }
- if(block_type == "km:guild_block") {
- if(isinguild(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu bist bereits in einer Gilde");
- cancel = true;
- goto("wait");
- }
- if(isingroup(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu bist in einer Gruppe");
- cancel = true;
- goto("wait");
- }
- item.getLore(lorelist, entity.getEquip(player, "hand"));
- if(list.getSize(lorelist) == 0) {
- player.speak(player, fehlerpräfix, "§rDieser Gildenblock wurde nicht vom Gildenvillager ausgehändigt");
- cancel = true;
- goto("wait");
- }
- text.split(splitlist, " ", list.getIndex(lorelist, 0));
- if(list.getSize(splitlist) != 2) {
- player.speak(player, fehlerpräfix, "§rDieser Gildenblock wurde nicht vom Gildenvillager ausgehändigt");
- cancel = true;
- goto("wait");
- }
- elseif(list.getIndex(splitlist, 0) == "ID:") {
- gildenid = list.getIndex(splitlist, 1);
- } else {
- player.speak(player, fehlerpräfix, "§rDieser Gildenblock wurde nicht vom Gildenvillager ausgehändigt");
- cancel = true;
- goto("wait");
- }
- if(plotid != null) {
- player.speak(player, fehlerpräfix, "§rAuf dieser Position befindet sich bereits ein Grundstück.");
- cancel = true;
- goto("wait");
- }
- if(!block.isSolid(loc.mod(block_loc, 0, -1, 0))) {
- player.speak(player, fehlerpräfix, "§rDer Block unter dem Gildenblock muss ein solider Block sein");
- cancel = true;
- goto("wait");
- }
- btype = block.getType(loc.mod(block_loc, 0, -1, 0));
- if(btype == "minecraft:leaves" || btype == "minecraft:leaves2") {
- player.speak(player, fehlerpräfix, "§rDer Block unter dem Gildenblock darf kein Laub sein");
- cancel = true;
- goto("wait");
- }
- if(set.contains(richblocks, btype)) {
- player.speak(player, fehlerpräfix, "§rDer Block unter dem Gildenblock darf kein wertvoller Block sein");
- cancel = true;
- goto("wait");
- }
- if(loc.getCoord(block_loc, "y") < 35 || loc.getCoord(block_loc, "y") > 150) {
- player.speak(player, fehlerpräfix, "§rDer Gildenblock muss zwischen 35 bis 150 Blöcke Höhe platziert werden");
- cancel = true;
- goto("wait");
- }
- gmap.toTable(gildenblocktable, "gildenblock");
- for(i = 0; i <= table.getSize(gildenblocktable) - 1; i++) {
- distance = loc.distance(read.location(table.get(gildenblocktable, i, 1)), block_loc);
- if(distance < 1100) {
- player.speak(player, fehlerpräfix, "§rGildenblöcke müssen mindestens 1100 Blöcke voneinander entfernt sein (Aktuell: ", text.number(math.roundUp(distance)), ")");
- cancel = true;
- goto("wait");
- }
- }
- for(y = 0; y <= 7; y++) {
- for(z = -5; z <= 5; z++) {
- for(x = -5; x <= 5; x++) {
- moddedloc = loc.mod(block_loc, x, y, z);
- if(block.getType(moddedloc) != "minecraft:air") {
- if(block_loc != moddedloc) {
- player.speak(player, fehlerpräfix, "§rIm Bereich von 5 Blöcken seitlich und 7 Blöcken nach oben dürfen sich keine anderen Blöcke befinden");
- cancel = true;
- goto("wait");
- }
- }
- }
- }
- }
- x = loc.getX(block_loc);
- x1 = x - 150;
- x2 = x + 150;
- z = loc.getZ(block_loc);
- z1 = z -150;
- z2 = z + 150;
- gsedge1 = read.location(concat("gpvpnew:", x1, ":0:", z1));
- gsedge2 = read.location(concat("gpvpnew:", x2, ":255:", z2));
- if(plot.doesIntersect(gsedge1, gsedge2)) {
- player.speak(player, fehlerpräfix, "§rIm Gebiet herrscht bereits eine andere Gilde");
- cancel = true;
- goto("wait");
- }
- moveid = event.addMoveData(gsedge1, gsedge2, 100, -1);
- map.add(gmoveids, moveid, gildenid);
- map.add(gmoveids2, gildenid, moveid);
- plot.add(gsedge1, gsedge2, player_name);
- player.speak("online", gildepräfix, concat("§rDie Gilde §6", item.getName(entity.getEquip(player, "hand")), "§r wurde von §6", player_name, "§r gegründet"));
- player.setGuild(player, gildenid);
- gmap.add("membersmax", gildenid, 15);
- gmap.add("gmembersatm", gildenid, 1);
- gmap.add("adelmax", gildenid, 1);
- gmap.add("adelatm", gildenid, 0);
- gdmap.add("gmembers", gildenid, player.getUuid(player), "Leiter");
- gmap.add("gildenblock", gildenid, text.location(block_loc));
- plotid = getplotid(entity.getLocation(player));
- gmap.add("gildenplot", gildenid, plotid);
- gmap.add("gildenplot2", plotid, gildenid);
- gmap.add("gildencoins", gildenid, 0);
- gmap.add("gsharegold", gildenid, true);
- gmap.add("gsharexp", gildenid, true);
- gmap.add("gildentime", gildenid, time.getMillis() + 259200000);
- gmap.add("gtype", gildenid, "guild");
- plotid = getplotid(block_loc);
- itemname = item.getName(entity.getEquip(player, "hand"));
- command("plot name ", plotid, " ", itemname);
- player.removeItem(player, entity.getEquip(player, "hand"));
-
- set.add(forbiddenblocks, loc.mod(block_loc, 0, -1, 0));
- for(y = 0; y <= 7; y++) {
- for(z = -5; z <= 5; z++) {
- for(x = -5; x <= 5; x++) {
- set.add(forbiddenblocks2, loc.mod(block_loc, x, y, z));
- }
- }
- }
- goto("wait");
- }
- if(checkforenimies(player, player_name)) {
- //player.speak(player, fehlerpräfix, "§rGegner in der Nähe");
- //cancel = true; Auskommentiert: Um Bauarbeiten zu ermöglichen, während andere Spieler in der Nähe sind
- goto("wait");
- }
- //Darunterliegende Checks benötigen ein Plot
- if(plotid == null) {
- goto("wait");
- }
- //Überprüfung, ob während eines Gildenkampfes Blöcke am Kampfgrundstück platziert werden. Cancelt places beider Gilden
- if(map.contains(gfights, plotid)) {
- player.speak(player, fehlerpräfix, "§rGildenkampf im Gange. Blöcke nicht platzierbar");
- cancel = true;
- goto("wait");
- }
- //Überprüfung, ob der Bereich 11x11x7 um den Gildenblock herum bebaut wird
- if(set.contains(forbiddenblocks2, block_loc)) {
- player.speak(player, fehlerpräfix, "§rHier kannst du nicht bauen");
- cancel = true;
- }
- goto("wait");
- @block_break
- plotid = getplotid(block_loc);
- //Am Spawn wird nicht durch Code reingepfuscht, es gelten die normalen Baugegebenheiten
- if(plotid == spawnplotid) {
- goto("wait");
- }
- //Wertvolle Blöcke/Erze können trotz Plot-Protection von fremden GS (außer am Spawn) abgebaut werden
- if(set.contains(richblocks, block_type)) {
- cancel = false; //Aktiv erlauben
- }
- //XP-Vergabe für das Abbauen von Blöcken
- p = player;
- xp = map.getOrDefault(xpforblocks, block_type, 1);
- sendmsg = false;
- gosub("addxp");
- //Überprüfung, ob ein Gildenblock/Artefakt abgebaut wird
- if(block_type == "km:guild_block" || block_type == "km:artefact") {
- player.speak(player, fehlerpräfix, "Artefakt und Gildenblock lassen sich nicht einfach so abbauen");
- cancel = true;
- goto("wait");
- }
- //Überprüfung, ob ein Block unter einem der Gildenblöcke/dem Artefakt abgebaut wird
- if(set.contains(forbiddenblocks, block_loc)) {
- player.speak(player, fehlerpräfix, "§rBlock unter Artefakt/Gildenblock darf nicht abgebaut werden");
- cancel = true;
- goto("wait");
- }
- //Absicherung, damit Teamler während eines Kampfes auch am fremden GS nichts abbauen können
- if(plotid != null) {
- if(map.contains(gfights, plotid)) {
- if(map.contains(gattackers, player.getGuild(player))) {
- player.speak(player, fehlerpräfix, "§rGildenkampf im Gange. Blöcke nicht abbaubar");
- cancel = true;
- }
- }
- }
- goto("wait");
- @player_login
- //auch die Events portal mit var 'to' und player_move leiten hier her
- player_loc = entity.getLocation(player);
- if(ggv(player, "gpvpjoined") == null) {
- sgv(player, "gpvpjoined", true);
- sgv(player, "gcoinsatm", 0);
- sgv(player, "gcoinsbank", 0);
- gmap.add("gpvpplayers", player.getUuid(player), "wusi");
- }
- displaygold(player, ggv(player, "gcoinsatm"));
- displayhealth(player, math.roundDown(entity.getHealth(player)));
- displaymana(player);
- jobid = getgpvpjob(player);
- if(jobid != null) {
- level = job.getLevel(player, jobid);
- display.add(player, 44, "#26-1- ", text.number(job.getXp(player, jobid)), "/", text.number(list.getIndex(xplist, level - 1)));
- display.add(player, 41, "Stufe §a", text.number(level));
- }
- id = player.getGuild(player);
- if(id > 0) {
- list = map.get(onlinelists, id);
- list.add(list, player);
- }
- goto("wait");
- @player_logout
- id = player.getGuild(player);
- if(id > 0) {
- list = map.get(onlinelists, id);
- list.remove(list, player);
- }
- //Alle Gildeneinladungen löschen
- puuid = player.getUuid(player);
- gdmap.removeAll("gildeninvite", puuid);
- //Falls Spieler Arte-Träger ist, Arte resetten
- if(ggv("SERVER", "arteyetloc") == puuid) {
- gosub("arteresetcore");
- }
- goto("wait");
- @player_heal
- newhp = entity.getHealth(player) + math.roundComma(heal, 3);
- if(newhp > 20) {
- displayhealth(player, 20);
- } else {
- displayhealth(player, math.roundDown(newhp));
- }
- goto("wait");
- @player_hurt
- newhp = entity.getHealth(player) - player_damage;
- displayhealth(player, math.roundDown(newhp));
- loc = entity.getLocation(player);
- if(player_killed) {
- player.dropInventory(player, loc);
- }
- if(player_involved) {
- pinvolved = true;
- secp = sec_player;
- gildenid = player.getGuild(secp);
- owngildenid = player.getGuild(player);
- if(gildenid > 0) {
- if(gildenid == owngildenid) { //Schaden innerhalb der Gilde/Gruppe wird gecancelt
- cancel = true;
- goto("wait");
- }
- }
- plotid = getplotid(loc);
- //Ein Spieler außerhalb des Gildenkampfs kann Spielern im Gildenkampf keinen Schaden hinzufügen, vorausgesetzt die Spieler der sich bekämpfenden Gilden befinden sich am GS der angegriffenen Gilde
- set = map.get(gfights, plotid);
- if(plotid != null) {
- if(set.contains(set, player) && !set.contains(set, sec_player)) {
- cancel = true;
- goto("wait");
- }
- }
- //todo: fiktionalen schaden austeilen
- if(getgpvpjob(player) != null) {
- //addxp(secp, player_damage / 3);
- //xp = fiktionalen schaden durch 3
- nothing();
- }
- }
- goto("wait");
- @function_key
- id = getgpvpjob(player);
- if(id == null) {
- player.speak(player, fehlerpräfix, "§rDu besitzt keine Klasse");
- goto("wait");
- }
- plotid = getplotid(entity.getLocation(player));
- if(plotid != spawnplotid) {
- tempid = ggv(player, concat(id, "gpvphotkey", key));
- if(tempid != null) {
- tempskill = skill.fromID(tempid, player);
- skill.use(tempskill, player);
- skillspeak(player, player_name, tempskill);
- }
- }
- goto("wait");
- @inv_close
- if(inv_name == "Slots") {
- player.speak(player, "§2Skills", "§rVeränderungen wurden gespeichert");
- }
- goto("wait");
- @player_pickup
- item_type = item.getType(item);
- if(item_type == "minecraft:gold_nugget") {
- if(item.getName(item) == "Golddrop") {
- cancel = true;
- entity.remove(entity);
- }
- }
- elseif(item_type == "minecraft:gold_ingot") {
- if(item.getName(item) == "Golddrop") {
- cancel = true;
- entity.remove(entity);
- item.getLore(lorelist, item);
- gold = read.number(list.getIndex(lorelist, 0));
- sgv(player, "gcoinsatm", ggv(player, "gcoinsatm") + gold);
- displaygold(player, ggv(player, "gcoinsatm"));
- }
- }
- goto("wait");
- @player_death
- //artereset
- if(ggv("SERVER", "arteyetloc") == player.getUuid(player)) {
- gosub("arteresetcore");
- }
- //gold und items droppen
- gold = ggv(player, "gcoinsatm");
- sgv(player, "gcoinsatm", 0);
- displaygold(player, 0);
- loc = entity.getLocation(player);
- item.drop(loc, read.item("minecraft:gold_ingot", 1, 0, "Golddrop", gold));
- item.drop(loc, read.item("minecraft:gold_nugget", 1, 0, "Golddrop", 0));
- item.drop(loc, read.item("minecraft:gold_nugget", 1, 0, "Golddrop", 0));
- if(getgpvpjob(player) != null) {
- if(pinvolved) {
- p = secp;
- xp = 400;
- sendmsg = true;
- gosub("addxp");
- goto("wait");
- }
- }
- goto("wait");
- @fishing
- if(getgpvpjob(player) != null) {
- p = player;
- xp = 150;
- sendmsg = true;
- gosub("addxp");
- goto("wait");
- }
- goto("wait");
- @checkartereset
- if(ggv("SERVER", "artedaycounter") == 3) {
- if(block.getType(artefaktfixloc) != "km:artefact") {
- sendworldmessage("§9Info", concat("§rDas Artefakt kehrt bald in die Ruine zurück"));
- sgoto(1800, "artereset");
- }
- } else {
- sgv("SERVER", "artedaycounter", add(ggv("SERVER", "artedaycounter"), 1));
- sgoto(86400000, "checkartereset");
- }
- goto("wait");
- @artereset //nur für 3 tagesreset
- if(block.getType(artefaktfixloc) != "km:artefact") {
- sgv("SERVER", "artedaycounter", 0);
- block.set(artefaktyetloc, airitem);
- gosub("arteresetcore");
- }
- goto("wait");
- @arteresetcore
- block.set(artefaktfixloc, artefaktitem);
- sendworldmessage("§9Info", "§rDas Artefakt ist in die Ruine zurückgekehrt");
- sgv("SERVER", "arteyetloc", text.location(artefaktfixloc));
- set.remove(forbiddenblocks, artefaktyetloc);
- artefaktyetloc = artefaktfixloc;
- set.add(forbiddenblocks, artefaktyetloc);
- sgv("SERVER", "artehitpoints", 250);
- return();
- @witherloop
- players.toWorldList(world, gpvpworld);
- for(i = 0; i <= list.getSize(world) - 1; i++) {
- p = list.getIndex(world, i);
- pname = player.getName(p);
- gildenid = player.getGuild(p);
- plotid = getplotid(entity.getLocation(p));
- if(plotid != null) { //Überprüfung, ob überhaupt auf GS
- //auf einem GS
- if(plotid != spawnplotid) { //Überprüfung, ob auf GildenGS
- //Nicht am SpawnGS
- if(map.contains(gfights, plotid)) { //Überprüfung, ob Spieler auf GS, auf dem gekämpft wird
- //Auf GS wird gekämpft
- if(!set.contains(map.get(gfights, plotid), pname)) { //Überprüfung, ob Spieler zu den kämpfenden Spielern des GS gehört
- //Spieler gehört nicht zu kämpfenden Spielern (kann auch Spieler der eigenen Gilde sein)
- entity.teleport(p, gildenspawnloc);
- player.speak(p, gildepräfix, "§rAuf diesem Grundstück wird gerade gekämpft");
- }
- }
- elseif(plotid != gmap.get("gildenplot", gildenid)) { //Überprüfung, ob auf eigenem GS
- //Nicht auf eigenem GS
- puuid = player.getUuid(pname);
- if(!set.contains(warned, puuid)) { //Überprüfung, ob Spieler bereits gewarnt
- title.clear(p);
- title.reset(p);
- title.setSub(p, "§rFremdes Grundstück");
- title.send(p, "§cAchtung");
- table.addRow(onothergs, puuid, plotid);
- set.add(warned, puuid);
- sgoto(600, "checkifaway");
- }
- }
- }
- }
- }
- sgoto(200, "witherloop");
- goto("wait");
- @checkifaway
- puuid = table.get(onothergs, 0, 0);
- pname = player.getName(puuid);
- id = table.get(onothergs, 0, 1);
- table.removeRow(onothergs, 0);
- set.remove(warned, puuid);
- p = read.player(pname);
- if(p == null) {
- goto("wait");
- }
- plotid = getplotid(entity.getLocation(p));
- if(plotid == id) { //Überprüfung, ob sich Spieler noch immer auf fremdem GS befindet
- entity.addEffect(p, "WITHER", 200, 3);
- }
- goto("wait");
- @inv_click
- cancel = true;
- if(item.getType(item) == "minecraft:air") {
- goto("wait");
- }
- //if(inv_id >= jägerinvid && inv_id <= mönchinvid) { Wenn alle Klassen eingeführt
- if(inv_id >= jägerinvid && inv_id <= kriegerinvid) {
- if(inv_slot == 0) {
- inv.close(player);
- entity_name = map.get(gclassvi, player.getUuid(player));
- jobid = getgpvpjob(player);
- if(jobid != null) {
- if(job.hasJob(player, map.get(classids, entity_name))) {
- player.speak(player, fehlerpräfix, "§rDu besitzt diese Klasse bereits");
- goto("wait");
- }
- job.setJob(player, jobid, false);
- }
- job.setJob(player, map.get(classids, entity_name), true);
- player.speak(player, "§2Klasse", "§rDu bist nun ", entity_name);
- goto("wait");
- }
- if(inv_slot == 1) {
- inv.close(player);
- goto("wait");
- }
- }
- if(inv_id == pvequestsinvid) {
- if(inv_slot == 0) {
- inv.open(pvemenu1, player);
- }
- if(inv_slot == 1) {
- inv.open(pvemenu2, player);
- }
- if(inv_slot == 2) {
- inv.open(pvemenu3, player);
- }
- goto("wait");
- }
- if(inv_id == pvemenu1invid) {
- if(inv_slot == 35) {
- inv.open(pvequests, player);
- goto("wait");
- }
- if(player.hasQuest(player)) {
- player.speak(player, "§dQuests", "§rDu arbeitest gerade an einer Quest");
- goto("wait");
- }
- if(inv_slot < 4) {
- sgv(player, "gpvpquest_type", "EntityCow");
- sgv(player, "gpvpquest_wort", "Kühe");
- if(inv_slot == 0) {
- sgv(player, "gpvpquest_amount", 10);
- }
- elseif(inv_slot == 1) {
- sgv(player, "gpvpquest_amount", 25);
- }
- elseif(inv_slot == 2) {
- sgv(player, "gpvpquest_amount", 50);
- }
- elseif(inv_slot == 3) {
- sgv(player, "gpvpquest_amount", 250);
- }
- goto("givemobquest");
- }
- if(inv_slot < 9) {
- sgv(player, "gpvpquest_type", "EntitySheep");
- sgv(player, "gpvpquest_wort", "Schafe");
- if(inv_slot == 5) {
- sgv(player, "gpvpquest_amount", 10);
- }
- elseif(inv_slot == 6) {
- sgv(player, "gpvpquest_amount", 25);
- }
- elseif(inv_slot == 7) {
- sgv(player, "gpvpquest_amount", 50);
- }
- elseif(inv_slot == 8) {
- sgv(player, "gpvpquest_amount", 250);
- }
- goto("givemobquest");
- }
- if(inv_slot < 13) {
- sgv(player, "gpvpquest_type", "EntityPig");
- sgv(player, "gpvpquest_wort", "Schweine");
- if(inv_slot == 9) {
- sgv(player, "gpvpquest_amount", 10);
- }
- elseif(inv_slot == 10) {
- sgv(player, "gpvpquest_amount", 25);
- }
- elseif(inv_slot == 11) {
- sgv(player, "gpvpquest_amount", 50);
- }
- elseif(inv_slot == 12) {
- sgv(player, "gpvpquest_amount", 250);
- }
- goto("givemobquest");
- }
- if(inv_slot < 18) {
- sgv(player, "gpvpquest_type", "EntityChicken");
- sgv(player, "gpvpquest_wort", "Hühner");
- if(inv_slot == 14) {
- sgv(player, "gpvpquest_amount", 10);
- }
- elseif(inv_slot == 15) {
- sgv(player, "gpvpquest_amount", 25);
- }
- elseif(inv_slot == 16) {
- sgv(player, "gpvpquest_amount", 50);
- }
- elseif(inv_slot == 17) {
- sgv(player, "gpvpquest_amount", 250);
- }
- goto("givemobquest");
- }
- if(inv_slot < 22) {
- sgv(player, "gpvpquest_type", "EntityRabbit");
- sgv(player, "gpvpquest_wort", "Hasen");
- if(inv_slot == 18) {
- sgv(player, "gpvpquest_amount", 10);
- }
- elseif(inv_slot == 19) {
- sgv(player, "gpvpquest_amount", 25);
- }
- elseif(inv_slot == 20) {
- sgv(player, "gpvpquest_amount", 50);
- }
- elseif(inv_slot == 21) {
- sgv(player, "gpvpquest_amount", 250);
- }
- goto("givemobquest");
- }
- if(inv_slot < 27) {
- sgv(player, "gpvpquest_type", "HORSE");
- sgv(player, "gpvpquest_wort", "Pferde");
- if(inv_slot == 23) {
- sgv(player, "gpvpquest_amount", 10);
- }
- elseif(inv_slot == 24) {
- sgv(player, "gpvpquest_amount", 25);
- }
- elseif(inv_slot == 25) {
- sgv(player, "gpvpquest_amount", 50);
- }
- elseif(inv_slot == 26) {
- sgv(player, "gpvpquest_amount", 250);
- }
- goto("givemobquest");
- }
- if(inv_slot < 31) {
- sgv(player, "gpvpquest_type", "EntitySquid");
- sgv(player, "gpvpquest_wort", "Tintenfische");
- if(inv_slot == 27) {
- sgv(player, "gpvpquest_amount", 10);
- }
- elseif(inv_slot == 28) {
- sgv(player, "gpvpquest_amount", 25);
- }
- elseif(inv_slot == 29) {
- sgv(player, "gpvpquest_amount", 50);
- }
- elseif(inv_slot == 30) {
- sgv(player, "gpvpquest_amount", 250);
- }
- goto("givemobquest");
- }
- goto("wait");
- }
- if(inv_id == pvemenu2invid) {
- if(inv_slot == 26) {
- inv.open(pvequests, player);
- goto("wait");
- }
- if(player.hasQuest(player)) {
- player.speak(player, "§dQuests", "§rDu arbeitest gerade an einer Quest");
- goto("wait");
- }
- if(inv_slot < 4) {
- sgv(player, "gpvpquest_type", "EntityZombie");
- sgv(player, "gpvpquest_wort", "Zombies"); //Zombiefleisch
- if(inv_slot == 0) {
- sgv(player, "gpvpquest_amount", 25);
- }
- elseif(inv_slot == 1) {
- sgv(player, "gpvpquest_amount", 50);
- }
- elseif(inv_slot == 2) {
- sgv(player, "gpvpquest_amount", 100);
- }
- elseif(inv_slot == 3) {
- sgv(player, "gpvpquest_amount", 1000);
- }
- goto("givemobquest");
- }
- if(inv_slot < 9) {
- sgv(player, "gpvpquest_type", "EntitySkeleton");
- sgv(player, "gpvpquest_wort", "Skelette"); //Knochen
- if(inv_slot == 5) {
- sgv(player, "gpvpquest_amount", 25);
- }
- elseif(inv_slot == 6) {
- sgv(player, "gpvpquest_amount", 50);
- }
- elseif(inv_slot == 7) {
- sgv(player, "gpvpquest_amount", 100);
- }
- elseif(inv_slot == 8) {
- sgv(player, "gpvpquest_amount", 1000);
- }
- goto("givemobquest");
- }
- if(inv_slot < 13) {
- sgv(player, "gpvpquest_type", "EntitySpider");
- sgv(player, "gpvpquest_wort", "Spinnen"); //Faden
- if(inv_slot == 9) {
- sgv(player, "gpvpquest_amount", 25);
- }
- elseif(inv_slot == 10) {
- sgv(player, "gpvpquest_amount", 50);
- }
- elseif(inv_slot == 11) {
- sgv(player, "gpvpquest_amount", 100);
- }
- elseif(inv_slot == 12) {
- sgv(player, "gpvpquest_amount", 1000);
- }
- goto("givemobquest");
- }
- if(inv_slot < 18) {
- sgv(player, "gpvpquest_type", "EntitySilverfish");
- sgv(player, "gpvpquest_wort", "Silberfische"); //Befallene rissige Steinziegel
- if(inv_slot == 14) {
- sgv(player, "gpvpquest_amount", 25);
- }
- elseif(inv_slot == 15) {
- sgv(player, "gpvpquest_amount", 50);
- }
- elseif(inv_slot == 16) {
- sgv(player, "gpvpquest_amount", 100);
- }
- elseif(inv_slot == 17) {
- sgv(player, "gpvpquest_amount", 1000);
- }
- goto("givemobquest");
- }
- if(inv_slot < 22) {
- sgv(player, "gpvpquest_type", "EntityCreeper");
- sgv(player, "gpvpquest_wort", "Creeper"); //Gunpowder
- if(inv_slot == 18) {
- sgv(player, "gpvpquest_amount", 25);
- }
- elseif(inv_slot == 19) {
- sgv(player, "gpvpquest_amount", 50);
- }
- elseif(inv_slot == 20) {
- sgv(player, "gpvpquest_amount", 100);
- }
- elseif(inv_slot == 21) {
- sgv(player, "gpvpquest_amount", 1000);
- }
- goto("givemobquest");
- }
- goto("wait");
- }
- if(inv_id == pvemenu3invid) {
- if(inv_slot == 35) {
- inv.open(pvequests, player);
- goto("wait");
- }
- if(player.hasQuest(player)) {
- player.speak(player, "§dQuests", "§rDu arbeitest gerade an einer Quest");
- goto("wait");
- }
- if(inv_slot < 4) {
- sgv(player, "gpvpquest_type", "minecraft:obsidian");
- sgv(player, "gpvpquest_wort", "Obsidian");
- if(inv_slot == 0) {
- sgv(player, "gpvpquest_amount", 100);
- }
- elseif(inv_slot == 1) {
- sgv(player, "gpvpquest_amount", 500);
- }
- elseif(inv_slot == 2) {
- sgv(player, "gpvpquest_amount", 1000);
- }
- elseif(inv_slot == 3) {
- sgv(player, "gpvpquest_amount", 10000);
- }
- goto("givesammelquest");
- }
- if(inv_slot < 9) {
- sgv(player, "gpvpquest_type", "minecraft:wheat");
- sgv(player, "gpvpquest_wort", "Weizen");
- if(inv_slot == 5) {
- sgv(player, "gpvpquest_amount", 100);
- }
- elseif(inv_slot == 6) {
- sgv(player, "gpvpquest_amount", 500);
- }
- elseif(inv_slot == 7) {
- sgv(player, "gpvpquest_amount", 1000);
- }
- elseif(inv_slot == 8) {
- sgv(player, "gpvpquest_amount", 10000);
- }
- goto("givesammelquest");
- }
- if(inv_slot < 13) {
- sgv(player, "gpvpquest_type", "minecraft:carrots");
- sgv(player, "gpvpquest_wort", "Karotten");
- if(inv_slot == 9) {
- sgv(player, "gpvpquest_amount", 100);
- }
- elseif(inv_slot == 10) {
- sgv(player, "gpvpquest_amount", 500);
- }
- elseif(inv_slot == 11) {
- sgv(player, "gpvpquest_amount", 1000);
- }
- elseif(inv_slot == 12) {
- sgv(player, "gpvpquest_amount", 10000);
- }
- goto("givesammelquest");
- }
- if(inv_slot < 18) {
- sgv(player, "gpvpquest_type", "minecraft:potatoes");
- sgv(player, "gpvpquest_wort", "Kartoffeln");
- if(inv_slot == 14) {
- sgv(player, "gpvpquest_amount", 100);
- }
- elseif(inv_slot == 15) {
- sgv(player, "gpvpquest_amount", 500);
- }
- elseif(inv_slot == 16) {
- sgv(player, "gpvpquest_amount", 1000);
- }
- elseif(inv_slot == 17) {
- sgv(player, "gpvpquest_amount", 10000);
- }
- goto("givesammelquest");
- }
- goto("wait");
- }
- if(inv_id == bankinvid) { //Bankmenü
- if(inv_slot == 0 || inv_slot == 5) {
- betrag = 1;
- }
- elseif(inv_slot == 1 || inv_slot == 6) {
- betrag = 10;
- }
- elseif(inv_slot == 2 || inv_slot == 7) {
- betrag = 100;
- }
- elseif(inv_slot == 3 || inv_slot == 8) {
- betrag = 1000;
- }
- geldbeutel = ggv(player, "gcoinsatm");
- bankkonto = ggv(player, "gcoinsbank");
- if(inv_slot < 4) {
- //einzahlen
- if(betrag > geldbeutel) {
- //Abbruch der Transaktion. Keine genaue Abrechnung (Anweisung von Luca)
- player.speak(player, fehlerpräfix, "§rSoviel Geld trägst du nicht mit dir");
- goto("wait");
- }
- if(bankkonto + betrag > 2000) {
- betrag2 = 2000 - bankkonto;
- sgv(player, "gcoinsatm", geldbeutel - betrag2);
- sgv(player, "gcoinsbank", bankkonto + betrag2);
- player.speak(player, "§eGold", "§rKonto auf 2000 Gold aufgestockt, Rest verbleibt im Geldbeutel");
- } else {
- sgv(player, "gcoinsatm", geldbeutel - betrag);
- sgv(player, "gcoinsbank", bankkonto + betrag);
- player.speak(player, "§eGold", "§rTransaktion erfolgreich");
- }
- displaygold(player, ggv(player, "gcoinsatm"));
- goto("wait");
- }
- //auszahlen
- if(betrag > bankkonto) {
- player.speak(player, fehlerpräfix, "§rSoviel Geld hast du nicht auf deinem Konto");
- goto("wait");
- }
- sgv(player, "gcoinsatm", geldbeutel + betrag);
- sgv(player, "gcoinsbank", bankkonto - betrag);
- displaygold(player, ggv(player, "gcoinsatm"));
- player.speak(player, "§eGold", "§rTransaktion erfolgreich");
- goto("wait");
- }
- if(inv_id == dailyrewardinvid) { //Daily Reward
- if(inv_slot + 1 == actualday) {
- uuid = player.getUuid(player);
- if(gdmap.get("dailyrewardplayers", uuid, actualday) == 1) {
- player.speak(player, "§6Belohnung", "§rTägliche Belohnung bereits abgeholt");
- goto("wait");
- }
- gdmap.add("dailyrewardplayers", uuid, actualday, 1);
- text = map.get(rewardstext, dailyrewardlist);
- if(text == "Diamanten") {
- player.speak(player, "§6Belohnung", "§rDu bekommst ", item.getAmount(dailyreward), " ", text);
- player.giveItem(player, dailyreward);
- goto("wait");
- }
- elseif(text == "Villager-Spawnei") {
- player.giveItem(player, dailyreward);
- player.speak(player, "§6Belohnung", "§rDu bekommst 1 ", text);
- goto("wait");
- }
- elseif(text == "Gold") {
- sgv(player, "gcoinsatm", ggv(player, "gcoinsatm") + dailyreward);
- displaygold(player, ggv(player, "gcoinsatm"));
- player.speak(player, "§6Belohnung", "§rDu bekommst ", dailyreward, " ", text);
- goto("wait");
- }
- elseif(text == "KlassenXP") {
- p = player;
- xp = dailyreward;
- sendmsg = true;
- gosub("addxp");
- player.speak(player, "§6Belohnung", "§rDu bekommst ", dailyreward, " ", text);
- goto("wait");
- }
- elseif(text == "Seelenpunkt") {
- //missing
- player.speak(player, "§6Belohnung", "§rDu bekommst ", dailyreward, " ", text);
- goto("wait");
- }
- }
- goto("wait");
- }
- if(inv_name == "Slots") {
- if(inv_slot > 15 && inv_slot < 40) {
- if(item != airitem) {
- skillid = map.get(skillnametoid, removeFormat(item.getName(item)));
- sgv(player, "tempidtosave", skillid);
- }
- goto("wait");
- }
- if(inv_slot >= 0 && inv_slot <= 7) {
- skillid = ggv(player, "tempidtosave");
- if(skillid != null) {
- jobid = getgpvpjob(player);
- sgv(player, concat(jobid, "gpvphotkey", inv_slot + 1), skillid);
- tempinv = map.get(bindingmenus, player.getUuid(player));
- inv.setItem(tempinv, inv_slot + 8, skill.getStack(skill.fromID(skillid, player)));
- sgv(player, "tempidtosave", null);
- inv.update(player);
- }
- }
- }
- goto("wait");
- @givemobquest
- script.start(player, "gildenpvp/gpvpquest");
- goto("wait");
- @givesammelquest
- script.start(player, "gildenpvp/gpvpquest2");
- goto("wait");
- @gettax
- gmap.toTable(gildencoinstable, "gildencoins");
- for(i = 0; i <= table.getSize(gildencoinstable) - 1; i++) {
- gildenid = table.get(gildencoinstable, i, 0);
- if(map.contains(gfights, gmap.get("gildenplot", gildenid))) {
- list.add("scheduledtax", gildenid);
- } else {
- gosub("calculatetax");
- }
- }
- goto("wait");
- function calculatetax(gildenid) {
- if(scheduled) {
- scheduled = false;
- list.remove(scheduledtax, gildenid);
- }
- gildencoins = gmap.get("gildencoins", gildenid);
- gildenblockloc = gmap.get("gildenblock", gildenid);
- gsedge1 = loc.mod(gildenblockloc, -50, 0, -50);
- obstax = 0;
- for(z = 0; z <= 100; z++) {
- for(x = 0; x <= 100; x++) {
- for(y = 0; y <= 255; y++) {
- if(block.getType(loc.mod(gsedge1, x, y, z)) == "minecraft:obsidian") {
- ++obstax;
- }
- }
- }
- }
- taxtopay = obstax * 0.1;
- gmap.add("gildencoins", gildenid, gildencoins - obstax);
- if(taxtopay < gildencoins) {
- gmap.add("golddelay", gildenid, 0);
- sendguildmessage(gildenid, gildepräfix, concat("Deine Gilde hat ", taxtopay, " Gold Steuern gezahlt"), false);
- } else {
- days = gmap.get("golddelay", gildenid) + 1;
- gmap.add("golddelay", gildenid, days);
- if(days < 6) {
- nachricht = concat("Deine Gilde konnte seit ", days, " Tagen ihre Steuern nicht begleichen!");
- sendguildmessage(gildenid, gildepräfix, nachricht, false);
- }
- elseif(days == 6) {
- nachricht = concat("Wenn ihr morgen eure Steuern nicht zahlen könnt, wird die Gilde aufgelöst!");
- sendguildmessage(gildenid, gildepräfix, nachricht, false);
- } else {
- gdmap.toTable(table, "gmembers", gildenid);
- for(i = 0; i <= table.getSize(table) - 1; i++) {
- puuid = table.get(table, i, 0);
- player.setGuild(puuid, 0);
- gmap.remove("gnicknames", puuid);
- }
- nachricht = concat("Ihr konntet seit 7 Tagen eure Steuern nicht bezahlen! Die Gilde wurde automatisch aufgelöst!");
- sendguildmessage(gildenid, gildepräfix, nachricht, true);
- gdmap.removeAll("gmembers", gildenid);
- gmap.remove("gildencoins", gildenid);
- gildenblockloc = read.location(gmap.get("gildenblock", gildenid));
- block.set(gildenblockloc, airitem);
- plotid = getplotid(gildenblockloc);
- command("plot remove ", plotid);
- gmap.remove("gildenblock", gildenid);
- gmap.remove("membersmax", gildenid);
- gmap.remove("gmembersatm", gildenid);
- gmap.remove("adelmax", gildenid);
- gmap.remove("adelatm", gildenid);
- gmap.remove("gildennamen", gildenid);
- gmap.remove("gildentime", gildenid);
- gmap.remove("gildenplot2", gmap.get("gildenplot", gildenid));
- gmap.remove("gildenplot", gildenid);
- moveid = map.get(gmoveids2, gildenid);
- event.removeMoveData(moveid);
- map.remove(gmoveids, moveid);
- map.remove(gmoveids2, gildenid);
- }
- }
- }
- return;
- @block_click
- if(block_type == "minecraft:stone_button") {
- if(block_loc == magierbuttontploc) {
- entity.teleport(player, magierreturntploc);
- }
- goto("wait");
- }
- if(block_type == "minecraft:chest") {
- if(block_loc == read.location("gpvpnew:40:105:385")) {
- gosub("checkfornextday");
- uuid = player.getUuid(player);
- for(i = 0; i <= daysofmonth - 1; i++) { //inv befüllen
- temp = gdmap.get("dailyrewardplayers", uuid, i + 1);
- if(temp == null) {
- if(i + 1 < actualday) {
- inv.setItem(dailyrewardinv, i, read.item("minecraft:concrete", 1, 15, concat("§rTag ", i + 1)));
- } else {
- inv.setItem(dailyrewardinv, i, read.item("minecraft:chest", 1, 0, concat("§rTag ", i + 1)));
- }
- } else {
- inv.setItem(dailyrewardinv, i, read.item("minecraft:chest", 1, 0, concat("§rTag ", i + 1)));
- }
- }
- inv.open(dailyrewardinv, player);
- }
- goto("wait");
- }
- if(block_type == "minecraft:wall_sign") {
- if(block_loc == read.location("gpvpnew:135:142:495")) {
- if(set.contains(gamemasters, player.getUuid(player_name))) {
- sgv(player, "gcoinsatm", ggv(player, "gcoinsatm") + 2000);
- displaygold(player, ggv(player, "gcoinsatm"));
- msg(player, "2000 Gold hinzugefügt");
- }
- goto("wait");
- }
- if(block_loc == read.location("gpvpnew:28:105:395")) {
- msg(player, "...the right answer is always 42");
- goto("wait");
- }
- if(block_loc == read.location("gpvpnew:103:110:473")) {
- entity.teleport(player, read.location("gpvpnew:27.5:110:427.5"));
- sendworldmessage("§cGalgen", concat("§r", player_name, " hat sich als gierig erwiesen"));
- }
- goto("wait");
- }
- if(item.getType(entity.getEquip(player, "hand")) == "minecraft:diamond_pickaxe") {
- if(block_type == "km:guild_block") {
- plotid = getplotid(block_loc);
- if(!map.contains(gfights, plotid)) {
- goto("wait"); //Grundstück ist nicht in Gildenkampf verwickelt
- }
- defenderid = gmap.get("gildenplot2", plotid);
- attackerid = player.getGuild(player.getUuid(player_name));
- if(checkifsameguild(defenderid, attackerid)) {
- goto("wait"); //Spieler der eigenen Gilde können ihren Gildenblock nicht zerstören
- }
- blockstatus = map.get(clicks, block_loc) - 1;
- if(blockstatus >= 0) {
- if(time.getMillis() - map.get(blocktime, defenderid) >= 1000) {
- map.add(blocktime, defenderid, time.getMillis());
- nachricht = concat("§rDer Gildenblock hat noch §6", blockstatus, "§r/§6200 §rHaltbarkeit!");
- sendguildmessage(defenderid, gildepräfix, nachricht, false);
- sendguildmessage(attackerid, gildepräfix, nachricht, false);
- map.add(clicks, block_loc, blockstatus);
- if(blockstatus == 190) {
- nachricht = concat("§rDer Gildenblock wurde zerstört");
- sendguildmessage(attackerid, gildepräfix, nachricht, false);
- sendguildmessage(defenderid, gildepräfix, nachricht, false);
- nachricht = concat("§rDie Angreifer haben nun 30 Minuten Zeit, Gold zu stehlen und Kisten zu knacken");
- sendguildmessage(attackerid, gildepräfix, nachricht, false);
- sendguildmessage(defenderid, gildepräfix, nachricht, false);
- title = "§4Stehlphase";
- subtitle = concat("§rAuf die Kisten, fertig - stehlt!");
- sendguildtitle(defenderid, title, subtitle);
- sendguildtitle(attackerid, title, subtitle);
- //Status des Gfights ändern
- map.add(gstatus, plotid, 1);
- table.setSortColumn(gstatustable, 0);
- table.removeRow(gstatustable, table.getIndexOf(gstatustable, plotid));
- table.addRow(gstatustable, plotid, 1);
- sgoto(36000, "stealends");
- }
- }
- }
- goto("wait");
- }
- if(block_type == "km:artefact") {
- artestatus = ggv("SERVER", "artehitpoints");
- if(block_loc != artefaktfixloc) { //Check ob Artefakt in Ruine
- plotid = getplotid(block_loc);
- if(!map.contains(gfights, plotid)) {
- goto("wait"); //Grundstück ist nicht in Gildenkampf verwickelt
- }
- defenderid = gmap.get("gildenplot2", plotid);
- attackerid = player.getGuild(player.getUuid(player_name));
- if(checkifsameguild(defenderid, attackerid)) {
- goto("wait"); //Spieler der eigenen Gilde können den ArteBlock nicht zerstören
- }
- if(artestatus >= 0) {
- if(time.getMillis() - time.from(artetime) >= 1000) {
- sgv("SERVER", "artehitpoints", sub(ggv("SERVER", "artehitpoints"), 1));
- --artestatus;
- time.new(artetime, time.getMillis());
- nachricht = concat("§rDas Artefakt hat noch §6", artestatus, "§r/§610 §rHaltbarkeit!");
- sendguildmessage(attackerid, gildepräfix, nachricht, false);
- sendguildmessage(defenderid, gildepräfix, nachricht, false);
- if(artestatus == 0) { //Direkter Reset in Arte-Ruine
- block.set(block_loc, airitem);
- gosub("arteresetcore");
- }
- }
- }
- }
- elseif(artestatus >= 0) {
- if(time.getMillis() - time.from(artetime) >= 1000) {
- sgv("SERVER", "artehitpoints", sub(ggv("SERVER", "artehitpoints"), 1));
- --artestatus;
- time.new(artetime, time.getMillis());
- sendworldmessage(gildepräfix, concat("§rDas Artefakt hat noch §6", artestatus, "§r/§6250 §rHaltbarkeit!"));
- if(artestatus == 0) {
- sendworldmessage(gildepräfix, concat("§7", player_name, "§r trägt nun das Artefakt"));
- artefaktyetloc = player.getUuid(player_name);
- sgv("SERVER", "arteyetloc", artefaktyetloc);
- block.set(block_loc, airitem);
- //hungerkeule
- //herzpartikel
- sgoto(3600000, "checkcarryarte");
- }
- }
- }
- }
- }
- goto("wait");
- @checkcarryarte
- temp = read.location(ggv("SERVER", "arteyetloc"));
- if(temp == null) {
- //Location nicht erkannt --> Spieler hat das Artefakt nach einer Stunde noch immer bei sich
- gosub("arteresetcore");
- }
- goto("wait");
- @defendwin
- nachricht = concat("§6", gmap.get("gildennamen", defenderid), "§r hat den Angriff von §6", gmap.get("gildennamen", attackerid), "§r erfolgreich verteidigt");
- sendguildmessage(defenderid, gildepräfix, nachricht, false);
- sendguildmessage(attackerid, gildepräfix, nachricht, false);
- map.remove(gfights, plotid);
- map.remove(gstatus, plotid);
- table.setSortColumn(gstatustable, 0);
- table.removeRow(gstatustable, table.getIndexOf(gstatustable, plotid));
- map.remove(gattackers, attackerid);
- map.remove(gdefenders, defenderid);
- goto("wait");
- @stealends
- plotid = table.get(gstatustable, 0, 0);
- table.removeRow(gstatustable, 0);
- map.remove(gstatus, plotid);
- defenderid = gmap.get("gildenplot2", plotid);
- attackerid = map.get(gdefenders, defenderid);
- nachricht = concat("§6", gmap.get("gildennamen", attackerid), "§r hat den Angriff gegen §6", gmap.get("gildennamen", defenderid), "§r gewonnen");
- sendguildmessage(defenderid, gildepräfix, nachricht, false);
- nachricht = concat("§rVerlasst sofort das Gildengebiet, sonst ereilt euch der Tod");
- sendguildmessage(attackerid, gildepräfix, nachricht, false);
- map.remove(gfights, plotid);
- map.remove(gattackers, attackerid);
- map.remove(gdefenders, defenderid);
- if(list.contains(scheduledtax, defenderid)) {
- gildenid = defenderid;
- scheduled = true;
- gosub("calculatetax");
- }
- goto("wait");
- @addsharedgold
- //Benötigt die Variablen Player p, Zahl gold
- id = player.getGuild(p);
- list = map.get(onlinelists, id);
- size = list.getSize(list);
- gold /= size;
- for(i = 0; i <= size - 1; i++) {
- p = list.getIndex(list, i);
- goldnew = ggv(p, "gcoinsatm") + gold;
- sgv(p, "gcoinsatm", goldnew);
- display.add(p, 40, "#23-1- §e", text.number(goldnew));
- }
- goto("wait");
- @addsharedxp
- //Benötigt die Variablen Player p, Zahl xp
- sharing = true;
- sendmsg = true;
- id = player.getGuild(p);
- list = map.get(onlinelists, id);
- size = list.getSize(list);
- for(i = 0; i <= size - 1; i++) {
- p = list.getIndex(list, i);
- xp = math.round((xp * 1.1) / size);
- gosub("addxp");
- }
- sharing = false;
- sendmsg = null;
- goto("wait");
- @addxp
- //Benötigt die Variablen Player p, Zahl xp und Boolean sendmsg
- jobid = getgpvpjob(p);
- if(jobid == null) {
- return;
- }
- level = job.getLevel(p, jobid);
- if(level >= 100) {
- return;
- }
- newxp = job.getXP(p, jobid) + xp;
- listxp = list.getIndex(xplist, level - 1);
- if(newxp > listxp) {
- job.setLevel(p, jobid, ++level);
- display.add(p, 41, "Stufe §a", text.number(level));
- if(level == 100) {
- job.setXp(p, jobid, 0);
- display.add(player, 44, "#26-1- 0/0");
- } else {
- newxp -= listxp;
- job.setXp(p, jobid, newxp);
- display.add(player, 44, "#26-1- ", text.number(newxp), "/", text.number(listxp));
- }
- } else {
- job.setXp(p, jobid, newxp);
- display.add(player, 44, "#26-1- ", text.number(newxp), "/", text.number(listxp));
- }
- if(sendmsg) {
- if(sharing) {
- player.speak(player, "§aEXP", concat("§rDu hast §a", text.number(xp), " §rEXP erhalten [§9Gruppe§r]"));
- } else {
- player.speak(player, "§aEXP", concat("§rDu hast §a", text.number(xp), " §rEXP erhalten"));
- sendmsg = null;
- }
- }
- return;
- @custom_command
- size = list.getSize(args);
- if(command == "playerinfo" || command == "pinfo") {
- if(size > 1) {
- player.speak(player, commandspräfix, "/playerinfo [player]");
- goto("wait");
- } elseif(size == 0) {
- p = player;
- } else {
- p = list.getIndex(args, 0);
- }
- pname = player.getName(p);
- uuid = player.getUuid(p);
- gildenid = player.getGuild(p);
- player.speak(player, "§aPlayerinfo", pname);
- gtype = gmap.get("gtype", gildenid);
- if(gtype == "group") {
- msg(player, "Gildenid: ", text.number(gildenid), "(Gruppe)");
- } elseif(gtype == "gilde") {
- msg(player, "Gildenname: ", gmap.get("gildennamen", gildenid));
- msg(player, "Gildenid: ", text.number(gildenid));
- }
- jobid = getgpvpjob(p);
- if(jobid != null) {
- msg(player, "Klasse: ", job.getName(jobid));
- msg(player, "Level: ", text.number(job.getLevel(p, jobid)));
- msg(player, "XP: ", text.number(job.getXP(p, jobid)));
- }
- msg(player, "Leben: ", text.number(entity.getHealth(p)));
- msg(player, "Mana: ", text.number(status.getMana(p)));
- msg(player, "Hunger: ", text.number(player.getHunger(p)));
- msg(player, "Gold atm: ", text.number(ggv(player, "gcoinsatm")));
- goto("wait");
- }
- if(command == "bank" || command == "money") {
- if(size > 1) {
- player.speak(player, commandspräfix, "/bank <player>");
- player.speak(player, commandspräfix, "/money <player>");
- goto("wait");
- } elseif(size == 0) {
- p = player;
- } else {
- p = list.getIndex(args, 0);
- }
- player.speak(player, "§eGold", "Bank: ", text.number(ggv(p, "gcoinsbank")));
- goto("wait");
- }
- if(command == "skill") { //ein skill wird ausgeführt
- if(size != 1) {
- player.speak(player, commandspräfix, "/skill <skillname>");
- } else {
- skillname = text.concatList(args, " ", 0, size - 1);
- skillid = map.get(skillnametoid, skillname);
- if(skillid == null) {
- player.speak(player, fehlerpräfix, "§rDieser Skill existiert nicht");
- goto("wait");
- }
- plotid = getplotid(player_loc);
- if(plotid == spawnplotid) {
- player.speak(player, fehlerpräfix, "§rSkills sind am Spawn-Plot nicht erlaubt");
- goto("wait");
- }
- leveledskill = skill.fromID(skillid, player);
- if(leveledskill == null) {
- player.speak(player, fehlerpräfix, "§rDu besitzt diesen Skill nicht");
- goto("wait");
- }
- skill.use(leveledskill, player);
- skillspeak(player, player_name, leveledskill);
- }
- goto("wait");
- }
- if(command == "slots") {
- plotid = getplotid(player_loc);
- if(plotid != spawnplotid) {
- player.speak(player, fehlerpräfix, "§rSkillbinding geht nur am Spawn");
- goto("wait");
- }
- id = getgpvpjob(player);
- if(id == null) {
- player.speak(player, fehlerpräfix, "§rDu besitzt keine Klasse");
- goto("wait");
- }
- inv.newdynamic(newbindinv, "222222220222222220000000000222222220222222220222222220", "Slots"); //Achtung, für jeden Spieler ein neues Inv, weil es sich leider um ein sich veränderndes Inventar handelt
- for(i = 0; i <= 7; i++) {
- inv.setItem(newbindinv, i, read.item("STONE_SWORD", 1, 0, concat("Hotkey", text.number(i + 1))));
- tempid = ggv(player, concat(id, "gpvphotkey", i + 1));
- if(tempid != null) {
- inv.setItem(newbindinv, i + 8, skill.getStack(skill.fromID(tempid, player)));
- } else {
- inv.setItem(newbindinv, i + 8, airitem);
- }
- }
- skill.getActive(templist, player);
- for(i = 0; i <= list.getSize(templist) - 1; i++) {
- inv.setItem(newbindinv, i + 16, skill.getStack(list.getIndex(templist, i)));
- }
- inv.open(newbindinv, player);
- map.add(bindingmenus, player.getUuid(player), newbindinv);
- goto("wait");
- }
- if(command == "placearte") {
- //Check ob Spieler Arte-Träger ist
- if(ggv("SERVER", "arteyetloc") != player.getUuid(player)) {
- player.speak(player, fehlerpräfix, "§rDu trägst das Artefakt nicht");
- goto("wait");
- }
- //Check ob eigenes Gilden GS
- temploc = entity.getLocation(player);
- plotid = getplotid(temploc);
- if(plotid == null) {
- player.speak(player, fehlerpräfix, "§rDu musst das Artefakt auf deinem Gildengrundstück platzieren");
- goto("wait");
- }
- gildenid = player.getGuild(player);
- if(gmap.get("gildenplot2", plotid) != gildenid) {
- player.speak(player, fehlerpräfix, "§rDu musst das Artefakt auf deinem Gildengrundstück platzieren");
- goto("wait");
- }
- y = loc.getY(temploc);
- if(y < 80 || y > 110) {
- player.speak(player, fehlerpräfix, "§rDas Artefakt muss zwischen 80 bis 110 Blöcke Höhe platziert werden");
- goto("wait");
- }
- lowerblock = loc.mod(temploc, 0, -1, 0);
- if(!block.isSolid(lowerblock)) {
- player.speak(player, fehlerpräfix, "§rDer Block unter dem Artefakt muss ein solider Block sein");
- goto("wait");
- }
- btype = block.getType(lowerblock);
- if(btype == "minecraft:leaves" || btype == "minecraft:leaves2") {
- player.speak(player, fehlerpräfix, "§rDer Block unter dem Artefakt darf kein Laub sein");
- cancel = true;
- goto("wait");
- }
- if(set.contains(richblocks, btype)) {
- player.speak(player, fehlerpräfix, "§rDer Block unter dem Artefakt darf kein wertvoller Block sein");
- cancel = true;
- goto("wait");
- }
- sgv("SERVER", "artehitpoints", 10);
- artefaktyetloc = temploc;
- sgv("SERVER", "arteyetloc", text.location(artefaktyetloc));
- sendworldmessage(gildepräfix, concat("§rDas Artefakt wurde von ", gmap.get("gildennamen", gildenid), " platziert"));
- goto("wait");
- }
- if(command == "friend") {
- if(size == 0) {
- player.speak(player, freundepräfix, "§r/friend ...");
- msg(player, "§5 - add <name> §rMarkiert einen Spieler als Freund");
- msg(player, "§5 - remove <name> §rEntfernt einen Spieler als Freund");
- msg(player, "§5 - list §rListet deine Freunde auf");
- goto("wait");
- }
- arg0 = toLowerCase(list.getIndex(args, 0));
- if(arg0 == "add") {
- if(size != 2) {
- player.speak(player, freundepräfix, "§r/friend add <name>");
- goto("wait");
- }
- pname = list.getIndex(args, 1);
- if(isyourself(player_name, pname)) {
- player.speak(player, fehlerpräfix, "§rDu kannst dich nicht selbst einladen");
- goto("wait");
- }
- puuid = player.getUuid(pname);
- ownuuid = player.getUuid(player_name);
- if(!checkifeveronline(pname)) {
- player.speak(player, fehlerpräfix, "§rDieser Spieler war noch nie online");
- goto("wait");
- }
- if(gdmap.get("gfriends", ownuuid, puuid) != null) {
- player.speak(player, freundepräfix, "§rDieser Spieler ist bereits dein Freund");
- goto("wait");
- }
- if(map.contains(newfriends, puuid)) {
- if(map.get(newfriends, puuid) == ownuuid) {
- player.speak(player, freundepräfix, concat("§rDu bist nun mit §7", pname, "§r befreundet"));
- gdmap.add("gfriends", ownuuid, puuid, true);
- gdmap.add("gfriends", puuid, ownuuid, true);
- map.remove(newfriends, puuid);
- map.remove(newfriends2, ownuuid);
- sendmessage(pname, freundepräfix, concat("§rDu bist nun mit §7", player_name, "§r befreundet"), true);
- }
- } else {
- player.speak(player, freundepräfix, concat("§rDu hast §7", pname, "§r eine Einladung geschickt"));
- map.add(newfriends, ownuuid, puuid); //Einlader, Eingeladener
- map.add(newfriends2, puuid, ownuuid); //Eingeladener, Einlader
- sendmessage(pname, freundepräfix, concat("§7", player_name, "§r möchte dein Freund sein"), true);
- p = read.player(pname);
- if(p != null) {
- msg(p, text.click("§r[§aAnnehmen§r]", concat("/friend add ", player_name)));
- }
- }
- goto("wait");
- }
- if(arg0 == "list") {
- if(size != 1) {
- player.speak(player, commandspräfix, "/friend list");
- } else {
- gdmap.toTable(table, "gfriends", player.getUuid(player_name));
- tablesize = table.getSize(table);
- if(tablesize == 0) {
- player.speak(player, freundepräfix, "§rDu hast noch keine Freunde");
- } else {
- msg(player, "§5Freunde:");
- for(i = 0; i <= tablesize - 1; i++) {
- msg(player, "§r- ", player.getName(table.get(table, i, 0)));
- }
- }
- }
- goto("wait");
- }
- if(arg0 == "remove") {
- if(size != 2) {
- player.speak(player, freundepräfix, "§r/friend remove <name>");
- } else {
- pname = list.getIndex(args, 1);
- puuid = player.getUuid(pname);
- ownuuid = player.getUuid(player_name);
- if(!checkifeveronline(pname)) {
- player.speak(player, fehlerpräfix, "§rDieser Spieler war noch nie online");
- goto("wait");
- }
- if(gdmap.get("gfriends", ownuuid, puuid) == null) {
- player.speak(player, freundepräfix, "§rDieser Spieler ist nicht dein Freund");
- goto("wait");
- }
- player.speak(player, freundepräfix, concat("§rDu bist nun nicht mehr mit §7", pname, "§r befreundet"));
- gdmap.remove("gfriends", ownuuid, puuid);
- gdmap.remove("gfriends", puuid, ownuuid);
- sendmessage(pname, freundepräfix, concat("§rDu bist nun nicht mehr mit §7", player_name, "§r befreundet"), true);
- }
- }
- goto("wait");
- }
- if(command == "group") {
- if(size == 0) {
- player.speak(player, gruppepräfix, "§r/group ...");
- msg(player, "§9 - info §rZeigt Infos über deine Gruppe");
- msg(player, "§9 - leave §rVerlasst die Gruppe");
- msg(player, "§9 - accept <Spieler-Name> §rAkzeptiert die Einladung einer Gruppe");
- msg(player, "§9 - invite <Name> §rLädt einen Spieler in die Gruppe ein");
- msg(player, "§9 - kick <Name> §rKickt einen Spieler aus der Gruppe");
- msg(player, "§9 - disband §rLöst die Gruppe auf");
- msg(player, "§9 - gold §rAktiviert/deaktiviert die Gold-Teilung");
- msg(player, "§9 - xp §rAktiviert/deaktiviert die XP-Teilung");
- msg(player, "§9 * nur für Leader xp §rAktiviert/deaktiviert die XP-Teilung");
- goto("wait");
- }
- arg0 = toLowerCase(list.getIndex(args, 0));
- if(arg0 == "leave") {
- if(size != 1) {
- player.speak(player, commandspräfix, "/group leave");
- } else {
- groupid = player.getGuild(player);
- if(!isingroup(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu befindest dich in keiner Gruppe");
- goto("wait");
- }
- gdmap.remove("gmembers", groupid, player.getUuid(pname));
- player.setGuild(player, 0);
- gmap.add("gmembersatm", groupid, gmap.get("gmembersatm", groupid) - 1);
- player.speak(player, gruppepräfix, "§rDu hast die Gruppe verlassen");
- goto("checkgroupsize");
- }
- goto("wait");
- }
- if(arg0 == "disband") {
- if(size != 1) {
- player.speak(player, commandspräfix, "/group disband");
- } else {
- if(!isingroup(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu befindest dich in keiner Gruppe");
- goto("wait");
- }
- groupid = player.getGuild(player);
- if(!isgroupleader(groupid, player_name)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht ausführen, da du nicht der Leiter der Gruppe bist");
- goto("wait");
- }
- gdmap.toTable(temptable, "gmembers", groupid);
- for(i = 0; i <= gmap.get("gmembersatm", groupid) - 1; i++) {
- tempuuid = table.get(temptable, i, 0);
- player.setGuild(tempuuid, 0);
- }
- gdmap.removeAll("gmembers", groupid);
- player.speak(player, gruppepräfix, "§rDu hast die Gruppe aufgelöst");
- gmap.remove("gmembersatm", groupid);
- }
- goto("wait");
- }
- if(arg0 == "gold") {
- if(size != 1) {
- player.speak(player, commandspräfix, "/group gold");
- } else {
- if(!isingroup(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu befindest dich in keiner Gruppe");
- goto("wait");
- }
- groupid = player.getGuild(player);
- if(!isgroupleader(groupid, player_name)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht ausführen, da du nicht der Leiter der Gruppe bist");
- goto("wait");
- }
- if(gmap.get("gsharegold", groupid)) {
- gmap.add("gsharegold", groupid, false);
- player.speak(player, gruppepräfix, "§rGold-Teilung deaktiviert");
- } else {
- gmap.add("gsharegold", groupid, true);
- player.speak(player, gruppepräfix, "§rGold-Teilung aktiviert");
- }
- }
- goto("wait");
- }
- if(arg0 == "xp") {
- if(size != 1) {
- player.speak(player, commandspräfix, "/group xp");
- } else {
- if(!isingroup(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu befindest dich in keiner Gruppe");
- goto("wait");
- }
- groupid = player.getGuild(player);
- if(!isgroupleader(groupid, player_name)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht ausführen, da du nicht der Leiter der Gruppe bist");
- goto("wait");
- }
- if(gmap.get("gsharexp", groupid)) {
- gmap.add("gsharexp", groupid, false);
- player.speak(player, gruppepräfix, "§rXP-Teilung deaktiviert");
- } else {
- gmap.add("gsharexp", groupid, true);
- player.speak(player, gruppepräfix, "§rXP-Teilung aktiviert");
- }
- }
- goto("wait");
- }
- if(arg0 == "info") {
- if(size != 1) {
- player.speak(player, commandspräfix, "/group info");
- } else {
- groupid = player.getGuild(player);
- if(!isingroup(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu befindest dich in keiner Gruppe");
- goto("wait");
- }
- gdmap.toTable(temptable, "gmembers", groupid);
- list.new(memberslist);
- for(i = 0; i <= table.getSize(temptable) - 1; i++) {
- tempname = player.getName(table.get(temptable, i, 0));
- temprang = table.get(temptable, i, 1);
- if(temprang == "Leiter") {
- leader = tempname;
- } else {
- list.add(memberslist, tempname);
- }
- }
- members = concatList(memberslist, ", ", 0, sub(list.getSize(memberslist), 1));
- msg(player, "§lGruppe");
- msg(player, "§lLeiter");
- msg(player, "§r", leader);
- msg(player, "§lMitglieder");
- msg(player, "§r", members);
- }
- goto("wait");
- }
- if(arg0 == "accept") {
- if(size != 2) {
- player.speak(player, commandspräfix, "/group accept <player>");
- } else {
- if(isingroup(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu befindest dich bereits in einer Gruppe");
- goto("wait");
- }
- if(isinguild(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu befindest dich in einer Gilde");
- goto("wait");
- }
- pname = list.getIndex(args, 1);
- puuid = player.getUuid(pname);
- ownuuid = player.getUuid(player_name);
- if(map.get(groupinvitations, puuid) != ownuuid) {
- player.speak(player, fehlerpräfix, "§rDu hast keine Einladung dieses Spielers");
- goto("wait");
- }
- if(!isingroup(pname)) { //Überprüfung ob Einlader in Gruppe. Wenn Nein: Gruppe erstellen
- //Gruppe erstellen
- p = read.player(pname);
- if(p == null) {
- player.speak(player, fehlerpräfix, "§rDieser Spieler ist nicht mehr online");
- goto("wait");
- }
- sgv("SERVER", "gildencounter", ggv("SERVER", "gildencounter") + 1);
- groupid = ggv("SERVER", "gildencounter");
- gdmap.add("gmembers", groupid, puuid, "Leiter");
- gmap.add("gsharegold", groupid, true);
- gmap.add("gsharexp", groupid, true);
- gmap.add("gtype", groupid, "group");
- map.add(onlinelists, groupid, list.new());
- list = map.get(onlinelists, groupid);
- //Einlader zur Gruppe hinzufügen
- player.setGuild(puuid, groupid);
- gmap.add("gmembersatm", groupid, 1);
- list.add(list, p);
- } else {
- //Gruppe existiert
- groupid = player.getGuild(pname);
- list = map.get(onlinelists, groupid);
- }
- //Spieler hinzufügen
- list.add(list, player);
- map.add(onlinelists, groupid, list);
- gmap.add("gmembersatm", groupid, gmap.get("gmembersatm", groupid) + 1);
- gdmap.add("gmembers", groupid, ownuuid, "Mitglied");
- player.setGuild(player, groupid);
- map.remove(groupinvitations, ownuuid);
- map.remove(groupinvitations, puuid);
- player.speak(player, gruppepräfix, "§rEinladung angenommen");
- sendmessage(pname, gruppepräfix, concat("§7", player_name, " §rhat die Einladung angenommen"), true);
- }
- goto("wait");
- }
- if(arg0 == "invite") {
- if(size != 2) {
- player.speak(player, commandspräfix, "/group invite <player>");
- } else {
- if(isinguild(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu befindest dich in einer Gilde");
- goto("wait");
- }
- //Beim Einladen muss nicht zwingend eine Gruppe bestehen
- if(isingroup(player_name)) {
- groupid = player.getGuild(player);
- if(!isgroupleader(groupid, player_name)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht ausführen, da du nicht der Leiter der Gruppe bist");
- goto("wait");
- }
- if(gmap.get("gmembersatm", groupid) >= 7) {
- player.speak(player, fehlerpräfix, "§rEine Gruppe ist auf sieben Spieler begrenzt");
- goto("wait");
- }
- }
- ownuuid = player.getUuid(player_name);
- if(map.contains(groupinvitations, ownuuid)) {
- player.speak(player, fehlerpräfix, "§rWarte bis die offene Einladung abläuft oder angenommen wird");
- goto("wait");
- }
- pname = list.getIndex(args, 1);
- if(isyourself(player_name, pname)) {
- player.speak(player, fehlerpräfix, "§rDu kannst dich nicht selbst einladen");
- goto("wait");
- }
- p = read.player(pname);
- if(p == null) {
- player.speak(player, fehlerpräfix, "§rEs können nur Online-Spieler eingeladen werden");
- goto("wait");
- }
- if(isingroup(pname)) {
- player.speak(player, fehlerpräfix, "§rDieser Spieler befindet sich bereits in einer Gruppe");
- goto("wait");
- }
- if(isinguild(pname)) {
- player.speak(player, fehlerpräfix, "§rDieser Spieler ist in einer Gilde");
- goto("wait");
- }
- player.speak(player, gruppepräfix, "§rEinladung gesendet");
- player.speak(p, gruppepräfix, concat("§7", player_name, "§r hat dich in seine Gruppe eingeladen"));
- puuid = player.getUuid(pname);
- map.add(groupinvitations, ownuuid, puuid);
- table.addRow(groupinvitations2, ownuuid, puuid);
- sgoto(1200, "deletegroupinvitation");
- }
- goto("wait");
- }
- if(arg0 == "kick") {
- if(size != 1) {
- player.speak(player, commandspräfix, "/group kick <player>");
- } else {
- if(!isingroup(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu befindest dich in keiner Gruppe");
- goto("wait");
- }
- groupid = player.getGuild(player);
- if(!isgroupleader(groupid, player_name)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht ausführen, da du nicht der Leiter der Gruppe bist");
- goto("wait");
- }
- pname = list.getIndex(args, 1);
- puuid = player.getUuid(pname);
- if(!checkifsameguild(pname, player_name)) {
- player.speak(player, fehlerpräfix, "§rDieser Spieler ist nicht in deiner Gruppe");
- goto("wait");
- }
- gdmap.remove("gmembers", groupid, puuid);
- player.setGuild(puuid, 0);
- gmap.add("gmembersatm", groupid, gmap.get("gmembersatm", groupid) - 1);
- player.speak(player, gruppepräfix, "§rSpieler aus der Gruppe entfernt");
- sendmessage(pname, gruppepräfix, concat("§rDu bist aus der Gruppe entfernt worden"), false);
- goto("checkgroupsize");
- }
- }
- goto("wait");
- }
- if(command == "pay") {
- if(size != 2) {
- player.speak(player, commandspräfix, "/pay <player> <gold>");
- } else {
- pname = list.getIndex(args, 0);
- betrag = list.getIndex(args, 1);
- try {
- temp = betrag + 1;
- } catch {
- player.speak(player, fehlerpräfix, "§rDer angegebene Parameter muss eine Zahl sein");
- goto("wait");
- }
- if(betrag < 0) {
- player.speak(player, fehlerpräfix, "§rDer Betrag muss positiv sein");
- goto("wait");
- }
- geldbeutel = ggv(player, "gcoinsatm");
- if(!checkifeveronline(pname)) {
- player.speak(player, fehlerpräfix, "§rDieser Spieler war noch nie online");
- goto("wait");
- }
- p = read.player(pname);
- if(p == null) {
- player.speak(player, fehlerpräfix, "§rDer Empfänger muss bei einer Überweisung online sein");
- goto("wait");
- }
- players.toWorldList(templist, gpvpworld);
- if(list.contains(templist, player)) {
- player.speak(player, fehlerpräfix, "§rDer Empfänger muss sich bei einer Überweisung in der Gildenpvp-Welt aufhalten");
- goto("wait");
- }
- if(betrag > geldbeutel) {
- player.speak(player, fehlerpräfix, "§rDu kannst nicht mehr überweisen, als du in deinem Geldbeutel hast");
- goto("wait");
- }
- player.speak(player, "§eGold", "§rTransaktion erfolgreich");
- player.speak(p, "§eGold", "§r", player_name, " hat dir ", betrag, " Gold überwiesen");
- newgold = geldbeutel - betrag;
- sgv(player, "gcoinsatm", newgold);
- displaygold(player, newgold);
- newgold2 = ggv(p, "gcoinsatm") + betrag;
- sgv(p, "gcoinsatm", newgold2);
- displaygold(p, newgold2);
- }
- goto("wait");
- }
- if(command == "g" || command == "gilde" || command == "guild") {
- if(list.getSize(args) == 0) {
- player.speak(player, commandspräfix, "§r/gilde... (/g, /guild)");
- msg(player, "§6 - invite <name> §rLädt einen Spieler in deine Gilde ein");
- msg(player, "§6 - accept <name> §rNimmt eine Einladung an");
- msg(player, "§6 - info [gname/gildenid] §rGibt Infos über eine Gilde");
- msg(player, "§6 - create <gname> §rRegistriert eine Gilde");
- msg(player, "§6 - kick <name> §rKickt einen Spieler aus deiner Gilde");
- msg(player, "§6 - leader <name> §rBefördert einen Spieler zum einzigen Leiter");
- msg(player, "§6 - officer <name> §rBefördert einen Spieler zum Offizier");
- msg(player, "§6 - adel <name> §rBefördert einen Spieler zum Adel");
- msg(player, "§6 - degrade <name> §rDegradiert einen Spieler");
- msg(player, "§6 - leave §rDu verlässt die Gilde");
- msg(player, "§6 - disband §rDer Leiter löst die Gilde auf");
- msg(player, "§6 - newpos §rDer Gildenblock wird umgesetzt");
- msg(player, "§6 - rename <gname> §rDie Gilde wird umbenannt");
- msg(player, "§6 - fight §rGreift eine andere Gilde an");
- msg(player, "§6 - steal §rStiehlt Gold");
- msg(player, "§6 - spawn §rTeleportiert dich zum Gildenspawn");
- msg(player, "§6 - home §rTeleportiert dich zum Gildenblock");
- msg(player, "§6 - msg <nachricht> §rSendet eine Nachricht an alle Gildenmitglieder");
- msg(player, "§6 - mail <nachricht> §rSendet eine Mail an alle Gildenmitglieder");
- msg(player, "§6 - nick <name> <nickname> §rWeist einem Spieler einen Nicknamen zu");
- msg(player, "§6 - deposit <zahl> §rLegt Gold aufs Gildenkonto");
- msg(player, "§6 - withdraw <zahl> §rHebt Gold vom Gildenkonto ab");
- msg(player, "§6 - gold §rAktiviert/deaktiviert die Gold-Teilung (nur Leader)");
- msg(player, "§6 - xp §rAktiviert/deaktiviert die XP-Teilung (nur Leader)");
- msg(player, "§6 - ad <nachricht> §rSendet eine Nachricht an alle Spieler in der Welt");
- if(set.contains(gamemasters, player.getUuid(player))) {
- msg(player, "§6 - reset §rResettet Gildenpvp");
- msg(player, "§6 - resetplayer <name> §rResettet einen Spieler");
- msg(player, "§6 - resetsafetime <gildenid> §rEntfernt die Schutzzeit einer Gilde");
- msg(player, "§6 - setclass <name> <level> <xp> [jobid] §rBearbeitet die aktuelle bzw. eine Klasse eines Spielers");
- msg(player, "§6 - tp <gildenid> §rTp zum Gildenblock der Gilde");
- }
- if(perm.has(player, "isAdmin")) {
- msg(player, "§6 - mode §rWechselt zwischen Spielmodi Spieler/Mod");
- }
- goto("wait");
- }
- arg0 = text.toLowerCase(list.getIndex(args, 0));
- if(set.contains(gcommandsset, arg0)) {
- if(!isinguild(player_name)) {
- player.speak(player, fehlerpräfix, "§rFür diesen Befehl musst du einer Gilde angehören");
- goto("wait");
- }
- }
- //Gilde registrieren/umbenennen
- if((arg0 == "create" && loc.distance(entity.getLocation(player), gildenvillagerloc) < 8) || arg0 == "rename") {
- if(list.getSize(args) != 2) {
- player.speak(player, fehlerpräfix, "§rDer Gildenname muss aus einem Wort bestehen");
- goto("wait");
- }
- gildenname = list.getIndex(args, 1);
- if(text.length(gildenname) > 20) {
- player.speak(player, fehlerpräfix, "§rDer Gildenname darf maximal 20 Zeichen lang sein");
- goto("wait");
- }
- if(!onlyletters(gildenname)) {
- player.speak(player, fehlerpräfix, "§rDer Gildenname darf nur Buchstaben enthalten");
- goto("wait");
- }
- gmap.toTable(gildennamentable, "gildennamen");
- for(i = 0; i <= table.getSize(gildennamentable) - 1; i++) {
- if(table.get(gildennamentable, i, 1) == gildenname) {
- player.speak(player, fehlerpräfix, "§rDieser Gildenname existiert bereits");
- goto("wait");
- }
- }
- if(arg0 == "create") {
- if(isinguild(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu bist bereits in einer Gilde");
- goto("wait");
- }
- coinsnow = ggv(player, "gcoinsatm");
- if(coinsnow < buypricegblock) {
- player.speak(player, fehlerpräfix, "§rDu besitzt nicht genug Gold um eine Gilde zu gründen");
- goto("wait");
- }
- coinsnew = coinsnow - buypricegblock;
- sgv(player, "gcoinsatm", coinsnew);
- displaygold(player, coinsnew);
- nextid = ggv("SERVER", "gildencounter") + 1;
- sgv("SERVER", "gildencounter", nextid);
- gmap.add("gildennamen", nextid, gildenname);
- player.giveItem(player, read.item(concat("{id:'km:guild_block',Count:1b,tag:{display:{Lore:['", concatspace("ID:", text.number(nextid)), "'],Name:'", gildenname, "'}},Damage:0s}")));
- player.speak(player, gildepräfix, "§rGilde erfolgreich erstellt");
- }
- elseif(arg0 == "rename") {
- gildenid = player.getGuild(player);
- gildenkonto = gmap.get("gildencoins", gildenid);
- if(gildenkonto < 1000) {
- player.speak(player, fehlerpräfix, concat("§rDeine Gilde hat nur ", gildenkonto, " Gold. Es werden aber 1000 benötigt"));
- goto("wait");
- }
- gmap.add("gildencoins", gildenid, gildenkonto - 1000);
- gmap.add("gildennamen", gildenid, gildenname);
- plotid = getplotid(read.location(gmap.get("gildenblock", gildenid)));
- command("plot name ", plotid, " ", gildenname);
- nachricht = concat("§rDie Gilde wurde in §7", gildenname, "§r umbenannt");
- sendguildmessage(gildenid, gildepräfix, nachricht, false);
- }
- goto("wait");
- }
- if(arg0 == "ad") {
- if(list.getSize(args) < 2) {
- player.speak(player, commandspräfix, "ad <nachricht>");
- } else {
- //Check auf 2 Gold
- coinsnow = ggv(player, "gcoinsatm");
- if(coinsnow < 2) {
- player.speak(player, fehlerpräfix, "§rDu besitzt nicht genug Gold dafür");
- goto("wait");
- }
- //Cooldown 180 Sek Check
- lasttime = map.get(adcooldown, player);
- nowtime = time.getMillis();
- if(lasttime != null) {
- difftime = nowtime - lasttime;
- if(difftime < 180000) { //180 Sekunden
- player.speak(player, fehlerpräfix, text.number(math.roundDown(difftime / 1000)), " von 180 Sekunden vergangen");
- goto("wait");
- }
- }
- //endgültige Bearbeitung
- map.add(adcooldown, player, nowtime);
- sgv(player, "gcoinsatm", coinsnow - 2);
- nachricht = concatList(args, " ", 1, list.getSize(args) - 1);
- sendworldmessage("§6Handel", concat("§6", nachricht));
- }
- goto("wait");
- }
- if(arg0 == "mail") {
- gildenid = player.getGuild(player);
- if(!isleaderorofficer(gildenid, player_name)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht ausführen, da du nicht der Leiter oder einer der Offiziere der Gilde bist");
- goto("wait");
- }
- sendguildmail(player, gildenid, concatList(args, " ", 1, list.getSize(args) - 1));
- goto("wait");
- }
- if(arg0 == "msg") {
- gildenid = player.getGuild(player);
- nachricht = concat("§e", player_name, "§r ", concatList(args, " ", 1, list.getSize(args) - 1));
- sendguildmessage(gildenid, gildepräfix, nachricht, false);
- goto("wait");
- }
- if(arg0 == "nick") {
- if(list.getSize(args) != 3) {
- player.speak(player, commandspräfix, "/guild nick <player> <nickname>");
- goto("wait");
- }
- pname = list.getIndex(args, 1);
- nickname = concatList(args, " ", 1, list.getSize(args) - 1);
- if(!checkifeveronline(pname)) {
- player.speak(player, fehlerpräfix, "§rDieser Spieler war noch nie online");
- goto("wait");
- }
- if(!isleaderorofficer(gildenid, player_name)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht ausführen, da du nicht der Leiter oder einer der Offiziere der Gilde bist");
- goto("wait");
- }
- if(!checkifsameguild(pname, player_name)) {
- player.speak(player, fehlerpräfix, "§rDieser Spieler ist nicht in deiner Gilde");
- goto("wait");
- }
- if(text.length(nickname) > 15) {
- player.speak(player, fehlerpräfix, "§rDer Nickname darf maximal 15 Zeichen lang sein");
- goto("wait");
- }
- gmap.add("gnicknames", player.getUuid(pname), nickname);
- player.speak(player, gildepräfix, "§rDer Nickname §7", nickname, "§r wurde §7", pname, "§r erfolgreich zugewiesen");
- }
- if(arg0 == "info") {
- if(list.getSize(args) == 1) {
- if(!isinguild(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu bist in keiner Gilde");
- goto("wait");
- }
- gildenid = player.getGuild(player);
- gildenname = gmap.get("gildennamen", gildenid);
- arg1 = null;
- }
- if(list.getSize(args) == 2) {
- arg1 = list.getIndex(args, 1);
- if(text.class(arg1) == "Double") {
- gildenid = arg1;
- gildenname = gmap.get("gildennamen", gildenid);
- if(gildenname == null) {
- player.speak(player, fehlerpräfix, "§rDiese Gilde existiert nicht");
- goto("wait");
- }
- } else {
- gildenname = toLowerCase(arg1);
- gildenid = getgidtogname(gildenname);
- if(gildenid == null) {
- player.speak(player, fehlerpräfix, "§rDieser Gildenname existiert nicht");
- goto("wait");
- }
- }
- }
- list.new(officerslist);
- list.new(memberslist);
- gdmap.toTable(table, "gmembers", gildenid);
- for(i = 0; i <= table.getSize(table) - 1; i++) {
- pname = player.getName(table.get(table, i, 0));
- puuid = player.getUuid(pname);
- prang = table.get(table, i, 1);
- if(prang == "Leiter") {
- if(gmap.get("gnicknames", puuid) != null) {
- leader = concat(gmap.get("gnicknames", puuid), " ", pname);
- } else {
- leader = pname;
- }
- } else {
- if(prang == "Offizier") {
- if(gmap.get("gnicknames", puuid)) {
- list.add(officerslist, concat(gmap.get("gnicknames", puuid), " ", pname));
- } else {
- list.add(officerslist, pname);
- }
- } else {
- if(prang == "Mitglied") {
- if(gmap.get("gnicknames", puuid) != null) {
- list.add(memberslist, concat(gmap.get("gnicknames", puuid), " ", pname));
- } else {
- list.add(memberslist, pname);
- }
- }
- }
- }
- }
- if(list.getSize(officerslist) == 0) {
- officers = "-";
- } else {
- officers = concatList(officerslist, ", ", 0, list.getSize(officerslist) - 1);
- }
- if(list.getSize(memberslist) == 0) {
- members = "-";
- } else {
- members = concatList(memberslist, ", ", 0, list.getSize(memberslist) - 1);
- }
- msg(player, "§6§lGilde");
- msg(player, "§r", gildenname, " (#ID ", text.number(gildenid), ")");
- msg(player, "§lLeiter");
- msg(player, "§r", leader);
- msg(player, "§lOffiziere");
- msg(player, "§r", officers);
- msg(player, "§lMitglieder");
- msg(player, "§r", members);
- if(arg1 == null) {
- msg(player, "§lSchatzkammer");
- msg(player, "§r", text.number(gmap.get("gildencoins", gildenid)));
- }
- goto("wait");
- }
- if(arg0 == "setclass") {
- if(!set.contains(gamemasters, player.getUuid(player))) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht benutzen");
- goto("wait");
- }
- size = list.getSize(args);
- if(size == 1) {
- msg(player, "§6/gilde setclass <spieler> <level> <xp> [jobid] §rBearbeitet die aktuelle bzw. eine Klasse eines Spielers");
- msg(player, "2 Jäger 5 Krieger");
- msg(player, "3 Schurke 6 Magier");
- msg(player, "4 Barbar 7 Mönch");
- goto("wait");
- }
- if(size == 4 || size == 5) {
- p = read.player(list.getIndex(args, 1));
- if(p == null) {
- player.speak(player, fehlerpräfix, "§rDer angegebene Spieler muss online sein");
- goto("wait");
- }
- level = list.getIndex(args, 2);
- if(text.class(level) != "Double") {
- player.speak(player, fehlerpräfix, "§rZahl erwartet");
- goto("wait");
- }
- if(level < 0) {
- level = 1;
- }
- xp = list.getIndex(args, 3);
- if(text.class(xp) != "Double") {
- player.speak(player, fehlerpräfix, "§rZahl erwartet");
- goto("wait");
- }
- if(size == 4) {
- jobid = getgpvpjob(p);
- } else {
- jobid = list.getIndex(args, 4);
- }
- job.setLevel(p, jobid, level);
- job.setXp(p, jobid, xp);
- display.add(p, 44, "#26-1- ", text.number(xp), "/", text.number(list.getIndex(xplist, level - 1)));
- display.add(p, 41, "Stufe §a", text.number(level));
- player.speak(player, commandspräfix, "§rÄnderungen durchgeführt");
- }
- goto("wait");
- }
- if(arg0 == "tp") { //Tp zum Gildenblock anhand des Gildennamens
- if(!set.contains(gamemasters, player.getUuid(player_name))) {
- player.speak(player, fehlerpräfix, "§rNur für Gamemaster");
- goto("wait");
- }
- if(list.getSize(args) == 1) {
- player.speak(player, commandspräfix, "/gilde tp <gildenid> §rTp zum Gildenblock der Gilde");
- goto("wait");
- }
- if(list.getSize(args) == 2) {
- gildenid = list.getIndex(args, 1);
- if(text.class(gildenid) != "Double") {
- player.speak(player, commandspräfix, "§rDer angegebene Parameter muss eine Zahl sein");
- goto("wait");
- }
- gildenname = gmap.get("gildennamen", gildenid);
- if(gildenname == null) {
- player.speak(player, fehlerpräfix, "§rDiese Gilde existiert nicht");
- goto("wait");
- }
- command("gamemode spectator ", player_name);
- entity.teleport(player, loc.mod(read.location(gmap.get("gildenblock", gildenid)), 0, 1, 0));
- player.speak(player, commandspräfix, "§rDu wurdest zur Gilde §7", gildenname, " §rteleportiert");
- }
- goto("wait");
- }
- if(arg0 == "gold" || arg0 == "xp") {
- if(!isinguild(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht ausführen, da du in keiner Gilde bist");
- goto("wait");
- }
- gildenid = player.getGuild(player);
- if(!isgroupleader(gildenid, player_name)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht ausführen, da du nicht der Leiter der Gruppe bist");
- goto("wait");
- }
- if(arg0 == "gold") {
- if(gmap.get("gsharegold", gildenid)) {
- gmap.add("gsharegold", gildenid, false);
- player.speak(player, commandspräfix, "§rGold-Teilung deaktiviert");
- } else {
- gmap.add("gsharegold", gildenid, true);
- player.speak(player, commandspräfix, "§rGold-Teilung aktiviert");
- }
- }
- if(arg0 == "xp") {
- if(gmap.get("gsharexp", gildenid)) {
- gmap.add("gsharexp", gildenid, false);
- player.speak(player, commandspräfix, "§rXP-Teilung deaktiviert");
- } else {
- gmap.add("gsharexp", gildenid, true);
- player.speak(player, commandspräfix, "§rXP-Teilung aktiviert");
- }
- }
- goto("wait");
- }
- if(arg0 == "resetsafetime") {
- if(!set.contains(gamemasters, player.getUuid(player_name))) {
- player.speak(player, fehlerpräfix, "§rNur für Gamemaster");
- goto("wait");
- }
- size = list.getSize(args);
- if(size == 1) {
- player.speak(player, commandspräfix, "§r/gilde resetsafetime <gildenid>");
- goto("wait");
- }
- if(size == 2) {
- gildenid = list.getIndex(args, 1);
- if(text.class(gildenid) != "Double") {
- player.speak(player, commandspräfix, "§rDer angegebene Parameter muss eine Zahl sein");
- goto("wait");
- }
- gildenname = gmap.get("gildennamen", gildenid);
- if(gildenname == null) {
- player.speak(player, fehlerpräfix, "§rDiese Gilde existiert nicht");
- goto("wait");
- }
- gmap.add("gildentime", gildenid, time.getMillis());
- player.speak(player, commandspräfix, "§rDie Schutzzeit der Gilde wurde entfernt");
- }
- goto("wait");
- }
- if(arg0 == "resetplayer") {
- size = list.getSize(args);
- if(size == 1) {
- player.speak(player, commandspräfix, "§r/gilde resetplayer <name>");
- goto("wait");
- }
- if(size == 2) {
- if(!checkifeveronline(list.getIndex(args, 0))) {
- player.speak(player, fehlerpräfix, "§rDieser Spieler war noch nie online");
- goto("wait");
- }
- resetplayer(uuid);
- }
- goto("wait");
- }
- if(list.getSize(args) == 1) {
- goto("size1");
- }
- if(list.getSize(args) == 2) {
- goto("size2");
- }
- }
- goto("wait");
- @size1
- if(arg0 == "steal") {
- owngildenid = player.getGuild(player);
- if(!isinguild(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht ausführen, da du in keiner Gilde bist");
- goto("wait");
- }
- gildenid = map.get(gattackers, owngildenid);
- plotid = gmap.get("gildenplot", gildenid);
- if(!map.contains(gattackers, owngildenid)) {
- player.speak(player, fehlerpräfix, "§rDeine Gilde greift niemanden an (§6/g fight§r)!");
- goto("wait");
- }
- set = map.get(gfights, plotid);
- if(!set.contains(set, player_name)) {
- player.speak(player, fehlerpräfix, "§rDu nimmmst nicht am Kampf deiner Gilde teil");
- goto("wait");
- }
- if(map.get(gstatus, plotid) == 0) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl erst verwenden, wenn der Gildenblock zerstört wurde");
- goto("wait");
- }
- ploc = entity.getLocation(player);
- x = loc.getCoord(ploc, "bx");
- y = loc.getCoord(ploc, "by");
- z = loc.getCoord(ploc, "bz");
- nachricht = concat("§7", player_name, "§r stiehlt Gold aus der Schatkammer! ", x, ":", y, ":", z);
- sendguildmessage(gildenid, gildepräfix, nachricht, false);
- entity.addEffect(player, "WEAKNESS", 600, 2);
- entity.addEffect(player, "SLOW", 600, 3);
- list.add(gstealerloc, entity.getLocation(player));
- list.add(gstealername, player_name);
- list.add(gstealerstate, 0);
- sgoto(100, "stealchecker");
- goto("wait");
- }
- if(arg0 == "spawn") {
- if(checkforenimies(player, player_name)) {
- //player.speak(player, fehlerpräfix, "§rGegner in der Nähe");
- //cancel = true; Auskommentiert: Um Bauarbeiten zu ermöglichen, während andere Spieler in der Nähe sind
- goto("wait");
- }
- entity.teleport(player, gildenspawnloc);
- goto("wait");
- }
- if(arg0 == "home") {
- gildenid = player.getGuild(player);
- if(!isinguild(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht ausführen, da du in keiner Gilde bist");
- goto("wait");
- }
- if(checkforenimies(player, player_name)) {
- //player.speak(player, fehlerpräfix, "§rGegner in der Nähe");
- //cancel = true; Auskommentiert: Um Bauarbeiten zu ermöglichen, während andere Spieler in der Nähe sind
- goto("wait");
- }
- entity.teleport(player, loc.mod(read.location(gmap.get("gildenblock", gildenid)), 0.5, 1.1, 0.5));
- goto("wait");
- }
- if(arg0 == "newpos") {
- gildenid = player.getGuild(player);
- plotid = gmap.get("gildenplot", gildenid);
- if(!isinguild(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht ausführen, da du in keiner Gilde bist");
- goto("wait");
- }
- if(!isleader(gildenid, player_name)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht ausführen, da du nicht der Leiter der Gilde bist");
- goto("wait");
- }
- oldgildenblockloc = read.location(gmap.get("gildenblock", gildenid));
- plotid = getplotid(oldgildenblockloc);
- if(map.contains(gfights, plotid)) {
- player.speak(player, fehlerpräfix, "§rWährend eines Kamps kann der Gildenblock nicht umgesetzt werden");
- cancel = true;
- goto("wait");
- }
- gildenkonto = gmap.get("gildencoins", gildenid);
- if(gildenkonto < 500) {
- player.speak(player, fehlerpräfix, "§rDeine Gilde hat nur ", gildenkonto, " Gold. Es werden aber 500 benötigt");
- cancel = true;
- goto("wait");
- }
- gmap.toTable(gildenblocktable, "gildenblock");
- glocaktuell = read.location(gmap.get("gildenblock", gildenid));
- for(i = 0; i <= table.getSize(gildenblocktable) - 1; i++) {
- checkloc = read.location(table.get(gildenblocktable, i, 1));
- if(glocaktuell != checkloc) {
- distance = loc.distance(checkloc, entity.getLocation(player));
- if(distance < 1100) {
- player.speak(player, fehlerpräfix, "§rGildenblöcke müssen mindestens 1100 Blöcke voneinander entfernt sein (Aktuell: ", text.number(math.roundUp(distance)), ").");
- cancel = true;
- goto("wait");
- }
- }
- }
- for(y = 0; y <= 7; y++) {
- for(z = -5; z <= 5; z++) {
- for(x = -5; x <= 5; x++) {
- moddedloc = loc.mod(entity.getLocation(player), x, y, z);
- if(block.getType(moddedloc) != "minecraft:air") {
- if(entity.getLocation(player) != moddedloc) {
- player.speak(player, fehlerpräfix, "§rIm Bereich von 5 Blöcken seitlich und 7 Blöcken nach oben dürfen sich keine anderen Blöcke befinden");
- cancel = true;
- goto("wait");
- }
- }
- }
- }
- }
- if(!block.isSolid(loc.mod(block_loc, 0, -1, 0))) {
- player.speak(player, fehlerpräfix, "§rDer Block unter dem Gildenblock muss ein solider Block sein");
- cancel = true;
- goto("wait");
- }
- btype = block.getType(loc.mod(block_loc, 0, -1, 0));
- if(btype == "minecraft:leaves" || btype == "minecraft:leaves2") {
- player.speak(player, fehlerpräfix, "§rDer Block unter dem Gildenblock darf kein Laub sein");
- cancel = true;
- goto("wait");
- }
- if(set.contains(richblocks, btype)) {
- player.speak(player, fehlerpräfix, "§rDer Block unter dem Gildenblock darf kein wertvoller Block sein");
- cancel = true;
- goto("wait");
- }
- loc = entity.getLocation(player);
- x = loc.getX(loc);
- x1 = x - 150;
- x2 = x + 150;
- z = loc.getZ(loc);
- z1 = z -150;
- z2 = z + 150;
- gsedge1 = read.location(concat("gpvpnew:", x1, ":0:", z1));
- gsedge2 = read.location(concat("gpvpnew:", x2, ":255:", z2));
- moveid = event.addMoveData(gsedge1, gsedge2, 100, -1);
- map.add(gmoveids, moveid, gildenid);
- map.add(gmoveids2, gildenid, moveid);
- if(plot.doesIntersect(gsedge1, gsedge2)) {
- player.speak(player, fehlerpräfix, "§rIm Gebiet herrscht bereits eine andere Gilde");
- cancel = true;
- goto("wait");
- }
- command("plot remove ", plotid);
- plot.add(gsedge1, gsedge2, player_name);
- plotid = getplotid(entity.getLocation(player));
- //Alle Spieler auf das neue GS sharen
- gdmap.toTable(table, "gmembers", gildenid);
- for(i = 0; i <= table.getSize(table) - 1; i++) {
- pname = player.getName(table.get(table, i, 0));
- command("plot share ", pname, " ", plotid);
- }
-
- ploc = entity.getLocation(player);
- w = loc.getCoord(ploc, "w");
- x = loc.getCoord(ploc, "bx");
- y = loc.getCoord(ploc, "by");
- z = loc.getCoord(ploc, "bz");
- newpos = concat(w, ":", x, ":", y, ":", z);
- gmap.add("gildencoins", gildenid, gildenkonto - 500);
- gmap.add("gildenblock", gildenid, newpos);
- gmap.add("gildenplot", gildenid, plotid);
- gmap.add("gildenplot2", plotid, gildenid);
- block.set(oldgildenblockloc, airitem);
- set.remove(forbiddenblocks, loc.mod(oldgildenblockloc, 0, -1, 0));
- for(y = 0; y <= 7; y++) {
- for(z = -5; z <= 5; z++) {
- for(x = -5; x <= 5; x++) {
- set.remove(forbiddenblocks2, loc.mod(oldgildenblockloc, x, y, z));
- }
- }
- }
-
- newposloc = read.location(newpos);
- block.set(newposloc, guildblockitem);
- set.add(forbiddenblocks, loc.mod(newposloc, 0, -1, 0));
- for(y = 0; y <= 7; y++) {
- for(z = -5; z <= 5; z++) {
- for(x = -5; x <= 5; x++) {
- set.add(forbiddenblocks2, loc.mod(newposloc, x, y, z));
- }
- }
- }
- player.speak(player, gildepräfix, "§rDer Gildenblock wurde erfolgreich umgesetzt");
- goto("wait");
- }
- if(arg0 == "fight") {
- players.toWorldList(worldonline, gpvpworld);
- owngildenid = player.getGuild(player);
- if(!isinguild(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht ausführen, da du in keiner Gilde bist");
- goto("wait");
- }
- if(!isleaderorofficer(owngildenid, player_name)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht ausführen, da du nicht der Leiter oder einer der Offiziere der Gilde bist");
- goto("wait");
- }
- plotid = getplotid(entity.getLocation(player));
- if(plotid == null) {
- player.speak(player, fehlerpräfix, "§rDu befindest dich auf keinem Gildengrundstück");
- goto("wait");
- }
- gildenid = gmap.get("gildenplot2", plotid);
- if(gildenid == owngildenid) {
- player.speak(player, fehlerpräfix, "§rDu kannst dich nicht selbst angreifen");
- goto("wait");
- }
- if(map.contains(gfights, plotid)) { //Die Gilde verteidigt sich gerade
- player.speak(player, fehlerpräfix, "§rDiese Gilde wird gerade angegriffen");
- goto("wait");
- }
- if(map.contains(gattackers, gmap.get("gildenplot2", plotid))) { //Die Gilde greift gerade jemanden an
- player.speak(player, fehlerpräfix, "§rDiese Gilde befindet sich gerade im Kampf");
- goto("wait");
- }
- nextattacktime = gmap.get("gildentime", gildenid);
- if(time.getMillis() < nextattacktime) {
- time = math.round(nextattacktime - time.getMillis() / 60000);
- player.speak(player, fehlerpräfix, "§rDiese Gilde kann erst in ", time, " Minuten angegriffen werden");
- goto("wait");
- }
- set.new(fightset);
- enimiesonline = 0;
- ownonline = 0;
- for(i = 0; i <= list.getSize(worldonline) - 1; i++) {
- puuid = list.getIndex(worldonline, i);
- if(gdmap.get("gmembers", gildenid, puuid) != null) {
- ++enimiesonline;
- set.add(fightset, puuid);
- }
- elseif(gdmap.get("gmembers", owngildenid, puuid) != null) {
- ++ownonline;
- set.add(fightset, puuid);
- }
- }
- if(enimiesonline < 3) {
- player.speak(player, fehlerpräfix, "§rEs müssen sich mindestens drei Mitglieder der anzugreifenden Gilde in dieser Welt befinden");
- goto("wait");
- }
- if(enimiesonline / ownonline < 0.8) {
- player.speak(player, fehlerpräfix, "§rDas Verteidiger/Angreifer-Verhältnis muss mindestens 0,8 betragen");
- goto("wait");
- }
- map.add(gfights, plotid, fightset);
- map.add(gstatus, plotid, 0);
- table.addRow(gstatustable, plotid, 0);
- map.add(clicks, read.location(gmap.get("gildenblock", gildenid)), 200);
- map.add(gattackers, owngildenid, gildenid);
- map.add(gdefenders, gildenid, owngildenid);
- map.add(blocktime, gildenid, time.getMillis());
- //Skills aktivieren
- opponent = gmap.get("gildennamen", owngildenid);
-
- gmap.add("gildentime", owngildenid, time.getMillis() + 27000000);
- nachricht = concat("§cDeine Gilde befindet sich nun im Kampf mit ", gmap.get("gildennamen", gildenid));
- sendguildmessage(owngildenid, gildepräfix, nachricht, false);
- subtitle = concat("§cIhr greift ", gmap.get("gildennamen", gildenid), " an");
- sendguildtitle(owngildenid, "§4Kampf", subtitle);
-
- gmap.add("gildentime", gildenid, time.getMillis() + 27000000);
- nachricht = concat("§cDie Gilde ", opponent, " hat euch soeben den Krieg erklärt!");
- sendguildmessage(gildenid, gildepräfix, nachricht, false);
- subtitle = concat("§cIhr werdet von ", opponent, " angegriffen");
- sendguildtitle(gildenid, "§4Kampf", subtitle);
-
- sgoto(72000, "checkdefendwin");
- goto("wait");
- }
- if(arg0 == "mode") {
- uuid = player.getUuid(player);
- if(perm.has(player, "isAdmin")) {
- perm.unregisterPlayer(uuid, 3);
- perm.registerPlayer(uuid, 9);
- gdmap.remove("permsread", "mod", uuid);
- gdmap.remove("permslist", uuid, "mod");
- gdmap.add("permsread", "pseudomod", uuid, true);
- gdmap.add("permslist", uuid, "pseudomod", true);
- player.speak(player, commandspräfix, "§rDu hast nun keine Mod-Rechte mehr");
-
- } elseif(perm.has(player, "isPseudoMod")) {
- perm.registerPlayer(uuid, 3);
- perm.unregisterPlayer(uuid, 9);
- gdmap.remove("permsread", "pseudomod", uuid);
- gdmap.remove("permslist", uuid, "pseudomod");
- gdmap.add("permsread", "mod", uuid, true);
- gdmap.add("permslist", uuid, "mod", true);
- player.speak(player, commandspräfix, "§rDu hast deine Mod-Rechte wieder");
- }
- goto("wait");
- }
- if(arg0 == "leave") {
- gildenid = player.getGuild(player);
- if(!isinguild(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht ausführen, da du in keiner Gilde bist");
- goto("wait");
- }
- if(checkifinafight(gildenid)) {
- player.speak(player, fehlerpräfix, "§rDieser Befehl kann nicht ausgeführt werden, während sich deine Gilde im Kampf befindet");
- goto("wait");
- }
- ownuuid = player.getUuid(player_name);
- ownrang = gdmap.get("gmembers", gildenid, ownuuid);
- if(ownrang == "Leiter") {
- player.speak(player, fehlerpräfix, "§rDu musst zuerst jemand anderen mit /leader zum Leiter ernennen");
- goto("wait");
- }
- player.setGuild(player, 0);
- gmap.remove("gnicknames", player.getUuid(player_name));
- plotid = getplotid(read.location(gmap.get("gildenblock", gildenid)));
- command("plot kick ", player_name, " ", plotid);
- gdmap.remove("gmembers", gildenid, ownuuid);
- gmap.add("gmembersatm", gildenid, gmap.get("gmembersatm", gildenid) - 1);
- if(ownrang == "Adel") {
- gmap.add("adelatm", gildenid, gmap.get("adelatm", gildenid) - 1);
- }
- sgv(player, "nextjoin", time.getMillis() + 43200000);
- player.speak(player, gildepräfix, "§rDu hast die Gilde verlassen");
- nachricht = concat("§7", player_name, "§r hat die Gilde verlassen");
- sendguildmessage(gildenid, gildepräfix, nachricht, false);
- goto("wait");
- }
- if(arg0 == "disband") {
- gildenid = player.getGuild(player);
- if(!isinguild(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu bist in keiner Gilde");
- goto("wait");
- }
- if(!isleader(gildenid, player_name)) {
- player.speak(player, fehlerpräfix, "§rDu bist nicht der Leiter der Gilde");
- goto("wait");
- }
- if(checkifinafight(gildenid)) {
- player.speak(player, fehlerpräfix, "§rDeine Gilde befindet sich im Kampf");
- goto("wait");
- }
- ownuuid = player.getUuid(player_name);
- gdmap.toTable(table, "gmembers", gildenid);
- if(table.getSize(table) != 1) {
- player.speak(player, fehlerpräfix, "§rEntlasse zuerst alle Spieler aus der Gilde");
- goto("wait");
- }
- player.setGuild(player, 0);
- gmap.remove("gnicknames", player.getUuid(player_name));
- gdmap.removeAll("gmembers", gildenid);
- gmap.remove("gildencoins", gildenid);
- gmap.remove("gildennamen", gildenid);
- gildenblockloc = read.location(gmap.get("gildenblock", gildenid));
- for(y = 0; y <= 7; y++) {
- for(z = -5; z <= 5; z++) {
- for(x = -5; x <= 5; x++) {
- set.remove(forbiddenblocks2, loc.mod(gildenblockloc, x, y, z));
- }
- }
- }
- block.set(gildenblockloc, airitem);
- plotid = getplotid(gildenblockloc);
- command("plot remove ", plotid);
- gmap.remove("gildenblock", gildenid);
- gmap.remove("membersmax", gildenid);
- gmap.remove("gmembersatm", gildenid);
- gmap.remove("adelmax", gildenid);
- gmap.remove("adelatm", gildenid);
- gmap.remove("gildentime", gildenid);
- gmap.remove("gildenplot2", gmap.get("gildenplot", gildenid));
- gmap.remove("gildenplot", gildenid);
- moveid = map.get(gmoveids2, gildenid);
- event.removeMoveData(moveid);
- map.remove(gmoveids, moveid);
- map.remove(gmoveids2, gildenid);
- player.speak(player, gildepräfix, "§rDu hast die Gilde gelöscht");
- goto("wait");
- }
- if(arg0 == "reset") {
- if(!set.contains(gameadmins, player.getUuid(player_name))) {
- player.speak(player, fehlerpräfix, "§rNur DER EINE kann diesen Befehl ausführen");
- goto("wait");
- }
- //Alle Spieler in der Gildenpvp-Welt zum Spawn teleportieren
- players.toWorldList(worldlist, gpvpworld);
- for(i = 0; i <= list.getSize(worldlist) - 1; i++) {
- p = list.getIndex(worldlist, i);
- display.reset(p);
- entity.teleport(p, serverspawn);
- player.clearInventory(p);
- }
- //Artefakt
- arteyetloc = read.location(ggv("SERVER", "arteyetloc"));
- if(arteyetloc != null) {
- //Wenn Arte platziert und nicht im Inv eines Spielers
- block.set(arteyetloc, airitem);
- }
- //Playerreset
- gmap.toTable(table, "gpvpplayers");
- size = table.getSize(table);
- for(i = 0; i <= size - 1; i++) {
- uuid = table.get(table, i, 0);
- resetplayer(uuid);
- }
- //Gilden- und Gruppenreset
- gmap.toTable(table, "gtype");
- size = table.getSize(table);
- for(i = 0; i <= size - 1; i++) {
- gid = table.get(table, i, 0);
- type = table.get(table, i, 1);
- if(type == "guild") {
- block.set(read.location(gmap.get("gildenblock", gid)), airitem);
- command("plot remove ", gmap.get("gildenplot", gid));
- }
- }
- //Datenbank leeren
- gmap.removeAll("gildencoins");
- gmap.removeAll("gildenblock");
- gmap.removeAll("gildennamen");
- gmap.removeAll("gildentime");
- gmap.removeAll("gildenplot");
- gmap.removeAll("gildenplot2");
- gmap.removeAll("gsharexp");
- gmap.removeAll("gsharegold");
- gmap.removeAll("gnicknames");
- gmap.removeAll("adelmax");
- gmap.removeAll("adelatm");
- gmap.removeAll("membersmax");
- gmap.removeAll("gmembersatm");
- gmap.removeAll("gtype");
- gmap.removeAll("gpvpplayers");
- gmap.removeAll("golddelay");
- gdmap.removeAll("dailyrewardplayers");
- gdmap.removeAll("gildeninvite");
- gdmap.removeAll("gmembers");
- //gdmap.removeAll("gfriends");
- sgv("SERVER", "gildencounter", null);
- sgv("SERVER", "artedaycounter", null);
- sgv("SERVER", "arteyetloc", null);
- sgv("SERVER", "artehitpoints", null);
- msg("online", "Loading .");
- waitfor(20);
- msg("online", "14% Hässliche Gildenbasen abreißen");
- waitfor(20);
- msg("online", "Loading ..");
- msg("online", "45% Hässliche Gildenbasen abreißen");
- waitfor(20);
- msg("online", "Loading ...");
- msg("online", "79% Hässliche Gildenbasen abreißen");
- waitfor(20);
- msg("online", "Loading .");
- msg("online", "FINISHED Hässliche Gildenbasen abreißen");
- waitfor(20);
- msg("online", "Loading ..");
- msg("online", "8% Spawn neu konzipieren");
- waitfor(20);
- msg("online", "Loading ...");
- msg("online", "36% Spawn neu konzipieren");
- waitfor(20);
- msg("online", "Loading .");
- msg("online", "68% Spawn neu konzipieren");
- waitfor(20);
- msg("online", "Loading ..");
- msg("online", "99% Spawn neu konzipieren");
- waitfor(20);
- msg("online", "Loading completed");
- msg("online", "Wir behalten doch den alten :^)");
- waitfor(20);
- msg("online", "§6Gildenpvp §rwurde resettet. Ein neues §6Zeitalter §rbeginnt!");
-
- msg("dev", "§cScript neu starten");
- players.toWorldList(worldlist, gpvpworld);
- size = list.getSize(wordlist);
- if(size > 0) {
- msg("dev", concat("§b§", size, " §cSpieler in der Welt!"));
- }
- term();
- }
- goto("wait");
- function resetplayer(uuid) {
- gildenid = player.getGuild(uuid);
- pname = player.getName(puuid);
- if(isinguild(pname)) {
-
- }
- if(isingroup(pname)) {
-
- }
- player.setGuild(uuid, 0);
- sgv(uuid, "nextjoin", null);
- sgv(uuid, "gcoinsatm", null);
- sgv(uuid, "gcoinsbank", null);
- sgv(uuid, "gpvpjoined", null);
- for(i = 1; i <= 8; i++) {
- for(id = 2; id <= 7; id++) {
- sgv(uuid, concat(id, "gpvphotkey", i), null);
- }
- }
- }
- return;
- @size2
- if(arg0 == "degrade") {
- pname = list.getIndex(args, 1);
- puuid = player.getUuid(pname);
- ownuuid = player.getUuid(player_name);
- gildenid = player.getGuild(player);
- rang = gdmap.get("gmembers", gildenid, ownuuid);
- prang = gdmap.get("gmembers", gildenid, puuid);
- if(!isinguild(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht ausführen, da du in keiner Gilde bist");
- goto("wait");
- }
- if(!isleaderorofficer(gildenid, player_name)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht ausführen, da du nicht der Leiter oder einer der Offiziere der Gilde bist");
- goto("wait");
- }
- if(!checkifeveronline(pname)) {
- player.speak(player, fehlerpräfix, "§rDieser Spieler war noch nie online");
- goto("wait");
- }
- if(!checkifsameguild(pname, player_name)) {
- player.speak(player, fehlerpräfix, "§rDieser Spieler ist nicht in deiner Gilde");
- goto("wait");
- }
- if(!isyourself(player_name, pname)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht auf dich selbst anwenden");
- goto("wait");
- }
- if(prang != "Leiter") {
- if(rang != "Adel") {
- player.speak(player, fehlerpräfix, "§rDu kannst nur Adel degradieren");
- goto("wait");
- }
- }
- if(rang == "Adel") {
- gmap.add("adelatm", gildenid, gmap.get("adelatm", gildenid) - 1);
- }
- gdmap.add("gmembers", gildenid, ownuuid, "Mitglied");
- nachricht = concat("§r", pname, " wurde degradiert");
- sendguildmessage(gildenid, gildepräfix, nachricht, false);
- goto("wait");
- }
- if(arg0 == "officer") {
- pname = list.getIndex(args, 1);
- uuid = player.getUuid(pname);
- gildenid = player.getGuild(player);
- if(!isinguild(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht ausführen, da du in keiner Gilde bist");
- goto("wait");
- }
- if(!isleader(gildenid, player_name)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht ausführen, da du nicht der Leiter der Gilde bist");
- goto("wait");
- }
- if(!checkifeveronline(pname)) {
- player.speak(player, fehlerpräfix, "§rDieser Spieler war noch nie online");
- goto("wait");
- }
- if(!checkifsameguild(pname, player_name)) {
- player.speak(player, fehlerpräfix, "§rDieser Spieler ist nicht in deiner Gilde");
- goto("wait");
- }
- if(!isyourself(player_name, pname)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht auf dich selbst anwenden");
- goto("wait");
- }
- gdmap.toTable(table, "gmembers", gildenid);
- officers = 0;
- for(i = 0; i <= table.getSize(table) - 1; i++) {
- prang = table.get(table, i, 1);
- puuid = table.get(table, i, 0);
- if(prang == "Offizier") {
- ++officers;
- if(puuid == uuid) {
- player.speak(player, fehlerpräfix, "§rDieser Spieler ist bereits Offizier");
- goto("wait");
- }
- }
- }
- if(officers == 3) {
- player.speak(player, fehlerpräfix, "§rEs darf maximal drei Offiziere geben");
- goto("wait");
- }
- gdmap.add("gmembers", gildenid, uuid, "Offizier");
- nachricht = concat("§7", pname, "§r wurde zum Offizier ernannt");
- sendguildmessage(gildenid, gildepräfix, nachricht, false);
- goto("wait");
- }
- if(arg0 == "adel") {
- pname = list.getIndex(args, 1);
- uuid = player.getUuid(pname);
- gildenid = player.getGuild(player);
- if(!isinguild(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht ausführen, da du in keiner Gilde bist");
- goto("wait");
- }
- if(!isleaderorofficer(gildenid, player_name)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht ausführen, da du nicht der Leiter oder einer der Offiziere der Gilde bist");
- goto("wait");
- }
- if(!checkifeveronline(pname)) {
- player.speak(player, fehlerpräfix, "§rDieser Spieler war noch nie online");
- goto("wait");
- }
- if(!checkifsameguild(pname, player_name)) {
- player.speak(player, fehlerpräfix, "§rDieser Spieler ist nicht in deiner Gilde");
- goto("wait");
- }
- if(!isyourself(player_name, pname)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht auf dich selbst anwenden");
- goto("wait");
- }
- rang = gdmap.get("gmembers", gildenid, uuid);
- if(rang == "Adel") {
- player.speak(player, fehlerpräfix, "§rDieser Spieler gehört bereits dem Adel an");
- goto("wait");
- }
- if(rang == "Leiter" || rang == "Offizier") {
- player.speak(player, fehlerpräfix, "§rDieser Spieler befindet sich bereits in einem höheren Rang");
- goto("wait");
- }
- if(gmap.get("adelatm", gildenid) == gmap.get("adelmax", gildenid)) {
- player.speak(player, fehlerpräfix, "§rEs können im Moment nicht mehr Adelige ernannt werden");
- goto("wait");
- }
- gdmap.add("gmembers", gildenid, uuid, "Adel");
- gmap.add("adelatm", gildenid, gmap.get("adelatm", gildenid) + 1);
- nachricht = concat("§r", pname, " ist nun ein Adeliger");
- sendguildmessage(gildenid, gildepräfix, nachricht, false);
- goto("wait");
- }
- if(arg0 == "leader") {
- pname = list.getIndex(args, 1);
- uuid = player.getUuid(pname);
- ownuuid = player.getUuid(player_name);
- gildenid = player.getGuild(player);
- if(!isinguild(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht ausführen, da du in keiner Gilde bist");
- goto("wait");
- }
- if(!isleader(gildenid, player_name)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht ausführen, da du nicht der Leiter der Gilde bist");
- goto("wait");
- }
- if(!checkifeveronline(pname)) {
- player.speak(player, fehlerpräfix, "§rDieser Spieler war noch nie online");
- goto("wait");
- }
- if(!checkifsameguild(pname, player_name)) {
- player.speak(player, fehlerpräfix, "§rDieser Spieler ist nicht in deiner Gilde");
- goto("wait");
- }
- if(!isyourself(player_name, pname)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht auf dich selbst anwenden");
- goto("wait");
- }
- gdmap.add("gmembers", gildenid, uuid, "Leiter");
- nachricht = concat("§7", pname, "§r wurde zum Leiter der Gilde ernannt");
- sendguildmessage(gildenid, gildepräfix, nachricht, false);
- gdmap.toTable(table, "gmembers", gildenid);
- officers = 0;
- for(i = 0; i <= table.getSize(table) - 1; i++) {
- if(table.get(table, i, 1) == "Offizier") {
- officers++;
- }
- }
- if(officers == 3) {
- player.speak(player, gildepräfix, "§rEs gibt bereits drei Offiziere. Du bist nun Mitglied");
- gdmap.add("gmembers", gildenid, ownuuid, "Mitglied");
- } else {
- gdmap.add("gmembers", gildenid, ownuuid, "Mitglied");
- }
- goto("wait");
- }
- if(arg0 == "kick") {
- pname = list.getIndex(args, 1);
- puuid = player.getUuid(pname);
- gildenid = player.getGuild(player);
- if(!isinguild(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht ausführen, da du in keiner Gilde bist");
- goto("wait");
- }
- if(!checkifeveronline(pname)) {
- player.speak(player, fehlerpräfix, "§rDieser Spieler war noch nie online");
- goto("wait");
- }
- if(!isleaderorofficer(gildenid, player_name)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht ausführen, da du nicht der Leiter oder einer der Offiziere der Gilde bist");
- goto("wait");
- }
- if(!checkifsameguild(pname, player_name)) {
- player.speak(player, fehlerpräfix, "§rDieser Spieler ist nicht in deiner Gilde");
- goto("wait");
- }
- if(checkifinafight(gildenid)) {
- player.speak(player, fehlerpräfix, "§rDieser Befehl kann nicht ausgeführt werden, während sich deine Gilde im Kampf befindet");
- goto("wait");
- }
- rang = gdmap.get("gmembers", gildenid, puuid);
- if(rang == "Leiter") {
- player.speak(player, fehlerpräfix, "§rDer Leiter kann nicht entlassen werden. Er selbst kann aber jemand anderen mit /leader zum Leiter ernennen");
- goto("wait");
- }
- if(ownrang == "Offizier" && rang == "Offizier") {
- player.speak(player, fehlerpräfix, "§rDu kannst einen anderen Offizier nicht entlassen");
- goto("wait");
- }
- plotid = getplotid(read.location(gmap.get("gildenblock", gildenid)));
- command("plot kick ", pname, " ", plotid);
- gmap.remove("gnicknames", puuid);
- gdmap.remove("gmembers", gildenid, puuid);
- gmap.add("gmembersatm", gildenid, gmap.get("gmembersatm", gildenid) - 1);
- if(rang == "Adel") {
- gmap.add("adelatm", gildenid, gmap.get("adelatm", gildenid) - 1);
- }
- player.setGuild(puuid, 0);
- sgv(puuid, "nextjoin", time.getMillis() + 43200000);
- sendmessage(pname, gildepräfix, concat("§rDu wurdest aus der Gilde entlassen"), true);
- gdmap.toTable(table, "gmembers", gildenid);
- nachricht = concat("§7", pname, "§r wurde aus der Gilde entlassen");
- sendguildmessage(gildenid, gildepräfix, nachricht, false);
- goto("wait");
- }
- if(arg0 == "invite") {
- gildenid = player.getGuild(player);
- if(!isinguild(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht ausführen, da du in keiner Gilde bist");
- goto("wait");
- }
- if(!isleaderorofficer(gildenid, player_name)) {
- player.speak(player, fehlerpräfix, "§rDu kannst diesen Befehl nicht ausführen, da du nicht der Leiter oder einer der Offiziere der Gilde bist");
- goto("wait");
- }
- pname = list.getIndex(args, 1);
- if(player_name == pname) {
- player.speak(player, fehlerpräfix, "§rDu kannst dich nicht selbst einladen");
- goto("wait");
- }
- if(!checkifeveronline(pname)) {
- player.speak(player, fehlerpräfix, "§rDieser Spieler war noch nie online");
- goto("wait");
- }
- puuid = player.getUuid(pname);
- if(isinguild(pname)) {
- player.speak(player, fehlerpräfix, "§rDieser Spieler ist bereits in einer Gilde");
- goto("wait");
- }
- if(isingroup(pname)) {
- player.speak(player, fehlerpräfix, "§rDieser Spieler ist in einer Gruppe");
- goto("wait");
- }
- gildenname = gmap.get("gildennamen", gildenid);
- if(gdmap.get("gildeninvite", puuid, gildenname) != null) {
- player.speak(player, fehlerpräfix, "§rDieser Spieler hat bereits eine Einladung dieser Gilde erhalten");
- goto("wait");
- }
- gdmap.add("gildeninvite", puuid, gildenname, player.getUuid(player_name));
- table.addRow(invitations, puuid, gildenid);
- nachricht = concat("§r", pname, " hat eine Einladung von deiner Gilde erhalten. Sie ist für 5 Minuten aktiv");
- sendguildmessage(gildenid, gildepräfix, nachricht, false);
- sendmessage(pname, gildepräfix, concat("Du wurdest eingeladen, der Gilde ", gildenname, " beizutreten"), true);
- sgoto(6000, "deleteinvitation");
- goto("wait");
- }
- if(arg0 == "accept") {
- gildenname = list.getIndex(args, 1);
- uuid = player.getUuid(player_name);
- if(isinguild(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu bist bereits in einer Gilde");
- goto("wait");
- }
- if(isingroup(player_name)) {
- player.speak(player, fehlerpräfix, "§rDu bist in einer Gruppe");
- goto("wait");
- }
- senderuuid = gdmap.get("gildeninvite", uuid, gildenname);
- if(senderuuid == null) {
- player.speak(player, fehlerpräfix, "§rDu hast keine Einladung von dieser Gilde erhalten");
- goto("wait");
- }
- gildenid = player.getGuild(senderuuid);
- gildenname2 = gmap.get("gildennamen", gildenid);
- if(gildenname2 == null) {
- player.speak(player, fehlerpräfix, "§rError 2: Paradoxon. Player has non existing ID: ", gildenid, " Bitte einem Admin/Moderator/Dev melden");
- goto("wait");
- }
- jointime = ggv(player, "nextjoin");
- if(jointime != null) {
- if(time.getMillis() < jointime) {
- player.speak(player, fehlerpräfix, "§rDu musst insgesamt 12 Stunden warten, bis du wieder einer Gilde beitreten darfst");
- goto("wait");
- }
- }
- if(gmap.get("gmembersatm", gildenid) == gmap.get("membersmax", gildenid)) {
- player.speak(player, fehlerpräfix, "§rDiese Gilde ist bereits voll");
- goto("wait");
- }
- plotid = getplotid(read.location(gmap.get("gildenblock", gildenid)));
- command("plot share ", player_name, " ", plotid);
- gmap.removeAll(gmap);
- gmap.add("gmembersatm", gildenid, gmap.get("gmembersatm", gildenid) + 1);
- player.setGuild(player, gildenid);
- gdmap.add("gmembers", gildenid, uuid, "Mitglied");
- nachricht = concat("§7", concat(player_name, "§r ist der Gilde beigetreten"));
- gdmap.toTable(table, "gmembers", gildenid);
- sendguildmessage(gildenid, gildepräfix, nachricht, false);
- goto("wait");
- }
- if(arg0 == "deposit") {
- isinguild(player_name);
- plotid = getplotid(entity.getLocation(player));
- gildenid = player.getGuild(player);
- if(plotid != gmap.get("gildenplot", gildenid)) {
- player.speak(player, fehlerpräfix, "§rFür diese Aktion musst du dich auf dem Gildengrundstück befinden");
- goto("wait");
- }
- betrag = list.getIndex(args, 1);
- try {
- temp = betrag + 1;
- } catch {
- player.speak(player, fehlerpräfix, "§rDer angegebene Parameter muss eine Zahl sein");
- goto("wait");
- }
- if(betrag < 0) {
- player.speak(player, fehlerpräfix, "§rDer Betrag muss positiv sein");
- goto("wait");
- }
- geldbeutel = ggv(player, "gcoinsatm");
- gildenkonto = gmap.get("gildencoins", gildenid);
- if(betrag > geldbeutel) {
- player.speak(player, fehlerpräfix, "§rDu kannst nicht mehr überweisen, als du in deinem Geldbeutel hast");
- goto("wait");
- }
- nachricht = concat("§7", player_name, "§r hat §7", betrag, " Gold §rins Gildenkonto eingezahlt");
- sendguildmessage(gildenid, "§eGold", nachricht, false);
- sgv(player, "gcoinsatm", geldbeutel - betrag);
- displaygold(player, ggv(player, "gcoinsatm"));
- gmap.add("gildencoins", gildenid, gildenkonto + betrag);
- goto("wait");
- }
- if(arg0 == "withdraw") {
- plotid = getplotid(entity.getLocation(player));
- uuid = player.getUuid(player_name);
- gildenid = player.getGuild(player);
- rang = gdmap.get("gmembers", gildenid, uuid);
- if(rang == "Mitglied") {
- player.speak(player, fehlerpräfix, "§rNur der Leiter, die Offiziere und der Adel können Gold vom Gildenkonto abheben");
- goto("wait");
- }
- if(plotid != gmap.get("gildenplot", gildenid)) {
- player.speak(player, fehlerpräfix, "§rFür diese Aktion musst du dich auf deinem Gildengrundstück befinden");
- goto("wait");
- }
- betrag = list.getIndex(args, 1);
- try {
- temp = betrag + 1;
- } catch {
- player.speak(player, fehlerpräfix, "§rDer angegebene Parameter muss eine Zahl sein");
- goto("wait");
- }
- if(betrag < 0) {
- player.speak(player, fehlerpräfix, "§rDer Betrag muss positiv sein");
- goto("wait");
- }
- geldbeutel = ggv(player, "gcoinsatm");
- gildenkonto = gmap.get("gildencoins", gildenid);
- if(betrag > gildenkonto) {
- player.speak(player, fehlerpräfix, "§rDu kannst nicht mehr abheben, als auf dem Gildenkonto ist");
- goto("wait");
- }
- if(checkifinafight(gildenid)) {
- player.speak(player, fehlerpräfix, "§rDieser Befehl kann nicht ausgeführt werden, während sich deine Gilde im Kampf befindet");
- goto("wait");
- }
- player.speak(player, "§eGold", "§rTransaktion erfolgreich");
- sgv(player, "gcoinsatm", geldbeutel + betrag);
- displaygold(player, ggv(player, "gcoinsatm"));
- gmap.add("gildencoins", gildenid, gildenkonto - betrag);
- goto("wait");
- }
- goto("wait");
- @checkdefendwin
- //überprüfung, ob noch gegen die gleich gilde gekämpft wird
- plotid = table.get(gstatustable, 0, 0);
- defenderid = gmap.get("gildenplot2", plotid);
- //check if defender noch im kampf
- if(map.contains(gdefenders, defenderid)) {
- attackerid = map.get(gdefenders, defenderid);
- goto("defendwin");
- }
- goto("wait");
- @stealchecker
- temploc = list.getIndex(gstealerloc, 0);
- tempname = list.getIndex(gstealername, 0);
- tempstate = list.getIndex(gstealerstate, 0);
- list.remove(gstealerloc, 0);
- list.remove(gstealername, 0);
- list.remove(gstealerstate, 0);
- if(loc.distance(temploc, entity.getLocation(read.player(tempname))) < 1) {
- ++tempstate;
- if(tempstate == 6) {
- //gold stehlen erfolgreich. Distance = Distanz zum Gildenblock.
- plotid = getplotid(temploc);
- gildenid = gmap.get("gildenplot2", plotid);
- owngildenid = player.getGuild(player);
- distance = loc.distance(temploc, gmap.get("gildenblock", gildenid));
- if(distance <= 25) {
- //Stehlrate: 2%
- stealrate = 0.02;
- }
- elseif(distance > 25 && distance <= 50) {
- //Stehlrate: 1,5%
- stealrate = 0.015;
- } else {
- //Stehlrate: 1%
- stealrate = 0.01;
- }
- stolengold = gmap.get("gildencoins", gildenid) * stealrate;
- if(stolengold > 200) {
- stolengold = 200;
- }
- elseif(stolengold < 10) {
- stolengold = 10;
- }
- player.speak(player, gildepräfix, "§rDu hast §7", stolengold, " Gold §rgestohlen!");
- nachricht = concat("§7", player_name, "§r hat §7", stolengold, " Gold §rgestohlen!");
- sendguildmessage(gildenid, gildepräfix, nachricht, false);
- gmap.add("gildencoins", gildenid, gmap.get("gildencoins", gildenid) - stolengold);
- gmap.add("gildencoins", owngildenid, gmap.get("gildencoins", owngildenid) + stolengold);
- goto("wait");
- }
- list.add(gstealerloc, temploc);
- list.add(gstealername, tempname);
- list.add(gstealerstate, tempstate);
- }
- goto("wait");
- @checkgroupsize
- if(gmap.get("gmembersatm", groupid) < 2) {
- gdmap.toTable(temptable, "gmembers", groupid);
- for(i = 0; i <= table.getSize(temptable) - 1; i++) {
- tempuuid = table.get(temptable, i, 0);
- player.setGuild(tempuuid, 0);
- player.speak(player, gruppepräfix, "§rDeine Gruppe wurde aufgelöst");
- }
- gdmap.removeAll("gmembers", groupid);
- gmap.add("gmembersatm", groupid, 0);
- }
- goto("wait");
- function checkifinafight(gildenid) {
- if(map.contains(gfights, gmap.get("gildenplot", gildenid)) || map.contains(gattackers, gildenid)) {
- return true;
- }
- return false;
- }
- function isinguild(pname) {
- puuid = player.getUuid(pname);
- id = player.getGuild(puuid);
- if(gmap.get("gtype", id) == "guild") {
- return true;
- }
- return false;
- }
- function isingroup(pname) {
- puuid = player.getUuid(pname);
- id = player.getGuild(puuid);
- if(gmap.get("gtype", id) == "group") {
- return true;
- }
- return false;
- }
- function checkifsameguild(pname1, pname2) {
- if(player.getGuild(player.getUuid(pname1)) == player.getGuild(player.getUuid(pname2))) {
- return true;
- }
- return false;
- }
- function checkifeveronline(pname) {
- if(player.getUuid(pname) == null) {
- return false;
- }
- return true;
- }
- function isgroupleader(groupid, pname) {
- puuid = player.getUuid(pname);
- if(gdmap.get("gmembers", groupid, puuid) == "Leiter") {
- return true;
- }
- return false;
- }
- function isleader(gildenid, pname) {
- ownrang = gdmap.get("gmembers", gildenid, player.getUuid(pname));
- if(ownrang == "Leiter") {
- return true;
- }
- return false;
- }
- function isleaderorofficer(gildenid, pname) {
- ownrang = gdmap.get("gmembers", gildenid, player.getUuid(pname));
- if(ownrang != "Leiter" || ownrang != "Offizier") {
- return true;
- }
- return false;
- }
- function isyourself(pname1, pname2) {
- if(pname1 == pname2) {
- return true;
- }
- return false;
- }
- @deletegroupinvitation
- uuid = table.get(groupinvitations2, 0, 0);
- table.removeRow(groupinvitations2, 0);
- if(map.contains(groupinvitations, uuid)) {
- map.remove(groupinvitations, uuid);
- sendmessage(player.getName(uuid), gruppepräfix, "§rDie Einladung ist abgelaufen", false);
- }
- goto("wait");
- @deleteinvitation
- if(table.getSize(invitations) > 0) {
- uuid = table.get(invitations, 0, 0);
- gildenid = table.get(invitations, 0, 1);
- table.removeRow(invitations, 0);
- gdmap.remove("gildeninvite", uuid, gmap.get("gildennamen", gildenid));
- }
- goto("wait");
- @removegcreater
- list.removeIndex(gcreaterlist, 0);
- goto("wait");
- function sendmessage(pname, topic, nachricht, boolean) { //Sendet eine Chat-Nachricht an einen Spieler. boolean = true heißt Mail geht raus, wenn Empfänger nicht online
- p = read.player(pname);
- if(p != null) {
- player.speak(p, topic, nachricht);
- }
- elseif(boolean) {
- sendmail(player, pname, nachricht);
- }
- return;
- }
- function sendmail(player, pname, nachricht) { //from, to, message. Sendet eine Mail an einen Spieler
- sgv("SERVER", "mailid", ggv("SERVER", "mailid") + 1);
- mailid = read.number(ggv("SERVER", "mailid"));
- uuid = player.getUuid(pname);
- ownuuid = player.getUuid(player);
- gdmap.add("mails", mailid, "from", ownuuid);
- gdmap.add("mails", mailid, "to", uuid);
- gdmap.add("mails", mailid, "readed", false);
- gdmap.add("mails", mailid, "time", time.getMillis());
- gdmap.add("mails", mailid, "message", nachricht);
- gdmap.add("mailin", uuid, mailid, "wusi");
- gdmap.add("mailout", ownuuid, mailid, "wusi");
- //Wenn Spieler online, dann Pushmeldung veranlassen
- player2 = read.player(pname);
- if(player2 != null) {
- player.speak(player2, "§3Mail", "§rDu hast §b1 §rneue Mail");
- }
- return;
- }
- function sendguildmail(player, gildenid, nachricht) { //Sendet eine Mail an alle Mitglieder einer Gilde
- gdmap.toTable(table, "gmembers", gildenid);
- for(i = 0; i <= table.getSize(table) - 1; i++) {
- pname = player.getName(table.get(table, i, 0));
- sendmail(player, pname, nachricht);
- }
- return;
- }
- function sendguildmessage(gildenid, topic, nachricht, boolean) { //Sendet eine Chat-Nachricht an an alle Mitglieder einer Gilde. Wenn boolean = true, dann eine Mail an Offline Members
- gdmap.toTable(table, "gmembers", gildenid);
- for(i = 0; i <= table.getSize(table) - 1; i++) {
- pname = player.getName(table.get(table, i, 0));
- sendmessage(pname, topic, nachricht, boolean);
- }
- return;
- }
- function sendworldmessage(topic, nachricht) { //Sendet eine Chat-Nachricht an alle Spieler in der Gildenpvp-Welt
- players.toWorldList(worldonline, $gpvpworld);
- for(i = 0; i <= list.getSize(worldonline) - 1; i++) {
- p = list.getIndex(worldonline, i);
- player.speak(p, topic, nachricht);
- }
- return;
- }
- function sendguildtitle(gildenid, title, subtitle) { //Sendet einen Title an alle Spieler einer Gilde, wenn diese online sind.
- players.toWorldList(worldonline, gpvpworld);
- for(i = 0; i <= list.getSize(worldonline) - 1; i++) {
- p = list.getIndex(worldonline, i);
- puuid = player.getUuid(p);
- if(gdmap.get("gmembers", gildenid, uuid) != null) {
- title.clear(p);
- title.reset(p);
- title.setSub(p, subtitle);
- title.send(p, title);
- }
- }
- return;
- }
- function getplotid(loc) { //Gibt eine Plotid zurück
- plot.getIds(plotset, loc);
- if(set.getSize(plotset) > 0) {
- set.toList(plotlist, plotset);
- return list.getIndex(plotlist, 0);
- }
- return null;
- }
- @checkfornextday
- time.new(nowcal, time.getMillis());
- if(time.getDay(nowcal) != time.getDay(nowtime)) {
- //TODO wenn nächster Tag
- time.new(actualdaycal, time.getMillis());
- actualday = time.getDay(actualdaycal);
- if(actualday == 1) { //nächster Monat
- gosub("initdreward");
- gdmap.removeAll("dailyrewardplayers");
- }
- gosub("setreward");
- return;
- }
- @initdreward
- //Initialisierung des Daily Reward Invs
- time.new(nowtime, time.getMillis());
- monthnumber = time.getMonth(nowtime); //Welcher Monat ist jetzt?
- monthname = map.get(monthlist, monthnumber); //Wie heißt der Monat?
- daysofmonth = map.get(monthdays, monthnumber); //Wieviele Tage hat der Monat?
- //Anzahl der Slots festlegen (Ergebnis: invstring = "222222222...")
- invstring = "";
- for(i = 0; i <= daysofmonth - 1; i++) {
- invstring = concat(invstring, "2");
- }
- inv.newdynamic(dailyrewardinv, invstring, monthname); //Inv erstellen
- dailyrewardinvid = inv.getID(dailyrewardinv);
- return;
- @setreward
- dailyrewardlist = list.getIndex(allrewards, math.random(0, 4));
- dailyreward = list.getIndex(dailyrewardlist, math.random(0, list.getSize(dailyrewardlist) - 1));
- return;
- function checkforenimies(player, player_name) {
- //Überprüfung, ob sich im Umkreis <= 100 Blöcken Gegner befinden (Gegner != Gilde/Gruppe/Freund)
- //Verlangt folgende gesetzte Variablen: player, player_name
- gildenid = player.getGuild(player);
- ownuuid = player.getUuid(player_name);
- players.near(nearplayers, entity.getLocation(player), 100);
- list.remove(nearplayers, player);
- for(i = 0; i <= list.getSize(nearplayers) - 1; i++) {
- pname = list.getIndex(nearplayers, i);
- puuid = player.getUuid(pname);
- //Überprüfung, ob selbe Gruppe
- if(player.getGuild(puuid) != player.getGuild(ownuuid)) {
- //ja, nicht in selber Gilde/Gruppe
- return true;
- }
- //Überprüfung, ob Freunde
- if(gdmap.get("gfriends", ownuuid, puuid) != null) {
- //ja, die beiden spieler sind keine Freunde
- return true;
- }
- }
- return false;
- }
- function skillspeak(p, pname, skill) {
- //Meldung geht an Spieler im Radius von 15
- loc = entity.getLocation(p);
- players.near(templist, loc, 15);
- for(i = 0; i <= list.getSize(templist) - 1; i++) {
- player.speak(list.getIndex(templist, i), "§2Skills", concat("§6", pname, " §rhat §6", item.getName(skill.getStack(skill)), " §rbenutzt"));
- }
- return;
- }
- function getgpvpjob(player) {
- job.getJobs(jobs, player);
- if(list.getSize(jobs) != 0) { //Spieler nach aktuellem Job durchsuchen
- for(i = 0; i <= list.getSize(jobs) - 1; i++) {
- id = list.getIndex(jobs, i);
- if(id > 1 && id < 8) {
- return id;
- }
- }
- }
- return null;
- }
- function getgidtogname(gildenname) {
- namefound = false;
- gmap.toTable(gildennamentable, "gildennamen");
- for(i = 0; i <= table.getSize(gildennamentable) - 1; i++) {
- gname = text.toLowerCase(table.get(gildennamentable, i, 1));
- if(gname == gildenname) {
- gildenid = table.get(gildennamentable, i, 0);
- return gildenid;
- }
- }
- return null;
- }
- function displaygold(player, gold) {
- display.add(player, 40, "#23-1- §e", text.number(gold));
- return;
- }
- function displayhealth(player, health) {
- display.add(player, 42, "#28-1- ", text.number(health), "/20");
- return;
- }
- function displaymana(player) {
- display.add(player, 43, "#27-1- ", text.number(status.getMana(player)), "/100");
- return;
- }
|