/** * Frigjør relasjonene en spiller har i spillet * Oppdaterer også ranklisten * @param int $previous_level spillernivået før død/deaktivering */ protected function release_relations($previous_level, player $up_attack = null, $instant = null) { // oppdater ranklisten /*if ($previous_level < ess::$g['access_noplay']) \Kofradia\DB::get()->exec(" UPDATE users_players, (SELECT up_id ref_up_id FROM users_players WHERE up_points = {$this->data['up_points']} AND up_id != $this->id AND up_access_level < ".ess::$g['access_noplay']." LIMIT 1) ref SET up_rank_pos = GREATEST(1, up_rank_pos - 1) WHERE ref_up_id IS NULL AND up_points < {$this->data['up_points']}");*/ \Kofradia\DB::get()->exec("UPDATE users_players_rank SET upr_up_access_level = 0 WHERE upr_up_id = {$this->id}"); ranklist::update(); $ret = $this->release_relations_low_health(true, $up_attack, $instant); // overfør ansvar for bomberom $result = \Kofradia\DB::get()->query("\n\t\t\tSELECT up_id\n\t\t\tFROM users_players\n\t\t\tWHERE up_brom_up_id = {$this->id}"); if ($result->rowCount() > 0) { // TODO: skal spilleren som overtar ansvaret få noen beskjed? // TODO: hvis ingen overtar ansvaret: skal spilleren som mister ansvarsspiller få beskjed om dette? // skal vi gi ansvaret videre? $resp = $this->data['up_brom_up_id'] ? "IF(up_id = {$this->data['up_brom_up_id']}, NULL, {$this->data['up_brom_up_id']})" : "NULL"; // sett nytt ansvar \Kofradia\DB::get()->exec("\n\t\t\t\tUPDATE users_players\n\t\t\t\tSET up_brom_up_id = {$resp}\n\t\t\t\tWHERE up_brom_up_id = {$this->id}"); } // fjern ansvaret for denne spilleren if ($this->data['up_brom_up_id']) { \Kofradia\DB::get()->exec("\n\t\t\t\tUPDATE users_players\n\t\t\t\tSET up_brom_up_id = NULL\n\t\t\t\tWHERE up_id = {$this->id}"); } // fjern fra aktive auksjoner auksjon::player_release($this); // fjern fra poker poker_round::player_dies($this); return $ret; }