• 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!

PARTY LOOT HELP PLEASE

mikhael

New Member
Joined
Jul 24, 2007
Messages
31
Reaction score
0
HELLO,

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>
 
Back
Top