Ir para conteúdo
  • 0

[GESIOR] compra e venda de personagens por points


bfs102030

Pergunta

Ola galera estou aque pois preciso de uma ajuda e nao tenho mais onde recorrer.procurei em todos os lugares e nao achei. eu estou usando um sistema de compra e venda de personagem no meu gesior 0.3.8 onde os players colocao o char a venda no shop e tambem podem comprar outros personagens la mesmo. porem eu gostaria de ´pedir alguem que entenda bem ou alguem que possa ajudar.eu gostaria que tivesse a opcao do player desistir da venda.tipo.ele coloca o char a venda e podera retira-lo do shop dentro de 24 hrs.. somente isso pois o sistema funciona normalmente abaixo estao os scripts que estou usando e a tabela que executei no meu SQL.

ESSE E O BUY CHAR

<?PHP

if($logged) {

if ($action == '') {

$main_content .= '<center>Here is the list of the current characters that are in the shop!</center>';
$main_content .= '<BR>';
$main_content .= '<TABLE BORDER=1 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD CLASS=white width="64px"><CENTER><B>Name</B></CENTER></TD><TD CLASS=white width="64px"><CENTER><B>Vocation</B></CENTER></TD><TD CLASS=white width="64px"><CENTER><B>Level</B></CENTER></TD><TD CLASS=white width="64px"><CENTER><B>Price</B></CENTER></TD><TD CLASS=white width="64px"><CENTER><B>Buy it</B></CENTER></TD></TR>';
$getall = $SQL->query('SELECT `id`, `name`, `price`, `status` FROM `sellchar` ORDER BY `id`')or die(mysql_error());
foreach ($getall as $tt) {
$namer = $tt['name'];
$queryt = $SQL->query("SELECT `name`, `vocation`, `level` FROM `players` WHERE `name` = '$namer'");
foreach ($queryt as $ty) {
if ($ty['vocation'] == 1) {
$tu = 'Sorcerer';
} else if ($ty['vocation'] == 2) {
$tu = 'Druid';
} else if ($ty['vocation'] == 3) {
$tu = 'Paladin';
} else if ($ty['vocation'] == 4) {
$tu = 'Knight';
} else if ($ty['vocation'] == 5) {
$tu = 'Sorcerer';
} else if ($ty['vocation'] == 6) {
$tu = 'Druid';
} else if ($ty['vocation'] == 7) {
$tu = 'Paladin';
} else if ($ty['vocation'] == 8) {
$tu = 'Knight';
}
$ee = $tt['name'];
$ii = $tt['price'];
$main_content .= '<TR BGCOLOR='.$config['site']['darkborder'].'><TD CLASS=black width="64px"><CENTER><B><a href="index.php?subtopic=characters&name='.$tt['name'].'">'.$tt['name'].'</a></B></CENTER></TD><TD CLASS=black width="64px"><CENTER><B>'.$tu.'</B></CENTER></TD><TD CLASS=black width="64px"><CENTER><B>'.$ty['level'].'</B></CENTER></TD><TD CLASS=black width="64px"><CENTER><B>'.$tt['price'].'</B></CENTER></TD><TD CLASS=black width="64px"><CENTER><B>
<form action="?subtopic=buychar&action=buy" method="POST">
<input type="hidden" name="char" value="'
.$ee.'">
<input type="hidden" name="price" value="'
.$ii.'">
<input type="submit" name="submit" value="Buy it"></B></CENTER></TD></TR></form>'
;
}
}
$main_content .= '</TABLE>';

}

if ($action == 'buy') {

$name = $_POST['char'];
$price = $_POST['price'];
$ceh = $SQL->query("SELECT `name` FROM `sellchar` WHERE `name` = '$name'");

if ($ceh) {

if ($name == '') {

$main_content .= '<b><center>Select a character to buy first/b>';

} else {

$user_premium_points = $account_logged->getCustomField('premium_points');
$user_id = $account_logged->getCustomField('id');

if ($user_premium_points >= $price) {

$check = $SQL->query("SELECT * FROM `sellchar` WHERE `name` = '$name'") or die(mysql_error());
$check1 = $SQL->query("SELECT * FROM `players` WHERE `name` = '$name'") or die(mysql_error());
$check2 = $SQL->query("SELECT `oldid` FROM `sellchar` WHERE `name` = '$name'");
foreach ($check as $result) {
foreach($check1 as $res) {
foreach($check2 as $ress) {

$oid = $ress['oldid'];
$main_content .= '<center>You bought<b> '.$name.' ( '.$res['level'].' ) </b>for <b>'.$result['price'].' points.</b><br></center>';
$main_content .= '<br>';
$main_content .= '<center><b>The character is in your account, have fun!</b></center>';
$execute1 = $SQL->query("UPDATE `accounts` SET `premium_points` = `premium_points` - '$price' WHERE `id` = '$user_id'");
$execute2 = $SQL->query("UPDATE `players` SET `account_id` = '$user_id' WHERE `name` = '$name'");
$execute2 = $SQL->query("UPDATE `accounts` SET `premium_points` = `premium_points` + '$price' WHERE `id` = '$oid'");
$execute3 = $SQL->query("DELETE FROM `sellchar` WHERE `name` = '$name'");

}
}
}

} else {

$main_content .= '<center><b>You dont have enought premium points</b></center>';

}

}

} else {
$main_content .= '<center><b>Character cannot be buyed</b></center>';
}
}

} else {

$main_content .= '<center>Please log in first!</center>';
}
?>

ESSE E O SELL CHAR

<?PHP
if($logged) {
$main_content .= '<center><b>Here you can put your character on sale!</center></b><br>';
$main_content .= 'If you put your character on sale anyone can buy it, you will lose acces to that character and you wont be able to log in with that character until someone buys it, you can also delete your offer by talking to an admin!<br><b>when someone buys your character you will get the price in points!</b>';
$main_content .= '<br>';
$main_content .= '<TABLE BORDER=1 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD CLASS=white width="64px"><CENTER><B>Sell your characters</B></CENTER></TD></TR>';
$main_content .= '<TR BGCOLOR='.$config['site']['darkborder'].'><TD CLASS=black width="64px"><B></B>';

$players_from_logged_acc = $account_logged->getPlayersList();

$players_from_logged_acc->orderBy('name');
$main_content .= '<form action="" method="post"><select name="char">';
foreach($players_from_logged_acc as $player)
{
$main_content .= '<option>'.$player->getName().'</option>';
}

$main_content .= '</select>Select a character to sell<br>';
$main_content .= '<input type="text" name="price" maxlength="10" size="4" >Select the price of the character<br>';
$main_content .= '<input type="submit" name="submit" value="Sell character"></TD></TR>';
$main_content .= '</form></table>';

if (isset($_POST['submit'])) {

$char = stripslashes($_POST['char']);
$price = stripslashes($_POST['price']);

if ($char && $price) {

if(is_numeric(trim($_POST['price']))) {

$check2 = $SQL->query("SELECT * FROM `players` WHERE `name` = '$char'") or die(mysql_error());
foreach ($check2 as $re) {
$voc = $re['vocation'];
$oid = $re['account_id'];
}
$check1 = $SQL->query("UPDATE `players` SET `account_id` = 1 WHERE `name` = '$char'") or die(mysql_error());
$check3 = $SQL->query("INSERT INTO `sellchar` VALUES ('','$char','$voc','$price','1','$oid')");
$main_content .= '<b><center>You added your character correctly, thanks!</b></center>';
header("Location: index.php?subtopic=buychar");

} else {

$main_content .= '<b><center>Set a numeric price!!</b></center>';
}

} else {
$main_content .= '<b><center>Fill out all fields!</b></center>';
}

}
} else {
$main_content .= '<b><center>Please log in first!</b></center>';
}
?>

ISSO FOI ADD NO MEU INDEX

case "sellchar";
$topic = "Sell Char";
$subtopic = "sellchar";
include("sellchar.php");
break;

case "buychar";
$topic = "Buy Char";
$subtopic = "buychar";
include("buychar.php");
break;

ESSA E A TABELA QUE EXECUTEI NO MEU SQL

CREATE TABLE IF NOT EXISTS `sellchar` (

`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(40) NOT NULL,
`vocation` int(11) NOT NULL,
`price` int(11) NOT NULL,
`status` varchar(40) NOT NULL,
`oldid` varchar(40) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

AJUDEM PLIXX

Editado por bfs102030
Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Na tabela do MYSQL você adiciona o campo "cadastro":

CREATE TABLE IF NOT EXISTS `sellchar` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(40) NOT NULL,
`vocation` int(11) NOT NULL,
`price` int(11) NOT NULL,
`status` varchar(40) NOT NULL,
`oldid` varchar(40) NOT NULL,
`cadastro` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

Ai toda vez que o cara adicionar um personagem a venda, o mysql irá marcar o horário da ação.

Depois disso fica fácil, você cria um select com os personagens a venda e coloca a opção de remover, caso este foi adicionado em menos de 24 horas.

 

Tem uma página aonde lista os characters que foram colocados a venda? Se tiver, posta aqui pra mim que eu vou fazer esse code pra ti. Ou são só essas duas?

Link para o comentário
Compartilhar em outros sites

  • 0

no caso os scripts que e stou usando sao so esses que citei acima.mais quando 1 player coloca o char a venda ele fica numa lista de personagens a venda.porem para o player ver esses personagens ele clica numa opcao de Buy pesonagens ae aparece os playhers que estao a venda.entao creio que essa lista seja no buy chars nao ?

eu nao seiriar ese coder que voce falou se tiver comofazer para mim me mostrar odne colocar eu fico grato. pois nao entendomuito mais se explicar namoral posso tentar amigo.

aguardando respostas


no caso os scripts que e stou usando sao so esses que citei acima.mais quando 1 player coloca o char a venda ele fica numa lista de personagens a venda.porem para o player ver esses personagens ele clica numa opcao de Buy pesonagens ae aparece os playhers que estao a venda.entao creio que essa lista seja no buy chars nao ?

eu nao seiriar ese coder que voce falou se tiver comofazer para mim me mostrar odne colocar eu fico grato. pois nao entendomuito mais se explicar namoral posso tentar amigo.

aguardando respostas

up


up


up


up


up

Link para o comentário
Compartilhar em outros sites

  • 0

no caso os scripts que e stou usando sao so esses que citei acima.mais quando 1 player coloca o char a venda ele fica numa lista de personagens a venda.porem para o player ver esses personagens ele clica numa opcao de Buy pesonagens ae aparece os playhers que estao a venda.entao creio que essa lista seja no buy chars nao ?

eu nao seiriar ese coder que voce falou se tiver comofazer para mim me mostrar odne colocar eu fico grato. pois nao entendomuito mais se explicar namoral posso tentar amigo.

aguardando respostas

up

up

up

up

up

ATENÇÃO! Cuidado com este flood de up's. Pare com isso ou seu tópico será movido para a lixeira.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...