Sentil
Ten Typ
- Joined
- May 11, 2008
- Messages
- 211
- Reaction score
- 85
"Przygod? z Open Tibi? czas zacz??!"
- TheForgottenServer, XAMPP, phpMyAdmin
- TheForgottenServer, XAMPP, phpMyAdmin
Spis tre?ci:
I: Prolog
1. Od autora.
2. Wprowadzenie do Open Tibii.
II: ?ci?gamy i konfigurujemy
3. Silnik i pliki DLL.
4. XAMPP, tworzenie bazy danych.
5. Klient Tibii i IP Changer.
6. Obs?uga phpMyAdmin.
7. Edytowanie mapy.
8. Plik konfiguracyjny "Config.lua".
III: Epilog
9. Prawa autorskie.
10. Zako?czenie.
Inne moje artyku?y:
Prolog
1. Od autora.
1. Od autora.
Witam. Mia?em ch?? napisa? poradnik dla takich typ?w, kt?rzy z jaki? powod?w postanowili odej?? od prawdziwej Tibii i zainteresowali si? czym? zajebistrzym, czyli Open Tibi?. Powodem takim m?g? by? np. hack, ban, albo po prostu zwyk?e znudzenie. Znam takich ludzi i wiem, ?e wi?kszo?? z nich omija OT szerokim ?ukiem, poniewa? wydaje im si?, ?e taka zabawa sko?czy si? kradzie?? ich postaci na globalnym serwerze. Maj? w tym troch? racji, na forach i stronach o tematyce Open Tibii nie brakuje pseudo haksior?w, kt?rzy infekuj? wrzucone przez siebie pliki. W tym momencie chc? poda? wam pomocn? d?o? - mam spore do?wiadczenie w uk?adaniu tych klock?w, jestem znany przez du?? grup? polskiego spo?ecze?stwa Open Tibii. Z tego wzgl?du jestem r?wnocze?nie osob? godn? zaufania. Generalnie to nie b?d? nikogo b?aga? ?eby mi zaufa?, bo jak si? domy?lacie, mam na to wyjebane jak st?d do Ba?tyku (mieszkam na po?udniu). Moja pomoc ma charakter charytatywny, jest bezinteresowna. Wracaj?c do tego zaufania - po co mi ufa? w zwyk?ym poradniku? Przez ca?y artyku? b?dziecie musieli ?ci?ga? coraz to nowe pliki. Je?li jeste? osob?, do kt?rej kieruj? ten tekst, tj. tak?, kt?ra boi si? bawi? z OT z powodu hacka, to b?d? co b?d? musisz uwierzy?, ?e nie interesuje mnie tw?j 50EK i po?ci?ga? to, co tu zamie?ci?em. Tw?j wyb?r, m?j przyjacielu ; ).
Poradnik napisa?em metod? schodkow?, od ca?kowitego zera (brak jakichkolwiek program?w i do?wiadczenia) do posiadania swojego w?asnego, dzia?aj?cego serwera. Na takim serwerze b?dziecie mieli w?asn? posta? goda (czyli boga, poziom "wy?ej" od gamemastera). Dzi?ki niej b?dziecie w stanie dowolnie bawi? si? w swojej w?asnej Tibii, przyzywa? potwory, lata? po mapie czy co tam jeszcze wam przyjdzie do g?owy.
Dobra, nagada?em, a raczej napisa?em si? na dzie? dobry. Zacznijmy wreszcie wasz? przygod? z Open Tibi?, z ch?ci? porobi? w niej za przewodnika. Do dzie?a ; ).
2. Wprowadzenie do Open Tibii.
Zanim zaczniecie ?ci?ga?, ustawia? i przestawia?, chcia?bym przybli?y? wam troch? teorii z dziedziny OT. Wszystko pisane kr?tko i "na ch?opski rozum".
Czym w og?le s? Open Tibia Servery (otsy)? S? to alternatywne serwery gry, tworzone za pomoc? specjalnych program?w i wykwalifikowanych ludzi. Do takich serwer?w mog? po??czy? si? gracze z ca?ego ?wiata.
G??wn? jednostk? Open Tibia Servera jest tzw. silnik, czyli aplikacja napisana w j?zyku C++, kt?ra po skonfigurowaniu i uruchomieniu tworzy wirtualny serwer. Wiele os?b u?ywa zamiennie wyraz?w "silnik" i "serwer", nie pope?niajcie tego b??du. Silnik to tylko aplikacja, natomiast serwer to gra, do kt?rej mo?na si? zalogowa?.
Na silnik sk?ada si? wiele plik?w:
- trzon to plik ".exe", dzi?ki kt?remu uruchamiamy serwer,
- folder World, w kt?rym znajduje si? mapa oraz pliki obs?uguj?ce j?,
- foldery skrypt?w,
- plik konfiguracyjny "Config.lua"
- inne.
Zajmijmy si? folderem World. Znajduje si? w nim kilka plik?w, m. in. mapa. S? mapy imituj?ce map? real Tibii, lecz zazwyczaj mamy do czynienia z w?asnymi pracami. Tworzeniem map zajmuj? si? mapperzy, robi? to za pomoc? narz?dzi zwanych Map Editorami. W dzisiejszych czasach Map Editory pozwalaj? stworzy? utalentowanemu i profesjonalnemu mapperowi arcydzie?a, kt?re zostawiaj? daleko w tyle map? CipSoftu. Przyk?ad prezentuj? poni?ej:
Powy?szy poci?g jest efektem innowacyjno?ci i odrobinki szale?stwa Chauza, jednej z legend mappingu. Widzieli?cie takie co? na globalnym serwerze ; )?
Do plik?w silnika do??czy?em foldery skrypt?w. Znajduj? si? one w folderze Data, a s? to np. katalogi Actions czy Movements. Wszystko obejrzycie na w?asne oczy w nast?pnym rozdziale xd. Wracaj?c do skrypt?w. Graj?c w Tibi? pewnie nigdy nie zastanawiali?cie si?, dlaczego jak wejdziecie na piksela z narysowan? dziur? to spadacie pi?tro ni?ej, a po klikni?ciu na drabin? w?azicie poziom wy?ej. Uznali?cie, ?e tak po prostu jest i koniec. Na serwerze za wszystkie z wymienionych akcji odpowiadaj? skrypty, kt?rych tworzeniem i edytowaniem zajmuj? si? skrypterzy. Skrypter mo?e u?mierci? ci? life potionem, doda? ?ycia za pomoc? mana potionu, lub stworzy? run?, kt?ra b?dzie dodawa?a ci many. Mo?liwo?ci edytowania kodu s? na prawd? ogromne. Poni?ej poka?? wam fragment mojego skryptu:
Code:
{x=70, y=138, z=7, stackpos=253}, -- przystanek na trzecim osiedlu (11)
{x=74, y=138, z=7, stackpos=253}, -- przystanek na czwartym osiedlu (12)
}
local przystanki_numery = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} -- analogicznie dodawaj kolejne przystanki
-- rozklad jazdy (nie tykaj jesli nie wiesz co robisz)
local rozklad_jazdy1 = {5, 7, 9, 11, 1, 2, 3, 4, 1, 2, 3, 4}
local rozklad_jazdy2 = {6, 8, 10, 12, 6, 7, 8, 9, 10, 11, 12, 9}
-- // rozklad jazdy
local exh = 2 -- odstep czasowy miedzy jazdami (w sekundach)
local storageID = 4001 --- wolne storageID
local tp_efekt = 10 -- efekt teleportacji
local za_czesto = "Nie mozesz jezdzic tak czesto, poczekaj chwile." -- wiadomosc gdy gracz jezdzi za czesto
local obroc_sie = "Obroc sie w lewo lub w prawo." -- wiadomosc kiedy gracz nie jest obrocony
-- //KONFIGURACJA --
local gracz = getPlayerPosition(cid)
local dir = getCreatureLookDirection(cid)
local storage = getPlayerStorageValue(cid, storageID)
for i = 1, #przystanki do
if doComparePositions(gracz, przystanki[przystanki_numery[i]]) and dir == WEST then
if storage <= os.time() then
doTeleportThing(cid, przystanki[rozklad_jazdy1[i]])
doSendMagicEffect(przystanki[rozklad_jazdy1[i]], tp_efekt)
setPlayerStorageValue(cid, storageID, os.time()+exh)
else
doPlayerSendCancel(cid, za_czesto)
end
elseif doComparePositions(gracz, przystanki[przystanki_numery[i]]) and dir == EAST then
if storage <= os.time() then
doTeleportThing(cid, przystanki[rozklad_jazdy2[i]])
Tak wygl?da kod LUA, w kt?rym pisane s? skrypty. Na pocz?tku swojej kariery b?dziecie r?wnocze?nie mapperami i skrypterami, lecz p??niej wypada?oby wybra? swoj? specjalizacj?, zale?n? od upodoba?. Wyb?r pozostawiam wam.
Wr??my do silnik?w. Silniki dzielimy na dwa rodzaje: silniki XML oraz silniki SQL.
Silnik XML - charakteryzuje si? tym, ?e w przeciwie?stwie do silnika SQL, nie posiada tzw. bazy danych. Wszystkie informacje dotycz?ce np. graczy zapisywane s? w dokumentach XML. Wygl?da to mniej wi?cej tak, ?e gdy na waszym serwerze gracz utworzy sobie posta?, automatycznie w silniku pojawia si? plik nazwa_gracza.xml, w kt?rym b?d? notowane wszystkie informacje o owym graczu, np. jaki ma level, ile ma obecnie ?ycia, jaki nosi ekwipunek, jakie questy wykona?. Je?li gracz wyloguje si?, jego plik postaci automatycznie si? zapisuje, przy nast?pnym logowaniu czytaj?c nowe, ?wie?e dane. Pliki te zapisuj?, a raczej aktualizuj? si? nie tylko przy wylogowywaniu. W konfiguracji mo?na ustawi?, co ile minut pliki maj? si? zapisywa?. Jakie s? wady silnika XML? Przede wszystkim d?ugi czas wymiany informacji pomi?dzy silnikiem a setkami dokument?w XML (po polsku m?wi?c: przy s?abym sprz?cie wolno dzia?a). Silnik XML po?era du?o pami?ci RAM. Kolejna wada to brak wsparcia technicznego. Era silnik?w XML sko?czy?a si? mniej wi?cej na Tibii 8.1, teraz to ju? w og?le nikt si? tym nie zajmuje. Silniki XML cz?sto si? crashuj? (same wy??czaj?), przez co s? niestabilne (nie mog? dzia?a? kilkadziesi?t godzin bez resetu). Mo?ecie pomy?le?: skoro XMLe s? takie beznadziejne, to po co kto? ich u?ywa?? Ot?? maj? one jedn?, lubian? przez zielonych zalet?: s? proste, a raczej prostsze w obs?udze od swoich SQLowych braci. Silnik XML wystarczy ?ci?gn??, w??czy? plikiem ".exe" i ju?, mamy sw?j serwer. Przy SQLu trzeba si? troszki pobawi? z baz? danych, lecz po tym poradniku zobaczycie, ?e to naprawd? nic strasznego. Silnik XML nie wymaga dodatkowych program?w takich jak XAMPP czy WebServ, o czym napisa?em przy silniku SQL. Przyk?adami silnik?w XML s? Aries czy Devland.
Silnik SQL - nie wykorzystuje dokument?w XML do przechowywania informacji o graczach, ich kontach (i nie tylko). Zamiast tego posiada baz? danych, najcz??ciej typu mysql. Dzi?ki wykorzystaniu bazy dane s? lepiej uporz?dkowane, a silnik ma do nich szybszy i lepszy dost?p. Jakie s? wady silnika SQL? Jak dla mnie ten rodzaj silnik?w nie ma wad, ale jakby si? kto? upar?, mo?na powiedzie?, ?e trudniej je konfigurowa? i obs?ugiwa?. W dzisiejszych czasach tak naprawd? to bzdura, jest wiele poradnik?w, kt?re prowadz? gracza przez proces konfiguracji, jeden z nich w?a?nie czytasz. Opr?cz tego mamy same zalety. Szybko??, ma?e zu?ycie pami?ci, stabilno?? i niezawodno??, czyli wszystko to, czym powinien odznacza? si? profesjonalny serwer. Druga sprawa to wsparcie techniczne. Silniki SQL s? stale aktualizowane i rozwijane, co czyni je jeszcze lepszymi. Niestety, baza danych mysql wymaga dodatkowego programu-serwera, jakim jest np. XAMPP (zajmiemy si? tym dalej). Przyk?adem silnika SQL mo?e by? ponadczasowy TheForgottenServer (TFS), obecnie najlepszy i najpopularniejszy silnik ?wiata. Nim r?wnie? zajmiemy si? w tym artykule.
Jak rozr??ni?, czy silnik jest XML, czy SQL? Najprostszy spos?b to sprawdzenie, czy w folderze Data znajduj? si? katalogi Players i Accounts. Je?li s? - silnik to XML. W przeciwnym razie mamy do czynienia ze SQLem.
Dobra, to wszystko z teorii. Macie ju? pewn? wiedz? na temat Open Tibii. Czas postawi? sw?j pierwszy serwer ; ). Poni?ej macie napisan? bardzo dok?adn? instrukcj?, prosi?bym wykonywa? kolejne kroki rzetelnie i prawid?owo. Nie przechod?cie dalej je?li po drodze co? wam si? spieprzy?o. Lepiej zapyta? o problem w tym temacie, ni? b??dzi? bez celu w b??dach. Do roboty.
II: ?ci?gamy i konfigurujemy
3. Silnik i pliki DLL.
3. Silnik i pliki DLL.
Jak ju? wiecie - jak serwer, to przede wszystkim silnik. Musicie si? w niego zaopatrzy?. Nasz, a w?a?ciwie m?j wyb?r pada na TheForgottenServer. Po co obcowa? z innymi silnikami, skoro mo?na za darmo bawi? si? najlepszym?
TFS zawsze zostaje wydany w dw?ch wersjach: console oraz gui. Console to wersja z sam? konsol?, zu?ywa mniej pami?ci RAM, ale w zamian za to jest mniej rozbudowana. Gui to standardowe windowsowe okienko, zu?ywa wi?cej RAMu (tylko troch? wi?cej, ?eby sobie kto? nie wyobra?a? nie wiadomo czego) ale jest ?adne i daje wi?cej opcji. My postawimy na gui, poniewa? licz?, ?e macie przynajmniej to 512 MB pami?ci RAM.
Domem TFS?w jest forum , na ?amach kt?rego ekipa tworz?ca silnik wydaje kolejne wersje. Fajnie by by?o, gdyby?cie si? tu zarejestrowali. Przyda wam si?.
Aby pobra? silnik klikamy . Link pochodzi z . Otworzy nam si? okno SpeedyShare. Do wyboru mamy console i gui, wybieramy gui. Klikamy na cryingdamson6pl1-gui.7z i rozpoczynamy pobieranie pliku. ?ci?gany silnik to TheForgottenServer 0.3.6pl1 (Crying Damson) pod Tibi? 8.54. Nie jest to najnowsza wersja Tibii, lecz w czasie kiedy pisa?em poradnik, ten silnik by? najpopularniejszy. Zawsze mo?ecie wej?? na Otland --> Downloads --> Distributions i sprawdzi?, czy nie ma nowszych wyda?. ?ci?gni?ty plik rozpakowujemy np. WinRarem. Powinni?my otrzyma? takie cu?:
Teraz spr?bujcie odpali? plik startowy, dok?adniej Crying Damson.exe. Wyskoczy wam taki b??d:
Pow?d jest taki, ?e do silnika nie ma bezpo?rednio do??czonych bibliotek, czyli plik?w z rozszerzeniem ".dll". Musimy ?ci?gn?? je w?asnor?cznie klikaj?c . Link pochodzi z Otlandu, dok?adniej z tematu. Po ?ci?gni?ciu rozpakowujemy archiwum. Naszym oczom ukazuje si? 9 plik?w. Wszystkie (bez wyj?tki) kopiujemy do katalogu z naszym silnikiem (tam, gdzie jest plik Crying Damson.exe). Powinni?my uzyska? takie co?:
Teraz, po do??czeniu bibliotek do silnika, mo?emy ponownie w??czy? silnik. Tym razem powinni?my zobaczy? taki widoczek: