Вход Регистрация
Файл: 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<=|| $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<=|| $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'));

?>
Онлайн: 0
Реклама