Líderes
-
Skydangerous
MembroPontos1432Total de itens -
-
-
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 10/29/11 em todas áreas
-
[MOD] Criando teleporte pelo jogo
[MOD] Criando teleporte pelo jogo
kaioboyy e 2 outros reagiu a Skydangerous por uma resposta no tópico
3 pontosCrie um teleporte em qualquer lugar , em qualquer hora para qualquer lugar do mapa. Util para otserv com eventos ! Modo de usar: /portal X,Y,Z, quantas pessoas podem entrar <?xml version="1.0" encoding="utf-8"?> <mod name="Portal" version="2.0" enabled="yes"> <description> Faz um portal no seu pe , e as pessoas podem entrar ex. /portal x,y,z,quantas pessoas ex. /portal 1000,1000,7,15 </description> <talkaction words="/portal" access="5" event="script"><![CDATA[ function onSay(cid, words, param) param = param.explode(param, ',') if param then teleport = doCreateTeleport(1387, {x=param[1], y=param[2], z=param[3]}, getPlayerPosition(cid)) doItemSetAttribute(teleport, "description", 'The portal may enter '..param[4]..' people left.') doItemSetAttribute(teleport, "aid", 100+param[4]) else doPlayerSendCancel(cid, "You must set param.") end return TRUE end ]]></talkaction> <movement type="StepIn" itemid="9740" event="script"><![CDATA[ function onStepIn(cid, item, position, fromPosition) if item.actionid > 100 then doItemSetAttribute(item.uid, "description", 'The portal may enter '..(item.actionid-101)..' people left.') doItemSetAttribute(item.uid, "aid", item.actionid-1) elseif item.actionid == 100 then doBroadcastMessage("The Portal has ran out of energy and collapsed.", MESSAGE_EVENT_ADVANCE) doSendMagicEffect(position, 2) doRemoveItem(item.uid, 1) end return true end ]]></movement> </mod> Créditos: Ao Scripter, não lembro o nome3 pontos -
PFIELD Project v2.0
PFIELD Project v2.0
PedroSTTe 2 outros reagiu a raulot por uma resposta no tópico3 pontosBom gente eu tava com um ot server muito bom aki no pc e resolvi postar aki pra vcs... ai vai: Nome: PFIELD Project v2.0 Contem: Catch 100% Fly 100% Flash 100% Surf 100% Ride 100% Rock Smash 100% Cut 100% Teleport 100% (!h pra ver os lugares e !h nomedacidade para ir ate a cidade) Control Mind 99.9% (tipo se vc usa um Alakazam pra controlar outro pokemon e vc mandar o pokemon se mover ele teleporta para o lugar como o Alakazam) Order 100% Catch 100% Goback 100% Portrait 100% Pokedex 100% m1~m9100% Hold position 100%(para o pokemon fikar parado vc diz .h pra ele se mover dnovo vc diz .h =D) !lg para mudar a linguagem (English-Português) Moves Kanto e Shiny 100% Talkactions 100% NIck System 100% Efeito ao upar level Vip system Npc de Vip por diamonds Sistema de max 6 pokemons na bag o resto vai para o cp (embaixo do cp eu encontrei um lugar q parecia ser um sistema de boost mas não consegui usar então se alguem souber poste porfavor) Screens: Escolhendo os Pokemons: CP: Pokemon Seller: Fly: Ride: Surf: Control Mind: Cut: Rock Smash: Nick System: A parte mais esperada Download: http://www.4shared.c...Project_v2.html Password pra descomprimir: mug446vi Scan http://www.virustota...dcd-1319911332# Créditos 1% pra mim por postar aki 99% pra não sei, o lugar onde eu encontrei esse ot não falava sobre créditos o server não é de autoria minha se alguem souber de quem é diz ae q coloco os devidos créditos. Desculpem mas no caso de algum bug não poderei ajuda-los ja q não sei nada de script mas qualquer coisa poste ai alguem pode te ajudar e talvez eu saiba o q é, mas testei o server por uns 2 dias e não encontrei nenhum bug. é isso ai galera, COMENTEM3 pontos -
Fazendo a 2 Promotiom
Fazendo a 2 Promotiom
Google e um outro reagiu a Skydangerous por uma resposta no tópico
2 pontosBom , existe muitos preguiçosos que não gostam de editar aquelas vocações que existe no seu otserv chamada EPIC , então , eu fiz para você e vou disponibilizar totalmente ! Lembrando é para versões 8.7 , não funfa em outra abaixo ou acima. Segue os passos detalhadamente , e porfavor não seja curioso e apresado leia com atenção para não bugar seu server. 1º Abra a pasta do seu OTSERV e logo em seguida pasta DATA e clica na pasta XML e abra o arquivo chamada VOCATIONS 2º Delete o que está dentro e cole o script. Continuando parte 3 9º Abra pasta ACTIONS e depois em seguida abra pasta SCRIPTS e abra a pasta LIQUIDS , agora abra o arquivo chamado POTIONS , delete tudo e copie o script local config = { removeOnUse = "no", usableOnTarget = "yes", -- can be used on target? (fe. healing friend) splashable = "no", range = -1, realAnimation = "no", -- make text effect visible only for players in range 1x1 multiplier = { health = 1.0, mana = 1.0 } } config.removeOnUse = getBooleanFromString(config.removeOnUse) config.usableOnTarget = getBooleanFromString(config.usableOnTarget) config.splashable = getBooleanFromString(config.splashable) config.realAnimation = getBooleanFromString(config.realAnimation) local POTIONS = { [8704] = {empty = 7636, splash = 42, health = {50, 100}}, -- small health potion [7618] = {empty = 7636, splash = 42, health = {100, 200}}, -- health potion [7588] = {empty = 7634, splash = 42, health = {200, 400}, level = 50, vocations = {3, 4, 7, 8,11,12}, vocStr = "knights , paladins, epic knight , epic paladin"}, -- strong health potion [7591] = {empty = 7635, splash = 42, health = {500, 700}, level = 80, vocations = {4, 8,12}, vocStr = "knights"}, -- great health potion [8473] = {empty = 7635, splash = 42, health = {800, 1000}, level = 130, vocations = {4, 8,12}, vocStr = "knights"}, -- ultimate health potion [7620] = {empty = 7636, splash = 47, mana = {70, 130}}, -- mana potion [7589] = {empty = 7634, splash = 47, mana = {110, 190}, level = 50, vocations = {1, 2, 3, 5, 6, 7,9,10,11}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion [7590] = {empty = 7635, splash = 47, mana = {200, 300}, level = 80, vocations = {1, 2, 5, 6,9,10}, vocStr = "sorcerers and druids"}, -- great mana potion [8472] = {empty = 7635, splash = 43, health = {200, 400}, mana = {110, 190}, level = 80, vocations = {3, 7,11}, vocStr = "paladins"} -- great spirit potion } local exhaust = createConditionObject(CONDITION_EXHAUST) setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100)) function onUse(cid, item, fromPosition, itemEx, toPosition) local potion = POTIONS[item.itemid] if(not potion) then return false end if(not isPlayer(itemEx.uid) or (not config.usableOnTarget and cid ~= itemEx.uid)) then if(not config.splashable) then return false end if(toPosition.x == CONTAINER_POSITION) then toPosition = getThingPosition(item.uid) end doDecayItem(doCreateItem(POOL, potion.splash, toPosition)) doRemoveItem(item.uid, 1) if(not potion.empty or config.removeOnUse) then return true end if(fromPosition.x ~= CONTAINER_POSITION) then doCreateItem(potion.empty, fromPosition) else doPlayerAddItem(cid, potion.empty, 1) end return true end if(hasCondition(cid, CONDITION_EXHAUST)) then doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED) return true end if(((potion.level and getPlayerLevel(itemEx.uid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(itemEx.uid)))) and not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES)) then doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1) return true end if(config.range > 0 and cid ~= itemEx.uid and getDistanceBetween(getThingPosition(cid), getThingPosition(itemEx.uid)) > config.range) then return false end local health = potion.health if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.multiplier.health))) then return false end local mana = potion.mana if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.multiplier.mana))) then return false end doSendMagicEffect(getThingPosition(itemEx.uid), CONST_ME_MAGIC_BLUE) if(not config.realAnimation) then doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) else for i, tid in ipairs(getSpectators(getThingPosition(itemEx.uid), 1, 1)) do if(isPlayer(tid)) then doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid) end end end doAddCondition(cid, exhaust) doRemoveItem(item.uid, 1) if(not potion.empty or config.removeOnUse) then return true end if(fromPosition.x ~= CONTAINER_POSITION) then doCreateItem(potion.empty, fromPosition) else doPlayerAddItem(cid, potion.empty, 1) end return true end 9º Pronto , feche e salve 10º Agora vamos liberar o NPC , abra a pasta NPCe em seguida a pasta SCRIPTS e abra o arquivo chamado PROMOTION e cole isso. 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 local node1 = keywordHandler:addKeyword({'promot'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can promote you for 20000 gold coins. Do you want me to promote you?'}) node1:addChildKeyword({'yes'}, StdModule.promotePlayer, {npcHandler = npcHandler, cost = 20000, level = 20, promotion = 1, text = 'Congratulations! You are now promoted.'}) node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then, come back when you are ready.', reset = true}) local node2 = keywordHandler:addKeyword({'epic'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can epicize you for 200000 gold coins. Do you want me to epicize you?'}) node2:addChildKeyword({'yes'}, StdModule.promotePlayer, {npcHandler = npcHandler, cost = 200000, level = 120, promotion = 2, text = 'Congratulations! You are now epicized.'}) node2:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then, come back when you are ready.', reset = true}) npcHandler:addModule(FocusModule:new()) 11º Pronto , feche e salve 12º Está 100% configurado , agora e só se divertir , lembre-se edite do seu jeito , você é o cara !2 pontos -
[Movement] Map Mark
[Movement] Map Mark
Karlaio e um outro reagiu a Skydangerous por uma resposta no tópico
2 pontos-=-= Quando o player pisar aparecerá (Ver foto a baixo) Instalando Crie um novo arquivo: movements/scripts/mapmarks.lua Cole isso: local config = { storage = 9432, version = 1, marks = { {mark = 5, pos = {x = 166, y = 439, z = 7}, desc = "Main City Temple"}, {mark = 7, pos = {x = 300, y = 200, z = 7}, desc = "NPC with tools!"}, {mark = 1, pos = {x = 666, y = 666, z = 6}} } } local f_addMark = doPlayerAddMapMark if(not f_addMark) then f_addMark = doAddMapMark end function onStepIn(cid, item, position, fromPosition) if(isPlayer(cid) ~= TRUE or getPlayerStorageValue(cid, config.storage) == config.version) then return end for _, m in pairs(config.marks) do f_addMark(cid, m.pos, m.mark, m.desc ~= nil and m.desc or "") end setPlayerStorageValue(cid, config.storage, config.version) return TRUE end Legenda: version = 1 -> Aumente esse valor após a adição de novas marcas, então o jogador pode entrar novamente e receber marcas novo no mapa. mark = X -> Ai será a imagem que aparecerá no mapa (Ver a foto dos ids). pos = {x = X, y = X, z = X} -> Será a posição aonde aparecerá no mapa. desc = "Main City Temple" -> Sera a descrição apos passar o mouse em cima. Depois vá para movements/movements.xml E adicione essa linha: <movevent event="StepIn" actionid="YOUR_ACTION_ID" script="mapmarks.lua"/> Legenda: YOUR_ACTION_ID = Coloque a action que ficará no piso. Segue as lista das opções de imagens que pode existir. Créditos: slawkens2 pontos -
Importar E Exportar Tabelas Mysql
Importar E Exportar Tabelas Mysql
Guilherme e um outro reagiu a Skydangerous por uma resposta no tópico
2 pontosTutorial: Importando e Exportando Tabelas em MYSQL Autor: SkyDangerous(EU) Nivél Tutorial: Iniciante Programa Usado: XAMPP Siga os passoa a seguir , e não seja curioso e pule ou faça outras coisas ! Importando Tabelas: 1 Passo: Iremos primeiro de tudo abrir o local onde fica o nosso banco de dados(PHPMYADMIN) utilizando esse código http://localhost:8090/phpmyadmin/. 2 Passo: Pronto , agora criamos a nosso banco de dados , com qualquer nome e então selecionamos ele e clicamos em importar. 3 Passo: Agora clique na opção "Escolher Arquivo" , lembrando que ele só irá abrir arquivos em formato SQL 4 Passo: Agora clica na opção "Executar" la embaixo no canto direito. 5 Passo: Fazendo isso certinho , aparecerá uma mensagem assim Importação finalizada com sucesso, 71 consultas executadas. 6 Passo: Pronto , você importou suas tabelas , seja feliz :thumbsupsmiley: OBservações: Existem outros métodos , porém esse é o melhor Exportanto Tabelas: 1 Passo: Vamos entrar em nosso banco de dados criado já e importado. 2 Passo: Agora , vamos clicar na opção "Exportar". 3 Passo: Segue a baixo o que deve fazer. 4 Passo: Pronto , agora clicando em executar , ele aparecerá a tela de salvar arquivo , salve ele em um local. 5 Passo: Agora , voce salvou o arquivo e pode levar para todos os lugares2 pontos -
[RESOLVIDO] Pokemons Iniciais
[RESOLVIDO] Pokemons Iniciais
raulot e um outro reagiu a Doughell por uma resposta no tópico
2 pontosRaulot, primeiramente boas vindas! Agora vamos a sua dúvida: Esta dúvida e bastante frequente quem está iniciando com PokeTIBIA, mais e fácil de solucionar, veja só. Alguns servidores de padrão, os Pokémons iniciais são: Charmander, Bulbasaur e Squirtle. Já outros são: Rattata, Weedle e Squirtle. Os seus documentos estão localizados na pasta data/actions com os seus nomes, por exemplo: Bulbasaur = bulbasaur.lua Squirtle = squirtle.lua e assim vai... Para modifica-los e apenas abrir o arquivo e ver o nome do Pokémon que você abriu para editar, por exemplo: bulbasaur.lua, no arquivo conterá diversas linhas com o nome Bulbasaur então e apenas modificar todos esses nomes com o que você quer, por exemplo: Bulbasaur para Charmander, dai você que decidi. Observação: O health/mana modifica de acordo com o .xml do Pokémon. Observação²: Se quiser mudar o nome de Bulbasaur.lua para Charmander.lua apenas para saber o que o tal.lua tem ali dentro, fica mais fácil para depois se quiser editar alguma coisa.2 pontos -
[Sistema] Atirar com arma
[Sistema] Atirar com arma
ReyMystery reagiu a Skydangerous por uma resposta no tópico
1 pontoEsse sistema é bem legal para aqueles que gostam de tipo tibia gta , o script não é perfeito mas é bem criativo e legal. Crie um arquivo em nas pata action com nome de arma.lua Cole isso function isWalkable(pos, creature, proj, pz)-- by Nord if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end if getTopCreature(pos).uid > 0 and creature then return false end if getTileInfo(pos).protection and pz then return false, true end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end function doShootEffect(distancetotarget, effect, l, y) -- l = localpos(lookdirpos), y = dirvalue for i = 0, distancetotarget-1 do if isInArray({0,3}, y) then local _J = y == 0 and {x = l.x, y = l.y-i, z = l.z} or y == 3 and {x = l.x-i, y = l.y, z = l.z} doSendMagicEffect(_J, effect) else _J = y == 1 and {x = l.x+i, y = l.y, z = l.z} or y == 2 and {x = l.x, y = l.y+i, z = l.z} doSendMagicEffect(_J, effect) end end return true end local items = { [2534] = { balaid = 2545, level = 1, skillup = 5, mindamage = -1, maxdamage = -5255, damagetype = COMBAT_HOLYDAMAGE, } } local _MIT = {} local shootmode = "shooteffect mode" -- "effect mode" or "shooteffect mode" function onUse(cid, item, fromPosition, itemEx, toPosition) local function getFirstThingInArea(pos) for areax = pos.x, pos.x do for areay = pos.y, pos.y do local area = {x = areax, y = areay, z = pos.z} if isCreature(getTopCreature(area).uid) or not isWalkable(area) then table.insert(_MIT, getThingFromPos(area).uid) for s = 1, #_MIT-1 do table.remove(_MIT, s+1) end end end end return true end local l = getPlayerLookPos(cid) local y = getCreatureLookDirection(cid) local g = items[item.itemid] if g then if getPlayerLevel(cid) < g.level then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need level ".. g.level .." or higher.") end if getTilePzInfo(getCreaturePosition(cid)) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You cannot use a gun in a protection zone.") end if item.uid ~= getPlayerSlotItem(cid, 5).uid then return doPlayerSendCancel(cid, "Equip your gun on gun slot.") end if getPlayerSlotItem(cid, 10).itemid == g.balaid then doRemoveItem(getPlayerSlotItem(cid, 10).uid, 1) doPlayerAddSkillTry(cid, g.skillup, 1) for T = 0, 20 do local _g = y == 0 and {x = l.x, y = l.y-T, z = l.z} or y == 3 and {x = l.x-T, y = l.y, z = l.z} or y == 1 and {x = l.x+T, y = l.y, z = l.z} or y == 2 and {x = l.x, y = l.y+T, z = l.z} getFirstThingInArea(_g) end if #_MIT >= 1 then local mpos = getThingPos(_MIT[1]) local ppos = getDistanceBetween(mpos, l) local ft = y == 0 and {x = l.x, y = l.y-ppos, z = l.z} or y == 1 and {x = l.x+ppos, y = l.y, z = l.z} or y == 2 and {x = l.x, y = l.y+ppos, z = l.z} or y == 3 and {x = l.x-ppos, y = l.y, z = l.z} if isCreature(getTopCreature(mpos).uid) then doAreaCombatHealth(0, g.damagetype, ft, 0, g.mindamage, g.maxdamage, 0) else doSendMagicEffect(ft, 3) end if shootmode == "shooteffect mode" then doShootEffect(ppos, 12, l, y) elseif shootmode == "effect mode" then doSendDistanceShoot(l, mpos, 40) end table.remove(_MIT, 1) end else doPlayerSendCancel(cid, "You do not have munition.") end end return true end Cole isso agora em action.xml <action itemid="2534" event="script" value="arma.lua"/> Explicação: local shootmode <-- Pode trocar para effect mode [2534] = { <-- ID DA ARMA balaid = 2545, <-- ID DA BALA level = 1, <-- Level para usar skillup = 5, <-- SKILL UP mindamage = -1, <-- MINIMO DE DANO maxdamage = -5255, <-- MAXIMO DE DANO damagetype = COMBAT_HOLYDAMAGE, <-- EFEITO DO TIRO <action itemid="2534"/> Id da arma , preste atenção se mudar também no script. Video demostrando: KylerXxX Skydangerous - Explicação , tutorial e video Créditos:1 ponto -
Desenvolvimento de um Trabalho
Desenvolvimento de um Trabalho
ferlations reagiu a Sknir por uma resposta no tópico
1 pontoDesenvolvimento de um Trabalho Para dar início à um projeto/trabalho -para um cliente ou não- é recomendável que se siga alguns passos. Briefing O briefing é um conjunto de informações passadas em uma reunião para o desenvolvimento de um trabalho. O briefing deve criar um roteiro de ação para criar a solução que o cliente procura, é como mapear o problema, e com estas pistas, ter idéias para criar soluções. O briefing é uma peça fundamental para a elaboração de uma proposta de pesquisa de mercado. É um elemento chave para o planejamento de todas as etapas da pesquisa de acordo com as necessidades do cliente. Pesquisa A pesquisa é um processo sistemático de construção do conhecimento que tem como metas principais gerar novos conhecimento e/ou relembrar os pré-existente. A pesquisa como atividade regular também pode ser definida como o conjunto de atividades orientadas e planejadas pela busca de um conhecimento. Atualmente, também se entende pesquisa como qualquer busca realizada por meio da internet. Brainstorming O Brainstorming (ou "tempestade cerebral"), mais que uma técnica de dinâmica de grupo, é uma atividade desenvolvida para explorar a potencialidade criativa do indivíduo, colocando-a a serviço de seus objetos. Raf Palavra vinda do inglês. Pronuncia-se rafe. O Raf são os primeiros rascunhos feitos pelo designer ou diretor de arte na criação de uma peça gráfica. Ele é a primeira fase dos estudos antes do layout e da arte-final. Esboço inicial no planejamento gráfico de qualquer trabalho a ser impresso. Edição Utilizando um aplicativo vetorial, bitmapiado ou de diagramação o profissional da área gráfica, tendo em mãos o resultado do briefing, da pesquisa e da investigação, pode começar a produzir e aplicar conhecimentos técnicos para criação da peça encomendada. Diagramação Terminado o trabalho de edição com material inicia-se a atividade, caso seja necessário, do diagramador. A tarefa do diagramador consistia em desenhar previamente a disposição dos elementos que integravam cada página, ordenar conforme uma orientação pré-determinada, como ficaria, depois de montados e impressos, os títulos, os textos, as fotografias, os anúncios etc. Composição Terminada a diagramação da publicação que tinham a sua arte final prontas são encaminhadas para o fotolito, onde através de processos fotográficos sofrem redução ou ampliação de acordo com o tamanho indicado pelo diagramador. Revisão O texto da edição vai à revisão que tem como tarefa detectar erros gráficos e ortográficos. Numa primeira etapa o revisor tem que verificar se o texto foi composto de acordo com as instruções dadas pelo diagramador (corpo, largura, tipo etc.). Sim, este artigo contém passos que muitas vezes são desnecessários ao produzir um trabalho simples, como a Revisão e a Diagramação. Mas é bom ter para que caso seja necessário, você terá uma breve explicação. Abraços! Lembrando que este artigo foi desenvolvido tendo como base a minha apostila de design gráfico1 ponto -
Geek Dog
Eu havia dito em um outro tópico meu que eu iria me retirar do fórum, mas acho que a situação pode ser resolvida com um pouco de conversa. Então irei tentar permanecer. Enfim ... 'Geek Dog' uma logo de uma empresa de animações desenvolvida como trabalho para a minha escola de design gráfico. O cachorro é um desenho próprio, ou seja, desenhado APENAS para esta logo. Logo oficial: V2 Branca: Detalhes: Evolução:1 ponto
-
[RESOLVIDO] Pokemons Iniciais
1 pontoOla amigo, seja bem vindo ao forum Bom, isso acho que é uma Action, entao para eu poder ajuda vc, eu precisarei saber qual dos arquivos .lua é referente a essa action. Se vc puder postar o action.xml aqui para eu ver... ajudaria bastante1 ponto