Jump to content
Close

Naze

Member
  • Content Count

    96
  • Joined

  • Last visited

About Naze

  • Rank
    Z-Scripter
  • Birthday 12/26/1996

Profile Information

  • Gender
    Masculino
  • Localization
    SP
  • I am
    OT-Admin
  • My character
    Naze
  • Interests
    Mulher, Bebida, Script, Tibia.

Recent Profile Visitors

2822 profile views
  1. Cara me parece que ele não encontra a coluna 'guild_id', consegue chega na sua database, se na parte players tem ela? Talvez seja isso.
  2. @weverton1559 Ola, desculpe por reviver o topico, mas vim relatar o possivel erro que pode dar, que no caso também é o erro postado pelo @weverton1559 Não sei a solução mas sei como evitar, vou explicar basicamente como achei e como resolvi. Pelo que entendi ele surge quando você mata um monstro que seu nome não está no monsters.xml. Mas como tem um monstro sem o nome ta no xml? Por exemplo, em meu servidor criei alguns novos monstros com mesmo nome, por exemplo o Demon, mas no xml eu adicionei como ancient demon, o nome do arquivo xml do monstro tbm está ancient demon, apenas no arquivo do ancient demon, na parte <monster name="Demon".... está somente demon, assim quando ele da spawn, apesar de ser um ancient demon, o nome fica como Demon. Até ai nenhum problema. Então adicionei um novo monstro Ancient Mystic Medusa, da mesma forma do demon, mas na parte do name="" coloquei apenas Mystic Medusa. Então oq aconteceu pra da o erro. Quando matei essa ancient mystic medusa, q o nome aparece apenas Mystic Medusa, ele começou dar esse erro sem parar da função onKill, relatando q o monstro não existe. Depois de varios teste, foi somente essa conclusão que cheguei. Para solucionar, adicionei um novo monstro no meu ot, que é a mystic medusa, que tem o mesmo nome do que da problema, mas a diferencia é q ele ta com esse nome no monsters.xml. Simplificando, eu adicionei o nome correto do monstro no monsters.xml assim não teve mais o erro. imagem para facilitar compreenção o com a seta preta, foi o que tive q adicionar apenas para evitar o erro, sem nenhum outro uso para o monstro Aqui é o arquivo xml do monstro, o nome está diferente do que relata no monsters.xml
  3. @Celulose @Vodkart Os dois método funciono, obrigado.
  4. Boa Noite (criei esse topico sobre o mesmo script de um a 2 dias, pois aquele ja tinha definido melhor respota e dado como resolvido, então nao sei se era certo reviver ele ou fazer outro, achei que seria fazer um novo.) Tenho esse script que funciona assim, quando o monstro morre, adiciona um item no local que some em determinado tempo, e da um efeito. Funciona normal, adiciona event no monster.xml que quero e está tag no login.lua tudo ok. Mas tem um problema que ele é uma função onDeath, então toda vez q o player morre ele acaba executando o script tbm. Acredito que precisaria colocar uma função nele para verificar se quem morreu foi player ou monster para só ocorrer nele. local time = 15 function removeTp(pos, id) local item = getTileItemById(pos, id) if item.uid > 0 then return doRemoveItem(item.uid, 1) end end function onDeath(cid, corpse, killers) local pos = getThingPos(cid) local id = 7632 local effect = 53 doSendMagicEffect(pos, effect) doCreateItem(id, 1, pos) addEvent(removeTp, time*1000, pos, id) return true end Tenho este também que faz algo parecido e é onDeath, o problema é o mesmo, então se solucionar o de cima acredito q resolvo esse.
  5. Testa esse, eu não posso testar agora. function onSay(cid, words, param) local health, maxhealth = getCreatureHealth(cid), getCreatureMaxHealth(cid) local mana, maxmana = getCreatureMana(cid), getCreatureMaxMana(cid) local text = "HP: ".. health .."/".. maxhealth .."\n MP: ".. mana .."/".. maxmana .."" doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, text) return true end Se quiser mais completo eu apenas modifiquei esse abaixo, crédito para Vodkart @edit Testei e está funcionando só precisa adicionar a tag em talkactions.xml <talkaction words="!status" event="script" value="status.lua"/> e se aparecer algum erro com essa msg na distro: unexpected symbol near '?' Pegue a linha do erro, e reescreva ela da mesma forma que ira resolver.
  6. @Reds Sim, sim, ficou do jeito que queria, consegui entender o erro pelo sua correção, sou leigo nessas parte mas tou estudando a partir desses problemas. Muito Obrigado
  7. @victor0707 Funciono perfeitamente, obrigado. @Reds Também funciono tudo certo, obrigado.
  8. @telefonesemfio Acredito que o jeito que sugeriu daria certo, e até posso usar dois itens nessa situação, mas então só precisaria saber para hora que ele puxar apenas para bag ocorrer a mudança já que esse item não vai ser equipado. Não tou no computador agora depois irei tenta do jeito que sugeriu pois me interesso tbm, mas quem poder me indicar o erro ainda do problema dessa script fico grato. @edit Também pensei de uma forma que seja mais simples de fazer, que seria ao dropa esse item que vai ter tal duração, se eu der use nele ele adicionaria o outro item em minha bag, seria mais simples e eu só precisaria mudar a história por traz do item. Obrigado ajudo muito sua sugestão.
  9. Ola, tenho a seguinte script, e a primeira função que tinha nela, era fazer o efeito quando o monstro morre, até ai funciono perfeitamente, depois coloquei para adicionar o Item no local da morte também, agora estava tentando fazer com que depois de um determinado tempo esse item suma. Mas não queria colocar uma duração nesse item pois se o player catar ele não poderia sumir. local time = 15 function removeTp() local item = getTileItemById(getThingPos(cid), 7632) if item.uid > 0 then return doRemoveItem(item.uid, 1) end end function onDeath(cid, corpse, killers) local monsters = { [""] = 15, [""] = 15, [""] = 13, } local effect = monsters[getCreatureName(cid)] or 53 doSendMagicEffect(getThingPos(cid), effect) doCreateItem(7632,1,getThingPos(cid)) addEvent(removeTp, time*1000) return true end da o seguinte erro na distro Eu ja tentei de outras forma usando como base outros scripts mas o erro e o mesmo ou algo o gênero. Os exemplo ta no spoiler:
  10. @Vodkart Realmente esperava algum erro mesmo pois tava em duvida sobre isso, e também sobre vip.getDays(id)) Mas consegui entender agora essas duas parte pela sua correção, obrigado. name = name or "" id = tonumber(id or 1) or 1 obs: Vou corrigir o meu post também ok? para evitar futuros problema caso usem.
  11. @jakons Editei a partir do !buypremium, não sei se vai adicionar dias pois não sabia direito qual sistema VIP é esse. Mas peguei o mesmo do script que você citou. local config = { days = 2, -- dias add de vip cost = 2000000 -- custo em dinheiro } function onSay(cid, words, param, channel) if(doPlayerRemoveMoney(cid, config.cost) ~= TRUE) then doPlayerSendCancel(cid, "Você precisa de 2kk para comprar " .. config.days .. "dias de VIP.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return TRUE end vip.addVipByAccount(getPlayerAccount(cid) ,vip.getDays(tonumber(days))) -- @edit corrigido doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados " .. config.days .. " dias VIP.") return TRUE end Se retorna erro pode postar.
  12. O jeito de venda que você quer fazer serio por fala tipo !buyvip, ou por NPC?
  13. Obrigado funcionou esse que me passou, mas acabei mudando um pouco antes de ver sua resposta e também consegui um que deu certo, mas muito obrigado. Esse é o que vou usar, e também está funcionando: local DESTINO = {x = 2241, y = 2374, z = 7} -- POSIÇÃO DE DESTINO 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:lower()) end function onThink() npcHandler:onThink() end local talkState = {} 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, "ancient paradise") then if getPlayerStorageValue(cid, 100101) >= 1 then selfSay("Você ja obteve a aprovação, porque está ocupando meu tempo?", cid) npcHandler:onCreatureDisappear(cid) else doNPCTalkALot(cid, getNpcCid(), 1000, {"Jovem Heroi, Ancient Paradise acreditamos que seja um continente imensuravel, e sua localização foi descoberta por navegadores, e essa ilha a nomeamos como Small Paradise, a primeira ilha antes de chegar em Ancient Paradise Island.", "Eu estou encarregado de aprovar novos aventureiro nessa ilha, se passar pelo meu {teste} podera ir sem mais restrições para Ancient Paradise e também desfrutar dos misterios dessa Small Paradise."}) talkState[talkUser] = 1 end elseif msgcontains(msg, "teste") and talkState[talkUser] == 1 then talkState[talkUser] = 2 doNPCTalkALot(cid, getNpcCid(), 1000, {"Veja bem, meu teste é muito simples, essa Smalll Paradise está repleta de monstros um tanto curioso, então por isso resolvemos usar ela para fazer esse teste.", "Você vai precisar escontrar um báu deixado por mim em uma determinada parte da ilha, após encontra recebera um presente por sua conquista, e também te darei acesso imediato a Ancient Paradise, deseja {tentar} obeter aprovação agora?"}) elseif msgcontains(msg, "tentar") and talkState[talkUser] == 2 then talkState[talkUser] = 3 selfSay("Você realmente deseja tentar obter aprovação, achar o caminho de volta pode ser muito dificil se não conseguir?", cid) elseif msgcontains(msg, "yes") and talkState[talkUser] == 3 then if getPlayerLevel(cid) >= 400 then doNPCTalkALot(cid, getNpcCid(), 2000, {"Para obter sua aprovação você vai precisar busca nesta ilha o baú que contém um presente especial pra você. Se obter isso te teleportarei novamente para vc obter acesso a Ancient Paradise, e também poderá explorar o restante dessa Small Paradise dizem que contém tesouros.", "Jovem herói, não que eu teja olhando para baixo em você, mas você não me parece que possa passar a aprovação com apenas isso... Por isso vou te dar um aviso e também conta como ajuda já que vai saber o que enfrentar, cuidado cons dragões.","Tome esse {machete} também vai precisar."}) local bp = doPlayerAddItem(cid, 1987, 1) doAddContainerItem(bp, 2420, 1) doSendMagicEffect(getThingPos(cid), 10) npcHandler:releaseFocus(cid) doTeleportThing(cid, DESTINO) doSendMagicEffect(DESTINO, 10) else selfSay("Me desculpe, mas você não tem level necessario para obter aprovação. Volte quando atingir level 400.", cid) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  14. Ola, consegui um script de npc que da travel por storage aqui no tibiaking, e fiz uma pequena modificação para da travel dependendo o level. Mas como esse teleporte vai fazer parte de uma quest gostaria que ao finalizar a quest e obter a ultima storage o npc não fizesse mais o teleporte. Por isso também modifiquei para tentar, mas acontece q apesar de não dar nenhum erro, o npc não da mais o teleporte depois da primeira fala. Essa é a script do npc funcionando perfeitamente, verificando o level e fazendo o teleporte local DESTINO = {x = 160, y = 54, z = 7} -- POSIÇÃO DE DESTINO 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:lower()) end function onThink() npcHandler:onThink() end local talkState = {} 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, "tentar") then selfSay("Você realmente deseja tentar obter aprovação, achar o caminho de volta pode ser muito dificil se não conseguir?", cid) talkState[talkUser] = 1 elseif msgcontains(msg, "yes") and talkState[talkUser] == 1 then if getPlayerLevel(cid) >= 400 then selfSay("Boa sorte!", cid) doSendMagicEffect(getThingPos(cid), 10) npcHandler:releaseFocus(cid) doTeleportThing(cid, DESTINO) doSendMagicEffect(DESTINO, 10) else selfSay("Me desculpe, mas você não tem level necessario para obter aprovação. Volte quando atingir level 400.", cid) end talkState[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Essa é que tentei modificar novamente agr colocando para se ele não tiver a storage ele continua o teleporte, caso ele ja tenha a storage fala que já obteve finaliza. Mas acontece q ele está verificando se tem a storage corretamente, e fala a segunda fala perguntando se quer "tentar", e apos fala o yes ele não faz o teleporte. local DESTINO = {x = 160, y = 54, z = 7} -- POSIÇÃO DE DESTINO 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:lower()) end function onThink() npcHandler:onThink() end local talkState = {} 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, "tentar") then if getPlayerStorageValue(cid, 13540) >= 0 then selfSay("Você realmente deseja tentar obter aprovação, achar o caminho de volta pode ser muito dificil se não conseguir?", cid) talkState[talkUser] = 1 elseif msgcontains(msg, "yes") and talkState[talkUser] == 1 then if getPlayerLevel(cid) >= 400 then selfSay("Boa sorte!", cid) doSendMagicEffect(getThingPos(cid), 10) npcHandler:releaseFocus(cid) doTeleportThing(cid, DESTINO) doSendMagicEffect(DESTINO, 10) else selfSay("Me desculpe, mas você não tem level necessario para obter aprovação. Volte quando atingir level 400.", cid) end else selfSay("Você ja obteve aprovação.", cid) end talkState[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Poderiam me indicar o erro e como corrigi-lo, pois ele não está funcionando mas não da nenhum aviso na distro. Obrigado desde já.

Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia partindo do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer publicidade para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução! A publicação do seu anuncio é instantânea!

×
×
  • Create New...