Open Tibia Server: [Tibia 7.6] Krok po kroku, tworzymy swój własny serwer! - Open Tibia Server

Skocz do zawartości

Strona 1 z 1
  • Nie możesz napisać tematu
  • Nie możesz odpowiedzieć

[Tibia 7.6] Krok po kroku, tworzymy swój własny serwer! Od dzisiaj każdy będzie mógł mieć własny OT!

#1 Użytkownik nie jest zalogowany   ramza2 Ikona

  • Użytkownik
  • PipPip
  • Grupa Użytkownicy
  • Postów 25
  • Rejestracja 30-styczeń 10

Napisano 30 styczeń 2010 - 22:11

Temat: Krok po kroku - tworzymy swój własny serwer w wersji 7.6!

Poradnik jest napisany w 100% przez Ramze z tibiacenter.net.pl!
Pozwalamy kopiować poradnik na inne fora, ale trzeba zawsze napisać kto jest jego autorem.

Spis treści:

  • 1. Tak więc zaczynajmy..
  • 2. Od czego zacząć?
    - sprawdzamy czy nasz komputer nadaje się na hosting.
    - sprawdzamy nasz adres IP.
    - przygotowujemy komputer do postawienia na nim serwera.
  • 3. Wybieramy i ściągamy silnik.
  • 4. Zaczynamy konfigurację silnika do pierwszego odpalenia.
  • 5. Odpalamy nasz serwer!
    - zmieniamy hasło i nick konta gamemastera.
    - pierwsze logowanie na swój własny serwer.
  • 6. Udostępniamy serwer innym osobom!
    - co zrobić, żeby inni gracze mogli grać na serwerze?
    - kilka wskazówek odnośnie hostingu.
    - sprawdzamy czy gracz poprawnie się zalogował.
  • 7. Tworzenie postaci poprzez stronę (AAC).
    - od czego zacząć?
    - jaki wybrać acc maker?
    - instalacja i wskazówki.
    - konfiguracja account makera.
  • 8. Poznajemy bliżej nasz silnik.
    - zapoznajemy się z plikiem config.lua.
    - opisy folderów, co gdzie i jak.
    - tworzymy pierwszy quest.
    - teleporty, jak je zrobić.
    - robimy pierwszego, własnego potwora!
    - tworzymy własnego npc.
  • 9. Podstawowe informacje związane z grą.
    - dostępne komendy dla GameMastera.
    - o gamemasterze słów kilka.
    - czemu lagują mi potwory?
  • 10. O mapach i ich właściwościach.
    - czym jest map edytor, do czego służy?
    - wybieramy i pobieramy map edytor.
    - podstawowe pojęcia, wskazówki.
  • 11. Jak i gdzie reklamować swój serwer?..
    - listy serwerów open tibia.
    - serwisy poświęcone OT.
  • 12. Kilka przydatnych porad.
    - jak mądrze zarządzać serwerem.
    - najbardziej cenione serwery ots.
    - forum serwera.
  • 13. Zakończenie.
  • 14. Autorzy, podziękowania.

1. Tak więc zaczynajmy..

Witaj drogi użytkowniku! Zaglądając do tego tematu zapewne chciałbyś stworzyć swój pierwszy Tibijski serwer. Na taki serwer mówimy "OpenTibia Server" w skrócie "OTS". W tym temacie opisane jest jak zrobić serwer w wersji 7.6. Są dwa typu serwerów XML oraz SQL, my zajmiemy się tym pierwszym, ponieważ jest dużo łatwiejszy, szczególnie dla tych, którzy dopiero zaczynają przygodę z OT. Pamiętaj jednak, że ten poradnik nie zrobi za Ciebie serwera, on jedynie naprowadzi Cię na dobrą drogę. Nie musisz mieć pojęcia o niczym, wystarczy, że posiadasz podstawowe pojęcia związane z komputerami, czyli takie jak: wklej, usuń, otwórz, zapisz, edytuj, itd..

2. Od czego zacząć?

- sprawdzamy czy nasz komputer nadaje się na hosting.

Na samym początku musimy sprawdzić czy nasz komputer nadaje się na postawienia na nim serwera. Poniżej umieszczona jest tabelka, która wskaże ile ludzi Twój komputer jest w stanie utrzymać. Oczywiście możecie mieć bardzo słaby komputer i może na nim grać np. 50 osób, ale wtedy będą tzw. lagi, a wtedy ludzię będzie się wszystko "zacinało". Tabelka niżej przedstawiona jest w przybliżeniu.

Do 10 osób - procesor: 800 mhz, pamięć: 128 mb, internet: 512 kb/s.
Do 20 osób - procesor: 1,5 ghz, pamięć: 256 mb, internet: 512 kb/s.
Do 35 osób - procesor: 2,2 ghz, pamięć: 384 mb, internet: 1 mb/s.
Do 50 osób - procesor: 2,5 ghz, pamięć: 512 mb, internet: 2 mb/s.

- sprawdzamy nasz adres IP.

Jeśli zapoznaliśmy się już z wymaganiami komputera, możemy teraz sprawdzić nasz adres ip, przez który inne osoby będą mogły łączyć się z Twoim serwerem. Są 3 rodzaje adresów IP - zewnętrzny, zmienny oraz wewnętrzny. Jeśli mamy ten ostatni, to niestety normalnego serwera tak łatwo nie postawimy. Aby sprawdzić jaki mam typ adresu, wchodzimy na stronę tutaj.

Jeśli nasz adres IP znajduje się w przedziale poniżej, oznacza to, że mamy IP wewnętrzne.

- 192.168.x.x albo 10.x.x.x albo 172.[16-31].x.x

IP wewnętrzne to takie, które działa tylko w Twojej sieci lokalnej, inaczej mówiąc niewidoczne od zewnątrz. W tej sytuacji nie pozostaje nam nic innego jak skorzystać z hamachi. Kliknij tutaj, aby dowiedzieć się więcej.

Natomiast IP zewnętrzne to takie, które jest widoczne z zewnątrz. Wszystkie adresy, oprócz tych wymienionych wyżej, są adresami zewnętrznymi.

Pozostaje nam pytanie, czym jest IP zmienne - otóż jest to także IP zewnętrzne, z tym, że zmienia się ono za każdym włączeniem komputera, czy za każdym zresetowaniem modemu/routera. Co z tym się wiąże, musisz podawać swoim graczom za każdym razem inne IP. Na całe szczęście wymyślono na to metodę. Używamy do tego NO-IP, więcej dowiemy się w tym temacie.

- przygotowujemy komputer do postawienia na nim serwera.

Jak już wiemy, nasz komputer musi być jak najlepszy jeśli chcemy mieć serwer bez lagów czy kicków. Żeby temu zapobiec musimy przystosować swój komputer do jak najlepszej wydajności. Zastosuj się to niżej zamieszczonej informacji, a na pewno wyciągniesz z komputera jak najwięcej.

- usuwamy wszystkie zbędne programy/pliki z dysku.
- dobrze by było zrobić defragmentację dysku, więcej informacji znajdziemy tutaj.
- wyłączamy wszystkie firewalle/antywirusy.
- na czas hostowania wyłączamy wszystkie programy typu skype, itd.

3. Wybieramy i ściągamy silnik.

Silników w wersji 7.6 jest tyle, że aż ciężko wybrać. Dział z interesującymi nas silnikami znajdziemy tutaj. Możemy wybrać każdy, który zaczyna się od tagu "[Tibia 7.6]". W każdym temacie z silnikiem znajdziemy dokładny jego opis, zdjęcia oraz link do downloadu. Szukamy sobie najlepszego dla nas silnika i go ściągamy. Mi osobiście najbardziej się podoba LoozikOTS, znajdziemy go tutaj. Na nim będę wszystko opisywał.

4. Zaczynamy konfigurację silnika do pierwszego odpalenia.

Domyślam się, że masz już zainstalowaną Tibię 7.6, jeśli nie - ściągnij ją. To samo tyczy się IP Changera, będzie on nam potrzebny do zmiany IP klienta Tibii. Jeśli go nie posiadasz, również ściągnij.

Zaraz po ściągnięciu wybranego przez nas silnika, możemy go rozpakować. W tym celu naciskamy prawym przyciskiem myszy na pobrany plik i wybieramy "Wypakuj do.." lub coś w tym stylu.

Po chwili naszym oczom ukaże się kilka plików i folderów. Z początku może się to wydawać dość skomplikowane, ale nie ma się co przejmować - nie będzie tak źle.

Pierwszą czynnością jaką wykonamy, będzie otworzenie pliku config.lua - znajduje się on w głównym folderze silnika. Otwieramy go za pomocą notatnika. W tym pliku będziemy mogli zmieniać podstawowe rzeczy takie jak: exp, magic level, skille, loot i wiele innych.

Zaraz po otwarciu pliku zobaczymy całą masę różnych tekstów.
Nas na razie interesuje tylko jedno, mianowicie taka linijka:

-- the ip the server should redirect too
ip = "xxx"


Tą lub podobną linijkę znajdziemy prawie na samej górze, oczywiście w pliku config.lua.
W miejsce xxx wpisujemy nasz adres IP. Zapisujemy zmiany i wychodzimy.

W zasadzie to już nasz silnik jest gotowy do odpalenia, zatem przejdźmy do następnego kroku.

5. Odpalamy nasz serwer!

W głównym folderze z silnikiem znajduje się plik z rozszerzeniem .exe, w moim przypadku jest to LoozikOTS.exe. Najczęściej nazwa pochodzi od nazwy silnika oraz zawiera jakąś ikonkę. Jest to plik do uruchomiania silnika.

Naciskamy dwa razy lewym przyciskiem myszki i czekamy. Po chwili naszym oczom ukaże się czarne okienko, coś takiego jak: (jeśli ściągnąłeś ten silnik co ja, w innym będzie trochę inaczej)

Dołączona grafika

Czekamy chwilę, aż ujrzymy napis:

Startowanie Servera... [Zrobione]
LoozikOTS Server Wlaczony...


Lub coś podobnego. Oznacza to, że silnik uruchomił się poprawnie, bez żadnych błędów.

- zmieniamy hasło i nick konta gamemastera.

Aby zmienić hasło do konta gamemastera (GM), wchodzimy do folderu data, który znajdziemy w folderze głównym silnika. W tym folderze ujrzymy kilka innych folderów oraz plików. Na razie wchodzimy tylko w jeden folder, mianowicie w folder accounts. W tym folderze znajdują się pliki - konta graczy i gamemasterów, a dokładniej są to ich numery kont. W moim przypadku są tam dwa pliki z rozszerzeniem .xml. My zajmiemy się plikiem o nazwie "111111.xml". Żeby otworzyć któryś z tych plików, naciskamy na niego prawym przyciskiem myszki i wybieramy edytuj. Plik otworzy się nam domyślnie w notatniku. Zobaczymy mniej więcej coś takiego:

<?xml version="1.0"?>
<account pass="tibia" type="1" premDays="69">
<characters>
	<character name="GM"/>
</characters>
</account>


W miejscu "tibia" wpisujemy nasze własne hasło do konta.
W miejscu "GM" wpisujemy nazwę naszego GameMastera.

Po zmianie danych, zapisujemy plik i wychodzimy z niego.

Następnie w głównym folderze silnika wchodzimy w data i teraz w folder players. U mnie znajdują się tam trzy pliki, także z rozszerzeniem .xml. Wybieramy wcześniej edytowaną postać i otwieramy ją tak samo jak w przypadku accounts. Naszym oczom ukaże się coś takiego:

<?xml version="1.0"?>
<player name="GM" account="111111" sex="1" lookdir="1" exp="20291100" voc="3" level="108" access="5" cap="0" maglevel="0" lastlogin="1169552077" premticks="172632000" promoted="1" banned="0"><spawn x="609" y="629" z="7"/><temple x="618" y="621" z="7"/><skull type="0" kills="0" ticks="0" absolve="0"/><health now="1685" max="1685" food="0"/><mana now="2035" max="2035" spent="680000"/><ban banned="0" banstart="0" banend="0" comment="" reason="" action="" deleted="0" finalwarning="0" banrealtime=""/><look type="129" head="0" body="114" legs="0" feet="114"/><skills><skill skillid="0" level="10" tries="13"/><skill skillid="1" level="10" tries="0"/><skill skillid="2" level="10" tries="0"/><skill skillid="3" level="10" tries="0"/><skill skillid="4" level="44" tries="50"/><skill skillid="5" level="10" tries="0"/><skill skillid="6" level="10" tries="0"/></skills><spells/><deaths/><inventory><slot slotid="1"><item id="2502"/></slot><slot slotid="3"><item id="1988"><inside><item id="2377"/><item id="2525"/><item id="2160" count="95"/><item id="2152" count="97"/><item id="2148" count="50"/></inside></item></slot><slot slotid="4"><item id="2503"/></slot><slot slotid="6"><item id="2455"/></slot><slot slotid="7"><item id="2504"/></slot><slot slotid="8"><item id="2643"/></slot><slot slotid="9"><item id="2205" time="1147000"/></slot><slot slotid="10"><item id="2543" count="71"/></slot></inventory><depots><depot depotid="1"><item id="2590"><inside><item id="2594"/></inside></item></depot></depots><storage><data key="2152" value="1"/><data key="2377" value="1"/><data key="2525" value="1"/><data key="5030" value="1"/><data key="5035" value="1"/></storage></player>


W miejscu "GM" wpisujemy wcześniej ustaloną nazwę postaci.
W miejscu "111111" wpisujemy wcześniej ustalony numer konta.

Zapisujemy to i wychodzimy. Teraz możemy przejść do następnego kroku.

- pierwsze logowanie na swój własny serwer.

I już możemy się zalogować na swój własny serwer! Żeby to zrobić, uruchomiamy Tibię oraz IP Changera i się logujemy. Jeśli nie wiesz jak to zrobić, zapraszam tutaj. Uwaga! Aby zalogować się na swój serwer, w IP Changerze wpisz adres IP "127.0.0.1".

Po poprawnym wpisaniu danych (numer konta oraz hasło) powinno wyskoczyć nam okienko z wyborem postaci. Wybieramy oczywiście naszą świeżo utworzoną postać i się logujemy.

Jeśli wszystko dobrze poszło, powinieneś zalogować się na swój serwer!
No i w końcu.. Witaj na swoim serwerze :) U mnie wygląda to tak:

Dołączona grafika

6. Udostępniamy serwer innym osobom!

Tak więc już możemy się zabierać do hostingu własnego serwera.

- co zrobić, żeby inni gracze mogli grać na serwerze?

Oczywiście włączamy najpierw nasz silnik, czekamy do momentu aż wszystko się załaduje.

Od tej pory jak zmieniliśmy w config.lua adres IP, na nasz adres, serwer jest udostępniony. Co oznacza, że od tej chwili każdy może zalogować się na Twój serwer. Wystarczy, że podasz koledze, czy komukolwiek innemu swój adres IP. Wtedy Twój kolega włącza Tibię 7.6, odpala IP Changera, wpisuje Twoje IP i może się normalnie zalogować do gry. Najlepiej na razie podać mu dane na konto gamemastera, a później jak będziemy mieli stronę do robienia postaci, każdy będzie mógł założyć swoją.

- kilka wskazówek odnośnie hostingu.

- stosujemy się do punktu 2.
- wyłączamy wszystkie firewalle, blokady, antywirusy i inne rzeczy tego typu.
- podczas hostingu serwera nie zaleca się wykonywać takich rzeczy jak kopiowanie, usuwanie plików, gdyż zabiera to sporo pamięci RAM, a owa pamięć jest bardzo ważna. W przeciwnym wypadku, gracze na serwerze mogą mieć lagi/kicki, co źle wróży serwerowi.

- sprawdzamy czy gracz poprawnie się zalogował.

Gdy wszystko dobrze zrobiliśmy, po chwili jak kolega się zaloguje na serwer, w okienku naszego silnika powinno pokazać się coś mniej więcej takiego:

Dołączona grafika

Gdzie "loaded data/players/gm.xml" oznacza jaki nick zalogował się na serwer. Pod spodem mamy (w zależności od silnika) "1 graczy online" - tutaj chyba wiadomo o co chodzi.

I o to cała filozofia hostingu silnika. W kolejnym rozdziale dowiemy się jak zrobić stronę, na której inni będą mogli zakładać swoje konta. Są to tak zwane account makery.

7. Tworzenie postaci poprzez stronę (AAC).

A.A.C - account maker, jest to strona, na której inne osoby będą mogły zakładać swoje konta. Takich acc makerów, jest od metra, co oznacza, że każdy znajdzie coś dla siebie. My, ponieważ mamy silnik pod Tibię 7.6, będziemy szukali acc makerów właśnie pod tą wersję.

- od czego zacząć?

Na samym początku musimy ściągnąć nasz serwer domowy, dzięki któremu acc maker będzie widoczny dla innych osób z zewnątrz. Ja ściągnąłem sobie Xamppa, gdyż uważam, że jest on najlepszy zarówno dla początkujących, jak i tych bardziej doświadczonych. Więcej informacji na temat instalacja i jego używania znajdziemy tutaj. Jedyną wadą xamppa jest jego rozmiar, waży on prawie 50mb, a dla osób, które mają wolne internety, będzie to katastrofa. Na szczęście jest z tego wyjście, możemy pobrać sobie coś podobnego do xamppa, równie dobrego. Jest to tzw. WebServ, informacje oraz opis instalacji znajdziemy tutaj.

Jak już pobraliśmy nasz serwer domowy, możemy przejść do następnego kroku.

- jaki wybrać acc maker?

Jak już napisałem wcześniej, acc makerów pod wersję Tibii 7.6, jest cała masa. Dział z acc makerami znajdziemy tutaj. Nas jednak interesują wszystkie acc makery, które w tagu (przez nazwą) zawierają "[Tibia 7.6][XML]". Szukamy sobie odpowiedniego dla nas acc maker'a i go ściągamy. Ja wybrałem zwykły, prosty acc maker, gdyż jest bardzo prosty w obsłudze. Link do tematu z tym acc makerem znajdziemy tutaj.

- instalacja i wskazówki.

Zaraz po pobraniu i wcześniej zainstalowaniu serwera domowego, możemy przystąpić do instalacji. Ja zajmę się instalacją acc makera na xamppie. Najlepiej będzie to przedstawić w punktach, a więc:

- wypakowujemy pobrany acc maker.
- wchodzimy do folderu (domyślnie) Mój komputer => Dysk lokalny C: => Xampp => htdocs i tam wklejamy całą zawartość wcześniej wypakowanego acc makera.
- włączamy xamppa oraz naszą przeglądarkę www.
- w adresie przeglądarki wpisujemy 127.0.0.1.

No i mamy nasz acc maker, teraz pozostaje nam tylko go skonfigurować.

- konfiguracja account makera.

Aby poprawnie działał nasz acc maker, musimy go skonfigurować. W tym celu otwieramy folder z naszym acc makerem i naszym oczom ukażą się 3 pliki z rozszerzeniem .php. Otwieramy je domyślnie w notatniku. My zajmiemy się tylko jednym plikiem, mianowicie plikiem config.php. Zaraz po otwarciu zobaczymy coś takiego:

<?
//---------------------------- OTS directories  --------------------------------
$diraccount = 'c:\\YurOTS\\data\\accounts'; // podajemy tutaj tutaj ścieżkę do folderu account!
$dirplayer = 'c:\\YurOTS\\data\\players'; // podajemy tutaj ścieżkę do folderu players!
$dirvip = 'c:\\YurOTS\\data\\vip'; // podajemy tutaj ścieżkę do folderu vip!


//----------------------------- All vocations ----------------------------------
$lvl = '10'; 	// poczatkowy lvl kazdej z profesji
$exp = '9300';	// poczatkowy exp (musi sie zgadzac z lvl)
$cap = '300';	// poczatkowy cap, czyli waga

// spawn place
$spawnx = '160'; // pozycja x zaraz po zalogowaniu sie na konto - szerokosc
$spawny = '54'; // pozycja y zaraz po zalogowaniu sie na konto - dlugosc
$spawnz = '7'; // pozycja z zaraz po zalogowaniu sie na konto - poziom, 7 - normal

// temple
$templex = '160'; // pozycja x - gdy padniesz, gdzie masz sie zalogowac - szerokosc
$templey = '54'; // pozycja y - gdy padniesz, gdzie masz sie zalogowac - dlugosc
$templez = '7'; // pozycja z - gdy padniesz, gdzie masz sie zalogowac - poziom, 7 - normal

// tego nie zmieniac!
if (!defined('MALE')) define('MALE', 1);
if (!defined('FEMALE')) define('FEMALE', 0);
if (!defined('SORC')) define('SORC', 1);
if (!defined('DRUID')) define('DRUID', 2);
if (!defined('PALADIN')) define('PALADIN', 3);
if (!defined('KNIGHT')) define('KNIGHT', 4);

//-------------------------------- Sorcerer ------------------------------------
// Wyglad sorcerera
$look[SORC][MALE] = '130';
$look[SORC][FEMALE] = '138';

// HP, mana, magic level
$health[SORC] = '195'; // ile HP na poczatek dla sorcerera
$mana[SORC] = '95'; // ile many na poczatek dla sorcerera
$mlvl[SORC] = '30'; // ktory mlv na poczatek dla sorcerera

// Skille:          fist,club,sword,axe,dist,shld,fish
$skill[SORC] = array(10,  10,  10,  10,  10,  15,  10);

// Eq:               helm, amul, bp,  armor, rght, left, legs, boot, ring, ammo
$equip[SORC] = array(2490, 2129, 1988, 2463, 2423, 2525, 2468, 2643, 2164, 0);

// Backpack:
$bp[SORC] = '<item id="2152" count="2"/><item id="2311" count="10"/>';

//--------------------------------- Druid --------------------------------------
// Wyglad druida
$look[DRUID][MALE] = '130';
$look[DRUID][FEMALE] = '138';

// HP, mana, magic level
$health[DRUID] = '195'; // ile HP na poczatek dla druida
$mana[DRUID] = '95'; // ile many na poczatek dla druida
$mlvl[DRUID] = '30'; // ktory mlv na poczatek dla druida

// Skille:           fist,club,sword,axe,dist,shld,fish
$skill[DRUID] = array(10,  10,  10,  10,  10,  15,  10);

// Eq:                helm, amul, bp,  armor, rght, left, legs, boot, ring, ammo
$equip[DRUID] = array(2490, 2129, 1988, 2463, 2423, 2525, 2468, 2643, 2164, 0);

// Backpack:
$bp[DRUID] = '<item id="2152" count="2"/><item id="2311" count="10"/>';

//-------------------------------- Paladin -------------------------------------
// Wyglad paladyna
$look[PALADIN][MALE] = '129';
$look[PALADIN][FEMALE] = '137';

// HP, mana, magic level
$health[PALADIN] = '205'; // ile HP na poczatek dla paladyna
$mana[PALADIN] = '65';  // ile many na poczatek dla paladyna
$mlvl[PALADIN] = '12'; // ktory mlv na poczatek dla paladyna

// Skille:             fist,club,sword,axe,dist,shld,fish
$skill[PALADIN] = array(10,  10,  10,  10,  71,  41,  10);

// Eq:                  helm, amul, bp,  armor, rght, left, legs, boot, ring, ammo
$equip[PALADIN] = array(2490, 2129, 1988, 2463, 2455,     0, 2468, 2643, 2164, 0);

// Backpack:
$bp[PALADIN] = '<item id="2152" count="2"/><item id="2543" count="10"/>';

//--------------------------------- Knight -------------------------------------
// Wyglad knighta
$look[KNIGHT][MALE] = '131';
$look[KNIGHT][FEMALE] = '139';

// HP, mana, magic level
$health[KNIGHT] = '215'; // ile HP na poczatek dla knighta
$mana[KNIGHT] = '45'; // ile many na poczatek dla knighta
$mlvl[KNIGHT] = '4'; // ktory mlv na poczatek dla knighta

// Skille:            fist,club,sword,axe,dist,shld,fish
$skill[KNIGHT] = array(10,  71,  71,  71,  10,  71,  10);

// Eq:                 helm, amul, bp,  armor, rght, left, legs, boot, ring, ammo
$equip[KNIGHT] = array(2490, 2129, 1988, 2463, 2423,  2525, 2468, 2643, 2164, 0);

// Backpack:
$bp[KNIGHT] = '<item id="2152" count="2"/><item id="2311" count="3"/>';
?>


Wyżej macie opisane co to wszystko oznacza. Skonfigurujcie to według własnych uznań. Jak już skonfigurowaliśmy to zapisujemy i wychodzimy. Wchodzimy na stronę z naszym acc makerem i próbujemy stworzyć postać. Jeśli wszystko dobrze zrobiliśmy, powinniśmy otrzymać komunikat o poprawnym stworzeniu postaci. Coś w stylu "Congratulations, your account has been created!". Taki lub podobny komunikat oznacza, że konto oraz postać zostało poprawnie stworzone. No ok, w takim razie sprawdzamy. Włączamy silnik oraz Tibię i się logujemy na wcześniej stworzone konto. Powinniśmy się poprawnie zalogować na serwer.

Dodatkowo możemy to sprawdzić w folderach accounts oraz players.

Dla pewności dobrze by było jakby sprawdził to nasz kolega. W tym celu podajemy mu nasz adres IP i mówimy, żeby wpisał go w przeglądarkę. Następnie wypełnił wszystkie pola w acc makerze i po poprawnym utworzeniu nowego konta spróbował się zalogować na serwer.

Jeśli wszystko działa poprawnie, możemy się cieszyć z account makera :).

8. Poznajemy bliżej nasz silnik.

W tym rozdziale dowiemy się nieco więcej o naszym silniku. Dowiemy się jak konfigurować podstawowe rzeczy, zapoznamy się bliżej z plikami graczy oraz poznamy budowę niektórych plików.

- zapoznajemy się z plikiem config.lua.

Plik config.lua, jest jednym z największych plików pod względem możliwości. Możemy tam edytować bardzo wiele rzeczy, np. takich jak exp, mlv, skille, typ świata i całe mnóstwo innych rzeczy.

Musimy jednak uważać edytując ten plik, gdyż jedno usunięcie np. kropki czy średnika może spowodować błąd, przez który nasz silnik się nie włączy.

Niżej umieszczony macie cały plik config.lua, z dokładnym jego opisem.

---------------------------- OTServ configuration ------------------------------

-- datadir
datadir = "data/" -- sciezka do katalogu data.

-- sets what map to load
map = "data/world/test.otbm" -- sciezka do folderu z mapa.

-- OTBM for binary, SQL for SQL map, XML for OTX maps
mapkind = "OTBM" -- format mapy, tego radze nie ruszac.

-- SQL for acc/player info from SQL, XML for acc/player info from XML
sourcedata = "XML" - tego nie ruszamy.

-- the message the player gets when he logs in
loginmsg = "Zapraszamy wszystkich graczy na forum tibiacenter.net.pl! " -- wiadomosc po zalogowaniu na postac.

-- the port otserv listens on
port = "7171" -- port serwera (domyslnie 7171).

-- name of our server
servername = "TibiaCenter" -- nazwa serwera.

-- name of the owner of our server
ownername = "Ramza" -- nick administratora serwisu.

-- email of the owner of our server
owneremail = "ramza91@o2.pl" -- email administratora serwisu.

-- the url for more server info
url = "tibiacenter.net.pl" -- strona serwera.

-- the location of the server
location = "Poland" -- lokalizacja.

-- the ip the server should redirect too
ip = "82.178.63.72" -- ip serwera.

-- The messagebox you sometimes get before you choose characters
motd = "Witaj na serwerze TibiaCenter! Zyczymy przyjemnej gry!" -- wiadomosc po zalogowaniu, ale przed wyborem postaci.
motdnum="0"

-- use md5 passwords for accounts, yes/no
md5passwords = "no" -- to zostawiamy.

-- world type. options: pvp, no-pvp, pvp-enforced
worldtype = "pvp" - typ swiata.

-- max number of players allowed
maxplayers = "30" -- maksymalna ilosc graczy na serwerze.

-- exhausted time in ms (1000 = 1sec)
exhausted = 1000 -- exhausted, inaczej mowiac odpoczynek.

-- exhaustion time for healing spells (1000 = 1sec)
exhaustedheal = 1000 -- czas odpoczynku po rzuceniu czaru.

-- how many ms to add if the player is already exhausted and tries to cast a spell (1000 = 1sec)
exhaustedadd = 1000 -- czas, po ktorym gracz moze rzucic nowy czar (jesli wczesniej sie zmeczyl).

-- how long does the player has to stay out of fight to get pz unlocked in ms (1000 = 1sec)
pzlocked = 10*1000 -- po jakim czasie gracz moze wejsc w strefe PZ (po ataku innego gracza)

-- allow multiple logins of the same char
allowclones = 0 -- czy na jedna postac moze zalogowac sie pare osob.

-- vocation names
vocations = {"a Mage", "a Druid", "a Palladin", "a Knight"}
promoted_vocations = {"an Elementalist", "an Elder Druid", "an Archer", "a Warrior"}


--- SQL part
sql_host = "localhost" -- zostawiamy.
sql_user = "root" -- zostawiamy.
sql_pass = "" -- zostawiamy.
sql_db   = "otserv" -- zostawiamy.


--- SQL MAP part
sqlmap = "test_map" -- zostawiamy.
map_host = "localhost" -- zostawiamy.
map_user = "root" -- zostawiamy.
map_pass = "" -- zostawiamy.
map_db   = "" -- zostawiamy.

------------------------- YurOTS basic configuration ---------------------------

-- name of your world (seen on the character list when logging in)
worldname = "TCenteria" -- nazwa swiata, bedzie wyswietlana przy wyborze postaci.

-- how often do server saves it's state (0 = off, 5 = 5min, 60 = hour)
autosave = 10 -- po jakim czasie ma sie robic automatyczny save serwera.

-- do you want to enable cap system? (yes/no)
capsystem = "yes" -- cap system wlaczony/wylaczony.

-- do you want players to learn spells before they can use them? (yes/no)
learnspells = "no" -- czy gracze musza uczyc sie czarow.

-- do you want to give premium account to all players? (yes/no)
freepremmy = "no" -- czy jest darmowe premium account.

-- do you want premium players to wait in queue as others? (yes/no)
queuepremmy = "no" -- tego nie wiem sam.

-- how much % of {exp, mana, skill, eq, bp} do you lose when dying
diepercent = {"7", "7", "7", "7", "100"} -- szansa w procentach na utrate rzeczy w przypadku smierci.

-- how many summons player can have
maxsummons = 2 -- maksymalna ilosc summonow.

-- do you want to give summons for all vocations? (yes/no)
summonsallvoc = "no" -- czy wszystkie profesje moga miec summony.

-- chance of losing a spear when shot (0 - none lost, 100000 - all lost)
spearlosechance = 50000 -- szansa na rozwalenie spearu.

-- anti-afk - maximum idle time to kick player (1 = 1min)
kicktime = 15 -- po jakim czasie gracz ma zostac wyrzucony z serwera (jak nic nie robi).

-- maximum number of items player can keep in his/her depot
maxdepotitems = 600 -- maksymalna ilosc rzeczy w depo.

-- maximum number of items on a house tile (including those in containers)
maxhousetileitems = 50 -- maksymalna ilosc rzeczy w domku na jednej kratce.

-- how much death entries are saved in players file (old are deleted)
maxdeathentries = 2 -- to zostawiamy.

-- mana consumend by {snakebite, moonlight, volcanic, quagmire, tempest, crystal} rod
rodmana = {"2", "3", "5", "8", "13", "18"} -- ile many ma zuzywac rozdzka (rod).

-- mana consumed by wand of {vortex, dragonbreath, plague, cosmic energy, inferno, sprite}
wandmana = {"2", "3", "5", "8", "13", "18"} -- ile many ma zuzywac rozdzka (wand).

-- shooting range of {snakebite, moonlight, volcanic, quagmire, tempest, crystal} rod
rodrange = {"4", "3", "2", "1", "3", "1"} -- zasieg rozdzek (rods) liczony w kratkach.

-- shooting range of  wand of {vortex, dragonbreath, plague, cosmic energy, inferno, sprite}
wandrange = {"4", "3", "2", "1", "3", "1"} -- zasieg rozdzek (wands) liczony w kratkach.

-- damage of burst arrows blast
-- default is from (1*lvl+5*mlvl)*0.24 to (1*lvl+5*mlvl)*0.55
burstarrowdmg = {"1.0", "5.0", "0.24", "0.55"} -- sila burst arrows.

--------------------------- Multipliers and gains ------------------------------

-- experience multiplier (how much faster you got exp from monsters)
expmul = 5 -- ile razy ma byc wiekszy exp niz na rl tibii.

-- experience multiplier for pvp-enforced (how much faster you got exp from players)
expmulpvp = 2 -- ile razy ma byc wiekszy exp niz w rl tibii, za zabicie postaci (w przypadku pvp-enforced).

-- skill multipliers: 1 - rl tibia, 10 - ten times faster etc. {no-voc, sorcerer, druid, paladin, knight}
weaponmul = {"1", "1", "1", "1", "10"}
distmul = {"1", "1", "1", "10", "1"}
shieldmul = {"1", "1", "1", "9", "13"}
manamul = {"1", "2", "2", "2", "2"} -- o ile szybciej maja rosnac skille od rl tibii.

-- how much points of life,mana,cap do you get when advancing {no-voc, sorcerer, druid, paladin, knight}
capgain = {"10", "15", "15", "20", "25"} -- przyrost capa za zdobycie lvla.
managain = {"1", "25", "25", "20", "5"} -- przyrost many za zdobycie lvla.
hpgain = {"5", "5", "5", "15", "25"} -- przyrost hp za zdobycie lvla.

-- how much faster do you recovery life,mana after eating food (1 - rl tibia)
healthtickmul = 100 -- po ile ma sie odnawiac zycie (hp) po zjedzeniu czegos.
manatickmul = 100 -- po ile ma sie odnawiac mana po zjedzeniu czegos.

-------------------------------- Skull system ----------------------------------

-- how many unjustified kills to get a red skull
redunjust = 3 -- ile zabic, zeby miec red skulla.

-- how many unjustified kills to get banned
banunjust = 7 -- ile trzeba zabic graczy, zeby otrzymac bana.

-- how long do you have white skull after attacking player (1 = 1min)
hittime = 1 -- czas trwania bialej czaski, liczony w minutach. (w przypadku ataku innego gracza)

-- how long do you have white skull after killing player (1 = 1min)
whitetime = 15 -- po ile minutach ma znikac biala czaska, w przypadku zabicia innego gracza.

-- how long do you have red skull (1 = 1min)
redtime = 4*60 -- jak dlugo ma trwac redskull.

-- how long do you have to wait to lose 1 unjustified kill (1 = 1min)
fragtime = 3*60 -- jak dlugo trzeba czekac na odbanowanie postaci.

------------------------------ GM access rights --------------------------------

-- access to walk into houses and open house doors
accesshouse = 2 -- to zostawiamy.

-- access to login without waiting in the queue or when server is closed
accessenter = 1 -- to zostawiamy.

-- access to ignore damage, exhaustion, cap limit and be ignored by monsters
accessprotect = 2 - to zostawiamy.

-- access to broadcast messages and talk in colors (#c blabla - in public channels)
accesstalk = 1 -- to zostawiamy.

-- access to move distant items from/to distant locations
accessremote = 2 - to zostawiamy.

-- access to see id and position of the item you are looking at
accesslook = 3 - to zostawiamy.

--ctry+y
accessctrly = 3 - to zostawiamy.


------------------------------ Palladineq addons --------------------------------

-- Life Ring Configuration
LifeRingHealth = "125" -- po ile ma sie odnawiac zycie (hp) jak masz na sobie life ring.
LifeRingMana = "125" -- po ile ma sie odnawiac mana, jak masz na sobie life ring.

-- ROH Configuration
RoHHealth = "200" -- po ile ma sie odnawiac zycie, jak masz na sobie ring of healing.
RoHMana = "200" -- po ile ma sie odnawiac mana, jak masz na sobie ring of healing.

-- house price for 1 sqm
priceforsqm = 2000 -- cena 1 kratki domku.

-- max houses for player
maxhouses = 1 -- maksymalna ilosc domkow na jednego gracza.

-- Level to buy house using command !buyhouse
buyhouselvl = 75 -- wymagany lvl do kupna domku.

-- !buyhouse enabled?
buyhouse = "yes" -- czy komenda !buyhouse ma byc wlaczona czy tez nie.


--Dystans po ktorym potwor ma znikac - The Chaos
dist = 20 -- jak wyzej.

-- kolorowy exp
--DARKBLUE  = 2
--RED       = 180
--ORANGE    = 199
--GRAY      = 121
--GREEN     = 84
--LIME      = 102
--YELLOW    = 169
--LIGHTBLUE = 71

kolor1 = 71

-- BAN za PK - w dniach.
pkbandays = 3

-- fast attack
fast = 250 -- szybkosc fast attacku.

-- first attack
first = 250 -- szybkosc first attaku. (najlepiej zostawic)

-- Hity GMa
gmhit = 100 -- po ile gamemaster ma odbierac energii.

-- Additional server comments (Viewed when a player types !info) (To start a new line type \n)

-- Text pokazujacy sie w glownym okienku komendy !info
othercomments = "\n\nPowiedz !komendy aby zobaczyc jakich komend mozesz uzywac"

-- Text pokazujacy sie w okienku !premium
infopremium = "Kazdy gracz ma premium.."

-- Text pokazujacy sie w okienku !komendy
komendy = "\n!premium - Informacje o koncie premium\n!info - Ogolne informacje na temat OTSa\n!domki - Informacje jak zakupic domek oraz komendy potrzebne do korzystania z domku.\n!tutor - Informacje o Tutorach, Senior tutorach, GMach.\n!gildie - Informacje jak zarzadzac gildia.\n!buypremmy aby kupic premium.\n!buypromote aby kupic promocje"

-- Text pokazujacy sie w okienku !domki
domki = "Komendy do Domkow\n!buyhouse - Ta komenda mozna zakupic domek stojac przed drzwiami.\nCena domku podana na drzwiach.\nAleta som - Wpisz w okienko wspolwlasciciela domku.\nAleta gom - Komenda przy pomocy ktorej mozna zmienic ownera domku lub go sprzedac.\nUWAGA!! wypisujac sie z domku w ten sposob nie otrzymuje sie pieniedzy za domek chyab ze ktos nam zaplaci.\naleta grav - Komenda sluzaca do uwzglednienia osob mogacych otwierac drzwi domku.\naleta sio - Komenda umozliwiajaca wchodzenie do domku innym.\nNIE MOGA oni otwierac drzwi."

-- Text pokazujacy sie w okienku !gildie
gildie = "Komendy u Guild Mastera\n\nfound - zalozenie nowej gildi\nPozniej podaje sie nazwe gildi (np Epoka Lodowcowa :P)\n Po podaniu nazwy podaje sie Range (mozna np wpisac Leader)\n\nAby zmienic tytul trzeba powiedziec Title\nPozniej podac nick osoby ktorej sie zmienia\nPozniej wpisac tytul (np Niszczyciel)\n\nAby wykopac kogos z gildi wpisz Kick\nA pozniej nick osoby ktora wyrzucasz\n\nAby samemu opuscic gildie nalezy napisac Leave\nYes\n\nAby przekazac Vice Lidera gildi komus wpisz Vice\nI nick osoby na ktora przypisujesz."

-- Text pokazujacy sie w okienku !tutor
tutor = "Tutor:\nJest normalnym graczem, moze zabijac, i moze normalnie expic. Posiada jednak pare obowiazkow.\nMusi od czasu do czasu robic czyszczenie, Kickowac AFKujacych, i pomagac graczom.\n\nSenior Tutor:\nDo seniora mozna zwracac sie z wiekszymi problemami.\nSenior Tutor NIE MOZE zabijac. Kazde takie przewinienie bedize karane np. utrata rangi.\nSenior moze dawac bany i bany na IP.\n\nGameMaster:\n Jedna z wyzszych jednostek na tym serverze.\nPosiada wiekszosc mozliwosci GMa.\n\nGod:\nInaczej Hoster.\nZastrzega sobie prawo do wylaczania servera, zmiany ilosci graczy online, zmianom pvp."


--!buypremmy cena
pricepremmy = 30000 -- cena premium.

--!buypremmy czas w godzinach
plushours = 48 -- czas waznosci premium po jego wykupieniu.

--!buypromote cena
pricepromote = 20000 -- cena promocji.


Mam nadzieję, że wszystko jest w miarę jasno wytłumaczone i, że z tym problemu nie będzie.

- opisy folderów, co gdzie i jak.

Jak już wiecie, w folderze data jest sporo innych folderów. Są one jak najbardziej potrzebne, każdy z nich ma określone zadanie. Postaram się Wam opisać, krótko zwięźle i na temat, za co każdy z tych folderów jest odpowiedzialny.

Folder accounts: już wcześniej było tłumaczone, ale dla przypomnienia napiszę jeszcze raz. Jest to folder, w którym są przechowywane konta graczy, gamemasterów oraz tutorów - czyli wszystkich. Konta postaci są zapisywane w plikach z rozszerzeniem .xml. W tychże plikach możemy zmienić własnoręcznie hasła do każdego konta, ilość dni premium (pacc), a także możemy zrobić, że na jednym koncie będzie wiele postaci.

Folder actions: w tym folderze znajdują się dwa inne podfoldery. Ogólnie folder jest odpowiedzialny za akcję serwera. Dobrym przykładem będzie np. łopata, przecież tak sama z siebie nie działa, żeby działała musi mieć do tego swój skrypt. Znajdziemy tam też wiele innych ważnych i ciekawych skryptów. Jeśli nam czegoś brakuje, zawsze możemy dodać to sami. Do tej pory powstało setki przeróżnych skryptów, np. manaruna. Dział ze skryptami actions można znaleźć tutaj.

Folder comments: tego nie ma w większości silników, więc nie opisuję.

Folder deleted: tego nie ma w większości silników, więc nie opisuję.

Folder houses: jak sama nazwa wskazuje, ten folder jest odpowiedzialny za domki na serwerze. W środku znajdziemy pliki domków. Każdy jeden plik odpowiada za jeden domek. Możemy tam ustalać właścicieli domków, ich wielkości oraz pozycje.

Folder items: tutaj chyba nie trzeba zbytnio tłumaczyć, bo sama nazwa mówi za siebie. Ale dla tych mniej inteligentnych, w tym folderze możemy zarządzać itemami. Możemy zmieniać ID itemów, oraz budować do nich skrypty. Początkującym radzę zostawić to w spokoju.

Folder monsters: monsters, czyli potwory. W tym folderze znajdują się potwory, które znajdziemy na serwerze. Możemy je dowolnie edytować, zmieniać ich nazwy, ilość expa, obrażenia, czy nawet ich odgłosy. Możemy także dodawać nowe, własne potwory, z którymi będzie mógł stawić czoła każdy gracz na serwerze.

Folder npc: jak sama nazwa wskazuje, jest to folder odpowiedzialny za boty komputerowe, u których to możemy coś kupić, sprzedać, założyć gildię, czy nawet gdzieś popłynąć.

Folder players: już wcześniej było tłumaczone, ale dla przypomnienia napiszę jeszcze raz. A więc, folder players jest odpowiedzialny za postacie graczy, co oznacza, że możemy tam wszystko zmieniać w każdej postaci. Możemy zmieniać lvle, skille, mlvle, usuwać red skulle i wiele więcej.

Folder spells: czyli czary. Możemy dodawać/zmieniać tam nowe czary, a stare edytować według swoich upodobań. Oprócz tego, w tym folderze możemy zarządzać także runami, które znajdują się na serwerze.

Folder vip: do każdego utworzonego konta poprzez acc maker, tworzy się plik z numerem konta. Otwierając byle jakie konto w tym folderze, zobaczymy listę osób VIP, którą zawiera konto.

Folder world: inaczej mówiąc "świat" - czyli nasza mapa, na której możemy grać. W tym folderze, oprócz mapy, zobaczymy także inne pliki dotyczące mapy, np. npc.xml, w którym to umieszczamy pozycje danego NPC, a wtedy pojawia się on na mapie w konkretnym miejscu.

- tworzymy pierwszy quest.

Quest - czyli zadanie, za które otrzymujemy nagrodę.
Poniżej macie przedstawiony mini poradnik jak zrobić zwykły quest typu "zabijasz potwory, otwierasz skrzynkę, zgarniasz nagrody". Od razu zaznaczam, że nie jest to trudna rzecz.

1. Zaczynamy od włączenia map edytora.
2. W wybranym przez nas miejscu, stawiamy skrzynkę (id: 1740).
3. Klikamy prawym przyciskiem myszy i wybieramy "Properties".
4. W miejscu "Unique ID" wpisujemy ID nagrody.
5. Wchodzimy do data/actions. Otwieramy teraz plik actions.xml i na końcu dodajemy:

<action itemid="ID_ITEMU" script="SKRYPT.lua" />


Gdzie w miejsce "SKRYPT" wpisujemy jakąś nazwę, np. quest1.

6. Następnie wchodzimy do data/actions/scripts i tworzymy tam plik quest1, a w nim:

function onUse(cid, item, frompos, item2, topos)
	prize = item.uid

	if prize > 1000 and prize < 5000 then
		queststatus = getPlayerStorageValue(cid,prize)

		if queststatus == -1 then
			doPlayerSendTextMessage(cid,22,'You have found a ' .. getItemName(prize) .. '.')
			doPlayerAddItem(cid,prize,1)
			setPlayerStorageValue(cid,prize,1)
		else
			doPlayerSendTextMessage(cid,22,"It is empty.")
		end

		return 1
	else
		return 0
	end
end


7. Logujemy się na postać i sprawdzamy czy wszystko działa.

U mnie w map edytorze wygląda to tak: (wybrałem sobie za nagrodę magic sword)

Dołączona grafika

- teleporty, jak je zrobić.

Jak wiemy, teleporty przenoszą nas z jednego miejsca w drugie, określone przez nas.
W krótkim poradniku, zamieszczonym niżej, postaram się omówić krok po kroku jak zrobić teleport.

1. Włączamy map edytor.
2. Stawiamy na danej kratce teleport (id: 1387).
3. Naciskamy na niego prawym przyciskiem myszki i wybieramy "Properties".
4. Podajemy współrzędne mapy, do których zostanie prze teleportowany gracz po wejściu w teleport.
5. Zapisujemy mapę i sprawdzamy czy działa.

- robimy pierwszego, własnego potwora!

Jeśli zawsze marzyłeś o własnym potworze, z własnym lootem i odgłosami, zapraszam do przeczytania poniższego poradnika. Nie jest to trudna i pracochłonna czynność, raczej każdy powinien dać radę.

1. Wchodzimy do folderu, w którym są potwory (monsters), czyli: data/monsters. Szukamy pliku monsters.xml i go otwieramy za pomocą notatnika i dodajemy pod:

<?xml version="1.0"?>
<monsters>


coś takiego:

<monster name="nazwa_potwora" file="nazwa_potwora.xml" />


Gdzie w miejscu "nazwa_potwora" nadajemy imię naszemu nowemu potworowi. Ja nazwałem go "kyle".

2. Otwieramy teraz byle jaki plik, ja wybrałem demon.xml i kopiujemy całą jego zawartość.
3. Tworzymy nowy plik o wcześniej wymyślonej nazwie. U mnie jest to "kyle.xml". Wklejamy do niego wcześniej skopiowaną zawartość.
4. Zaczynamy edycję potwora. Niżej macie wyjaśnione co za co odpowiada.

<?xml version="1.0"?>
 <monster name="NAZWA_POTWORA" level="LEVEL_POTWORA" maglevel="MLV_POTWORA" experience="ILOSC_EXPA" pushable="0" armor="ZBROJA" defense="OBRONA" canpushitems="1" staticattack="40" changetarget="200" speed="SZYBKOSC POTWORA">
 	<health now="ILOSC ZYCIA" max="MAKS. ILOSC ZYCIA"/>
 	<look type="35" head="20" body="30" legs="40" feet="50" corpse="2916"/> -- wygląd.
 	<combat targetdistance="1" runonhealth="0"/>
       <blood color="199" effect="0" splash="255"/>
 
 <attacks>
 	<attack type="melee" mindamage="260" maxdamage="840" probability="100"/> - typ ataku
 	<attack type="instant" name="exura" cycleticks="4500" probability="50"/> - typ ataku
 	<attack type="rune" name="firefield" cycleticks="3000" probability="40"/> - typ ataku
 	<attack type="instant" name="d exevo gran vis lux" exhaustion="500" cycleticks="7000" probability="60"/> - typ ataku
 	<attack type="instant" name="demon_manadrain" exhaustion="100" cycleticks="4000" probability="30"/> - typ ataku
 	<attack type="rune" name="demon fireball" exhaustion="500" cycleticks="3500" probability="60"/>
 </attacks>
 
 <defenses>
 	<defense immunity="energy"/> - na co odporny
 	<defense immunity="fire"/> - na co odporny
 	<defense immunity="poison"/> - na co odporny
 	<defense immunity="paralyze"/> - na co odporny
 	<defense immunity="invisible"/> - na co odporny
 	<defense immunity="drunk"/> - na co odporny
 </defenses>
 
 <voices>
 	<voice sentence="tibiacenter.net.pl"/> - odgłosy potwora
 	<voice sentence="Your resistance is futile!"/> - odgłosy potwora
 	<voice sentence="MWA HA HA HA HA!"/> - odgłosy potwora
 	<voice sentence="I SMELLLL FEARRR!"/> - odgłosy potwora
 </voices>
 
 <loot> - loot z potwora, item id - wiadomo, countmax - "ile maksymalnie", chance - szansa, ze przedmiot wypadnie
  	<item id="2148" countmax="100" chance1="100000" chancemax="0"/> - loot z potwora
  	<item id="2148" countmax="25" chance1="100000" chancemax="0"/> - loot z potwora
  	<item id="2393" chance="1700"/> - loot z potwora
  	<item id="2514" chance="800"/> - loot z potwora
  	<item id="2432" chance="2038"/> - loot z potwora
  	<item id="2472" chance="600"/> - loot z potwora
 
  	<item id="1987" chance="33333"> - loot z potwora
  	<inside> - w srodku bagu
   	<item id="2678" countmax="3" chance1="10000" chancemax="0"/> - loot z potwora
  	<item id="2148" countmax="100" chance1="100000" chancemax="0"/> - loot z potwora
  	<item id="2151" countmax="6" chance1="14000" chancemax="0"/> - loot z potwora
  	<item id="2462" chance="2055"/> - loot z potwora
 	<item id="2149" countmax="3" chance1="1428" chancemax="0"/> - loot z potwora
  	<item id="2171" chance="2333"/> - loot z potwora
  	<item id="2387" chance="6666"/> - loot z potwora
  	<item id="2470" chance="1200"/> - loot z potwora
  	<item id="2520" chance="1200"/> - loot z potwora
  	<item id="2418" chance="2033"/> - loot z potwora
  	<item id="2377" chance="2933"/> - loot z potwora
  	</inside>
  	</item>
 </loot>
 
 <summons maxSummons="2"> - maksymalna ilosc summonow
  	<summon name="Fire Elemental" chance="1333"/> - co potwor przywoluje oraz szansa, ze przywola
 </summons>
 
 </monster>


5. Zapisujemy plik i sprawdzamy czy działa.

Od teraz każdy będzie mógł stworzyć swojego niepowtarzalnego potwora!

- tworzymy własnego npc.

NPC - czyli tzw. "boty komputerowe". Dowiemy się teraz jak go zrobić, na co zwrócić uwagę. Zrobimy NPC - sprzedawcę, z którym będzie można dobić handlu, a będzie on sprzedawał Magic Swordy. Najlepiej i najjaśniej będzie jak przedstawię to w punktach. Tak więc zaczynajmy.

1. Tworzymy nowy plik w data/npc o nazwie ramza.xml.
2. Wklejamy do niego:

<?xml version="1.0"?>
<npc name="NAZWA NPC" script="data/npc/scripts/NAZWA NPC.lua" access="3">
 	<look type="129" head="76" body="114" legs="124" feet="86"/>
</npc>


Gdzie w miejscu "NAZWA NPC" wpisujemy nazwę naszego NPC, ja nazwałem go Ramza.

3. Wchodzimy teraz w data/npc/scripts i tworzymy nowy plik o nazwie ramza.lua.
4. Wklejamy do niego:

focus = 0
talk_start = 0
target = 0
following = false
attacking = false

function onThingMove(creature, thing, oldpos, oldstackpos)

end

function onCreatureAppear(creature)

end

function onCreatureDisappear(cid, pos)
  	if focus == cid then
          selfSay('Good bye then.')
          focus = 0
          talk_start = 0
  	end
end


function onCreatureTurn(creature)

end

function msgcontains(txt, str)
  	return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))
end


function onCreatureSay(cid, type, msg)

  	if (msgcontains(msg, 'hi') and focus == 0) and getDistanceToCreature(cid) < 4 then
		selfLook(cid)
  		selfSay('Hello ' .. creatureGetName(cid) .. '! I sell scarfs (1k) and aols (20k).')
  		focus = cid
  		talk_start = os.clock()

  	elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
  		selfSay('Sorry, ' .. creatureGetName(cid) .. '! I talk to you in a minute.')

  	elseif focus == cid then
		talk_start = os.clock()

		if msgcontains(msg, 'magic sword') then
			buy(cid,2400,1,500)
		elseif msgcontains(msg, 'magicsword') then
			buy(cid,2400,1,500)

		elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then
			selfSay('Good bye, ' .. creatureGetName(cid) .. '!')
			focus = 0
			talk_start = 0
		end
  	end
end


function onCreatureChangeOutfit(creature)
end
function onThink()
  	if (os.clock() - talk_start) > 30 then
  		if focus > 0 then
  			selfSay('Next Please...')
  		end
 		focus = 0
  	end
 	if focus ~= 0 then
 		if getDistanceToCreature(focus) > 5 then
 			selfSay('Good bye then.')
 			focus = 0
 		end
 	end
if focus == 0 then
cx, cy, cz = selfGetPosition()
randmove = math.random(1,35)
if randmove == 1 then
nx = cx + 1
end
if randmove == 2 then
nx = cx - 1
end
if randmove == 3 then
ny = cy + 1
end
if randmove == 4 then
ny = cy - 1
end
if randmove >= 5 then
nx = cx
ny = cy
end
moveToPosition(nx, ny, cz)
end
end


Warto zwrócić uwagę na te linijki:

if msgcontains(msg, 'magic sword') then
                 buy(cid,2400,1,500)
	     elseif msgcontains(msg, 'magicsword') then
	      buy(cid,2400,1,500)


Najłatwiej będzie to zrozumieć po Polsku, więc:
"Jeżeli ktoś napisze magic sword lub magicsword, zabierz mu 500gp, a daj item 2400 (magic sword) w ilości 1" - myślę, że tak łatwiej będzie Wam zrozumieć.

5. Zmieniamy skrypt według własnych uznań i zapisujemy.
6. W celu wstawienia NPC na mapę, wchodzimy w data/world/npc.xml i dodajemy taką linijkę:

Cytat

<npc name="NAZWA" x="POSX" y="POSY" z="POSZ"/>


Gdzie w miejscu "NAZWA" wpisujemy nazwę naszego NPC.
W miejscu "POSX, POSY, POSZ" wpisujemy jego położenie (x, y, z).

7. Zapisujemy i sprawdzamy czy działa.

Nie śmiem twierdzić, że po tym poradniku będziecie umieli tworzyć świetnych NPC. Ten poradnik ma jedynie pokazać Wam o co w tym wszystkim chodzi. I tak myślę, że wielu osobom się to przyda.

9. Podstawowe informacje związane z grą.

Rozdział ten przybliży nam bardziej podstawy zarządzania serwerem.

- dostępne komendy dla GameMastera.

Czym byłby GameMaster bez możliwości używania komend typu "idź do gracza" czy "zbanuj gracza" lub innych? Postaram się objaśnić Wam do czego służą wszystkie komendy w kompilowane w silnik. Tychże komend możemy używać w grze, oczywiście jeśli jesteśmy gamemasterami.

Niżej macie umieszczoną listę komend wraz z ich opisem, dostępnych w większości silników.

/a 5 - skok do przodu o 5 kratek, gdzie "5" oznacza także ilość kratek.
/B msg - wiadomość do wszystkich, pojawi się na środku ekranu w kolorze czerwonym.
/b nick - banuje IP gracza.
/ban nick - ban postaci.
/c nick - teleport gracza do siebie.
/clean - usuwa wszystkie śmieci leżące na ziemi (itemy w domkach zostają).
/i id_itemu ilość - tworzenie itemów.
/m name - komenda, dzięki której obok nas pojawi się wybrany potwór.
/summon name - stawianie summona (nie atakuje innych, pełni funkcję normalnego summona).
/t - teleport do świątyni w głównym mieście.
/goto nick - teleport do gracza.
/info nick - informacje o graczu.
/closeserver - serwer dostępny tylko dla gamemasterów.
/openserver - otwieramy serwer dla wszystkich.
/getonline - pokazuje wszystkich graczy, a także ich levele.
/kick nick - kicknięcie gracza.
/up - teleport poziom wyżej.
/down - teleport poziom niżej.
/invisible - gamemaster niewidoczny dla zwykłych graczy. Ponowne wpisanie komendy robi to samo, tylko w drugą stronę.
/max x - komenda ta ustawia maksymalną ilość graczy.
/pos - pokazuje moje położenie.
/premmy 5 nick - daj graczowi 5 godzin premii, gdzie "5" oznacza ilość godzin.
/promote nick - daj graczowi promocję.
/pvp 0, 1, 2 - ustaw pvp na: brak=0, zwykłe=1, enforced=2.
/owner nick - zmień właściciela domku, w którym stoisz.
/owner - usuń właściciela z domku, w którym stoisz.
/shutdown m - komenda wyłącza serwer po upływie "m" minut.
/s name - przywołuje NPC, gdzie "name" oznacza jego imię.
/save - wymuś zapis stanu serwera.
/send nick, x y z - przenieś gracza do podanych współrzędnych


Jeśli któraś z powyższych komend Ci nie działa, nie przejmuj się, po prostu nie ma jej w silniku.

- o GameMasterze słów kilka.

GM (gamemaster) - najwyższa możliwa ranga na serwerze. GM posiada access równy 5, co oznacza, taka osoba posiada władzę absolutną, może zrobić wszystko co tylko zechce. Pamiętajmy, że potwory nie atakują graczy z accessem równym 5. Piszę o tym, bo często ludzie tego nie wiedzą, a później powstają bezsensowne tematy.. Jeśli jesteś GM, pamiętaj, że musisz pomagać innym, nie możesz bez powodu ich banować, itd. Bądź rozsądny, szanuj innych, a na pewno będziesz ulubionym gamemasterem wielu graczy.

- czemu lagują mi potwory?

Często zadawane pytanie, szczególnie przez nowe osoby. Otóż, po każdym włączeniu serwera, musimy zmienić jego priorytet na "powyżej normalnego". Jak tego dokonać? Prosta sprawa! Naciskamy na klawiaturze kombinację klawiszy "ctrl + shift + del", powinno pokazać nam się okienko. Jest to menadżer zadań systemu. Na samej górze tego okienka mamy zakładkę "procesy" toteż wchodzimy w nią. Pojawi nam się lista. Wyszukujemy spośród niej nazwę naszego silnika, u mnie jest to "LoozikOTS.exe". Klikamy prawym przyciskiem myszki na nazwę silnika i wybieramy "Zmień priorytet", następnie wybieramy "powyżej normalnego". Wyskoczy nam małe okienko z ostrzeżeniem, naciskamy OK. Tak więc od teraz potwory nam nie lagują.

10. O mapach i ich właściwościach.

W tym rozdziale dowiesz się wszystkie o map edytorach.

- czym jest map edytor, do czego służy?

Map edytor jest to program, w którym możemy tworzyć mapy lub je edytować. Dzisiejsze map edytory są o wiele bogatsze w opcje niż kiedyś, co znacznie ułatwia w nich pracę. W map edytorze zrobimy nie tylko dobrą mapę, ale możemy także urozmaicić ją w domki, czy w niektórych miejscach zrobić protection zone, za pomocą jednego przycisku! W ME (map edytor) możemy także dodawać potwory, tworzyć questy, tzw. dzwi dostępne od któregoś lvlu i wiele innych rzeczy mniej lub bardziej potrzebnych.

- wybieramy i pobieramy map edytor.

Map edytorów dostępnych w sieci jest "tysiąc pięćset, dwa dziewięćset" albo jeszcze więcej. Najlepiej będzie sprawdzić jaki map edytor jest nam potrzebny. W tym wypadku odpalamy nasz silnik i po chwili naszym oczom powinno ukazać się coś w stylu "Map description: SimONE's Map Editor 0.4.480", oczywiście zależy to od pobranego silnika, ja akurat miałem coś takiego. Od razu rzuca nam się w oczy wersja map edytora, u mnie jest to "0.4.480", ale każdy może mieć inaczej. Przepisujemy wersję map edytora i używamy funkcji szukaj, dostępnej na naszym forum. Możemy także skorzystać z downloadu zamieszczonego na portalu. Po znalezieniu odpowiedniej wersji, pobieramy ją na nasz komputer.

- podstawowe pojęcia, wskazówki.

Wszystkie niezbędne informacje o map edytorze znajdziemy tutaj!

11. Jak i gdzie reklamować swój serwer?..

Na pewno każdy z Was chciałby, aby na serwerze grało jak najwięcej ludzi. Niektórzy nie wiedzą gdzie mogą reklamować swoje serwery, dlatego też postaram się Wam podpowiedzieć, gdzie możecie je dodawać.

- listy serwerów open tibia.

Najlepszym sposobem na reklamę jest dodanie serwera na listę ots. Takich list jest dość sporo, wystarczy w google wpisać "lista serwerów ots" i wyskoczy nam parę stron.

- serwisy poświęcone OT.

Następnym dobrym sposobem jest umieszczanie naszego serwera na forach, portalach, poświęconych open Tibii. W tym wypadku szukamy odpowiedniego działu i zakładamy nowy temat. W treści dajemy pełny opis serwera, zdjęcia, itd.. oczywiście podajemy również nasz adres IP.

Jest jeszcze wiele sposobów na reklamowanie ots'a, ale o tym to kiedy indziej.
U nas możesz tutaj zareklamować swój serwer!

12. Kilka przydatnych porad.

- jak mądrze zarządzać serwerem.

Najlepiej będzie jak przedstawię to w punktach.

1. Nie rozdawaj darmowych itemów.
2. Szanuj wszystkich graczy, bez wyjątków.
3. Rób często update-y mapy, silnika.
4. Organizuj konkursy, w których będzie można coś wygrać (mowa o itemach).
5. Nikogo nie banuj bez powodu.
6. Staraj się, żeby serwer był jak najczęściej online.

Wyżej wymienione podpunkty mają jedynie naprowadzić Was na dobrą drogę.

- najbardziej cenione serwery ots.

Zapewne Twoim pierwszym, publicznym serwerem będzie OTS z dużym expem, mapą znaną bardziej niż mapa RL. Ale dobra, też tak wyglądał mój pierwszy ots. Gracze cenią teraz w serwerach oryginalność, dużą, nową mapę, unikalne skrypty, ładnie wyglądający acc maker i co najważniejsze - ciekawą fabułę. Postarajcie się robić dużo ciekawych questów, nie róbcie zbyt wysokiego expa, stosujcie się do wyżej wymienionych rad. Do tego wszystkiego musimy być cierpliwi, bo wiadomo, że od tak nie będzie grało po 100+ ludzi.
Wszystko przychodzi z czasem.

- forum serwera.

Dodatkowo dla graczy możemy stworzyć forum, na którym to gracze będą mogli wymieniać się zdaniami, zamieszczać zdjęcia, komentować, itd. Takie forum jest świetną opcją dla graczy, bez zastanowienia polecam stworzyć takie forum, tym bardziej, że zakłada się je w 5 minut! No dobra, w tym celu wchodzimy tutaj i zakładamy nowe forum. Postępujemy zgodnie z wskazówkami zamieszczonymi na stronie. Po chwili będziemy mieli własne forum.

13. Zakończenie.

No to było by na tyle. Mam nadzieję, że komuś pomogłem i, że dzięki temu artykułowi ktoś postawi swój pierwszy serwer w życiu. Jeśli znajdziecie jakieś błędy, piszcie śmiało, będę wdzięczny.

14. Autorzy, podziękowania.

Autorem poradnika jest Ramza (tibiacenter.net.pl). Chciałbym bardzo podziękować wszystkim, którzy mi pomogli w pisaniu tego artykułu, a w szczególności Kyle'owi. Pozwalamy kopiować poradnik na inne fora, ale trzeba zawsze napisać kto jest jego autorem.
0

#2 Użytkownik nie jest zalogowany   Gervith Ikona

  • terrorysta
  • PipPipPipPipPipPip
  • Grupa Moderator
  • Postów 1341
  • Rejestracja 03-czerwiec 07
  • Gender:Male
  • Location:Stalowa Wola
  • Interests:Counter Strike 1.6

Napisano 30 styczeń 2010 - 22:49

ŚŚwietny poradink, obszerny i przejrzysty, aż mi przeglądarke zmuliło ;)
Nowy serwer w gladiatus, kliknij by się zarejestrować, przy okazji pomagając mi.
http://s21.gladiatus...c.php?uid=19658
0

#3 Użytkownik nie jest zalogowany   ziomix28 Ikona

  • Fan
  • PipPipPipPip
  • Grupa Użytkownicy
  • Postów 413
  • Rejestracja 25-marzec 08
  • Gender:Male

Napisano 31 styczeń 2010 - 11:38

@up

Jak masz komputer z średniowiecza to co się dziwisz?

@top

Poradnik bardzo dobry 10/10 ; ]
Żyjemy pod naciskiem więc jak szanować mamy system?
0

#4 Użytkownik nie jest zalogowany   Dramo Ikona

  • Call me the king.
  • PipPipPipPipPipPip
  • Grupa Zaawansowani
  • Postów 1101
  • Rejestracja 28-grudzień 06
  • Gender:Male

Napisano 31 styczeń 2010 - 11:53

Do 50 osób - procesor: 2,5 ghz, pamięć: 512 mb, internet: 2 mb/s.

Lol, jeżeli ja mam procesor 3,6ghz, pamięć 2gb a internet 10(mbit)/s czyli około 3mb/s to mogę 100 ludziom hostować :blink:

Mastah of Honera
LvL: || Skill: || Mlvl:
10 [x]    40 [x] |||    20/20 [x]    50/50 [x] |||   1 [x]     4 [x]
20 [x]     50 [ ] |||    30/30 [x]    60/60 [x] |||   2 [x]     5 [ ]
30 [x]    60 [ ] |||    40/40 [x]    70/70 [ ] |||   3 [x]      6 [ ]
0

#5 Użytkownik nie jest zalogowany   ramza2 Ikona

  • Użytkownik
  • PipPip
  • Grupa Użytkownicy
  • Postów 25
  • Rejestracja 30-styczeń 10

Napisano 31 styczeń 2010 - 15:56

Wyświetl postUżytkownik Dramo dnia 31 styczeń 2010 - 11:53 napisał

Lol, jeżeli ja mam procesor 3,6ghz, pamięć 2gb a internet 10(mbit)/s czyli około 3mb/s to mogę 100 ludziom hostować :blink:

możesz, powinno być dobrze.. poza tym napisałem, że jest to w przybliżeniu, w każdym przypadku może być inaczej.. nie tylko od tego to zależy..
0

#6 Użytkownik nie jest zalogowany   Turson Ikona

  • Demon
  • PipPipPipPipPipPip
  • Grupa Moderator
  • Postów 2446
  • Rejestracja 04-luty 07
  • Gender:Male

Napisano 31 styczeń 2010 - 20:02

Śmierdzi mi to reklamą Twojego forum.
NAJSZYBSZY HOSTING ZDJĘĆ!
JPGKI.PL

Dołączona grafika


Dołączona grafika
0

#7 Użytkownik nie jest zalogowany   ramza2 Ikona

  • Użytkownik
  • PipPip
  • Grupa Użytkownicy
  • Postów 25
  • Rejestracja 30-styczeń 10

Napisano 31 styczeń 2010 - 20:36

Wyświetl postUżytkownik Turson dnia 31 styczeń 2010 - 20:02 napisał

Śmierdzi mi to reklamą Twojego forum.


dlaczego? chyba mam prawo dodać oficjalny temat poradnika i jego autora, prawda?..
0

#8 Użytkownik nie jest zalogowany   ramza2 Ikona

  • Użytkownik
  • PipPip
  • Grupa Użytkownicy
  • Postów 25
  • Rejestracja 30-styczeń 10

Napisano 06 luty 2010 - 21:10

odświeżam.
0

#9 Użytkownik nie jest zalogowany   ramza2 Ikona

  • Użytkownik
  • PipPip
  • Grupa Użytkownicy
  • Postów 25
  • Rejestracja 30-styczeń 10

Napisano 08 luty 2010 - 18:49

komentujcie.. xd.
reload.
0

#10 Użytkownik nie jest zalogowany   tosiapl Ikona

  • Niezarejestrowany
  • PipPipPipPipPipPip
  • Grupa Zaawansowani
  • Postów 1000
  • Rejestracja 21-październik 07
  • Gender:Male
  • Location:Szczecinek

Napisano 09 luty 2010 - 00:53

Bardzo dobry poradnik, a ja dobrze się znam na 7.6 ^^
Tylko trochę przydługi, nie za dużo osób by wszystko przeczytało :P
0

#11 Użytkownik nie jest zalogowany   ramza2 Ikona

  • Użytkownik
  • PipPip
  • Grupa Użytkownicy
  • Postów 25
  • Rejestracja 30-styczeń 10

Napisano 09 luty 2010 - 01:31

dlatego też dodałem "Spis treści", aby każdy użytkownik mógł znaleźć potrzebne dla siebie informacje.
0

#12 Użytkownik nie jest zalogowany   ramza2 Ikona

  • Użytkownik
  • PipPip
  • Grupa Użytkownicy
  • Postów 25
  • Rejestracja 30-styczeń 10

Napisano 20 luty 2010 - 19:35

odświeżam.
0

#13 Użytkownik nie jest zalogowany   کe¤ τaτa Ikona

  • Użytkownik
  • PipPip
  • Grupa Użytkownicy
  • Postów 116
  • Rejestracja 14-marzec 09
  • Gender:Male
  • Interests:Po pierwsze...

Napisano 20 marzec 2010 - 16:13

Użytkownik któregoś dnia napisał że jesteście pojebani napisał


Usuńcie ten post, please ;D
Dołączona grafika
0

#14 Użytkownik nie jest zalogowany   Paula Ikona

  • Gość
  • Pip
  • Grupa Użytkownicy
  • Postów 1
  • Rejestracja 01-sierpień 10

Napisano 01 sierpień 2010 - 10:40

Ja zrobilam wszystko pieknie ale nie moge wejsc na server moze niewiem czemu prosze o szybka odp moje gg 24468977
0

Strona 1 z 1
  • Nie możesz napisać tematu
  • Nie możesz odpowiedzieć

Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych