示例#1
0
 /**
  * Lagre logg over angrep
  */
 protected function attack_log($ret, $attack_type, $vitner_log, player $up)
 {
     // sett opp vitner
     $vitner = count($vitner_log) > 0 ? \Kofradia\DB::quote(serialize($vitner_log)) : 'NULL';
     // sett opp liste over FF
     $ff_defend = array();
     $list = $this->get_ff_list();
     foreach ($list as $row) {
         if ($row['ff_is_crew'] != 0) {
             continue;
         }
         $type = ff::$types[$row['ff_type']];
         $ff_defend[] = array($row['ff_type'], $row['ff_id'], $type['refobj'], $row['ff_name'], $row['ffm_priority'], $type['priority'][$row['ffm_priority']], $row['ffm_status']);
     }
     $ff_defend = count($ff_defend) > 0 ? \Kofradia\DB::quote(serialize($ff_defend)) : 'NULL';
     // sett opp liste over FF for angriper
     $ff_attack = array();
     $list = $up->get_ff_list();
     foreach ($list as $row) {
         if ($row['ff_is_crew'] != 0) {
             continue;
         }
         $type = ff::$types[$row['ff_type']];
         $ff_attack[] = array($row['ff_type'], $row['ff_id'], $type['refobj'], $row['ff_name'], $row['ffm_priority'], $type['priority'][$row['ffm_priority']], $row['ffm_status']);
     }
     $ff_attack = count($ff_attack) > 0 ? \Kofradia\DB::quote(serialize($ff_attack)) : 'NULL';
     // legg til i loggen
     $cash = isset($ret['penger']) ? $ret['penger'] : 0;
     if (isset($ret['penger_bank'])) {
         $cash = bcadd($cash, $ret['penger_bank']);
     }
     $hitlist = isset($ret['hitlist']) ? $ret['hitlist'] : 0;
     \Kofradia\DB::get()->exec("INSERT INTO drapforsok SET df_attack_up_id = {$up->id}, df_defend_up_id = {$this->id}, df_time = " . time() . ", df_b_id = " . $up->data['up_b_id'] . ", df_outcome = " . ($ret['drept'] ? 1 : 0) . ", df_rankpoints = {$ret['rankpoeng']}, df_type = {$attack_type}, df_cash = {$cash}, df_hitlist = {$hitlist}, df_vitner = {$vitner}, df_attack_ff_list = {$ff_attack}, df_defend_ff_list = {$ff_defend}, df_bullets = {$ret['bullets']}");
     if ($ret['drept']) {
         // logg
         if ($attack_type == self::ATTACK_TYPE_UTPRESSING) {
             putlog("DF", "%c4UTPRESSING DREPT%c: {$up->data['up_name']} ({$up->rank['name']}) presset {$this->data['up_name']} ({$this->rank['name']}). " . $this->generate_minside_url());
         } else {
             putlog("DF", "ANGREP %c4DREPT%c: {$up->data['up_name']} ({$up->rank['name']}) angrep%c3 {$this->data['up_name']}%c ({$this->rank['name']}) med " . $up->weapon->data['name'] . " (" . game::format_number($up->data['up_weapon_training'] * 100, 2) . " % våpentrening) med " . fwords("%d kule", "%d kuler", $ret['bullets']) . ". " . $this->generate_minside_url());
             putlog("DF", " - Angrepstyrke: " . game::format_number($ret['attack_skade'][0] * 100, 2) . ", beskyttelsestyrke: " . game::format_number($ret['attack_skade'][1] * 100, 2) . ", skadeprosent: " . game::format_number($ret['skadeprosent'] * 100, 2) . " % av " . weapon::MAX_ATTACK_HEALTH . " helsepoeng");
         }
         putlog("DF", " - Helse: Hadde " . game::format_number($this->get_health_percent(), 3) . " %");
         putlog("DF", " - Energi: Hadde " . game::format_number($this->get_energy_percent(), 3) . " %");
         if (!$this->protection->data) {
             putlog("DF", " - Hadde ingen beskyttelse");
         } else {
             putlog("DF", " - Beskyttelse: Hadde {$this->protection->data['name']} med " . game::format_number($this->data['up_protection_state'] * 100, 2) . " % styrke");
         }
         putlog("DF", " - Rankpoeng: {$up->data['up_name']} fikk " . game::format_number($ret['rankpoeng']) . " rankpoeng (" . game::format_rank($ret['rankpoeng'], "all") . " % rank) " . $up->generate_minside_url());
         if (count($ret['vitner']) == 0) {
             putlog("DF", " - Ingen vitner");
         } else {
             foreach ($ret['vitner'] as $vitne) {
                 putlog("DF", " - Vitne: {$vitne['up']->data['up_name']} (" . ($vitne['visible'] ? 'ble oppdaget' : 'ble IKKE oppdaget') . ') ' . $vitne['up']->generate_minside_url());
             }
         }
         putlog("DF", " - Penger fra hånda: " . game::format_cash($ret['penger']));
         if (isset($ret['penger_bank'])) {
             putlog("DF", " - Penger fra banken: " . game::format_cash($ret['penger_bank']));
         }
         putlog("DF", " - Penger fra hitlist: " . game::format_cash($ret['hitlist']));
         foreach ($ret['ffm'] as $ffm) {
             putlog("DF", " - Var " . $ffm->get_priority_name() . " i " . $ffm->ff->data['ff_name'] . " " . ess::$s['path'] . "/ff/?ff_id={$ffm->ff->id}");
         }
     } elseif ($attack_type == self::ATTACK_TYPE_KILL) {
         // logg
         putlog("DF", "ANGREP %c8SKADET%c: {$up->data['up_name']} ({$up->rank['name']}) angrep%c3 {$this->data['up_name']}%c ({$this->rank['name']}) med " . $up->weapon->data['name'] . " (" . game::format_number($up->data['up_weapon_training'] * 100, 2) . " % våpentrening) med " . fwords("%d kule", "%d kuler", $ret['bullets']) . ". " . $this->generate_minside_url());
         putlog("DF", " - Angrepstyrke: " . game::format_number($ret['attack_skade'][0] * 100, 2) . ", beskyttelsestyrke: " . game::format_number($ret['attack_skade'][1] * 100, 2) . ", skadeprosent: " . game::format_number($ret['skadeprosent'] * 100, 2) . " % av " . weapon::MAX_ATTACK_HEALTH . " helsepoeng");
         putlog("DF", " - Helse: Mistet " . game::format_number($ret['health_lost_p'] * 100, 3) . " % ({$ret['health_lost']}) og har nå%c4 " . game::format_number($ret['health_new_p'] * 100, 3) . " %");
         putlog("DF", " - Energi: Mistet " . game::format_number($ret['energy_lost_p'] * 100, 3) . " % ({$ret['energy_lost']}) og har nå%c12 " . game::format_number($ret['energy_new_p'] * 100, 3) . " %");
         if ($ret['protection_replaced']) {
             putlog("DF", " - Beskyttelsen ble erstattet med " . $this->protection->data['name']);
         } elseif ($ret['protection_lost_p'] == "") {
             putlog("DF", " - Hadde ingen beskyttelse");
         } else {
             putlog("DF", " - Beskyttelse: Mistet " . game::format_number($ret['protection_lost_p'] * 100, 3) . " % og har nå " . game::format_number($ret['protection_new_p'] * 100, 3) . " %");
         }
         putlog("DF", " - Rankpoeng: {$up->data['up_name']} fikk " . game::format_num($ret['rankpoeng']) . " rankpoeng (offeret mistet " . game::format_num($ret['rankpoeng_lost']) . ") " . $up->generate_minside_url());
         if (count($ret['vitner']) == 0) {
             putlog("DF", " - Ingen vitner");
         } else {
             foreach ($ret['vitner'] as $vitne) {
                 putlog("DF", " - Vitne: {$vitne['up']->data['up_name']} (" . ($vitne['visible'] ? 'ble oppdaget' : 'ble IKKE oppdaget') . ') ' . $vitne['up']->generate_minside_url());
             }
         }
         putlog("DF", " - Penger fra hånda: " . game::format_cash($ret['penger']));
         putlog("DF", " - Penger fra hitlist: " . game::format_cash($ret['hitlist']));
     }
 }