Ir para conteúdo
  • Cadastre-se

(Resolvido)HELP - Criando servidor do zero


Ir para solução Resolvido por xeonotech,

Posts Recomendados

Boa noite,

 

Estou querendo montar um servidor do zero, sendo assim aproveitei que já tinha um servidor Linux (Debian GNU/Linux 6.0) e subi um server que vi em algum post aqui no forum:

 

https://github.com/opentibia/server

 

No servidor já esta instalado:

 

  • Server MySQL 5.1
  • Client MySQL 5.1
  • Apache2
  • PHP5
  • phpmyadmin

 

Módulos:

 

php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl libapache2-mod-php5

 

Já criei uma base de dados e adicionei as tabelas do banco MySQL.

 

O que falta fazer de início:

  1. Conectar o server poketibia com o MySQL.
  2. Criar um client para conectar e efetuar os testes.
  3. Criar um novo mapa.
  4. Criar o pokemons e adaptar o server para funcionar como poketibia.
  5. Criar o NPC.
  6. Criar o Site. (Já estou desenvolvendo).
  7. Criar a máquina de boost e um sistema de colocar nome nos pokemons.
  8. Criar as quests.

Após estes passos, vou tentar efetuar outros procedimentos, mas primeiro gostaria de subir o server e poder testa enquanto vou criando.

 

Caso eu tenha esquecido algum detalhe, por favor complementem.

 

Fico no aguardo de um HELP.

 

Atenciosamente,

Caranthir

Link para o post
Compartilhar em outros sites
  • 2 weeks later...

Para conectar o server de poketibia com o mysql é so você importar o arquivo mysql.sql da pasta schemas do seu poketibia no seu phpmyadmin

Editado por Meganick (veja o histórico de edições)

Ajudei ?? Da Rep + AEW ^^

Link para o post
Compartilhar em outros sites

vo ajudar mostrando o npc que muda nome

 

criar um arquivo chamado namer.xml na pasta data e npc do seu serve

 

e coloca isso dentro

 

 

<?xml version="1.0" encoding="UTF-8"?>

<npc name="Renomeador" script="nick.lua" walkinterval="350000" floorchange="0" speed="0" lookdir="2">

    <health now="150" max="150"/>

    <look type="614" head="115" body="122" legs="0" feet="76"/>

    <parameters>


    </parameters>

</npc>

 

Scripter 51% [Aprendendo]

Mapping 100% [Excelente]

Website 93% [Encerrando]

Client 26% [Aprendendo]

Programmer 76% [Aprendendo]

Gostou ?

Rep+

Link para o post
Compartilhar em outros sites

Boa tarde,

 

Meganick

 

Eu configurei o Mysql e criei o gamemaster.

 

Incluí os dados do banco no arquivo config.lua mas não seu como fazer meu server rodar e conectar com o client para ver se esta funcionando, gostaria de fazer isso primeiro antes de começar a editá-lo.

 

xeonotech

 

Eu percebi que o arquivo namer.xml puxa um script "nick.lua" nos arquivos do server que estou usando não tem este script, isso não irá gerar um erro?

 

Agradeço a colaboração de todos.

Link para o post
Compartilhar em outros sites

Antes de tudo va no config.lua e pesquise por "ip" sem aspas, estara um ip lá coloque o ip do seu server lá.

 

Para fazer seu server rodar clike na executavel que estara dentro da pasta do seu server.

Provavelmente o unico arquivo .exe.

 

 

Depois disso espere carregar seu server. Vai demorar um pouco, depois de carregar abra o client e logue com a conta de adm.

Obs: se seu client não tem ip propio faça download do tibia multi ip changer inicie ele coloque a versão do seu server e o ip que colocou no config.lua

e aperte change ip com o client aberto.

Ajudei ?? Da Rep + AEW ^^

Link para o post
Compartilhar em outros sites

Boa tarde Meganick,

 

Meu servidor é um Debian, esta m Linux, poderia dar uma olhada nos arquivos do server, eu postei o link dele no primeiro comentário, já configurei o config.lua com os dados do servidor, porém não sei como rodar, pois esta é a base pura do tibia onde eu terei que editar tudo.

 

Notei que tem uns arquivo que são da extenção do make, porém não sei como devo rodar eles e configurar o server para que ele rode dentro do server Linux.

 

PS. Meu servidor Linux é um cloud.

 

Segue configuração do config.lua para conexão.

 

 
281 -- Database configuration
282 -- options: mysql, sqlite, odbc or pgsql
283 database_type = "mysql"
284
285 -- SQL connection part
286 database_schema = "db.s3db"
287 -- database_schema = "otserv" -- use this for MySQL/PgSQL
288 -- database_schema = "Your Source" -- ODBC
289
290 -- there settings are not used by SQLite
291 database_host = "localhost"
292 database_port = 3306
293 -- database_port = 5432 -- use this for PgSQL
294 database_username = "root"
295 database_password = "**********"
 
Notei que não tem a linha que devemos informar o nome da base de dados, por acaso seria a linha:
 
286 database_schema = "db.s3db"
Editado por Caranthir (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Bom dia,

 

Efetuei a configuração de conexão com o banco de dados da seguinte forma:

281 -- Database configuration

282 -- options: mysql, sqlite, odbc or pgsql
283 database_type = "mysql"

284
285 -- SQL connection part

286 --database_schema = "db.s3db"    >> Comentei

287 database_schema = "nome_da_base" --"otserv" -- use this for MySQL/PgSQL

288 -- database_schema = "Your Source" -- ODBC

289

290 -- there settings are not used by SQLite

291 database_host = "localhost"

292 database_port = 3306

293 -- database_port = 5432 -- use this for PgSQL

294 database_username = "root"

295 database_password = "**********"
 
Localizei vários arquivos em c++, assim efetuei uma verificação e tentei rodar o servidor, mas ele gera erro referente a localização de alguns arquivos, segue:
 
root@linux-debian-6-64b-base-sx:/home/caranthir/pokemon/src# g++ -c server.cpp  In file included from server.cpp:20:
otpch.h:19:30: error: libxml/xmlmemory.h: No such file or directory
otpch.h:20:27: error: libxml/parser.h: No such file or directory
otpch.h:21:28: error: libxml/threads.h: No such file or directory
otpch.h:22:31: error: libxml/xmlschemas.h: No such file or directory
In file included from otpch.h:47,
                 from server.cpp:20:
lua.hpp:26:25: error: lua.h: No such file or directory
lua.hpp:27:29: error: lauxlib.h: No such file or directory
lua.hpp:28:28: error: lualib.h: No such file or directory
root@linux-debian-6-64b-base-sx:/home/caranthir/pokemon/src#

Por favor me informem se preciso instalar alguma biblioteca no servidor ou alterar alguma configuração.

Link para o post
Compartilhar em outros sites
  • 3 weeks later...
  • Solução

Boa tarde,

 

Meganick

 

Eu configurei o Mysql e criei o gamemaster.

 

Incluí os dados do banco no arquivo config.lua mas não seu como fazer meu server rodar e conectar com o client para ver se esta funcionando, gostaria de fazer isso primeiro antes de começar a editá-lo.

 

xeonotech

 

Eu percebi que o arquivo namer.xml puxa um script "nick.lua" nos arquivos do server que estou usando não tem este script, isso não irá gerar um erro?

 

Agradeço a colaboração de todos.

Depois Vai em npc/scripts        e crie um  nick.lua

e dentro dele coloque isso

 

local focus = 0

local talk_start = 0
local conv = 0
local target = 0
local following = false
local attacking = false
local talkState = {}
local finalname = ""
 
function onThingMove(creature, thing, oldpos, oldstackpos)
end
 
function onCreatureAppear(creature)
end
 
function onCreatureDisappear(cid, pos)
if focus == cid then
selfSay('Good bye sir!')
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, msge)
local msg = string.lower(msge)
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
 
 
if focus == cid then
talk_start = os.clock()
end
 
if (msgcontains(msg, 'hi') and (focus == 0) and (getDistanceToCreature(cid) <= 4)) then
 
--if not isPremium(cid) then
--selfSay("Hello, "..getCreatureName(cid).."! I'm sorry, but I can only give nicknames to pokemons for premium members!")
--return true
--end
focus = cid
conv = 1
talk_start = os.clock()
selfSay("Hello, "..getCreatureName(cid).."! I can give your pokemon a nickname, would you like it?")
 
elseif (msgcontains(msg, "no") or msgcontains(msg, "bye")) and focus == cid and conv ~= 3 then
 
selfSay("No problem then, sir. Come back when you feel like it!")
focus = 0
 
elseif msgcontains(msg, "yes") and focus == cid and conv == 1 then
 
if getPlayerSlotItem(cid, 8).uid <= 0 then
selfSay("Sorry, you don't have a pokemon in the main slot!")
focus = 0
return true
end
 
selfSay("Put your pokemon at the main slot and tell me, what nickname would you like me to give to your pokemon?")
conv = 3
 
elseif conv == 3 and focus == cid then
 
local tablee = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "x", "w", "y", "z", ".", ":", "'", '"', "~", "^", "@", "#", "$", "%", "&", "*", "(", ")", "-", "+", "_", "?", ">", "<", "•", ";", "°", "¹", "²", "³", "£", "¢", "¬", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"}
local table = {"'", '"', "!", "ã", "õ", "ç", "´", "`", "á", "à", "ó", "ò", "é", "è", "í", "ì", "ú", "ù", "¹", "²", "³", "£", "¢", "¬", "§", "°", "º", "ª", "•", "|"}
 
for a = 1, #table do
if string.find(msg, table[a]) then
selfSay("Sorry, the nick has invalid symbols.")
return true
end
end
 
if string.len(msg) <= 1 or string.len(msg) >= 19 then
selfSay("Sorry, that nick is too long or too short!")
return true
end
 
local pokename = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke")
 
 
selfSay("Are you sure that you want to change your's "..pokename.." name to \""..msge.."\"? This is going to cost you 10 hundred dollars.")
conv = 5
finalname = msge
 
elseif msgcontains(msg, "yes") and focus == cid and conv == 5 then
 
if getPlayerSlotItem(cid, 8).uid <= 0 then
selfSay("Where is your pokemon?! You have to keep it at the main slot!")
focus = 0
return true
end
 
if doPlayerRemoveMoney(cid, 100000) == false then
selfSay("You don't have enough money to afford this service, come back later.")
focus = 0
conv = 0
return true
end
 
local nick = ""..finalname..""
local description = "Contains a "..getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke").."."
selfSay("Done! Your pokemon now has a new name, enjoy it!")
doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "nick", nick)
local newdes = description.."\nIt's nickname is: "..finalname.."."
doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "description", newdes)
local hp = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "happy")
doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "happy", hp + 25)
if #getCreatureSummons(cid) >= 1 then
adjustStatus(getCreatureSummons(cid)[1], getPlayerSlotItem(cid, 8).uid)
end
focus = 0
conv = 0
end
end
 
local intervalmin = 38
local intervalmax = 70
local delay = 25
local number = 1
local messages = {"Want to give some nicknames to your pokemon? Talk to me!",
 "Did you know your pokemon gets a little happier when you give him a nickname?",
 "Every pokemon wants to have a nickname! Come talk to me!",
 "Pokemons love nicknames, you should give yours one.",
}
 
function onThink()
 
if focus == 0 then
selfTurn(1)
delay = delay - 0.5
if delay <= 0 then
selfSay(messages[number])
number = number + 1
if number > #messages then
number = 1
end
delay = math.random(intervalmin, intervalmax)
end
return true
else
 
if not isCreature(focus) then
focus = 0
return true
end
 
local npcpos = getThingPos(getThis())
local focpos = getThingPos(focus)
 
if npcpos.z ~= focpos.z then
focus = 0
return true
end
 
if (os.clock() - talk_start) > 45 then
focus = 0
selfSay("Come back some other time!")
end
 
if getDistanceToCreature(focus) > 3 then
selfSay("Enjoy!")
focus = 0
return true
end
 
local dir = doDirectPos(npcpos, focpos)
selfTurn(dir)
end
 
 
return true
end

Scripter 51% [Aprendendo]

Mapping 100% [Excelente]

Website 93% [Encerrando]

Client 26% [Aprendendo]

Programmer 76% [Aprendendo]

Gostou ?

Rep+

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo