prepare(" SELECT id, uid, dtime, area_type, area, stage, difficulty, win, time, mana, energy, crystal, honor_points, guild_points, helper, score, rank FROM run WHERE id = :id; "); $statement->bindValue(':id', $id, SQLITE3_INTEGER); $r = $statement->execute()->fetchArray(SQLITE3_ASSOC); if ($r){ $this->id = $r["id"]; $this->uid = $r["uid"]; $this->dtime = $r["dtime"]; $this->area = new K_Area($r["area"], $r["area_type"]); $this->stage = $r["stage"]; $this->difficulty = $r["difficulty"]; $this->win = $r["win"]; $this->time = $r["time"]; $this->mana = $r["mana"]; $this->energy = $r["energy"]; $this->crystal = $r["crystal"]; $this->honor_points = $r["honor_points"]; $this->guild_points = $r["guild_points"]; $this->helper = $r["helper"]; $this->score = $r["score"]; $this->rank = $r["rank"]; $statement = $db->prepare(" SELECT unit, k_unit, (SELECT count(id) FROM unit WHERE unit.id = run_party.unit) AS owned, leader, front FROM run_party WHERE run = :run ORDER BY front DESC, leader DESC; "); $statement->bindValue(':run', $id, SQLITE3_INTEGER); $q = $statement->execute(); while ($r = $q->fetchArray(SQLITE3_ASSOC)){ if ($r["owned"] > 0){ array_push($this->party, new Unit($r["unit"], false)); } else{ array_push($this->party, new K_Unit($r["k_unit"], false)); } if ($r["leader"] == 1){ $this->leader = $r["unit"]; } if ($r["front"] == 1){ array_push($this->frontline, $r["unit"]); } } $statement = $db->prepare(" SELECT item, amount FROM run_drop_item WHERE run = :run; "); $statement->bindValue(':run', $this->id, SQLITE3_INTEGER); $q = $statement->execute(); while ($r = $q->fetchArray(SQLITE3_ASSOC)){ $i = new Inventory($r["item"]); $i->amount = $r["amount"]; array_push($this->item, $i); } $statement = $db->prepare(" SELECT unit FROM run_drop_unit WHERE run = :run; "); $statement->bindValue(':run', $this->id, SQLITE3_INTEGER); $q = $statement->execute(); while ($r = $q->fetchArray(SQLITE3_ASSOC)){ array_push($this->unit, new K_Unit($r["unit"])); } $statement = $db->prepare(" SELECT unit FROM run_drop_sd WHERE run = :run; "); $statement->bindValue(':run', $this->id, SQLITE3_INTEGER); $q = $statement->execute(); while ($r = $q->fetchArray(SQLITE3_ASSOC)){ array_push($this->sd, new K_Unit($r["unit"])); } $statement = $db->prepare(" SELECT unit, amount FROM run_drop_unit_pieces WHERE run = :run; "); $statement->bindValue(':run', $this->id, SQLITE3_INTEGER); $q = $statement->execute(); while ($r = $q->fetchArray(SQLITE3_ASSOC)){ $i = [ "unit" => new K_Unit($r["unit"]), "amount" => $r["amount"] ]; array_push($this->unit_piece, $i); } $statement = $db->prepare(" SELECT amount FROM run_drop_shapeshifting WHERE run = :run; "); $statement->bindValue(':run', $this->id, SQLITE3_INTEGER); $q = $statement->execute(); $r = $q->fetchArray(SQLITE3_ASSOC); if ($r){ $this->shapeshifting = $r["amount"]; } $statement = $db->prepare(" SELECT id, type, slot, stars, ancient, quality, value, efficiency, main_stat, main_stat_value, innate_stat, innate_stat_value, substat_1, substat_1_value, substat_2, substat_2_value, substat_3, substat_3_value, substat_4, substat_4_value FROM run_drop_rune WHERE run = :run; "); $statement->bindValue(':run', $this->id, SQLITE3_INTEGER); $q = $statement->execute(); while ($r = $q->fetchArray(SQLITE3_ASSOC)){ $rune = new Rune($r["id"]); if (!isset($rune->id)){ $rune->id = $r["id"]; $rune->level = 0; $rune->assigned_to = null; $rune->type = new K_Rune_Set($r["type"]); $rune->slot = $r["slot"]; $rune->stars = $r["stars"]; $rune->ancient = $r["ancient"]; $rune->quality = $r["quality"]; $rune->original_quality = $r["quality"]; $rune->value = $r["value"]; $rune->value = 0; $rune->efficiency = $r["efficiency"]; // TODO: Calculate? $rune->max_efficiency = $r["efficiency"]; $rune->main_stat = $r["main_stat"]; $rune->main_stat_value = $r["main_stat_value"]; $rune->innate_stat = $r["innate_stat"]; $rune->innate_stat_value = $r["innate_stat_value"]; $rune->substat_1 = $r["substat_1"]; $rune->substat_1_value = $r["substat_1_value"]; $rune->substat_1_enchant = 0; $rune->substat_1_grind = 0; $rune->substat_2 = $r["substat_2"]; $rune->substat_2_value = $r["substat_2_value"]; $rune->substat_2_enchant = 0; $rune->substat_2_grind = 0; $rune->substat_3 = $r["substat_3"]; $rune->substat_3_value = $r["substat_3_value"]; $rune->substat_3_enchant = 0; $rune->substat_3_grind = 0; $rune->substat_4 = $r["substat_4"]; $rune->substat_4_value = $r["substat_4_value"]; $rune->substat_4_enchant = 0; $rune->substat_4_grind = 0; $rune->refresh_names(); } array_push($this->rune, $rune); } $statement = $db->prepare(" SELECT run_drop_enchantment.id AS id, type, run_drop_enchantment.quality AS quality, rune, run_drop_enchantment.stat AS stat, value, k_enchantment_type.inmemorial AS inmemorial, k_enchantment_type.ancient AS ancient, k_enchantment_range.min AS min, k_enchantment_range.max AS max FROM run_drop_enchantment, k_enchantment_type, k_enchantment_range WHERE run = :run AND run_drop_enchantment.type = k_enchantment_type.id AND k_enchantment_type.gem = k_enchantment_range.gem AND k_enchantment_type.gem = k_enchantment_range.gem AND k_enchantment_type.ancient = k_enchantment_range.ancient AND run_drop_enchantment.quality = k_enchantment_range.quality AND run_drop_enchantment.stat = k_enchantment_range.stat; "); $statement->bindValue(':run', $this->id, SQLITE3_INTEGER); $q = $statement->execute(); while ($r = $q->fetchArray(SQLITE3_ASSOC)){ $enchantment = new Enchantment($r["id"]); if (!isset($enchantment->id)){ $enchantment->id = $r["id"]; if ($r["type"] == CRAFT_ID::ENCHANT_GEM || $r["type"] == CRAFT_ID::IMMEMORIAL_GEM){ $enchantment->gem = 1; } else{ $enchantment->gem = 0; } $enchantment->quality = $r["quality"]; $enchantment->value = 0; $enchantment->stat = $r["stat"]; $enchantment->ancient = $r["ancient"]; $enchantment->inmemorial = $r["inmemorial"]; $enchantment->rune = new K_Rune_Set($r["rune"]); $enchantment->min = $r["min"]; $enchantment->max = $r["max"]; $enchantment->value = $r["value"]; $enchantment->amount = 0; $enchantment->refresh_names(); } else{ $enchantment->amount = 0; } array_push($this->enchantment, $enchantment); } } } } ?>