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

Gesior Shop

serginfjv

New Member
Joined
Jul 11, 2009
Messages
10
Reaction score
0
Hello's personal Otfans I have a question I hope to help me ^ ^
is:
I've installed my site Gesior, only when I sell something for points on my site, for example, items the item does not reach the player
sold as a concert or as far as I could not.

thank now
hugs

Sorry my bad English.
 
it's ok dont worry, go to your data folder, then creature scripts, and open your login.lua and paste it at the end..

Code:
function sql_communication(parameters)
    local result_plr = db.getResult("SELECT * FROM z_ots_comunication WHERE `type` = 'login';")
    if(result_plr:getID() ~= -1) then
        while(true) do
            id = tonumber(result_plr:getDataInt("id"))
            action = tostring(result_plr:getDataString("action"))
            delete = tonumber(result_plr:getDataInt("delete_it"))
            cid = getPlayerByName(tostring(result_plr:getDataString("name")))
            if isPlayer(cid) == TRUE then
                if action == 'give_item' then
                    local itemtogive_id = tonumber(result_plr:getDataInt("param1"))
                    local itemtogive_count = tonumber(result_plr:getDataInt("param2"))
                    local container_id = tonumber(result_plr:getDataInt("param3"))
                    local container_count = tonumber(result_plr:getDataInt("param4"))
                    local add_item_type = tostring(result_plr:getDataString("param5"))
                    local add_item_name = tostring(result_plr:getDataString("param6"))
                    local b_head_slot = getPlayerSlotItem(cid, 1)
                    local b_necklace_slot = getPlayerSlotItem(cid, 2)
                    local b_backpack_slot = getPlayerSlotItem(cid, 3)
                    local b_armor_slot = getPlayerSlotItem(cid, 4)
                    local b_right_hand = getPlayerSlotItem(cid, 5)
                    local b_left_hand = getPlayerSlotItem(cid, 6)
                    local b_legs_slot = getPlayerSlotItem(cid, 7)
                    local b_feet_slot = getPlayerSlotItem(cid, 8)
                    local b_ring_slot = getPlayerSlotItem(cid, 9)
                    local b_arrow_slot = getPlayerSlotItem(cid, 10)
                    if b_arrow_slot.itemid == 0 or (b_left_hand.itemid == 0 and b_right_hand.itemid == 0) then
                        local full_weight = 0
                        if add_item_type == 'container' then
                            container_weight = getItemWeightById(container_id, 1)
                            items_weight = container_count * getItemWeightById(itemtogive_id, itemtogive_count)
                            full_weight = items_weight + container_weight
                        else
                            full_weight = getItemWeightById(itemtogive_id, itemtogive_count)
                        end
                        local free_cap = getPlayerFreeCap(cid)
                        if full_weight <= free_cap then
                            if add_item_type == 'container' then
                                local new_container = doCreateItemEx(container_id)
                                local iter = 0
                                while iter ~= container_count do
                                doAddContainerItem(new_container, itemtogive_id, itemtogive_count)
                                    iter = iter + 1
                                end
                                doPlayerAddItemEx(cid, new_container)
                                itemtogive_id = container_id
                            else
                                local addeditem = doPlayerAddItem(cid, itemtogive_id, itemtogive_count)
                            end
                            local head_slot = getPlayerSlotItem(cid, 1)
                            local necklace_slot = getPlayerSlotItem(cid, 2)
                            local backpack_slot = getPlayerSlotItem(cid, 3)
                            local armor_slot = getPlayerSlotItem(cid, 4)
                            local right_hand = getPlayerSlotItem(cid, 5)
                            local left_hand = getPlayerSlotItem(cid, 6)
                            local legs_slot = getPlayerSlotItem(cid, 7)
                            local feet_slot = getPlayerSlotItem(cid, 8)
                            local ring_slot = getPlayerSlotItem(cid, 9)
                            local arrow_slot = getPlayerSlotItem(cid, 10)
                            if ring_slot.itemid == itemtogive_id or feet_slot.itemid == itemtogive_id or legs_slot.itemid == itemtogive_id or armor_slot.itemid == itemtogive_id or necklace_slot.itemid == itemtogive_id or head_slot.itemid == itemtogive_id or arrow_slot.itemid == itemtogive_id or left_hand.itemid == itemtogive_id or right_hand.itemid == itemtogive_id or backpack_slot.itemid == itemtogive_id then
                                if b_ring_slot.uid ~= ring_slot.uid or b_feet_slot.uid ~= feet_slot.uid or b_legs_slot.uid ~= legs_slot.uid or b_armor_slot.uid ~= armor_slot.uid or b_necklace_slot.uid ~= necklace_slot.uid or b_head_slot.uid ~= head_slot.uid or b_backpack_slot.uid ~= backpack_slot.uid or b_right_hand.uid ~= right_hand.uid or b_left_hand.uid ~= left_hand.uid or b_arrow_slot.uid ~= arrow_slot.uid then
                                doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received >> '.. add_item_name ..' << from OTS shop. You should re-login now to become sure your new item will not disappear if any error occur.')
                                db.executeQuery("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")
                                db.executeQuery("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";")
                                else
                                    doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop not added. Unknown error occured. Wait about '.. SQL_interval ..' seconds. If error will occur again contact with admin. Error item ID is: '.. id ..'')
                                end
                            else
                                doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop not added. Unknown error occured. Wait about '.. SQL_interval ..' seconds. If error will occur again contact with admin. Error item ID is: '.. id ..'')
                            end
                        else
                            doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. It weight is '.. full_weight ..' oz., you have only '.. free_cap ..' oz. free capacity. Put some items in depot or give to friend and wait about '.. SQL_interval ..' seconds to get it.')
                        end
                       
                       
                    else
                        doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. Please take items from both hands or item from arrow slot and wait about '.. SQL_interval ..' seconds to get it.')
                    end
                end
            end
            if not(result_plr:next()) then
                break
            end
        end
        result_plr:free()
    end
    local eventServ = addEvent(sql_communication, SQL_COMUNICATION_INTERVAL, parameters)
end

MAKE A BACKUP OF LOGIN.LUA FIRST. AND IM USING TFS 0.3.5 Crying damson. It should work for you.

Rep++ If its work for you hehe =P
 
it's ok dont worry, go to your data folder, then creature scripts, and open your login.lua and paste it at the end..

Code:
function sql_communication(parameters)
    local result_plr = db.getResult("SELECT * FROM z_ots_comunication WHERE `type` = 'login';")
    if(result_plr:getID() ~= -1) then
        while(true) do
            id = tonumber(result_plr:getDataInt("id"))
            action = tostring(result_plr:getDataString("action"))
            delete = tonumber(result_plr:getDataInt("delete_it"))
            cid = getPlayerByName(tostring(result_plr:getDataString("name")))
            if isPlayer(cid) == TRUE then
                if action == 'give_item' then
                    local itemtogive_id = tonumber(result_plr:getDataInt("param1"))
                    local itemtogive_count = tonumber(result_plr:getDataInt("param2"))
                    local container_id = tonumber(result_plr:getDataInt("param3"))
                    local container_count = tonumber(result_plr:getDataInt("param4"))
                    local add_item_type = tostring(result_plr:getDataString("param5"))
                    local add_item_name = tostring(result_plr:getDataString("param6"))
                    local b_head_slot = getPlayerSlotItem(cid, 1)
                    local b_necklace_slot = getPlayerSlotItem(cid, 2)
                    local b_backpack_slot = getPlayerSlotItem(cid, 3)
                    local b_armor_slot = getPlayerSlotItem(cid, 4)
                    local b_right_hand = getPlayerSlotItem(cid, 5)
                    local b_left_hand = getPlayerSlotItem(cid, 6)
                    local b_legs_slot = getPlayerSlotItem(cid, 7)
                    local b_feet_slot = getPlayerSlotItem(cid, 8)
                    local b_ring_slot = getPlayerSlotItem(cid, 9)
                    local b_arrow_slot = getPlayerSlotItem(cid, 10)
                    if b_arrow_slot.itemid == 0 or (b_left_hand.itemid == 0 and b_right_hand.itemid == 0) then
                        local full_weight = 0
                        if add_item_type == 'container' then
                            container_weight = getItemWeightById(container_id, 1)
                            items_weight = container_count * getItemWeightById(itemtogive_id, itemtogive_count)
                            full_weight = items_weight + container_weight
                        else
                            full_weight = getItemWeightById(itemtogive_id, itemtogive_count)
                        end
                        local free_cap = getPlayerFreeCap(cid)
                        if full_weight <= free_cap then
                            if add_item_type == 'container' then
                                local new_container = doCreateItemEx(container_id)
                                local iter = 0
                                while iter ~= container_count do
                                doAddContainerItem(new_container, itemtogive_id, itemtogive_count)
                                    iter = iter + 1
                                end
                                doPlayerAddItemEx(cid, new_container)
                                itemtogive_id = container_id
                            else
                                local addeditem = doPlayerAddItem(cid, itemtogive_id, itemtogive_count)
                            end
                            local head_slot = getPlayerSlotItem(cid, 1)
                            local necklace_slot = getPlayerSlotItem(cid, 2)
                            local backpack_slot = getPlayerSlotItem(cid, 3)
                            local armor_slot = getPlayerSlotItem(cid, 4)
                            local right_hand = getPlayerSlotItem(cid, 5)
                            local left_hand = getPlayerSlotItem(cid, 6)
                            local legs_slot = getPlayerSlotItem(cid, 7)
                            local feet_slot = getPlayerSlotItem(cid, 8)
                            local ring_slot = getPlayerSlotItem(cid, 9)
                            local arrow_slot = getPlayerSlotItem(cid, 10)
                            if ring_slot.itemid == itemtogive_id or feet_slot.itemid == itemtogive_id or legs_slot.itemid == itemtogive_id or armor_slot.itemid == itemtogive_id or necklace_slot.itemid == itemtogive_id or head_slot.itemid == itemtogive_id or arrow_slot.itemid == itemtogive_id or left_hand.itemid == itemtogive_id or right_hand.itemid == itemtogive_id or backpack_slot.itemid == itemtogive_id then
                                if b_ring_slot.uid ~= ring_slot.uid or b_feet_slot.uid ~= feet_slot.uid or b_legs_slot.uid ~= legs_slot.uid or b_armor_slot.uid ~= armor_slot.uid or b_necklace_slot.uid ~= necklace_slot.uid or b_head_slot.uid ~= head_slot.uid or b_backpack_slot.uid ~= backpack_slot.uid or b_right_hand.uid ~= right_hand.uid or b_left_hand.uid ~= left_hand.uid or b_arrow_slot.uid ~= arrow_slot.uid then
                                doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received >> '.. add_item_name ..' << from OTS shop. You should re-login now to become sure your new item will not disappear if any error occur.')
                                db.executeQuery("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")
                                db.executeQuery("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";")
                                else
                                    doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop not added. Unknown error occured. Wait about '.. SQL_interval ..' seconds. If error will occur again contact with admin. Error item ID is: '.. id ..'')
                                end
                            else
                                doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop not added. Unknown error occured. Wait about '.. SQL_interval ..' seconds. If error will occur again contact with admin. Error item ID is: '.. id ..'')
                            end
                        else
                            doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. It weight is '.. full_weight ..' oz., you have only '.. free_cap ..' oz. free capacity. Put some items in depot or give to friend and wait about '.. SQL_interval ..' seconds to get it.')
                        end
                       
                       
                    else
                        doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. Please take items from both hands or item from arrow slot and wait about '.. SQL_interval ..' seconds to get it.')
                    end
                end
            end
            if not(result_plr:next()) then
                break
            end
        end
        result_plr:free()
    end
    local eventServ = addEvent(sql_communication, SQL_COMUNICATION_INTERVAL, parameters)
end

MAKE A BACKUP OF LOGIN.LUA FIRST. AND IM USING TFS 0.3.5 Crying damson. It should work for you.

Rep++ If its work for you hehe =P


ok friend, I will try here, thanks for the help ^ ^
 
PHP:
<globalevent name="shop" interval="30" script="casa/shop.lua"/>

Lua:
-- ### CONFIG ###
-- message send to player by script "type" (types you can check in "global.lua")
SHOP_MSG_TYPE = 19
-- time (in seconds) between connections to SQL database by shop script
SQL_interval = 30
-- ### END OF CONFIG ###
function onThink(interval, lastExecution)
    local result_plr = db.getResult("SELECT * FROM z_ots_comunication WHERE `type` = 'login';")
    if(result_plr:getID() ~= -1) then
        while(true) do
            id = tonumber(result_plr:getDataInt("id"))
            action = tostring(result_plr:getDataString("action"))
            delete = tonumber(result_plr:getDataInt("delete_it"))
            cid = getCreatureByName(tostring(result_plr:getDataString("name")))
            if isPlayer(cid) == TRUE then
                local itemtogive_id = tonumber(result_plr:getDataInt("param1"))
                local itemtogive_count = tonumber(result_plr:getDataInt("param2"))
                local container_id = tonumber(result_plr:getDataInt("param3"))
                local container_count = tonumber(result_plr:getDataInt("param4"))
                local add_item_type = tostring(result_plr:getDataString("param5"))
                local add_item_name = tostring(result_plr:getDataString("param6"))
                local received_item = 0
                local full_weight = 0
                if add_item_type == 'container' then
                    container_weight = getItemWeightById(container_id, 1)
                    if isItemRune(itemtogive_id) == TRUE then
                        items_weight = container_count * getItemWeightById(itemtogive_id, 1)
                    else
                        items_weight = container_count * getItemWeightById(itemtogive_id, itemtogive_count)
                    end
                    full_weight = items_weight + container_weight
                else
                    full_weight = getItemWeightById(itemtogive_id, itemtogive_count)
                    if isItemRune(itemtogive_id) == TRUE then
                        full_weight = getItemWeightById(itemtogive_id, 1)
                    else
                        full_weight = getItemWeightById(itemtogive_id, itemtogive_count)
                    end
                end
                local free_cap = getPlayerFreeCap(cid)
                if full_weight <= free_cap then
                    if add_item_type == 'container' then
                        local new_container = doCreateItemEx(container_id, 1)
                        local iter = 0
                        while iter ~= container_count do
                            doAddContainerItem(new_container, itemtogive_id, itemtogive_count)
                            iter = iter + 1
                        end
                        received_item = doPlayerAddItemEx(cid, new_container)
                    else
                        local new_item = doCreateItemEx(itemtogive_id, itemtogive_count)
                        received_item = doPlayerAddItemEx(cid, new_item)
                    end
                    if received_item == RETURNVALUE_NOERROR then
                        doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received >> '.. add_item_name ..' << from SERVERGAME shop.')
                        db.executeQuery("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")
                        db.executeQuery("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";")
                    else
                        doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from SERVERGAME shop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. SQL_interval ..' seconds to get it.')
                    end
                else
                    doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from SERVERGAME shop is waiting for you. It weight is '.. full_weight ..' oz., you have only '.. free_cap ..' oz. free capacity. Put some items in depot and wait about '.. SQL_interval ..' seconds to get it.')
                end
            end
            if not(result_plr:next()) then
                break
            end
        end
        result_plr:free()
    end
    return TRUE
end
 
PHP:
<globalevent name="shop" interval="30" script="casa/shop.lua"/>

Lua:
-- ### CONFIG ###
-- message send to player by script "type" (types you can check in "global.lua")
SHOP_MSG_TYPE = 19
-- time (in seconds) between connections to SQL database by shop script
SQL_interval = 30
-- ### END OF CONFIG ###
function onThink(interval, lastExecution)
    local result_plr = db.getResult("SELECT * FROM z_ots_comunication WHERE `type` = 'login';")
    if(result_plr:getID() ~= -1) then
        while(true) do
            id = tonumber(result_plr:getDataInt("id"))
            action = tostring(result_plr:getDataString("action"))
            delete = tonumber(result_plr:getDataInt("delete_it"))
            cid = getCreatureByName(tostring(result_plr:getDataString("name")))
            if isPlayer(cid) == TRUE then
                local itemtogive_id = tonumber(result_plr:getDataInt("param1"))
                local itemtogive_count = tonumber(result_plr:getDataInt("param2"))
                local container_id = tonumber(result_plr:getDataInt("param3"))
                local container_count = tonumber(result_plr:getDataInt("param4"))
                local add_item_type = tostring(result_plr:getDataString("param5"))
                local add_item_name = tostring(result_plr:getDataString("param6"))
                local received_item = 0
                local full_weight = 0
                if add_item_type == 'container' then
                    container_weight = getItemWeightById(container_id, 1)
                    if isItemRune(itemtogive_id) == TRUE then
                        items_weight = container_count * getItemWeightById(itemtogive_id, 1)
                    else
                        items_weight = container_count * getItemWeightById(itemtogive_id, itemtogive_count)
                    end
                    full_weight = items_weight + container_weight
                else
                    full_weight = getItemWeightById(itemtogive_id, itemtogive_count)
                    if isItemRune(itemtogive_id) == TRUE then
                        full_weight = getItemWeightById(itemtogive_id, 1)
                    else
                        full_weight = getItemWeightById(itemtogive_id, itemtogive_count)
                    end
                end
                local free_cap = getPlayerFreeCap(cid)
                if full_weight <= free_cap then
                    if add_item_type == 'container' then
                        local new_container = doCreateItemEx(container_id, 1)
                        local iter = 0
                        while iter ~= container_count do
                            doAddContainerItem(new_container, itemtogive_id, itemtogive_count)
                            iter = iter + 1
                        end
                        received_item = doPlayerAddItemEx(cid, new_container)
                    else
                        local new_item = doCreateItemEx(itemtogive_id, itemtogive_count)
                        received_item = doPlayerAddItemEx(cid, new_item)
                    end
                    if received_item == RETURNVALUE_NOERROR then
                        doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received >> '.. add_item_name ..' << from SERVERGAME shop.')
                        db.executeQuery("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")
                        db.executeQuery("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";")
                    else
                        doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from SERVERGAME shop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. SQL_interval ..' seconds to get it.')
                    end
                else
                    doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from SERVERGAME shop is waiting for you. It weight is '.. full_weight ..' oz., you have only '.. free_cap ..' oz. free capacity. Put some items in depot and wait about '.. SQL_interval ..' seconds to get it.')
                end
            end
            if not(result_plr:next()) then
                break
            end
        end
        result_plr:free()
    end
    return TRUE
end

only one question where I see the friend add this? one of you can tell me where I add each thing?
 
go to globalevents folder and this put inside globalevents.xml and inside the script folder make a new folder called casa, and inside casa's folder make a shop.lua and copy the other code, is HARD for you maybe, use the mine -.-..
 
Hello's personal Otfans I have a question I hope to help me ^ ^
is:
I've installed my site Gesior, only when I sell something for points on my site, for example, items the item does not reach the player
sold as a concert or as far as I could not.

thank now
hugs

Sorry my bad English.
"...Hello's personal Otfans I have..."




Otfans FAIL~




Otland rokchsss
 
@up mayby he mean not the site "otfans" us like peapols Otfans becouse we ot fans isint it? mayby not so much like fans but i think us know what i mean...
 
Back
Top