HELLO,
I need this script to TFS 1.0
http://otland.net/threads/party-loot-bonus-v-1-2.167871/
I GOT THAT SCRIPT:
I GOT THIS ERRORS:
I need this script to TFS 1.0
http://otland.net/threads/party-loot-bonus-v-1-2.167871/
I GOT THAT SCRIPT:
Code:
local config = {
rollItems = 1,
}
local array = {
["Bug"] = {
[1] = {{2160, 15}, {2159, 10}, {2472, 2}},
[2] = {{2453, 1}},
[2] = {{2493, 2}}
},
}
function sendPartyMessage(members, msg)
for _, pid in pairs(members) do
doPlayerSendTextMessage(pid, MESSAGE_INFO_DESCR, msg)
end
return true
end
function dropBonusLoot(items, corpseid, position, members)
local container = doAddContainerItem(getTileItemById(position, corpseid).uid, 1988, 1)
for _, item in pairs(items) do
doAddContainerItem(container, item[1], item[2])
end
sendPartyMessage(members, createLootMessage(container))
return true
end
function roll(items, members)
for i=1, #items do
local numbers, index, num = {}, 0, 0
for _, person in pairs(members) do
table.insert(numbers, {person, math.random(1, 100)})
end
for z, val in ipairs(numbers) do
if (val[2] > num) then
num = val[2]
index = z
end
end
doPlayerAddItem(numbers[index][1], items[1], items[2])
sendPartyMessage(members, getCreatureName(numbers[index][1]) .. " rolled " .. numbers[index][2] .. " and gained " .. getItemNameById(items[1]) .. ".")
end
return true
end
function createLootMessage(container)
local text = "Party loot bonus: "
for i=0, getContainerSize(container)-1 do
local item = getContainerItem(container, i)
if item ~= nil then
local info = getItemInfo(item.itemid)
if (item.type > 1 and info.stackable) then
text = text .. item.type .. " " .. info.plural
else
if (info.article) then
text = text .. info.article .. " " .. info.name
else
text = text .. info.name
end
end
if (getContainerItem(container, i+1).itemid > 0 ) then
text = text .. ", "
else
text = text .. "."
end
else
return text
end
end
return text
end
function partyMembersCheck(cid, members)
for _, person in pairs(members) do
if(getDistanceBetween(getCreaturePosition(cid), getCreaturePosition(person)) > 30) then
return false
end
end
return true
end
function onKill(cid, target, lastHit)
local corpseid, loot = getMonsterInfo(getCreatureName(target)).lookCorpse, array[getCreatureName(target)]
if not (loot) or corpseid == nil or not isItemContainer(corpseid) then return true end
if (isInParty(cid)) then
local members, tab, items = getPartyMembers(getPartyLeader(cid)), 0, {}
if (partyMembersCheck(cid, members)) then
if (#members >= table.maxn(loot)) then tab = table.maxn(loot) else tab = #members end
for i=2, tab do
if (loot) then
for _, it in pairs(loot) do
if (it[2] > 1 and not getItemInfo(it[1]).stackable) then
for x=1, it[2] do
table.insert(items, {it[1], 1})
end
else
table.insert(items, it)
end
end
end
end
if #items > 0 then
if (config.rollItems > 0) then
roll(items, members)
else
addEvent(dropBonusLoot, 0, items, corpseid, getCreaturePosition(target), members)
end
end
else
doPlayerSendTextMessage(cid, 27, "Some party members are too far away. Bonus inactive.")
end
else
doPlayerSendTextMessage(cid, 27, "Next time take some people in party to get bonus loot.")
end
return true
end
I GOT THIS ERRORS:
Code:
Lua Script Error: [CreatureScript Interface]
data/creaturescripts/scripts/others/partyboss.lua:onKill
data/creaturescripts/scripts/others/partyboss.lua:88: attempt to call global 'getMonsterInfo' (a nil value)
stack traceback:
[C]: in function 'getMonsterInfo'
data/creaturescripts/scripts/others/partyboss.lua:88: in function <data/creaturescripts/scripts/others/partyboss.lua:87>
Lua Script Error: [CreatureScript Interface]
data/creaturescripts/scripts/others/partyboss.lua:onKill
data/creaturescripts/scripts/others/partyboss.lua:88: attempt to call global 'getMonsterInfo' (a nil value)
stack traceback:
[C]: in function 'getMonsterInfo'
data/creaturescripts/scripts/others/partyboss.lua:88: in function <data/creaturescripts/scripts/others/partyboss.lua:87>