• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Monsters Dont Die

rodrigosch

New Member
Joined
Aug 20, 2008
Messages
77
Reaction score
0
Hello,

Im my server, I can kill the monster but it dont die, the monster dont go down, he stay whitout life.

In log say error in: monster_weapon_upgrade.lua -> creaturescript

Can someone help?

Sorry for bad english!
 
The script!

--[[
[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
| | •> extraAttack
| •> kills
•> id of the weapon
[default]
• kills - how much monsters must be killed
• extraAttack - how much extraAttack points will this weapon get
• 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" and isInArray(monsters, getCreatureName(target)) == TRUE or 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 = getItemExtraAttack(playerWeapon.uid)
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
doSetItemActionId(playerWeapon.uid, 10000)
setItemExtraAttack(playerWeapon.uid, currentExtraAttack + add)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Congratulations! Your weapon received +" ..add.. " attack points and now have total extra damage of +" .. getItemExtraAttack(playerWeapon.uid) .. " points!")
doSetItemSpecialDescription(playerWeapon.uid, "["..(playerWeapon.actionid-9999).."/"..weapon[1].." | ".. getItemExtraAttack(playerWeapon.uid).."/"..weapon[3].."]")
else
doSetItemActionId(playerWeapon.uid, playerWeapon.actionid + 1)
doSetItemSpecialDescription(playerWeapon.uid, "["..(playerWeapon.actionid-9999).."/"..weapon[1].." | ".. getItemExtraAttack(playerWeapon.uid).."/"..weapon[3].."]")
end
else
doSetItemActionId(playerWeapon.uid, 10001)
doSetItemSpecialDescription(playerWeapon.uid, "[1/"..weapon[1].." | ".. getItemExtraAttack(playerWeapon.uid).."/"..weapon[3].."]")
end
end
end
return TRUE
end
 
The error is:


[09/01/2010 14:51:19] [Error - CreatureScript Interface]
[09/01/2010 14:51:19] data/creaturescripts/scripts/monster_weapon_upgrade.lua:eek:nKill
[09/01/2010 14:51:19] Description:
[09/01/2010 14:51:19] ...a/creaturescripts/scripts/monster_weapon_upgrade.lua:60: attempt to call global 'getItemExtraAttack' (a nil value)
[09/01/2010 14:51:19] stack traceback:
[09/01/2010 14:51:19] ...a/creaturescripts/scripts/monster_weapon_upgrade.lua:60: in function <...a/creaturescripts/scripts/monster_weapon_upgrade.lua:41>

Only when I kill monster in a normal char, in gm dont give this error :|

EDIT: This is a script, when you kill monster, your weapon upgrade but I dont like this, how I can make a script if I kill monster, nothing happens, like normal system?
 
Back
Top