Keraxel
Ω Obfuscator Ω
I was write this code cause I didn't found it on any forum.
So... let's start.
enchant.lua
actions.xml
How it works?
When you will use enchanted gem on weapons wchich can be enchanted/rainbow shield it will change to enchaned weapon or terran/fiery/sparkling/icy rainbow shield.
If you see any bug post message in this topic. You can also spend some rep points
[12/29/2008]Patch 1: Correct creating weapons with 1000 charges.
[12/29/2008]Patch 2: Added config and enchanting normal gems with altars.
Regards,
Keraxel.
So... let's start.
enchant.lua
PHP:
--by Keraxel
function onUse(cid, item, fromPosition, itemEx, toPosition)
--CONFIG
local config = {
mana = 300,
soul = 2,
messNotEnoughSoul = "You don't have enough soul points.",
messNotEnoughMana = "You don't have enough mana points.",
effect = 39 --you can test effects with !z command (ex. !z 23)
}
--/CONFIG
local array = { [7759] = 8907, [7760] = 8906, [7761] = 8909, [7762] = 8908 }
local altars = {{7516, 7517, 7518, 7519}, {7504, 7505, 7506, 7507}, {7512, 7513, 7514, 7515}, {7508, 7509, 7510, 7511}}
local gems = {2149, 2147, 2150, 2146}
local enchantedGems = {7761, 7760, 7762, 7759}
local weapons = {
-- {earth, fire, energy, ice}
[2430] = {7860, 7750, 7875, 7769},
[2423] = {7864, 7754, 7879, 7773},
[7406] = {7857, 7747, 7872, 7766},
[7383] = {7855, 7745, 7870, 7764},
[7384] = {7856, 7746, 7871, 7765},
[7415] = {7866, 7756, 7881, 7775},
[7380] = {7862, 7752, 7877, 7771},
[7402] = {7858, 7784, 7873, 7767},
[2391] = {7868, 7758, 7883, 7777},
[7389] = {7861, 7751, 7876, 7770},
[2383] = {7854, 7744, 7869, 7763},
[7392] = {7867, 7757, 7882, 7776},
[2429] = {7859, 7749, 7874, 7768},
[2445] = {7865, 7755, 7880, 7774},
[2454] = {7863, 7753, 7878, 7772}
}
if itemEx.itemid == 8905 and isInArray(enchantedGems, item.itemid) then
for k, v in pairs(array) do
if item.itemid == k then
doTransformItem(itemEx.uid, v)
doRemoveItem(item.uid, 1)
doSendMagicEffect(fromPosition, config.effect)
return TRUE
end
end
elseif isInArray(gems, item.itemid) == TRUE then
for i=1, #gems do
if isInArray(altars[i], itemEx.itemid) == TRUE and item.itemid == gems[i] then
if getPlayerMana(cid) >= config.mana then
if getPlayerSoul(cid) >= config.soul then
doRemoveItem(item.uid, 1)
doPlayerAddItem(cid, enchantedGems[i], 1)
doPlayerAddSoul(cid,-config.soul)
doPlayerAddMana(cid,-config.mana)
else
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, config.messNotEnoughSoul)
doSendMagicEffect(fromPosition, 2)
return FALSE
end
else
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, config.messNotEnoughMana)
doSendMagicEffect(fromPosition, 2)
return FALSE
end
doSendMagicEffect(toPosition, config.effect)
return TRUE
end
end
else
for k, v in pairs(weapons) do
if itemEx.itemid == k then
for i=1, #enchantedGems do
if item.itemid == enchantedGems[i] then
doTransformItem(itemEx.uid, v[i], 1000)
doRemoveItem(item.uid, 1)
doSendMagicEffect(fromPosition, config.effect)
return TRUE
end
end
end
end
end
return TRUE
end
actions.xml
Code:
<action itemid="7759" script="enchant.lua"/>
<action itemid="7760" script="enchant.lua"/>
<action itemid="7761" script="enchant.lua"/>
<action itemid="7762" script="enchant.lua"/>
<action itemid="2150" script="enchant.lua"/>
<action itemid="2149" script="enchant.lua"/>
<action itemid="2146" script="enchant.lua"/>
<action itemid="2147" script="enchant.lua"/>
How it works?
When you will use enchanted gem on weapons wchich can be enchanted/rainbow shield it will change to enchaned weapon or terran/fiery/sparkling/icy rainbow shield.
If you see any bug post message in this topic. You can also spend some rep points
[12/29/2008]Patch 1: Correct creating weapons with 1000 charges.
[12/29/2008]Patch 2: Added config and enchanting normal gems with altars.
Regards,
Keraxel.
Last edited: