Файл: 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'));
?>