$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); }