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

How i can make it?

_M4G0_

Well-Known Member
Joined
Feb 6, 2016
Messages
504
Solutions
16
Reaction score
98
Basically is get items that are in table in tile x and create item according to the item on the tile.
Lua:
local item = {[neededitem] = reward, [neededitem] = reward}
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
    local tile = Tile(Position(32342, 32236, 6))
        if tile:getItemById(item, itemid) then
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'Test')
            Game.createItem([item.reward], 1, Position(32344, 32236, 6))
        else
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'Test')
        end
    
    return true
end
screenshot_2019-04-28-0-3-11.png
 
Solution
Basically is get items that are in table in tile x and create item according to the item on the tile.
Lua:
local item = {[neededitem] = reward, [neededitem] = reward}
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
    local tile = Tile(Position(32342, 32236, 6))
        if tile:getItemById(item, itemid) then
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'Test')
            Game.createItem([item.reward], 1, Position(32344, 32236, 6))
        else
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'Test')
        end
   
    return true
end
View attachment 36157
Untested, let me know how it works out.
Lua:
local offer_pos, reward_pos = Position(32342, 32236, 6), Position(32344, 32236, 6)
local config = {
    [2154] =...
Basically is get items that are in table in tile x and create item according to the item on the tile.
Lua:
local item = {[neededitem] = reward, [neededitem] = reward}
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
    local tile = Tile(Position(32342, 32236, 6))
        if tile:getItemById(item, itemid) then
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'Test')
            Game.createItem([item.reward], 1, Position(32344, 32236, 6))
        else
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'Test')
        end
   
    return true
end
View attachment 36157
Untested, let me know how it works out.
Lua:
local offer_pos, reward_pos = Position(32342, 32236, 6), Position(32344, 32236, 6)
local config = {
    [2154] = 2140,
    [2155] = 2137,
}

function onUse(player, item, fromPosition, target, toPosition, isHotkey)
    local tile = Tile(offer_pos)
    if not tile then return true end

    for offer_id, reward_id in pairs(config) do
        local offer = tile:getItemById(offer_id)
        local reward = offer and Game.createItem(reward_id, 1, reward_pos)
        if reward then
            local offer_name, reward_name = offer:getArticle() .. " " .. offer:getName(), reward:getArticle() .. " " .. reward:getName()
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You have offered " .. offer_name .. " for " .. reward_name .. ".")
            offer:remove(1)
            break
        end
    end
    return true
end
 
Solution
Untested, let me know how it works out.
Lua:
local offer_pos, reward_pos = Position(32342, 32236, 6), Position(32344, 32236, 6)
local config = {
    [2154] = 2140,
    [2155] = 2137,
}

function onUse(player, item, fromPosition, target, toPosition, isHotkey)
    local tile = Tile(offer_pos)
    if not tile then return true end

    for offer_id, reward_id in pairs(config) do
        local offer = tile:getItemById(offer_id)
        local reward = offer and Game.createItem(reward_id, 1, reward_pos)
        if reward then
            local offer_name, reward_name = offer:getArticle() .. " " .. offer:getName(), reward:getArticle() .. " " .. reward:getName()
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You have offered " .. offer_name .. " for " .. reward_name .. ".")
            offer:remove(1)
            break
        end
    end
    return true
end
work perfectly, Thanks
 
Untested, let me know how it works out.
Lua:
local offer_pos, reward_pos = Position(32342, 32236, 6), Position(32344, 32236, 6)
local config = {
    [2154] = 2140,
    [2155] = 2137,
}

function onUse(player, item, fromPosition, target, toPosition, isHotkey)
    local tile = Tile(offer_pos)
    if not tile then return true end

    for offer_id, reward_id in pairs(config) do
        local offer = tile:getItemById(offer_id)
        local reward = offer and Game.createItem(reward_id, 1, reward_pos)
        if reward then
            local offer_name, reward_name = offer:getArticle() .. " " .. offer:getName(), reward:getArticle() .. " " .. reward:getName()
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You have offered " .. offer_name .. " for " .. reward_name .. ".")
            offer:remove(1)
            break
        end
    end
    return true
end
Lua:
local offer_pos, reward_pos = Position(32342, 32236, 6), Position(32344, 32236, 6)
local reagent_pos = Position(32344, 32236, 6)
local config = {
    [2154] = 2140,
    [26298] = 25410,
    
}

function onUse(player, item, fromPosition, target, toPosition, isHotkey)
    local tile = Tile(offer_pos)
    local tilereagent = Tile(reagent_pos)
    if not tile and tilereagent then return true end

    for offer_id, reward_id in pairs(config) do
        local offer = tile:getItemById(offer_id)
        local reagent = tilereagent:getItemById(2155)
        local reward = reagent and offer and Game.createItem(reward_id, 1, reward_pos)
        if reward then
            local offer_name, reward_name = offer:getArticle() .. " " .. offer:getName(), reward:getArticle() .. " " .. reward:getName()
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You have offered " .. offer_name .. " for " .. reward_name .. ".")
            offer:remove(1)
            reagent:remove(1)
            break
        end
    end
    return true
end

@Apollos your script work perfectly.
I added a "reagent", is possible add message if not reagent or offer?
 
Lua:
local offer_pos, reward_pos = Position(32342, 32236, 6), Position(32344, 32236, 6)
local reagent_pos = Position(32344, 32236, 6)
local config = {
    [2154] = 2140,
    [26298] = 25410,
   
}

function onUse(player, item, fromPosition, target, toPosition, isHotkey)
    local tile = Tile(offer_pos)
    local tilereagent = Tile(reagent_pos)
    if not tile and tilereagent then return true end

    for offer_id, reward_id in pairs(config) do
        local offer = tile:getItemById(offer_id)
        local reagent = tilereagent:getItemById(2155)
        local reward = reagent and offer and Game.createItem(reward_id, 1, reward_pos)
        if reward then
            local offer_name, reward_name = offer:getArticle() .. " " .. offer:getName(), reward:getArticle() .. " " .. reward:getName()
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You have offered " .. offer_name .. " for " .. reward_name .. ".")
            offer:remove(1)
            reagent:remove(1)
            break
        end
    end
    return true
end

@Apollos your script work perfectly.
I added a "reagent", is possible add message if not reagent or offer?
Try:
Lua:
local offer_pos, reward_pos = Position(32342, 32236, 6), Position(32344, 32236, 6)
local reagent_pos = Position(32344, 32236, 6)
local config = {
    [2154] = 2140,
    [26298] = 25410,
}

function onUse(player, item, fromPosition, target, toPosition, isHotkey)
    local tile = Tile(offer_pos)
    local tilereagent = Tile(reagent_pos)
    
    if not tile and tilereagent then
        return false
    end
    
    local reagent = tilereagent:getItemById(2155)--Reagent is only this ItemId?
    if not reagent then
        player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You don't have the right reagent to offer.")
        return false
    end
    
    for offer_id, reward_id in pairs(config) do
        local offer = tile:getItemById(offer_id)
        local reward = reagent and offer and Game.createItem(reward_id, 1, reward_pos)
        if reward then
            local offer_name, reward_name = offer:getArticle() .. " " .. offer:getName(), reward:getArticle() .. " " .. reward:getName()
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You have offered " .. offer_name .. " for " .. reward_name .. ".")
            offer:remove(1)
            reagent:remove(1)
            return true
        end
    end
    
    --If finish the FOR without return true, then don't have valid offer or could not create the item
    player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You don't have the right item to offer.")
    return false
end
Not tested.
 
Try:
Lua:
local offer_pos, reward_pos = Position(32342, 32236, 6), Position(32344, 32236, 6)
local reagent_pos = Position(32344, 32236, 6)
local config = {
    [2154] = 2140,
    [26298] = 25410,
}

function onUse(player, item, fromPosition, target, toPosition, isHotkey)
    local tile = Tile(offer_pos)
    local tilereagent = Tile(reagent_pos)
   
    if not tile and tilereagent then
        return false
    end
   
    local reagent = tilereagent:getItemById(2155)--Reagent is only this ItemId?
    if not reagent then
        player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You don't have the right reagent to offer.")
        return false
    end
   
    for offer_id, reward_id in pairs(config) do
        local offer = tile:getItemById(offer_id)
        local reward = reagent and offer and Game.createItem(reward_id, 1, reward_pos)
        if reward then
            local offer_name, reward_name = offer:getArticle() .. " " .. offer:getName(), reward:getArticle() .. " " .. reward:getName()
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You have offered " .. offer_name .. " for " .. reward_name .. ".")
            offer:remove(1)
            reagent:remove(1)
            return true
        end
    end
   
    --If finish the FOR without return true, then don't have valid offer or could not create the item
    player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You don't have the right item to offer.")
    return false
end
Not tested.
😍💗
 
Back
Top