Файл: equip.php
Строк: 361
<?php
//check login
include_once("settings.php");
include_once("game_header.php");
include_once("thing.php");
include_once("player_thing.php");
include_once("constants.php");
include_once("drop.php");
$head=$smarty->fetch($templ_path.'/head.tpl');
$smarty->assign('HEAD',$head);
$game_nav=$smarty->fetch($templ_path.'/game_nav.tpl');
$smarty->assign('GAME_NAV',$game_nav);
//create thing
$thing = new CThing($db);
//get all player things
$player_things = new CPlayerThings($db,$vnum);
if(isset($_GET['mode']))
{
    $vnum_obj = $_GET['obj'];
    $mode = $_GET['mode'];
    
    switch($mode)
    {
        case 'wear':
            $obj = $player_things->getThingID($vnum_obj);
            $thing->setVnum($obj);
            $wear_flag = $thing->getWearFlag();
            //echo($obj.",".$wear_flag);
            if($wear_flag==0){
                $info_msg = "чЩ ОЕ НПЦЕФЕ ПДЕФШ ЬФХ ЧЕЭШ";
                break;
            }
            //check player level and level thing for armor
            $type_thing=$thing->getType();
            $thing_level=$thing->getLevel();
            $thing_V0=$thing->getV0();
            if($type_thing=="armor"){
                if($thing_level>$player_level){
                    $info_msg = "чЩ ОЕ НПЦЕФЕ ПДЕФШ ЬФХ ЧЕЭШ, ПОБ ВХДЕФ ДПУФХРОБ ЧБН У $thing_level ХТПЧОС";
                    break;
                }
            }
            //check weapon level
            if($type_thing=="weapon"){
                $skill_id=$thing->getSkill();
                $player_skill_level=$skill->getSkillLevel($skill_id);
                if($player_skill_level<$thing_level-4){
                    $info_msg = "чЩ ОЕ НПЦЕФЕ ПДЕФШ ЬФХ ЧЕЭШ, ЧБЫ ОБЧЩЛ "".$weapon_type[$thing_V0]."" УМЙЫЛПН НБМ";
                    break;
                }
            }
            
            $thing_name = $thing->getName();
            
            //check things already wear in this place
            if($wear_flag==WEAR_TWO_HAND || $wear_flag==WEAR_ANY_HAND){
                //excluzive case
                if($wear_flag==WEAR_TWO_HAND){
                    //remove thing all
                    $wear_things = $player_things->getWearThing(WEAR_TWO_HAND);
                    if($wear_things!=-1){//things already wear in this place
                        $player_things->wearThing($wear_things,0);
                    }
                    $wear_things = $player_things->getWearThing(WEAR_LEFT_HAND);
                    if($wear_things!=-1){//things already wear in this place
                        $player_things->wearThing($wear_things,0);
                    }
                    $wear_things = $player_things->getWearThing(WEAR_RIGHT_HAND);
                    if($wear_things!=-1){//things already wear in this place
                        $player_things->wearThing($wear_things,0);
                    }
                    
                    $player_things->wearThing($vnum_obj,WEAR_TWO_HAND);
                }
                
                if($wear_flag==WEAR_ANY_HAND){
                    //player have wear all things
                    $wear_things_left = $player_things->getWearThing(WEAR_LEFT_HAND);
                    $wear_things_right = $player_things->getWearThing(WEAR_RIGHT_HAND);
                    $wear_things = $player_things->getWearThing(WEAR_TWO_HAND);
                    
                    if($wear_things_left!=-1 && $wear_things_right!=-1 || $wear_things!=-1){
                        $info_msg="х ЧБУ ХЦЕ ЮФП-ФП ЕУФШ Ч ТХЛБИ";
                        break;
                    }
                    
                    if($wear_things_left==-1){
                        $player_things->wearThing($vnum_obj,WEAR_LEFT_HAND);
                        $info_msg="чЩ ХУРЕЫОП ЧЪСМЙ $thing_name Ч МЕЧХА ТХЛХ";
                        break;
                    }
                    
                    if($wear_things_right==-1){
                        $player_things->wearThing($vnum_obj,WEAR_RIGHT_HAND);
                        $info_msg="чЩ ХУРЕЫОП ЧЪСМЙ $thing_name Ч РТБЧХА ТХЛХ";
                        break;
                    }
                    
                }
                
            }else{
                $wear_things = $player_things->getWearThing($wear_flag);
                if($wear_things!=-1){//things already wear in this place
                $player_things->wearThing($wear_things,0);
                }
                $player_things->wearThing($vnum_obj,$wear_flag);
            }
            
            $info_msg = "чЩ ХУРЕЫОП ОБДЕМЙ $thing_name";
            break;
        case 'unwear':
            $player_things->wearThing($vnum_obj,0);
            break;
        case 'skin':
            //transfer skin to leather
            $obj = $player_things->getThingID($vnum_obj);
            $thing->setVnum($obj);
            $type=$thing->getType();
            if($type!="skin"){
                $info_msg = "ьФБ ЧЕЭШ ОЕ РПДИПДЙФ ДМС ПВТБВПФЛЙ";
                break;
            }
            
            $skill= new CSkill($db,$vnum);
            $skill_hunter=$skill->getSkillLevel(SKILL_HUNTER);
            if($skill_hunter==false){
                $info_msg = "х ЧБУ ОЕФ ЬФПЗП ОБЧЩЛБ";
                break;
            }
            //get count thing
            $count_things=$player_things->getCountThing($vnum_obj);
            //remove this things
            $player_things->removeThing($vnum_obj,$count_things);
            //transfer skin to leather
            $new_obj=0;
            switch($obj){
                case 31:
                    $new_obj=32;
                    break;
                case 34:
                    $new_obj=40;
                    break;
                case 33:
                    $new_obj=41;
                    break;        
            }
            //possibly error
            if($new_obj==0) return;
            //add new things in inventory
            $player_things->addThing($new_obj,$count_things);
            
            //update player exp
            $thing->setVnum($new_obj);
            $expir=$thing->getV0()*$count_things;
            
            $skill->setSkill(SKILL_HUNTER,$expir);
            
            $info_msg = "чЩ ПВТБВПФБМЙ $count_things ЫЛХТ Й РПМХЮЙМЙ $expir ПРЩФБ";
            
            break;
        case 'drop':
            $drop = new CDrop($db,$room_id,$vnum);
            //get player things
            $obj = $player_things->getThingID($vnum_obj);
            if($obj==-1){
                $info_msg ="х ЧБУ ОЕФ ЬФПК ЧЕЭЙ";
                break;
            }
            $drop->playerDropThing($vnum_obj);
            $info_msg="чЩ ЧЩВТПУЙМЙ РТЕДНЕФ РТСНП РПД ОПЗЙ ЛБЛПНХ-ФП ВТПДСЦЛЕ";
            break;
        case 'eat':
            $obj = $player_things->getThingID($vnum_obj);
            if($obj==-1){
                $info_msg ="х ЧБУ ОЕФ ЬФПК ЧЕЭЙ";
                break;
            }
            $thing->setVnum($obj);
            $type=$thing->getType();
            if($type!='food'){
                $info_msg ="б ЧЩ ХЧЕТЕОЩ, ЮФП ЬФП УШЕДПВОП";
                break;
            }
            //remove thing
            $player_things->removeThing($vnum_obj,1);
            //update player hp
            $hp_restore=$thing->getV0();
            $hp+=$hp_restore;
            if($hp>$hp_max) $hp=$hp_max;
            $player->setHP($hp);
            $info_msg ="чЩ РПЮХЧУФЧПЧБМЙ УЕВС НБМПУФШ РПМХЮЫЕ";
            break;
    }
    
    session_register("info_msg");
    header("Location: equip.php");
    exit();
}
//check status, if player battle and work - don`t change equip
$player_state = $player->getState();
if($player_state!=STATE_STAND)
{
    $info_msg="чП ЧТЕНС ТБВПФЩ ЙМЙ ВПС ЧЩ ОЕ НПЦЕФЕ НЕОСФШ УОБТСЦЕОЙЕ.";
}
if(isset($info_msg))
{
    $smarty->assign('INFO_MSG',$info_msg);
    session_unregister("info_msg");
}
$all_things=$player_things->getAllThings();
$wear_things=$player_things->getWearThings();
//transfer to smarty
foreach ($all_things as $v)
{
    $thing->setVnum($v['vnum_obj']);
    $obj_name = $thing->getName();
    $obj_wear = $thing->getWearFlag();
    if($player_state!=STATE_STAND) $obj_wear=0;
    $type=$thing->getType();
    $skin_make=($type=="skin")?1:0;
    $food=($type=="food")?1:0;
    $obj_level=$thing->getLevel();
     
    $smarty->append("all_things",array(
        'OBJ_ID' => $v['vnum_obj'],
        'OBJ_NAME' => $obj_name,
        'OBJ_COUNT' => $v['count'],
        'OBJ_VNUM' => $v['vnum'],
        'OBJ_WEAR' => $obj_wear,
        'OBJ_SKIN' => $skin_make,
        'OBJ_LEVEL' => $obj_level,
        'OBJ_FOOD' => $food,
        ));
}
$smarty->assign('WEAR',$player_state!=STATE_STAND?0:1);
//transfer wear things ro smarty
foreach( $wear_things as $v)
{
    $thing->setVnum($v['obj_id']);
    $obj_name = $thing->getName();
    switch($v['wear'])
    {
        case WEAR_HEAD:
            $smarty->assign('WEAR_HEAD',$obj_name);
            $smarty->assign('WEAR_HEAD_ID',$v['vnum']);
            $smarty->assign('WEAR_HEAD_DUR',$player_things->getDurability($v['vnum']));
            $smarty->assign('WEAR_HEAD_MAX_DUR',$player_things->getDurabilityMax($v['vnum']));
            break;
        case WEAR_TWO_HAND:
            $smarty->assign('WEAR_HAND_LEFT',$obj_name);
            $smarty->assign('WEAR_HAND_LEFT_ID',$v['vnum']);
            $smarty->assign('WEAR_HAND_RIGHT',$obj_name);
            $smarty->assign('WEAR_HAND_RIGHT_ID',$v['vnum']);
            $smarty->assign('WEAR_TWO_DUR',$player_things->getDurability($v['vnum']));
            $smarty->assign('WEAR_TWO_MAX_DUR',$player_things->getDurabilityMax($v['vnum']));
            break;
        case WEAR_LEFT_HAND:
            $smarty->assign('WEAR_HAND_LEFT',$obj_name);
            $smarty->assign('WEAR_HAND_LEFT_ID',$v['vnum']);
            $smarty->assign('WEAR_HAND_LEFT_DUR',$player_things->getDurability($v['vnum']));
            $smarty->assign('WEAR_HAND_LEFT_MAX_DUR',$player_things->getDurabilityMax($v['vnum']));
            break;
        case WEAR_RIGHT_HAND:
            $smarty->assign('WEAR_HAND_RIGHT',$obj_name);
            $smarty->assign('WEAR_HAND_RIGHT_ID',$v['vnum']);
            $smarty->assign('WEAR_HAND_RIGHT_DUR',$player_things->getDurability($v['vnum']));
            $smarty->assign('WEAR_HAND_RIGHT_MAX_DUR',$player_things->getDurabilityMax($v['vnum']));
            break;    
        case WEAR_BELT:
            $smarty->assign('WEAR_BELT',$obj_name);
            $smarty->assign('WEAR_BELT_ID',$v['vnum']);
            $smarty->assign('WEAR_BELT_DUR',$player_things->getDurability($v['vnum']));
            $smarty->assign('WEAR_BELT_MAX_DUR',$player_things->getDurabilityMax($v['vnum']));
            break;
        case WEAR_BODY:
            $smarty->assign('WEAR_BODY',$obj_name);
            $smarty->assign('WEAR_BODY_ID',$v['vnum']);
            $smarty->assign('WEAR_BODY_DUR',$player_things->getDurability($v['vnum']));
            $smarty->assign('WEAR_BODY_MAX_DUR',$player_things->getDurabilityMax($v['vnum']));
            break;
        case WEAR_LEGS:
            $smarty->assign('WEAR_LEGS',$obj_name);
            $smarty->assign('WEAR_LEGS_ID',$v['vnum']);
            $smarty->assign('WEAR_LEGS_DUR',$player_things->getDurability($v['vnum']));
            $smarty->assign('WEAR_LEGS_MAX_DUR',$player_things->getDurabilityMax($v['vnum']));
            break;
        case WEAR_FOOT:
            $smarty->assign('WEAR_FOOT',$obj_name);
            $smarty->assign('WEAR_FOOT_ID',$v['vnum']);
            $smarty->assign('WEAR_FOOT_DUR',$player_things->getDurability($v['vnum']));
            $smarty->assign('WEAR_FOOT_MAX_DUR',$player_things->getDurabilityMax($v['vnum']));
            break;
    }
}
$smarty->assign('PLAYER_ITEMS',$player_things->getCountThings());
$smarty->assign('MAX_PLAYER_ITEM',MAX_PLAYER_ITEM);
$equip=$smarty->fetch($templ_path.'/equip.tpl');
$smarty->assign('MAIN',$equip);
echo($smarty->fetch($templ_path.'/game.tpl'));
?>