
Tudo que Dwarfer postou
-
[PEDIDO] BUFF SUSANOO
local t = { duration = 3, -- duração da novo outfit (em segundos) newLooktype = 111, -- looktype da nova outfit effect = 10, -- efeito que aparecerá cooldown = 10, -- tempo para usar a magia novamente (em segudos) storage = 54897 -- só modifique se necessário } function onCastSpell(cid, var) if getPlayerStorageValue(cid, t.storage) > os.time() then doPlayerSendCancel(cid, "Você precisa esperar para soltar esta magia novamente.") return false end doCreatureSetNoMove(cid, true) local out = getCreatureOutfit(cid) out.lookType = t.newLooktype doSetCreatureOutfit(cid, out, t.duration * 1000) setPlayerStorageValue(cid, t.storage, t.cooldown + os.time()) addEvent(function() if isPlayer(cid) then doCreatureSetNoMove(cid, false) doSendMagicEffect(getPlayerPosition(cid), t.effect) end end, t.duration * 1000) return true end
-
(Resolvido)Erro Ao Dar Use na Bandeira AJUDA
Coloque as posições válidas onde são criadas as paredes nesta parte: local B = { [1] = {1056,{x=2175, y=555, z=6, stackpos = 1}}, [2] = {1056,{x=2175, y=556, z=6, stackpos = 1}}, [3] = {1056,{x=2175, y=557, z=6, stackpos = 1}}, [4] = {1056,{x=2175, y=558, z=6, stackpos = 1}} }
-
(Resolvido)Erro ao tentar colocar loja no npc djin
Bem, @bpm91, existem algumas maneiras de fazer isso. Vamos fazer pela forma mais completa até para que você possa utilizar em outros scripts depois, caso necessite. É só seguir o passo a passo abaixo, você é um rapaz esperto, saudável, eu sei que você vai conseguir. EU OUVI UM AMÉM? Além do mais, parece que tá precisando do script já que comentou "up" no tópico (não comente "up", isso é considerado flood, use o botão "Subir este tópico" no canto superior direito - Leia as regras: https://tibiaking.com/forums/forum/101-regras-e-informações/) Em data/npc/lib/npc/npcsystem, abra o arquivo npchandler.lua: Abaixo da linha: CALLBACK_ONSELL = 11 Adicione: CALLBACK_ONTRADEREQUEST = 15 Encontre as linhas: elseif(id == CALLBACK_FAREWELL and module.callbackOnFarewell ~= nil) then tmpRet = module:callbackOnFarewell(unpack(arg)) E adicione, logo abaixo, o seguinte: elseif id == CALLBACK_ONTRADEREQUEST and module.callbackOnTradeRequest ~= nil then tmpRet = module:callbackOnTradeRequest(unpack(arg)) Procure pela função NpcHandler:onSell (caso a função tenha algumas diferenças em relação ao que eu coloquei abaixo, sem desespero, inspire, expire e siga): function NpcHandler:onSell(cid, itemid, subType, amount, ignoreCap, inBackpacks) local callback = self:getCallback(CALLBACK_ONSELL) if(callback == nil or callback(cid, itemid, subType, amount, ignoreCap, inBackpacks)) then if(self:processModuleCallback(CALLBACK_ONSELL, cid, itemid, subType, amount, ignoreCap, inBackpacks)) then -- end end end Adicione, logo abaixo: function NpcHandler:onTradeRequest(cid) local callback = self:getCallback(CALLBACK_ONTRADEREQUEST) if callback == nil or callback(cid) then if self:processModuleCallback(CALLBACK_ONTRADEREQUEST, cid) then return true end end return false end Tá vendo, não foi tão difícil. Calma aí, tem mais. Em data/npc/lib/npc/npcsystem, abra o arquivo modules.lua: Procure por: function ShopModule.requestTrade(cid, message, keywords, parameters, node) local module = parameters.module if(not module.npcHandler:isFocused(cid)) then return false end Logo abaixo, adicione: if not module.npcHandler:onTradeRequest(cid) then return false end Em seguida, procure por: function ShopModule.tradeItem(cid, message, keywords, parameters, node) local module = parameters.module if(not module.npcHandler:isFocused(cid)) then return false end Logo abaixo, adicione: if not module.npcHandler:onTradeRequest(cid) then return true end Pronto, eu sempre soube que você conseguiria... Agora, seu NPC. Primeiramente, a linha abaixo tem um erro, acredito que foi ao colar aqui no fórum e a formatação modificou, dá uma olhada aí. Como não sei qual valor estava, deixei comentado no script final. Linha: setPlayerStorageValue(cid, 100062, ? Script do NPC com a verificação se o storage do player storage2 é diferente de -1 para poder dar "trade": Se você fizer tudo certo, vai funcionar.
-
(Resolvido)Sistema de "mate 3 ganhe 1 ponto"
Testei aqui e o script está 100% funcional. No entanto, a diferença pode ser nesse sistema de pontos que você quer. Você já tem o script de clicar no baú e receber o item? Poste-o para que eu possa adaptar o script desenvolvido a esse seu.
-
(Resolvido)Sistema de "mate 3 ganhe 1 ponto"
Vejo que é seu primeiro post, então nos próximos tente dar a maior quantidade possível de detalhes sobre o seu pedido como: a versão do seu servidor, a distro utilizada, além de detalhes sobre o próprio script que você quer. Isso facilitará com que as pessoas te ajudem e, por consequência, você tenha o seu pedido atendido o mais rápido possível. Como nunca vi que sistema é esse do qual você está se referindo, supondo que o script que desenvolvi será compatível com seu servidor e que o "ponto" que você se refere é o "premium point da account", siga os passos abaixo (não tive como testar o script): Em data/lib crie um arquivo.lua e cole isto dentro: Caso ainda não possua a função que adiciona os pontos em algum arquivo da pasta data/lib, adicione-a, no arquivo criado anteriormente, abaixo do "}": Em data/creaturescripts/scripts crie um arquivo.lua e cole isto dentro: No creaturescripts.xml, adicione a tag: <event type="death" name="AegisDeath" event="script" value="NOMEDOARQUIVO.lua"/> No arquivo.xml do monstro, antes de: </monster> adicione: <script> <event name = "AegisDeath"/> </script> Fiz um comando adicional aqui rapidinho, caso o jogador queira verificar a quantidade de monstros mortos: Em data/talkactions/scripts crie um arquivo.lua e cole isto dentro: No talkactions.xml, adicione a tag. Por exemplo: <talkaction words="!aegis" event="script" value="NOMEDOARQUIVO.lua"/> Espero que seja isso o que você queria.
-
(Resolvido)Erro Ao Dar Use na Bandeira AJUDA
- (Resolvido)Corpse por vocação
local array = { [1] = {[0] = 6080, [1] = 6080}, [2] = {[0] = 6080, [1] = 6080}, --- coloque os outros aqui [30] = {[0] = 5966, [1] = 5966} } function onDeath(cid, corpse) local voc = array[getPlayerVocation(cid)] if voc then local newId = voc[getPlayerSex(cid)] doTransformItem(corpse.uid, newId, 1) doDecayItem(corpse.uid) end return true end No array: [1] = { [0] = 6080, -- [0] = id do corpo feminino [1] = 6080 -- [1] = id do corpo masculino }, Faça para os demais, fiz apenas para alguns para exemplificar.- Ajuda com Mount Por favor"!
@Jhonjhon775 function Creature:onChangeOutfit(outfit) if self:isPlayer() then local head = self:getSlotItem(CONST_SLOT_HEAD) if head and head:getId() == 32671 and self:getOutfit().lookType == 1122 and outfit.lookType ~= 1122 then return false end if outfit.lookType == 111 and outfit.lookMount ~= 0 then -- TROQUE O 111 pelo lookType do seu outfit self:sendCancelMessage("You can not mount while using this outfit.") return false end -- [CONTINUAÇÃO]- (Resolvido)Autoloot TFS 1.3
@Yinz Como você não postou o código por completo, tive que supor que se tratava de um autoloot que eu vi por aí certa vez. Tente sempre deixar o código completo pra facilitar o trabalho, ajudar outras pessoas, além de se obter uma solução mais rapidamente pra você também. Espero que minha suposição esteja correta. Bem, eu não tive como testar o código, pois estava sem acesso ao meu computador. Em data/lib, crie um arquivo.lua chamado AutoLootRemove.lua (ou qualquer nome de sua preferência) e cole isto dentro: No global.lua, adicione a linha (ou troque para o nome que você escolheu): dofile('data/lib/AutoLootRemove.lua') Em talkactions/scripts, crie um arquivo.lua e cole isto dentro: No talkactions.xml, adicione a tag conforme desejar. Ex.: <talkaction words="!autolootremove" script="NOMEDOSEUARQUIVO.lua"/> Em seguida, em data/creaturescripts/scripts crie um arquivo.lua e cole isto dentro: No creaturescripts.xml, adicione as linhas: <event type="modalwindow" name="RmvAutoLootModal" script="NOMEDOARQUIVO.lua"/> <event type="login" name="RmvAutoLootLogin" script="NOMEDOARQUIVO.lua"/> Qualquer problema, é só retornar.- Ajuda com Mount Por favor"!
Em data/events/scripts/creature.lua, procure por: function Creature:onChangeOutfit(outfit) return true end Substitua por: function Creature:onChangeOutfit(outfit) if outfit.lookType == 111 and outfit.lookMount ~= 0 then self:sendCancelMessage("You can not mount while using this outfit.") return false end return true end Troque o 111 pelo lookType do outfit que você quer proibir que possa montar. Verifique, no events.xml, se tem a linha abaixo e ela está com enabled="1": <event class="Creature" method="onChangeOutfit" enabled="1" />- (Resolvido)Script alavanca
@Bruno Asap Tente sempre falar o que deseja de uma vez só e de forma detalhada. Editei lá com a informação do boss. É só configurar o nome e a posição na qual ele será criado.- [ DESENVOLVIMENTO ] - SISTEMA DE PVP POR DEMANDA
Não funciona em tfs 1.x ou otx 3.x.- [ DESENVOLVIMENTO ] - SISTEMA DE PVP POR DEMANDA
Primeiramente, tente sempre deixar claro qual a versão da sua distro nos seus tópicos. Espero que a versão que chutei ser a do seu servidor seja a correta. Não estava em casa, então não tive como testar exatamente nada, qualquer problema é só falar. Em data/lib crie um arquivo.lua e cole isto dentro: Os campos que têm tempo você pode configurá-los como quiser. Os valores possíveis seguem os exemplos abaixo: Ex.: {40, "sec"}, {10, "min"}, {2, "hour"}, {1, "day"} Em data/talkactions/scripts crie um arquivo.lua e cole isto dentro: No talkactions.xml, adicione a tag: <talkaction words="!pvp" event="script" value="NOMEDOSEUARQUIVO.lua"/> Em data/creaturescripts/scripts crie um arquivo.lua e cole isto dentro: No creaturescripts.xml, adicione as linhas: <event type="target" name="PvpSysTarget" event="script" value="NOMEDOSEUARQUIVO.lua"/> <event type="combat" name="PvpSysCombat" event="script" value="NOMEDOSEUARQUIVO.lua"/> <event type="login" name="PvpSysLogin" event="script" value="NOMEDOSEUARQUIVO.lua"/> <event type="look" name="PvpSysLook" event="script" value="NOMEDOSEUARQUIVO.lua"/> <event type="kill" name="PvpSysKill" event="script" value="NOMEDOSEUARQUIVO.lua"/> Deixe o servidor como pvp no config.lua. Os comandos para ativar e desativar o pvp são, respectivamente, !pvp on e !pvp off- (Resolvido)Script alavanca
Como você não detalhou se o intervalo de 20 horas é para todos os players ou para os players que foram teleportados, assumi que fosse para os players que foram teleportados. Não tive como testar, fiz aqui rapidão. Em data/actions/scripts crie um arquivo.lua e cole isto dentro: No actions.xml adicione a tag e edite o actionid que ficará na alavanca: <action actionid="ACTIONID_DA_ALAVANCA" script="NOMEDOARQUIVO.lua"/>- Colocar exausted em item
local HORN = 2079 local BIRD_CAGE = 2095 local WOODEN_WHISTLE = 5786 local DIDGERIDOO = 3952 local CORNUCOPIA = 2369 local PARTY_TRUMPET = 6572 local USED_PARTY_TRUMPET = 6573 local GREEN_NOTES = {2070, 2071, 2073, 2075, 2076, 2078, 2367, 2374} local extime = 1000 -- exhausted em milisegundos function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerStorageValue(cid, 54326) > os.time() then doPlayerSendCancel(cid, "You can not use it so fast.") return true end local random = math.random(1, 5) setPlayerStorageValue(cid, 54326, extime + os.time()) if(item.itemid == BIRD_CAGE) then doSendMagicEffect(fromPosition, CONST_ME_SOUND_YELLOW) elseif(item.itemid == DIDGERIDOO) then if(random == 1) then doSendMagicEffect(fromPosition, CONST_ME_SOUND_BLUE) return true end elseif(item.itemid == PARTY_TRUMPET) then doTransformItem(item.uid, USED_PARTY_TRUMPET) doCreatureSay(cid, "TOOOOOOT!", TALKTYPE_ORANGE_1) doSendMagicEffect(fromPosition, CONST_ME_SOUND_BLUE) doDecayItem(item.uid) elseif(item.itemid == CORNUCOPIA) then for i = 1, 11 do doPlayerAddItem(cid, 2681) end doRemoveItem(item.uid, 1) doSendMagicEffect(fromPosition, CONST_ME_SOUND_YELLOW) elseif(item.itemid == WOODEN_WHISTLE) then if(random == 2) then doSendMagicEffect(fromPosition, CONST_ME_SOUND_RED) doRemoveItem(item.uid, 1) return true end local position = getPlayerPosition(cid) position.x = position.x + 1 doSendMagicEffect(fromPosition, CONST_ME_SOUND_PURPLE) doSummonCreature("Wolf", pos) else local effect = CONST_ME_SOUND_BLUE if(item.itemid == HORN) then effect = CONST_ME_SOUND_PURPLE elseif(isInArray(GREEN_NOTES, item.itemid)) then effect = CONST_ME_SOUND_GREEN end doSendMagicEffect(fromPosition, effect) end return true end- (Resolvido)Script de chuva de itens.
@ITALOx Vê se você não digitou algo a mais aí sem querer. Copiei o conteúdo que postei para checar se era algo ao copiar daqui do fórum e, pelo menos aqui, mudou automaticamente a linha: [2152] = {min = 2, max = 10} para [2152] = {min = 2, max = 1?0} colocando aquela "?" no meio. Deve ser algo relacionado à formatação do fórum, não sei. Dá uma olhada se não apareceu algo assim aí também ou você colocou algo por engano.- (Resolvido)Script de chuva de itens.
Coloquei para não criar mais de um item em uma mesma posição, exceto se for um item juntável e você queira que a quantidade seja aleatória. Em data/talkactions/scripts crie o arquivo rainitems.lua e cole isto dentro: Em talkactions.xml, adicione a tag: <talkaction words="/rain" access="4" event="script" value="rainitems.lua"/> Edite o "access" como quiser. Utilização do comando: /rain [id do item] Ex.: /rain 2160 O resultado será algo assim:- (Resolvido)todos os player ja nascem pk red !
Sempre tente deixar claro no pedido qual sua distro. Em data/creaturescripts/scripts crie o arquivo logredskull.lua e cole isto dentro: function onLogin(cid) if getCreatureSkullType(cid) == SKULL_NONE then doCreatureSetSkullType(cid, SKULL_RED) end return true end No creaturescripts.xml, adicione a tag: <event type="login" name="SetSkull" event="script" value="logredskull.lua"/>- Goblin Merchant Quest
Falaaaaa, galerinha! Bem, hoje compartilho com vocês o código da Goblin Merchant Quest que é a quest dos coryms lá de venore ?. Na verdade, estou compartilhando as duas primeiras missões. A depender do feedback, se o pessoal se interessar pelo tipo de conteúdo, compartilho as outras missões. Acredito que a quest pode ser aproveitada em servidores com foco no RPG ou apenas para levar algo diferente ao servidor. Lembrando que o código é para TFS 0.4. Para saber mais sobre a quest: https://www.tibiawiki.com.br/wiki/Goblin_Merchant_Quest As falas do NPC Rafzan estão 99% iguais ao global. Aquele 1% vagabundo? é de algumas adaptações que fiz. Adaptei os itens que foram utilizados na quest, já que não possuía os itens utilizados na quest do global por ter feito em uma versão anterior a atual. No entanto, está facilmente editável para vocês também colocarem os ids que desejarem. Configuração: Em data/lib crie o arquivo Goblin Merchant Quest.lua e cole isto dentro: No items.xml (Escolha os ids que preferir e edite de forma semelhante, mostrarei os que escolhi): ---> Para a missão 1: * cracked stone (id 1285) <item fromid="1285" toid="1292" article="a" name="stone" /> * skull stone (id 10023) <item id="10023" article="a" name="skull stone"> <attribute key="description" value="It is used to mark the way." /> <attribute key="decayTo" value="1285" /> <attribute key="duration" value="60" /> <attribute key="weight" value="950" /> </item> * skulls (id 2229) <item id="2229" article="a" name="skull" plural="skulls"> <attribute key="weight" value="2180" /> </item> O resultado ficou assim: --->Para a missão 2: * perfume gatherer (id 2007) <item id="2007" article="a" name="perfume gatherer"> <attribute key="weight" value="250" /> <attribute key="description" value="It is empty. The first odour you'r looking for is special snail slime." /> </item> Em data/actions/scripts, crie o arquivo rafzan_mission01.lua e cole isto dentro: Em data/actions/scripts, crie o arquivo rafzan_mission02.lua e cole isto dentro: No actions.xml, adicione as linhas: <action itemid="2229" script="rafzan_mission01.lua" /> <!-- id da placa --> <action itemid="2007" script="rafzan_mission02.lua" /> <!-- id do perfume gatherer --> E por último, mas não menos importante, em data/npc crie o arquivo Rafzan.xml: <?xml version="1.0" encoding="UTF-8"?> <npc name="Rafzan" script="rafzan.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="61"/> <parameters> <parameter key="module_shop" value="1" /> <parameter key="shop_buyable" value="backpack,1988,10;bag,1987,4;fishing rod,2580,150;rope,2120,50;shovel,2554,10;scythe,2550,12;torch,2050,2;worm,3976,1;" /> <parameter key="shop_sellable" value="fishing rod,2580,30;rope,2120,8;shovel,2554,2;" /> </parameters> </npc> Lembrando que coloquei somente os itens que existiam na versão que utilizei. Em data/npc/scripts, crie o arquivo rafzan.lua e cole isto dentro: Qualquer dúvida na configuração que tenha ficado, é só se basear na própria quest do global. É isso, beijinhos ?.- [Pedido] NPC que vende premium account e promotion
local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local npcTopic = {} 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 onPlayerEndTrade(cid) npcHandler:onPlayerEndTrade(cid) end function onPlayerCloseChannel(cid) npcHandler:onPlayerCloseChannel(cid) end local premium = {days = 30, cost = 10000} -- days = dias de premium comprados, cost = valor em gold coins function creatureSayCallback(cid, type, msg) local talkUser, msg = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid, string.lower(msg) if not npcHandler:isFocused(cid) then return false end if msgcontains(msg, "premium") then if not isPremium(cid) then npcHandler:say("Do you want to buy ".. premium.days .." premium days for ".. premium.cost .. " gold coins?", cid) npcTopic[talkUser] = 1 else npcHandler:say("You are already a premium player.", cid) npcTopic[talkUser] = 0 end elseif msgcontains(msg, "yes") and npcTopic[talkUser] == 1 then if doPlayerRemoveMoney(cid, premium.cost) then npcHandler:say("Here you go, as I promised.", cid) doPlayerAddPremiumDays(cid, premium.days) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_GREEN) else npcHandler:say("You do not have ".. premium.cost .." gold coins.", cid) end npcTopic[talkUser] = 0 elseif msgcontains(msg, "no") and npcTopic[talkUser] == 1 then npcHandler:say("No problem. Maybe on next time.", cid) npcTopic[talkUser] = 0 end return true 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}) npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:setMessage(MESSAGE_GREET, "Welcome, |PLAYERNAME|. Become a premium or a promoted player here!") npcHandler:setMessage(MESSAGE_FAREWELL, "Who is next?") npcHandler:setMessage(MESSAGE_WALKAWAY, "Who is next?") npcHandler:addModule(FocusModule:new())- (Resolvido)Autoloot Não Cumpre O Prometido
Em creaturescripts/scripts crie um arquivo e cole isto dentro: function onLogin(cid) if not vip.hasVip(cid) then local active_slots = getPlayerStorageValue(cid, 04420011) if active_slots >= 1 then for i = 1, active_slots do doPlayerSetStorageValue(cid, (04420031 + (i * 10)), -1) doPlayerSetStorageValue(cid, 04420011, active_slots - 1) end end end return true end Utilize qualquer tag com o login.- (Resolvido)Retornar Nome do item Funcion simples
function onUseWeapon(cid, var) local slotitem = getPlayerSlotItem(cid, CONST_SLOT_LEFT) -- edite o slot local nomeitem = getItemNameById(slotitem.itemid) -- tipo isso --codigos return true end- Spell de nível
local config = { effects_per_level = { [1] = 25, -- efeito no [level 1] [2] = 177 -- efeito no [level 2] }, casts_to_up = 300, -- quantas vezes tem que soltar para alcançar o level 2 storages = {level = 46890, cast = 46891} -- só modifique se necessário } local function getPlayerRasenganLevel(cid) return getPlayerStorageValue(cid, config.storages.level) end local function getPlayerRasenganCasts(cid) return getPlayerStorageValue(cid, config.storages.cast) > 0 and getPlayerStorageValue(cid, config.storages.cast) or 0 end local function doPlayerRasenganUp(cid, round) return setPlayerStorageValue(cid, config.storages.cast, getPlayerRasenganCasts(cid) + round) end local combat = {} for i = 1, 2 do combat[i] = createCombatObject() setCombatParam(combat[i] , COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat[i] , COMBAT_PARAM_EFFECT, config.effects_per_level[i]) function onGetFormulaValues(cid, level, maglevel) min = -(level * 0.28 + maglevel * 1.48) * 1.0 * getPlayerRasenganLevel(cid) max = -(level * 0.34 + maglevel * 2.34) * 1.0 * getPlayerRasenganLevel(cid) return min, max end setCombatCallback(combat[i], CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") end function onCastSpell(cid, var) if getPlayerRasenganLevel(cid) == -1 then setPlayerStorageValue(cid, config.storages.level, 1) end if getPlayerRasenganLevel(cid) ~= 2 then doPlayerRasenganUp(cid, 1) local casts, str = getPlayerRasenganCasts(cid), '' if casts == 1 then str = "First time casting Rasengan! You need "..config.casts_to_up.." casts to advance to level 2 and improve its power!" elseif casts == (config.casts_to_up / 2) then str = "You reached 50% on Rasengan level 1. Now you need "..(config.casts_to_up/2).. " casts to advance to level 2." elseif casts == config.casts_to_up then str = "Congratulations! You advanced the Rasengan jutsu from level 1 to level 2." setPlayerStorageValue(cid, config.storages.level, 2) end if str ~= '' then doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, str) end end return doCombat(cid, combat[getPlayerRasenganLevel(cid)], var) end No level 2, vai dar um dano 2x maior que no nível 1. Não tive como testar o script.- [AJUDA]Configurando Autoloot
O mod ficará assim: Em data/actions/scripts crie um arquivo.lua e cole isto dentro: local autoLootPremiumTime = {3, "day"} -- quanto tempo a "premium" durará function onUse(cid, item, fromPosition, itemEx, toPosition) domodlib('Loot_func') local check = getPlayerStorageValue(cid, info.Storages[4]) if check > os.time() then return doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Your Auto Loot premium time ends at " ..os.date("%d %B %Y %X", check)..".") end doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Congratulations! You received "..getStrTime(autoLootPremiumTime).." of Auto Loot Premium Time!") doSendMagicEffect(toPosition, CONST_ME_MAGIC_GREEN) setPlayerStorageValue(cid, info.Storages[4], mathtime(autoLootPremiumTime) + os.time()) doRemoveItem(item.uid) return true end function mathtime(table) -- by dwarfer local unit = {"sec", "min", "hour", "day"} for i, v in pairs(unit) do if v == table[2] then return table[1]*(60^(v == unit[4] and 2 or i-1))*(v == unit[4] and 24 or 1) end end return error("Bad declaration in mathtime function.") end function getStrTime(table) -- by dwarfer local unit = {["sec"] = "second",["min"] = "minute",["hour"] = "hour",["day"] = "day"} return tostring(table[1].." "..unit[table[2]]..(table[1] > 1 and "s" or "")) end No actions.xml, adicione a tag abaixo e edite o XXXX para o id do item. <action itemid="XXXX" script="NOMEDOARQUIVO.lua" />- Erro Actions
- (Resolvido)Corpse por vocação
Informação Importante
Confirmação de Termo