God Triaca
New Member
- Joined
- Dec 13, 2008
- Messages
- 23
- Reaction score
- 1
[I solved creating a new potion on object editor and updating itemeditor with my data/spr.
thanks.]
Hello guys and ladyes.
1. I duplicated ultimate mana potion using ItemEditor and I get this ItemID: 32255.
2. I added this line on actions.xml:
3. I added the new potion on actions/scripts/other/potion.lua
4. also added this code on item.xml
When I use this mana potion on HK at an normal char I receive this msg:
When I use this mana potion at a game master chars its works
This potion works fine when I click on potion and click on my char
What I need to do to works with hotkeys?
thanks.]
Hello guys and ladyes.
1. I duplicated ultimate mana potion using ItemEditor and I get this ItemID: 32255.
2. I added this line on actions.xml:
Code:
<action itemid="32255" script="other/potions.lua" />
3. I added the new potion on actions/scripts/other/potion.lua
Code:
local config = {
-- strong health potion
[7588] = {health = {min = 250, max = 350}, vocations = {3, 4}, text = 'paladins and knights', level = 50, emptyId = 7634},
-- strong mana potion
[7589] = {mana = {min = 115, max = 185}, vocations = {1, 2, 3}, text = 'sorcerers, druids and paladins', level = 50, emptyId = 7634},
-- great mana potion
[7590] = {mana = {min = 150, max = 240}, vocations = {1, 2}, text = 'sorcerers and druids', level = 80, emptyId = 7635},
-- great health potion
[7591] = {health = {min = 425, max = 575}, vocations = {4}, text = 'knights', level = 80, emptyId = 7635},
-- health potion
[7618] = {health = {min = 130, max = 200}, emptyId = 7636},
-- mana potion
[7620] = {mana = {min = 75, max = 135}, emptyId = 7636},
-- great spirit potion
[8472] = {health = {min = 250, max = 350}, mana = {min = 100, max = 200}, vocations = {3}, text = 'paladins', level = 80, emptyId = 7635},
-- ultimate health potion
[8473] = {health = {min = 650, max = 780}, vocations = {4}, text = 'knights', level = 130, emptyId = 7635},
-- POT NOVOS
-- ultimate mana potion 26029
[26029] = {mana = {min = 430, max = 550}, vocations = {1, 2}, text = 'sorcerers and druids', level = 130, emptyId = 7635},
-- super mana potion 32255
[32255] = {mana = {min = 2000, max = 2500}, vocations = {1, 2}, text = 'sorcerers and druids', level = 130, emptyId = 7635},
-- Supreme Health Potion 26031
[26031] = {health = {min = 800, max = 950}, vocations = {4}, text = 'knights', level = 200, emptyId = 7635},
-- Ultimate Spirit Potion 26030
[26030] = {health = {min = 400, max = 550}, mana = {min = 140, max = 250}, vocations = {3}, text = 'paladins', level = 130, emptyId = 7635},
-- antidote potion
[8474] = {antidote = true, emptyId = 7636},
-- small health potion
[8704] = {health = {min = 60, max = 85}, emptyId = 7636}
}
local antidote = Combat()
antidote:setParameter(COMBAT_PARAM_TYPE, COMBAT_HEALING)
antidote:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
antidote:setParameter(COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
antidote:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
antidote:setParameter(COMBAT_PARAM_DISPEL, CONDITION_POISON)
local exhaust = Condition(CONDITION_EXHAUST_HEAL)
exhaust:setParameter(CONDITION_PARAM_TICKS, (configManager.getNumber(configKeys.EX_ACTIONS_DELAY_INTERVAL) - 1000))
-- 1000 - 100 due to exact condition timing. -100 doesn't hurt us, and players don't have reminding ~50ms exhaustion.
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
local potion = config[item.itemid]
if not potion then
return true
end
if target.itemid ~= 1 or target.type ~= THING_TYPE_PLAYER then
return false
end
if (item:getId() >= 26029 and item:getId() <= 26031 and player:getStorageValue(warPrivate_storage) > 0) then
player:say("This potion can't be used in War Anti-Entrosa!", TALKTYPE_MONSTER_SAY)
return false
end
if player:getCondition(CONDITION_EXHAUST_HEAL) then
player:sendTextMessage(MESSAGE_STATUS_SMALL, Game.getReturnMessage(RETURNVALUE_YOUAREEXHAUSTED))
return true
end
if potion.antidote and not antidote:execute(target, Variant(target.uid)) then
return false
end
if (potion.level and player:getLevel() < potion.level)
or (type(potion.vocations) == 'table' and not isInArray(potion.vocations, player:getVocation():getBase():getId()))
and not (player:getGroup():getId() >= 2) then
player:say(string.format('This potion can only be consumed by %s of level %d or higher.', potion.text, potion.level), TALKTYPE_MONSTER_SAY)
return true
end
if type(potion.health) == 'table' and not doTargetCombatHealth(0, target, COMBAT_HEALING, potion.health.min, potion.health.max, CONST_ME_MAGIC_BLUE) then
return false
end
if type(potion.mana) == 'table' and not doTargetCombatMana(0, target, potion.mana.min, potion.mana.max, CONST_ME_MAGIC_BLUE) then
return false
end
player:addAchievementProgress('Potion Addict', 100000)
player:addCondition(exhaust)
player:setStorageValue(38412, player:getStorageValue(38412)+1)
doCreatureSayWithRadius(target, 'Aaaah...', TALKTYPE_MONSTER_SAY, 2, 2)
local topParent = item:getTopParent()
if topParent.isItem and (not topParent:isItem() or topParent.itemid ~= 460) then
local parent = item:getParent()
--if not parent:isTile() and (parent:addItem(potion.emptyId, 1) or topParent:addItem(potion.emptyId, 1)) then
item:remove(1)
return true
--end
end
Game.createItem(potion.emptyId, 1, item:getPosition())
item:remove(1)
return true
end
4. also added this code on item.xml
Code:
<item id="32255" article="an" name="super mana potion">
<attribute key="weight" value="1" />
<attribute key="description" value="This potion can only be consumed by sorcerers and druids of level 130 or higher." />
</item>
When I use this mana potion on HK at an normal char I receive this msg:
When I use this mana potion at a game master chars its works
This potion works fine when I click on potion and click on my char
What I need to do to works with hotkeys?
Last edited: