Ejemplo n.º 1
0
         $defender =& $monster;
     }
     $damage = 0;
     if ($attacker['attack'] > $defender['defence']) {
         $damage = $attacker['attack'] - $defender['defence'];
     }
     $defender['curhp'] -= $damage;
     $combat[$turns] = array(attacker => $attacker['name'], defender => $defender['name'], damage => $damage);
     $turns++;
 }
 setStat('curhp', $userID, $player['curhp']);
 if ($player['curhp'] > 0) {
     // player won
     setStat('gc', $userID, getStat('gc', $userID) + getMonsterStat('gc', $monsterID));
     $won = 1;
     $gold = getMonsterStat('gc', $monsterID);
     $rand = rand(0, 100);
     try {
         $sql = "SELECT item_id FROM monster_items WHERE monster_id = :monsterid AND rarity >= :rand ORDER BY RAND() LIMIT 1";
         $s = $pdo->prepare($sql);
         $s->bindValue(':monsterid', $monsterID);
         $s->bindValue(':rand', $rand);
         $s->execute();
     } catch (PDOException $e) {
         $error = 'Error fetching item from monster.' . $e->getMessage();
         include $_SERVER['DOCUMENT_ROOT'] . '/include/error.html.php';
         exit;
     }
     list($itemID) = $s->fetch();
     try {
         $sql = "SELECT COUNT(id) FROM user_items WHERE user_id = :userid AND item_id = :itemid";
     $result = mysql_query($query);
     list($count) = mysql_fetch_row($result);
     if ($count > 0) {
         # already has one of the item
         $query = sprintf("UPDATE user_items SET quantity = quantity + 1 WHERE user_id = '%s' AND item_id = '%s'", mysql_real_escape_string($userID), mysql_real_escape_string($itemID));
     } else {
         # has none - new row
         $query = sprintf("INSERT INTO user_items(quantity,user_id,item_id) VALUES (1,'%s','%s')", mysql_real_escape_string($userID), mysql_real_escape_string($itemID));
     }
     mysql_query($query);
     # retrieve the item name, so that we can display it
     $query = sprintf("SELECT name FROM items WHERE id = %s", mysql_real_escape_string($itemID));
     $result = mysql_query($query);
     list($itemName) = mysql_fetch_row($result);
     $smarty->assign('item', $itemName);
     $monster_exp = getMonsterStat('exp', $monsterID);
     $smarty->assign('exp', $monster_exp);
     $exp_rem = getStat('exp_rem', $userID);
     $exp_rem -= $monster_exp;
     $level_up = 0;
     if ($exp_rem <= 0) {
         // level up!
         $exp_rem = 100;
         $level_up = 1;
     }
     $smarty->assign('level_up', $level_up);
     setStat('exp_rem', $userID, $exp_rem);
 } else {
     // monster won
     $smarty->assign('lost', 1);
 }