--[[
** Monster weapon upgrader by slawkens **
** Updated to version 2.1 by Soul4Soul **
[ignore_monsters]
- type "yes" and only by the [monsters] the weapon gain kills
[monsters]
• {"..","..",".."} - list of monsters where weapon gain kills
[ingore_weapons]
- type "yes" and only the [weapons] can be upgraded
[weapons]
• [2395] = {100, 1, 3},
| | | |
| | | •> extraAttackLimit
| | •> extraAttackInterval
| •> kills
•> id of the weapon
[default]
• kills - how much monsters must be killed
• extraAttack - how much extraAttack points will be added when the weapon levels up
• extraAttackLimit - you can set limit of extraAttack points added
]]--
local ignore_monsters = "yes"
local monsters = {"Rat","Dragon","Dragon Lord"}
local ingore_weapons = "yes"
local weapons = {
[2395] = {600, 1, 5},
[2383] = {500, 1, 4}
} -- weapon end --
local default = {
500, -- kills
1, -- extraAttack
5 -- extraAttackLimit
} -- default end --
function onKill(cid, target)
if(isPlayer(target) == TRUE) then
return TRUE
end
if (string.lower(ignore_monsters) == "no" or isInArray(monsters, getCreatureName(target)) == TRUE) and string.lower(ignore_monsters) == "yes" then
local playerWeapon = getPlayerWeapon(cid, TRUE)
if(playerWeapon.itemid == 0) then
return true
end
local weapon = weapons[getPlayerWeapon(cid).itemid]
if string.lower(ingore_weapons) == "yes" then
weapon = default
end
if (string.lower(ingore_weapons) == "no" and (not weapon) == FALSE or string.lower(ingore_weapons) == "yes") then
local currentExtraAttack = getItemAttribute(playerWeapon.uid, "extraattack")
if(currentExtraAttack >= weapon[3]) then
return true
end
local add = weapon[2]
if(currentExtraAttack + add > weapon[3]) then
add = currentExtraAttack - weapon[3]
end
if(playerWeapon.actionid ~= 0) then
if(playerWeapon.actionid >= weapon[1]+9999) then
doItemSetAttribute(playerWeapon.uid, "aid", 10000)
doItemSetAttribute(playerWeapon.uid, "extraattack", currentExtraAttack + add)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Congratulations! Your weapon received +" ..add.. " attack points and now have total extra damage of +" .. getItemAttribute(playerWeapon.uid, "extraattack") .. " points!")
doItemSetAttribute(playerWeapon.uid, "description", "["..(playerWeapon.actionid-9999).."/"..weapon[1].." | ".. getItemAttribute(playerWeapon.uid, "extraattack").."/"..weapon[3].."]")
else
doItemSetAttribute(playerWeapon.uid, "aid", playerWeapon.actionid + 1)
doItemSetAttribute(playerWeapon.uid, "description", "["..(playerWeapon.actionid-9999).."/"..weapon[1].." | ".. getItemAttribute(playerWeapon.uid, "extraattack").."/"..weapon[3].."]")
end
else
doItemSetAttribute(playerWeapon.uid, "aid", 10001)
doItemSetAttribute(playerWeapon.uid, "description", "[1/"..weapon[1].." | ".. getItemAttribute(playerWeapon.uid, "extraattack").."/"..weapon[3].."]")
end
end
end
return true
end