Postado Outubro 9, 2014 10 anos Eis o fluid.lua abaixo: -- TODO: Rewrite this script using fluidtypes from LIQUIDS doc-file, -- and correct itemid's to recieve the liquids. local drunk = Condition(CONDITION_DRUNK) drunk:setParameter(CONDITION_PARAM_TICKS, 60000) local poison = Condition(CONDITION_POISON) poison:setParameter(CONDITION_PARAM_DELAYED, true) -- Condition will delay the first damage from when it's added poison:setParameter(CONDITION_PARAM_MINVALUE, -50) -- Minimum damage the condition can do at total poison:setParameter(CONDITION_PARAM_MAXVALUE, -120) -- Maximum damage poison:setParameter(CONDITION_PARAM_STARTVALUE, -5) -- The damage the condition will do on the first hit poison:setParameter(CONDITION_PARAM_TICKINTERVAL, 4000) -- Delay between damages poison:setParameter(CONDITION_PARAM_FORCEUPDATE, true) -- Re-update condition when adding it(ie. min/max value) local fluidType = {3, 4, 5, 7, 10, 11, 13, 15, 19} local fluidMessage = {"Aah...", "Urgh!", "Mmmh.", "Aaaah...", "Aaaah...", "Urgh!", "Urgh!", "Aah...", "Urgh!"} function onUse(cid, item, fromPosition, itemEx, toPosition) local iex = Item(itemEx.uid) local i = Item(item.uid) local p = Player(cid) local ie = ItemType(itemEx.itemid) if ie:isFluidContainer() and itemEx.type == 0 then iex:transform(itemEx.itemid, item.type) i:transform(item.itemid, 0) return true end if ie:isFluidContainer() and item.type == 0 then iex:transform(itemEx.itemid, 0) i:transform(item.itemid, itemEx.type) return true end if itemEx.itemid == 1 then if item.type == 0 then p:sendTextMessage(MESSAGE_STATUS_SMALL, "It is empty.") elseif itemEx.uid == cid then i:transform(item.itemid, 0) if item.type == 3 or item.type == 15 then doTargetCombatCondition(0, cid, drunk, CONST_ME_NONE) elseif item.type == 4 then doTargetCombatCondition(0, cid, poison, CONST_ME_NONE) elseif item.type == 7 then p:addMana(math.random(50, 150)) fromPosition:sendMagicEffect(CONST_ME_MAGIC_BLUE) elseif item.type == 10 then p:addHealth(60) fromPosition:sendMagicEffect(CONST_ME_MAGIC_BLUE) end for i = 0, #fluidType do if item.type == fluidType then p:say(fluidMessage, TALKTYPE_ORANGE_1) return true end end p:say("Gulp.", TALKTYPE_ORANGE_1) else i:transform(item.itemid, 0) Game.createItem(2016, item.type, toPosition):decay() end else local fluidSource = ie:getFluidSource() if fluidSource ~= 0 then i:transform(item.itemid, fluidSource) elseif item.type == 0 then p:sendTextMessage(MESSAGE_STATUS_SMALL, "It is empty.") else if toPosition.x == CONTAINER_POSITION then toPosition = p:getPosition() end i:transform(item.itemid, 0) Game.createItem(2016, item.type, toPosition):decay() end end return true end Erro: Lua Script Error: [Action Interface] data/actions/scripts/other/fluids.lua:onUse LuaScriptInterface::luaDoTargetCombatCondition(). Condition not found stack traceback: [C]: in function 'doTargetCombatCondition' data/actions/scripts/other/fluids.lua:40: in function <data/actions/scripts/other/fluids.lua:18> O erro acontece quando eu uso o bottle/vial of -qualquer coisa- em mim, ele faz o "Aah..." mas não faz a função que deveria fazer. Parece que meu server não tem o parâmetro doTargetCombatCondition, algum substituto para ele? Ou como eu adiciono ele nos parâmetros? Já aproveitando o tópico, dá para fazer que quando se está em party e você mata um bicho, você ganha 100% da xp e se seus amigos estiverem em uma área de 30 blocos envolta de você eles ganham 50%? OBS: Sei que 100% + 50% = 150%, e isso é exatamente o que eu quero, eu quero que quem matou não divida a experiencia, mas multiplique ela e depois divida. Editado Outubro 11, 2014 10 anos por mateusak (veja o histórico de edições) Não se esqueça de dar REP+ para quem te ajudou e caso seja a solução marcar como melhor resposta! NÃO CLIQUE AQUI! NEM AQUI! ________________________________________________________________________________________________________________________________________________________________________________________________________________________ “A imaginação é mais importante que o conhecimento.” Albert Einstein
Postado Outubro 11, 2014 10 anos Autor Up! Não se esqueça de dar REP+ para quem te ajudou e caso seja a solução marcar como melhor resposta! NÃO CLIQUE AQUI! NEM AQUI! ________________________________________________________________________________________________________________________________________________________________________________________________________________________ “A imaginação é mais importante que o conhecimento.” Albert Einstein
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.