Файл: bank.php
Строк: 448
<?php
include_once("settings.php");
include_once("game_header.php");
include_once("player_thing.php");
include_once("players.php");
include_once("messages.php");
include_once("chain.php");
include_once("shop.php");
include_once("player_transfer.php");
include_once("log.php");
//check player state
checkPlayerState($player);
//FIX ME
if($room_id!=1){
header("Location: area.php");
break;
}
$gold = $player->getGold();
$smarty->assign('GOLD',$gold);
$bank_gold = $player->getBankGold();
$smarty->assign('BANK_GOLD',$bank_gold);
$player_things = new CPlayerThings($db,$vnum);
$player_transfer = new CPlayerTransfer($db,$vnum);
$log_me= new CLogPlayers($db,$vnum);
//create thing
$thing = new CThing($db);
if(isset($mode)){
//lock tables
$player->execSQL("LOCK TABLES $table_player write, $table_player_things write, $table_objects read,$table_transfer write,$table_logs_storage write,$table_player_things as t1 write,$table_objects as t2 read");
switch($mode)
{
//player put gold in bank
case 'put':
$amount = $_POST['amount'];
$amount=floor($amount);
if($amount<=0 || $gold<$amount){
$info_msg = "х ЧБУ ОЕФ ФБЛПЗП ЛПМЙЮЕУФЧБ ДЕОЕЗ.";
break;
}
$player->updateBankGold($amount);
$player->updateGold(-$amount);
$info_msg = "чЩ РПМПЦЙМЙ Ч ВБОЛ $amount НПОЕФ.";
break;
//player get gold from bank
case 'take':
$amount = $_POST['amount'];
$amount=floor($amount);
if($amount<=0 || $bank_gold<$amount){
$info_msg = "ч ВБОЛЕ ОЕФ ФБЛПЗП ЛПМЙЮЕУФЧБ ДЕОЕЗ";
break;
}
$player->updateBankGold(-$amount);
$player->updateGold($amount);
$info_msg = "чЩ ЧЪСМЙ ЙЪ ВБОЛБ $amount НПОЕФ.";
break;
case 'thing_put':
//player try put things in bank
$amount = $_POST['amount'];
$amount=floor($amount);
if($amount<=0){
break;
}
$vnum_obj = $_GET['vnum_obj'];
$obj_id = $player_things->getThingID($vnum_obj);
$thing->setVnum($obj_id);
$obj_name = $thing->getName();
//check player things
$things_count = $player_things->getCountThing($vnum_obj);
if($amount>$things_count) {
$info_msg = "х ЧБУ ОЕФ ФБЛПЗП ЛПМЙЮЕУФЧБ ЧЕЭЕК";
break;
}
//remove things form player
$durability=$player_things->getDurability($vnum_obj);
$max_durability=$player_things->getDurabilityMax($vnum_obj);
$player_things->removeThing($vnum_obj,$amount);
$player_things->addThing($obj_id,$amount,1,$durability,$max_durability);
$info_msg="чЩ РПМПЦЙМЙ Ч ВБОЛ $amount РТЕДНЕФПЧ ФЙРБ $obj_name";
break;
case 'thing_putall':
$list_things = $player_things->getAllThings();
foreach ($list_things as $v){
$durability=$player_things->getDurability($v['vnum']);
$max_durability=$player_things->getDurabilityMax($v['vnum']);
//remove things
$player_things->removeThing($v['vnum'],$v['count']);
//add things
$player_things->addThing($v['vnum_obj'],$v['count'],1,$durability,$max_durability);
}
$info_msg="чУЕ ЮФП Х ЧБУ ВЩМП ЧЩ РПМПЦЙМЙ Ч ВБОЛ";
break;
case 'thing_take':
//player try get things in bank
$vnum_obj = $_POST['bank_obj'];
$amount = $_POST["amount_$vnum_obj"];
$amount=floor($amount);
if($amount<=0){
break;
}
$obj_id = $player_things->getThingID($vnum_obj);
$thing->setVnum($obj_id);
$obj_name = $thing->getName();
//check player things
$things_count = $player_things->getCountThing($vnum_obj,1);
if($amount>$things_count) {
$info_msg = "х ЧБУ ОЕФ ФБЛПЗП ЛПМЙЮЕУФЧБ ЧЕЭЕК Ч ВБОЛЕ";
break;
}
$bank_action=$_POST['bank_action'];
if($bank_action==1){
//check player bag
$item_player=$player_things->getCountThings();
if(($item_player+$amount)>MAX_PLAYER_ITEM){
$info_msg = "чЩ ОЕ НПЦЕФЕ ХИЧБФЙФШ ФБЛПЕ ЛПМЙЮЕУФЧП ЧЕЭЕК.";
break;
}
//remove things form player
$durability=$player_things->getDurability($vnum_obj);
$max_durability=$player_things->getDurabilityMax($vnum_obj);
$player_things->addThing($obj_id,$amount,0,$durability,$max_durability);
$player_things->removeThing($vnum_obj,$amount,1);
$info_msg="чЩ ЧЪСМЙ $amount РТЕДНЕФПЧ ФЙРБ $obj_name ЙЪ ВБОЛБ";
}
if($bank_action==2){
//sell things in shop
//lock tables
if($player_things->removeThing($vnum_obj,$amount,1)==false){
$info_msg="х ЧБУ ОЕФ ЬФПЗП РТЕДНЕФБ";
break;
}
//all ok
//add money players
$obj_cost=$thing->getCost();
$gold=(int)($obj_cost*SHOP_COMMISSION)*$amount;
$player->updateGold($gold);
//add things in shop
$shop = new CShop($db,$room_id);
$shop->execSQL("LOCK TABLES $table_player write, $table_player_things write, $table_shop write, $table_objects read");
$shop->addThing($obj_id,$amount);
$shop->unlockTable();
$info_msg="чЩ РПМХЮЙМЙ ЪБ УДЕМЛХ <b>$gold</b> НПОЕФ";
}
if($bank_action==3){
$player->unlockTable();
//transfer things in player bank
$thing_id=$vnum_obj;
$thing_count=$amount;
session_register("thing_id");
session_register("thing_count");
header("Location: transfer_things.php");
exit();
}
break;
case 'accept'://player accept transfer thing
//$id = $_POST['id'];
//get info about this transfer
$transfer=$player_transfer->getTransferThing($id);
if($transfer==false){
$info_msg="чБН ЬФП ОЕ РЕТЕЧПДЙМЙ";
break;
}
//check player pay transfer
$player_gold = $player->getGold();
if($player_gold<$transfer['cost']){
$info_msg="ьФП ЧБН ОЕ РП ЛБТНБОХ";
break;
}
//accept transfer
$player->updateGold(-$transfer['cost']);
$player_things->addThing($transfer['vnum_obj'],$transfer['count'],1,$transfer['durability'],$transfer['max_durability']);
$player_transfer->deleteTransfer($id);
//add log
$player->setVnum($transfer['vnum_player_from']);
$player_name_from=$player->getName();
//update gold
$player->updateGold($transfer['cost']);
$thing->setVnum($transfer['vnum_obj']);
$thing_name=$thing->getName();
$msg="чЩ ПРМБФЙМЙ <b>".$transfer['cost']."</b> НПОЕФ ЙЗТПЛХ <b>$player_name_from</b> ЪБ <b>$thing_name</b> Ч ЛПМЙЮЕУФЧЕ <b>".$transfer['count']."</b> ЫФХЛ c ЛПННЕОФБТЙЕН: <i>".$transfer['comments']."</i>";
$log_me->addTypeLogMsg(LOGS_TRANSFER_THINGS,$msg);
$log_to= new CLogPlayers($db,$transfer['vnum_player_from']);
$msg="йЗТПЛ <b>$player_name</b> ПРМБФЙМ ЧБЫ РЕТЕЧПД c ЛПННЕОФБТЙЕН: <i>".$transfer['comments']."</i>";
$log_to->addTypeLogMsg(LOGS_TRANSFER_THINGS,$msg);
$info_msg="пРМБФЙЧ РЕТЕЧПД, ЧЩ РПМХЮЙМЙ ЧЕЭШ УЕВЕ";
break;
case 'reject'://player reject thing
//get info about this transfer
$transfer=$player_transfer->getTransferThing($id);
if($transfer==false){
$info_msg="чБН ЬФП ОЕ РЕТЕЧПДЙМЙ";
break;
}
//return player thing
$player_things->setVnum($transfer['vnum_player_from']);
$player_things->addThing($transfer['vnum_obj'],$transfer['count'],1,$transfer['durability'],$transfer['max_durability']);
$player_transfer->deleteTransfer($id);
//add log
$player->setVnum($transfer['vnum_player_from']);
$player_name_from=$player->getName();
$thing->setVnum($transfer['vnum_obj']);
$thing_name=$thing->getName();
$msg="чЩ ПФЛБЪБМЙУШ РМБФЙФШ <b>".$transfer['cost']."</b> НПОЕФ ЙЗТПЛХ <b>$player_name_from</b> ЪБ <b>$thing_name</b> Ч ЛПМЙЮЕУФЧЕ <b>".$transfer['count']."</b> ЫФХЛ c ЛПННЕОФБТЙЕН: <i>".$transfer['comments']."</i>";
$log_me->addTypeLogMsg(LOGS_TRANSFER_THINGS,$msg);
$log_to= new CLogPlayers($db,$transfer['vnum_player_from']);
$msg="йЗТПЛ <b>$player_name</b> ПФЛБЪБМУС ПРМБЮЙЧБФШ ЧБЫ РЕТЕЧПД c ЛПННЕОФБТЙЕН: <i>".$transfer['comments']."</i>";
$log_to->addTypeLogMsg(LOGS_TRANSFER_THINGS,$msg);
$info_msg="чЩ ПФЛБЪБМЙУШ ПРМБЮЙФЙЧБФШ РЕТЕЧПД";
break;
case 'transfer_reject':
//get info about this transfer
$transfer=$player_transfer->getPlayerTransferThing($id);
if($transfer==false){
$info_msg="ьФП ОЕ ЧБЫ РЕТЕЧПД";
break;
}
//return player thing
$player_things->addThing($transfer['vnum_obj'],$transfer['count'],1,$transfer['durability'],$transfer['max_durability']);
//delete transfer
$player_transfer->deleteTransfer($id);
$info_msg="чЩ ПФНЕОЙМЙ ЧБЫ РЕТЕЧПД";
break;
}
session_register("info_msg");
$player->unlockTable();
header("Location: bank.php");
exit();
}
if(isset($info_msg))
{
$smarty->assign('INFO_MSG',$info_msg);
session_unregister("info_msg");
}
//get all things player
$all_things=$player_things->getAllThings();
//transfer to smarty
foreach ($all_things as $v)
{
$smarty->append("all_things",array(
'VNUM_OBJ' => $v['vnum'],
'OBJ_NAME' => $v['name'],
'OBJ_COUNT' => $v['count']
));
}
//get all things player in bank
$bank_things = $player_things->getAllThings(1);
//transfer to smarty
$smarty->assign_by_ref("bank_things",$bank_things);
//get player transfer
$list_things=$player_transfer->getListTransferThings($vnum);
//transfer to smarty
foreach ($list_things as $v)
{
$thing->setVnum($v['vnum_obj']);
$obj_name = $thing->getName();
$player->setVnum($v['vnum_player_from']);
$player_name = $player->getName();
$smarty->append("list_things",array(
'VNUM' => $v['vnum'],
'VNUM_OBJ' => $v['vnum_obj'],
'OBJ_NAME' => $obj_name,
'OBJ_COUNT' => $v['count'],
'OBJ_COST' => $v['cost'],
'COMMENTS' => $v['comments'],
'PLAYER_NAME' => $player_name,
));
}
//get all transfer make player
$list_things=$player_transfer->getListPlayerTransferThings($vnum);
//transfer to smarty
foreach ($list_things as $v)
{
$thing->setVnum($v['vnum_obj']);
$obj_name = $thing->getName();
$player->setVnum($v['vnum_player_to']);
$player_name = $player->getName();
$smarty->append("list_player_things",array(
'VNUM' => $v['vnum'],
'VNUM_OBJ' => $v['vnum_obj'],
'OBJ_NAME' => $obj_name,
'OBJ_COUNT' => $v['count'],
'OBJ_COST' => $v['cost'],
'COMMENTS' => $v['comments'],
'PLAYER_NAME' => $player_name,
));
}
$bank_txt=$smarty->fetch($templ_path.'/bank.tpl');
$smarty->assign('MAIN',$bank_txt);
echo($smarty->fetch($templ_path.'/game.tpl'));
?>