Postado Janeiro 15, 2015 10 anos Olá a todos do Tibia King, trago uma modificação no arquivo potions.lua do servidor, no qual agora só deixa usar se o player for premium, um membro tinha pedido e realizei a tarefa, não cheguei a testar, se tiver algum erro por favor me avisem, ajudarei e\ou corrigirei o mais rápido possível. Espero que gostem! Em Actions\scripts\liquids\potions.lua, abra-o e substitua por esse: local config = { removeOnUse = "no", -- remover após usar usableOnTarget = "yes", -- Pode usar em amigos splashable = "no", realAnimation = "no", -- Animação da fala vista apenas para 1x1 SQM de distancia healthMultiplier = 1.0, manaMultiplier = 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 = 2, health = {50, 100}}, -- small health potion [7618] = {empty = 7636, splash = 2, health = {100, 200}}, -- health potion [7588] = {empty = 7634, splash = 2, health = {200, 400}, level = 50, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion [7591] = {empty = 7635, splash = 2, health = {500, 700}, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion [8473] = {empty = 7635, splash = 2, health = {800, 1000}, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion [7620] = {empty = 7636, splash = 7, mana = {70, 130}}, -- mana potion [7589] = {empty = 7634, splash = 7, mana = {110, 190}, level = 50, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion [7590] = {empty = 7635, splash = 7, mana = {200, 300}, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion [8472] = {empty = 7635, splash = 3, health = {200, 400}, mana = {110, 190}, level = 80, vocations = {3, 7}, 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 config2 = {TemPremmy = getPlayerPremiumDays(cid)} local potion = POTIONS[item.itemid] if(config2.TemPremmy >= 1) then 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 = getThingPos(item.uid) end doDecayItem(doCreateItem(2016, potion.splash, toPosition)) doTransformItem(item.uid, potion.empty) return true end if(hasCondition(cid, CONDITION_EXHAUST_HEAL)) then doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED) return true end if(((potion.level and getPlayerLevel(cid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(cid)))) 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 local health = potion.health if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.healthMultiplier))) then return false end local mana = potion.mana if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.manaMultiplier))) then return false end doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE) if(not realAnimation) then doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) else for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do if(isPlayer(tid)) then doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid) end end end doAddCondition(cid, exhaust) if(not potion.empty or config.removeOnUse) then doRemoveItem(item.uid, 1) return true end doRemoveItem(item.uid, 1) doPlayerAddItem(cid, potion.empty, 1) return true else doPlayerSendTextMessage(cid, 27, "Você não é premium account !") end end É bem simples, espero que gostem, qualquer coisa estou a disposição, utilizado como base o script de potions.lua de um servidor 8.60. Feito por min. Editado Janeiro 15, 2015 10 anos por xBlackWolf (veja o histórico de edições) xBlackWolf THX @Storm Night Best Avatar Ever
Postado Janeiro 15, 2015 10 anos O mesmo problema que eu citei no outro tópico: TemPremmy = getPlayerPremiumDays(cid) tem que ser uma checagem dentro do callback, ou seja, embaixo de function onUse(cid, item, fromPosition, itemEx, toPosition); Arrume isso em 48 horas que eu aprovo. Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá! "Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda (obg ao @Beeny por fazer essa linda sign <3)
Postado Janeiro 15, 2015 10 anos Autor O mesmo problema que eu citei no outro tópico: TemPremmy = getPlayerPremiumDays(cid) tem que ser uma checagem dentro do callback, ou seja, embaixo de function onUse(cid, item, fromPosition, itemEx, toPosition); Arrume isso em 48 horas que eu aprovo. Arrumado, obrigado pelas dicas, o resto está correto ? xBlackWolf THX @Storm Night Best Avatar Ever
Postado Janeiro 15, 2015 10 anos acredito que sim, estarei pra movendo pra area correta e te darei 1 ponto de reputação pelo conteúdo. Obrigado pela contribuição Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá! "Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda (obg ao @Beeny por fazer essa linda sign <3)
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.