Файл: include/shop.php
Строк: 85
<?php
include_once("table_name.php");
include_once("base.php");
/**
    Shop class for trade with player
*/
class CShop extends CBase
{
    /**
        Constructor
    */
    function CShop($database,$room_id)
    {
        $this->db=$database;
        $this->table_name=$GLOBALS['table_shop'];
        $this->room_id=$room_id;
    }
    function getList()
    {        
        $sql = "select t1.vnum, t1.count from $this->table_name AS t1, game_objects as t2 where room_id='$this->room_id' and t1.vnum = t2.vnum ORDER BY t2.name";
        
        $result=$this->execSQL($sql);
        $thing = array();
        while($row = $result->fetchRow())
        {
            $thing[] = array("obj" => $row[0],"count" => $row[1]);
        }
        return $thing;
    }
    function getObject($obj_id)
    {
        $sql = "select count from $this->table_name where room_id='$this->room_id' and vnum='$obj_id'";
        $result=$this->execSQL($sql);
        if($result->numRows()==0) return 0;
        $row = $result->fetchRow();
        return $row[0];
    }
    function delObject($obj_id,$count)
    {
        $count_shop=$this->getObject($obj_id);
        if($count_shop==$count){
            //need remove objects from shop
            $sql = "delete from $this->table_name where room_id='$this->room_id' and vnum='$obj_id'";
        }else{
            $sql = "update $this->table_name set count=count-$count where room_id='$this->room_id' and vnum='$obj_id'";
        }
        $result=$this->execSQL($sql);
    }
    
    function addThing($obj_id,$count)
    {
        //check things
        $count_t=$this->getObject($obj_id);
        if($count_t==0){
            //need add things
            $sql = "insert into $this->table_name(room_id,vnum,count)".
            "values ('$this->room_id','$obj_id','$count')";
        }else{
            //need plus things
            $sql = "update $this->table_name set count=count+$count where vnum='$obj_id' and
room_id='$this->room_id'";
        }
        $result = $this->execSQL($sql);
        
        return true;
    }
    
    function removeEachOneThings()
    {
        $list_shop=$this->getList();
        
        $sql = "LOCK TABLES $this->table_name read";
        
        $thing = new CThing($this->db);
        
        foreach($list_shop as $v){
            $thing->setVnum($v['obj']);
            $type=$thing->getType();
            if($typ=="bar" || $type=="fish"){
                $this->delObject($v['obj'],1);
            }
        }
        $this->execSQL("UNLOCK TABLES");
    }
}
?>