Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 09/28/13 em todas áreas

  1. Introdução ao OOP (Object-Oriented Programming) "A orientação a objetos é um paradigma de análise, projeto e programação de sistemas de software baseado na composição e interação entre diversas unidades de software chamadas de objetos." Traduzindo, cada coisa que está presente em um programa é considerado um objeto. Exemplo disso são os jogos. Os personagens são objetos, podendo ser da classe NPC, Character, Monster... Mas o que é classe e objeto? - Definições Existem algumas definições essenciais para entender a orientação a objetos. As principais são classe, objeto, método e atributo. Classe: Podemos dizer que classes são grupos com características inicialmente iguais. Exemplo, na vida real, temos as classes "Humano", "Pássaro", "Inseto", etc. Cada classe tem seus membros, que são os objetos, suas características, que são os atributos, e suas ações, que são os métodos. Objeto: Cada membro das classes é chamado de objeto, por exemplo, na classe "Humano" existem os objetos eu, você, seu amigo, etc. Dá pra dizer que cada pessoa é um objeto da classe "Humano". Atributo: São as características da classe. Exemplo, na classe "Humano" temos algumas características como "Nome", "Altura" e "Idade", que variam de indivíduo para indivíduo, ou em programação, que variam de objeto para objeto. Método: São as ações que os objetos de uma classe podem realizar. Exemplo, objetos da classe "Humano" podem realizar ações como Beber, Comer, Correr. Em programação, cada ação dessa seria uma função ligada à classe, que é executada por um objeto. - OOP em Lua Lua, na verdade, não é uma linguagem orientada a objetos. Porém, possui uma biblioteca com artifícios que simulam isso, que são os meta-métodos e meta-tabelas. A principal função dessa biblioteca é a setmetatable. Ela transforma uma tabela normal em uma "tabela-objeto". - Criando classes: Para deixar mais claro, vamos criar uma tabela normal. Humano = {} OBS: Em orientação a objetos, sempre use Camel Case, que é deixar os nomes de classes e métodos iniciando com letra maiúscula. É só pra deixar o código mais bonito mesmo. Agora que criamos a tabela Humano, vamos colocar alguns atributos (características) nela: Humano = { nome = "", altura = 0, idade = 0, } Agora temos uma classe Humano com os atributos nome, altura e idade. Agora vamos criar um objeto dessa classe. Para isso, vamos criar uma função que transforma essa tabela em uma meta-tabela. Para isso, usamos a função setmetatable(table, metatable): function Humano:New(nome, altura, idade) local obj = {} obj.nome = nome obj.altura = altura obj.idade = idade return setmetatable(obj, {__index = self}) end Mas o que fiz ali? Simples. Peguei os parâmetros da função, coloquei dentro da tabela obj e depois criei uma meta-tabela. O que significa aquele self? Bom, o parâmetro self está implícito, então fica meio confuso. Você poderia fazer assim: function Humano.New(self, nome, altura, idade) No lugar de: function Humano:New(nome, altura, idade) Ou seja, aqueles : (dois pontos) são para não precisar declarar o self. O self serve para retornar o objeto da classe. Fazendo {__index = self}, você consegue acessar os atributos direto do objeto. Você entenderá isso um pouco mais pra frente. - Criando métodos: Vamos agora criar métodos, ou seja, o que os objetos da classe conseguem fazer, ou melhor, as funções que eles conseguem executar. Criaremos um método que faz a altura do objeto da classe Humano aumentar. Traduzindo, a pessoa cresce. function Humano:Grow(amount) amount = amount == nil and 1 or amount self.altura = self.altura+amount end O que fizemos ali? Primeiro, criamos um método ligado à classe Humano, chamado Grow (crescer em inglês). Depois, fizemos o seguinte para não dar erro: amount = amount == nil and 1 or amount. Ou seja, se o amount não for declarado, ele passa a valer 1. Depois, pegamos o atributo altura do objeto utilizando self.altura (lembra do self?) e acrescentamos o amount. Ou seja, se amount = 3, acrescentará 3 na altura do objeto. Simples, não? OBS: Métodos criados ligados à uma classe só podem ser executados por objetos dessa mesma classe! Se você tem um objeto da classe "Inseto", você não pode utilizar nele os métodos da classe "Humano". - Criando objetos Agora que você sabe criar classes e métodos, você pode criar objetos. É super simples, só fazer assim: hi = Humano:New("Manoel", 1.77, 16) Pronto, agora você tem um objeto na variável hi com o nome Manoel, altura de 1.77 e 16 anos. E como executar métodos nesse objeto? Simples também, veja: hi:Grow(0.34) No caso, o objeto da variável hi vai ter a altura aumentada em 0.34. E como modificar atributos do objeto sem precisar de funções? Outra coisa muito simples: hi.altura = 1.80 Isso fará a altura do objeto da variável hi ficar em 1.80. - Percepções Agora que você já sabe uma base de orientação a objetos, você perceberá que quando você usa uma função como string.lower(str), você está usando orientação a objetos, com um método da classe string. local a = "Batata" string.lower(a) é o mesmo que a:lower() Por que? Porque string é uma classe, lower é um método, e o método é string:lower(). Lembra do self implícito? - Final Bom galera, muito obrigado por lerem esse tutorial. Fiz ele dedicado ao meu amigo Manoel Neto. Utilizei como base os conhecimentos passados pelo meu mestre Oneshot. Quaisquer dúvidas e/ou sugestões, podem postar aqui no tópico. Proibido postar em qualquer outro fórum de Open Tibia brasileiro.
    3 pontos
  2. Oneshot

    [Medalhas] RECEBA A SUA AQUI!

    Eu acho que eu merecia a de Herói, já fui colaborador, moderador, e coordenador, fiz muitas coisas na seção de Scripting, apresentei projetos para revitalizar a área e não deveria ser desmerecido pelos problemas do começo desse ano rsrsr
    3 pontos
  3. beto06

    [Show Off] Beto

    Postando o resto das fotos
    2 pontos
  4. Tonynh

    Capa para Facebook²

    Passando para deixar uma segunda versão, deixei o gato mais definido.
    2 pontos
  5. MythSoft

    SoftWorld [8.40] **FoxWorld**

    Features: Mapa FoxWorld 8.4 Spells FoxWorld 8.4 Hunts NPCs Trainers Entre outros! 80% Igual ao Foxworld Sem Bugs Sistema de vip pelo comando /premiumaccount "name" (CoMANDo só por GOD) Senha GOD--Account Name---deket---Password---203413 Download: Download Scan Créditos: Thiagobji SoftWorld FoxWorld Ótimo Server para Player versus Player(pvp) !
    1 ponto
  6. Bom muitos tem a duvida de como fazer tutor falar em Laranja no game chat e help e GM,CM,GOd falar em Vermelho entao la vai o Tutorial precisa editar os source assim. Em chat.cpp procure por: Nessa function ache: Pule 2 linhas e bote isso: Agora ache: Troque essa linha por: Bom Assim os Gods Falaram em Vermelho, e os game master , communyti managers e tutores falaram em laranja Mais Akzs Como Fazer para que GODS , GMS e CMS falem em vermelho. Simples so Editar assim Pronto Aperta F9 e Compila e estara pronto. Como Editar os Groups ? No Caso ali esta getGroupId no caso esta "5" Entao esta para acesso de CM Caso queria editar coloca o Valor do Access ali. OBS:o Ultimo Codigo Esse aki embaixo \/ Ele esta Para Todos Grupos
    1 ponto
  7. Venom2

    Remere's map editor 10.10

    Galera XxTibiana, vou legalizar a versão 10.10 do mapa editor pra quem quiser conferir as novas sprites desse summer update. Lembrando que não é uma versão oficial! Então caso forem usar em seus mapas principais lembrem-se de criar uma cópia dos mesmos. Segue uma screenshot e o link de download: Link 1. O 4shared já contem scan 2. Os méritos não são meus, eu apenas trago a novidade a vocês. 3. Para usar de modo efetivo converta um mapa seu para a versão 10.10 e quando for pedido para achar seu tibia .spr e .dat eles estarão localizados em data >1010 do arquivo do 4shared. Havefun!
    1 ponto
  8. Primeiramente, me chamo Gabriel. Estou procurando um servidor para fazer parte da equipe (como tutor, senior tutor, gm ou outro cargo). Desejo fazer parte de uma equipe séria. Pode ser tibia, narutibia ou poketibia. Abaixo falarei um pouco sobre minhas experiências. Já fui membro de equipe de um servidor chamado mutacaosv (sucessor do elfen war) cujo nome foi mudado depois para renegadesv. Nesse servidor comecei como player e fui, com o tempo e com muito suor, subindo de cargo, até chegar ao mais alto que eu podia, o cargo de Community Manager. Até chegar ao cargo de CM demorou aproximadamente 2 anos e meio (passei por todos os grupos, até senior tutor). Ajudei o servidor a crescer, ajudava os players retirando dúvidas, fazia eventos e muito mais. Certamente quem já jogou deve se lembrar de mim (CM Elf, CM Gabriel, etc.) Também participei de um servidor de naruto, o ntoultimate, porém, foi por pouco tempo.Já fui tutor em muitos servidores de tibia, tanto globais como mapas próprios.Gosto de dar sugestões que melhorem o servidor.Sou sincero, sei quando respeitar os superiores, sei quando ouvir e quando falar.Gosto de ajudar, conviver com os players, criando uma harmonia no servidor.Possuo vasta experiência sobre narutibia, poketibia e tibia (onde upar, monstros, drops, etc.)Bom... é isso. Caso queira saber mais sobre mim ou tiver alguma pergunta, sinta-se livre em me mandar uma mensagem privada ou então, faça aqui mesmo neste tópico.
    1 ponto
  9. Noninhouh

    Insignias na Skill Bar

    Bom, apenas mais um sistema pra ajuda o povo que esta criando um ot Pokemon e usando o OTC GOSTARIA DE FALAR QUE TESTEI NO SERVER PDA BY SLICER primeiro vamos as edições no SERVER: Pronto, no server é isso... Agora no seu OTC, na pasta modules/game_skills: OBS: É APENAS A PARTE QUE ESTA EM VERMELHO NA IMAGEM ACIMA
    1 ponto
  10. masdead

    [Tutorial] Novos itens no Otserver

    Bom nesse tutorial eu vou ensinar a você como Criar novos itens para seu Otserver! Esse tutorial vai ser completo ensinando todos os passos, acho que ele vai ser meio extenso então peço paciência a vocês e que leiam até o final. Vocês vão precisar de: Spr Editor: http://www.4shared.c.../SprEditor.html Dat Editor: http://www.mediafire...ibm89zyaqqdq16p OtItemEditor: http://www.speedysha...titemeditor.rar SPR Editor Primeiro de tudo você pega a sprite que você deseja utilizar, eu vou usar essa: Abra o seu SPR Editor, ao abrir você irá se deparar com essa tela. Então você começar. Version: você irá selecionar a versão do Tibia.spr que você deseja abrir Search by ID: Você poderá procurar a sua sprite por id. Para abrir o seu Tibia.spr você irá clicar em SPR File e irá selecionar o Tibia.spr que você deseja abrir (ele precisa ser da mesma versão que você você colocou na caixa version). Depois de selecionar o seu Tibia.spr você irá clicar em Extract! Vai começar a carregar a barra de carregamento, completando o carregamento irá aparecer essa tela: As sprites ficaram do lado esquerdo da sua tela. Para colocar uma nova spr é só você clicar com o lado direito do seu mouse em cima de alguma spr e clicar em Replace e irá abrir uma tela para selecionar você fecha ela e clica com o lado direito do mouse denovo e clica em add, irá abrir outra tela para você selecionar sua spr, vá até onde você salvou a sua sprite e selecione ela feito isso ficará assim: Agora você compilar ###########public/style_emoticons/default/smile.png Do Lado da aba Extract vai ter a aba compile! Agora você irá clicar em Save Irá abrir uma tela para você salvar, recomendo que salve em cima do Tibia.spr que você usou para abrir as sprites do SPR Editor. Após selecionado você irá clica em Compile! Feito isso a barra de carregamento irá carregar (a vá) e quando completar vai aparecer a mensagem: Sucesso. Esse Parte Do Spr editor já está completa, agora vamos para o dat editor. Dat Editor Essa parte é meio complicada, eu não sei fazer ela muito bem Primeiro de tudo abra seu Dat Editor e aperte CTRL+O ou vá em File>Open Sua tela vai ficar assim: Você vai ter que selecionar o Tibia.dat e Tibia.spr (você tem que usar o que você editou no SPR Editor). Em Dat você seleciona o seu arquivo Tibia.dat. Em SPR você seleciona o seu arquivo Tibia.spr. Depois de selecionar clica na caixinha ao lado de Open ali se você deseja editar uma Versão acima de 8.5 você deve deixar em 760 e para editor uma versão abaixo de 8.5 você deve deixar em 780, como a versão que eu estou editando é 8.7 eu vou deixar em 760. Clique em Open. E as Barras iram começar a carregar! Terminando de carregar sua tela ficará assim: Vou mostrar um pouco da interface do Dat Editor Vermelho = As sprites que você tem no seu Tibia.spr. Azul = Animação ou partes de um item. Laranja = Os seus itens. Verde = Configuração dos seus itens. Então vamos lá para adicionar um item você vai em File>New>Item, pronto foi criado um item mais ele ainda está em branco então na caixa das sprites você vai localizar a sua sprite (vai ser as ultimas). Após localizar a sua sprite você clica nela e aperta INSERT no seu teclado agora ela vai parecer em seus itens. Mais ainda não acabou, agora nos vamos configurar o item, isso é uma coisa meio complicada então eu recomendo que veja outro item (se o seu item for um tile você olha em um tile, se for uma sword você olha uma sword) pra ver como ele foi configurado, o meu eu configurei olhando em outro tile e ficou assim essa parte toda: Antes de compilar você tem que pegar o ItemType do item porque nos vamos usar ele na parte do OTItemEditor o ItemType fica na parte circulada: Agora é só compilar, pra fazer isso você vai em File>Save ai vai abrir uma janelinha e você clica em compile, terminando de compilar vai ficar assim: Pronto a parte mais difícil já foi Agora Vamos editar o items.otb Item Editor Primeiro de tudo pegue o tibia.spr e tibia.dat que você editou e os renomeie tava Tibia870 (870 é a versão do tibia.dat e tibia.spr que eu editei se o seu for 8.6 você coloca 860 a assim por diante) e coloque da pasta data do seu OTitemeditor feito isso abra seu editor. Agora vá em File>Open vai abrir uma janela nessa janela você seleciona o Item.otb do seu server feito isso você vai se deparar com essa tela: Agora você clica em Edit e create Item pronto o item foi criado mais pra você poder ver ele você tem que ir em View Update Treeview. Para achar o novo item criado você vai em Other (fica na caixa a esquerda) e vai no penultimo item que fica em Other e essa vai ser a tela com que você irá se deparar: Lembra do ItemType que eu disse pra vocês guardarem então ele será útil agora. Coloque o ItemType nessa caixa: Feito isso vai ficar assim: Algumas caixas vão ficar em vermelho bom se a caixa tiver marcada então você tem que desmarcar agora se tiver desmarcada você tem que marcar. Feito isso é só salvar! Agora é só você colocar o item.otb que você editou na pasta do seu rme e na pasta do seu server e e usar o dat e spr editado para abrir o rme e para jogar. Pra abrir seu rme e para jogar com as spr você tem que renomear o dat e spr pra Tibia se deixar como Tibia870 não vai dar para abrir Feito isso é só você se divertir com suas novas spr's ###########public/style_emoticons/default/smile.png Comentem por favor, obrigado.
    1 ponto
  11. LuckOake

    Fábrica de Scripts

    Olá galera. Tava aqui de boa sem o que fazer, aí tive essa ideia de fazer um tópico pros membros pedirem scripts simples. Regrinhas: NÃO PEÇA EVENTOS AQUI, SÓ SCRIPTS OU SISTEMAS SIMPLES; NÃO PEÇA SCRIPTS QUE JÁ EXISTEM; Se você quer algum script que está sendo vendido em algum lugar, poste aqui que eu faço pra você. Nesse tipo de caso, a regra número 1 pode ser desobedecida; Sem floods, comentários ou conversas no tópico; Por uma questão de organização, não gostaria que outros usuários sem minha permissão postassem scripts prontos para resolver pedidos aqui. Se quiserem resolver o pedido de um usuário, mande PM pra ele ou crie um tópico e poste; Faço qualquer tipo de script desde que seja da versão 8.54 até a 9.8; Não faço scripts para TFS 1.0; Não peça scripts ou sistemas que envolvam sources; Somente scripts que envolvam no máximo dois arquivos serão feitos; Máximo de dois pedidos por vez para cada usuário; Use um português adequado e detalhe bem seu pedido. Pedidos pouco detalhados ou com português ruim serão ignorados. Se não for bom com português, ao menos TENTE escrever adequadamente. O Oneshot e o Manoel Neto tem permissão para atender pedidos no tópico. Oneshot trabalha como quer, do jeito que quer e quando quer. Obs: E odeia leechers. Caso você não entenda o por quê de postar aqui ao invés de criar um tópico, pense no seguinte. Você quer um script bem feito, bem explicado e de fácil configuração ou um que qualquer usuário chega lá e faz? Garanto que todos os scripts que farei nesse tópico serão, no mínimo, de alta qualidade. Abraços e aproveitem a oportunidade. Ao contrários dos outros tópicos de fábrica de scripts, aqui não vou tentar fazer. Se estiver dentro das regras, vou fazer.
    1 ponto
  12. Eu vejo muitas pessoas pedindo esses dois scripts, então eu fiz eles e vou postar para facilitar a vida de todo mundo =) Creditos: Killua, antigo amoeba13 Matar player e arrancar o coração: Matar o player e avisar para todo mundo no Default: Espero que seja util, ate a proxima
    1 ponto
  13. Omega

    The Blood Festival

    Resposta ao tópico http://www.xtibia.com/forum/topic/218216-pedido-evento-fraghora/ Informações É um evento simples: quem mata mais durante a duração do evento, ganha os prêmios Intervalo entre uma execução e outra configurável Duração configurável Feito em mod (porque é mais fácil de instalar) Vem com comando informativo sobre o evento Testado em 8.6 Código Crie um arquivo chamado Blood Festival.xml na sua pasta de mods com o seguinte código: Configurações Configuração padrão: 1 hora de duração e 4 horas entre o início de cada evento A duração, os prêmios e a opção de contar somente frags unjust são feitas na primeira parte do código, chamada blood_config O intervalo de execução entre os eventos vem como padrão 4hs (14400000 milissegundos). Esse intervalo pode ser modificado nessa parte: Screenshot OBS.: Sim, eu uso muito mal o paint. Mas o script funciona.
    1 ponto
  14. Vegan

    [ENG] VeG(allery)an

    Olá, it's my first diagonal "monster". I will make and add more soon. C&C
    1 ponto
  15. LuckOake

    Fábrica de Scripts

    Rapaz, seu server deve estar com algum problema, pois aqui funcionou normalmente. Tente trocar as global storages de novo: local global_storage = 13895 -- Global Storage da lever que remove a porta local lever_istorage = 13896 -- Global Storage das levers erradas local lever_cstorage = 13897 -- Global Storage das levers corretas --------------------------------------------------------------------------------------------------------- Tá aqui:
    1 ponto
  16. LuckOake

    Fábrica de Scripts

    Vou fazer e postar num tópico depois. Esse sistema vai demorar um pouquinho mais pra ficar pronto.
    1 ponto
  17. LuckOake

    Fábrica de Scripts

    Fiz um pra você, crie um arquivo em data/creaturescripts/scripts com o nome de task_system.lua e coloque isso dentro: Creaturescripts.xml: <event type="kill" name="TaskSystem" script="task_system.lua"/> Adicione no login.lua antes do último return true: registerCreatureEvent(cid, "TaskSystem") Configure aqui: local monsters = { -- [Nome] = {storage, quantia, recompensa {id, quantia}}, ["Troll"] = {storage = 18011, count = 1000, reward = {2160, 10}}, ["Orc"] = {storage = 18012, count = 700, reward = {2160, 10}}, } Só ir adicionando mais monstros seguindo o modelo. --------------------------------------------------------------------------------------------------------------------- Não modifico sistemas de outras pessoas. Peça diretamente para o vodkart.
    1 ponto
  18. LuckOake

    Fábrica de Scripts

    O seu sistema dará a recompensa após matar o último monstro ou tem que falar com um NPC? -------------------------------------------------------------------------------------------- Sim, tá aqui:
    1 ponto
  19. LuckOake

    Fábrica de Scripts

    Testei aqui e funcionou normalmente. Substitui aí, mudei as global storages:
    1 ponto
  20. LuckOake

    Fábrica de Scripts

    Não é aconselhável fazer isso que você quer, resetar a database com o servidor ligado. Além do que, com ele desligado, não é possível executar scripts. É melhor simplesmente usar o phpMyAdmin mesmo com o servidor desligado. O motivo para não fazer isso com o server ligado é que só remover os valores das tabelas da database não é suficiente pra resetar mesmo. Os players continuariam online, os items continuariam nas houses, etc, aí no próximo server save voltaria tudo.
    1 ponto
  21. comedinhasss

    [Arquivado]I am back!

    Galera, eu estou voltando, ontem comprei um notebook novo e finalmente posso voltar a desenvolver e jogar tibia com vocês. Alissow Server irá voltar a atualizar e eu irei voltar a ficar na ativa (se não reprovar de ano)
    1 ponto
  22. comedinhasss

    [Arquivado]I am back!

    Apoiado esta idéia ehhueuhe vou dar uma olhada depois ._ Faça isto, serei grato pelo resto da minha vida heauhae Sim, já faz um bom tempo que muitos projetos estão precisando disso, principalmente alguns ATS...Todavia, vamos ser amigos, acho que foi errado pedir isso logo de cara, parece que estamos querendo te usar, então me desculpe ! rç Estou sendo usado euhuehueu Para criar um novo projeto acho que é so botar o antigo para não salvar os ids dai vai criar um em branco para editar (do ponto de vista das gambiarra)
    1 ponto
  23. comedinhasss

    [Arquivado]I am back!

    Apoiado esta idéia ehhueuhe vou dar uma olhada depois ._
    1 ponto
  24. aguinho600

    [Arquivado]I am back!

    Vejo o avançado brasileiro do Open Tibia voltando...xD Bem que podia começar desenvolvendo um novo "Dat Editor" com opções de criar um do zero, etc.. u.u Todavia, espero que sua estadia seja boa.
    1 ponto
  25. http://www.xtibia.com/forum/topic/201802-classic-premium-v2/
    1 ponto
  26. masdead

    Abrir 2 mapas

    Não tem o que arrumar, pra abrir dois mapas de uma só vez é preciso que os mapas estejam na mesma versão um do outro.
    1 ponto
  27. Overpower

    Pip designer antiga

    É um pouco antiga já, o que acham?
    1 ponto
  28. Benny

    Pip designer antiga

    Pips não foram feitas para o "Éks" Eu só falei como elas ficariam no éks cara... É como comprar uma roupa sem experimentar... Opa, acho que tu não entendeu .... É que assim, no fórum onde ele ia utilizar as pips iriam ficar de acordo com a skin :3 Espero ter entendido Abraços, Flinkton
    1 ponto
  29. masdead

    Remeres Erro 45 %

    Sinto muito em te dar essa noticia mas você perdeu esse mapa, use o backup dele se tiver.
    1 ponto
  30. beto06

    uMapinha

    Eu achei muito bom, mas até agora não entendi, sobre os telhados no chão, no 2° e 3° andar. Tirando isso, ficou bem legal. fora que eles deixam o ground 'unwalkable'
    1 ponto
  31. Vegan

    [ENG] VeG(allery)an

    Thanks a lot for your comments Another one:
    1 ponto
  32. Isso não é problema do script e sim do que está localizado no NPC Troque isso: <parameter key="message_greet" value="Yes." /> Por isso: <parameter key="message_greet" value="Hello |PLAYERNAME| I can change a {Stuffed Dragon} for a Infernal Bolt"/>
    1 ponto
  33. Não tenho certeza de onde errei, acho que é por causa da versão do server, eu estou trabalhando em um 8.50.. kk Então dei uma editada, configurando os ids e arrumando as falas.. Tente ai. 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 local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid if(msgcontains(msg, 'list')) then selfSay('I can change Infernal Bolt for {Stuffed Dragon}', cid) elseif(msgcontains(msg, 'stuffed dragon')) then selfSay('Do you want to exchange a Stuffed Dragon for a Infernal Bolt?', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if(doPlayerRemoveItem(cid, 6566, 1) == true) then selfSay('Thank You!', cid) doPlayerAddItem(cid, 6529, 1) talkState[talkUser] = 0 else selfSay('You dont have the Stuffed Dragon', cid) talkState[talkUser] = 0 end end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Espero que desta vez funcione.
    1 ponto
  34. Nolis

    uMapinha

    1 ponto
  35. local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) 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 item = 'You do not have the required items.' done = 'Here you are.' function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end if msgcontains(msg, 'stuffed dragon') then if getPlayerItemCount(cid,6566) >= 1 then selfSay('Did you bring me the Stuffed Dragon?', cid) talk_state = 1 else selfSay('I need a {Stuffed Dragon}, to give you a Infernal Bolt. Come back when you have them.', cid) talk_state = 0 end elseif msgcontains(msg, 'yes') and talk_state == 1 then talk_state = 0 if getPlayerItemCount(cid,6566) >= 1 then if doPlayerRemoveItem(cid,6566, 10) == TRUE then selfSay(done, cid) doPlayerAddItem(cid, 6529, 1) end else selfSay(item, cid) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Não cheguei a testar.. Mas né.. Dei um edit por causa dos ids..
    1 ponto
  36. afe se fufu, peguei o script do kennyxd, e nem vi a parte do function onSay ... function onUse(cid, item, frompos, item2, topos) if getTilePzInfo(getCreaturePosition(cid)) == FALSE then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce Nao Pode Usar Enquanto Estiver Em Protect Zone.")return true end if (getPlayerStorageValue(cid, 11548) >= os.time()) then doPlayerSendTextMessage(cid, 6,"Por medidas de segurança você só pode utilizar este comando em " .. (getPlayerStorageValue(cid, 11548)-os.time()+(0)) .. " segundos.") return TRUE end function onUse(cid, item, frompos, item2, topos) storage = 4191 storsol = 1203 if #getCreatureSummons(cid) > 1 then doPlayerSendCancel(cid,"Your Demonio is already summoned.") end if getPlayerStorageValue(cid,storsol) == 1 then local z = getCreatureSummons(cid)[1] addEvent(setPlayerStorageValue,100,cid,storsol,-1) doPlayerSay(cid,"Back my summon!",TALKTYPE_ORANGE_1) doSendMagicEffect(getCreaturePosition(z), 2) doSendDistanceShoot(getCreaturePosition(z), getPlayerPosition(cid), 3) doRemoveCreature(z) end local summons = getCreatureSummons(cid) local pet = { ["Bug"] = {1,250}, ["Death Blob"] = {251,1500}, ["Worker golem"] = {1501,5000}, ["werewolf"] = {5001,9999}, ["Mercury Blob"] = {10000,15000}, ["Flufly"] = {15001,23000}, ["haunted treeling"] = {23001,30000}, ["Vampire Bride"] = {30001,40000}, ["Grim Reaper"] = {40001,55000}, ["Zombie"] = {55001,80000}, ["Azure Frog"] = {80001,400000} } for k,v in pairs(pet) do -- 1 if getPlayerStorageValue(cid,storsol) < 1 then if getPlayerLevel(cid) >= v[1] and getPlayerLevel(cid) < v[2] then -- 2 if (table.maxn(summons) < 1)then -- 3 x = doSummonCreature(k, getCreaturePosition(cid)) doConvinceCreature(cid, x) setPlayerStorageValue(cid,4194,1) setPlayerStorageValue(cid,11548,os.time()+30) setPlayerStorageValue(cid,storsol,1) doCreatureSay(cid, k ..", go!", TALKTYPE_ORANGE_1) doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 2) end end end end return true end
    1 ponto
  37. Roksas

    [Idle-System] 1.0

    Por que? Que eu saiba o return pode ser usado desta maneira, logo, o comando não sairía como fala, em amarelo.
    1 ponto
  38. Adicione isto em talkactions.xml: <talkaction words="alana res" filter="word-spaced" event="function" value="houseBuy"/> <talkaction words="alana grav" filter="word-spaced" event="function" value="houseSell"/> <talkaction words="alana sio" filter="word-spaced" event="function" value="houseKick"/> <talkaction words="aleta grav" filter="word-spaced" event="function" value="houseDoorList"/> <talkaction words="aleta sio" filter="word-spaced" event="function" value="houseGuestList"/> <talkaction words="aleta som" filter="word-spaced" event="function" value="houseSubOwnerList"/>
    1 ponto
  39. Roksas

    [Idle-System] 1.0

    Obrigado cara haha, aguarde, o próximo vai ser top.
    1 ponto
  40. faz assim você utiliza outro sistema de VIP né ? então o premium não altera em nada no seu servidor então faça assim vai no config.lua e procura por essa tag freePremium = false coloca freePremium = true assim todos jogadores seram premium más não vai interferir no seu sistema de VIP então ta de boa ^^
    1 ponto
  41. Vegan

    [ENG] VeG(allery)an

    Thx for try Next time write in Portuguese or english. Translate to polish is crap . And i will try to fix chin And another one:
    1 ponto
  42. raphaelpdc

    [Encerrado]Spriter

    Ficha: Nome:Raphael Tempo na área:2 Anos Contato:Skype Exemplos de trabalho: Evite mostrar o seu projeto aqui no forum, me ADD no skype para conversarmos melhor.
    1 ponto
  43. SmiX

    DarkXPoke (DXP)

    Quem disse que nosso servidor será só mais um, como qualquer outro online ? Estão enganados. Trago a vocês 3 novos sistemas, que vão estar como mais duas 'armas' em nosso arsenal de Sistems. • [WIld Ditto] - Cuidado para os que quiserem caçar Ditto selvagens, pois agora eles tem inteligencia artificial, ou seja, ele se tranforma em seu próprio pokemon. • [Catch Fruit] - Para os players que estão cançados de comprar foods em npcs, que tal uma nova forma de arrumar tais regalias de graça? - Com o novo sistema de food, você ira conseguir comida facil, facil, para seus pokemons. Basta ter um item e recolher das proprias árvores, suas frutinhas. • [Anti-Block Respawn] - Que tal ninguém atacar o pokemon que você esta caçando? Bom, não? - Com esse novo sistema, não havera block respawns. Caso você tenha atacado um pokemon outro player não podera atacalo, se não estiver em party com você. Imagens:
    1 ponto
  44. Qual o modelo do seu site: gesior/modern? Oque não esta funcionando depois do vinculo, servidor ou shop?
    1 ponto
  45. Noninhouh

    Insignias na Skill Bar

    vlw paul jah atualizei o topic e s, eu fiz o sistema ;p
    1 ponto
  46. chacao

    Subwat Kamikaze v30

    adm mapa bom gostei tbem ja dei rep+ By: Pally jackss flw vo trampa mais ficou show o mapa
    1 ponto
  47. gilioti

    Subwat Kamikaze v30

    ADM [VIP] Hunter AKI GOSTEI DO MAP E DEI REP JA UHUUUUUU
    1 ponto
  48. lipezinhoh

    Efeitos De Spells Com Imagens

    Bom pessoal segue o meu primeiro tópico. O objetivo desse tópico não é ensinar fazer spell, mais sim mostrar os efeitos que pode ser adicionado em cada spell, mais para que tivesse mais facilidade de visualização resolvi colocar uma magia como exemplo. 1° criando uma spell (eu usei essa como exemplo, mais você pode colocar o efeito em qualquer outra spell) Entre na pasta data/spell/scripts e crie um arquivo com o nome de efeitos.lua e cole o seguinte código: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 26) -- coloque aqui no lugar do "26" o numero do seu efeito -- setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -70.3, -30, -75.7, 0) arr = { {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, } local area = createCombatArea(arr) setCombatArea(combat, area) function onGetFormulaValues(cid, level, skill, attack, factor) local skillTotal, levelTotal = skill + attack * 3, level / 5 return -(skillTotal * 1.2 + levelTotal), -(skillTotal * 4 + levelTotal) end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") function onCastSpell(cid, var) return doCombat(cid, combat, var) end Depois vai em data/spell e procure pelo arquivo spell.xml e adicione a seguinte tag: <instant name="efeito" words="teste efeito" lvl="100" mana="400" prem="1" needweapon="0" exhaustion="1200" needlearn="0" script="efeitos.lua"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> <vocation name="paladin"/> <vocation name="royal paladin"/> </instant> Após feito isso, pronto! sua magia está criada, agora basta trocar onde se encontra o "26" e colocar o numero do efeito que deseja. exemplo: - onde está assim: - voce pode deixar assim: Agora basta logar o seu GOD e digitar /reload spells e testar o seu efeito de acordo com a lista a seguir: Efeito: 1 Efeito: 2 Efeito: 3 Efeito: 4 Efeito: 5 Efeito: 65 Segue a baixo algumas imagens postado pelo Antharaz (créditos 100% a ele) nesse post: http://www.xtibia.co...e-como-usa-los/ lista: efeito 1 = círculos efeito 3 = ataque cruzado efeito 4 = ataque x com fumaça efeito 5 = explosão efeito 6 = explosão com bola de fogo efeito 7 = explosão de pequenos circulos efeito 8 = explosao de veneno efeito 9 = ataque fisico (tipo exori) efeitos basicos: efeito 10 = vis efeito 11 = choque efeito 12 = estrela azul efeito 13 = estrela vermelha efeito 14 = estrela verde efeito 15 = flam efeito 17 = mort efeito 41 = frigo Efeito 18 = ataque em x verde Efeitos especiais: efeito 23 = musica azul efeito 24 = musica branca efeito 25 = bolhas efeito 33 = Monstro marinho (rox) efeito 34 = fumaça efeito 35 = coração efeito 52 = gelo efeito 53 = com agua efeito 55 = espelho com monstro efeito 61 = assasin efeito 62 = sangue efeito 65 = fantasma efeito 66 = morcego efeito 300 = chuva de pedras bom Antes de postar eu procurei sobre tópicos que representava os mesmo assunto, acabei encontrando alguns até mesmo interessante, mais como eu já tinha tirado as imagens antes resolvi postar. nesse caso irei direcionar os créditos as pessoas que eu encontrei com o mesmo assunto, caso falte alguém por favor me avise que eu irei colocar os créditos. Espero que goste desde já agredeço!
    1 ponto
  49. MatheusGlad

    Cores Para Npcs E Monstros

    NAO FUNCIONA EM ALGUNS MONSTRO Primeiramente irei ensinar aonde mudar a cor dos npcs: Va em data/npc e abra o npc.xml como um bloco de notas, repare na linha do npc que esteja assim: Legendas: Laranja Numero do Outfit (logo abaixo ensinarei como pegar o looktype de um monstro) Negrito Cor da cabeça Azul Cor do corpo Vermelho Cor das pernas Rosa Cor dos pés Pegando o Looktype de um monstro: Vá em data/monster/scripts e procure pelo seu monstro, logo depois repare na linha: Verde Numero do looktype do monstro eh so pegar e bota-lo no npc. Numero das Cores: Bom por enquanto eh so isso espero que ajude voces. PS: Se estiver com dificuldades para ver os numeros clique na foto Creditos: 95% MatheusMkalo 5% Antharaz (pela ideia) para ver a ideia original Clique aqui
    1 ponto
  50. OTx Server Versión V1.4.2 - Lightbringer Gold OTX Server Versión 1.4.2 - Lightbringer Gold Based Versión on The Forgotten Server Version 0.3.6 - Crying Damson Descrição: Descrição: Este referido como Lançamento OTX Server Version v1.4.2 -.(Lightbringer Gold) inclui d em extras intermináveis​​, upgrades, reparações, etc, Ela também vai voltar para o suporte a protocolos de idade 8.54/57 - 8,60-8,62 - 8.70/71 - 9,10 ea novidade de um suporte de protocolo 9.20/31. Importante para protocolos mais antigos: Otimização do código - tornando-o mais estável do que já era. Uma nova config "allowedMaxSizedPackets", que ajuda quando se trata o pacote enviado ao servidor (como bots para o seu servidor tornando-os mais seguros e não por qualquer falhacoisas crasee externo). Adicionado um Firewall Linux poderoso (iptables-firewall) que você encontrará no download. Correção de erros As fórmulas de experiência a perder, pois isso é otimizado para o seu sistema 8.62-8.70/71 OrangeSkull e PvpBless. Também corrige o erro de / ghost que causou GM por Invisiblesdebug GM. No protocolo 8.70/71 Montagens sistema foi melhorado consideravelmente, tornando Magias semelhante a 9.x 8.70/71 protocolo também inclui um sistema semelhante ao 9.xchamado "Casa do sistema de armazenamento de dados", quefaz com que o servidor mantenha x60 vezes mais rápido do que ele fez. O que é importante no protocolo de 9,10 - 9.20/31 está incluído no "general-info-log" para cada download (eles são mais eficientes seguro e confiável). Mais informações sobre o pool de progresso, e mais em"general-info-log" para cada protocolo. ChangeLoGFiles: alterações nas versões (1.3.1 a 1.4.2) "8.5xa9.1x" - e (1.4.1 a 1.4.2) "9,20 a 9.20/31" http://pastebin.com/YeR39jP3 Consola 1.2 Consola 1.2.1 A principal melhoria nesta distribuição eo mais notável é o items.xml sistema de atualização e monstros em todos os protocolos dando assim uma semelhança com o que é Tibia RL ou o que era nas versões anteriores e também um sistema de otimização guilda e evitando assim a realizar a clonagem caixa através da mídia nos protocolos de ambos 8.5xa 8.6xy apresenta uma interface que você já perdeu e desde que eu dignou a colocá-lo novamente (GUI) OT eXe Server OTX Server 1.0.0 Version - "Corona" - 07/09/2011 OTX Server 1.1.0 Version - "Silver" - 07/29/2011 OTX Server 1.2.1 Version - "Fantasy" - 08/07/2011 OTX Server 1.3.1 Version - "Moon Princess" - 09/08/2011 OTX Server 1.4.1 Version - "Lightbringer" - 04/10/2011 OTX Server 1.4.2 Version - "Lightbringer Gold" - 30/10/2011 OTX Server 2.0.0 Version - "The Second" - ??/12/2011 Download Server - SVN Info & Extras: DownLoad Server: OTX Server Server Versión 1.4.2 - Lightbringer Gold Caso em que o link não funcionar Farmacopeia e cole este link em sua barra de endereços. http://fileserve.com/list/c2vQaAV SCANS: OtLand IP Changer OTX Server 1.4.2 - 8.54-57 OTX Server 1.4.2 - 8.60 OTX Server 1.4.2 - 8.62 OTX Server 1.4.2 - 8.70-71 OTX Server 1.4.2 - 9.10 OTX Server 1.4.2 - 9.20-31 SVN Info: SVN SERVER: http://otservdata.go...m/svn/branches/ SVN Viewer: http://code.google.c...ata/source/list Report Bug: Qualquer falha para denunciá-lo neste servidor para resolver Tópico rapidamente. Informação: Todas as funções, as reparações, anexações e alterações em arquivos "general-info-log.txt & description.log". Compilar: No arquivo "README-howcompilelinux-howcompilewindows.log" incluído no download "OTX Server v1.4.1". Uniform Server Descripción (WEB + MySQL Service): Se você usou eu recomendo usar MySQL Uniform Server em vez de XAMPP, XAMPP como é muito instável. XAMPP + Modern AAC = Page rendered in: 0.0554 seconds. XAMPP + MySQL service = 70Mb aprx/ Uniform Server + Modern AAC = Page rendered in: 0.0219 seconds. Uniform Server + MySQL service = 28Mb aprx/ Tutorial: http://otland.net/f4...-0-3-6-a-77593/ Version: 6.0.5 Windows 7/2008 32 & 64bit users. 6.0.5 download from SourceForge.net Version: 5.6.15 Windows XP 32bit users. 5.6.15 download from SourceForge.net Notas: Server Info: [ OTX Server 1.2.2 Version - "Fantasy Edition" - Path 2 Especial Features: 0% * GUI System "All Protocols" compiled with "-D__GUI_SYSTEM__" 0% * Pokemon Code "OnLy 8.54-57" compiled with "-D__POKEMON_SYSTEM__" Addeds: * Fixes: * New Config(s) + Modifield(s) + Deleted(s): * SVN Client: Usada SVN Tortoise para ver as mudanças na. Requisitos: DLLPACK este utilizado para este download SERVIDOR (OBRIGATóRIO).Uma vez que é compiladoo com Code:: Blocks e Microsoft Visual Basic C + + 2010 e tem diferentes ".dll Kind regards a despedir-me... Se você gostou do post que você tem pontos terno Creditos: By Martyx
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...