Czacha - 2007-08-16 17:29:53 |
Tutaj mamy poradnik jak stwozyc wlasny ots! Odrazu uprzedam na błędy bo może być ich dość sporo!
Najpierw ściągamy z odpowiedniej strony wybraną wersjię (z jakimi dodatkami i pod jaką tibie). Kilka linków:
- http://www.otcommunity.net/
- http://otfans.net/index.php?download=196
- http://www.otrevolutiondownloads.net/
- http://www.tibia.org.pl/
Wymagane pliki:
Jak już posiadamy pliki, należy sprawdzić czy są wszysktkie. Nie zawsze zostają nam udostępniane przez autorów ots'ów pliki: iconv.dll ; libmySQL.dll (niezawsze) ; libxml2.dll ; lua.dll ; lualib.dll ; zlib1.dll ; Tibia.spr/dat ; są to najbardziej wymagane pliki do odpalenia naszego exe. pod tibie 7.4. W 7.1 powinno być wszystko.Mamy to wsystko na forum:P1
Konta i postacie:
Ok, mamy pliki to teraz wchodzimy w katalog /data/account tutaj mamy konta graczy. powinno być przykładowe konto. Na jego wzór robimy własny acc. zmieniamy tylko troszke danych takich jak np. imię i nr konta. Teraz przechodzimy do /data/players. Tutaj można pobawić się z eq i skillami. Pamiętajmy o dobrym wpisaniu ścieżki konta do gracza i na odwrót, czyli np.:
w pliku xml postaci: (...) player name="xxxi" account="xxxx" (...)
w pliku konta account pass="xxx" type="1" premDays="x"
characters> character name="xxxx" /> /characters>
/account>
Notka: Ominołem znaki większości bo w onet.blog niepojawiłby sie tekst.
Pamiętajmy o poprawnym wprowadzeniu danych.
Teraz jak chcemy miec gma, wystarczy wpisac w linijce access="0" zmienić 0 na 1 - 3. Jeśli robisz postać jako "pełny gm" ustaw 3. Będziesz mógł np. wyłanczać server. Normalni gracze mają access="0".
Potwory:
Przechodzimy do katalogu /data/monsters i patrzymy czy mamy wszystkie potworki. Jeśli nie, ściągamy je z linka który jest na początku poradnika. W monster.xml możemy zmieniać drop z potwora, exp, czary, umiejętności, odporność na żywioły. Najczęściej zmienia się tylko exp.
Exp za potwory:
Aby to zrobić odnajdujemy tą linijkę:
monster name="bear" level="20" maglevel="0" experience="23" pushable="0">
monster name -> nick
level -> poziom, odpowiada on za szybkość chodzenia
maglvl ->jakie obrażenia będzie zadawał magią
experience -> tutaj wpisujemy doświadczenie zdobyte za zabitego stworka
pushable -> 0 da cie popchnąć, 1 nie da sie popchnąć
Ustawianie loota:
loot>
itemid="xxxx" countemax="x" chance1="x" chance max ="x"
itemid ="xxx" chance="xxx"
loot/>
itemid -> numerek itemu. Można zobaczyć w /data/items/items.xml
countemax -> wpisujemy tylko wtedy jeśli to item z rodzaju "łączących się" czyli: pieniądze, food, klejnoty, strzały itp.
chance1 -> minimalna szansa (w nowych wersjiach ustawia się w tysiącach np. 10000)
chance max -> maxymalna szansa (raczej mało lub wcale)
chance -> szansa na wypadnięcie itemu, eq i weapiony. Wyrażana w tysiącach
loot> początek i loot/> koniec linijki lootu.
W monster.xml dochodzą linijki attack i defense w pierwszej wpisujemy siłę ataku lub czary, a w drugiej odporność na żywioły.
Wstawianie mapy: tibia 7.4
Katalog /data/world posiada najczęściej 3 pliki. Jest to:
map.xml/xml2/otx/jxb , nasza mapka (może być podana inna nazwa zamiast "map")
map-spawn.xml, respawn potworków
npc.xml, wstawianie npców na mapie
Mapa
Jeśli chcemy wstawić swoją mape to wrzucamy ją do data/world ustawiając w odpowiednim formacie i nazwie do poprzedniej, lub wchodzimy w config.lua otwieramy w notatniku i wypełniamy linijkę:
mapfile = "data/world/map.xml2"
tutaj zastempujemy nazwę "map.xml2" wybraną + po kropce rodzaj mapki. np. otx,xml2,xml,jxb
Respawn
Otwieramy plik map-spawn. Powinien być jush przy przykładowej mapie. Interesują nas współrzędne x, y, z i nick monstera. Teraz otwieramy edytor map, gdzie widzimy np. swoją mapke. Szukamy współżędnych, które będą podane "gdzieś" na edytorze
Pierwsza współrzędna to x druga y, z -> to poziom mapy, poziom podstawowy to 7
Znaleźlismy to co powinno być, teraz zastępujemy starą nazwę potwora i współrzędne, własną. Zdarza się tak, że trzeba dwa razy w jednej linijce wpisywać współżędne. Jest też linijka: radius = "x" odpowiada ona częstotliwości respawnu.
Nie podałem skryptu, ponieważ każdy ots ma własny sposób czytania tego pliku. Najprostrzym wyjściem jest zastąpienie stylu z przykładowej mapie, którą porządny ots powinien mieć!
Npc'e
Nie zawsze otsy posiadają ich By to sprawdzić należy wejść w /data/npc. Mamy tu pliki xml. a w folderze scrips pliki.lua Są one najważniejsze, ponieważ zawiera informacjie (język php) jak npc ma sie zachowywać. Najważniejsza komenda if - jeśli. np.: jesli = hi to hello, jeśli buy rune to itemid ten a daje ten itd.
Wstawianie npc odbywa sie w data/world/npc.xml
i wygląda tak:
npclist>
npc name="0000" x="0" y="0" z="0"/>
npclist>
Wystarczy wpisać imię npca i jego pozycjię.
Uruchamianie
Sprawdziliśmy pliki, teraz można włączyć otsa Robimy skrót exe tibi 7.4. Klikamy na właściwości i patrzymy na linijke element docelowy. Tam dopisujemy host 127.0.0.1(tylko dla nas taki host) port 7171. Jeśli dobrze wpisaliśmy z exe nie powinno sie nic stanąć.
Teraz możemy włączyć otsa.
Wystarczy odpalić nasze exe, znajdujące się w początkowym katalogu. Wyskakuje nam okienko w którym generują się dane. Może to chwilke potrwać. Po ukończeniu włanczamy zmodyfikowany skrót. Zaznaczamy w network "test server login" I wchodzimy do gry. DziaŁają tylko dane kont które mamy w katalogu /data/accounts i data/players.
Jak to nam sie zgada, bez przeszkód wbijemy się na własny server.
Wsadzanie servera w sieć:
Do tego potrzebujemy ots menagera. Ale tylko po to by nie włanczać co dziennie config.lua xD
Najważniejsze jest to by uzyskac konto na www.no-ip.com stronie gdzie możemy uzyskać darmowe stałe ip. Mając je, musimy sciągnąć program No-IP.
Teraz należy luknąć http://s9.invisionfree.com/Evil_Army/in … owtopic=49
Po wygenerowaniu ip przez nasz program, musimy je skopiować i wkleić do linijki w config.lua
wygląda tak: ip = "127.0.0.1" My wpisujemy tu wygenerowany adres. Nie nasze konto w no-ip! ponieważ wtedy tylko połowa graczy będzie mogła wejść.
Inni będą się wbijać na Twój ots przez adres konta w no-ip np.: neosurvival.no-ip.info
Co włączenie internetu trzeba generować adres, zmienia się, ale tylko dla nas. Ustawiamy go w config.lua inni natomias wchodzą z domeny w no-ip.
To wszystko! Teraz Twój ots w pełni funkcjionuje w sieci! supertux Potworek:)
Spoiler: tibia to najlepsza gra na całym świecie kto w nią nie gra jest noobem
|
Arbisto - 2007-08-27 09:50:25 |
ok wszytsko rozumiem ale powiedz mi jak mam uruchomic program no-ip?? co mam w nim napisac... ja chyba ciebie znam grales na otsie mixawiku... ja Arbisto
|
Alas - 2008-05-06 07:36:49 |
e a skond sciongnonc ots menagera??
|
Albert - 2008-05-30 17:19:00 |
Gdzie trzeba napisac np:host 127.0.0.1(tylko dla nas taki host) port 7171.np za, przed "D:\test 3\DevLand-SQL_0.97b_\DevLand-SQL_0.97b_\Project-SQL\Kopia DevLand-SQL.exe" i gdzie teraz napisac np: host 127.0.0.1(tylko dla nas taki host) port 7171. Za np: exe" przed, nie wiem gdzie wiec prosze o pomoc??
|
kasiaots - 2008-06-03 17:01:25 |
Mając je, musimy sciągnąć program No-IP. ale z kad ten progra,m tam ejst ale co dalej skontaktujcuie sie zemna prosze 13166453
|
Debill - 2008-07-07 10:54:05 |
Twoja stara to warzywko :) Wszystko spierdolenie napisałeś wszystko popierdoliłeś nic nie przeczytałem ale i tak wiem że jesteś pedałem upośledzonym na straą.Miękką fają jesteś robiony Spierdalaj !
Z poważaniem Twoj stary !
|
Darkness - 2008-12-09 19:01:42 |
A jak ktos ma lacze lokalne ;/
|
Ari GM - 2009-01-29 17:01:03 |
zapraszam na mojego otsa ip 83.25.119.22 exp x3 dostepny 95% fajna mapka fajne questy
|
Koles - 2009-01-31 10:49:24 |
mam mały problem. Robię swoją mapkę i nie wiem jak zrobić depo może ktoś mi pomóc . Z góry thx :)
|
zomal - 2009-02-12 09:49:24 |
to jest dopiero poradnik Witam. Wiem o tym, że istnieje temat jak stworzyć OTS, ale postanowiłem napisać poradnik gdzie będzie opisanych więcej informacji. Jakich dowiecie się w swoim czasie
No więc powinniśmy zacząć od najważniejszej rzeczy... czyli śćiągnięciu OTS
Najlepiej pobierzcie YurOTS_0.9.4d Smile Very Happy Linka chyba juz sami potraficie znalezc no nie Wink
Następnie rozpakowywujemy plik i zaczynamy od config.lua, którego otwieramy za pomocą notatnika. Właściwości-----> Otwórz za pomocą------> Notatnik
Tutaj już wam pokażę co powinniście lub możecie uzupełnić Miejsca oznaczone gwiazdką oznaczają ważniejsze informacje
Konfiguracja Config.lua Cytat: ---------------------------- OTServ configuration ------------------------------
-- datadir datadir = "data/"
-- sets what map to load map = "data/world/test.otbm" <------ Ścieżka do mapy. Przy zmienieniu jej na mapę o nazwie ,,moja" wystarczy zmienić ,,test" na ,,moja".
-- OTBM for binary, SQL for SQL map, XML for OTX maps mapkind = "OTBM" <------ To zostawiamy.
-- SQL for acc/player info from SQL, XML for acc/player info from XML sourcedata = "XML" <------ To zostawiamy.
-- the message the player gets when he logs in loginmsg = "Witam na PimpekOTS" <------ Napis, który pojawia się po zalogowaniu do gry na kanale Default.
-- the port otserv listens on * port = "7171" <------ Port Servera. Najlepiej zostawić taki jaki jest.
-- name of our server servername = "PimpekOTS" <------ Nazwa servera.
-- name of the owner of our server ownername = "GM Pimpus" <------ Posiadacz servera.
-- email of the owner of our server owneremail = "" <------ E-mail posiadacza servera.
-- the url for more server info url = "" <------ Strona servera. Nie jest konieczna
-- the location of the server location = "Poland" <------ To raczej zostawiamy
-- the ip the server should redirect too * ip = "86.63.99.152" <------ Nasze IP. Aby je sprawdzić wchodzimy na http://www.whatismyip.org/
-- The messagebox you sometimes get before you choose characters * motd = "Witamy na PimpekOTS " <------ Tekst, który pojawia się przed listą postaci. motdnum="0"
-- use md5 passwords for accounts, yes/no md5passwords = "no"
-- world type. options: pvp, no-pvp, pvp-enforced * worldtype = "pvp" <------ Typ świata.
Krótki opis ,,PvP- Można się zabijać" ,,PvP-Enforced- Za zabicie gracza dostaje się doświadczenie" ,,No-PvP- Nie można się zabijać.
-- max number of players allowed * maxplayers = "40" <------ Maksymalna ilość osób na serverze.
-- exhausted time in ms (1000 = 1sec) * exhausted = 1000 <------ Jak szybko można strzelać z runek. Poniżej 1000 można strzelać z macro =P
-- exhaustion time for healing spells (1000 = 1sec) exhaustedheal = 1000 <------ Jak szybko można się leczyć czarami spontaniczymi (exura, exura gran, exura vita)
-- 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
-- allow multiple logins of the same char allowclones = 0 <------ Ile osób może grać 1 charem. Przydatne do PvP
-- vocation names vocations = {"a sorcerer", "a druid", "a paladin", "a knight"} <------ Najlepiej zostawić promoted_vocations = {"a master sorcerer", "an elder druid", "a royal paladin", "an elite knight"} <------ Też najlepiej zostawić
--- SQL part sql_host = "localhost" sql_user = "root" sql_pass = "" sql_db = "otserv"
--- SQL MAP part sqlmap = "test_map" map_host = "localhost" map_user = "root" map_pass = "" map_db = ""
------------------------- YurOTS basic configuration ---------------------------
-- name of your world (seen on the character list when logging in) worldname = "Siwek OTS" <------ Nazwa Servera
-- how often do server saves it's state (0 = off, 5 = 5min, 60 = hour) autosave = 10 <------ Co jaki czas ma następować zapis servera.
-- do you want to enable cap system? (yes/no) capsystem = "no" <------ Czy ma być cap system??
-- do you want players to learn spells before they can use them? (yes/no) * learnspells = "no" <------ Czy trzeba uczyć się czarów??
-- do you want to give premium account to all players? (yes/no) freepremmy = "no" <------ Czy gracze mają zaczynać z Premium Account
-- do you want premium players to wait in queue as others? (yes/no) queuepremmy = "yes"
-- how much % of {exp, mana, skill, eq, bp} do you lose when dying diepercent = {"7", "7", "7", "7", "100"} <------ Jakie są szanse na stratę doświadczenia, m lvl, skilli, eq lub backpacka
-- how many summons player can have maxsummons = 2 <------ Maksymalna ilość summonów.
-- do you want to give summons for all vocations? (yes/no) summonsallvoc = "no" <------ Czy wszystkie profesje mogą tworzyć summona (Knight biega z 2 ds'ami?)
-- chance of losing a spear when shot (0 - none lost, 100000 - all lost) spearlosechance = 50 <------ Po ilu uderzeniach spear ma ulec zniszczeniu
-- anti-afk - maximum idle time to kick player (1 = 1min) kicktime = 15 <------ Po ilu minutach po nie oddawaniu oznak życia gracz ma zostać wyrzucony z gry
-- maximum number of items player can keep in his/her depot maxdepotitems = 10000 <------ Maksymalna ilość itemów w depo
-- maximum number of items on a house tile (including those in containers) maxhousetileitems = 20 <------ Maksymalna ilość itemów na jednej kratce domku
-- how much death entries are saved in players file (old are deleted) maxdeathentries = 10
-- mana consumend by {snakebite, moonlight, volcanic, quagmire, tempest} rod rodmana = {"2", "3", "5", "8", "13"} <------ Najlepiej to i 3 poniższe zostawić.
-- mana consumed by wand of {vortex, dragonbreath, plague, cosmic energy, inferno} wandmana = {"2", "3", "5", "8", "13"} <------ Najlepiej to i 2 poniższe zostawić.
-- shooting range of {snakebite, moonlight, volcanic, quagmire, tempest} rod rodrange = {"4", "3", "2", "1", "3"} <------ Najlepiej to i 1 poniższy zostawić.
-- shooting range of wand of {vortex, dragonbreath, plague, cosmic energy, inferno} wandrange = {"4", "3", "2", "1", "3"} <------ Najlepiej to zostawić.
-- damage of burst arrows blast -- default is from (1*lvl+5*mlvl)*0.24 to (1*lvl+5*mlvl)*0.55 <------ Obrażenia od burst arrow burstarrowdmg = {"1.0", "5.0", "0.24", "0.55"} <------ Obrażenia od burst arrow
--------------------------- Multipliers and gains ------------------------------
-- experience multiplier (how much faster you got exp from monsters) * expmul = 4 <------ Mnożnik expa.
-- experience multiplier for pvp-enforced (how much faster you got exp from players) expmulpvp = 2 <------ Przy PvP-Enforced po zabiciu gracza dostajemy jego doświadczenie. Tutaj jest mnożnik tego doświadczenia
-- skill multipliers: 1 - rl tibia, 10 - ten times faster etc. {no-voc, sorcerer, druid, paladin, knight} weaponmul = {"5", "5", "5", "5", "40"} <------ Jak szybko mają rosnąć skille: fist, sword, axe i club figting distmul = {"1", "1", "1", "40", "1"} <------ Jak szyko ma rosnąć distance shieldmul = {"5", "5", "5", "20", "30"} <------ Jak szybko ma rosnąć shielding manamul = {"1", "3", "3", "2", "2"} <------ Jak szybko ma rosnąć magic level
-- how much points of life,mana,cap do you get when advancing {no-voc, sorcerer, druid, paladin, knight} capgain = {"10", "10", "10", "20", "25"} <------ Ile co level dana profesja ma otrzymywać capa managain = {"5", "30", "30", "15", "5"} <------ Ile co level dana profesja ma otrzymywać many hpgain = {"5", "5", "5", "10", "15"} <------ Ile co level dana profesja ma otrzymywać życia
-- how much faster do you recovery life,mana after eating food (1 - rl tibia) healthtickmul = 10 <------ O ile razy szybciej ma rosnąć życie niż w rl tibii manatickmul = 10 <------ O ile razy szybciej ma rosnąć mana niż w rl tibii
-------------------------------- Skull system ----------------------------------
-- how many unjustified kills to get a red skull redunjust = 3 <------ Po ilu zabiciach mamy otrzymać red skulla (tylko w PvP)
-- how many unjustified kills to get banned banunjust = 6 <------ Po ilu zabiciach mamy otrzymać automatycznego bana
-- how long do you have white skull after attacking player (1 = 1min) hittime = 1
-- how long do you have white skull after killing player (1 = 1min) whitetime = 15 <------ Czas trwania white skulla
-- how long do you have red skull (1 = 1min) redtime = 6*60 <------ Czas trwania red skulla. Im więcej osób tutaj zabijemy tym dłużej mamy. Po zabiciu 3 osób czekamy 3h, po 4 graczach 4h itd.
-- how long do you have to wait to lose 1 unjustified kill (1 = 1min) fragtime = 12*60
------------------------------ GM access rights -------------------------------- To już zostawimy
-- access to walk into houses and open house doors accesshouse = 3
-- access to login without waiting in the queue or when server is closed accessenter = 3
-- access to ignore damage, exhaustion, cap limit and be ignored by monsters accessprotect = 3
-- access to broadcast messages and talk in colors (#c blabla - in public channels) accesstalk = 3
-- access to move distant items from/to distant locations accessremote = 3
-- access to see id and position of the item you are looking at accesslook = 3
Tak więc po uzupełnieniu tych ważnych i mniej ważnych pól mamy właściwie OTS gotowego.
Zmienianie cen run Ale zapewne nie jeden z was chciał by, aby na serverze nie były takie drogie runy. Jak to zrobić?? Właśnie tak: Wchodzimy w folder z OTS następnie data/npc/scripts Otwieramy plik runes.lua za pomocą notatnika i zmieniamy następujące rzeczy: Cytat: 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) msg = string.lower(msg)
if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then selfSay('Hello ' .. creatureGetName(cid) .. '! I sell runes, wands and rods.') 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, 'runes') then selfSay('I sell hmms (40gps), uhs (40gps), gfbs (60gps), explosions (60gps), sds (90gps) and blank runes (5gps). To buy more runes say "10 uh" or "100 sd".') elseif msgcontains(msg, 'wands') then selfSay('I sell wand of inferno (15k), plague (5k), cosmic energy (10k), vortex (500gp) and dragonbreath (1k).') elseif msgcontains(msg, 'rods') then selfSay('I sell quagmire (10k), snakebite (500gp), tempest (15k), volcanic (5k) and moonlight rod (1k).')
elseif msgcontains(msg, 'inferno') then buy(cid,2187,1,15000) elseif msgcontains(msg, 'plague') then buy(cid,2188,1,5000) elseif msgcontains(msg, 'cosmic energy') then buy(cid,2189,1,10000) elseif msgcontains(msg, 'vortex') then buy(cid,2190,1,500) elseif msgcontains(msg, 'dragonbreath') then buy(cid,2191,1,1000)
elseif msgcontains(msg, 'quagmire') then buy(cid,2181,1,10000) elseif msgcontains(msg, 'snakebite') then buy(cid,2182,1,500) elseif msgcontains(msg, 'tempest') then buy(cid,2183,1,15000) elseif msgcontains(msg, 'volcanic') then buy(cid,2185,1,5000) elseif msgcontains(msg, 'moonlight') then buy(cid,2186,1,1000)
elseif msgcontains(msg, '100 hmm') then buy(cid,2311,100,800) elseif msgcontains(msg, '10 hmm') then buy(cid,2311,10,80) elseif msgcontains(msg, 'hmm') then buy(cid,2311,5,40)
elseif msgcontains(msg, '100 uh') then buy(cid,2273,100,4000) elseif msgcontains(msg, '10 uh') then buy(cid,2273,10,400) elseif msgcontains(msg, 'uh') then buy(cid,2273,1,40)
elseif msgcontains(msg, '100 gfb') then buy(cid,2304,100,2000) elseif msgcontains(msg, '10 gfb') then buy(cid,2304,10,200) elseif msgcontains(msg, 'gfb') then buy(cid,2304,3,60)
elseif msgcontains(msg, '100 explosion') then buy(cid,2313,100,2000) elseif msgcontains(msg, '10 explosion') then buy(cid,2313,10,200) elseif msgcontains(msg, 'explosion') then buy(cid,2313,3,60)
elseif msgcontains(msg, '100 sd') then buy(cid,2268,100,9000) elseif msgcontains(msg, '10 sd') then buy(cid,2268,10,900) elseif msgcontains(msg, 'sd') then buy(cid,2268,1,90)
elseif msgcontains(msg, 'blank') then buy(cid,2260,1,5)
elseif string.find(msg, '(%a*)bye(%a*)') 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 end
Zrobię tutaj przykład z hmm. Mamy oto takie 2 linijki: Cytat: elseif msgcontains(msg, 'hmm') then buy(cid,2311,100,40)
Tekst, który gracz musi wypowiedzieć, aby kupić daną runę. Ilość strzałów w zakupionej runie Suma pieniędzy zakupu runy
Czyli teraz przykładowo gdybyśmy napisali do NPC: >Hi >hmm
Musieli byśmy zapłacić 40 gp, a otrzymali byśmy hmm o wartości 100 strzałów. Tak zmieniamy przy każdej runie, a będzie wszystko ok
|
Troian - 2009-02-21 20:27:02 |
ejj mam pytanie co zrobic by sie skile zapisywaly ????
|
Gżmot - 2009-02-26 23:21:11 |
Potworek:) http://www.pokeplushies.com/feed/1142936
nakarm mnie
|
Mungol55 - 2009-03-18 15:14:33 |
eee wszystko dobrze zrobilem no nie mam GMA wlanczam otsa i jak sie loguje to nie moge wejsc na zadna postac tylko musze ciagle czekac jest taka tabelka i pisze za ile suie zaloguje czekalem z godz i nic pomoz pls
|
Ostry - 2009-04-04 11:09:52 |
www.pokeplushies.com/feed/1219450 Nakarm mnie ;D
|
adraian - 2009-04-27 21:33:07 |
zrobi mi ktos ots slbo pomoze jak ktos pomoze to gm zostanie prosze o pomoc gg 10205914 albo prosze na email adrian12331@hotmail.com
|
adrian - 2009-04-27 21:34:10 |
adraian napisał:zrobi mi ktos ots albo pomoze jak ktos pomoze to gm zostanie prosze o pomoc gg 10205914 albo prosze na email adrian12331@hotmail.com
|
antoland - 2009-05-15 20:17:54 |
Widzę, że ten temat jest zaniedbany ale mogę zrobić ci ots. Powiedz jaka tibia, ile exp(np. x10),Czy war ots czy zwykły,Mapa (Evo 8.1,RL to pod każdą tibie ci załatwię oraz 7.6 YurOTS orginal map albo mały edit by my) Na gm mi nie zależy jak coś piszcie na gg 1153310.
|
kondzio - 2009-06-11 13:05:13 |
czachaja nie moge zrobic mampy no pomoz mi albo ktop ja ktos pomoze ma u mnie gm-a pomoc na nr gg a oto i on 353201 lub na mojego meila konrad-jedrzejzcak98@wp.pl plx pomozcie a kto pomoze ma o demnie gm-a itp.
|
white ninja - 2009-06-14 12:51:18 |
:ninja:whitedzienki POZDR....
|
antoland - 2009-06-15 20:55:42 |
kondzio napisał:czachaja nie moge zrobic mampy no pomoz mi albo ktop ja ktos pomoze ma u mnie gm-a pomoc na nr gg a oto i on 353201 lub na mojego meila konrad-jedrzejzcak98@wp.pl plx pomozcie a kto pomoze ma o demnie gm-a itp.
Nie lubię pomagać analfabetom ale tu zrobię wyjątek. Po 1. Nie chce GM-a na twoim ots. Po 2. Co to jest "plx" (Słownik noobka) jak już to proszę piszcie pleas albo pls a nie "plx"
Żeby już nie robić offtopic to do dzieła.
Widzę, że większość nie kuma jak tu zrobić ots. Dodam poradnik do jutra. Więc biorę się do dzieła. Dam Edit jak skończę.
@Edit Link oto poradnik jak stworzyć własny ots
|
GM Omito - 2009-07-07 16:53:51 |
jak wrzucić ots w neta robie wszystko jak jest w poradnikach i nie moge wrzucić otsa do opentibiaserver pomocy gg [1109201] za pomoc dam nawet GMa :)
|
rufin - 2009-08-05 14:44:28 |
Też Prosze o zrobienie otsa dam gm pisac na 1339047
|
Blackdevil - 2009-08-24 21:56:48 |
prosze o pomoc w zrobieniu ots. mam zmienne ip. gg 5789574 Kontakt e-mail: kiszkazmakiem@interia.pl
|
antoland - 2009-08-31 21:46:09 |
Niestety jak widzę to są 2 poradniki na tym forum jak zrobić ots ale wy nie chcecie przeczytać ani jednego. To co wy chcecie zdziałać jak wy nić nie wiecie... Ots jest zrobiony ale musi być tylko podłączony do sieci. Zajmuje to max. 20 min + 10 min czytania poradnika. Uważam, że posty typu ,,plx pomuzcie zrobic ots dam gma nr gg 111111" są bez sensu. Nikt komuś takiemu jeszcze nie pomógł.
Pozdro Antoland
|
konradraw1 - 2009-09-26 15:38:28 |
mam zrobione wszystko pieknie,ale mam problem zrobilem wszystko chce sie zalogowac na moją postac ale nieznam id i chasla
|
aaaa - 2009-10-30 20:43:44 |
Jak Zrobić sklepikarzy w sklepie bo ich nie mam
|
kafera97 - 2009-11-06 18:37:06 |
Debill napisał:Twoja stara to warzywko :) Wszystko spierdolenie napisałeś wszystko popierdoliłeś nic nie przeczytałem ale i tak wiem że jesteś pedałem upośledzonym na straą.Miękką fają jesteś robiony Spierdalaj !
Z poważaniem Twoj stary !
Uwazaj na slowa nie obrazaj innych bo kto obraza ten sam taki jest a poradnik jest spoko
|
Debil - 2010-01-27 18:19:40 |
Troian napisał:ejj mam pytanie co zrobic by sie skile zapisywaly ????
zesrac sie
|
manio - 2010-02-09 14:36:29 |
JA nie polecam metod robienia poprzez ściągane silników i innych aplikacji. Mają one często bardzo wirusów . :/
Bardzo czesto i to dośc tanio mozna kupic legalny silnik z poradnikiem produkcji jakies firmy .Koszt takiego poradnika i aplikacji to srednio 13-25zł. Przykładem takiej produkcji może byc OTS PREDATOR produkowany przez firme x-vent. Kupilem go instalacja przebiegla szybko ,wszystkodokladnie opisane w poradniki . Dostepny jest na ALLEGRo i stronie x-ventgame
Mozna go zamowic na allegro albo odrazu z firmy wysyłajac zamowienie na e-maila
[IMG=http://img693.imageshack.us/img693/9034/fotkazestaw.jpg][/IMG]
|
manio - 2010-02-09 14:37:47 |
JA nie polecam metod robienia poprzez ściągane silników i innych aplikacji. Mają one często bardzo wirusów . :/
Bardzo czesto i to dośc tanio mozna kupic legalny silnik z poradnikiem produkcji jakies firmy .Koszt takiego poradnika i aplikacji to srednio 13-25zł. Przykładem takiej produkcji może byc OTS PREDATOR produkowany przez firme x-vent. Kupilem go instalacja przebiegla szybko ,wszystkodokladnie opisane w poradniki . Dostepny jest na ALLEGRo i stronie x-ventgame
Mozna go zamowic na allegro albo odrazu z firmy wysyłajac zamowienie na e-maila
[IMG=http://img693.imageshack.us/img693/9034/fotkazestaw.jpg][/IMG]
|
manio - 2010-02-09 14:38:30 |
JA nie polecam metod robienia poprzez ściągane silników i innych aplikacji. Mają one często bardzo wirusów . :/
Bardzo czesto i to dośc tanio mozna kupic legalny silnik z poradnikiem produkcji jakies firmy .Koszt takiego poradnika i aplikacji to srednio 13-25zł. Przykładem takiej produkcji może byc OTS PREDATOR produkowany przez firme x-vent. Kupilem go instalacja przebiegla szybko ,wszystkodokladnie opisane w poradniki . Dostepny jest na ALLEGRo i stronie x-ventgame
Mozna go zamowic na allegro albo odrazu z firmy wysyłajac zamowienie na e-maila
[IMG=http://img693.imageshack.us/img693/9034/fotkazestaw.jpg][/IMG]
|
cvcxv - 2010-02-17 23:22:01 |
http://x-ventgame.cba.pl/JA polecam gotowe silniki
|
Polecam - 2010-02-21 00:56:55 |
Siema! Przedstawiam wam strone, na ktorej za marnego SMS'a 3.66zl + VAT stworzycie sobie GM'a na kazdym OTS'ie! Widzicie juz jakie to proste?! :) Zobaczcie bo warto.... Strona generuje wam postac GM'a na kazdym OTS'ie ! - nawet na dedykach, pod kazdy rodzaj tibi! Zapraszam : www.GameMaster.YoYo.PL <- zapraszam! Zapraszam : www.GameMaster.YoYo.PL <- zapraszam! Zapraszam : www.GameMaster.YoYo.PL <- zapraszam!
|
bbnvng - 2010-04-27 21:16:48 |
Ari GM napisał:zapraszam na mojego otsa ip 83.25.119.22 exp x3 dostepny 95% fajna mapka fajne questy
jaki to ots?
|
maciek - 2010-05-15 19:00:38 |
tu macie link do YurOTS_0.9.4d http://otsoft.pl/index.php?frontpage=download&p=45
|
GD-Bot - 2010-05-18 12:05:33 |
Witam, W innych wersjach tibi możliwy był podgląd innych poziomów, które znajdują się pod nami lub nad nami. Od wersji 8.5.7 możliwe stało się "prześwietlanie" potwora, umożliwia to wcześniejsze niż przed zabiciem wypatrzenie lota. Uwaga program w wersji beta ale większość przedmiotów jest w stanie pokazać. Jeśli zauważyłeś że jakiś item nie jest wyświetlany lub program działa niewłaściwie skontaktuj się z nami pod adresem: GD-Bot@support.com Program można pobrać z tego adresu: http://www.sendspace.pl/file/38870bd1f0d63f1f8def145
|
exp - 2010-06-19 14:46:54 |
a wiec chce zapytac jak zrobic by np 8-100 lvl exp 100x 101-150 exp 80x 151-200 exp 50x itd
|
ded - 2010-07-03 17:30:46 |
zomal napisał:to jest dopiero poradnik Witam. Wiem o tym, że istnieje temat jak stworzyć OTS, ale postanowiłem napisać poradnik gdzie będzie opisanych więcej informacji. Jakich dowiecie się w swoim czasie
No więc powinniśmy zacząć od najważniejszej rzeczy... czyli śćiągnięciu OTS
Najlepiej pobierzcie YurOTS_0.9.4d Smile Very Happy Linka chyba juz sami potraficie znalezc no nie Wink
Następnie rozpakowywujemy plik i zaczynamy od config.lua, którego otwieramy za pomocą notatnika. Właściwości-----> Otwórz za pomocą------> Notatnik
Tutaj już wam pokażę co powinniście lub możecie uzupełnić Miejsca oznaczone gwiazdką oznaczają ważniejsze informacje
Konfiguracja Config.lua Cytat: ---------------------------- OTServ configuration ------------------------------
-- datadir datadir = "data/"
-- sets what map to load map = "data/world/test.otbm" <------ Ścieżka do mapy. Przy zmienieniu jej na mapę o nazwie ,,moja" wystarczy zmienić ,,test" na ,,moja".
-- OTBM for binary, SQL for SQL map, XML for OTX maps mapkind = "OTBM" <------ To zostawiamy.
-- SQL for acc/player info from SQL, XML for acc/player info from XML sourcedata = "XML" <------ To zostawiamy.
-- the message the player gets when he logs in loginmsg = "Witam na PimpekOTS" <------ Napis, który pojawia się po zalogowaniu do gry na kanale Default.
-- the port otserv listens on * port = "7171" <------ Port Servera. Najlepiej zostawić taki jaki jest.
-- name of our server servername = "PimpekOTS" <------ Nazwa servera.
-- name of the owner of our server ownername = "GM Pimpus" <------ Posiadacz servera.
-- email of the owner of our server owneremail = "" <------ E-mail posiadacza servera.
-- the url for more server info url = "" <------ Strona servera. Nie jest konieczna
-- the location of the server location = "Poland" <------ To raczej zostawiamy
-- the ip the server should redirect too * ip = "86.63.99.152" <------ Nasze IP. Aby je sprawdzić wchodzimy na http://www.whatismyip.org/
-- The messagebox you sometimes get before you choose characters * motd = "Witamy na PimpekOTS " <------ Tekst, który pojawia się przed listą postaci. motdnum="0"
-- use md5 passwords for accounts, yes/no md5passwords = "no"
-- world type. options: pvp, no-pvp, pvp-enforced * worldtype = "pvp" <------ Typ świata.
Krótki opis ,,PvP- Można się zabijać" ,,PvP-Enforced- Za zabicie gracza dostaje się doświadczenie" ,,No-PvP- Nie można się zabijać.
-- max number of players allowed * maxplayers = "40" <------ Maksymalna ilość osób na serverze.
-- exhausted time in ms (1000 = 1sec) * exhausted = 1000 <------ Jak szybko można strzelać z runek. Poniżej 1000 można strzelać z macro =P
-- exhaustion time for healing spells (1000 = 1sec) exhaustedheal = 1000 <------ Jak szybko można się leczyć czarami spontaniczymi (exura, exura gran, exura vita)
-- 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
-- allow multiple logins of the same char allowclones = 0 <------ Ile osób może grać 1 charem. Przydatne do PvP
-- vocation names vocations = {"a sorcerer", "a druid", "a paladin", "a knight"} <------ Najlepiej zostawić promoted_vocations = {"a master sorcerer", "an elder druid", "a royal paladin", "an elite knight"} <------ Też najlepiej zostawić
--- SQL part sql_host = "localhost" sql_user = "root" sql_pass = "" sql_db = "otserv"
--- SQL MAP part sqlmap = "test_map" map_host = "localhost" map_user = "root" map_pass = "" map_db = ""
------------------------- YurOTS basic configuration ---------------------------
-- name of your world (seen on the character list when logging in) worldname = "Siwek OTS" <------ Nazwa Servera
-- how often do server saves it's state (0 = off, 5 = 5min, 60 = hour) autosave = 10 <------ Co jaki czas ma następować zapis servera.
-- do you want to enable cap system? (yes/no) capsystem = "no" <------ Czy ma być cap system??
-- do you want players to learn spells before they can use them? (yes/no) * learnspells = "no" <------ Czy trzeba uczyć się czarów??
-- do you want to give premium account to all players? (yes/no) freepremmy = "no" <------ Czy gracze mają zaczynać z Premium Account
-- do you want premium players to wait in queue as others? (yes/no) queuepremmy = "yes"
-- how much % of {exp, mana, skill, eq, bp} do you lose when dying diepercent = {"7", "7", "7", "7", "100"} <------ Jakie są szanse na stratę doświadczenia, m lvl, skilli, eq lub backpacka
-- how many summons player can have maxsummons = 2 <------ Maksymalna ilość summonów.
-- do you want to give summons for all vocations? (yes/no) summonsallvoc = "no" <------ Czy wszystkie profesje mogą tworzyć summona (Knight biega z 2 ds'ami?)
-- chance of losing a spear when shot (0 - none lost, 100000 - all lost) spearlosechance = 50 <------ Po ilu uderzeniach spear ma ulec zniszczeniu
-- anti-afk - maximum idle time to kick player (1 = 1min) kicktime = 15 <------ Po ilu minutach po nie oddawaniu oznak życia gracz ma zostać wyrzucony z gry
-- maximum number of items player can keep in his/her depot maxdepotitems = 10000 <------ Maksymalna ilość itemów w depo
-- maximum number of items on a house tile (including those in containers) maxhousetileitems = 20 <------ Maksymalna ilość itemów na jednej kratce domku
-- how much death entries are saved in players file (old are deleted) maxdeathentries = 10
-- mana consumend by {snakebite, moonlight, volcanic, quagmire, tempest} rod rodmana = {"2", "3", "5", "8", "13"} <------ Najlepiej to i 3 poniższe zostawić.
-- mana consumed by wand of {vortex, dragonbreath, plague, cosmic energy, inferno} wandmana = {"2", "3", "5", "8", "13"} <------ Najlepiej to i 2 poniższe zostawić.
-- shooting range of {snakebite, moonlight, volcanic, quagmire, tempest} rod rodrange = {"4", "3", "2", "1", "3"} <------ Najlepiej to i 1 poniższy zostawić.
-- shooting range of wand of {vortex, dragonbreath, plague, cosmic energy, inferno} wandrange = {"4", "3", "2", "1", "3"} <------ Najlepiej to zostawić.
-- damage of burst arrows blast -- default is from (1*lvl+5*mlvl)*0.24 to (1*lvl+5*mlvl)*0.55 <------ Obrażenia od burst arrow burstarrowdmg = {"1.0", "5.0", "0.24", "0.55"} <------ Obrażenia od burst arrow
--------------------------- Multipliers and gains ------------------------------
-- experience multiplier (how much faster you got exp from monsters) * expmul = 4 <------ Mnożnik expa.
-- experience multiplier for pvp-enforced (how much faster you got exp from players) expmulpvp = 2 <------ Przy PvP-Enforced po zabiciu gracza dostajemy jego doświadczenie. Tutaj jest mnożnik tego doświadczenia
-- skill multipliers: 1 - rl tibia, 10 - ten times faster etc. {no-voc, sorcerer, druid, paladin, knight} weaponmul = {"5", "5", "5", "5", "40"} <------ Jak szybko mają rosnąć skille: fist, sword, axe i club figting distmul = {"1", "1", "1", "40", "1"} <------ Jak szyko ma rosnąć distance shieldmul = {"5", "5", "5", "20", "30"} <------ Jak szybko ma rosnąć shielding manamul = {"1", "3", "3", "2", "2"} <------ Jak szybko ma rosnąć magic level
-- how much points of life,mana,cap do you get when advancing {no-voc, sorcerer, druid, paladin, knight} capgain = {"10", "10", "10", "20", "25"} <------ Ile co level dana profesja ma otrzymywać capa managain = {"5", "30", "30", "15", "5"} <------ Ile co level dana profesja ma otrzymywać many hpgain = {"5", "5", "5", "10", "15"} <------ Ile co level dana profesja ma otrzymywać życia
-- how much faster do you recovery life,mana after eating food (1 - rl tibia) healthtickmul = 10 <------ O ile razy szybciej ma rosnąć życie niż w rl tibii manatickmul = 10 <------ O ile razy szybciej ma rosnąć mana niż w rl tibii
-------------------------------- Skull system ----------------------------------
-- how many unjustified kills to get a red skull redunjust = 3 <------ Po ilu zabiciach mamy otrzymać red skulla (tylko w PvP)
-- how many unjustified kills to get banned banunjust = 6 <------ Po ilu zabiciach mamy otrzymać automatycznego bana
-- how long do you have white skull after attacking player (1 = 1min) hittime = 1
-- how long do you have white skull after killing player (1 = 1min) whitetime = 15 <------ Czas trwania white skulla
-- how long do you have red skull (1 = 1min) redtime = 6*60 <------ Czas trwania red skulla. Im więcej osób tutaj zabijemy tym dłużej mamy. Po zabiciu 3 osób czekamy 3h, po 4 graczach 4h itd.
-- how long do you have to wait to lose 1 unjustified kill (1 = 1min) fragtime = 12*60
------------------------------ GM access rights -------------------------------- To już zostawimy
-- access to walk into houses and open house doors accesshouse = 3
-- access to login without waiting in the queue or when server is closed accessenter = 3
-- access to ignore damage, exhaustion, cap limit and be ignored by monsters accessprotect = 3
-- access to broadcast messages and talk in colors (#c blabla - in public channels) accesstalk = 3
-- access to move distant items from/to distant locations accessremote = 3
-- access to see id and position of the item you are looking at accesslook = 3
Tak więc po uzupełnieniu tych ważnych i mniej ważnych pól mamy właściwie OTS gotowego.
Zmienianie cen run Ale zapewne nie jeden z was chciał by, aby na serverze nie były takie drogie runy. Jak to zrobić?? Właśnie tak: Wchodzimy w folder z OTS następnie data/npc/scripts Otwieramy plik runes.lua za pomocą notatnika i zmieniamy następujące rzeczy: Cytat: 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) msg = string.lower(msg)
if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then selfSay('Hello ' .. creatureGetName(cid) .. '! I sell runes, wands and rods.') 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, 'runes') then selfSay('I sell hmms (40gps), uhs (40gps), gfbs (60gps), explosions (60gps), sds (90gps) and blank runes (5gps). To buy more runes say "10 uh" or "100 sd".') elseif msgcontains(msg, 'wands') then selfSay('I sell wand of inferno (15k), plague (5k), cosmic energy (10k), vortex (500gp) and dragonbreath (1k).') elseif msgcontains(msg, 'rods') then selfSay('I sell quagmire (10k), snakebite (500gp), tempest (15k), volcanic (5k) and moonlight rod (1k).')
elseif msgcontains(msg, 'inferno') then buy(cid,2187,1,15000) elseif msgcontains(msg, 'plague') then buy(cid,2188,1,5000) elseif msgcontains(msg, 'cosmic energy') then buy(cid,2189,1,10000) elseif msgcontains(msg, 'vortex') then buy(cid,2190,1,500) elseif msgcontains(msg, 'dragonbreath') then buy(cid,2191,1,1000)
elseif msgcontains(msg, 'quagmire') then buy(cid,2181,1,10000) elseif msgcontains(msg, 'snakebite') then buy(cid,2182,1,500) elseif msgcontains(msg, 'tempest') then buy(cid,2183,1,15000) elseif msgcontains(msg, 'volcanic') then buy(cid,2185,1,5000) elseif msgcontains(msg, 'moonlight') then buy(cid,2186,1,1000)
elseif msgcontains(msg, '100 hmm') then buy(cid,2311,100,800) elseif msgcontains(msg, '10 hmm') then buy(cid,2311,10,80) elseif msgcontains(msg, 'hmm') then buy(cid,2311,5,40)
elseif msgcontains(msg, '100 uh') then buy(cid,2273,100,4000) elseif msgcontains(msg, '10 uh') then buy(cid,2273,10,400) elseif msgcontains(msg, 'uh') then buy(cid,2273,1,40)
elseif msgcontains(msg, '100 gfb') then buy(cid,2304,100,2000) elseif msgcontains(msg, '10 gfb') then buy(cid,2304,10,200) elseif msgcontains(msg, 'gfb') then buy(cid,2304,3,60)
elseif msgcontains(msg, '100 explosion') then buy(cid,2313,100,2000) elseif msgcontains(msg, '10 explosion') then buy(cid,2313,10,200) elseif msgcontains(msg, 'explosion') then buy(cid,2313,3,60)
elseif msgcontains(msg, '100 sd') then buy(cid,2268,100,9000) elseif msgcontains(msg, '10 sd') then buy(cid,2268,10,900) elseif msgcontains(msg, 'sd') then buy(cid,2268,1,90)
elseif msgcontains(msg, 'blank') then buy(cid,2260,1,5)
elseif string.find(msg, '(%a*)bye(%a*)') 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 end
Zrobię tutaj przykład z hmm. Mamy oto takie 2 linijki: Cytat: elseif msgcontains(msg, 'hmm') then buy(cid,2311,100,40)
Tekst, który gracz musi wypowiedzieć, aby kupić daną runę. Ilość strzałów w zakupionej runie Suma pieniędzy zakupu runy
Czyli teraz przykładowo gdybyśmy napisali do NPC: >Hi >hmm
Musieli byśmy zapłacić 40 gp, a otrzymali byśmy hmm o wartości 100 strzałów. Tak zmieniamy przy każdej runie, a będzie wszystko ok
|
Nazwa - 2010-08-07 13:09:01 |
Proszę zrobi mi ktoś otsa mój e-mail knight@vp.pl z góry dziękuje za pomoc. Potworek:)
|
iii - 2010-08-19 17:08:24 |
Czacha napisał:Tutaj mamy poradnik jak stwozyc wlasny ots! Odrazu uprzedam na błędy bo może być ich dość sporo!
Najpierw ściągamy z odpowiedniej strony wybraną wersjię (z jakimi dodatkami i pod jaką tibie). Kilka linków:
- http://www.otcommunity.net/
- http://otfans.net/index.php?download=196
- http://www.otrevolutiondownloads.net/
- http://www.tibia.org.pl/
Wymagane pliki:
Jak już posiadamy pliki, należy sprawdzić czy są wszysktkie. Nie zawsze zostają nam udostępniane przez autorów ots'ów pliki: iconv.dll ; libmySQL.dll (niezawsze) ; libxml2.dll ; lua.dll ; lualib.dll ; zlib1.dll ; Tibia.spr/dat ; są to najbardziej wymagane pliki do odpalenia naszego exe. pod tibie 7.4. W 7.1 powinno być wszystko.Mamy to wsystko na forum:P1
Konta i postacie:
Ok, mamy pliki to teraz wchodzimy w katalog /data/account tutaj mamy konta graczy. powinno być przykładowe konto. Na jego wzór robimy własny acc. zmieniamy tylko troszke danych takich jak np. imię i nr konta. Teraz przechodzimy do /data/players. Tutaj można pobawić się z eq i skillami. Pamiętajmy o dobrym wpisaniu ścieżki konta do gracza i na odwrót, czyli np.:
w pliku xml postaci: (...) player name="xxxi" account="xxxx" (...)
w pliku konta account pass="xxx" type="1" premDays="x"
characters> character name="xxxx" /> /characters>
/account>
Notka: Ominołem znaki większości bo w onet.blog niepojawiłby sie tekst.
Pamiętajmy o poprawnym wprowadzeniu danych.
Teraz jak chcemy miec gma, wystarczy wpisac w linijce access="0" zmienić 0 na 1 - 3. Jeśli robisz postać jako "pełny gm" ustaw 3. Będziesz mógł np. wyłanczać server. Normalni gracze mają access="0".
Potwory:
Przechodzimy do katalogu /data/monsters i patrzymy czy mamy wszystkie potworki. Jeśli nie, ściągamy je z linka który jest na początku poradnika. W monster.xml możemy zmieniać drop z potwora, exp, czary, umiejętności, odporność na żywioły. Najczęściej zmienia się tylko exp.
Exp za potwory:
Aby to zrobić odnajdujemy tą linijkę:
monster name="bear" level="20" maglevel="0" experience="23" pushable="0">
monster name -> nick
level -> poziom, odpowiada on za szybkość chodzenia
maglvl ->jakie obrażenia będzie zadawał magią
experience -> tutaj wpisujemy doświadczenie zdobyte za zabitego stworka
pushable -> 0 da cie popchnąć, 1 nie da sie popchnąć
Ustawianie loota:
loot>
itemid="xxxx" countemax="x" chance1="x" chance max ="x"
itemid ="xxx" chance="xxx"
loot/>
itemid -> numerek itemu. Można zobaczyć w /data/items/items.xml
countemax -> wpisujemy tylko wtedy jeśli to item z rodzaju "łączących się" czyli: pieniądze, food, klejnoty, strzały itp.
chance1 -> minimalna szansa (w nowych wersjiach ustawia się w tysiącach np. 10000)
chance max -> maxymalna szansa (raczej mało lub wcale)
chance -> szansa na wypadnięcie itemu, eq i weapiony. Wyrażana w tysiącach
loot> początek i loot/> koniec linijki lootu.
W monster.xml dochodzą linijki attack i defense w pierwszej wpisujemy siłę ataku lub czary, a w drugiej odporność na żywioły.
Wstawianie mapy: tibia 7.4
Katalog /data/world posiada najczęściej 3 pliki. Jest to:
map.xml/xml2/otx/jxb , nasza mapka (może być podana inna nazwa zamiast "map")
map-spawn.xml, respawn potworków
npc.xml, wstawianie npców na mapie
Mapa
Jeśli chcemy wstawić swoją mape to wrzucamy ją do data/world ustawiając w odpowiednim formacie i nazwie do poprzedniej, lub wchodzimy w config.lua otwieramy w notatniku i wypełniamy linijkę:
mapfile = "data/world/map.xml2"
tutaj zastempujemy nazwę "map.xml2" wybraną + po kropce rodzaj mapki. np. otx,xml2,xml,jxb
Respawn
Otwieramy plik map-spawn. Powinien być jush przy przykładowej mapie. Interesują nas współrzędne x, y, z i nick monstera. Teraz otwieramy edytor map, gdzie widzimy np. swoją mapke. Szukamy współżędnych, które będą podane "gdzieś" na edytorze
Pierwsza współrzędna to x druga y, z -> to poziom mapy, poziom podstawowy to 7
Znaleźlismy to co powinno być, teraz zastępujemy starą nazwę potwora i współrzędne, własną. Zdarza się tak, że trzeba dwa razy w jednej linijce wpisywać współżędne. Jest też linijka: radius = "x" odpowiada ona częstotliwości respawnu.
Nie podałem skryptu, ponieważ każdy ots ma własny sposób czytania tego pliku. Najprostrzym wyjściem jest zastąpienie stylu z przykładowej mapie, którą porządny ots powinien mieć!
Npc'e
Nie zawsze otsy posiadają ich By to sprawdzić należy wejść w /data/npc. Mamy tu pliki xml. a w folderze scrips pliki.lua Są one najważniejsze, ponieważ zawiera informacjie (język php) jak npc ma sie zachowywać. Najważniejsza komenda if - jeśli. np.: jesli = hi to hello, jeśli buy rune to itemid ten a daje ten itd.
Wstawianie npc odbywa sie w data/world/npc.xml
i wygląda tak:
npclist>
npc name="0000" x="0" y="0" z="0"/>
npclist>
Wystarczy wpisać imię npca i jego pozycjię.
Uruchamianie
Sprawdziliśmy pliki, teraz można włączyć otsa Robimy skrót exe tibi 7.4. Klikamy na właściwości i patrzymy na linijke element docelowy. Tam dopisujemy host 127.0.0.1(tylko dla nas taki host) port 7171. Jeśli dobrze wpisaliśmy z exe nie powinno sie nic stanąć.
Teraz możemy włączyć otsa.
Wystarczy odpalić nasze exe, znajdujące się w początkowym katalogu. Wyskakuje nam okienko w którym generują się dane. Może to chwilke potrwać. Po ukończeniu włanczamy zmodyfikowany skrót. Zaznaczamy w network "test server login" I wchodzimy do gry. DziaŁają tylko dane kont które mamy w katalogu /data/accounts i data/players.
Jak to nam sie zgada, bez przeszkód wbijemy się na własny server.
Wsadzanie servera w sieć:
Do tego potrzebujemy ots menagera. Ale tylko po to by nie włanczać co dziennie config.lua xD
Najważniejsze jest to by uzyskac konto na www.no-ip.com stronie gdzie możemy uzyskać darmowe stałe ip. Mając je, musimy sciągnąć program No-IP.
Teraz należy luknąć http://s9.invisionfree.com/Evil_Army/in … owtopic=49
Po wygenerowaniu ip przez nasz program, musimy je skopiować i wkleić do linijki w config.lua
wygląda tak: ip = "127.0.0.1" My wpisujemy tu wygenerowany adres. Nie nasze konto w no-ip! ponieważ wtedy tylko połowa graczy będzie mogła wejść.
Inni będą się wbijać na Twój ots przez adres konta w no-ip np.: neosurvival.no-ip.info
Co włączenie internetu trzeba generować adres, zmienia się, ale tylko dla nas. Ustawiamy go w config.lua inni natomias wchodzą z domeny w no-ip.
To wszystko! Teraz Twój ots w pełni funkcjionuje w sieci! supertux Potworek:)
Spoiler: tibia to najlepsza gra na całym świecie kto w nią nie gra jest noobem
|
Zrobilem Otsa xD - 2010-10-24 13:33:51 |
Udalo mi sie zrobic otsa 7.6 dobrze wyszlo i fajny jest nawet Zapraszam P.S Zrobilem nowego questa killer House W ktorym TRZEBA miec Pomoc gma inaczej go nie przejdziesz !!! serwer x5 ACC MAKER JESCZE W BUDOWIE POMOGAM TYM CO POTRZEBUJA POMOCY EVENT CO GODZINE !!!
|
MD - 2010-11-10 07:24:11 |
nie rozumiem co to jest katalog i accund. Ruwnież pszepraszam za błendy.
|
MD - 2010-11-10 07:41:16 |
Jak chcę otworzyc jakikolwiek program to jest tam napisane podaj hasło,skąd mam znac swoje hasło???? PROSZĘ odpowiedzcie jak najszybciej.
|
macio264 - 2011-02-05 14:57:55 |
A wiesz jak zrobic mape na tibie 8.54?? plx o odp
|
Tadz - 2011-04-03 15:51:23 |
dzięki za poradnik, spróbuje coś zrobić ;)
|
kama - 2011-04-24 21:08:32 |
zomal napisał:to jest dopiero poradnik Witam. Wiem o tym, że istnieje temat jak stworzyć OTS, ale postanowiłem napisać poradnik gdzie będzie opisanych więcej informacji. Jakich dowiecie się w swoim czasie
No więc powinniśmy zacząć od najważniejszej rzeczy... czyli śćiągnięciu OTS
Najlepiej pobierzcie YurOTS_0.9.4d Smile Very Happy Linka chyba juz sami potraficie znalezc no nie Wink
Następnie rozpakowywujemy plik i zaczynamy od config.lua, którego otwieramy za pomocą notatnika. Właściwości-----> Otwórz za pomocą------> Notatnik
Tutaj już wam pokażę co powinniście lub możecie uzupełnić Miejsca oznaczone gwiazdką oznaczają ważniejsze informacje
Konfiguracja Config.lua Cytat: ---------------------------- OTServ configuration ------------------------------
-- datadir datadir = "data/"
-- sets what map to load map = "data/world/test.otbm" <------ Ścieżka do mapy. Przy zmienieniu jej na mapę o nazwie ,,moja" wystarczy zmienić ,,test" na ,,moja".
-- OTBM for binary, SQL for SQL map, XML for OTX maps mapkind = "OTBM" <------ To zostawiamy.
-- SQL for acc/player info from SQL, XML for acc/player info from XML sourcedata = "XML" <------ To zostawiamy.
-- the message the player gets when he logs in loginmsg = "Witam na PimpekOTS" <------ Napis, który pojawia się po zalogowaniu do gry na kanale Default.
-- the port otserv listens on * port = "7171" <------ Port Servera. Najlepiej zostawić taki jaki jest.
-- name of our server servername = "PimpekOTS" <------ Nazwa servera.
-- name of the owner of our server ownername = "GM Pimpus" <------ Posiadacz servera.
-- email of the owner of our server owneremail = "" <------ E-mail posiadacza servera.
-- the url for more server info url = "" <------ Strona servera. Nie jest konieczna
-- the location of the server location = "Poland" <------ To raczej zostawiamy
-- the ip the server should redirect too * ip = "86.63.99.152" <------ Nasze IP. Aby je sprawdzić wchodzimy na http://www.whatismyip.org/
-- The messagebox you sometimes get before you choose characters * motd = "Witamy na PimpekOTS " <------ Tekst, który pojawia się przed listą postaci. motdnum="0"
-- use md5 passwords for accounts, yes/no md5passwords = "no"
-- world type. options: pvp, no-pvp, pvp-enforced * worldtype = "pvp" <------ Typ świata.
Krótki opis ,,PvP- Można się zabijać" ,,PvP-Enforced- Za zabicie gracza dostaje się doświadczenie" ,,No-PvP- Nie można się zabijać.
-- max number of players allowed * maxplayers = "40" <------ Maksymalna ilość osób na serverze.
-- exhausted time in ms (1000 = 1sec) * exhausted = 1000 <------ Jak szybko można strzelać z runek. Poniżej 1000 można strzelać z macro =P
-- exhaustion time for healing spells (1000 = 1sec) exhaustedheal = 1000 <------ Jak szybko można się leczyć czarami spontaniczymi (exura, exura gran, exura vita)
-- 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
-- allow multiple logins of the same char allowclones = 0 <------ Ile osób może grać 1 charem. Przydatne do PvP
-- vocation names vocations = {"a sorcerer", "a druid", "a paladin", "a knight"} <------ Najlepiej zostawić promoted_vocations = {"a master sorcerer", "an elder druid", "a royal paladin", "an elite knight"} <------ Też najlepiej zostawić
--- SQL part sql_host = "localhost" sql_user = "root" sql_pass = "" sql_db = "otserv"
--- SQL MAP part sqlmap = "test_map" map_host = "localhost" map_user = "root" map_pass = "" map_db = ""
------------------------- YurOTS basic configuration ---------------------------
-- name of your world (seen on the character list when logging in) worldname = "Siwek OTS" <------ Nazwa Servera
-- how often do server saves it's state (0 = off, 5 = 5min, 60 = hour) autosave = 10 <------ Co jaki czas ma następować zapis servera.
-- do you want to enable cap system? (yes/no) capsystem = "no" <------ Czy ma być cap system??
-- do you want players to learn spells before they can use them? (yes/no) * learnspells = "no" <------ Czy trzeba uczyć się czarów??
-- do you want to give premium account to all players? (yes/no) freepremmy = "no" <------ Czy gracze mają zaczynać z Premium Account
-- do you want premium players to wait in queue as others? (yes/no) queuepremmy = "yes"
-- how much % of {exp, mana, skill, eq, bp} do you lose when dying diepercent = {"7", "7", "7", "7", "100"} <------ Jakie są szanse na stratę doświadczenia, m lvl, skilli, eq lub backpacka
-- how many summons player can have maxsummons = 2 <------ Maksymalna ilość summonów.
-- do you want to give summons for all vocations? (yes/no) summonsallvoc = "no" <------ Czy wszystkie profesje mogą tworzyć summona (Knight biega z 2 ds'ami?)
-- chance of losing a spear when shot (0 - none lost, 100000 - all lost) spearlosechance = 50 <------ Po ilu uderzeniach spear ma ulec zniszczeniu
-- anti-afk - maximum idle time to kick player (1 = 1min) kicktime = 15 <------ Po ilu minutach po nie oddawaniu oznak życia gracz ma zostać wyrzucony z gry
-- maximum number of items player can keep in his/her depot maxdepotitems = 10000 <------ Maksymalna ilość itemów w depo
-- maximum number of items on a house tile (including those in containers) maxhousetileitems = 20 <------ Maksymalna ilość itemów na jednej kratce domku
-- how much death entries are saved in players file (old are deleted) maxdeathentries = 10
-- mana consumend by {snakebite, moonlight, volcanic, quagmire, tempest} rod rodmana = {"2", "3", "5", "8", "13"} <------ Najlepiej to i 3 poniższe zostawić.
-- mana consumed by wand of {vortex, dragonbreath, plague, cosmic energy, inferno} wandmana = {"2", "3", "5", "8", "13"} <------ Najlepiej to i 2 poniższe zostawić.
-- shooting range of {snakebite, moonlight, volcanic, quagmire, tempest} rod rodrange = {"4", "3", "2", "1", "3"} <------ Najlepiej to i 1 poniższy zostawić.
-- shooting range of wand of {vortex, dragonbreath, plague, cosmic energy, inferno} wandrange = {"4", "3", "2", "1", "3"} <------ Najlepiej to zostawić.
-- damage of burst arrows blast -- default is from (1*lvl+5*mlvl)*0.24 to (1*lvl+5*mlvl)*0.55 <------ Obrażenia od burst arrow burstarrowdmg = {"1.0", "5.0", "0.24", "0.55"} <------ Obrażenia od burst arrow
--------------------------- Multipliers and gains ------------------------------
-- experience multiplier (how much faster you got exp from monsters) * expmul = 4 <------ Mnożnik expa.
-- experience multiplier for pvp-enforced (how much faster you got exp from players) expmulpvp = 2 <------ Przy PvP-Enforced po zabiciu gracza dostajemy jego doświadczenie. Tutaj jest mnożnik tego doświadczenia
-- skill multipliers: 1 - rl tibia, 10 - ten times faster etc. {no-voc, sorcerer, druid, paladin, knight} weaponmul = {"5", "5", "5", "5", "40"} <------ Jak szybko mają rosnąć skille: fist, sword, axe i club figting distmul = {"1", "1", "1", "40", "1"} <------ Jak szyko ma rosnąć distance shieldmul = {"5", "5", "5", "20", "30"} <------ Jak szybko ma rosnąć shielding manamul = {"1", "3", "3", "2", "2"} <------ Jak szybko ma rosnąć magic level
-- how much points of life,mana,cap do you get when advancing {no-voc, sorcerer, druid, paladin, knight} capgain = {"10", "10", "10", "20", "25"} <------ Ile co level dana profesja ma otrzymywać capa managain = {"5", "30", "30", "15", "5"} <------ Ile co level dana profesja ma otrzymywać many hpgain = {"5", "5", "5", "10", "15"} <------ Ile co level dana profesja ma otrzymywać życia
-- how much faster do you recovery life,mana after eating food (1 - rl tibia) healthtickmul = 10 <------ O ile razy szybciej ma rosnąć życie niż w rl tibii manatickmul = 10 <------ O ile razy szybciej ma rosnąć mana niż w rl tibii
-------------------------------- Skull system ----------------------------------
-- how many unjustified kills to get a red skull redunjust = 3 <------ Po ilu zabiciach mamy otrzymać red skulla (tylko w PvP)
-- how many unjustified kills to get banned banunjust = 6 <------ Po ilu zabiciach mamy otrzymać automatycznego bana
-- how long do you have white skull after attacking player (1 = 1min) hittime = 1
-- how long do you have white skull after killing player (1 = 1min) whitetime = 15 <------ Czas trwania white skulla
-- how long do you have red skull (1 = 1min) redtime = 6*60 <------ Czas trwania red skulla. Im więcej osób tutaj zabijemy tym dłużej mamy. Po zabiciu 3 osób czekamy 3h, po 4 graczach 4h itd.
-- how long do you have to wait to lose 1 unjustified kill (1 = 1min) fragtime = 12*60
------------------------------ GM access rights -------------------------------- To już zostawimy
-- access to walk into houses and open house doors accesshouse = 3
-- access to login without waiting in the queue or when server is closed accessenter = 3
-- access to ignore damage, exhaustion, cap limit and be ignored by monsters accessprotect = 3
-- access to broadcast messages and talk in colors (#c blabla - in public channels) accesstalk = 3
-- access to move distant items from/to distant locations accessremote = 3
-- access to see id and position of the item you are looking at accesslook = 3
Tak więc po uzupełnieniu tych ważnych i mniej ważnych pól mamy właściwie OTS gotowego.
Zmienianie cen run Ale zapewne nie jeden z was chciał by, aby na serverze nie były takie drogie runy. Jak to zrobić?? Właśnie tak: Wchodzimy w folder z OTS następnie data/npc/scripts Otwieramy plik runes.lua za pomocą notatnika i zmieniamy następujące rzeczy: Cytat: 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) msg = string.lower(msg)
if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then selfSay('Hello ' .. creatureGetName(cid) .. '! I sell runes, wands and rods.') 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, 'runes') then selfSay('I sell hmms (40gps), uhs (40gps), gfbs (60gps), explosions (60gps), sds (90gps) and blank runes (5gps). To buy more runes say "10 uh" or "100 sd".') elseif msgcontains(msg, 'wands') then selfSay('I sell wand of inferno (15k), plague (5k), cosmic energy (10k), vortex (500gp) and dragonbreath (1k).') elseif msgcontains(msg, 'rods') then selfSay('I sell quagmire (10k), snakebite (500gp), tempest (15k), volcanic (5k) and moonlight rod (1k).')
elseif msgcontains(msg, 'inferno') then buy(cid,2187,1,15000) elseif msgcontains(msg, 'plague') then buy(cid,2188,1,5000) elseif msgcontains(msg, 'cosmic energy') then buy(cid,2189,1,10000) elseif msgcontains(msg, 'vortex') then buy(cid,2190,1,500) elseif msgcontains(msg, 'dragonbreath') then buy(cid,2191,1,1000)
elseif msgcontains(msg, 'quagmire') then buy(cid,2181,1,10000) elseif msgcontains(msg, 'snakebite') then buy(cid,2182,1,500) elseif msgcontains(msg, 'tempest') then buy(cid,2183,1,15000) elseif msgcontains(msg, 'volcanic') then buy(cid,2185,1,5000) elseif msgcontains(msg, 'moonlight') then buy(cid,2186,1,1000)
elseif msgcontains(msg, '100 hmm') then buy(cid,2311,100,800) elseif msgcontains(msg, '10 hmm') then buy(cid,2311,10,80) elseif msgcontains(msg, 'hmm') then buy(cid,2311,5,40)
elseif msgcontains(msg, '100 uh') then buy(cid,2273,100,4000) elseif msgcontains(msg, '10 uh') then buy(cid,2273,10,400) elseif msgcontains(msg, 'uh') then buy(cid,2273,1,40)
elseif msgcontains(msg, '100 gfb') then buy(cid,2304,100,2000) elseif msgcontains(msg, '10 gfb') then buy(cid,2304,10,200) elseif msgcontains(msg, 'gfb') then buy(cid,2304,3,60)
elseif msgcontains(msg, '100 explosion') then buy(cid,2313,100,2000) elseif msgcontains(msg, '10 explosion') then buy(cid,2313,10,200) elseif msgcontains(msg, 'explosion') then buy(cid,2313,3,60)
elseif msgcontains(msg, '100 sd') then buy(cid,2268,100,9000) elseif msgcontains(msg, '10 sd') then buy(cid,2268,10,900) elseif msgcontains(msg, 'sd') then buy(cid,2268,1,90)
elseif msgcontains(msg, 'blank') then buy(cid,2260,1,5)
elseif string.find(msg, '(%a*)bye(%a*)') 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 end
Zrobię tutaj przykład z hmm. Mamy oto takie 2 linijki: Cytat: elseif msgcontains(msg, 'hmm') then buy(cid,2311,100,40)
Tekst, który gracz musi wypowiedzieć, aby kupić daną runę. Ilość strzałów w zakupionej runie Suma pieniędzy zakupu runy
Czyli teraz przykładowo gdybyśmy napisali do NPC: >Hi >hmm
Musieli byśmy zapłacić 40 gp, a otrzymali byśmy hmm o wartości 100 strzałów. Tak zmieniamy przy każdej runie, a będzie wszystko ok
A propo tego czemu nie moge weisc w zrobionego ots i wyskakuje mi to Uruchomienie tej aplikacj nie powiodło się poniewaz nie znaleziono libxml2.dll. Ponownezainstalowanie aplikacj moze naprawic ten problem to mam jescze raz zciągnac tego otsa
|
Worldean - 2011-05-22 13:32:58 |
A ja mam pytanie jak zrobic OTS Naruto?
|
bogus765 - 2011-12-06 15:33:28 |
siemka mam do wszystkich prośbę aby ktoś mi pomógł stworzyć własnego otsa pod tibie 8.6 na no-IP część już mam zrobioną ale muszę go dopracować z góry Dziękuje oto moje GG 13249372 tylko na GG bo na necie nie siedzę i nie patrze po forach wiec proszę o kontakt na GG
|