• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    Añadir Addons al Shop

    Compartir:

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    1default Añadir Addons al Shop Miér Ene 19, 2022 2:32 pm

    ioke

    ioke
    Miembro
    Miembro
    Hola verán necesito ayuda no se cómo poner Sddons en el shop para que puedan comprar el addon que quieran citizen, hunter... En tipo pongo Addons pero ya no se qué más escribir en los otros si alguien me puede ayudar es gesior2012

    Añadir Addons al Shop VrVxkbI

    3 participantes
    http://baiakciteron.sytes.net

    2default Re: Añadir Addons al Shop Vie Ene 21, 2022 12:25 pm

    gideonsit

    gideonsit
    Miembro
    Miembro
    ioke escribió:Hola verán necesito ayuda no se cómo poner Sddons en el shop para que puedan comprar el addon que quieran citizen, hunter... En tipo pongo Addons pero ya no se qué más escribir en los otros si alguien me puede ayudar es gesior2012

    Añadir Addons al Shop VrVxkbI

    hola bro te recomiendo usar ZNOTEACC si quieres gestionar mas rapido tus monturasoutfit etc.. para venta en shop

    3 participantes

    3default Re: Añadir Addons al Shop Vie Ene 21, 2022 3:14 pm

    ioke

    ioke
    Miembro
    Miembro
    Gracias pero no llevo 1 año con esta web solo necesito que alguien me ayude si sabe con eso y si no pues ya buscaré otra manera.

    No voy a dejar mi web por una cosa del shop

    Añadir Addons al Shop Img_2012

    3 participantes
    http://baiakciteron.sytes.net

    4default Re: Añadir Addons al Shop Sáb Ene 22, 2022 12:25 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    aqui lo tienes

    creaturescripts/scripts, agregue un archivo llamado addonmount.lua y agregue lo siguiente dentro:

    Código:

    function onLogin(cid)

                            
    local player = Player(cid)
    local addons ={   
         --[storage] = {outfit_male, outfit_female},
       [28416] = {128, 136}, -- Citizen
       [28417] = {129, 137}, -- Hunter
       [28418] = {130, 138}, -- Mage
       [28419] = {131, 139}, -- Knight
       [28420] = {132, 140}, -- Nobleman
       [28421] = {133, 141}, -- Summoner
       [28422] = {134, 142}, -- Warrior
       [28423] = {143, 147}, -- Barbarian
       [28424] = {144, 148}, -- Druid
       [28425] = {145, 149}, -- Wizard
       [28426] = {146, 150}, -- Oriental
       [28427] = {151, 155}, -- Pirate
       [28428] = {152, 156}, -- Assassin
       [28429] = {153, 157}, -- Beggar
       [28430] = {154, 158}, -- Shaman
       [28431] = {251, 252}, -- Norseman
       [28432] = {268, 269}, -- Nightmare
       [28433] = {273, 270}, -- Jester
       [28434] = {278, 279}, -- Brotherhood
       [28435] = {289, 288}, -- Demonhunter
       [28436] = {325, 324}, -- Yalaharian
       [28437] = {328, 329}, -- Husband
       [28438] = {335, 336}, -- Warmaster
       [28439] = {367, 366}, -- Wayfarer
       [28440] = {430, 431}, -- Afflicted
       [28441] = {432, 433}, -- Elementalist
       [28442] = {463, 464}, -- Deepling
       [28443] = {465, 466}, -- Insectoid
       [28444] = {472, 471}, -- Entrepreneur
       [28445] = {512, 513}, -- Crystal Warlord
       [28446] = {516, 514}, -- Soil Guardian
       [28447] = {541, 542}, -- Demon
       [28448] = {574, 575}, -- Cave Explorer
       [28449] = {577, 578}, -- Dream Warden
       [28450] = {610, 618}, -- Glooth Engineer
       [28451] = {619, 620}, -- Jersey
       [28452] = {633, 632}, -- Champion
       [28453] = {634, 635}, -- Conjurer
       [28454] = {637, 636}, -- Beastmaster
       [28455] = {665, 664}, -- Chaos Acolyte
       [28456] = {667, 666}, -- Death Herald
       [28457] = {684, 683}, -- Ranger
       [28458] = {695, 694}, -- Ceremonial Garb
       [28459] = {697, 696}, -- Puppeteer
       [28460] = {699, 698}, -- Spirit Caller
       [28461] = {725, 724}, -- Evoker
       [28462] = {733, 732}, -- Seaweaver
       [28463] = {746, 725}, -- Recruiter
       [28464] = {750, 749}, -- Sea Dog
       [28465] = {760, 759}, -- Royal Pumpkin
       [28466] = {846, 845}, -- Rift Warrior
       [28467] = {853, 852}  -- Winter Warden
       
       }
       
          for storage, addon in pairs(addons) do
             if player:getStorageValue(storage) > 0 then
                player:getPosition():sendMagicEffect(CONST_ME_GIFT_WRAPS)
                player:addOutfitAddon(addon[1], 3)
                player:addOutfitAddon(addon[2], 3)
                player:sendTextMessage(MESSAGE_INFO_DESCR, "Seu Addon full foi adicionado!")
                player:setStorageValue(storage, 0)
             end
          end
          
                                        
    local mounts ={   
          --[storage] = mounts,
       [80000] = 1, -- Widow Queen
       [80001] = 2, -- Racing Bird
       [80002] = 3, -- War Bear
       [80003] = 4, -- Black Sheep
       [80004] = 5, -- Midnight Panther
       [80005] = 6, -- Draptor
       [80006] = 7, -- Titanica
       [80007] = 8, -- Tin Lizzard
       [80008] = 9, -- Blazebringer
       [80009] = 10, -- Rapid Boar
       [80010] = 11, -- Stampor
       [80011] = 12, -- Undead Cavebear
       [80012] = 13, -- Donkey
       [80013] = 14, -- Tiger Slug
       [80014] = 15, -- Uniwheel
       [80015] = 16, -- Crystal Wolf
       [80016] = 17, -- War Horse
       [80017] = 18, -- Kingly Deer
       [80018] = 19, -- Tamed Panda
       [80019] = 20, -- Dromedary
       [80020] = 21, -- King Scorpion
       [80021] = 22, -- Rented Horse
       [80022] = 23, -- Armoured War Horse
       [80023] = 24, -- Shadow Draptor"
       [80024] = 25, -- Rented Horse Grey
       [80025] = 26, -- Rented Horse Thais
       [80026] = 27, -- Ladybug
       [80027] = 28, -- Manta Ray
       [80028] = 29, -- Ironblight
       [80029] = 30, -- Magma Crawler
       [80030] = 31, -- Dragonling
       [80031] = 32, -- Gnarlhound
       [80032] = 33, -- Crimson Ray
       [80033] = 34, -- Steelbeak
       [80034] = 35, -- Water Buffalo
       [80035] = 36, -- Armoured Scorpion
       [80036] = 37, -- Armoured Dragonling
       [80037] = 38, -- Ursagrodon
       [80038] = 39, -- Hellgrip
       [80039] = 40, -- Noble Lion
       [80040] = 41, -- Desert King
       [80041] = 42, -- Shock Head
       [80042] = 43, -- Walker
       [80043] = 44, -- Azudocus
       [80044] = 45, -- Carpacosaurus
       [80045] = 46, -- Death Crawler
       [80046] = 47, -- Flamesteed
       [80047] = 48, -- Jade Lion
       [80048] = 49, -- Jade Pincer
       [80049] = 50, -- Nethersteed
       [80050] = 51, -- Tempest
       [80051] = 52, -- Winter King
       [80052] = 53, -- Doombringer
       [80053] = 54, -- Woodland Prince
       [80054] = 55, -- Hailtorm Fury
       [80055] = 56, -- Siegebreaker
       [80056] = 57, -- Poisonbane
       [80057] = 58, -- Blackpelt
       [80058] = 59, -- Golden Dragonfly
       [80059] = 60, -- Steel Bee
       [80060] = 61, -- Copper Fly
       [80061] = 62, -- Tundra Rambler
       [80062] = 63, -- Highland Yak
       [80063] = 64, -- Glacier Vagabond
       [80064] = 65, -- Flying Divan
       [80065] = 66, -- Magic Carpet
       [80066] = 67, -- Floating Kashmir
       [80067] = 68, -- Ringnail Waccoon
       [80068] = 69, -- Night Waccoon
       [80069] = 70, -- Emerald Waccoon
       [80070] = 71, -- Glooth Glider
       [80071] = 72, -- Shadow Hart
       [80072] = 73, -- Black Stag
       [80073] = 74, -- Emperor Deer
       [80074] = 75, -- Flitterkatzen
       [80075] = 76, -- Venompaw
       [80076] = 77, -- Batcat
       [80077] = 78, -- Sea Devil
       [80078] = 79, -- Coralripper
       [80079] = 80, -- Plumfish
       [80080] = 81, -- Gorongra
       [80081] = 82, -- Noctungra
       [80082] = 83, -- Silverneck
       [80083] = 84, -- Slagnare
       [80084] = 85, -- Nightstinger
       [80085] = 86, -- Razorcreep
       [80086] = 87, -- Rift Runner
       [80087] = 88, -- Nightdweller
       [80088] = 89, -- Frostflare
       [80089] = 90 -- Cinderhoof
       
       }
          
          for storage, mount in pairs(mounts) do
             if player:getStorageValue(storage) > 0 then
                player:getPosition():sendMagicEffect(CONST_ME_GIFT_WRAPS)
                player:addMount(mount)
                player:sendTextMessage(MESSAGE_INFO_DESCR, "Sua Mount foi adicionado!")
                player:setStorageValue(storage, 0)
             end
          end   
       return true
    end

    En creaturescripts.xml agregue:

    Código:
    <event type="login" name="ShopMountAddon" script="addonmount.lua"/>

    en Globalevents/scripts, substituya su shop.lua

    Código:

    -- ### CONFIG ###
    -- message send to player by script "type" (types you can check in "global.lua")
    SHOP_MSG_TYPE = 18
    -- 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.storeQuery("SELECT * FROM z_ots_comunication")
        if(result_plr ~= false) then
            repeat
                local id = tonumber(result.getDataInt(result_plr, "id"))
                local action = tostring(result.getDataString(result_plr, "action"))
                local delete = tonumber(result.getDataInt(result_plr, "delete_it"))
                local cid = getPlayerByName(tostring(result.getDataString(result_plr, "name")))
                if(cid) then
                    local itemtogive_id = tonumber(result.getDataInt(result_plr, "param1"))
                    local itemtogive_count = tonumber(result.getDataInt(result_plr, "param2"))
                    local container_id = tonumber(result.getDataInt(result_plr, "param3"))
                    local container_count = tonumber(result.getDataInt(result_plr, "param4"))
                    local add_item_type = tostring(result.getDataString(result_plr, "param5"))
                    local add_item_name = tostring(result.getDataString(result_plr, "param6"))
                    local received_item = 0
                    local full_weight = 0
                
                -- Script para addons e montaria full pelo Gesior --
                if(add_item_type == 'mounts') then
                local player = Player(cid)
                if (getPlayerStorageValue(cid,itemtogive_id) == -1) then
                doPlayerAddMount(cid, itemtogive_id)
                setPlayerStorageValue(cid,itemtogive_id,1)
                doSendMagicEffect(getCreaturePosition(cid), CONST_ME_HOLYDAMAGE)
                doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received '.. add_item_name ..' from Th3 Insanity Shop.')
                db.query("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")
                    db.query("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";")
                else
                doPlayerSendTextMessage(cid,25,"You Already have this Mount.")
                end
                return TRUE
                
                end            
                -- fim do script --
                -- Script para addons e montaria full pelo Gesior --
                if(add_item_type == 'addons') then
                local player = Player(cid)
                if (getPlayerStorageValue(cid,itemtogive_id) == -1) then
                doPlayerAddOutfit(cid, itemtogive_id, 3)
                doPlayerAddOutfit(cid, container_id, 3)
                setPlayerStorageValue(cid,itemtogive_id,1)
                doSendMagicEffect(getCreaturePosition(cid), CONST_ME_HOLYDAMAGE)
                doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received '.. add_item_name ..' from Th3 Insanity Shop.')
                db.query("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")
                    db.query("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";")
                else
                doPlayerSendTextMessage(cid,25,"You Already have this Outfit.")
                end
                return TRUE
                end            
                -- fim do script --
                
                
                
                    if(add_item_type == 'container') then
                        container_weight = getItemWeight(container_id, 1)
                        if(isItemRune(itemtogive_id)) then
                            items_weight = container_count * getItemWeight(itemtogive_id, 1)
                        else
                            items_weight = container_count * getItemWeight(itemtogive_id, itemtogive_count)
                        end
                        full_weight = items_weight + container_weight
                    else
                        full_weight = getItemWeight(itemtogive_id, itemtogive_count)
                        if(isItemRune(itemtogive_id)) then
                            full_weight = getItemWeight(itemtogive_id, 1)
                        else
                            full_weight = getItemWeight(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(type(received_item) == "number" and received_item == RETURNVALUE_NOERROR) then
                            doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received '.. add_item_name ..' from Th3 Insanity Shop.')
                            db.query("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")
                            db.query("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 Th3 Insanity 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 ..' Th3 Insanity 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
            until not result.next(result_plr)
            result.free(result_plr)
        end
        return true
    end

    En globalevents.xml agregue la tag

    Código:

    <globalevent name="shop" interval="5" script="shop.lua"/>



    Añadir Addons al Shop YNU5B25
    3 participantes
    https://www.tibiaface.com

    5default Re: Añadir Addons al Shop Sáb Ene 22, 2022 12:27 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    en config/config.php encuentr esta linea

    Código:
    $config['site']['item_images_url'] = 'images/items/';

    abajo de esa linea agregue

    Código:

    $config['site']['addons_images_url'] = 'images/addons/';
    $config['site']['addons_images_extension'] = '.gif';
    $config['site']['mounts_images_url'] = 'images/mounts/';
    $config['site']['mounts_images_extension'] = '.gif';

    cambie su shopadmin.php por este contenido:

    Código:

    <style type="text/css">
    hr{border:0;border-bottom:1px solid #D4C0A1;padding:3px;}
    h1.admshop{margin:0;padding:0;}
    label.admshop{float:left;width:100px;}
    div.clear{clear:both;}
    p.border{border-bottom:1px solid #D4C0A1;padding:3px;}
    form input, form select, form button, form reset{padding:3px;}
    input.bt{padding:3px 20px;cursor:pointer;}
    .success{color:green;}
    .error{color:red;}
    .bt2{padding:5px 30px;cursor:pointer;}
    </style>
    <script type="text/javascript">
    function _delete(id)
    {
       if( confirm('Confirma a exclusão do item selecionado?') )
       {
          location.href='?subtopic=shopadmin&action=delete&id=' + id + '';
       }
       
       return false;
    }
    </script>
    <?php
    if(!defined('INITIALIZED'))
       exit;

    /*
     * Variável SQL
     */
    $SQL = $GLOBALS['SQL'];

    if($group_id_of_acc_logged >= $config['site']['access_admin_panel'])
    {
       
       /**
        * Systema By Dezon
        */
       switch($action)
       {
          case 'list':
             $ofertas = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shop_offer').';');
             
             $result .= '<p><a href="?subtopic=shopadmin">Shop admin</a> | <a href="?subtopic=shopadmin&action=new">Novo</a> | <a href="?subtopic=shopadmin&action=list">Listar</a> | <a href="?subtopic=shopadmin&action=points">Adicionar pontos</a></p>';
             
             $result .= '<TABLE BGCOLOR="#D4C0A1" BORDER="0" CELLPADDING="4" CELLSPACING="1" WIDTH="100%">';
             $result .= '<tr bgcolor="#505050"><td class="white"><strong>Items cadastrados no \'Shop Offer\'</strong></td><tr>';
             
                $result .= '<TABLE BORDER="0" CELLPADDING="2" CELLSPACING="1" WIDTH="100%">';
                $result .= '<TR BGCOLOR="#F1E0C6"><td><strong>ID</strong></td><td><strong>Nome da oferta</strong></td><td><strong>Imagem</strong></td><td><strong>Ações</strong></td></TR>';
                while($data = $ofertas->fetch())
                {
                   $result .= '<tr BGCOLOR="#F1E0C6">';
                   $result .= '<td>'.$data['id'].'</td>';
                   $result .= '<td>'.$data['offer_name'].'</td>';
                                            $result .= '<td align="center"><img src="./images/items/'.$data['itemid1'].$config['site']['item_images_extension'].'" /></td>';
                                            $result .= '<td><a href="?subtopic=shopadmin&action=edit&id='.$data['id'].'">[editar]</a>&nbsp;<a href="javascript:void( _delete('.$data['id'].') );">[excluir]</a></td>';
                   $result .= '</tr>';
                }
                $result .= '</table>';
             
             $result .= '</table>';
             
             $main_content .= $result;
             break; //lista as ofertas
          
          case 'edit':
             $main_content .= '<p><a href="?subtopic=shopadmin">Shop admin</a> | <a href="?subtopic=shopadmin&action=new">Novo</a> | <a href="?subtopic=shopadmin&action=list">Listar</a> | <a href="?subtopic=shopadmin&action=points">Adicionar pontos</a></p>';
             $id = is_numeric($_GET['id']) ? $_GET['id'] : header('Location: ?subtopic=shopadmin');
             $dados = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shop_offer').' WHERE id='.$id)->fetch();
             
             if($dados['offer_type'] == 'item')
             {
                $dropdown = '<select name="offer_type"><option value="item" selected="selected">Item</option><option value="item">item</option></select>';
             }
             else if($dados['offer_type'] == 'mounts')
             {
                $dropdown = '<select name="offer_type"><option value="mount" selected="selected">mount</option><option value="mount">mount</option></select>';
             }
                            else if($dados['offer_type'] == 'addons')
             {
                $dropdown = '<select name="offer_type"><option value="addon" selected="selected">addon</option></select>';
             }
             
             $main_content .= <<<EOD
                <h1 class="admshop"><strong>Editar/Atualizar oferta</strong></h1>
                <form method="post" action="?subtopic=shopadmin&action=shop_edit">
                   <input type="hidden" name="id_offer" value="{$dados['id']}" />
                   <p class="border"><strong>Nome / Descrição da oferta</strong></p>
                   <p><label class="admshop">Oferta: </label><input type="text" name="offer_name" size="50" maxlength="100" value="{$dados['offer_name']}" /></p>
                   <p><label class="admshop">Descrição: </label><input type="text" name="offer_description" size="50" maxlength="1000" value="{$dados['offer_description']}" /></p>
                   <p><label class="admshop">Qtde. pontos: </label><input type="text" name="points" size="5" maxlength="9" value="{$dados['points']}" /></p>
                   
                   <p class="border"><strong>Tipo da oferta</strong></p>
                   <p><label class="admshop">Tipo: </label>{$dropdown}</p>
                   
                   <p class="border"><strong>Configuração de item normal, armor, shield, legs, etc</strong></p>
                   <p><label class="admshop">ID Item 1: </label><input type="text" name="itemid1" size="10" value="{$dados['itemid1']}" /></p>
                   <p><label class="admshop">Qtde. Item 1: </label><input type="text" name="count1" size="10" value="{$dados['count1']}" /></p>
                   
                   <p class="border"><strong>Configuração de item mounts, BP com Runas, BP com Small Stones, etc</strong></p>
                   <p><label class="admshop">ID Item 2: </label><input type="text" name="itemid2" size="10" value="{$dados['itemid2']}" /></p>
                   <p><label class="admshop">Qtde. Item 2: </label><input type="text" name="count2" size="10" value="{$dados['count2']}" /></p>
                   
                   <p class="border"><br /></p>
                   <input type="submit" value="Salvar edição" class="bt" />
                </form>
                <div class="clear"></div>
    EOD;
             break; //edita a oferta selecionada
             
             /******************************************************************************************/
          // Ação responsável por abrir a tela de pontos
          /******************************************************************************************/
          case 'points':
             $main_content .= $items_menu;
             $main_content .= <<<EOD
                <h1 class="admshop"><strong>Adicionar pontos à um Character <small><i>(Char)</i></small></strong></h1>
                <form method="post" action="?subtopic=shopadmin&action=points_add">
                   <p class="border"><strong>Entre com o nome do Char</strong></p>
                   <p><label class="admshop">Character <small><i>(Char)</i></small>: </label><input type="text" name="char_name" size="30" maxlength="50" /></p>

                   <p class="border"><strong>Entre a quantidade de pontos</strong></p>
                   <p><label class="admshop">Qtde. pontos: </label><input type="text" name="char_points" size="5" maxlength="9" /></p>

                   <p class="border"><br /></p>
                   <input type="submit" value="Salvar" class="bt" />
                </form>
                <div class="clear"></div>
    EOD;
    #/\ Deixe assim !!!
    break;
    case 'points_add':
             $player = stripslashes(ucwords(strtolower(trim($_POST['char_name']))));
             $points = is_numeric($_POST['char_points']) ? $_POST['char_points'] : 0;

             if(strlen($player) > 0){
                $data  = $SQL->query("SELECT * FROM `players` WHERE `name` = '".$player."';")->fetch();

                if($data['account_id']){
                   $SQL->query("UPDATE `accounts` SET `premium_points` = `premium_points` + '".$points."' WHERE `id` = '".$data['account_id']."'");
                   $main_content .= '<strong class="success">Pontos adicionados com sucesso à: <i>'.$player.'</i></strong><br /><br /><a href="?subtopic=shopadmin">Voltar</a>';
                }else{
                   $main_content .= '<strong class="error">O character indicado não existe.</strong><br /><br /><a href="?subtopic=shopadmin&action=points">Voltar</a>';
                }

                
             }else{
                $main_content .= '<strong class="error">Preencha o nome do Character.</strong><br /><br /><a href="?subtopic=shopadmin&action=points">Voltar</a>';
             }         
             break;
             
          case 'shop_edit':
             $id             = $_POST['id_offer'];
             $points            = trim($_POST['points']);
             $itemid1         = trim($_POST['itemid1']);
             $count1            = trim($_POST['count1']);
             $itemid2         = trim($_POST['itemid2']);
             $count2            = trim($_POST['count2']);
             $offer_type         = trim($_POST['offer_type']);
             $offer_description   = trim($_POST['offer_description']);
             $offer_name         = trim($_POST['offer_name']);
             
             if(empty($points) && empty($itemid1) && empty($offer_name)) {
                $main_content .= '<strong class="error">Você deve preencher pelo menos os pontos, id item 1 e o nome da oferta!</strong><p><hr /></p><a href="javascript:void(history.go(-1));">Voltar</a>';
             } else {
                $sql_edit = sprintf(
                   "UPDATE {$SQL->tableName('z_shop_offer')} SET points=%s, itemid1=%s, count1=%s, itemid2=%s, count2=%s, offer_type='%s', offer_description='%s', offer_name='%s' WHERE id=%s",
                   $points,
                   $itemid1,
                   $count1,
                   $itemid2,
                   $count2,
                   $offer_type,
                   $offer_description,
                   $offer_name,
                   $id
                );
                $SQL->query($sql_edit);
                $main_content .= '<strong class="success">Oferta editada com sucesso!</strong><br /><br /><a href="?subtopic=shopadmin&action=list">Voltar</a>';
             }
             break;
          
          case 'delete':
             $id = is_numeric($_GET['id']) ? $_GET['id'] : header('Location: ?subtopic=shopadmin');
             $SQL->query('DELETE FROM '.$SQL->tableName('z_shop_offer').' WHERE id='.$id);
             header('Location: ?subtopic=shopadmin&action=list');
             break; //exclui items
          
          case 'shop_save':
             $points            = trim($_POST['points']);
             $itemid1         = trim($_POST['itemid1']);
             $count1            = trim($_POST['count1']);
             $itemid2         = trim($_POST['itemid2']);
             $count2            = trim($_POST['count2']);
             $offer_type         = trim($_POST['offer_type']);
             $offer_description   = trim($_POST['offer_description']);
             $offer_name         = trim($_POST['offer_name']);
             
             if(empty($points) && empty($itemid1) && empty($offer_name)) {
                $main_content .= '<strong class="error">Você deve preencher pelo menos os pontos, id item 1 e o nome da oferta!</strong><p><hr /></p><a href="javascript:void(history.go(-1))">Voltar</a>';
             } else {
                $sql_save = sprintf(
                   "INSERT INTO `z_shop_offer` (points,itemid1,count1,itemid2,count2,offer_type,offer_description,offer_name)VALUES('%s','%s','%s','%s','%s','%s','%s','%s')",
                   (empty($points)  ? 0 : $points),
                   (empty($itemid1) ? 0 : $itemid1),
                   (empty($count1)  ? 0 : $count1),
                   (empty($itemid2) ? 0 : $itemid2),
                   (empty($count2)  ? 0 : $count2),
                   $offer_type,
                   $offer_description,
                   $offer_name
                );
                $SQL->query($sql_save);
                $main_content .= '<strong class="success">Oferta salva com sucesso!</strong><br /><br /><a href="?subtopic=shopadmin">Voltar</a>';
             }
             break; //salva a oferta no banco de dados
             
          case 'new':
             $main_content .= '<p><a href="?subtopic=shopadmin">Shop admin</a> | <a href="?subtopic=shopadmin&action=new">Novo</a> | <a href="?subtopic=shopadmin&action=list">Listar</a> | <a href="?subtopic=shopadmin&action=points">Adicionar pontos</a></p>';
             $main_content .= <<<EOD
                <h1 class="admshop"><strong>Cadastrar nova oferta</strong></h1>
                <form method="post" action="?subtopic=shopadmin&action=shop_save">
                   <p class="border"><strong>Nome / Descrição da oferta</strong></p>
                   <p><label class="admshop">Oferta: </label><input type="text" name="offer_name" size="50" maxlength="100" /></p>
                   <p><label class="admshop">Descrição: </label><input type="text" name="offer_description" size="50" maxlength="1000" /></p>
                   <p><label class="admshop">Qtde. pontos: </label><input type="text" name="points" size="5" maxlength="9" /></p>
                   
                   <p class="border"><strong>Tipo da oferta</strong></p>
                   <p><label class="admshop">Tipo: </label><select name="offer_type"><option value="item" selected="selected">Item</option><option value="mount">Mounts</option><option value="addon">Addons</option></select></p>
                   
                   <p class="border"><strong>Configuração de item normal, armor, shield, legs, etc</strong></p>
                   <p><label class="admshop">ID Item 1: </label><input type="text" name="itemid1" size="10" /></p>
                   <p><label class="admshop">Qtde. Item 1: </label><input type="text" name="count1" size="10" /></p>
                   
                   <p class="border"><strong>Configuração de item mounts, BP com Runas, BP com Small Stones, etc</strong></p>
                   <p><label class="admshop">ID Item 2: </label><input type="text" name="itemid2" size="10" /></p>
                   <p><label class="admshop">Qtde. Item 2: </label><input type="text" name="count2" size="10" /></p>
                   
                   <p class="border"><br /></p>
                   <input type="submit" value="Salvar" class="bt" />
                </form>
                <div class="clear"></div>
    EOD;
             break; //form de cadastro para nova oferta
          
          default: //Default pois, será por padrão!
             $main_content .= <<<EOD
                <h1 class="admshop"><strong>Bem vindo ao Administrador do Shop!</strong></h1>
                <hr />
                <center>
                   <button type="button" class="bt2" onclick="location.href='?subtopic=shopadmin&action=new'">Novo</button>
                   <button type="button" class="bt2" onclick="location.href='?subtopic=shopadmin&action=list'">Listar</button>
                   <button type="button" class="bt2" onclick="location.href='?subtopic=shopadmin&action=points'">Adicionar Points</button>
                </center>
    EOD;
    #/\ Deixe assim !!!
             break;
       }
       //Fim do sistema
       
    }
    else
    {
       $main_content .= 'Sorry, you have not the rights to access this page.';
    }

    /******************************************************************
    * SYSTEMA DE ADMINISTRAÇÃO ONLINE DO WEBSHOP GESIOR 2012 BY DEZON *
    *    TODOS OS DIREITOS, POR FAVOR, NÃO REMOVER ESSES CRÉDITOS    *
    *      FEITO EXCLUSIVAMENTE PARA O SITE [Tienes que estar registrado y conectado para ver este vínculo]       *
    ******************************************************************/



    Añadir Addons al Shop YNU5B25
    3 participantes
    https://www.tibiaface.com

    6default Re: Añadir Addons al Shop Sáb Ene 22, 2022 12:27 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    como tambien shopsystem.php

    Código:

    <?php
    if(!defined('INITIALIZED'))
    exit;


    if($config['site']['shop_system'])
    {
    if($logged)
    {
    $user_premium_points = $account_logged->getCustomField('premium_points');
    }
    else
    {
    $user_premium_points = 'Login first';
    }
    function getItemByID($id)
    {
    $id = (int) $id;
    $SQL = $GLOBALS['SQL'];
    $data = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shop_offer').' WHERE '.$SQL->fieldName('id').' = '.$SQL->quote($id).';')->fetch();
    if($data['offer_type'] == 'item')
    {
    $offer['id'] = $data['id'];
    $offer['type'] = $data['offer_type'];
    $offer['item_id'] = $data['itemid1'];
    $offer['item_count'] = $data['count1'];
    $offer['points'] = $data['points'];
    $offer['description'] = $data['offer_description'];
    $offer['name'] = $data['offer_name'];
    }
    elseif($data['offer_type'] == 'mount')
    {
    $offer['id'] = $data['id'];
    $offer['type'] = $data['offer_type'];
    $offer['item_id'] = $data['itemid1'];
    $offer['item_count'] = $data['count1'];
    $offer['points'] = $data['points'];
    $offer['description'] = $data['offer_description'];
    $offer['name'] = $data['offer_name'];
    }
    elseif($data['offer_type'] == 'addon')
    {
    $offer['id'] = $data['id'];
    $offer['type'] = $data['offer_type'];
    $offer['item_id'] = $data['itemid1'];
    $offer['item_count'] = $data['count1'];
    $offer['points'] = $data['points'];
    $offer['description'] = $data['offer_description'];
    $offer['name'] = $data['offer_name'];
    }
    elseif($data['offer_type'] == 'premmium')
    {
    $offer['id'] = $data['id'];
    $offer['type'] = $data['offer_type'];
    $offer['item_id'] = $data['itemid1'];
    $offer['item_count'] = $data['count1'];
    $offer['points'] = $data['points'];
    $offer['description'] = $data['offer_description'];
    $offer['name'] = $data['offer_name'];
    }
    return $offer;
    }


    function getOfferArray()
    {
    $offer_list = $GLOBALS['SQL']->query('SELECT * FROM '.$GLOBALS['SQL']->tableName('z_shop_offer').';');
    $i_item = 0;
    $i_mount = 0;
    $i_addon = 0;
    $i_container = 0;
    while($data = $offer_list->fetch())
    {
    if($data['offer_type'] == 'item')
    {
    $offer_array['item'][$i_item]['id'] = $data['id'];
    $offer_array['item'][$i_item]['item_id'] = $data['itemid1'];
    $offer_array['item'][$i_item]['item_count'] = $data['count1'];
    $offer_array['item'][$i_item]['points'] = $data['points'];
    $offer_array['item'][$i_item]['description'] = $data['offer_description'];
    $offer_array['item'][$i_item]['name'] = $data['offer_name'];
    $i_item++;
    }
    elseif($data['offer_type'] == 'mount')
    {
    $offer_array['mount'][$i_mount]['id'] = $data['id'];
    $offer_array['mount'][$i_mount]['container_id'] = $data['itemid1'];
    $offer_array['mount'][$i_mount]['container_count'] = $data['count1'];
    $offer_array['mount'][$i_mount]['item_id'] = $data['itemid1'];
    $offer_array['mount'][$i_mount]['item_count'] = $data['count2'];
    $offer_array['mount'][$i_mount]['points'] = $data['points'];
    $offer_array['mount'][$i_mount]['description'] = $data['offer_description'];
    $offer_array['mount'][$i_mount]['name'] = $data['offer_name'];
    $i_mount++;
    }
    elseif($data['offer_type'] == 'addon')
    {
    $offer_array['addon'][$i_addon]['id'] = $data['id'];
    $offer_array['addon'][$i_addon]['container_id'] = $data['itemid1'];
    $offer_array['addon'][$i_addon]['container_count'] = $data['count1'];
    $offer_array['addon'][$i_addon]['item_id'] = $data['itemid1'];
    $offer_array['addon'][$i_addon]['item_count'] = $data['count2'];
    $offer_array['addon'][$i_addon]['points'] = $data['points'];
    $offer_array['addon'][$i_addon]['description'] = $data['offer_description'];
    $offer_array['addon'][$i_addon]['name'] = $data['offer_name'];
    $i_addon++;
    }
    elseif($data['offer_type'] == 'container')
    {
    $offer_array['container'][$i_container]['id'] = $data['id'];
    $offer_array['container'][$i_container]['container_id'] = $data['itemid1'];
    $offer_array['container'][$i_container]['container_count'] = $data['count1'];
    $offer_array['container'][$i_container]['item_id'] = $data['itemid2'];
    $offer_array['container'][$i_container]['item_count'] = $data['count2'];
    $offer_array['container'][$i_container]['points'] = $data['points'];
    $offer_array['container'][$i_container]['description'] = $data['offer_description'];
    $offer_array['container'][$i_container]['name'] = $data['offer_name'];
    $i_container++;
    }
    }
    return $offer_array;
    }
    if(($action == '') or ($action == 'item') or ($action == 'mount') or ($action == 'addon') or ($action == 'container'))
    {
    unset($_SESSION['viewed_confirmation_page']);
    $offer_list = getOfferArray();


    if(empty($action))
    {
    if(count($offer_list['item']) > 0)
    $action = 'item';
    elseif(count($offer_list['mount']) > 0)
    $action = 'mount';
    elseif(count($offer_list['addon']) > 0)
    $action = 'addon';
    elseif(count($offer_list['container']) > 0)
    $action = 'container';
    }


    function selectcolor($value)
    {
    if($GLOBALS['action'] == $value)
    return '#505050; color: #FFFFFF';
    else
    return '#303030; color: #aaaaaa';
    }


    if((count($offer_list['item']) > 0) or (count($offer_list['mount']) > 0) or (count($offer_list['addon']) > 0) or (count($offer_list['container']) > 0))
    {
    $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=0 CELLPADDING=4><TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white colspan="2"><B>Choose a categorie: </B>';
    if(count($offer_list['container']) > 0) $main_content .= '<a href="?subtopic=shopsystem&action=container" style="padding: 5px 5px 7px 5px; margin: 5px 1px 0px 1px; background-color: '.selectcolor('container').';">Premium Account<img src="images/items/7.gif"/></a>';
    if(count($offer_list['item']) > 0) $main_content .= '<a href="?subtopic=shopsystem&action=item" style="padding: 5px 5px 7px 5px; margin: 5px 1px 0px 1px; background-color: '.selectcolor('item').';">Items<img src="images/items/2160.gif"/></a>';
    if(count($offer_list['mount']) > 0) $main_content .= '<a href="?subtopic=shopsystem&action=mount" style="padding: 5px 5px 7px 5px; margin: 5px 1px 0px 1px; background-color: '.selectcolor('mount').';">Mounts<img src="images/mount.gif"/></a>';
    if(count($offer_list['addon']) > 0) $main_content .= '<a href="?subtopic=shopsystem&action=addon" style="padding: 5px 5px 7px 5px; margin: 5px 1px 0px 1px; background-color: '.selectcolor('addon').';">Addons<img src="images/addon.gif"/></a>';
    $main_content .= '</TD></TR></TD></TR></table><table BORDER=0 CELLPaDDING="4" CELLSPaCING="1" style="width:100%;font-weight:bold;text-align:center;"><tr style="background:#505050;"><td colspan="3" style="height:px;"></td></tr></table>';
    }


    //show list of items offers
    if((count($offer_list['item']) > 0) and ($action == 'item'))
    {
    $main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%"><tr bgcolor="'.$config['site']['vdarkborder'].'"><td width="8%" align="center" class="white"><b>Points</b></td><td width="9%" align="center" class="white"><b>Picture</b></td><td width="350" align="left" class="white"><b>Description</b></td><td width="250" align="center" class="white"><b>Select product</b></td></tr>';
    foreach($offer_list['item'] as $item)
    {
    if(!is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;
    $main_content .= '<tr bgcolor="'.$bgcolor.'"><td align="center"><b>'.$item['points'].'</b></td><td align="center"><img src="' . $config['site']['item_images_url'] . $item['item_id'] . $config['site']['item_images_extension'] . '"></td><td><b>'.htmlspecialchars($item['name']).'</b> ('.$item['points'].' points)<br />'.htmlspecialchars($item['description']).'</td><td align="center">';
    if(!$logged)
    {
    $main_content .= '<b>Login to buy</b>';
    }
    else
    {
    $main_content .= '<form action="?subtopic=shopsystem&action=select_player" method="POST" name="itemform_'.$item['id'].'"><input type="hidden" name="buy_id" value="'.$item['id'].'"><div class="navibutton"><a href="" onClick="itemform_'.$item['id'].'.submit();return false;">BUY</a></div></form>';
    }
    $main_content .= '</td></tr>';
    }
    $main_content .= '</table>';
    }
    //show list of mount offers
    if((count($offer_list['mount']) > 0) and ($action == 'mount'))
    {
    $main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%"><tr bgcolor="'.$config['site']['vdarkborder'].'"><td width="8%" align="center" class="white"><b>Points</b></td><td width="9%" align="center" class="white"><b>Picture</b></td><td width="350" align="left" class="white"><b>Description</b></td><td width="250" align="center" class="white"><b>Select product</b></td></tr>';
    foreach($offer_list['mount'] as $mount)
    {
    if(!is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;
    $main_content .= '<tr bgcolor="'.$bgcolor.'"><td align="center"><b>'.$mount['points'].'</b></td><td align="center"><img src="' . $config['site']['mounts_images_url'] . $mount['item_id'] . $config['site']['item_images_extension'] . '"></td><td><b>'.htmlspecialchars($mount['name']).'</b> ('.$mount['points'].' points)<br />'.htmlspecialchars($mount['description']).'</td><td align="center">';
    if(!$logged)
    {
    $main_content .= '<b>Login to buy</b>';
    }
    else
    {
    $main_content .= '<form action="?subtopic=shopsystem&action=select_player" method="POST" name="itemform_'.$mount['id'].'"><input type="hidden" name="buy_id" value="'.$mount['id'].'"><div class="navibutton"><a href="" onClick="itemform_'.$mount['id'].'.submit();return false;">BUY</a></div></form>';
    }
    $main_content .= '</td></tr>';
    }
    $main_content .= '</table>';
    }
    //show list of addon offers
    if((count($offer_list['addon']) > 0) and ($action == 'addon'))
    {
    $main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%"><tr bgcolor="'.$config['site']['vdarkborder'].'"><td width="8%" align="center" class="white"><b>Points</b></td><td width="9%" align="center" class="white"><b>Picture</b></td><td width="350" align="left" class="white"><b>Description</b></td><td width="250" align="center" class="white"><b>Select product</b></td></tr>';
    foreach($offer_list['addon'] as $addon)
    {
    if(!is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;
    $main_content .= '<tr bgcolor="'.$bgcolor.'"><td align="center"><b>'.$addon['points'].'</b></td><td align="center"><img src="' . $config['site']['addons_images_url'] . $addon['item_id'] . $config['site']['item_images_extension'] . '"></td><td><b>'.htmlspecialchars($addon['name']).'</b> ('.$addon['points'].' points)<br />'.htmlspecialchars($addon['description']).'</td><td align="center">';
    if(!$logged)
    {
    $main_content .= '<b>Login to buy</b>';
    }
    else
    {
    $main_content .= '<form action="?subtopic=shopsystem&action=select_player" method="POST" name="itemform_'.$addon['id'].'"><input type="hidden" name="buy_id" value="'.$addon['id'].'"><div class="navibutton"><a href="" onClick="itemform_'.$addon['id'].'.submit();return false;">BUY</a></div></form>';
    }
    $main_content .= '</td></tr>';
    }
    $main_content .= '</table>';
    }
    //show list of containers offers
    if((count($offer_list['container']) > 0) and ($action == 'container'))
    {
    if(!is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;
    $main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%"><tr bgcolor="'.$config['site']['vdarkborder'].'"><td width="8%" align="center" class="white"><b>Points</b></td><td width="9%" align="center" class="white"><b>Picture</b></td><td width="350" align="left" class="white"><b>Description</b></td><td width="250" align="center" class="white"><b>Select product</b></td></tr>';
    foreach($offer_list['container'] as $container)
    {
    $main_content .= '<tr bgcolor="'.$bgcolor.'"><td align="center"><b>'.$container['points'].'</b></td><td align="center"><img src="' . $config['site']['item_images_url'] . $container['item_id'] . $config['site']['item_images_extension'] . '"></td><td><b>'.htmlspecialchars($container['name']).'</b> ('.$container['points'].' points)<br />'.htmlspecialchars($container['description']).'</td><td align="center">';
    if(!$logged)
    {
    $main_content .= '<b>Login to buy</b>';
    }
    else
    {
    $main_content .= '<form action="?subtopic=shopsystem&action=select_player" method="POST" name="contform_'.$container['id'].'"><input type="hidden" name="buy_id" value="'.$container['id'].'"><div class="navibutton"><a href="" onClick="contform_'.$container['id'].'.submit();return false;">BUY</a></div></form>';
    }
    $main_content .= '</td></tr>';
    }
    $main_content .= '</table>';
    }
    //Finish container
    if((count($offer_list['item']) > 0) or (count($offer_list['mount']) > 0) or (count($offer_list['addon']) > 0) or (count($offer_list['container']) > 0))
    {
    $main_content .= '<table BORDER=0 CELLPaDDING="4" CELLSPaCING="1" style="width:100%;font-weight:bold;text-align:center;">
    <tr style="background:#505050;">
    <td colspan="3" style="height:px;"></td>
    </tr>
    </table>';
    }
    }
    if($action == 'select_player')
    {
    unset($_SESSION['viewed_confirmation_page']);
    if(!$logged) {
    $errormessage .= 'Please login first.';
    }
    else
    {
    $buy_id = (int) $_REQUEST['buy_id'];
    if(empty($buy_id))
    {
    $errormessage .= 'Please <a href="?subtopic=shopsystem">select item</a> first.';
    }
    else
    {
    $buy_offer = getItemByID($buy_id);
    if(isset($buy_offer['id'])) //item exist in database
    {
    if($user_premium_points >= $buy_offer['points'])
    {
    $main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%">
    <tr bgcolor="'.$config['site']['vdarkborder'].'"><td colspan="2" class="white"><b>Selected Offer</b></td></tr>
    <tr bgcolor="'.$config['site']['lightborder'].'"><td width="100"><b>Name:</b></td><td width="550">'.htmlspecialchars($buy_offer['name']).'</td></tr>
    <tr bgcolor="'.$config['site']['darkborder'].'"><td width="100"><b>Description:</b></td><td width="550">'.htmlspecialchars($buy_offer['description']).'</td></tr>
    </table><br />
    <form action="?subtopic=shopsystem&action=confirm_transaction" method="POST"><input type="hidden" name="buy_id" value="'.$buy_id.'">
    <table border="0" cellpadding="4" cellspacing="1" width="100%">
    <tr bgcolor="'.$config['site']['vdarkborder'].'"><td colspan="2" class="white"><b>Give item to player from your account</b></td></tr>
    <tr bgcolor="'.$config['site']['lightborder'].'"><td width="110"><b>Name:</b></td><td width="550"><select name="buy_name">';
    $players_from_logged_acc = $account_logged->getPlayersList();
    if(count($players_from_logged_acc) > 0)
    {
    foreach($players_from_logged_acc as $player)
    {
    $main_content .= '<option>'.htmlspecialchars($player->getName()).'</option>';
    }
    }
    else
    {
    $main_content .= 'You don\'t have any character on your account.';
    }
    $main_content .= '</select>&nbsp;<input type="submit" value="Give"></td></tr>
    </table>
    </form><br /><form action="?subtopic=shopsystem&action=confirm_transaction" method="POST"><input type="hidden" name="buy_id" value="'.$buy_id.'">
    <table border="0" cellpadding="4" cellspacing="1" width="100%">
    <tr bgcolor="'.$config['site']['vdarkborder'].'"><td colspan="2" class="white"><b>Give item to other player</b></td></tr>
    <tr bgcolor="'.$config['site']['lightborder'].'"><td width="110"><b>To player:</b></td><td width="550"><input type="text" name="buy_name"> - name of player</td></tr>
    <tr bgcolor="'.$config['site']['darkborder'].'"><td width="110"><b>From:</b></td><td width="550"><input type="text" name="buy_from">&nbsp;<input type="submit" value="Give"> - your nick, \'empty\' = Anonymous</td></tr>
    </table><br />
    </form>';


    }
    else
    {
    $errormessage .= 'For this item you need <b>'.$buy_offer['points'].'</b> points. You have only <b>'.$user_premium_points.'</b> premium points. Please <a href="?subtopic=shopsystem">select other item</a> or buy premium points.';
    }
    }
    else
    {
    $errormessage .= 'Offer with ID <b>'.$buy_id.'</b> doesn\'t exist. Please <a href="?subtopic=shopsystem">select item</a> again.';
    }
    }
    }
    if(!empty($errormessage))
    {
    $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4>
    <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Informations</B></TD></TR>
    <TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b>'.$errormessage.'</b></TD></TR>
    </table>';
    }
    }
    elseif($action == 'confirm_transaction')
    {
    if(!$logged)
    {
    $errormessage .= 'Please login first.';
    }
    else
    {
    $buy_id = (int) $_POST['buy_id'];
    $buy_name = trim($_POST['buy_name']);
    $buy_from = trim($_POST['buy_from']);
    if(empty($buy_from))
    {
    $buy_from = 'Anonymous';
    }
    if(empty($buy_id))
    {
    $errormessage .= 'Please <a href="?subtopic=shopsystem">select item</a> first.';
    }
    else
    {
    if(!check_name($buy_from))
    {
    $errormessage .= 'Invalid nick ("from player") format. Please <a href="?subtopic=shopsystem&action=select_player&buy_id='.$buy_id.'">select other name</a> or contact with administrator.';
    }
    else
    {
    $buy_offer = getItemByID($buy_id);
    if(isset($buy_offer['id'])) //item exist in database
    {
    if($user_premium_points >= $buy_offer['points'])
    {
    if(check_name($buy_name))
    {
    $buy_player = new Player();
    $buy_player->find($buy_name);
    if($buy_player->isLoaded())
    {
    $buy_player_account = $buy_player->getAccount();
    if($_SESSION['viewed_confirmation_page'] == 'yes' && $_POST['buy_confirmed'] == 'yes')
    {
    if($buy_offer['type'] == 'item')
    {
    $sql = 'INSERT INTO '.$SQL->tableName('z_ots_comunication').' ('.$SQL->fieldName('id').','.$SQL->fieldName('name').','.$SQL->fieldName('type').','.$SQL->fieldName('action').','.$SQL->fieldName('param1').','.$SQL->fieldName('param2').','.$SQL->fieldName('param3').','.$SQL->fieldName('param4').','.$SQL->fieldName('param5').','.$SQL->fieldName('param6').','.$SQL->fieldName('param7').','.$SQL->fieldName('delete_it').') VALUES (NULL, '.$SQL->quote($buy_player->getName()).', '.$SQL->quote('login').', '.$SQL->quote('give_item').', '.$SQL->quote($buy_offer['item_id']).', '.$SQL->quote($buy_offer['item_count']).', '.$SQL->quote('').', '.$SQL->quote('').', '.$SQL->quote('item').', '.$SQL->quote($buy_offer['name']).', '.$SQL->quote($buy_offer['id']).', '.$SQL->quote(1).');';
    $SQL->query($sql);
    $save_transaction = 'INSERT INTO '.$SQL->tableName('z_shop_history_item').' ('.$SQL->fieldName('id').','.$SQL->fieldName('to_name').','.$SQL->fieldName('to_account').','.$SQL->fieldName('from_nick').','.$SQL->fieldName('from_account').','.$SQL->fieldName('price').','.$SQL->fieldName('offer_id').','.$SQL->fieldName('trans_state').','.$SQL->fieldName('trans_start').','.$SQL->fieldName('trans_real').') VALUES ('.$SQL->lastInsertId().', '.$SQL->quote($buy_player->getName()).', '.$SQL->quote($buy_player_account->getId()).', '.$SQL->quote($buy_from).',  '.$SQL->quote($account_logged->getId()).', '.$SQL->quote($buy_offer['points']).', '.$SQL->quote($buy_offer['name']).', '.$SQL->quote('wait').', '.$SQL->quote(time()).', '.$SQL->quote(0).');';
    $SQL->query($save_transaction);
    $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']);
    $user_premium_points = $user_premium_points - $buy_offer['points'];
    $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4>
    <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Item added!</B></TD></TR>
    <TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b>'.htmlspecialchars($buy_offer['name']).'</b> added to player <b>'.htmlspecialchars($buy_player->getName()).'</b> items (he will get this items after relog) for <b>'.$buy_offer['points'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br /><a href="?subtopic=shopsystem">GO TO MAIN SHOP SITE</a></TD></TR>
    </table>';
    }


                                            elseif($buy_offer['type'] == 'mount')
                                            {
    $account_id = $buy_player->getCustomField('id');
    $on = $SQL->query('SELECT * FROM '.$SQL->tableName('players_online').' WHERE '.$SQL->fieldName('player_id').' = '.$account_id.';')->fetch();


    if ($on == false)
    {
    $SQL->query('INSERT INTO `player_storage` (`player_id`, `key`, `value`) VALUES ('.$account_id.', '.$SQL->quote($buy_offer['item_id']).', 1);');


    $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']);
    $user_premium_points = $user_premium_points - $buy_offer['points'];


    $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4>
    <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Mount was added!</B></TD></TR>
    <TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b>'.htmlspecialchars($buy_offer['name']).'</b> added to player <b>'.htmlspecialchars($buy_player->getName()).'</b> mounts (he will get this mounts after relog) for <b>'.$buy_offer['points'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br /><a href="?subtopic=shopsystem">GO TO MAIN SHOP SITE</a></TD></TR>
    </table>';
    }


    else
    {


    $errormessage .= '<b>'.htmlspecialchars($buy_player->getName()).' has to be offline!</b>';




    }
                                               
                                            }     


        elseif($buy_offer['type'] == 'addon')
                                            {
    $account_id = $buy_player->getCustomField('id');
    $on = $SQL->query('SELECT * FROM '.$SQL->tableName('players_online').' WHERE '.$SQL->fieldName('player_id').' = '.$account_id.';')->fetch();


    if ($on == false)
    {
    $SQL->query('INSERT INTO `player_storage` (`player_id`, `key`, `value`) VALUES ('.$account_id.', '.$SQL->quote($buy_offer['item_id']).', 1);');


    $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']);
    $user_premium_points = $user_premium_points - $buy_offer['points'];


    $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4>
    <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Addon was added!</B></TD></TR>
    <TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b>'.htmlspecialchars($buy_offer['name']).'</b> added to player <b>'.htmlspecialchars($buy_player->getName()).'</b> addons (he will get this addons after relog) for <b>'.$buy_offer['points'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br /><a href="?subtopic=shopsystem">GO TO MAIN SHOP SITE</a></TD></TR>
    </table>';
    }
    else
    {


    $errormessage .= '<b>'.htmlspecialchars($buy_player->getName()).' has to be offline!</b>';


    }


                                            }  elseif($buy_offer['type'] == 'container')
    {
    $sql = 'INSERT INTO '.$SQL->tableName('z_ots_comunication').' ('.$SQL->fieldName('id').','.$SQL->fieldName('name').','.$SQL->fieldName('type').','.$SQL->fieldName('action').','.$SQL->fieldName('param1').','.$SQL->fieldName('param2').','.$SQL->fieldName('param3').','.$SQL->fieldName('param4').','.$SQL->fieldName('param5').','.$SQL->fieldName('param6').','.$SQL->fieldName('param7').','.$SQL->fieldName('delete_it').') VALUES (NULL, '.$SQL->quote($buy_player->getName()).', '.$SQL->quote('login').', '.$SQL->quote('give_item').', '.$SQL->quote($buy_offer['item_id']).', '.$SQL->quote($buy_offer['item_count']).', '.$SQL->quote($buy_offer['container_id']).', '.$SQL->quote($buy_offer['container_count']).', '.$SQL->quote('container').', '.$SQL->quote($buy_offer['name']).', '.$SQL->quote($buy_offer['id']).', '.$SQL->quote(1).');';
    $SQL->query($sql);
    $save_transaction = 'INSERT INTO '.$SQL->tableName('z_shop_history_item').' ('.$SQL->fieldName('id').','.$SQL->fieldName('to_name').','.$SQL->fieldName('to_account').','.$SQL->fieldName('from_nick').','.$SQL->fieldName('from_account').','.$SQL->fieldName('price').','.$SQL->fieldName('offer_id').','.$SQL->fieldName('trans_state').','.$SQL->fieldName('trans_start').','.$SQL->fieldName('trans_real').') VALUES ('.$SQL->lastInsertId().', '.$SQL->quote($buy_player->getName()).', '.$SQL->quote($buy_player_account->getId()).', '.$SQL->quote($buy_from).',  '.$SQL->quote($account_logged->getId()).', '.$SQL->quote($buy_offer['points']).', '.$SQL->quote($buy_offer['name']).', '.$SQL->quote('wait').', '.$SQL->quote(time()).', '.$SQL->quote(0).');';
    $SQL->query($save_transaction);
    $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']);
    $user_premium_points = $user_premium_points - $buy_offer['points'];
    $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4>
    <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Container of items added!</B></TD></TR>
    <TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b>'.htmlspecialchars($buy_offer['name']).'</b> added to player <b>'.htmlspecialchars($buy_player->getName()).'</b> items (he will get this container with items after relog) for <b>'.$buy_offer['points'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br /><a href="?subtopic=shopsystem">GO TO MAIN SHOP SITE</a></TD></TR>
    </table>';
    }
    }
    else
    {
    $set_session = TRUE;
    $_SESSION['viewed_confirmation_page'] = 'yes';
    $main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%">
    <tr bgcolor="'.$config['site']['vdarkborder'].'"><td colspan="3" class="white"><b>Confirm Transaction</b></td></tr>
    <tr bgcolor="'.$config['site']['lightborder'].'"><td width="100"><b>Name:</b></td><td width="550" colspan="2">'. htmlspecialchars($buy_offer['name']).'</td></tr>
    <tr bgcolor="'.$config['site']['darkborder'].'"><td width="100"><b>Description:</b></td><td width="550" colspan="2">'. htmlspecialchars($buy_offer['description']).'</td></tr>
    <tr bgcolor="'.$config['site']['lightborder'].'"><td width="100"><b>Cost:</b></td><td width="550" colspan="2"><b>'. htmlspecialchars($buy_offer['points']).' premium points</b> from your account</td></tr>
    <tr bgcolor="'.$config['site']['darkborder'].'"><td width="100"><b>For Player:</b></td><td width="550" colspan="2"><font color="red">'.htmlspecialchars($buy_player->getName()).'</font></td></tr>
    <tr bgcolor="'.$config['site']['lightborder'].'"><td width="100"><b>From:</b></td><td width="550" colspan="2"><font color="red">'.htmlspecialchars($buy_from).'</font></td></tr>
    <tr bgcolor="'.$config['site']['darkborder'].'"><td colspan="3"></td></tr>
    <tr bgcolor="'.$config['site']['darkborder'].'"><td width="100"><b>Transaction?</b></td><td width="275" align="left">
    <form action="?subtopic=shopsystem&action=confirm_transaction" method="POST"><input type="hidden" name="buy_confirmed" value="yes"><input type="hidden" name="buy_id" value="'.$buy_id.'"><input type="hidden" name="buy_from" value="'.htmlspecialchars($buy_from).'"><input type="hidden" name="buy_name" value="'.htmlspecialchars($buy_name).'"><input type="submit" value="Accept"></form></td>
    <td align="right"><form action="?subtopic=shopsystem" method="POST"><input type="submit" value="Cancel"></form></td></tr>
    <tr bgcolor="'.$config['site']['darkborder'].'"><td colspan="3"></td></tr>
    </table>
    ';
    }
    }
    else
    {
    $errormessage .= 'Player with name <b>'.htmlspecialchars($buy_name).'</b> doesn\'t exist. Please <a href="?subtopic=shopsystem&action=select_player&buy_id='.$buy_id.'">select other name</a>.';
    }
    }
    else
    {
    $errormessage .= 'Invalid name format. Please <a href="?subtopic=shopsystem&action=select_player&buy_id='.$buy_id.'">select other name</a> or contact with administrator.';
    }
    }
    else
    {
    $errormessage .= 'For this item you need <b>'.$buy_offer['points'].'</b> points. You have only <b>'.$user_premium_points.'</b> premium points. Please <a href="?subtopic=shopsystem">select other item</a> or buy premium points.';
    }
    }
    else
    {
    $errormessage .= 'Offer with ID <b>'.$buy_id.'</b> doesn\'t exist. Please <a href="?subtopic=shopsystem">select item</a> again.';
    }
    }
    }
    }
    if(!empty($errormessage))
    {
    $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4>
    <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Informations</B></TD></TR>
    <TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b>'.$errormessage.'</b></TD></TR>
    </table>';
    }
    if(!$set_session)
    {
    unset($_SESSION['viewed_confirmation_page']);
    }
    }
    elseif($action == 'show_history')
    {
    if(!$logged)
    {
    $errormessage .= 'Please login first.';
    }
    else
    {
    $items_history_received = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shop_history_item').' WHERE '.$SQL->fieldName('to_account').' = '.$SQL->quote($account_logged->getId()).' OR '.$SQL->fieldName('from_account').' = '.$SQL->quote($account_logged->getId()).';');
    if(is_object($items_history_received))
    {
    foreach($items_history_received as $item_received)
    {
    if($account_logged->getId() == $item_received['to_account'])
    $char_color = 'green';
    else
    $char_color = 'red';
    $items_received_text .= '<tr bgcolor="'.$config['site']['lightborder'].'"><td><font color="'.$char_color.'">'.htmlspecialchars($item_received['to_name']).'</font></td><td>';
    if($account_logged->getId() == $item_received['from_account'])
    $items_received_text .= '<i>Your account</i>';
    else
    $items_received_text .= htmlspecialchars($item_received['from_nick']);
    $items_received_text .= '</td><td>'.htmlspecialchars($item_received['offer_id']).'</td><td>'.date("j F Y, H:i:s", $item_received['trans_start']).'</td>';
    if($item_received['trans_real'] > 0)
    $items_received_text .= '<td>'.date("j F Y, H:i:s", $item_received['trans_real']).'</td>';
    else
    $items_received_text .= '<td><b><font color="red">Not realized yet.</font></b></td>';
    $items_received_text .= '</tr>';
    }
    }
    $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4>
    <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'"></TD></TR>
    <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><center><B>Transactions History</B></center></TD></TR>
    <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'"></TD></TR>
    </table><br>';


    if(!empty($items_received_text))
    {
    $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4>
    <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white colspan="5"><B>Item Transactions</B></TD></TR>
    <tr bgcolor="'.$config['site']['darkborder'].'"><td><b>To:</b></td><td><b>From:</b></td><td><b>Offer name</b></td><td><b>Bought on page</b></td><td><b>Received on OTS</b></td></tr>
    '.$items_received_text.'
    </table><br />';
    }
    if(empty($items_received_text))
    $errormessage .= 'You did not buy/receive any item.';
    }
    if(!empty($errormessage))
    {
    $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4>
    <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Informations</B></TD></TR>
    <TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b>'.$errormessage.'</b></TD></TR>
    </table>';
    }
    }
    $main_content .= '<br><TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4>
    <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Premium Points</B></TD></TR>
    <TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b><font color="green">You have premium points: </font></b>'.$user_premium_points.'</TD></TR>
    </table>';
    }
    else
    $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4>
    <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=center CLASS=white ><B>Shop Information</B></TD></TR>
    <TR><TD BGCOLOR="'.$config['site']['darkborder'].'"><center>Shop is currently closed. [to admin: edit it in \'config/config.php\']</TD></TR>
    </table>';

    Ahora, dejo un archivo .rar adjunto, extraigo el contenido (carpeta de complementos y montajes) a la carpeta de imágenes de su sitio.

    Cuando vaya a agregar alguna montura o complemento a su tienda, hágalo así:

    nota:

    Nota: Muy importante, al agregar la oferta de montaje o complemento en la tienda, en lugar de poner el ID de la misma, agregue el número de almacenamiento, que se encuentra en el archivo addonmount.lua en los scripts de criaturas de su servidor. Elige lo que quieras.

    Obs.2: Las imágenes de los complementos y monturas se agregan automáticamente en la tienda.


    link: [Tienes que estar registrado y conectado para ver este vínculo]



    Añadir Addons al Shop YNU5B25
    3 participantes
    https://www.tibiaface.com

    7default Re: Añadir Addons al Shop Sáb Ene 22, 2022 4:37 pm

    ioke

    ioke
    Miembro
    Miembro
    no me deja entrar al player me da el.error en la.consola

    Código:
    [21:32:54.024] [Error - CreatureScript Interface]
    [21:32:54.024] data/creaturescripts/scripts/addonmount.lua:onLogin
    [21:32:54.024] Description:
    [21:32:54.040] data/creaturescripts/scripts/addonmount.lua:5: attempt to call global 'Player' (a nil value)
    [21:32:54.040] stack traceback:
    [21:32:54.056]  data/creaturescripts/scripts/addonmount.lua:5: in function <data/creaturescripts/scripts/addonmount.lua:2>



    vale el creature es pars tfs 1.x creo yo soy tfs 0.4

    3 participantes
    http://baiakciteron.sytes.net

    Contenido patrocinado


    3 participantes

    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).