Ir para conteúdo

Wise

Membro
  • Registro em

  • Última visita

Tudo que Wise postou

  1. É claro que eu li. Não significando nada pra mim o que você disse, eu respondi no geral (para o tópico todo e não somente à você). Já me cansei dessas suas citações insignificantes, até mais ver.
  2. Eu sei disso, não sou cego. Postei tudo corretamente, o erro foi feito pelo redirecionamento do fórum, não foi erro meu. Enfim editei a resposta pra corrigir esses problemas nos codes.
  3. npcarena.lua (data/npc/scripts): local tab = { level = 200, pos = {x = 123, y = 456, z = 7} } 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, 'arena')) then talkState[talkUser] = 1 selfSay('Are you sure you want to be teleported to the arena?', cid) elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if (getPlayerLevel(cid) <= tab.level) then talkState[talkUser] = 0 doTeleportThing(cid, tab.pos) doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT) else talkState[talkUser] = 0 selfSay('I can only teleport players with level '..tab.level..' or less.', cid) end elseif (msgcontains(msg, 'no') and talkState[talkUser] == 1) then talkState[talkUser] = 0 selfSay('Okay.', cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Arena.xml (data/npc): <npc name="Arena" script="data/npc/scripts/npcarena.lua" access="5" lookdir="1"> <health now="1000" max="1000"/> <look type="128" head="17" body="54" legs="114" feet="0" addons="2"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|. I can teleport you to the {arena}." /> </parameters> </npc> leveldoor.lua (data/actions/scripts): local tab = { lvl = 200, msg = "Apenas players até o level "..tab.lvl.." podem entrar." } function onUse(cid, item, frompos, item2, topos) if getPlayerLevel(cid) <= tab.lvl then doTeleportThing(cid, topos) doSendMagicEffect(frompos, CONST_ME_MAGIC_BLUE) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, tab.msg) doSendMagicEffect(frompos, CONST_ME_POFF) end return true end Tag - actions.xml (data/actions): <action actionid="ACTIONID" script="leveldoor.lua"/>
  4. Wise postou uma resposta no tópico em Suporte Tibia OTServer
    Isso varia de acordo com o seu script de "vip". Se é por premium days ou por storage, tem que analisar. Se conseguir identificar o script da sua vip, cria um tópico explicando seu pedido que eu vejo e te respondo.
  5. O player recebe alguma recompensa ao clicar no baú, ou somente surgem vários monstros? Quando o player vai poder sair do local ? (já que as portas vão ficar fechadas por 2 minutos depois que ele entrar) Explique melhor.
  6. Com certeza..obrigado. Postei esse que eu tinha feito antes, como resposta rápida.
  7. Wise postou uma resposta no tópico em Suporte Tibia OTServer
    raikatu.lua (data/npc/scripts): local tab = { [5] = {prom = 9}, -- [vocid] = {prom = newvocid}, [6] = {prom = 10}, [7] = {prom = 11}, [8] = {prom = 12} } 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, 'promotion')) then if tab[getPlayerVocation(cid)] then talkState[talkUser] = 1 selfSay('Eu posso lhe ensinar uma nova promotion, voce aceita?', cid) else talkState[talkUser] = 0 selfSay('Eu nao posso te promover, voce ainda nao esta pronto.', cid) end elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if (getPlayerVocation(cid) ~= tab[getPlayerVocation(cid)].prom) then talkState[talkUser] = 0 doPlayerSetVocation(cid, tab[getPlayerVocation(cid)].prom) doSendMagicEffect(getThingPos(cid), CONST_ME_GIFT_WRAPS) selfSay('Parabens, voce evoluiu sua promotion!', cid) else talkState[talkUser] = 0 selfSay('Voce ja foi promovido, continue sua jornada.', cid) end elseif (msgcontains(msg, 'no') and talkState[talkUser] == 1) then talkState[talkUser] = 0 selfSay('Entao adeus, jovem gafanhoto.', cid) end return true end Mestre Raikatu.xml (data/npc): <npc name="Mestre Raikatu" script="data/npc/scripts/raikatu.lua" access="5" lookdir="1"> <health now="1000" max="1000"/> <look type="325" head="39" body="114" legs="114" feet="39" addons="1"/> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|. Eu sou o Mestre Raikatu, o que voce quer comigo?" /> </parameters> </npc>
  8. lvldoor.lua (data/actions/scripts): local tab = { lvl = 300, msg = "Apenas players até o level "..tab.lvl.." podem entrar." } function onUse(cid, item, frompos, item2, topos) if getPlayerLevel(cid) <= tab.lvl then doTeleportThing(cid, topos) doSendMagicEffect(frompos, CONST_ME_MAGIC_BLUE) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, tab.msg) doSendMagicEffect(frompos, CONST_ME_POFF) end return true end Editado Tag - actions.xml (data/actions): <action actionid="ACTIONID" script="lvldoor.lua"/>
  9. Não foi só você quem resolveu o bug, se não percebeu, nós dois postamos no mesmo instante. Inclusive nem deu tempo de eu receber notificação de nova mensagem no tópico. Eu nem tinha visto sua mensagem, só vi agora que você postou de novo que eu li a anterior a minha. E só não marca com o mesmo horário em "Postado Hoje, .." porque eu respondi uma segunda vez enquanto não tinham novas respostas, se não acreditar em mim, dá pra notar o "espaço" dado no meu post, sem qualquer edição. E acrescentando, não tô aqui pra ganhar rep e sim pra contribuir no fórum.
  10. function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerLevel(cid) >= 150 then doPlayerAddItem(cid, 2100, 1) doTeleportThing(cid, {x=176,y=82,z=9}) else doPlayerSendCancel(cid, "This action is not possible.") end return true end Não somente o then num local inapropriado, mas também uma aspa " a mais. Quer dizer, uma aspa a mais fechando o parâmetro no local incorreto e havendo outros sinais após o parâmetro ter sido fechado.
  11. Wise postou uma resposta no tópico em Suporte Tibia OTServer
    Essa talkaction geralmente é usada por gamemasters, a não ser que tenha outra função no seu servidor. Enfim. Procure por /t no arquivo talkactions.xml do seu servidor (data/talkactions). Troque a tag por esta: <talkaction log="yes" words="/t" access="3" event="script" value="NOMEDOARQUIVO.lua"/> Atenção, não se esqueça de colocar o mesmo nome do arquivo da tag anterior em value dessa tag. Você pode alterar o acesso requerido como preferir. Se quiser que a talkaction não tenha mais qualquer ação no servidor, apenas remova a tag do arquivo.
  12. Wise postou uma resposta no tópico em Suporte Tibia OTServer
    Certo, então dá uma olhada no manual que te indiquei, provavelmente ele deve ter o conteúdo mais completo sobre Lua. Inicie do 0, leia tudo atentamente e coloque em prática, adaptando as funções às usadas no Tibia. Sua concepção e capacidade sobre a linguagem se desenvolve conforme você pratica, não tem como alguém chegar e te falar tudo de uma vez e que amanhã mesmo você já vai estar fundando sua própria empresa, não. Procure, se esforce, erre, corrija, você vai evoluindo aos poucos.
  13. Wise postou uma resposta no tópico em Suporte Tibia OTServer
    O conteúdo desse site é ótimo, pode te ajudar bastante.
  14. Wise postou uma resposta no tópico em Suporte Tibia OTServer
    Os tutoriais não são pra você copiar e colar, e sim pra você ter a concepção de uma base. Enquanto as suas dúvidas sobre as spells, poste aqui nessa área mesmo. Crie um tópico e membros vão te responder.
  15. Wise postou uma resposta no tópico em Suporte Tibia OTServer
    Já que você reviveu o tópico, te respondo. Sim, esse movementscript vai funcionar em qualquer servidor se o mesmo tiver as funções usadas nele.
  16. Wise postou uma resposta no tópico em Suporte Tibia OTServer
    Dá uma olhada na área de Tutoriais de Scripting aqui do fórum. Tutoriais como esse podem te ajudar enquanto as spells. Você pode também ler neste site, o conteúdo do manual de referência de Lua, que é a definição oficial da linguagem Lua.
  17. Wise postou uma resposta no tópico em Suporte Tibia OTServer
    local combat = createCombatObject() local meteor = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 6) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -11.2, -52, -11.2, 6) local stun = createConditionObject(CONDITION_PARALYZE) setConditionParam(stun, CONDITION_PARAM_TICKS, 5000) setConditionFormula(stun, -0.8, 0, -0.9, 0) setCombatCondition(meteor, stun) local arr = { {0, 0, 0, 0, 0}, {0, 0, 1, 0, 0}, {0, 1, 3, 1, 0}, {0, 0, 1, 0, 0}, {0, 0, 0, 0, 0} } local area = createCombatArea(arr) setCombatArea(combat, area) local function meteorCast(p) doCombat(p.cid, p.combat, positionToVariant(p.pos)) end local function stunEffect(cid) doSendMagicEffect(getThingPos(cid), CONST_ME_STUN) end function onTargetTile(cid, pos) if (math.random(0, 0) == 0) then local ground = getThingfromPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}) if (isInArray(water, ground.itemid) == TRUE) then local newpos = {x = pos.x - 7, y = pos.y - 6, z = pos.z} doSendDistanceShoot(newpos, pos, CONST_ANI_FIRE) addEvent(meteorCast, 200, {cid = cid, pos = pos, combat = meteor_water}) else local newpos = {x = pos.x - 7, y = pos.y - 6, z = pos.z} doSendDistanceShoot(newpos, pos, CONST_ANI_FIRE) addEvent(meteorCast, 200, {cid = cid,pos = pos, combat = meteor}) end end end setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile") function onCastSpell(cid, var) if (not canPlayerWearOutfit(cid, 138, 3) or not canPlayerWearOutfit(cid, 130, 3)) then return doPlayerSendCancel(cid, "You can only use this spell if you have the full mage addon.") end return doCombat(cid, combat, var) end
  18. Wise postou uma resposta no tópico em Suporte Tibia OTServer
    summoneritem.lua local sto, stime = 16661, 2 local monsters = {"Demon", "Behemoth", "Hydra"} function onUse(cid, item, frompos, item2, topos) if getPlayerStorageValue(cid, sto) - os.time() <= 0 then for i = 1, #monsters do doCreateMonster(monsters[i], topos) doSendMagicEffect(topos, CONST_ME_MAGIC_GREEN) end setPlayerStorageValue(cid, sto, os.time() + (stime*60)) else doPlayerSendCancel(cid, "You can only use this item every "..stime.." minutes.") end return true end tag: <action itemid="ITEMID" event="script" value="summoneritem.lua"/>
  19. Wise postou uma resposta no tópico em Suporte Tibia OTServer
    Então poste o erro pra podermos resolver.
  20. Wise postou uma resposta no tópico em Suporte Tibia OTServer
    Certo, de qualquer forma eu fiz do modo geral. Não posso adivinhar o que tem nos arquivos do servidor dele. Disponha.
  21. Wise postou uma resposta no tópico em Suporte Tibia OTServer
    E o que seria um "buff"? Especifique.
  22. Wise postou uma resposta no tópico em Suporte Tibia OTServer
    É mesmo..sei como o comando for funciona, eu me esqueci, fiz rápido. Obrigado pela correção. @williamcgv Disponha
  23. Wise postou uma resposta no tópico em Suporte Tibia OTServer
    ? Se você se referiu a mim (porque eu não entendi nada do que você disse), eu fiz o script do modo como o membro pediu.
  24. Wise postou uma resposta no tópico em Suporte Tibia OTServer
    Você não especificou se quer que remova o item do player depois de usar, ou quantas vezes ele pode usar o item, ou se esse item tem tempo de uso estipulado. Então: local monster = "Morgaroth" function onUse(cid, item, frompos, item2, topos) doCreateMonster(monster, topos) return true end
  25. Mas o fórum é pra isso, você pode pedir/perguntar o que e o quanto quiser. Não tem que se desculpar comigo, relaxa, só fiz uma pergunta.

Informação Importante

Confirmação de Termo