Exemple #1
0
 /**
  * @method POST
  * @api resurrect
  */
 public function resurrect()
 {
     $characters = new Character();
     $adr_char = $characters->getCharacterByID($_POST['character_id']);
     $cost = $this->getCosts($_POST['character_id']);
     $cost = $cost['resurrect_price'];
     $user = new User();
     $points = $user->getPoints();
     if ($points['user_points'] < $cost) {
         return $this->response(array('status' => 0, 'message' => ADR::Lang("Adr_lack_points")));
     }
     if ($adr_char['character_hp'] > 0) {
         return $this->response(array('status' => 0, 'message' => ADR::Lang("Adr_temple_heal_instead")));
     }
     $user->subtractPoints($cost);
     $this->replenish($adr_char);
     return $this->response(array('status' => 1, 'current_points' => $points['user_points'] - $cost, 'message' => ADR::Lang("Adr_temple_resurrected")));
 }
Exemple #2
0
 private function win($bat, $monster, $challenger)
 {
     // The monster is dead , give money and xp to the users , then update the database
     $adr_general = ADR::getGeneralConfig();
     // Get the experience earned
     $exp = rand($adr_general['battle_base_exp_min'], $adr_general['battle_base_exp_max']);
     if ($monster['monster_level'] - $challenger['character_level'] > 1) {
         $exp = floor(($monster['monster_level'] - $challenger['character_level']) * $adr_general['battle_base_exp_modifier'] / 100);
     }
     // Get the money earned
     $reward = rand($adr_general['battle_base_reward_min'], $adr_general['battle_base_reward_max']);
     if ($monster['monster_level'] - $challenger['character_level'] > 1) {
         $reward = floor(($monster['monster_level'] - $challenger['character_level']) * $adr_general['battle_base_reward_modifier'] / 100);
     }
     $this->updateBattleList(array('battle_result' => 1, 'battle_opponent_hp' => 0, 'battle_finish' => time(), 'battle_text' => ''));
     $user = new User();
     $points = $user->getPoints();
     $user->addPoints($reward);
     /*$sql = " UPDATE  " . ADR_CHARACTERS_TABLE . " 
       SET character_xp = character_xp + $exp ,
           character_victories = character_victories + 1 ,
           character_sp = character_sp + '" . $bat['battle_opponent_sp'] . "'
       WHERE character_id = $user_id ";*/
     $db = DB::instance();
     $db->execute("UPDATE adr_characters SET\n                    character_xp = character_xp + {$exp},\n                    character_victories = character_victories + 1,\n                    character_sp = character_sp + {$bat['battle_opponent_sp']}\n                WHERE character_id = {$bat['battle_challenger_id']}");
     /*
             // Remove item stolen status
             $sql = "UPDATE " . ADR_SHOPS_ITEMS_TABLE . "
                 SET item_monster_thief = 0 
                 WHERE item_owner_id = $user_id ";
             if( !($result = $db->sql_query($sql)) )
             {
                 message_die(GENERAL_ERROR, 'Could not update stolen item status', '', __LINE__, __FILE__, $sql);
             }
     
             // Delete broken items from users inventory
             $sql = " DELETE FROM " . ADR_SHOPS_ITEMS_TABLE . "
                 WHERE item_duration < 1 
                 AND item_owner_id = $user_id ";
             if( !($result = $db->sql_query($sql)) )
             {
                 message_die(GENERAL_ERROR, 'Could not delete broken items', '', __LINE__, __FILE__, $sql);
             }*/
     $user_points = $points['user_points'] + $reward;
     $message = array(sprintf(ADR::Lang('Adr_battle_won'), $bat['battle_challenger_dmg'], $exp, $bat['battle_opponent_sp'], $reward, $adr_general['points_name']));
     $stolen = false;
     if ($stolen && $stolen['item_name'] != '') {
         array_push($message, sprintf(ADR::Lang('Adr_battle_stolen_items'), $monster['monster_name']));
     }
     return array('message' => $message, 'exp' => $exp, 'sp' => $bat['battle_opponent_sp'], 'reward' => $reward, 'user_points' => $user_points);
 }