Moderator
Dołączył: 09 Mar 2007
Posty: 55
Przeczytał: 0 tematów
Ostrzeżeń: 1/5
Skąd: CHOJNA
|
Wysłany: Pon 21:43, 12 Mar 2007 Temat postu: co to jest ots ? |
|
|
|
Co to jest open tibia server? Poradnik dla zielonych (7.6)
Zacznę od krótkiego wstępu, co to jest OTS? Ots jest to skrót od angielskiego wyrażenia Open Tibia Server (nie będę tu dosłownie tłumaczyć). Prosto mówiąc własny server Tibii w domciu . W tym artykule opiszę z grubsza OTS pod Tibię 7.6.
Na początku ściągamy YurOTS 0.9.4d (najłatwiej się nauczyć)(link tutaj ). Zaczynamy na początku od rozpakowania pliku i umieszczenia go w jednym katalogu. Jeżeli brakuje jakiegoś pliku.dll je z [link widoczny dla zalogowanych] , kopiujemy plik tibia.dat z katalogu tibii 7.6 (jeżeli go nie ma) do katalogu z otsem. Teraz zabieramy się do pracy. Otwieramy plik config.lua w notatniku. Wygląda on tak:
Cytat:
---------------------------- OTServ configuration ------------------------------
-- ścieżka do katalogu data
datadir = "data/"
-- ścieżka do mapy
map = "data/world/test.otbm"
-- OTBM for binary, SQL for SQL map, XML for OTX maps
mapkind = "OTBM"
-- SQL for acc/player info from SQL, XML for acc/player info from XML
sourcedata = "XML"
-- wiadomość, którą otrzymuje gracz po zalogowaniu się
loginmsg = "Welcome to YurOTS"
-- port na jakim serwer stoi
port = "7171"
-- nazwa serwera
servername = "YurOTS"
-- nick posiadacza serwera
ownername = "Yurez"
-- e-mail hostera
owneremail = ""
-- link do strony otsa
url = ""
-- położenia (kraj)
location = "Poland"
-- zewnętrzne ip (z [link widoczny dla zalogowanych] , nie z no-ip!)
ip = "127.0.0.1"
-- wiadomość, która wyskakuje przed wyborem postaci
motd = "Welcome to YurOTS"
motdnum="0"
-- szyfrowanie haseł md5 (nie tak ważne)
md5passwords = "no"
-- typ serwera: pvp, no-pvp, pvp-enforced
worldtype = "pvp"
-- limit graczy
maxplayers = "28"
-- exhausted time in ms (1000 = 1sec)
exhausted = 2000
-- exhaustion time dla czarów leczących(1000 = 1sec)
exhaustedheal = 1000
-- how many ms to add if the player is already exhausted and tries to cast a spell (1000 = 1sec)
exhaustedadd = 300
-- how long does the player has to stay out of fight to get pz unlocked in ms (1000 = 1sec)
pzlocked = 10*1000
-- zezwolenie na logowanie się na postać przez kilka osób równocześnie
allowclones = 0
-- nazwy profesji
vocations = {"a sorcerer", "a druid", "a paladin", "a knight"}
promoted_vocations = {"a master sorcerer", "an elder druid", "a royal paladin", "an elite knight"}
--- SQL part (nie ruszaj!)
sql_host = "localhost"
sql_user = "root"
sql_pass = ""
sql_db = "otserv"
--- SQL MAP part (nie ruszaj!)
sqlmap = "test_map"
map_host = "localhost"
map_user = "root"
map_pass = ""
map_db = ""
------------------------- YurOTS basic configuration ---------------------------
-- nazwa światu (seen on the character list when logging in)
worldname = "YurOTS"
-- czas co jaki serwer się zapisuje (0 = off, 5 = 5min, 60 = hour)
autosave = 10
-- cap system włączony? (yes/no)
capsystem = "no"
-- do you want players to learn spells before they can use them? (yes/no)
learnspells = "yes"
-- pacc dla wszystkich? (yes/no)
freepremmy = "no"
-- pacc mają czekać w kolejce do logowania? (yes/no)
queuepremmy = "yes"
-- Ile % {exp, mana, skill, eq, bp} traci się podczas śmierci
diepercent = {"7", "7", "7", "7", "100"}
-- ile summonów może posiadać gracz?
maxsummons = 2
-- summony dla każdej profesji? (yes/no)
summonsallvoc = "no"
-- zniszczenie speara (0 - nigdy, 100000 - zawsze)
spearlosechance = 50
-- anti-afk – maksymalny czas stania bez ruchu (1 = 1min)
kicktime = 15
-- maksymalna ilość rzeczy w depo
maxdepotitems = 1000
maksymalna ilość rzeczy w domku
maxhousetileitems = 10
-- ile deadów zapisuje się w pliku postaci?
maxdeathentries = 10
-- mana zurzywana przez rod{snakebite, moonlight, volcanic, quagmire, tempest} rod
rodmana = {"2", "3", "5", "8", "13"}
mana zurzywana przez wand of {vortex, dragonbreath, plague, cosmic energy, inferno}
wandmana = {"2", "3", "5", "8", "13"}
-- zasięg rod {snakebite, moonlight, volcanic, quagmire, tempest} rod
rodrange = {"4", "3", "2", "1", "3"}
-- zasięg wand of {vortex, dragonbreath, plague, cosmic energy, inferno}
wandrange = {"4", "3", "2", "1", "3"}
-- obrażenia zadawane burstami
-- domyślne od (1*lvl+5*mlvl)*0.24 do (1*lvl+5*mlvl)*0.55
burstarrowdmg = {"1.0", "5.0", "0.24", "0.55"}
--------------------------- Multipliers and gains ------------------------------
-- o ile więcej dają doświadczenia potwory
expmul = 10
-- o ile więcej dają doświadczenia gracze (pvp-enforced)
expmulpvp = 2
-- szybkość rośnięcia skillo: 1 - rl tibia, 10 – 10x szybciej etc. {no-voc, sorcerer, druid, paladin, knight}
weaponmul = {"1", "1", "1", "1", "40"}
distmul = {"1", "1", "1", "40", "1"}
shieldmul = {"1", "1", "1", "20", "20"}
manamul = {"1", "3", "3", "2", "2"}
-- ile hp, many, capu rośnie, gdy zdobywa się poziomy{no-voc, sorcerer, druid, paladin, knight}
capgain = {"10", "10", "10", "20", "25"}
managain = {"5", "30", "30", "15", "5"}
hpgain = {"5", "5", "5", "10", "15"}
-- ile szybciej regeneruje się mana, hp po posiłku (1 - rl tibia)
healthtickmul = 5
manatickmul = 5
-------------------------------- Skull system ----------------------------------
-- ile ujustów do red skulla?
redunjust = 3
-- ile ujustów do bana?
banunjust = 6
-- czas posiadania white skulla po zaatakowaniu gracza? (1 = 1min)
hittime = 1
-- czas posiadania white skulla po zabiciu gracza? (1 = 1min)
whitetime = 15
-- czas posiadania red skulla? (1 = 1min)
redtime = 6*60
-- czas zanim stracimy 1 ujusta (1 = 1min)
fragtime = 12*60
------------------------------ GM access rights --------------------------------
-- access do otwierania drzwi i wchodzenia do domków
accesshouse = 3
-- access do logowania się bez kolejki lub gdy serwer jest zamknięty
accessenter = 2
-- access do bycia ignorowanym przez potwory
accessprotect = 2
-- access kolorowego pisania w kanałach publicznych (#c blabla )
accesstalk = 1
-- access do przesuwania rzeczy oddalonych od nas
accessremote = 3
-- access do zobaczenia ID I pozycji przedmiotu
accesslook = 2
Teraz objaśnię strukturę plików postaci.
Plik account naszej postaci znajduje się w katalogu „data/accounts” pod nazwą (nazwa to będzie numer naszego accounta, więc każdy wg własnego uznania) np. 1.xml . Tak wygląda przykładowy plik account:
Cytat:
<?xml version="1.0"?>
<account pass="nasze haslo" type="1" premDays="15">
<characters>
<character name="GM Yurez" />
<character name="Yurez" />
</characters>
</account>
Gdzie:
-pass -> hasło do accounta
-premDays -> ilość dni premium account (działa tylko w starych wersjach, tutaj nie!)
-character name -> imię naszej postaci
-type -> ???
Teraz objaśnię strukturę pliki postaci. Pliki postaci znajdują się w katalogu „data/players” pod nazwą postaci (nazwa musi być ta sama, co character name w poprzednim pliku).W moim przypadku będzie to Yurez. Plik powinien wyglądać następująco (oczywiście to tylko przykład, plik może się znacząco różnić!):
Cytat:
<?xml version="1.0"?>
<player name="Yurez" account="1" sex="1" lookdir="1" exp="714722" voc="1" level="36" access="0" cap="30" maglevel="18" lastlogin="0" premticks="35345000" promoted="1" banned="0">
<spawn x="136" y="56" z="7"/>
<temple x="160" y="54" z="7"/>
<skull type="0" kills="0" ticks="0" absolve="0"/>
<health now="930" max="930" food="1000"/>
<mana now="1250" max="1250" spent="62"/>
<look type="128" head="63" body="82" legs="120" feet="114"/>
<skills>
<skill skillid="0" level="10" tries="0"/>
<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="10" tries="0"/>
<skill skillid="5" level="10" tries="0"/>
<skill skillid="6" level="10" tries="0"/>
</skills>
<spells>
<spell words="utamo vita"/>
<spell words="exura"/>
<spell words="adori gran flam"/>
<spell words="adevo mas hur"/>
<spell words="exevo gran mas vis"/>
<spell words="adori gran"/>
<spell words="utani hur"/>
<spell words="utani gran hur"/>
</spells>
<deaths>
<death name="GM Yurez" level="37" time="1136040430"/>
</deaths>
<inventory>
<slot slotid="1"><item id="2493"/></slot>
<slot slotid="3"><item id="1988">
<inside>
<item id="2120"/>
<item id="2304" count="49"/>
</inside>
</item>
</slot>
<slot slotid="4"><item id="2494"/></slot>
<slot slotid="6"><item id="2390"/></slot>
<slot slotid="7"><item id="2495"/></slot>
<slot slotid="8"><item id="2195"/></slot>
<slot slotid="10"><item id="2163"/></slot>
</inventory>
<depots>
<depot depotid="1">
<item id="2590">
<inside>
<item id="2594">
<item id="2002">
<inside>
<item id="2160" count="97"/>
</inside>
</item>
</inside>
</item>
</depot>
</depots>
<storage>
<data key="5015" value="1"/>
</storage>
</player>
Gdzie:
-player name -> imię postaci musi być takie same w pliku accounta,
-account -> numer accounta w moim przypadku 1 (numer taki sam jak w pliku „data/accounts”),
-sex -> płeć postaci,
-lookdir -> kierunek zwrócenia postaci (np. północny),
-voc -> profesja,
-exp -> ilość doświadczenia,
-level -> poziom,
-access -> prawa dostępu. 0 – normalny gracz, 3 – GM (ustawiane w commands.xml),
- maglevel -> poziom magiczny,
-spawn -> współrzędne logowania na mapie (sprawdza się je za pomocą edytora map),
-temple -> współrzędne świątyni (gdy player zgnie właśnie tam się pojawia),
-health -> życie, now -> aktualne życie, max -> maksymalne życie,
-mana -> mana, reszta tak samo jak wyżej,
-look type -> wygląd (kolory), najlepiej tu nie ruszać, a przestawiać sobie w czasie gry,
-skills -> nasze skille oto spis który numer to który skill:
1 – fist fighting
2 – club fighting
3 – sword fighting
4 – axe fighting
5 – distance fighting
6 – shielding
7 – fishing
-inventory -> nasz ekwipunek,
-slot slotid="1" -> miejsce w naszym ekwiputnku:
1= hełm
2= amulet
3= plecak
4= zbroja
5= prawa ręka
6= lewa Ręka
7= nogawice
8= buty
9= pierścień
10= miejsce na strzały
-count -> licaba jakiś rzeczy np. boltów, gp, runów,
-lastlogin – czas ostatniego logowania,
-premticks – czas pozostałego pacca,
-promoted – promocja; 0 – brak, 1- posiadanie,
-banned – status bana; 0 – brak, 1 – ban,
Jak na razie myślę, że wystarczy, niedługo druga część poradnika.
Post został pochwalony 0 razy |
|
|