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


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