Witam . Postanowiłem , że napisze mały poradnik jak skonfigurowac dobre Eventy Team vs Team , Captur The Flag , Death Match oraz jak zrobić by startowały automatycznie - na plikach L2Jfree . Miłej lektury :
1. Po pierwsze trzeba znaleźc dobre miejsce na event . Każdemu na myśl może podejśc Coliseum , ale czy nie uważacie , że to już trochę stara lokacja ? Dodatkowo bardzo znana , a więc proponuje następującą lokacje :
Emerald Square x/y/z [ 153581 , 142084 , -12737 ]
(https://forum.lineage2.com.pl/proxy.php?request=http%3A%2F%2Fimg56.imageshack.us%2Fimg56%2F2349%2Fshot00010ex8.th.png&hash=7081298a532de4b29e65c640514120440a212226) (http://img56.imageshack.us/my.php?image=shot00010ex8.png)
Jest to duża lokacja - dodana w kronice Kamael . Dodatkowo spełnia trzy czynniki , które mogą pozytywnie wpływac na ocene graczy naszego TvT , a co za tym idzie całego serwera . Są to następujące czynniki , które uważam za priorytet podczas TvT :
- Specialne Boxy na drużyny
- Brak spawn killingu ( zabijania na spawnie )
- Brak możliwości zabijania przez bramy Boxów .
2. Ok , ale jak zrobic specialne boxy dla drużyn ? Nic trudnego ! W lokacji , która podałem są miejsca , które mogą byc do tego wykorzystane . Na screenie widac '' niebieską bramę '' Nie da się jej otworzyc , ale da się ją zabic . Wtedy wchodzimy do środka i mamy 1 BOX dla drużyny ! Takie ''boxy'' są tam 3 . Tam będą potrzebne 2 - ponieważ zrobimy TvT na 2 drużyny .
3. Ok , a więc wchodzimy do gry i wpisujemy :
//tvt4. Ukaże się nam taka konsola :
(https://forum.lineage2.com.pl/proxy.php?request=http%3A%2F%2Fimg20.imageshack.us%2Fimg20%2F2395%2F96026217tj5.th.png&hash=a9f66bb762eabe987f3978ff14e23a8921fc7f7e) (http://img20.imageshack.us/my.php?image=96026217tj5.png)
5. W tej konsoli możemy ustawic wszystko potrzebne do poprawnego Eventu TvT , a więc zaczynamy :
- w pierwszym oknie od prawej wpisujemy nazwe naszego Eventu : Tvt a następnie naciskamy NAME
- wpisujemy opis eventu : np Team vs Team i naciskamy
Description- wpisujemy miejsce , ktore ukaże się graczom podczas startu eventu , będzie to komunikat , w którym gracze będą dowiadywac się gdzie znajduje się TvT manager . Np :
Giran Naciskamy przycisk
Join Location- wpisujemy maksymalny Level gracza , który będzie mógł zapisac sie na TvT : 86 ( czyli 85 lvl i 100% ) . Naciskamy przycisk
Max lvl- to samo robimy z
Min lvl , ale wpisujemy lvl , od ktorego można się zapisac .
- max i min players chyba każdy rozumie , wpisujemy maksymalną i minimalną ilośc graczy
- Przycisk
NPC : wpisujemy ID NPC , który będzie TvT Managerem
-
NPC pos : miejsce gdzie będzie spawnował się nasz Manager . Idziemy np do giran i wpisujemy //loc w miejsu , w którym nam się podoba . Następnie w konsoli wpisujemy x/y/z czyli np :
Cytat1111,2222,-3333
I zatwierdzamy przyciskiem
NPC pos-
Reward - czyli nagroda dla wygranego teamu . Wpisujemy ID danego przedmiotu czyli np 57 - adena
-
Reward Amount - ilośc nagrody czyli np 1000000000
-
Join Time - czas jaki będzie przeznaczony na zapis do Eventu . Np 10 - czyli 10 min
-
Event Time - czas trwania eventu . Np 15 - 15 min
- Wpisujemy nazwę naszej pierwszej drużyny np : blue i naciskamy
Team add , robimy 2 drużyny czyli np blue i red .
- Ok teraz czas na przydzielenie naszych boxów . Rozwalamy 1 brame i wchodzimy do środka . W konsoli wpisujemy nazwe naszej pierwszej drużyny , czyli blue i naciskamy
Team pos(https://forum.lineage2.com.pl/proxy.php?request=http%3A%2F%2Fimg219.imageshack.us%2Fimg219%2F8176%2Fshot00012om1.th.png&hash=e353b9fb44d881ae2ea4c2d1178396ea65a88896) (http://img219.imageshack.us/my.php?image=shot00012om1.png)(https://forum.lineage2.com.pl/proxy.php?request=http%3A%2F%2Fimg219.imageshack.us%2Fimages%2Fthpix.gif&hash=aa73be68d8a6ff588688bd21cb01e08fd037663b) (http://g.imageshack.us/thpix.php)
-
Team Remove : Tym przyciskiem możemy usuwac daną drużynę .
- Potem naciskamy
Auto Event 6. Ok , a więc skonfigurowaliśmy TvT ! Teraz pora rozwiązac problem spawn killingu . W Emerald Squer można dostrzegac : 1 duże koło a wokół niego 4 mniejsze . Wykorzystamy 4 mniejsze koła na cztery możliwości spawnu . Ok , a więc robimy nowego NPC . Ktoś zapyta '' A po co ? '' A po to abyśmy mogli takiego NPC umieścic w boxach drużyn . Ten NPC będzie mógł teleportowac do 4 częsci areny Tvt - w ten sposób możemy unikac spawn killingu .
7. Ok napisze jak ten NPC powinien wyglądac . Po pierwsze będie on pełnił funkcje Teleportu .
Musimy spisac lokacje naszych spawnów , które będa dostępne u naszego GK ( Ten NPC będzie znajdował się w boxach drużyn ) Wchodzimy na te koła i spisujemy
x/y/z ( /loc )
(https://forum.lineage2.com.pl/proxy.php?request=http%3A%2F%2Fimg370.imageshack.us%2Fimg370%2F5701%2Fshot00013ob3.th.png&hash=3200ddf1072122b7b1f0c421610e100b61309d89) (http://img370.imageshack.us/my.php?image=shot00013ob3.png)
Gdy mamy już lokacje wszystkich 4 kół , możemy przystąpic do robienia Teleportów . Otwieramy Navicata i idziemy do tabelki
teleport Naciskamy mały
+ pojawiła się nam nowa pusta tabelka , która musimy uzupełnic .
- Description : obojętne co wpiszemy . Np Spawn 1
- ID : wybieramy sobie ID naszego nowego teleportu . Np 80000
- loc_x wpisujemy współrzędne
X naszego 1 spawnu
- loc_y wpisujemy współrzędne
Y naszego 1 spawnu
- loc_z wpisujemy współrzędne
Z naszego 1 spawnu
- price : koszt naszego teleportu . Np 200 ( czyli 200 adena )
- fornoble : wpisujemy 0
I tak robimy 4 teleporty ( proponuje dawac kolejno ID : 80000,80001,80002,80003 )
Teraz musimy zrobic plik HTML . Dla tych , którzy dalej nie wiedzą jak to zrobic to robimy nowy plik textowy i wpisujemy : ( Nie będe tłumaczył poszczególnych znaków , było to opisane w innych poradnikach )
Cytat<html><title>TvT Gk</title><body>
<center>
<table width=280>
<tr>
<td width=180><center><font color="aadd77">TvT spawn</font></center></td>
</tr>
</table><br>
<center>
<center><br>
<button action="bypass -h npc_%objectId%_goto 80001" value="Spawn 1" width=110 height=24 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
<button action="bypass -h npc_%objectId%_goto 80002" value="Spawn 2" width=110 height=24 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
<button action="bypass -h npc_%objectId%_goto 80003" value="Spawn 3" width=110 height=24 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
<button action="bypass -h npc_%objectId%_goto 80004" value="Spawn 4" width=110 height=24 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
</center>
<table>
</table>
</center>
</body></html>
Ok , mamy gotowy plik HTML . Teraz dajemy opcje
zapisz jako I wpisujemy
88889.htmTo jest bardzo ważne aby zapisac w formacie
.htm a nie
.html Teraz ten plik możemy dac do folderu ( Gameserver/data/html/teleporter )
W pogrubionych miejscach widziemy , że ID teleportów musi byc poprawne!
Teraz musimy wgrac naszego nowego NPC do bazy danych . Robimy nowy plik textowy i wpisujemy :
CytatINSERT INTO `npc` VALUES ('88889', '31104', 'TvT GK', '1', 'TvT', '1', 'NPC.teleport_npc_sm', '7.00', '15.00', '70', 'male', 'L2Teleporter', '40', '200', '200', '200.00', '200.00', '20', '20', '20', '20', '20', '20', '20', '20', '20', '20', '20', '20', '20', '0', '20', '30015', '0', '0', '20', '20', 'NULL', '0', '0', '0', 'LAST_HIT', '0', '0', '0', 'fighter', 'false');
Zapisujemy i wgrywamy do bazy . Jeżeli ktos nie wie jak to : uruchamiamy Navicata , klikamy prawym na l2jdb i opcja :
Excute Batch File Zaznaczamy nasz plik i wgrywamy .
Ok gotowe ! Teraz restartujemy nasz server . Następnie wchodzimy do gry i w 2 boxach naszych 2 drużyn spawmujemy takiego GK ( //spawn 88889 ) Gotowe ! ( Po restarcie ''zabite'' drzwi będa jak nowe )
Dla leniwców : Gotowy TvT GateKeeper :http://www.speedyshare.com/240720931.html
---------------------------------------------------
1. Tak jak przy TVT , potrzebujemy odpowiedniego miejsca na event , a więc podpowiem jak wg mnie powinna wyglądać arena na event Captur The Flag ( przypominam , że jest to event , w którym 2 drużyny kradną sobie flagi i starają się dostarczyć ją do swojej flagi ) Czyli :
- arena powinna mieć dwa wyraźne punkty na flagi ( Było by dobrze jeśli były by identyczne )
- Nie może być zbyt mała ani zbyt duża ( wiadomo , że gracz musi uciekać z flagą )
- Dla mniej wymagających może być to prosta lokacja lub klimatyczna forteca , ale jednak polecam się trochę wysilić .
- Arena powinna być wyraźna , gracze powinni wyraźnie wiedzieć gdzie mają atakować
2. Jak urozmaicić event ? Ja np lubię organizować CTF co jakiś czas w innych lokacjach , a więc warto przygotować sobie kilka gotowych lokacji . Można np przygotować event na fortecy w stylu : 1 drużyna broni , 2 drużyna atakuje . Można dodawać specialnych GK , którzy mogą teleportować na ''pole bitwy" lub na różnego rodzaju wzniesienia , wieże .
Można także dodać moby , które będą przeszkadzać w dojściu do bazy przeciwnika . Ja używałem też dwóch grup NPC Guardów :
- 1 rodzaj , który atakował tylko członków drużyn 2
- 2 rodzaj , który atakował tylko członków drużyny 1
Warto dodać takim NPC różne skille , takie jak np :
- stuny , cancele , paraliż i inny ''przeszkadzające" . Moimi ulubionymi są skille masowe ( AIO )
3. Teraz przejdźmy do konfiguracji eventu . Jest ona bajecznie prosta , a zarazem podobna do tej z TvT , a więc postępujemy podobnie . Różni się tylko tym , że musimy ustawić dodatkowo
x/
y/
z flag ( w bazie tabela 'ctf_teams' )
4. Trzeba też ustawić kolory ników graczy z dwóch drużyn ( w tej samej tabeli )
5. Event CTF jest bardzo lubiany przez graczy . Daje nam też duże możliwości do improwizacji by zrobić go wg naszych upodobań , a więc można się wykazać :)
6. Co do tych NPC , którzy przeszkadzają , można ich łatwo zrobić przy użyciu
pythona7. Event uruchamiamy tak jak na TvT , a więć najpierw zapisujemy nasz event w bazie opcją
save . Potem gdy chcemy odpalić event
zawsze musimy użyć opcji
load by załadować event , następnie klikamy
auto event---------------------------------------------------
1. DM event to kolejny , ciekawy event , którym możemy przyciągać graczy . Polega on na tym , że każdy gracz gra osobno ( tzn każdy vs każdy ) Wygrywa ten kto na koniec będzie miał najwięcej zabitych .
2. Teraz zastanówmy się nad miejscem na ten event , a więc ja uważam , że powinna to być
zamknięta lokacja . Ja lubie też labirynty , w których umieszczam przeszkadzające moby i Npc , ale wiadomo - każdy zrobi event po swojemu . JA tylko sugeruje :)
3. Zamkniętych lokacji jest wiele , a więc nie będę się rozpisywał . Przejdźmy do konfiguracji , a więc robimy to podobnie do poprzednich eventów . Menu eventu odpalamy komendą :
Cytat//dmevent
4. Jeśli bierzesz się za server l2j , to myślę , że znasz angielski i nie muszę więcej opisywać każdego okienka .
5. Jak odpalić event ? Tutaj sprawa jest trochę inna bo nie ustalamy jak długo będzie trwał event , rejestracja itp . Jeśli chcemy aby w miejscu przez nas zdefiniowanym , zespawnował się Npc od DM , musimy nacisnąc opcje
join . Czekamy aż gracze się zapiszą , w tym momencie proponuje nacisnąć opcje
sit force co spowoduje , że gracze zapisani do DM automatycznie siądą . Następnie klikamy opcje
teleport i zapisani są teleportowani do lokacji eventu . W tym momencie można objaśnić zasady eventu , następnie naciskamy
start , oraz kolejny raz
sit force by gracze wstali . Czekamy kilka minut aż gracze się nacieszą eventem i naciskamy
finish co spowoduje zakończenie eventu .
6. To tyle , tu też można improwizować - jak zawsze
---------------------------------------------------
Nie trzeba być mistrzem javy aby przygotować swój własny event . Wystarczy mieć pomysł , trochę czasu i potrafić pisać w pythonie . Będzie to o tyle prostsze , że nie musimy nic kompilować itp . Dodam kilka moich eventów napisanych w pythonie ( automatycznych ! ) już wkrótce , oraz napisze do nich poradnik . Własny , ciekawy event daje dużą satysfakcje . Jeśli ktoś nie zna się na pythonie to niech postudiuje plik
documentations.txt w folderze :
Cytatdata/script/quest/documentations.txt
Oraz zawsze można poczytać gotowe eventy , questy itp . Good luck :P
---------------------------------------------------
Jak pewnie wam wiadomo , na plikach L2JFree nie ma opcji automatycznego eventu , tak jak ma to miejsce np na L2J , a więc można to zrobić prostym skryptem napisanym w pythonie . Czyli :
1. Robimy plik .sql wraz z taką zawartością :
CytatINSERT INTO global_tasks(task,type,last_activation,param1,param2,param3) VALUES ('998', 'jython', 'TYPE_FIXED_SHEDULED', '1219484326015', '600000', '14400000', 'tvt.py');
Gdzie :
param1 - czas w jakim event wystartuje po restarcie ( w milisekundach )
param2 - czas , po którym event znowu wystartuje
Dla TvT :
2. Zrób plik tvt.py (python) - Dla TvT w folderze scripts/cron
Dlaczego w folderze cron ? Jest to folder , do którego dodajemy skrypty , które działają bez udziały innych graczy,admina itp - czyt. automatycznie :
Cytatimport sys
from com.l2jfree.gameserver.model.entity.events import TvT
TvT.loadData()
TvT.autoEvent()
Dla CTF :
3. Zrób plik ctf.py (python) - Dla CTF w folderze scripts/cron
Cytatimport sys
from com.l2jfree.gameserver.model.entity.events import CTF
CTF.loadData()
CTF.autoEvent()
CytatINSERT INTO global_tasks(task,type,last_activation,param1,param2,param3) VALUES ('998', 'jython', 'TYPE_FIXED_SHEDULED', '1219484326015', '600000', '14400000', 'ctf.py');
To tyle :P
---------------------------------------------------
Poradnik mojej osoby ... jak ktos ma pytania to pisac :D Przypominam tylko , ze to jest opis pod pliki L2Jfree , ktore szczerze polecam !
Mam pytanie co do CTF: kiedy startuje event w podanym w configach miejscu spawnuje ctf manager ale pokazuje on tylko nazwe eventu i descritption jak zrobic zeby mozna bylo przystapic do eventu?
Prawdopodobnie nie skonfigurowałeś dobrze, sprawdź w bazie czy masz wszystko tak jak należy bądź //ctf i load.
Jestem pewien , że wpisałeś max level - 85 . A to jest błąd . Ma być max level - 86 ( czyli 85 lvl i 100% ) Na Interlude powinno być 81 ( czyli 80 lvl i 100% ) :P Poprawiłem w prezentacji .
Bo kilka kodów zaczyna się od literek , najlepiej wprowadzaj cyferkowe :angel:
Dobrze, a jak zrobic automatyczny event z siege? tzn. normalnie zamek jest zajety przez klan xxx ale np co 3 dni losowo wybrany zamek jest przeznaczany na event trwajacy 2h a klan ktory ten event wygra dostaje np 10 BOG albo inne itemki ale zamek dalej nalezy do klanu xxx
To napisz , ale proszę - jeśli w moim temacie to rozwiń bardziej swoje myśli , tak abym miał większy obraz tego pomysłu .
Takie pytanie: jak napisać event w Javie? chodzi mi o same podstawy gdzie umieszczać plik z eventem, co musi być spełnione żeby skompilowało się bez errorów , wszystko jak ogólnie założyć nowy plik w którym można pisać eventa
a mozna zrobic tak aby olimpiada byla sterowalna jak eventy? czyli np sam ustalam za kazdym razem kiedy ma dzialac albo robie autoevent z niej, da sie tak?