
Tudo que Wise postou
-
Npc que teleporta player com um determinado level
É 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.
-
Npc que teleporta player com um determinado level
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.
-
Npc que teleporta player com um determinado level
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"/>
- Área vip
-
[PEDIDO] Fechar a porta e aparecer monstros quando clica no bau !
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.
-
Porta que só abre para um determinado nível
Com certeza..obrigado. Postei esse que eu tinha feito antes, como resposta rápida.
-
[Pedido] Npc de promotion
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>
-
Porta que só abre para um determinado nível
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"/>
-
data/actions/scripts/bau/bau.lua:4: unexpected symbol near 'then'
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.
-
data/actions/scripts/bau/bau.lua:4: unexpected symbol near 'then'
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.
-
Ajuda comando /t ZOT
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.
-
ohayo
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.
-
Cursos
O conteúdo desse site é ótimo, pode te ajudar bastante.
-
ohayo
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.
- Área vip
-
ohayo
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.
-
spell
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
-
[Pedido]
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"/>
-
[PEDIDO] de script
Então poste o erro pra podermos resolver.
-
sistema akatsuki e anbu
Certo, de qualquer forma eu fiz do modo geral. Não posso adivinhar o que tem nos arquivos do servidor dele. Disponha.
- BUFF JUNTO A OUTRO BUFF
- Aleatório
-
sistema akatsuki e anbu
? 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.
-
[Pedido]
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
- (Resolvido)[pedido] Como adicionar X vocação em X item