Ir para conteúdo

Sistema DE Shop Para Site


Marshmello

Posts Recomendados

Ola Pessoa Vim Aki Para Passar Para Vcs Siistema De shop Para Seu OTServ

 

Primeiro Vai Na Pasta Do Seu Server Vai Em Global Events e Crie Um Arquivo Chamado Shop Ficando Shop.lua e la ADD

Spoiler

function onThink(interval, lastExecution, thinkInterval)

    local result = db.getResult("SELECT * FROM shop_history WHERE `processed` = 0;")
    
        if(result:getID() ~= -1) then
            while(true) do
                cid = getCreatureByName(tostring(result:getDataString("player")))
                product = tonumber(result:getDataInt("product"))
                itemr = db.getResult("SELECT * FROM shop_offer WHERE `id` = "..product..";")
                    if isPlayer(cid) then
                        local id = tonumber(itemr:getDataInt("item"))
                        local tid = tonumber(result:getDataInt("id"))
                        local count = tonumber(itemr:getDataInt("count"))
                        local tipe = tonumber(itemr:getDataInt("type"))
                        local productn = tostring(itemr:getDataString("name"))
                            if isInArray({5,8},tipe) then
                                if getPlayerFreeCap(cid) >= getItemWeightById(id, count) then
                                    if isContainer(getPlayerSlotItem(cid, 3).uid) then
                                        received = doAddContainerItem(getPlayerSlotItem(cid, 3).uid, id,count)
                                        if received then
                                            doPlayerSendTextMessage(cid,19, "You have received >> "..productn.." << from our shop system")
                                            db.executeQuery("UPDATE `shop_history` SET `processed`='1' WHERE id = " .. tid .. ";")
                                        else
                                            doPlayerSendTextMessage(cid,19, "Sorry, you don't have enough space on container to receive >> "..productn.." <<")
                                        end
                                    else
                                        doPlayerSendTextMessage(cid,19, "Sorry, you don't have a container to receive >> "..productn.." <<")
                                    end
                                else
                                    doPlayerSendTextMessage(cid,19, "Sorry, you don't have enough capacity to receive >> "..productn.." << (You need: "..getItemWeightById(id, count).." Capacity)")
                                end
                            elseif isInArray({6,7},tipe) then
                                    if tipe == 6 then
                                        bcap = 8
                                        bid = 1987
                                    elseif tipe == 7 then
                                        bcap = 20
                                        bid = 1988
                                    end
                                    if isItemRune(id) then
                                        count = 1
                                    end
                                    if getPlayerFreeCap(cid) >= (getItemWeightById(1987, 1) + getItemWeightById(id,count * bcap)) then
                                        local bag = doCreateItemEx(bid, 1)
                                            for i = 1,bcap do
                                                doAddContainerItem(bag, id, count)
                                            end
                                        received = doPlayerAddItemEx(getPlayerSlotItem(cid, 3).uid, bag)
                                        if received == RETURNVALUE_NOERROR then
                                            doPlayerSendTextMessage(cid,19, "You have received >> "..productn.." << from our shop system")
                                            db.executeQuery("UPDATE `shop_history` SET `processed`='1' WHERE id = " .. tid .. ";")
                                        else
                                            doPlayerSendTextMessage(cid,19, "Sorry, you don't have enough space to receive >> "..productn.." <<")
                                        end
                                    else
                                        doPlayerSendTextMessage(cid,19, "Sorry, you don't have enough capacity to receive >> "..productn.." << (You need: "..getItemWeightById(id, count).." Capacity)")
                                    end
                            end
                    end
                itemr:free()
                if not(result:next()) then
                    break
                end
            end
            result:free()
        end
    return true
end

 

Depois Vai Em GlobalEvents.xml e add a tag

 

Spoiler

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

Pronto Seu Server Ja Ta Configurado Para o Shop Agr vamos Para o Site

 

Vai Na sua Pasta do Seu Site E coloque Essa Pasta la

 

Pasta Shop

 

Depois Vai Em htdocs/system/pages Crie um arquivo Chamado Shop.php e add

Spoiler

           <div class='message'>
            <div class='title'>Shop PokexMostyer</div>
            <div class='content'>
<?PHP
require("config.php");
$ots = POT::getInstance();
$ots->connect(POT::DB_MYSQL, connection());
$SQL = $ots->getDBHandle();
$ide = new IDE;
$light = '#151515';
$dark = '#070707';
if ($ide->isLogged() == true) {
include("shop/gifts.php");
}
else
echo '<div align="center"><br />Voce Precisa Estar Logado Para Ver Nosso Shop</div>';
?>
</div></div>

 

Agora Vamos Para Data Base Vai no Seu navegador e vai no Seu Phpmyadmin vai na sua DB Do Seu Server e add as Seguites Tabelas

 

Spoiler

CREATE TABLE IF NOT EXISTS `shop_offer` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `points` int(11) NOT NULL DEFAULT '0',
  `category` int(11) NOT NULL DEFAULT '1',
  `type` int(11) NOT NULL DEFAULT '1',
  `item` int(11) NOT NULL DEFAULT '0',
  `count` int(11) NOT NULL DEFAULT '0',
  `description` text NOT NULL,
  `name` varchar(256) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=16 ;

 

Spoiler

CREATE TABLE IF NOT EXISTS `shop_history` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `product` int(11) NOT NULL,
  `session` varchar(256) NOT NULL,
  `player` varchar(256) NOT NULL,
  `date` int(10) NOT NULL,
  `processed` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=31 ;

 

Spoiler

CREATE TABLE IF NOT EXISTS `shop_donation_history` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `method` varchar(256) NOT NULL,
  `receiver` varchar(256) NOT NULL,
  `buyer` varchar(256) NOT NULL,
  `account` varchar(256) NOT NULL,
  `points` int(11) NOT NULL,
  `date` int(10) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

 

PRONTO AGR E SO COLOCAR OS ITEM NO SHOP OFFSER DA SUA DB :D

shop.rar

shop.rar

Link para o comentário
Compartilhar em outros sites

  • 1 month later...

vc colocou os codigos na db tmbn ?

 

test esse functions

Spoiler

<?php

    class shop {
        function connect() {
            $ots = POT::getInstance();
            $ots->connect(POT::DB_MYSQL, connection());
        return $ots->getDBHandle();
        }
        
        function isInstalled() {
        require('config.php');
            $con = mysql_connect($config['database']['host'], $config['database']['login'], $config['database']['password']);
            mysql_select_db($config['database']['database'],$con);
            if(mysql_query("SELECT * FROM shop_offer,shop_history"))
                return true;
            else
                return false;
        }
        
        function points($account) {
            $SQL = $this->connect();
            $points = $SQL->query('SELECT premium_points FROM accounts WHERE name = "'.$account.'"')->fetch();
            return $points['premium_points'];
        }
        
        function getPlayerAccount($name) {
            $SQL = $this->connect();
            $player = $SQL->query('SELECT account_id FROM players WHERE name = "'.$name.'"')->fetch();
            return $SQL->query('SELECT * from accounts WHERE id = '.$player['account_id'].'');
        }
        
        function AddPremium($name,$days) {
            $SQL = $this->connect();
            $account = $this->getPlayerAccount($name)->fetch();
            return $SQL->query('UPDATE accounts SET premdays = (premdays + '.$days.') WHERE name = "'.$account['name'].'"');
        }
        
        function CharacterList($account) {
            $SQL = $this->connect();
            $id = $SQL->query('SELECT id FROM accounts WHERE name = "'.$account.'"')->fetch();
            return $SQL->query('SELECT * FROM players WHERE account_id = '.$id['id'].'');
        }
        
        function isOnline($name) {
            $SQL = $this->connect();
            $player = $SQL->query('SELECT online FROM players WHERE name = "'.$name.'"')->fetch();
            return $player['online'];
        }
        
        
        function isBanned($name) {
            $SQL = $this->connect();
            $ID = $this->getPlayerAccount($name)->fetch();
            return $SQL->query('SELECT * FROM bans WHERE value = '.$ID['id'].'');
        }
        
        function UnBan($name) {
            $SQL = $this->connect();
            $ID = $this->getPlayerAccount($name)->fetch();
            return $SQL->query('DELETE FROM bans WHERE value = '.$ID['id'].'');
        }
        
        function execute_file($file) {
            if (!file_exists($file)) {
            $this->last_error = "The file $file does not exist.";
            return false;
            }
            $str = file_get_contents($file);
            if (!$str) {
            $this->last_error = "Unable to read the contents of $file.";
            return false;
            }

            // split all the queries into an array
            $quote = '';
            $line = '';
            $sql = array();
            $ignoreNextChar = '';
            for ($i = 0; $i < strlen($str); $i++) {
            if ( !$ignoreNextChar ) {
            $char = substr($str, $i, 1);
            $line .= $char;
            if ($char == ';' && $quote == '') {
            $sql[] = $line;
            $line = '';
            } else if ( $char == '\\' ) {
            // Escape char; ignore the next char in the string
            $ignoreNextChar = TRUE;
            } else if ($char == '"' || $char == "'" || $char == '`') {
            if ( $quote == '' ) // Start of a new quoted string; ends with same quote char
            $quote = $char;
            else if ( $char == $quote ) // Current char matches quote char; quoted string ends
            $quote = '';
            }
            }
            else
            $ignoreNextChar = FALSE;
            }

            if ($quote != '') return false;

            foreach ($sql as $query) {
            if (!empty($query)) {
            $r = mysql_query($query);

            if (!$r) {
            $this->last_error = mysql_error();
            return false;
            }
            }
            }
            return true;

        } 
        
        function install() {
            $SQL = $this->connect();
            if ($this->isInstalled())
                return false;
            else
                return $this->execute_file("gifts/config/Shop.sql");
        }
    }
?>

 

Link para o comentário
Compartilhar em outros sites

  • 4 months later...

Poderia me ajudar? estou com esse problema (JÁ FIZ ESSE PROCEDIMENTO DE MUDAR A FUNCTIONS, MAS NÃO DEU RESULTADO)error.png

 

OBS: Encontrei o local do erro:

Spoiler

        function isInstalled() {
        require('config.php');
            $con = mysql_connect($config['database']['host'], $config['database']['login'], $config['database']['password']);
            mysql_select_db($config['database']['database'],$con);
            if(mysql_query("SELECT * FROM shop_offer,shop_history"))
                return true;
            else
                return false;

 

error.png.070c47dc9f1f3edadf4c56ed6ca65a37.png

Link para o comentário
Compartilhar em outros sites

16 minutos atrás, tavarb disse:

Poderia me ajudar? estou com esse problema (JÁ FIZ ESSE PROCEDIMENTO DE MUDAR A FUNCTIONS, MAS NÃO DEU RESULTADO)error.png

 

OBS: Encontrei o local do erro:

  Ocultar conteúdo

        function isInstalled() {

        require('config.php');

            $con = mysql_connect($config['database']['host'], $config['database']['login'], $config['database']['password']);

            mysql_select_db($config['database']['database'],$con);

            if(mysql_query("SELECT * FROM shop_offer,shop_history"))

                return true;

            else

                return false;

 

esse erro tmbn ta cmgh mais ja estou tentando resouver mais seu shop ja foi instalado

Link para o comentário
Compartilhar em outros sites

Agora, BrendoGraphics0 disse:

esse erro tmbn ta cmgh mais ja estou tentando resouver mais seu shop ja foi instalado

Sim sim, instalei tudo certinho, com paciência. Só preciso arrumar esse bugzinho. Obrigado!

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...