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 :
Team vs Team
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 ]
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 :
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 :
1111,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-
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 )
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 )
<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 :
INSERT 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---------------------------------------------------
Captur the Flag
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---------------------------------------------------
Death Match
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ą :
//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
---------------------------------------------------
Inne Eventy
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 :
data/script/quest/documentations.txt
Oraz zawsze można poczytać gotowe eventy , questy itp . Good luck
---------------------------------------------------
Automatyczny Event
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ą :
INSERT 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 :
import 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
import sys
from com.l2jfree.gameserver.model.entity.events import CTF
CTF.loadData()
CTF.autoEvent()
INSERT INTO global_tasks(task,type,last_activation,param1,param2,param3) VALUES ('998', 'jython', 'TYPE_FIXED_SHEDULED', '1219484326015', '600000', '14400000', 'ctf.py');
To tyle
---------------------------------------------------
Poradnik mojej osoby ... jak ktos ma pytania to pisac
Przypominam tylko , ze to jest opis pod pliki L2Jfree , ktore szczerze polecam !