Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 06/05/11 em todas áreas

  1. ultimate1996

    [Tutorial]Criando Website Com Xampp

    Opa, fala xTibia '-'.. Vi que muitas pessoas estavam querendo fazer um site para seu servidor e não sabem como fazer... Então resolvi postar um tutorial completíssimo aqui.. O que vamos precisar? -&amp;gt; Xampp ( 1.6.5 ) - Download - http://www.oldapps.com/xampp.php?old_xampp=38 -&amp;gt; Gesior Acc. Maker ( 0.3.8 ) - Download - http://www.mediafire.com/?u0bao9bcp9ua5vr -&amp;gt; Um servidor de sua escolha.Pode ser qualquer um desde que tenha o arquivo .mysql. PS: NÃO RESPONDO A QUEM TIVER O ERRO DO INSTALL.PHP . ESSE ERRO É CAUSADO POR CAUSA DA UTILIZAÇÃO DE OUTRA VERSÃO DO XAMPP E DO GESIOR, POR ESSE MOTIVO EU COLOQUEI O XAMPP 1.6.5 QUE ESTÁ FUNCIONANDO! NÃO USE A VERSÃO MAIS RECENTE DO XAMPP! Vamos ao tutorial! Espere... vai criar um site sem saber como funciona? O site de seu servidor será feito em PHP. E o que vai ter nele? Os jogadores de seu servidor poderão criar suas contas, ver notícias do servidor, ver outros jogadores, criar guildas, e muito mais dependendo de como você manusear seu website. OBS1 : É altamente recomendável que escolha uma forte senha para sua conta de Admin. Pois se seu servidor tiver sucesso, certamente "hackers" tentarão atacar sua database e seu servidor. OBS 2: Seu site ficará online apenas quando o Xampp estiver ativo com o Apache e MySQL sendo executados, ou seja, apenas quando você estiver no computador. Para seu site ficar online 24 horas, você precisaria de uma hospedagem para php. Agora que já temos tudo, vamos começar !! 1°) Abra o instalador do XamPP, e instale-o. 2°) Selecione aonde a pasta do XamPP ficará salva. (de preferência algum lugar de fácil acesso) 3°) Deixe apenas a primeira e a segunda opções marcadas e clique em Next. 4°) Aguarde o fim da instação e provavelmente uma tela preta irá aparecer. 5°) Após o fim da instalação, clique em Yes para abrir o XamPP e dê Start em Apache e MySQL. 6°) Clique em Admin do Apache. Você será redirecionado para a sua localhost (endereço que apenas você entra). Clique em Português (Brasil). 7°) No canto esquerdo do site , clique na Aba Segurança. Vá descendo até achar " http://localhost/sec...mppsecurity.php " . Clique. OBS : Se você não conseguiu abrir a página de Segurança, vá na pasta do seu Xampp/security/htdocs/lang e renomeie o arquivo pt para pt_br . 8°) Após ter clicado, deverá ser redirecionado para uma página parecida com essa: OBS :Faça o numero 1 e depois clique em Alterar Senha. Depois Faça o numero 3 e clique em Tornar Seguro o Diretorio do XamPP. 9°) Após ter feito isso, dê Stop no MySql (no XamPP) e dê Start denovo. Agora vá em seu navegador e digite : localhost/phpmyadmin 10°) Digite a senha que foi criada há pouco tempo que eu disse que era para a criação do banco de dados. 11°) Minimize seu navegador e vá na pasta de seu servidor, e abra o arquivo config.lua. Tire todos os espaços iniciais e as "frases" iniciadas com o sinal de " - " . Veja : 12°) Não feche o config.lua ainda, vá descendo até achar informações sobre a database de seu servidor ... algo parecido com isto : sqlType = "mysql" &amp;lt;- se estiver em sqlite, mude para mysql sqlHost = "localhost" sqlPort = 3306 sqlUser = "root" sqlPass = "123456" &amp;lt; - coloque a senha que foi criada para entrar no banco de dados. sqlDatabase = "otserv" &amp;lt; - coloque o nome de sua database , coloque " otserv " para facilitar. sqlFile = "otserv.s3db" &amp;lt; - de prefencia, coloque " otserv.s3db " ( o mesmo nome de sua database ) sqlKeepAlive = 0 mysqlReadTimeout = 10 mysqlWriteTimeout = 10 encryptionType = "plain" 13°) Salve e feche o config.lua. Agora vamos voltar a pagina minimizada (localhost/phpmyadmin) : 14°) Clique na aba Importar na parte superior da tela. 15°) Agora Selecione o Arquivo para Importar. Selecione o arquivo terminado em .sql que fica na pasta de seu servidor e clique em Executar no canto inferior direito. 16°) Pronto !! A database de seu servidor foi criada. Agora vamos instalar os arquivos do site. 17°) Abra a pasta do XamPP/htdocs. Apague tudo que tem dentro de htdocs e cole tudo o que veio dentro da pasta do Gesior ACC. 18°) Abra o XamPP novamente e clique em Admin do Apache. 19°) Uma nova pagina foi aberta, agora você terá que fazer mais 5 passos rápidos. 19.1) Set Server Path Coloque o diretório da pasta de seu servidor. Ex : C:\Users\user\Desktop\Tibia Server Clique em Set Server Path. 19.2) Check database connection 19.3) Add tables and columns to DB 19.4) Agora desça e clique no botão. 19.5) Set Admin Account Coloque uma senha SEGURA pois esse será o password do administrador do site e servidor. 19.6) Load Monsters from OTS Carregue os monstros do servidor. 19.7) Load Spells from OTS Carregue as magias do servidor. 20°) Agora você deverá ser redirecionado para seu site, e você pode acessá-lo pelo localhost ou pelo ip do seu servidor. Para acessar sua database, digite em seu navegador : localhost/phpmyadmin Pronto !! Seu site foi criado :] Colocando seu site online pelo 8090 e Desbloqueando a porta 8090 : 1° - Acesse a pasta do XamPP/apache/conf e abra o arquivo httpd com o bloco de notas. Procure por : Listen 80 E por : ServerName localhost:80 Substitua todos os 80 por 8090. 2° - Dentro da pasta conf, abra a pasta extra, e em seguida abra httpd-ssl e procure por : Listen 443 E por: <virtualhost _default_:443=""> Substitua esses 443 por 4499. Agora vá em seu firewall e Adicione a Porta 8090 e Porta 80 e marca a opção TCP. Se usar Roteador, desbloqueie as portas também. Site por porta 80 localhost Site por porta 8090 localhost:8090 Colocando seu site online pela porta 80 (A porta 80 seria o ip normal de seu servidor. Exemplo : teste.servegame.com. ) A porta 80 não necessita de nada no final. Para que as pessoas entrem pela porta 80, não necessita mudar nada na pasta do Xampp. Pois ela ja está configurada para entrarem. Só é necessário desbloquear a porta 80 no seu modem ou roteador. E desbloquear a porta 80 pelo Firewall também. VIDEO AULA - FEITA EM 2/4/2012 (DESCULPA , AS VEZES TENHO QUE PENSAR QUANDO FALO EM PORTUGUES, PORQUE NAO MORO NO BRASIL)!! Créditos : 100% por Mim :] Não mexo mais com Tibia, mas ainda respondo a qualquer dúvida que eu esteja capacitado a responder (:
    1 ponto
  2. meubk

    Maze Minigame

    Especificações Nome: Maze Minigame Eventos: Movement Testado em: The Forgotten Server 0.3.6 PL1 8.54 (linux-build) Autor: Skyen Hasus Copyright © 2011 Skyen Hasus Licensa: GNU General Public License v3 <http://www.gnu.org/licenses/gpl.html> Observações: Optei por fazer um minigame de labirinto por ser um clássico mundialmente conhecido, e pelo algoritmo de geração ser complexo, mas não difícil, além de poder ser totalmente aplicado em um jogo como o Tibia. O script não foi feito sob Programação Funcional, que é o paradigma mais comum usado em scripts para Open Tibia, e sim sob Orientação à Objetos. A classe do minigame é a Maze, contida em data/movements/lib/libmaze.lua Os labirintos gerados são únicos, uma vez que usam de pseudo-randomismo (math.random) para serem gerados pelo computador. Todos os labirintos gerados tem solução, pois nenhum bloco do labirinto fica isolado. Qualquer tamanho para o labirinto é aceito, porém, quanto maior o labirinto, mais o algoritmo vai demorar para gerar o labirinto. Um labirinto 50x50 foi gerado sem travamentos em minha máquina, com estas especificações: Sistema Operacional: GNU/Linux Ubuntu 10.10 - Maverick Meerkat Processador: Intel® Pentium® Dual CPU E2180 @ 2.0 GHz Memória RAM: 2.0 GB O código está todo comentado e foi previamente testado para evitar problemas. Instalação e configuração O script é instalado apenas copiando os conteúdos do arquivo zipado para suas respectivas pastas, e modificando o arquivo movements.xml para incluir o conteúdo do arquivo zipado. O script requer uma leve modificação no mapa, como mostra a imagem abaixo: O script já vem pré-configurado para o mapa acima. A área maior é a área onde será gerado o labirinto. Na imagem acima o tamanho dela é de 15x15. Este valor já vem pré-configurado no script, na linha 46 do maze.lua. maze:set_size(15, 15) Esta área deve estar preenchida com o No-Logout Zone. Os tiles destacados em verde na parte de cima devem ter a ActionID 1001 (Este valor pode ser alterado desde que o script maze.lua e o movements.xml também sejam alterados). O ActionID 1001 é o chaveamento para iniciar o labirinto. O tile destacados em vermelho na parte de baixo deve ter a ActionID 1002 (Este valor pode ser alterado desde que o script maze.lua e o movements.xml também sejam alterados). O ActionID 1002 é o chaveamento para encerrar o labirinto. Caso você deseje alterar algum dado, estas são as configurações necessárias: Relocation Position: Posição para onde serão teleportados os itens e players não relacionados ao minigame quando for executada uma limpeza do labirinto. maze:set_relocation_pos(x, y, z) Top-Left Position: Posição superior-esquerda do primeiro tile da área do labirinto. maze:set_topleft_pos(x, y, z) Exit: Posição da célula do labirinto que será usada como saída. Vale lembrar que esta célula deve estar na parte inferior do labirinto (Isto pode ser alterado mudando a linha 290 do libmaze.lua) e não é contada como uma posição em SQM do Tibia, e sim como número da célula. maze:set_exit(x, y) Wall ID: ItemID da parede do labirinto que será gerada. maze:set_wall(itemid) Para adicionar uma nova entrada no labirinto, usar: maze:add_entrance({ tile = {x=?, y=?, z=?}, init = {x=?, y=?, z=?}, exit = {x=?, y=?, z=?}, }) tile: Posição do tile com o ActionID 1001, usado para ativar o labirinto. init: Posição que o player daquele tile será teleportado assim que o minigame começar. exit: Posição que o player daquele tile será teleportado assim que o minigame acabar. Bugs conhecidos e suas soluções: Estes bugs não podem ser corrigidos via script. Abaixo seguem suas descrições e soluções. Se o player fizer logout dentro da área do labirinto, ao fazer login o mesmo não conseguirá sair de dentro. Para isso, marque toda a área do labirinto como No-Logout Zone. Se o mundo for No-PVP, os players podem passar por cima de outros (update). Caso um player já esteja sobre um dos tiles com ActionID, se outro player entrar em cima dele, o tile receberá um ID não-correspondente. Para solucionar o problema existe um patch de correção do The Forgotten Server que impossibilita a passagem de um player sobre outro em mundos No-PVP onde os tiles possuem ActionID. Arquivos /data/movements/movements.xml <!-- Maze minigame --> <movevent type="StepIn" actionid="1001;1002" event="script" value="maze.lua"/> <movevent type="StepOut" actionid="1001;1002" event="script" value="maze.lua"/> /data/movements/lib/libmaze.lua -- libmaze.lua -- This file is part of Maze minigame -- -- Copyright (C) 2011 Skyen Hasus -- -- This program is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation, either version 3 of the License, or -- at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see <http://www.gnu.org/licenses/>. -- Por questões de compatibilidade com diversas distribuições, mantive esta -- biblioteca na mesma pasta do script. -- Criação da classe Maze (Orientação à Objetos) Maze = {} -- Método útil para comparar posições function Maze:compare_pos(pos1, pos2) return pos1.x == pos2.x and pos1.y == pos2.y and pos1.z == pos2.z end -- Inicializa uma nova instância de Maze (Orientação à Objetos) function Maze:new(obj) local obj = obj or {} if not obj.entrances then obj.entrances = {} end if not obj.players then obj.players = {} end return setmetatable(obj, {__index=self}) end -- Métodos de configuração function Maze:add_entrance(template) table.insert(self.entrances, template) end function Maze:add_player(entrance, cid) self.players[cid] = entrance end function Maze:rem_players() for cid, _ in pairs(self.players) do self.players[cid] = nil end end function Maze:set_relocation_pos(x, y, z) self.relpos = {x=x, y=y, z=z} end function Maze:set_topleft_pos(x, y, z) self.topleft = {x=x, y=y, z=z} end function Maze:set_exit(x, y) self.exit = {x=x, y=y} end function Maze:set_wall(id) self.wall_id = id end function Maze:set_size(width, height) self.size = {width=width, height=height} end function Maze:set_area(template) self.area = template end -- Métodos para ler a configuração function Maze:get_entrances() return self.entrances end function Maze:get_entrance(pos) for _, entrance in ipairs(maze:get_entrances()) do if self:compare_pos(pos, entrance.tile) then return entrance end end return false end function Maze:get_players() return self.players end function Maze:get_relocation_pos() return self.relpos end function Maze:get_topleft_pos() return self.topleft end function Maze:get_exit() return self.exit end function Maze:get_wall() return self.wall_id end function Maze:get_size() return self.size end function Maze:get_area() return self.area end -- Métodos úteis para o desenvolvimento do script function Maze:get_top_left(pos) return {x=pos.x-1, y=pos.y-1, z=pos.z, stackpos=pos.stackpos} end function Maze:get_top_right(pos) return {x=pos.x+1, y=pos.y-1, z=pos.z, stackpos=pos.stackpos} end function Maze:get_bottom_left(pos) return {x=pos.x-1, y=pos.y+1, z=pos.z, stackpos=pos.stackpos} end function Maze:get_bottom_right(pos) return {x=pos.x+1, y=pos.y+1, z=pos.z, stackpos=pos.stackpos} end function Maze:get_top(pos) return {x=pos.x, y=pos.y-1, z=pos.z, stackpos=pos.stackpos} end function Maze:get_bottom(pos) return {x=pos.x, y=pos.y+1, z=pos.z, stackpos=pos.stackpos} end function Maze:get_left(pos) return {x=pos.x-1, y=pos.y, z=pos.z, stackpos=pos.stackpos} end function Maze:get_right(pos) return {x=pos.x+1, y=pos.y, z=pos.z, stackpos=pos.stackpos} end -- Método para transformar uma posição do Tibia em células do labirinto function Maze:to_maze(value) return (value-1)/2 end -- Método que verifica se todos os players estão em suas posição e se não -- há nenhum player dentro do labirinto function Maze:is_available() local start = self:get_topleft_pos() local size = self:get_size() for _, entrance in ipairs(self:get_entrances()) do local player = getTopCreature(entrance.tile) if player.uid == 0 or not isPlayer(player.uid) then return false end end for x = start.x, start.x+size.width do for y = start.y, start.y+size.height do local player = getTopCreature({x=x, y=y, z=start.z}) if isCreature(player.uid) then return false end end end return true end -- Método para pegar uma lista de células vizinhas function Maze:get_neighbors(x, y) local neighbors = { {x=x, y=y-1}, {x=x, y=y+1}, {x=x-1, y=y}, {x=x+1, y=y}, } return neighbors end -- Método para determinar se uma posição está dentro de uma área function Maze:is_valid(x, y) local size = self:get_size() local width = self:to_maze(size.width) local height = self:to_maze(size.height) return x >= 1 and x <= width and y >= 1 and y <= height end -- Método para geração de uma área limpa para o labirinto function Maze:generate_area() local size = self:get_size() -- Verifica se a área do labirinto é valida if not ((size.width-1)%2 == 0 and (size.height-1)%2 == 0) then print("Warning: Invalid size for maze area generation!") return false end -- Gera a área e suas respectivas células limpas local area = {} for x = 1, self:to_maze(size.width) do area[x] = {} for y = 1, self:to_maze(size.height) do -- Gera uma nova célula limpa area[x][y] = { visited = false, top = true, bottom = true, left = true, right = true, } end end self:set_area(area) return true end -- Método recursivo para caminhar pela área do labirinto, gerando os caminhos function Maze:handle_cell(x, y) -- Pega a área e tamanho do labirinto e copia em váriaveis locais -- para otimização do código local area = self:get_area() local size = self:get_size() -- Antes de mais nada, marca a célula atual como visitada area[x][y].visited = true; -- Pega uma lista de células vizinhas local nb = self:get_neighbors(x, y) local used = {false, false, false, false} -- Converte o tamanho do labirinto de número de tiles -- para número de células local width = self:to_maze(size.width) local height = self:to_maze(size.height) -- Enquanto a célula atual tiver vizinhas não visitadas, inicie um novo -- caminho pelo labirinto, partindo de uma célula aleatória while not (used[1] and used[2] and used[3] and used[4]) do local c = math.random(1, 4) used[c] = true -- Verifica se a célula vizinha escolhida é válida e ainda não -- foi visitada if self:is_valid(nb[c].x, nb[c].y) and not area[nb[c].x][nb[c].y].visited then -- Abre as paredes entre as duas células if c == 1 then area[x][y].top = false area[nb[c].x][nb[c].y].bottom = false elseif c == 2 then area[x][y].bottom = false area[nb[c].x][nb[c].y].top = false elseif c == 3 then area[x][y].left = false area[nb[c].x][nb[c].y].right = false elseif c == 4 then area[x][y].right = false area[nb[c].x][nb[c].y].left = false end -- Salva as modificações na área e faz a recursão self:set_area(area) self:handle_cell(nb[c].x, nb[c].y) end end -- No fim de tudo, salva a área do labirinto gerado self:set_area(area) end -- Gera um novo labirinto function Maze:generate_maze() local size = self:get_size() local centerx = math.floor(math.ceil(size.width/2)/2) local centery = math.floor(math.ceil(size.height/2)/2) self:handle_cell(centerx, centery); local area = self:get_area() local exit = self:get_exit() area[exit.x][exit.y].bottom = false self:set_area(area) end -- Método útil para limpar a área do labirinto dentro do jogo function Maze:clean(callback, wall, winner) winner = winner or false local start = self:get_topleft_pos() local size = self:get_size() -- Faz uma varredura pela área for x = start.x, start.x + size.width-1 do for y = start.y, start.y + size.height-1 do local pos = {x=x, y=y, z=start.z, stackpos=1} -- Enquanto existirem itens na posição, continue -- a enviá-los para a função callback while getThingFromPos(pos, false).uid ~= 0 do local thing = getThingFromPos(pos, false) if wall and thing.itemid == self:get_wall() then doRemoveThing(thing.uid) else callback(self, thing, winner) end pos.stackpos = pos.stackpos + 1 end end end end -- Método para aplicar uma área de labirinto gerada em uma área do Tibia -- Mesmo que uma área de labirinto seja criada e gerada, nada aparecerá no -- Tibia caso se esta função não for chamada function Maze:apply_maze() local pos = self:get_topleft_pos() local wall = self:get_wall() local area = self:get_area() local size = self:get_size() -- Faz uma varredura pela área for x = 1, self:to_maze(size.width) do for y = 1, self:to_maze(size.height) do -- Pega a célula da posição atual local cell = area[x][y] local rawpos = {x=pos.x+x*2-1, y=pos.y+y*2-1, z=pos.z} rawpos.stackpos = 1 -- Cria as paredes fixas (que não precisam ser geradas) -- em seus respectivos lugares local cpos = self:get_top_left(rawpos) if getThingFromPos(cpos, false).uid == 0 then doCreateItem(wall, cpos) end local cpos = self:get_top_right(rawpos) if getThingFromPos(cpos, false).uid == 0 then doCreateItem(wall, cpos) end local cpos = self:get_bottom_left(rawpos) if getThingFromPos(cpos, false).uid == 0 then doCreateItem(wall, cpos) end local cpos = self:get_bottom_right(rawpos) if getThingFromPos(cpos, false).uid == 0 then doCreateItem(wall, cpos) end -- Cria as paredes geradas em seus respectivos lugares local cpos = self:get_top(rawpos) if cell.top and getThingFromPos(cpos, false).uid == 0 then doCreateItem(wall, cpos) end local cpos = self:get_bottom(rawpos) if cell.bottom and getThingFromPos(cpos, false).uid == 0 then doCreateItem(wall, cpos) end local cpos = self:get_left(rawpos) if cell.left and getThingFromPos(cpos, false).uid == 0 then doCreateItem(wall, cpos) end local cpos = self:get_right(rawpos) if cell.right and getThingFromPos(cpos, false).uid == 0 then doCreateItem(wall, cpos) end end end end /data/movements/scripts/maze.lua -- maze.lua -- This file is part of Maze minigame -- -- Copyright (C) 2011 Skyen Hasus -- -- This program is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation, either version 3 of the License, or -- at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see <http://www.gnu.org/licenses/>. -- Ao carregar o script, carregar também a biblioteca dofile(getDataDir() .. "movements/lib/libmaze.lua") -- ----------------------------------------------------------------------------- -- Criação e configuração de um novo labirinto: -- ----------------------------------------------------------------------------- local maze = Maze:new() maze:add_entrance({ tile = {x=1000, y=1016, z=7}, init = {x=1000, y=1018, z=7}, exit = {x=1000, y=1014, z=7}, }) maze:add_entrance({ tile = {x=1012, y=1016, z=7}, init = {x=1012, y=1018, z=7}, exit = {x=1012, y=1014, z=7}, }) maze:set_relocation_pos(1006, 1012, 7) maze:set_topleft_pos(999, 1017, 7) maze:set_exit(4, 7) maze:set_wall(1483) maze:set_size(15, 15) -- ----------------------------------------------------------------------------- -- Gera uma nova semente aleatória, garantindo que cada labirinto seja único math.randomseed(os.time()) -- Função callback para limpeza do labirinto local function clear_thing(maze, thing, winner) local entrances = maze:get_entrances() local players = maze:get_players() if isPlayer(thing.uid) and players[thing.uid] then if winner then doPlayerSendTextMessage(thing.uid, 25, getPlayerName(winner) .. " completed the maze!") end doTeleportThing(thing.uid, entrances[players[thing.uid]].exit) else doTeleportThing(thing.uid, maze:get_relocation_pos()) end end -- Função callback principal do evento StepIn function onStepIn(cid, item, position) if not isPlayer(cid) then return true end doTransformItem(item.uid, item.itemid+1) if item.actionid == 1001 and maze:is_available() then if not maze:generate_area() then return false end maze:generate_maze() maze:clean(clear_thing, true) maze:apply_maze() for id, entrance in ipairs(maze:get_entrances()) do local player = getTopCreature(entrance.tile) doTeleportThing(player.uid, entrance.init) maze:add_player(id, player.uid) end elseif item.actionid == 1002 then local entrances = maze:get_entrances() local players = maze:get_players() doTeleportThing(cid, entrances[players[cid]].exit) doPlayerSendTextMessage(cid, 25, "You completed the maze!") maze:clean(clear_thing, false, cid) maze:rem_players() end return true end -- Função callback principal do evento StepOut function onStepOut(cid, item) if not isPlayer(cid) then return true end doTransformItem(item.uid, item.itemid-1) return true end ------ Isso aew, obrigado a todos que participou do concurso e este foi o grande vencedor.
    1 ponto
  3. anaosinho

    Pokemons Formato .idc

    Eae Galerinha, é meu Primeiro post no XTibia então sem pisar em mim em ;B Procurei e não achei um tutorial assim então vou postar pra ajudar os iniciantes Eu estarei ensinando como se adiciona sprites prontas com formato .idc Primeira mente você precisara do programa DAT EDITOR Download : Pacote de Sprites Prontas Pokemons Johto Feitos Pelo Purple: Agora com os 125 pokemons, Corpses, Magias e portraits de todos os johto: http://www.4shared.com/file/WWLgCVbT/johtos.html Dat Editor : http://www.multiupload.com/KD9NW6TMF0 Scan Dat Editor: http://www.virustotal.com/file-scan/report.html?id=3c5e94e59df52ef693d12b0543aa66d6f8b0dee89a88bdb1e1cd1ca5d3d13195-1306952621 Novo Scan Pacote de Sprites :http://www.virustotal.com/file-scan/report.html?id=98c2917453f3829817cf36562a34dc627000675528a0ef62f4838cf256584da2-1303932047 Agora vamos começar Depois de baixar o Dat Editor, extraia ele na pasta que você quiser. Abra o dat editor, Vá em : File / Open Procure a pasta do client do seu Server, e nos seus devidos lugares abra o Tibia.dat e Tibia.spr Espere carregar e as sprites do seu client irão aparecer Agora Extraia os pokemons que vocês baixaram , e note que eles estão em formato .idc Vá no dat editor e clique em : Import / Import Itens Vá ate a pasta onde você extraiu os pokemons em formato .idc, segure Ctrl e selecione todos de uma vez As sprites irão aparecer no Canto esquerdo Agora clique em : File / Save Na janelinha clique em Compile Depois que carregar totalmente Feixe a janelinha Más não fexe o Dat Editor Na tabela inferior do Dat Editor tem vários itens, e um deles é o ItemType Pegue esse numero do ItemType e grave ou copie. Abra a pasta do seu Server, clique em : Data / Monsters / Pokes Copie Qualquer Arquivo XML Renomeie para o nome do Pokemon que esta no Dat Editor Abra o arquivo com o bloco de notas. Mude o nome do Pokemon , e Lá onde está escrito : Look Type = ... Mude para o ItemType que esta no dat editor ( que eu falei pra copiar) Volte para a pasta : Data / Monsters Abra o arquivo Monsters.xml Copie qualquer Pokemon, mude o nome para o Pokémon que você criou, e no fim da linha esta escrito o nome do Pokemon .xml Mude para o nome do arquivo que você criou. Lembrete sempre ponha .xml no fim Salve tudo, e Abra o seu Server Proonto novo Pokémon Adicionado :x Se você quiser Adicionar os atakes novos dos pokemons fala isso: Embaixo , lá no xml do pokemon na linha </flags> <attacks> <attack name="nome da magia (tem que existir no seu server)" interval="tempo que o mosntro usa" chance="chance de usar" range="poder da magia" min="dano minimo use sempre o menos EX: -100" max="dano maximo use sempre o menos EX: -200"> </attack> ai vai adicionando as linhas com os novos atakes se o atake ainda não estiver criado vá na pasta Spells crie um xlm da nova magia, edite o nome, vá no dat editor pegue o item type da magia que você quer (o efeito desejado) volte, abra o Spells.xml adicione a sua nova magia. depois faça o que eu disse a cima. crie uma linha no xml do seu pokemon e vá adicionando as magias ^^ use isso para faser os pokemons selvagens '-' Gentee entra no meu novo tutorial , Criando novos itens e corpses com ids proprios http://www.xtibia.com/forum/topic/158900-criando-novos-id-de-items-e-corpses/page__p__1047720#entry1047720 See te Ajudei Dáa um +Rep Ae pro Okaminha ;B não cai o dedo \õ :smile_positivo: Créditos: Psycho Okama < Eoooooo E as sprites convertidas pelo < Purple Fuiz \õ/
    1 ponto
  4. Olá :XTibia_smile: quando eu era novo em ot (adimito, não faz muito tempo) eu queria aprender a CRIAR novos pokes com novas sprites e tudo, e eu num achava como... Eu fucei em uns negócios e consegui!! Então como eu sei que tem muitas pessoas com esse mesmo problema, decidi criar esse tuto. Então, vamos ao trabalho. Parte 1: Sprites Faça o download desse dat editor: DAT EDITOR DOWNLOAD Gente até aqui utilizamos o dat editor com imagens... a partir de agora é com XML só de poketibia e com spoiler, ou seja, sem fotos. Observações: Obs1: Todos os sprites devem ser em 32x32 píxels e salvos em formato ou PNG (aconselho) ou em BPM... Obs2: Para pokemon/monsters de 4 sqm, Width:2, Height:2, precisam de 4 sprites de 32x32 para cada parte... Obs3: A Animation pode ter quantas forem necessárias.. 1=não tem animção, 2, 3, 4, 5, etc... Obs4: Eu estou disponibilizando um site com sprites de pokemon só para recortar: http://www.spriters-resource.com/ds/pkmndungeon2/index.html Parte 2: XML 1º passo: Abra a pasta Data/Monsters/Pokes copie e cole um pokemon qualquer e mude o nome por fora. monster name: nome do monstro. nameDescription: como fica o nome quando da look no poke. race: Sempre será undead.. Não mude. experience: experiência que o pokemon dá ao derrotá-lo. speed: velocidade do monstro. health now: vida atual (ao ver ele em local de spawn). max: vida real dele, quando estiver totalmente curado. look type: quando vc estiver no dat editor ainda, lá tem itemtype em Extras nas barrinhas de baixo.. coloque o itemtype que está lá, aqui. attacks: os attacks que ele irá utilizar se for selvagem... se não for, não coloque nada e sim apague. defenses: Que tipo de defesa ele utiliza por exemplo: a cada 4000 interval ele se cura. voices: as vozes que ele fala (aquelas em laranja). loot: o item que cai do poke em id. Legal, daí vc abre Data/Monsters/Monsters.xml e lá fassa a mesma coisa, copie qualquer uma linha e cole ali mesmo: monster name: nome do monstro. file="pokes/.xml": onde estaria escrito "pidgey" coloque o nome do arquivo XML que vc colocou no seu poke. EX.: Se eu criei um agron, e coloquei o nome do xml de agron, teria que colocar: file="pokes/agron.xml" Ajudas: 1ª ajuda: Para passar as sprites para 32x32 tem que ser assim: Imagem Só dá para ser feito isso pelo paint. Créditos: 99% BlueshardXD 01% GustavoFire (por achar o link de download ^-^) Bom gente é isso.. qualquer dúvida pode postar (ñ sei se irei resolver mas...) e postem comentários por favor.. Por que eu fasso um tutorial desse tamanho e nem ligam... Pelo amor de Deus em... MEU PRIMEIRO POST DE TUTORIAL.. ENTÃO DÊEM COMENTÁRIOS CONSTRUTIVOS... E NÃO AQUELES QUE SÓ JOGA AGENTE NO FUNDO DO POÇO VIU... MAS VALEU! DESCOBRI UMA DICA!!! Eu descobri uma coisa que será muito útil para todos os que aprenderam e estão fazendo seus servers com monsters ou pokes novos... aqui vamaos à dica... Após fazer seu monster ou poke no Dat Editor clique em Export/Export Item... e salve am algum canto... (aconselho em uma pasta separada) o arquivo será salvo no formato .idc IREI EXPLICAR PRA QUE ISSO SERVE: se vc perder os dados ou fizer outro server ou sei lah o que vc queira.. ao abrir o dat editor clique em New/Monster... e quando aparecer o novo monstro pra vc criar as sprites e adionar vc, ao envés de clicar em Import/Sprites, clica em Import/Import Itens e seleciona o Monster/Pokemon que vc salvou no formato .idc e ele aparecerá com as sprites todas jah adicionadas e alteradas.. Ex: jah estará com a sequencia <,^,>,\/, e se for um poke ou monster de 4 sqm (height2, weight2) jah estará tudo correto... Se for de 9 sqm, 16 sqm, etc... vai estar tudo certo.. VANTAGEM: vc num vai perder tempo fazendo sprite por sprite Novamente !!! Espero ter ajudaddo novamente!!!
    1 ponto
  5. 1° Vá em Htdocs e crie um arquivo chamado confirmacao.php e ponha isso: <?PHP $main_content .= ' <form name="form1" method="post" action="donate/gravar.php"> </SCRIPT> <FIELDSET id=fieldcontato><LEGEND><STRONG>Formulário</STRONG> </LEGEND> <FORM id=form1 method=post name=form1> <TABLE border=0 cellSpacing=3 cellPadding=3 width=500> <TBODY> <TR> <TD width="29%"><STRONG>Assunto</STRONG></TD> <TD width="71%"><LABEL><SELECT id=assunto name=assunto> <OPTION selected>Doação por Pagseguro (Boleto, Cartão de Credito e etc)</OPTION> <OPTION>Doação pelo Banco Real</OPTION></SELECT> </LABEL></TD></TR> <TR></TD> <TD height=20 vAlign=center colSpan=2> <HR color=#c0c0c0 noShade> </TD></TR> <TR> <TD><STRONG>Nome</STRONG></TD> <TD><SPAN id=nome><LABEL><INPUT id=nome maxLength=40 size=25 name=nome> </LABEL><SPAN class=textfieldRequiredMsg><FONT size=1>Digite seu nome completo.</FONT></SPAN></SPAN></TD></TR> <TR></TD> <TD height=20 vAlign=center colSpan=2> <HR color=#c0c0c0 noShade> </TD></TR> <TR> <TD><STRONG>Email da sua Account</STRONG></TD> <TD><SPAN id=email><LABEL><INPUT id=email size=25 name=email> </LABEL><SPAN class=textfieldRequiredMsg><FONT size=1>Digite o email da sua conta.</FONT></SPAN><SPAN class=textfieldInvalidFormatMsg></SPAN></SPAN></TD></TR> <TR></TD> <TD height=20 vAlign=center colSpan=2> <HR color=#c0c0c0 noShade> </TD></TR> <TR> <TD><STRONG>Sua Account</STRONG></TD> <TD><SPAN id=conta><LABEL><INPUT id=account maxLength=25 size=25 name=account> </LABEL><SPAN class=textfieldRequiredMsg><FONT size=1>Digite sua conta.</FONT></SPAN><SPAN class=textfieldInvalidFormatMsg></SPAN></SPAN></TD></TR> <TR></TD> <TD height=20 vAlign=center colSpan=2> <HR color=#c0c0c0 noShade> </TD></TR> <TR> <TD><STRONG>Personagem</STRONG></TD> <TD><SPAN id=personagem><LABEL><INPUT id=personagem size=25 name=personagem> </LABEL><SPAN class=textfieldRequiredMsg><FONT size=1>Digite seu personagem.</FONT></SPAN></SPAN></TD></TR> <TR></TD> <TD height=20 vAlign=center colSpan=2> <HR color=#c0c0c0 noShade> </TD></TR> <TR></TR> <TR> <TD><STRONG>Valor da doação</STRONG></TD> <TD><SPAN id=valor><LABEL><INPUT id=valor maxLength=3 size=25 name=valor> <SPAN class=textfieldRequiredMsg><FONT size=1>Exemplo: 40</FONT></SPAN></SPAN></LABEL></TD></TR> <TR></TD> <TD height=20 vAlign=center colSpan=2> <HR color=#c0c0c0 noShade> </TD></LABEL></TR> <TR> <TD><STRONG>Data do depósito</STRONG></TD> <TD><SPAN id=data><LABEL><INPUT id=data maxLength=10 size=25 name=data> </LABEL><SPAN class=textfieldRequiredMsg><FONT size=1>Exemplo: 15/07/2009</FONT></SPAN><SPAN class=textfieldInvalidFormatMsg></SPAN></SPAN></TD></TR> <TR></TD> <TD height=20 vAlign=center colSpan=2> <HR color=#c0c0c0 noShade> </TD></TR> <TR> <TD><STRONG>Hora do depósito</STRONG></TD> <TD><SPAN id=hora><LABEL><INPUT id=hora maxLength=5 size=25 name=hora> </LABEL><SPAN class=textfieldRequiredMsg><FONT size=1>Exemplo: 14:20</FONT></SPAN><SPAN class=textfieldInvalidFormatMsg></SPAN></SPAN></TD></TR> <TR></TD> <TD height=20 vAlign=center colSpan=2> <HR color=#c0c0c0 noShade> </TD></TR> <TR> <TD><STRONG>Imagem do comprovante</STRONG><BR><FONT color=red>(Apenas por Deposito)</FONT></TD> <TD><LABEL><INPUT id=imagem size=25 name=imagem> <BR> <H5>Hospede a foto do seu comprovante no <A href="http://www.imageshack.us" target=_blank>ImageShack</A></H5></LABEL></TD></TR> <TR></TD> <TD height=20 vAlign=center colSpan=2> <HR color=#c0c0c0 noShade> </TD></TR> <TR> <TD> </TD></TR></TBODY></TABLE> <P><INPUT value=Enviar type=submit name=enviar> <INPUT value=Limpar type=reset name=limpar></P></FORM></FIELDSET><BR> <H3>Dúvidas.</H3><FONT color=red>Atenção se você fez uma doação no dia 01 se tem que confirma no maximo até dia 03( Seu comprovante vale por 48 horas ), caso contrário sua doação não é mas valida ou seja no momento que você faz uma doação se tem que confirma rapidamente! Para não ocorrer atrasos.<BR></FONT> <P><STRONG>1) Fiz meu depósito e confirmei quantos dias devo esperar antes de enviar uma nova confirmação?</STRONG><BR><STRONG>R:</STRONG> Sua doação será liberada em até 24hrs após o envio da confirmação. Se em 24 horas você ainda não recebeu sua Doação, envie uma nova confirmação.</P> <P><STRONG>2) Fiz meu depósito, como prosseguir para receber minha Doação?</STRONG><BR><STRONG>R:</STRONG> É simples basta clicar em "Confirmar Donate", prencha ele corretamente com todos os dados pedidos. Não digite nada errado, pois isso atrasará sua Doação e você terá que esperar 24h para enviar uma nova confirmação.</P> <P><STRONG>3) O que é imagem do comprovante, como consigo uma? </STRONG><BR><STRONG>R:</STRONG> Esta opção serve para agiilizar a ativação de sua Doação. Após escanear o seu comprovante ou tirar uma foto você deve hospedar no site citado e enviar o link para nós usando o campo imagem.</P><FONT color=red>OBS: Só é obrigatorio por Deposito pelo Banco Real.<BR></FONT> <script type=text/javascript> <!-- var sprytextfield1 = new Spry.Widget.ValidationTextField("nome", "none", {validateOn:["blur", "change"]}); var sprytextfield2 = new Spry.Widget.ValidationTextField("email", "email", {validateOn:["blur", "change"]}); var sprytextarea1 = new Spry.Widget.ValidationTextarea("dados", {validateOn:["blur", "change"]}); var sprytextfield3 = new Spry.Widget.ValidationTextField("conta", "integer", {validateOn:["blur", "change"]}); var sprytextfield4 = new Spry.Widget.ValidationTextField("personagem", "none", {validateOn:["blur", "change"]}); var sprytextfield5 = new Spry.Widget.ValidationTextField("data", "date", {format:"dd/mm/yyyy", validateOn:["blur"]}); var sprytextfield6 = new Spry.Widget.ValidationTextField("valor", "integer", {validateOn:["blur", "change"]}); var sprytextfield7 = new Spry.Widget.ValidationTextField("hora", "time", {validateOn:["blur", "change"]}); //--> </SCRIPT> <BR><BR></TD></TABLE> <CENTER></CENTER></TD></TABLE></DIV> '; ?> Agora vá em index.php e adicione isto: case "confirmacao"; $subtopic = "confirmacao"; $topic = "Confirmar Pontos"; include("confirmacao.php"); break; Agora vá em Htdocs/layouts/tibiacom/layout.php e adicione isto: <a href='?subtopic=confirmacao'> <div id='submenu_buypoints' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(".$layout_name."/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_buypoints' class='ActiveSubmenuItemIcon' style='background-image:url(".$layout_name."/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'><font color=red>Confirmar Pagamento</font></div> <div class='RightChain' style='background-image:url(".$layout_name."/images/general/chain.gif);'></div> </div> </a> Agora preste atenção : Faça download do arquivo abaixo (pasta Donate) e cole-o em Htdocs,onde fica todos os seus phps. O script está configurado para pagamento via pagseguro e BB.Mais é apenas confirmação,então não irá fazer muita diferença da onde veio o pagamento.Eu acho... Após ter feito isso clique em confirmação no seu site e faça um teste. O script contém: Nome Assunto Email Account Personagem Data do deposito Hora do * Imagem do comprovante Toda confirmação feita irá para a pasta Htdocs/donate/arquivo.txt <<<<< Não esqueça !!! Abraços !! Link do Download : Donate.rar
    1 ponto
  6. adoXD

    Sqlite Para Mysql (Sem Resetar)

    Aew pessoal =D Esse tutorial vai ajudar e muito aquelas pessoas que querem colocar um site em seu ot, mais não querem resetar Ja aconteceu varias vezes isso comigo, e sempre eu perdi um numero consideravel de player. Mas isso e passado:D Bom vo mostrar aki como voce passa a database sqlite de seu ot para mysql !!! :sql: Antes de começar : voce ja presisa ter instalado o servidor mysql 1 - Downloads Primero fasa o download do programa DBConvert -- Download OBS - O programa e pago, intão voce tem algumas limitações , mais assim que eu puder eu posto o serial dele =D. 2 - Instale ele ( instalação normal como qualquer outro programa, jogo, etcs...) 3 - Abra ele ( ira aparecer a seguinte tela), clique em testar 4 - Agora clique em proximo 5 - Clique em novo, em seguida clique nos (...) e especifique sua database ( a database sqlite), OBS : se sua database não aparecer, clique em all files no momento em que voce for procurar sua db. 6 - Agora preencha o formulario de acordo com a sua conexão com a base de mysql, e em base de dados em baixo coloque o nome da database que quiser. (em cima onde esta escrito destino, deixe o mesmo "Base de dados mysql") (em nomedasuadatabase, coloque o nome que voce quer que fique a database no servidor). 7- Em seguida clique em proximo. 8 - Logo depois clique em commit ( se aparecer alguma mensagem , clique apenas em ok)(a mensagem e devido o programa não ser gratuito=/ ) 9- Depois de carregar não vai aparecer nenhuma mensagem , apenas ficara assim. 10 - Clique em sair . PRONTO sua database sqlite passou para mysql OBS : qualquer erro ou duvida eu respondo Espero que tenham gostado :penguin:
    1 ponto
  7. TESTEI AQUI EM CASA O TUTORIAL PQ AGORA EU TENHO NET COMPARTILHADA ! Brzinhobr aqui para ensinar a criar um otserver 8.7 com net compartilhada e sem hamachi e o melhor Ip fixo ;D ! Primeiro baixe o ProXPN CLIQUE AQUI PARA BAIXAR Agora baixe o No-IP Duc não baixe do baixaki porque la é desatualisado ;] então aqui vai o link -> CLIQUE AQUI PARA BAIXAR Vamos começar ! depois que baixo o proxpn instale normalmente ! agora instale o no-ip duc que baixou quase agora ! agora vamos fazer um cadastro com o proxpn abra-o agora clique em "don't have account" la no programa proxpn vai abrir uma pagina nova clique em "No thanks, I want a proXPN Basic account" na pagina que abriu la em cima ! pronto clicou la agora coloque seu email escolha uma senha e repita a senha aceite a primeira caxinha que ta escrito "I have read and agree to the Terms of Service and Privacy Policy." e depois clique em "create an account". AGORA VAI NA CAIXA DE ENTRADA DO SEU EMAIL ABRA O EMAIL QUE RECEBEU PELO PROXPN CLIQUE NO LINK QUE TA LA PARA ATIVAR A CONTA PRONTO TA ATIVADO! Abra o proxpn novamente coloque seu email la e sua senha que escolheu no cadastro do site ! clique em connect agora espere um pouco, pronto conectou e gerou um novo ip este ip sempre ira mudar ele serve como nao fosse net compartilhada sempre abra o programa conecta e pega o novo ip e coloque no config.lua ! -------------------VAMOS AO IP DO OT---------------------- entre no site http://www.no-ip.com/newUser.php copie esse link < e coloca no navegador ! coloque seus dados la aceite os termos e pronto ! cadastro concluido . agora vamos criar o ip fixo para seus amigos entrarem ! faça login no site no-ip.com com seu email cadastrado e senha. pronto entrou agora clique em "ADD a HOST" pronto em "host name" coloque o nome do seu server sem espaço por ex: meuot.servegame.com coloco o nome la seleciono o dominio servegame.com do lado do nome do server eu recomendo "servegame.com" pronto escolheu clique em "create host" pronto ip fixo criado ! abra-o no-ip o programa, agora que abriu onde ta escrito Ip: 184.6554.6454 algo assim (local) onde ta escrito local era para tar escrito (router e had) algo assim se tibesse assim nao ia pegar so pega se for local , vc deve ta perguntando pq ta (local) pro causa do programa proxpn e ainda o ip do programa ta la ;] clique em "select hosts" aguarde um pouco e clique na caixinha do ip que apareceu . pronto ip fixo pronto ! ---------------Criando seu ot-------------------- Baixe um ot aqui na xtibia seção de downloads 8.7! baixo ele mas os sources dlls e executer extraia o ot e os dlls e os sources, cole as dlls na pasta do ot pega a pasta do source e coloque na pasta do ot ! pronto abra um arquivo chamado "config.lua" desce um pouco e vai ter: -- Connection Config ip = "127.0.0.1" <<< AQUI MUDE PARA O IP DO PROXPN SEMPRE VAI MUDAR O IP DO PROGRAMA ! bindOnlyGlobalAddress = "no" loginProtocolPort = 7171 gameProtocolPort = 7172 adminProtocolPort = 7171 statusProtocolPort = 7171 loginTries = 10 retryTimeout = 5 * 1000 loginTimeout = 60 * 1000 maxPlayers = "1000" motd = "Welcome to the Azeroth Server!" onePlayerOnlinePerAccount = "yes" allowClones = "no" serverName = "Azeroth" loginMessage = "Welcome to the Azeroth Server!" adminLogsEnabled = "no" statusTimeout = 5 * 60 * 1000 replaceKickOnLogin = "yes" DEPOIS SALVE E FECHE O ARQUIVO ABRA O OT CHAME SEUS AMIGOS PARA JOGAR ;D! Se voçe nao entendeu a parte de criar o ot ou outras partes add no msn: matheus.310@live.com! ESSE TUTO FOI CRIADOR POR MIN BRZINHOBR MATHEUS.310@LIVE.COM SE FOR COPIAR O TUTORIAL COLOQUE OS CREDITOS ! --' ODEIO QUEM NAO COLOCA ;D PROXIMO TUTO SERA MAS EXPLICATIVO E COM IMAGENS PROMETO . TESTEI AQUI EM CASA O TUTORIAL PQ AGORA EU TENHO NET COMPARTILHADA ! TUTO BY BRZINHOBR. msn: matheus.310@live.com !
    1 ponto
  8. Garou12

    The Blacksmith System

    re-re
    1 ponto
  9. Finalmente vai poder falar com pessoas que nunca falou '-' O que é o TeamSpeak? Teamspeak é um programa que serve para jogadores se comunicarem através do microfone. O TeamSpeak é muito util em uma war ou em qualquer tipo de jogo. Ele também é util se voce tiver um servidor, o Teamspeak pode servir de contato entre players e GM's. Então vou mostrar aqui como se cria um servidor de TeamSpeak. Fácil e rápido! 1-Clique no menu iniciar e logo em seguida, clique com o botão direito do mouse em Meu Computador. Clique em Propriedades. Nas propriedades deve mostrar se o seu windows é 32 ou 64 bits. 2-Agora ,vá em http://www.teamspeak.com/?page=downloads e baixe o Client (32bit ou 64bit) e o Server (32bit ou 64bit). 3- Depois de ter baixado, vá em seu firewall e Adicione a porta 9987 (UDP) , depois adicione 10011 (TCP) e por ultimo adicione 30033 (TCP). E adicione essas 3 portas em seu roteador/modem também. 4- Agora vá no site www.no-ip.com. Crie sua conta e depois de ter logado, clique em Add Host. Crie um IP. Ex : xtibiateamspeak.servegame.com 5- Depois de ter criado o IP, abra o Server que você baixou no site do teamspeak. Provavelmente ele te mostrará uma senha e um codigo, guarde-os. Agora abra o TeamSpeak 3 e em Adress(Endereço) coloque o IP criado e ponha :9987 no final do IP. (Exemplo : xtibiateamspeak.servegame.com:9987 ) Pronto! Seu servidor de TeamSpeak foi criado. Agora chame seus amigos. Lembrando que eles entrarão pelo IP que foi criado. (xtibiateamspeak.servegame.com:9987) [VIDEO-AULA] Como criar um servidor de TeamSpeak 3 http://www.youtube.com/watch?v=Kd99ERESe7U Download da VIDEO AULA- Aqui Créditos 100% RaizenUrameshi Caso não tenha conseguido criar o servidor, poste aqui o erro ou a dúvida[/b]
    1 ponto
  10. Eaww galera :smile_positivo: Vo passar pra vcs uma script q eu achei na net,e q pode ser bastante utilizada.Concerteza vcs já viram... Voce fala o comando, e os player da party fica com a mesma outfit q a sua, tbm funciona com guilds. Vá em talkaction e crie changeparty.lua, e cole dentro (esse funciona somente com as pt) depois vá em talkactions.xml e adicione essa linha no lugar dos players <talkaction words="!go" event="script" value="changeparty.lua"/> agora a q funciona em guilds crie guildoutfit.lue e cole isso dentro local config = { exhaustionInSeconds = 30, storage = 34534 } function onSay(cid, words, param) if(exhaustion.check(cid, config.storage) == TRUE) then doPlayerSendCancel(cid, "You can change outfit only 1 time per " .. config.exhaustionInSeconds .. " seconds.") return TRUE end local playerGuild = getPlayerGuildId(cid) if(playerGuild == FALSE) then doPlayerSendCancel(cid, "Sorry, you're not in a guild.") return TRUE end local playerGuildLevel = getPlayerGuildLevel(cid) if(playerGuildLevel < GUILDLEVEL_LEADER) then doPlayerSendCancel(cid, "You have to be Leader of your guild to change outfits!") return TRUE end local players = getPlayersOnline() local outfit = getCreatureOutfit(cid) local message = "*Guild* Your outfit has been changed by leader. (" .. getCreatureName(cid) .. ")" local members = 0 local tmp = {} for i, tid in ipairs(players) do if(getPlayerGuildId(tid) == playerGuild and cid ~= tid) then tmp = outfit if(canPlayerWearOutfit(tid, outfit.lookType, outfit.lookAddons) ~= TRUE) then local tidOutfit = getCreatureOutfit(tid) tmp.lookType = tidOutfit.lookType tmp.lookAddons = tidOutfit.lookAddons end doSendMagicEffect(getCreaturePosition(tid), 66) doCreatureChangeOutfit(tid, tmp) doPlayerSendTextMessage(tid, MESSAGE_INFO_DESCR, message) members = members + 1 end end exhaustion.set(cid, config.storage, config.exhaustionInSeconds) doPlayerSendCancel(cid, "Guild members outfit has been changed. (Total: " .. members .. ")") return TRUE end talkactions.xml <talkaction words="!go" event="script" value="guildoutfit.lua"/> Fotos: http://imageshack.us/photo/my-images/59/imagemzkj.jpg/ creditos: averatec slawkens ta ae intaum t+
    1 ponto
  11. brun123

    Sistema Npc Gym Para Pokemon

    • nome: Sistema de Ginásio / GYM para pokemon. • autor: brun123 (mastercraft) • versão testada: TFS 0.36 pl 1 (8.54) Detalhes: Como cada servidor de pokemon é bem diferente, acredito que muitos erros vão aparecer devido a diferença de IDs das pokebolas por exemplo, mas vou ajudar no que posso. Primeiro passo: crie um arquivo com o nome gymlib.lua na pasta data/lib/, e coloque isso dentro do arquivo: Segundo passo: crie um arquivo chamado gym.lua na pasta data/creaturescripts/scripts/ e coloque isso dentro: Terceiro passo: abra o arquivo creaturescripts.xml (localizado em data/creaturescripts) e adicione essas 4 tags: <event type="cast" name="Gym1" event="script" value="gym.lua"/> <event type="attack" name="Gym2" event="script" value="gym.lua"/> <event type="direction" name="Gym3" event="script" value="gym.lua"/> <event type="death" name="Gym4" event="script" value="gym.lua"/> Quarto passo: crie um arquivo chamado brock.xml em data/npc e crie um chamado brock.lua em data/npc/scripts e coloque isso dentro: Quinto passo: se você usar o pokemon dash, vá no arquivo playerattack.lua (data/creatureevents/scripts) e adicione esses códigos embaixo da linha "function onAttack(cid, target)": if getPlayerStorageValue(target, 201) ~= -1 then for a, b in pairs(ginasios) do if getPlayerStorageValue(target, ginasios[getPlayerStorageValue(target, 201)].storage) == 1 then if getPlayerStorageValue(cid, ginasios[getPlayerStorageValue(target, 201)].storage) ~= 1 then doPlayerSendCancel(cid, "You can't attack this pokemon.") return false end end end end end Se você não usa o pokemon dash, crie um arquivo chamado playerattack.lua na pasta data/creatureevents/scripts e coloque isso dentro: function onAttack(cid, target) if getPlayerStorageValue(target, 201) ~= -1 then for a, b in pairs(ginasios) do if getPlayerStorageValue(target, ginasios[getPlayerStorageValue(target, 201)].storage) == 1 then if getPlayerStorageValue(cid, ginasios[getPlayerStorageValue(target, 201)].storage) ~= 1 then doPlayerSendCancel(cid, "You can't attack this pokemon.") return false end end end end return true end e adicione essa tag no creaturescripts.xml (data/creaturescripts): <event type="attack" name="PlayerAttack" event="script" value="playerattack.lua"/> e ainda, abra o arquivo login.lua e embaixo dessa linha: "function onLogin(cid)" adicione esse código: registerCreatureEvent(cid, "PlayerAttack") Último passo: vá em data/creaturescripts/scripts e abra o arquivo goback.lua (aqui por exemplo, pode ser que haja uma particulariedade de servidor para servidor), e procure pela linha: function onDeath(cid, deathList) e abaixo dela, adicione esse código: local owner = getCreatureMaster(cid) for x, y in pairs(ginasios) do if getPlayerStorageValue(owner, y.storage) == 1 then if getPlayerStorageValue(owner, 991) == 5 or not hasPokemon(owner) then setPlayerStorageValue(owner, 991, -1) else local number = tonumber(getPlayerStorageValue(owner, 991)) setPlayerStorageValue(owner, 991, number + 1) end end end Configuração dos NPCs: Abrindo o arquivo brock.lua na pasta data/npc/scripts, procure por esta linha: "doGymBattle("Brock", "Brock Geodude", cid, 1)" o "Brock" precisa ser o nome do NPC e o "Brock Geodude" precisa ser o nome do primeiro pokemon a ser usado. Agora nessa parte, no script do seu NPC, você também deve editar o nome do NPC no lugar de "brock". Se quiser que o player possa lutar com o NPC mesmo depois de tê-lo vencido, é só remover a mesma parte: if getPlayerStorageValue(cid, ginasios["Brock"].storage) >= 1 then return true end Ao abrir o arquivo gymlib.lua, você encontra essas duas linhas (são as primeiras): funcpokemon = {2220, 2222} -- ID das pokebolas (o pokemon tem que estar vivo nessas IDs) bpslot = CONST_SLOT_BACKPACK --em outros servers, pode ser que seja CONST_SLOT_AMMO o lugar onde fica a backpack no inventory Onde está funcpokemon, você coloca o ID de todas as pokebolas do seu server, mas esse ID tem que ser o ID da pokebola com algum pokemon vivo dentro, e esses IDs devem ser separados por vírgula. Onde está bpslot, você escreve onde fica a BACKPACK do seu server de pokemon. Se ficar no lugar normal de BPs, deixe como está, mas se sua BP fica no slot da munição (ammunition), você deve estar para CONST_SLOT_AMMO. Isso é tudo, agora vocês podem configurar os IDs e localização da BP facilmente, sem precisar conhecimentos mais avançados sobre scripting, e evitar erros no sistema. Abrindo o arquivo gymlib.lua, localizado em data/lib/ você encontra essa tabela: ginasios = { ["Brock"] = { storage = 900, msgdefeat = "You lost! You aren't strong enough yet, don't come back until you get stronger!", msgafk = "Go away if you don't have any pokemons!", msgwin = "Congratulations, you were strong enough to win this battle fairly! Take this Earth Badge as reward.", [1] = { msggo = "Lets fight then! I choose you, Geodude!", msgba = "That's enough, Geodude!", pokem = "Brock Geodude", nextp = "Brock Graveler"}, [2] = { msggo = "It's your turn, Graveler!", msgba = "Come back, Graveler!", pokem = "Brock Graveler", nextp = "Brock Golem"}, [3] = { msggo = "Crush'em, Golem!", msgba = "You did well, Golem!", pokem = "Brock Golem", nextp = "finish"} } } • storage significa a única storage que deve variar de NPC para NPC, tenha certeza de que essa storage não está sendo usada, é você não deve usar a storage 901 aqui, pois a mesma já está em uso pelo próprio sistema. • msgdefeat significa o que o NPC irá dizer quando o player perder o duelo. • msgafk significa o que o NPC irá dizer caso o player comece o duelo, mas não faça nada depois. • msgwin significa o que o NPC irá dizer quando o player vencer o duelo. • msggo / msgba significam os textos que o NPC irá dizer ao sumonar o pokemon dele, ou quando o mesmo morrer, respectivamente.• pokem / nextp significam o nome do pokemon que será utilizado, e o próximo pokemon a ser sumonado pelo NPC, respectivamente. Caso o nextp seja especificado como "finish", não haverá um próximo pokemon. • o número entre [] significa a ordem utilizada pelo líder para usar o tal pokemon, sendo 1 o primeiro pokemon, 2 o segundo e assim vai... Uma tabela detalhada sobre a configuração: Importante: caso for testar o sistema como foi postado aqui, é necessário criar antes os monstros Brock Geodude, Brock Graveler e Brock Golem, assim como adicioná-los no monsters.xml. Recomendações: é bom você impedir que o pokemon consiga retornar para a pokebola durante duelos (assim como foi feito no SvkE), para isso, basta adicionar esse código no arquivo goback.lua (data/actions) na parte inicial de retornar o pokemon: for a, b in pairs(ginasios) do if getPlayerStorageValue(cid, b.storage) == 1 then -- GYM doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.") return true end end Aconselho fazer o mesmo caso seu server tenha script de revive. Deve-se também checar pelos storages usado em players, somente o 990 e o 991. No servidor testado, é utilizado apenas pokeballs e ultraballs, com IDs 2220 e 2222 (outra particularidade). Após ter instalado os arquivos, entre no jogo e use o comando /n Brock para testar o NPC. Último aviso: o prêmio ainda não foi adicionado (que seria a badge), pois esse sim é bem variado de servidor pra servidor. Já que nenhum servidor base já vem com os IDs das badges, cada um adicionou elas de modo diferente, por isso não pude fazer, mas existe uma parte sobre um prêmio no arquivo gym.lua (data/creaturescripts/scripts), procure por isso: --local item = getPlayerItemById(killer, true, 2307) --doTransformItem(item.uid, 2294) Você pode modificar para adicionar dinheiro ou outra coisa, e pode também desenvolver um sistema de badges. Eu não vou fazer badge aqui, mas se vocês tentarem, posso ajudar com problemas. Quaisquer erros, tentarei responder o mais rápido possível.
    1 ponto
  12. DexpironFox

    Tutoriais Montanhas Vermelhas

    Olá galera do Xtibia.com, hoje trago-lhes um tutorial + um download de um Pack Primeiramente o Tutorial Vá até: Windows XP: C:/Arquivos de Programas/Remeres Map Editor/Extensions windows 7: C:/Program Files/Remeres Map Editor/Extensions Copie qualquer arquivo e delete tudo o que há dentro e ponha isso: Essa é a parte que não deve-se mecher. Agora é a parte que pode-se editar, vamos lá O que está em vermelho é o nome do brush, ponha-o do nome que desejar. O que está em Azul é o ID do Icone que irá aparecer naquela tabelinha lá no map editor O que está em Verde é a ordem das bordas, para isto você tem que por as da original, neste caso, que é a de grass, ponhamos 3500 O que está em Rosa é o ID do chao (brush), neste caso o ID 8591,ou seja, grass O que está em Verde Claro é as bordas, ponha as do original, este caso, que é a de grass, ponhamos 2 Agora, para funcionar e aparecer no Editor, ponha isto no final, mas só ponha uma vez, para add outros brushs coloque entre <terrain> </terrain>: Em vermelho é o nome da tabela que estara os items em rosa Em Rosa são os nomes do brush que estavam em vermelho la encima. Você tem que por o mesmo nome do brush senão da error! Bom, este é o Tutorial. MASSS.... para quem não tem paciencia para fazer tudo isso, eis um link para download abaixo! Espero que tenham gostado! Até mais, fiquem com Deus, é claro, se acreditem nele! :XTibia_smile: Conteudo exclusivo Xtibia.com | Recuse imitações :XTibia_smile:
    1 ponto
  13. Itrodução Galera eu d nv aqui com outra duvida tambem vista no otpokemon.com que eles colocaram no ot deles uma coisa de masculino e feminino com os desenhos veja a imagen a seguir: Premio e Finalidade e é isso ai eu fiquei curioso e gostaria de adicionar no meu ot e vou contar com voces da xtibia me ajuda ai porfavor quem me ajudar ganha rep++
    1 ponto
  14. Bryaan

    {Original} Skull Yurots V1.1.9 [8.60]

    Baiak Yurots V2.2 Oque Mudou ? Mudou a City ta 90% 8.5 Foi Arrumada As Houses. Adicioano Npc Papai Noel no Templo Vende Items 8.54! Novos Items Novos Outifits Novas Hunts E Muito Mais... Baiak Yurots V2.7 Oque Mudou ? Foi Adicionada um Nova Cidade Chamada Baiak City Foi Adidionada Um Teleport no Templo Que Vai para Alumas City's Foi Adicionado Npc de Bless,Pagando Todas as Bless você nao prescisa usar aol... Foi Adicionado Uma Ilha de GM's ... Bug do Account Mananger Arrumado. Novo Executer adicionado,se o ot cai ele salva sozinhoo. E Muito Mas Estara por vim ... Baiak Yurots v1.0.9 Oque Mudou ? Foi Adicionado Sistema Vip.. Foi Adicionado 5 Novos Portais Vip Foi Adicionado Novos Bixos Vip,Warlock Vip,Medusa Vip,Bossing of Baiak.. Foi Adicionado New Quest Baiak Super Foda !! ;D Foi Modificado o Templo Foi Adicionado Mais Treiners ! Entre Alguns Bugs Retirados Baiak Yurots v1.1.0 Oque Mudou ? Mudou o Protocolo de 8.57 para 8.60 Novos Item Novo Outfit Baiak Yurots V1.1.4 Oque Mudou ? Tirei o Pz tool do Templo Fiz um Novo System Vip por Comando Fiz o Novo Addon do Outfit do Wayfarer Skull Yurots V1.1.9 Oque Mudou ? Nova Cidade Inicial! Nova Dark City Novas areas de caça Bugs Removidos Nova area de treinamento Novos comandos Novos Npcs Novos Itens Vips Novos Monstros Adcionada Quest Castle Entre muitas outras coisas ( ñ lembro tudo agora ) Acc God. god/god ScreenShoots Templo Templo II Depot Templo Subsolo Area De Bonus Hunts Free Hunts Vip Dark City <Quase 100% 8.60> Castle Quest <Parte Passagem Secreta> Vip City :forward: Download Clique Aqui :button_ok: Scan :XTibia_smile: Clique Aqui Se Gostou Favor Rep+ /goto Bryaan
    1 ponto
  15. Stevehere

    [Tutorial] Forsaken Sign

    Achei esse tutorial, gostei muito e queria passar pra vocês, achei em uma pagina que não me lembro agora. Creditos: Akantor Designs Veja o meu resultado \o/
    1 ponto
  16. Salve Galera, Estou aqui para alertar vocês de um GOLPE que está acontecendo. Pessoas se passando pelo nosso querido administrador JV Chequer estão tentando dar golpes via MSN. Uma pessoa (provavelmente membro do fórum) diz que é o JV e usa o nome do XTibia no MSN para tentar vender coisas, como Anti DDoS. Queremos frisar que o XTIBIA não vende NADA, e o Administrador JV Chequer só entra em contato (para assuntos do XTibia) pelos e-mails - não por MSN ou derivados: jvchequer@xtibia.com ou parceria@xtibia.com. Então, não caiam neste golpe e lembrem-se: Nenhum membro da equipe XTibia entrará em contato com você para tentar vender coisas em nome do site! Atenciosamente, Won Helder
    1 ponto
  17. GODRaphael

    Ajuda Com Quest

    Na Primeira Quest Você deicha assim e edita: DATA/ACTIONS/QUESTS. COMONOMEQUEVOCÊQUISER.lua VERMELHO: ID DO ITEM PRETO: LEVEL E NA SEGUNDA QUEST: DATA/ACTIONS/QUESTS. COMONOMEQUEVOCÊQUISER.lua Vermelho: ID DO ITEM Preto: Level Necessário. e Na Actions.xml Adcione Essas Tags. AZUL: O NOME DA QUEST QUE VOCÊ FEZ. Espero Ter Ajudado.
    1 ponto
  18. AlexxNica

    Gesior +Pagseguro

    Zulphor, siga os passos abaixo! 1) Faça o download do arquivo buypoints.php no final do post. - Mova o arquivo buypoints.php baixado para a pasta htdocs (Exemplo: C:\xampp\htdocs) - Abra o arquivo com algum editor de texto, você verá este código(siga os passos comentados para configuração): // Mude 'seuemail@dominio.com' para seu e-mail cadastrado no PagSeguro (o que ira receber o pagamento). $email = "seuemail@dominio.com"; // Seu servidor aceita pagamentos por deposito? TRUE para SIM e FALSE para NAO (TRUE ou FALSE). $deposito = TRUE; // Se seu servidor aceita pagamentos por deposito, troque o texto abaixo por seus dados bancarios, informacoes adicionais, etc. $txtdeposito = "Deposito!"; Download: http://www.speedyshare.com/files/28822568/buypoints.php ou http://www.mediafire.com/?24aoze0qp9j3zfu 2) Sobre o retorno automático do PagSeguro: http://www.xtibia.com/forum/topic/153296-pagseguro-automatico/
    1 ponto
  19. ultimate1996

    [Tfs 0.4Dev]Ajude Me

    TFS 0.4 (DEV + Dll's + Distro) Clique Aqui
    1 ponto
  20. SamueLGuedes

    Venha Participar Vc Tambem

    PODE FECHAR
    1 ponto
  21. Matheuzinhoul

    [Actio] Script !afkon E !afkoff

    Na verdade, é uma talkaction. Retireide um tópico, aqui mesmo do XTibia. Tópico aqui automessage.lua --[[ Talking Tp/signs/tiles for TFS 0.2+ 70%shawak,30%Damadgerz Idea by Damadgerz ]]-- local time = 5 -- 1 = 1 sec, 2 = 2 sec, ... local say_events = {} local function SayText(cid) if isPlayer(cid) == TRUE then if say_events[getPlayerGUID(cid)] ~= nil then if isPlayer(cid) == TRUE then doSendAnimatedText(getPlayerPosition(cid),"Ausente!", math.random(01,255)) end say_events[getPlayerGUID(cid)] = addEvent(SayText, time * 1000 / 2, cid) end end return TRUE end function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end if param == "on" then if isPlayer(cid) == TRUE then doSendAnimatedText(getPlayerPosition(cid),"Ausente!", math.random(01,255)) end say_events[getPlayerGUID(cid)] = addEvent(SayText, time * 1000, cid) doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,"You Now Stated you are (afk).") elseif param == "off" then stopEvent(say_events[getPlayerGUID(cid)]) say_events[getPlayerGUID(cid)] = nil doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,"You Now stated your are not (afk).") end return TRUE end Em talkactions.xml coloque a tag: <talkaction words="!afk" script="automessage.lua"/> Qualquer dúvida favor responder a esta mensagem utilizando o botão responder, para que eu possa receber uma notificação avisando que você respondeu. Espero ter ajudado.
    1 ponto
  22. Gremiista

    Dúvida Em Roofs

    É, realmente ficou feio e estranho esse telhado. Te recomendo ver esse vídeo-tutorial feito pelo Lordfire.
    1 ponto
  23. Cara acho que daria desse 2 jeito 1° o + rapido , mudar a sprite das Skulls , para esses 2 tipos de Sexo. depois adicionar um flag com a skull que vc adicionou no poke. 2° esse eh demorado , + ja vi gente fazendo , fazer sprites novas com as skulls ja colocadas em cada monster. + isso demorario MUITO , pois vc teria que fazer 2 vezes todos os monster que existem no seu ot Eh isso ai
    1 ponto
  24. Henrique Moura

    Pokemons Formato .idc

    Gostei muito do seu tutorial, acho que você poderia arrumar um jeito para as imagens ficarem maiores. Mas em geral ficou muito bom e é um conteúdo que não temos por aqui. Abraços.
    1 ponto
  25. AlexxNica

    Acc Manager

    DeathAngels, para retirar o Account Manager, não posso lhe dar a certeza de que funcionará, pois estou sem nenhum OTServer rodando, mas não custa tentar! 1) Para retirar o Account Manager: - Abra o arquivo config.lua de seu servidor (Exemplo: C:\MeuOT\config.lua) - Dê CTRL+F e procure por (normalmente fica entre as primeiras linhas): - Após encontrar, você verá este código: - Modifique para: Pronto, reinicie seu servidor e faça o teste, se não der certo, faça um post avisando, para testarmos outras soluções! 2) Deixar só 1 mundo na hora de criar o personagem - Abra o arquivo config.php, localizado na pasta htdocs/config de seu website (Exemplo: C:\xampp\htdocs\config\config.php) - Dê CTRL+F e procure por: - Após encontrar, você verá este código: - Modifique para:
    1 ponto
  26. Mophus

    (Intermediário) - Hunt De Cyclops

    Muito bem explicado, informando os id's corretos e etc... Parabéns, Mophus
    1 ponto
  27. O War.php foi eu que modifiquei...
    1 ponto
  28. tutuga

    [Pokemon] Dark Pikachu Feito Por Min

    impossivel eu tive que edita eu num ouvi fala de new pokemon na minha vida :S
    1 ponto
  29. Valeu ae galera Lembrando o respaw você deve colocar pois cada ot tem determinado pokemon !
    1 ponto
  30. sharematrix

    [Arquivado]Multi Servers

    Se quiser pode usar TFLS, é um login server, com isso fica mais fácil o login em todos os servidores Ele junta todos os servidores e contas em 1 só igual global
    1 ponto
  31. erro

    Deixe Seu Ot E Seu Site Online Com Xampp

    Ai galera esse post eu retirei aki do Xtibia msm apenas copiei!! ai vai um tutorial ensinando colocar seu ot e seu site online Todos os Créditos para Mesenga Está dividido em: 1º Passo: Preparando o XAMPP 2º Passo: Criando a Database 3º Passo: Criando o banco de dados 4º Passo: Criando uma conta GOD EXTRA 5º Passo: Criando o site para os players entrarem F.A.Q. - Perguntas e respostas -Baixando o Xampp- Xampp download: http://www.baixaki.com.br/download/xampp.htm Tamanho: 44,20MB Depois de baixar instale o XAMPP 1º Passo: Preparando o XAMPP ( Créditos ao Lord Joel por lembrar do security) Abra o XAMPP, depois disso verifique se está tudo corretamente ligado clicando no XAMPP_Panel Mini F.A.Q. Mas meu apache não esta ligando! Vá até C:\xampp\apache\conf\httpd.conf: Procure por “Listen 80″, mude para “Listen 8090″ Procure por “ServerName localhost:80″, mude para “ServerName localhost:8090″ C:\xampp\apache\conf\extra\httpd-ssl.conf Procure por “Listen 443″, mude para “Listen 4499″ Procure por “<VirtualHost _default_:443>”, mude para “<VirtualHost _default_:4499>” Procure por “ServerName localhost:443″, mude para “ServerName localhost:4499″ Explicação: O IIS (Internet Information Service) do windows é padrão para rodar em port 80, então você não conseguira abrir o apache pois vai dar conflito com esta porta que já esta sendo usada, então trocamos! Mesenga, ainda não funcionou =/ Então recomendo você baixar a versão 1.6.5 por conter a antiga base que pega em todos os windows Download aqui: AQUI Continuando... Agora acesse a página: http://localhost/security/xamppsecurity.php caso tiver trocado o port acesse: http://localhost:8090/security/xamppsecurity.php Vá na pasta do seu OT, abra o config.lua Você irá encontrar linhas parecidadas com essas: -- Database sqlType = "sqlite" >> mude para mysql, pois agora usaremos um servidor mysql sqlHost = "localhost" >> não mexa sqlPort = 3306 >> não mexa sqlUser = "root" >> esse é o usuário usado para acessar o servidor XAMPP, NÃO MUDE sqlPass = "" >> password (senha) que você usou no passo 1 sqlDatabase = "" >> vamos definir um nome para nossa database, ex: theforgottenserver sqlFile = "Styller.s3db" >> isso não irá servir mais pois usaremos um servidor MySql sqlKeepAlive = 0 >> não mexa mysqlReadTimeout = 10 >> não mexa mysqlWriteTimeout = 10 >> não mexa passwordType = "plain" >> não mexa No meu caso ficou assim: -- Database sqlType = "mysql" sqlHost = "localhost" sqlPort = 3306 sqlUser = "root" sqlPass = "123" sqlDatabase = "styller" sqlFile = "Styller.s3db" sqlKeepAlive = 0 mysqlReadTimeout = 10 mysqlWriteTimeout = 10 passwordType = "plain" 2º Passo: Criando a Database abra internet e digite http://localhost caso tiver mudado o port: http://localhost:8090 escolha Português BR depois disso procure PhpMyAdmin e clique tenha certeza que estará nessa página: http://localhost/phpmyadmin/ caso estiver com port trocado: http://localhost:8090/phpmyadmin/ 3º Passo: Criando o banco de dados Na tela a seguir, você vera onde tem a parte Criar novo banco de dados, digite o mesmo nome que você colocou no config.lua em sqlDatabase= Agora clique criar Na tela seguinte clique em "importar" e escolha o arquivo "schema.mysql", em alguns ots o nome é "algumacoisa.sql", ex: forgotten.sql (no caso do The Forgotten Server) vai isso,dependendo do server que estiver usando, o numero de importações varia: 4º Passo: Criando uma conta GOD Entre no server e crie uma conta com o Account manager pra ficar mais facil, e também crie 1 player. Após criado a account e o player, volte a janela do XAMPP na database e clica em accounts, depois vá em visualizar depois clique no pincel Irá aparecer uma tela com os dados da conta, altere apenas o necessário... mude o type de 1 para 5 e group id de 1 (se quiser conta normal com GOD) e 5 (se quiser conta GOD com GOD) depois clique em "executar" o char ainda não é God apenas a conta, então vá em players na coluna da esquerda... clique no lápis de novamente.... Troque Group de 1 para 6, agora sim, seu char eh god. se quiser GM troque para 4 ou 5 (Sênior GM) Group id 1 = Player Group id 2 = Tutor Group id 3 = Sênior Tutor Group id 4 = GM Group id 5 = Sênior GM Group id 6 = GOD *IDs acima baseados no Styller OT 8.52 Seu server está pronto para rodar! EXTRA 5º Passo: Criando o site para os players entrarem -Download do site- Baixe um dos Websites "SQL" na seção de downloads do Xtibia >> http://www.xtibia.com/forum/Websites-OTserv-f312.html Recomendados: Gesior acc maker: http://www.xtibia.com/forum/Gesior-034-t116556.html Nicaw Acc Maker website http://www.xtibia.com/forum/Nicaw-Aacmaker...sql-t81939.html Todos os sites já vem com configurador, então entre em: http://localhost caso tiver trocado o port já sabe: http://localhost:8090 e Configure-o! -Vamos configurar o Gesior Acc Maker!- Baixe o Gesior Acc Maker http://www.xtibia.com/forum/Gesior-034-t116556.html Ligue o XAMPP e o OT Vá em C:\Xampp\htdocs e delete tudo o que tem dentro da pasta Agora extraia seu site pra lá, feito isso entre em http://localhost ou http://localhost:8090 você verá uma tela assim: clique em Set server path Agora no campo em que aparece digite o diretório no qual se encontra o ot, ex: C:\OTx Agora é só ir clicando um por um e configurar a seu gosto 1º Quadrado preto: 1. Set server path --> escolhe o diretório do OT 2. Check DataBase connection --> você só pode proseguir se não tiver nehum erro nessa parte 3. Add tables and columns to DB --> isso carrega uma parte do site 4. Add samples to DB --> isso carrega uma parte do site (vocações) 5. Set Admin Account --> escolhe o account do admin do site Quadrado Vermelho: 6. Load Monsters from OTS --> vai dar load automatico nos monstros do OT, verifique se não há nehum erro 7. Load Spells from OTS --> ele vai carregar todas as spells do OT, verifique se não há nehum erro antes de proceguir Pronto, o site está configurado e pronto para criar contas. Para outras opções clique em ADMIN PAINEL F.A.Q. - Perguntas e respostas @Todos Duvidas: -Como faço minha account de GM/GOD? Siga o passo 4 eu nao encontro schema.mysql od está isso?? Em alguns servidores o nome é theforgottenserver.sql Qual vai ser meu site pros outros poder entra fazer acc? seu site vai ser http://seuip:8090 ou se quiser por http://seuip:xxxx sendo "xxxx" um número de port variando entre 80 e 9000, faça o seguinte: vá em "C:\xampp\apache\conf" e abra o arquivo httpd.conf procure por: #Listen 12.34.56.78:80 Listen 80 Nas duas linhas ponha Um número variando de 80 à 9000 no lugar do 80 exemplo: #Listen 12.34.56.78:8090 Listen 8090 Agora procure a linha: ServerName localhost:80 e troque pelo mesmo número que você colocou exemplo: ServerName localhost:8090 -No seu está dando o seguinte problema: [28/06/2008 03:15:49] Failed to connect to database. MYSQL ERROR: Access denied for user 'root'@'localhost' (using password: YES) [28/06/2008 03:15:49] > ERROR: Couldn't estabilish connection to SQL database! Antes de colocar oSERVER ONLINE, certifique-se de que o XAMPP está aberto Até a proxima!
    1 ponto
  32. Quando você clicar com o botão direito do mouse na área de trabalho e ir em novo, irá aparecer para criar um novo arquivo .lua 1 - Crie um arquivo de qualquer nome e salve-o em .lua (Arquivo pode ser em branco) 2 - Salve o arquivo em C:\Windows\Shellnew 3 - Agora click em (iniciar > executar...) quando aparecer à nova janela digite regedit click em OK 4 - No regidit abra a pasta (Hkey_Classes_Root) e procure por a extensão .lua 5 - Na pasta .lua cria uma nova chave com o nome ShellNew 6 - Agora dentro da pasta 'ShellNew' crie um 'valor de seqüência' com o nome de NullFile 7 - Dando um click duplo no 'NullFile' coloque os Dados do valor C:\Windows\Shellnew <nome do seu arquivo> Obs¹: Eu coloquei o nome do arquivo 'branco' então ficou assim: C:\Windows\Shellnew\branco Obs²: Esse e o procedimento padrão para Windows XP/Vista, caso você faça tudo como segue no tutorial e haja algum erro possivelmente seja algo de errado com seu computador. Foto 1 Exclusividade XTibia.com Atenciosamente, Kardec.
    1 ponto
  33. GODFakezin

    Piso Teleporter

    *** Piso teleporter *** Você pode colocar esse teleporter, em qualquer piso... Não é bem um teleporter é um piso que teleporta. Muito bom pra quests de tipo ENIGMA, ou ate na propia POI, se o seu ot tiver. isso ficaria muito LEGAL! =) Mais vamos trabalhar: Va na pasta Data/movements/scripts/, e copie um arquivo Lua qualquer, renomeie para pisotp.lua, e retire tudo conteúdo de dentro, e copie e cole isso: Depois va na pasta Data/movements/movements.XML/, e coloque isso la: <movevent event="StepIn" uniqueid="8000" script="pisotp.lua" /> Explicação: Depois de você colocar esses scripts, abra seu mapa no mapa editor, e escolha o piso que vai teleportar, e entre nas propriedades dele e coloque no uniqueid 8000 dai vai ta pronto. Pra quem não sabe uniqueid, é onde ta quest id, em alguns mapa editor em portugues, e você também pode mudar o uniqueid se ele estiver em uso no seu server, basta mudar la em movements.xml no pisotp e em pisotp.lua muda o uniqueid e também o if iten.uid. Anteciosamente: GoD Fakezin
    1 ponto
  34. Mophus

    [ Fechado ]

    Trollei, vamos dizer q você usa esse PRETO ai no teu avatar, você é preto? Se o preto representado na imagem for gay, você tbm é gay? LOL VÃO TOMAREM ÁGUA !
    0 pontos
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...