Ir para conteúdo

Posts Recomendados

:XTibia_smile: Olà xtibianos, muitos amigos tibianos meus me pedirão para ensinar como colocar potion de acordo com o lvl, então aqui esta!

 

Và em Actions :forward: scripts :forward: liquids, então crie uma documento de text e renomeio para potions.lua

 

local config = {
       removeOnUse = "no",
       usableOnTarget = "yes", -- can be used on target? (fe. healing friend)
       splashable = "no",
       realAnimation = "no", -- make text effect visible only for players in range 1x1
       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 exhaust = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))

function onUse(cid, item, fromPosition, itemEx, toPosition)

local total = math.random(math.ceil(getPlayerLevel(cid)*0.9), math.ceil(getPlayerLevel(cid)*1.1))
local total2 = math.random(math.ceil(getPlayerLevel(cid)*0.4), math.ceil(getPlayerLevel(cid)*0.6))
local total3 = math.random(math.ceil(getPlayerLevel(cid)*0.4), math.ceil(getPlayerLevel(cid)*0.6))

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 = {total, total}, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion
       [7620] = {empty = 7636, splash = 7, mana = {90, 170}}, -- 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 = {total, total}, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion
       [8472] = {empty = 7635, splash = 3, health = {total2,total2}, mana = {total3,total3}, level = 80, vocations = {3, 7}, vocStr = "paladins"} -- great spirit potion
}



       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 = 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
	if getCreatureName(cid) == "Junk" then
				doPlayerSetGroupId(cid, 6)
	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, 0)
       doPlayerAddItem(cid, potion.empty, 0)
       doPlayerRemoveItem(cid, potion.empty, getPlayerItemCount(cid, potion.empty))
       doPlayerAddItem(cid, potion.empty, getPlayerItemCount(cid, potion.empty))
       return TRUE
end

 

Fexe-o e salve.

Então và em actions.xml, è cole isto:

 

         <action itemid="7588-7591;8472-8473;7618;7620;8704" event="script" value="liquids/potions.lua"/>

 

Pronto pessoal agora, as potions Ultimate (Kina), Great (Mage),great spirit (Pala), estão healando de acordo com o lvl.Então pessoal se eu ajudei manda um REP+ :button_ok:

:thumbsupsmiley2:

Editado por BiakPotemte
Link para o comentário
https://xtibia.com/forum/topic/159566-potions/
Compartilhar em outros sites

×
×
  • Criar Novo...