Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 10/13/13 em todas áreas
-
Criando um otserv
AndreArantes e um outro reagiu a Fuscante por um tópico no fórum
Bom Dia,Boa Tarde , boa Noite, pra vc que esta vendo esse tutorial de como criar um otserv é bem assim vo começa na parte de baixar o ot http://www.xtibia.com/forum/forum/768-downloads-de-servidores-derivados/ aew nessa seçao vc tera opçoes de escolher qnto de pokemon,tibia harry poter etc... vamos la assim de vc ter baixado seu ot abre a pasta dele vai em config.lua e procure por isso : Vamos la em ip - "127.0.0.1" no 127.0.0.1 é o ip do seu ot que vo ensinar jaja como vc ira criar fixo, em MaxPlayers ali é o maximo de player para entrar no seu ot,feito isso vc salva e fecha, a parte de loots e rates n vou colocar no tutorial . Agora vou ensinar a criar o ip fixo , Primeiro vc vai em http://www.omeuip.com/ assim que vc entrar nesse link vc ve em ip a primeira linha de cima aew na frente vai tar ums numeros tipo 187.120.64.146 esse n é o de vcs e nem o meu claro o de vcs vao ser diferente , assim que vcs pegarem o ip de vcs marquem em um bloco de notas, em seguida vai no site http://no-ip.com/ logo em seguida vai em Sign Up e cria sua conta , e faz um login no site https://www.noip.com/login qnd vc logar vc vai em asism que vc clicar , apartir dali ja é vc criando seu ip , agr vo ensinar as cordenadas : em HostName é o nome do seu ot , nao pode dar espaço , na frente é o nome do seu ot. exemplo : tutorialxtibia.zapto.org , tutorialxtibia.servegame.com tem varios pra vc escolhe , em Endereço ip é o ip do site anterio que eu passei omeuip... aew vc coloca o ip la em endereço ip e clica em ADICIONAR HOST. apos vc criar o seu ip vc vai baixar o no ip duc http://www.noip.com/download?page=win apos ter baixado e instalado abre o programa , faz o login que o login é do site no-ip.com , apos ter feito o login va em Edit Hosts e selecione o ip que vc crio e save , assim que os 3 ficar em verdinho vc volta na pasta do seu ot vai em config.lua ,procure por ip = "127.0.0.1" em 127.0.0.1 vc coloca o ip que vc crio que no caso o meu seria o tutorialxtibia.zapto.org assim vc ter colocar salva , fecha e pode ligar seu ot . Bom galera valeu aew , se vc gosto da um rep++ aew ficarei muito agradecido . nao importo de uma pessoa ter criado um que ensina msm coisa , o importante que eu criei o meu.2 pontos -
http://2.imgland.net/83Pdio.png2 pontos
-
Olá galera do XT, estou trazendo aqui, meu primeiro NPC, um NPC que teleporta se tiver o item X, tudo configurável! Vá em data/npcs/scripts e copia e cola um arquivo.lua renomeia ele para tp.lua e cola o seguinte código: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end ------------#Configurações#---------------- local config = { tp1 = {x=100, y=100, z=7}, -- coordenadas pra onde ele irá ao falar aonde está "ir". tp2 = {x=100, y=100, z=7}, -- coordenadas pra onde ele irá ao falar aonde está "ir2". tp3 = {x=100, y=100, z=7}, -- coordenadas pra onde ele irá ao falar aonde está "ir3". item1 = 2160, -- id do item 1 item2 = 2148, -- id do item 2 item3 = 2158, -- id do item 3 qtd1 = 2, -- quantidade a ser removida do item 1 qtd2 = 5, -- quantidade a ser removida do item 2 qtd3 = 7, -- quantidade a ser removida do item 3 } ----------#Fim das configurações#---------- ------------#*#Início do NPC#*#-------------- if msgcontains(msg, 'ir1') then -- o que ele tem que falar. if doPlayerRemoveItem(cid, config.item1, config.qtd1) then doTeleportThing(cid, config.tp1) -- não mexa. else selfSay("Você não tem "..config.qtd1.." {"..getItemNameById(config.item1).."s}.", cid) -- msg que retorna caso ele não tenha o item. end elseif msgcontains(msg, 'ir2') then -- o que ele tem que falar. if doPlayerRemoveItem(cid, config.item2, config.qtd2) then doTeleportThing(cid, config.tp2) -- não mexa. else selfSay("Você não tem "..config.qtd2.." {"..getItemNameById(config.item2).."s}.", cid) -- msg que retorna caso ele não tenha o item. end elseif msgcontains(msg, 'ir3') then -- o que ele tem que falar. if doPlayerRemoveItem(cid, config.item3, config.qtd3) then doTeleportThing(cid, config.tp3) -- não mexa. else selfSay("Você não tem "..config.qtd3.." {"..getItemNameById(config.item3).."s}.", cid) -- msg que retorna caso ele não tenha o item. end end ------------#*#Fim do NPC#*#-------------- return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Feito isso, vá em data/npcs copia um arquivo.xml e renomeia ele para Teleport. Abra com o bloco de notas ou outro editor, e cole este arquivo: <?xml version="1.0" encoding="ISO-8859-1"?> <npc name="Gerson" script="data/npc/scripts/tp.lua" walkinterval="3000" floorchange="0"> <health now="100" max="100"/> <look type="367" head="0" body="38" legs="114" feet="94" addons="0"/> <parameters> <parameter key="message_greet" value="Eu posso levar você para {ir1}, {ir2}, {ir3}."/> <parameter key="message_farewell" value="Adeus!"/> <parameter key="message_walkaway" value="Que bons ventos o levem!"/> </parameters> </npc> Configurando o arquivo do npc: Tudo é feito aqui: ------------#Configurações#---------------- local config = { tp1 = {x=100, y=100, z=7}, -- coordenadas pra onde ele irá ao falar aonde está "ir". tp2 = {x=100, y=100, z=7}, -- coordenadas pra onde ele irá ao falar aonde está "ir2". tp3 = {x=100, y=100, z=7}, -- coordenadas pra onde ele irá ao falar aonde está "ir3". item1 = 2160, -- id do item 1 item2 = 2148, -- id do item 2 item3 = 2158, -- id do item 3 qtd1 = 2, -- quantidade a ser removida do item 1 qtd2 = 5, -- quantidade a ser removida do item 2 qtd3 = 7, -- quantidade a ser removida do item 3 } ----------#Fim das configurações#---------- Em tp1, tp2, tp3 coloque a posição de cada lugar que ele será mandado. Em item1, item2, item3 coloque o ID do item que você quer que seja removido para teleportar o jogador. Em qtd1, qtd2, qtd3 coloque apenas a quantidade a ser removida. Bom galera, este é meu primeiro script espero que gostem!! @Edit Hoje dei uma editada no NPC e removi 10 linhas. Gostaria que me dessem ideias de como melhorar este NPC, ou criar outros.1 ponto
-
Informações: Tasks adquiridas ou canceladas em NPC As tasks podem ser feitas repetidas vezes, mas somente uma vez por dia e apenas uma de cada vez (tempo configurável) Comando para acompanhar o andamento da task Atualização (31/08/13) > agora é possível ganhar itens a cada vez que a task é terminada Atualização (05/09/13) > VÁRIOS bugs corrigidos e algumas novas opções adicionadas Agora você pode escolher se quer que as tasks sejam feitas por level ou na ordem Recomendo a todos os que baixaram alguma versão anterior que atualizem Códigos: Tags: Em creaturescripts.xml, adicione: <event type="kill" name="Tasks" script="taskkill.lua"/> Em talkactions.xml, adicione: <talkaction words="!countkills" event="script" value="countkills.lua"/> No arquivo creaturescripts/scripts/login.lua, adicione: registerCreatureEvent(cid, "Tasks") Scripts: Crie um arquivo tasklib.lua em lib Crie um arquivo countkills.lua e adicione em talkactions/scripts Crie um arquivo taskkill.lua em creaturescripts/scripts Crie um arquivo NomedoNPC.xml em npcs Crie um arquivo tasks.lua em npcs/scripts Configuração: É feita toda no tasklib.lua: Configuração dos monstros: taskmonsters ={[1] = {'rotworm', killstotal = 100},[2] = {'cyclop','cyclops','cyclops smith','cyclops drone', killstotal = 100},[3] = {'dragon','dragon lord','frost dragon', killstotal = 100}} - O [número] deve seguir a ordem - A primeira parte deve ser o nome dos monstros da task no singular. Por isso existem 'cyclop' (singular) e 'cyclops' (nome do monstro) - Os nomes de todos os monstros de cada task devem aparecer. Por exemplo, na task de cyclops, qualquer tipo deles servirá para completar a task. - killstotal é a quantidade de monstros que você deve matar para terminar a task. Configuração das recompensas: taskreward = -- em gps{[1] = {money = 5000,xp = 20000, points = 3}, -- nenhum item será adicionado e 3 pontos de task serão adicionados[2] = {money = 10000,xp = 50000, item = 2458}, -- 1 item(2458) será adicionado e nenhum ponto de task[3] = {money = 20000,xp = 75000,item = 2458,amount = 2, points = 5} -- aqui serão adicionados 2 itens com id 2458 (se ele for amontoável - stackable) e 5 pontos de task} - O [número] deve ter a mesma ordem dos monstros - money é a quantidade de dinheiro que cada um ganha ao terminar a task correspondente - xp é a quantidade de experiência ganha ao terminar a task correspondente - item é o ID do item que ganha ao terminar a task correspondente - points significa quantos pontos de task o personagem irá ganhar quando terminar a task correspondente Adicionando novos monstros: - Vou explicar com um exemplo de como adicionar uma task de hydra/serpent spawn No taskmonsters: (REPARE NA VÍRGULA QUANDO ADICIONEI UMA NOVA LINHA!) taskmonsters ={[1] = {'rotworm', killstotal = 100},[2] = {'cyclop','cyclops','cyclops smith','cyclops drone', killstotal = 100},[3] = {'dragon','dragon lord','frost dragon', killstotal = 100},[4] = {'hydras e serpent spawn','hydra','serpent spawn',killstotal = 200}} No taskrewards: taskreward = -- em gps{[1] = {money = 5000,xp = 20000, points = 3}, -- nenhum item será adicionado e 3 pontos de task serão adicionados[2] = {money = 10000,xp = 50000, item = 2458}, -- 1 item(2458) será adicionado e nenhum ponto de task[3] = {money = 20000,xp = 75000,item = 2458,amount = 2, points = 5}, -- aqui serão adicionados 2 itens com id 2458 (se ele for amontoável - stackable) e 5 pontos de task[4] = {money = 30000, xp = 5000, item = 2450, amount = 1, points = 3}} Agora na função doStartTask(cid) - somente se quiser que as tasks sejam feitas por level - O que aconteceu: - Antes até o lvl 20 o jogador recebia a task dos rotworms, até o lvl 50, a task dos cyclops e daí pra frente, task dos dragons. - As tasks iniciais são as mesmas, mas até o lvl 80 é a task dos dragons e daí pra frente, o jogador receberá a task das hydras e serpent spawns. Considerações finais: O sistema de pontos apenas adiciona e checa a quantidade de pontos: você deve escolher se quer adicionar alguma coisa a partir deles. Testei profundamente e corrigi todos os erros que encontrei, postem se encontrarem mais algum, enviem o log do erro que farei o possível para consertar.1 ponto
-
Ultimate Sprite Editor
TcharlesGM666 reagiu a Yamaken por um tópico no fórum
Olá, hoje venho apresentar o Ultimate Sprite Editor. Não é atoa que ele se chama Ultimate, ele é o melhor sprite Editor que já existiu na comunidade. Imagens: Ele auto detecta a versão da spr baseada na signature do arquivo, e isso pode ser configurado em um arquivo .ini. Caso o auto detect não funcionar, você pode escolher a versão do spr manualmente. As funções do Ultimate Spr Editor são: New: Cria um novo spr do zero sem nenhuma sprite. Open: Abre um arquivo spr com determina versão. Save: Salva um arquivo spr em determinada versão. Add: Adiciona um numero x de sprites no formato png( fundo transparente ) ou no formato bmp( fundo rosa ). Replace: substitui as sprites selecionadas, quer dizer, os IDs continuam os mesmos só muda a imagem dessas sprites. Export: exporta as sprites selecionadas no formato png. Clone: "Clona" as sprites selecionadas, quer dizer, cria sprites iguais no final do arquivo spr. Clear: "Limpa" as sprites selecionadas, isso quer dizer que o ID não vai ser deletado mas que o conteúdo da sprite( a imagem ) vai ser deletado. Download: MediaFire Scan Yamaken~1 ponto -
Qual O Melhor Jogo Que Você Já Jogou?
Alexclusive reagiu a JonatasLucasf por um tópico no fórum
fala a e galera quais foram seus melhores jogos que ja teve no pc ou Jogou? os meu foram tibia,point blank,GTA ONLINE. CITE OS SEUS ;1 ponto -
Galera ta aqui uma amostra de um dos pokes feitos por min que estarão em meu server espero a opinião de vocês sobre a sprite.1 ponto
-
[PARTICIPE] Assinatura da Semana #91
Kluivert reagiu a Alexclusive por um tópico no fórum
CHEGAMOS NA EDIÇÃO 91! Fala pessoal, o Tony infelizmente teve que se afastar por motivos pessoais. Dando continuidade ao belo trabalho dele, vamos seguindo com o ADS. Conto com a participação de vocês!! Tema da ADS #91: NATUREZA Sugerido por: KluiMaster Para sugerir um tema (Clique Aqui) Premiação 1° Colocado - 3 Reps + medalha +Sign 2° Colocado - 2 Reps 3° Colocado - 1 Rep Datas: Concurso: 12/10/2013 até 19/10/2013 (23:59) Votação: 20/10/2013 até 25/10/2013 (23:59) Resultado: 26/10/2013. Dúvidas: Clique aqui AS IMAGENS DEVEM SER POSTADAS NESTE TÓPICO ATÉ A DATA MARCADA. Espero muitos participantes! .1 ponto -
Spell Forge Boa tarde, pessoal. Seguindo a orientação da equipe do xtibia.com, estou postando um vídeo demonstrativo (teaser) aqui nessa área, do sistema Spell Forge que estou desenvolvendo. O que é o Spell Forge? Algo que pretende inovar o cenário abandonado de criação de magias para Open Tibia. Um sistema diferente. No sistema, as palavras tem um verdadeiro significado, sendo a união delas, responsável por criar uma magia nova e diferente. Ou seja, chega de programar milhões de magias e atribuir palavras fixas a elas, programe a função das palavras e deixe o jogador "forjar" suas próprias magias.1 ponto
-
<?xml version="1.0" encoding="UTF-8"?> <monster name="Estatua" nameDescription="a estatua" race="fire" experience="0" speed="0" manacost="0"> <health now="25000" max="25000"/> <look typeex="9791"/> <targetchange interval="5000" chance="8"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="0"/> <flag canpushitems="0"/> <flag canpushcreatures="0"/> <flag targetdistance="0"/> <flag staticattack="90"/> <flag runonhealth="10"/> </flags> <attacks> </attacks> <defenses armor="10" defense="10"/> <immunities> <immunity lifedrain="1"/> <immunity paralyze="1"/> <immunity outfit="1"/> <immunity drunk="1"/> <immunity invisible="1"/> <immunity icePercent="1"/> <immunity firePercent="1"/> <immunity holyPercent="1"/> <immunity deathPercent="1"/> <immunity physicalPercent="1"/> <immunity earthpercent="1"/> <immunity energyPercent="1"/> </immunities> <summons maxSummons="3"> <summon name="Vampire" interval="2000" chance="10"/> </summons> <voices interval="5000" chance="10"> <voice sentence="You have disturbed my thoughts!"/> </voices> <loot> </loot> </monster> tá ai1 ponto
-
1 ponto
-
blz boa sorte vai la e faz o nenem enem1 ponto
-
[Encerrado]Fairy Tail Online - FTO
Frenvius reagiu a JoaozinhoNA por um tópico no fórum
Uah, que nostalgia! Faz bastante tempo que eu não vejo esses efeitos, alguns aninhos. Apenas relembrando os velhos momentos, isso não é um showoff, apenas velhos momentos :'C. (Ah, não vamos usar eles )1 ponto -
Báu/alavanca/npc Que Troca Vip Coin Por Items
AncientGhastlyD reagiu a Vodkart por uma questão
Alavancas e báus Npc's1 ponto -
Shinobi Adventure [narutibia]
wanthony reagiu a Alexclusive por um tópico no fórum
Amigo, leia tutoriais em nossa seção de Websites: Tutoriais de websites Talvez a solução de seu erro já esteja disponível aqui: Pedidos e dúvidas resolvidos - Websites Alguma outra duvida: Pedidos e dúvidas - Websites Quer aprender: Tutoriais de websites | Começando seu servidor | Tutoriais de servidores derivados Enfim...de uma olhada pelo nosso fórum, você é novato, tenho certeza de que ira aprender bastante! Abraço1 ponto -
[Encerrado] Amentar atack do poke
Drk Shadow reagiu a zerefshirou por um tópico no fórum
bonusOff = 10 needLevel = 1 removeItem = true function onUse(cid, item, frompos, item2, topos) if isCreature(item2.uid) then return false end if item2.itemid <= 0 or not isPokeball(item2.itemid) then doPlayerSendTextMessage(cid, 27, "You can't use this on pokeballs!") return false end if not pokes[getItemAttribute(item2.uid, "poke")] then return false end if #getCreatureSummons(cid) > 0 then doPlayerSendTextMessage(cid, 27, "Return your pokemon to use this item.") return false end if getPlayerLevel(cid) < needLevel then doPlayerSendTextMessage(cid, 27, "You need level "..needLevel.." to use this item!") return false end offense = getItemAttribute(item2.uid, "offense") or 0 doItemSetAttribute(item2.uid, "offense", offense + bonusOff) if removeItem then doRemoveItem(item.uid) end return true end Acho que seria isso o jeito certo e organizado para isso Como usar: De use no item e selecione uma poke ball (Obs: Não precisa estar no slot das balls) Coloquei 3 coisas para caso você queira mudar mais facilmente bonusOff = 10 (Mudando aqui, vai mudar o quanto de offense que o item vai receber, no caso vai dar o status atual + 10) needLevel = 1 (Level que precisa para usar o item) removeItem = true (se colocar "true" vai remover o item que da o bonus, se colocar "false" não vai remover) Se não for isso que deseja, diga explicadamente oque deseja, bem Bye Bye ~ Edit: Esse seria a minha versão desse script (pelo que eu entendi do que você queria), mas acho o goback (função adjustStatus) deve "cancelar" essa mudança...1 ponto -
Tranquilo, fico feliz que tenha funcionado! Reportado para que movam.1 ponto
-
Tópico reportado para que movam. Abraços.1 ponto
-
Barulho de moto no OTC
Strogman reagiu a paulgrande por um tópico no fórum
Assim eu não sou um ótimo sonoplasta, mas deu pra fazer alguma coisa com umas 10 linhas de script e o som de uma moto que eu cortei. só não posto um vídeo porque não to conseguindo gravar com som ta saindo uns ruídos estranhos na gravação mais mesmo assim meu script a moto tem som pra Idle pra aceleração e pra ignição se eu conseguir gravar eu posto junto com o script base porque não vou usar isso pra bosta nenhuma '-' consegui gravar com o som mais ou menos por algum motivo desconhecido quando tento gravar começa dar interferencia no som e ele fica muito mais muito feio e com ruidos estranhos :s POG pra iniciar o som de movimento quando começa andar: function onTryMove(cid, fromPos, toPosition) if(not isCreature(cid)) then return true end if getPlayerStorageValue(cid, 30706) == 1 then local pspeed = getCreatureBaseSpeed(cid) doChangeSpeed(cid, 20) doSendMagicEffect(fromPos, 2) if getPlayerStorageValue(cid, 30707) == 0 then pauseSound(cid) sendSound(cid, "MotoD.mp3", true) setPlayerStorageValue(cid, 30707, 1) end return true end end POG pra parar o som da moto andando e ativar o som de IDLE: function onThink(cid, interval) local idleTime = getPlayerIdleTime(cid) + interval doPlayerSetIdleTime(cid, idleTime) if getPlayerStorageValue(cid, 30706) == 1 then if idleTime > 500 then if getCreatureSpeed(cid) > getCreatureBaseSpeed(cid) then setPlayerStorageValue(cid, 30707, 0) doChangeSpeed(cid, -(getCreatureSpeed(cid) - getCreatureBaseSpeed(cid))) if getCreatureBaseSpeed(cid) == getCreatureSpeed(cid) then pauseSound(cid) sendSound(cid, "MotoI.mp3", true) end end end end return true end Codigo que ativa o sistema isso tava em uma talk if getPlayerStorageValue(cid, 30706) == 0 then setPlayerStorageValue(cid, 30706, 1) sendSound(cid, "MotoS.mp3") sendSound(cid, "MotoI.mp3", true) else setPlayerStorageValue(cid, 30706, 0) pauseSound(cid) end music.rar1 ponto -
Porta entrada event tile
davidjohson reagiu a Vodkart por uma questão
claro amigo, era só para colocar 2 POS, você acabou colocando 3 POS quando se tem só duas variáveis.... está aqui amg: function onStepIn(cid, item, position, fromPosition) if getPlayerLevel(cid) < 50 then doTeleportThing(cid, fromPosition) doPlayerSendCancel(cid, "You need level 50, your level is "..getPlayerLevel(cid)..".") return true end function checkpos(cid) local from, to = {x=152, y=47, z=6}, {x=154, y=47, z=6} -- pos começo e final dos tiles que não poderá ficar parado if not isCreature(cid) then return LUA_ERROR end if isInRange(getCreaturePosition(cid), from, to) then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) end end addEvent(checkpos, 10000, cid) return true end1 ponto -
Muito, muito enferrujado, só pra curtir mesmo http://img89.imageshack.us/img89/1975/70d0.png1 ponto
-
Compilar OTX no Visual Studio 2013 RC
drakylucas reagiu a Nu77 por uma questão
isso aqui pode te ajudar, http://otland.net/threads/compiling-tfs-simple-tutorial-for-beginners.197474/1 ponto -
1 ponto
-
malz mano kk erro escroto meu...1 ponto