Файл: wenr.online/app/json/mob.php
Строк: 96
<?php
$mob = $db->prepare('select * from monster where id = ?');
$mob -> execute([Clean :: int($_GET['id'])]);
$mob = $mob -> fetch(PDO :: FETCH_OBJ);
if(!isset($mob->id)){
redirect('/arena');
exit;
}
$mobArray = $_SESSION['mob'];
if(empty($_SESSION['mob'])) $mobArray = false;
if(!isset($mobArray['mob']) or $mobArray['mob'] != $mob->id){
$session = ['mob' => $mob->id, 'hp' => $mob->hp];
$_SESSION['mob'] = $session;
redirect('/arena/mob?id='.$mob->id);
exit;
}
if(isset($_GET['mob_attack']) and $_SESSION['mob']['time'] < time() and $_SESSION['mob']['hp'] < $mob->hp){
$_SESSION['mob']['time'] = time()+5;
$uron = $mob->force+$mob->dex;
$hp_user = $user->get()->hp-$uron;
if($hp_user <= 0) $hp_user = 0;
$udar_mob = $db->prepare('update `users` set `hp` = ? where `user_id` = ?');
$udar_mob -> execute([$hp_user,$user->get()->user_id]);
if($hp_user == 0){
unset($_SESSION['mob']);
$sql = $db->prepare('update `users` set `exp` = ? where `user_id` = ?');
$sql -> execute([$user->get()->exp+1,$user->get()->user_id]);
$_SESSION['logs'][] = $mob->name.' победил. Награда: 1 опыта';
exit(json_encode(['text'=>1]));
}
$_SESSION['logs'][] = 'Монстр «'.$mob->name.'» нанес вам '.$uron.' урона';
exit(json_encode(['text'=>1]));
}
if(isset($_GET['attack'])){
unset($_SESSION['logs']);
if($user->get()->hp < 2){
$_SESSION['logs'][] = 'Слишком мало здоровья для нападения';
exit(json_encode(['text'=>1]));
}
$dop_uron = 0;
$fight_skill = $user->get()->one_handed+$user->get()->two_handed+$user->get()->bow+$user->get()->crossbow;
if($figth_skill > 200) $dop_uron .= rand(1,$fight_skill);
$magic = $db->prepare('select * from `bag` where `id` = ? and `user` = ?');
$magic -> execute([Clean :: int($_GET['rolls']),$user->get()->user_id]);
$magic = $magic -> fetch(PDO :: FETCH_OBJ);
if($magic->mana > $user->get()->mana and isset($magic->id)){
$_SESSION['logs'][] = 'Нехватает маны для использования свитка';
exit(json_encode(['text'=>1]));
}
if(isset($magic->force)) $dop_uron .= $magic->force;
if($user->get()->clan != 0) $dop_uron .= rand(0,clan_info($user->get()->clan)->lucky*2);
$uron = ['user' => $user->get()->force+$user->get()->dex+$dop_uron,
'mob' => $mob->force+$mob->dex];
if(empty($_SESSION['fight_time'])){
$fight_time = 100;
}else{
$fight_time = intval((time()-$_SESSION['fight_time']))*20;
if($fight_time > 100) $fight_time = 100;
}
if($fight_time < 40){
$_SESSION['logs'][] = 'Нельзя атаковать пока шкала состояния меньше 40%';
exit(json_encode(['text'=>1]));
}
$uron['user'] = $uron['user']*($fight_time/100);
$_SESSION['fight_time'] = time();
if($mob->magic == 1){
$weapon = $db->prepare('select id from bag where user = ? and status = ? and name = ?');
$weapon -> execute([$user->get()->user_id,1,'Меч предков']);
$weapon = $weapon ->rowCount();
if($weapon == 0) $uron['user'] = 0;
}
$hp_mob = $mobArray['hp']-$uron['user'];
$hp_user = $user->get()->hp-$uron['mob'];
if($hp_user <= 0) $hp_user = 0;
$udar_mob = $db->prepare('update `users` set `hp` = ? where `user_id` = ?');
$udar_mob -> execute([$hp_user,$user->get()->user_id]);
if(isset($magic->id)){
$_SESSION['logs'][] = 'Вы использовали свиток «'.$magic->name.'»';
$del_magic = $db->prepare('DELETE FROM `bag` WHERE `id` = ?');
$del_magic -> execute([$magic->id]);
$sql = $db->prepare('update `users` set `mana` = ? where `user_id` = ?');
$sql -> execute([$user->get()->mana-$magic->mana,$user->get()->user_id]);
}
if($hp_user == 0){
unset($_SESSION['mob']);
$sql = $db->prepare('update `users` set `exp` = ? where `user_id` = ?');
$sql -> execute([$user->get()->exp+1,$user->get()->user_id]);
$_SESSION['logs'][] = $mob->name.' победил. Награда: 1 опыта';
exit(json_encode(['text'=>1]));
}
if($hp_mob < 1){
unset($_SESSION['mob']);
$drop = $db->prepare('select * from `drop` where `type` = ? order by rand()');
$drop -> execute(['mob']);
$drop = $drop -> fetch(PDO :: FETCH_OBJ);
$addDrop = $db->prepare('insert into `bag` (`type`,`name`,`bonus`,`user`,`img`) values (?,?,?,?,?)');
$addDrop -> execute(['drop',$drop->name,$drop->price,$user->get()->user_id,$drop->img]);
$sql = $db->prepare('update `users` set `exp` = ?, `mobs` = ? where `user_id` = ?');
$sql -> execute([$user->get()->exp+$mob->exp,$user->get()->mobs+1,$user->get()->user_id]);
$kill = $db->prepare('insert into `kills` (`user`,`mob`) values (?,?)');
$kill -> execute([$user->get()->user_id,$mob->id]);
$_SESSION['logs'][] = 'Вы нанесли '.$uron['user'].' урона монстру «'.$mob->name.'»';
$_SESSION['logs'][] = 'Монстр «'.$mob->name.'» нанес вам '.$uron['mob'].' урона ';
$_SESSION['logs'][] = 'Вы убили монстра «'.$mob->name.'» Награда: '.$mob->exp.' опыта и «'.$drop->name.'»';
exit(json_encode(['text'=>1]));
}else{
$session = ['mob' => $mob->id, 'hp' => $hp_mob];
$_SESSION['mob'] = $session;
$_SESSION['logs'][] = 'Вы нанесли '.$uron['user'].' урона монстру «'.$mob->name.'»';
$_SESSION['logs'][] = 'Монстр «'.$mob->name.'» нанес вам '.$uron['mob'].' урона ';
exit(json_encode(['text'=>1]));
}
}