private static function slapB($userid, $targetid, $adverb, $dmg_adv, $verb, $dmg_verb, $adjective, $dmg_adj, $item, $dmg_item, $total_damage) { // echo "userid $userid slaps $targetid\n"; if (false === ($adverb = Dog_SlapItem::getOrCreate('adverb', $adverb, $dmg_adv))) { return false; } if (false === ($verb = Dog_SlapItem::getOrCreate('verb', $verb, $dmg_verb))) { return false; } if (false === ($adjective = Dog_SlapItem::getOrCreate('adjective', $adjective, $dmg_adj))) { return false; } if (false === ($item = Dog_SlapItem::getOrCreate('item', $item, $dmg_item))) { return false; } if (false === self::table(__CLASS__)->insertAssoc(array('lsh_id' => 0, 'lsh_date' => GWF_Time::getDate(GWF_Date::LEN_SECOND), 'lsh_slapper' => $userid, 'lsh_target' => $targetid, 'lsh_adverb' => $adverb->getID(), 'lsh_verb' => $verb->getID(), 'lsh_adjective' => $adjective->getID(), 'lsh_item' => $item->getID(), 'lsh_damage' => $total_damage))) { return false; } $fake_slap = $userid == 0 || $targetid == 0; if (!$fake_slap) { Dog_SlapStats::increaseStats($userid, $adverb->getID(), 1); Dog_SlapStats::increaseStats($userid, $verb->getID(), 1); Dog_SlapStats::increaseStats($userid, $adjective->getID(), 1); Dog_SlapStats::increaseStats($userid, $item->getID(), 1); } $column = $fake_slap ? 'lsi_count_a' : 'lsi_count_as'; if (false === $adverb->increase($column, 1)) { return false; } if (false === $verb->increase($column, 1)) { return false; } if (false === $adjective->increase($column, 1)) { return false; } if (false === $item->increase($column, 1)) { return false; } return true; }
private function onTop5DamageBest($rank) { $db = gdo_db(); $user = GWF_TABLE_PREFIX . 'dog_users'; $user2 = GWF_TABLE_PREFIX . 'dog_users'; $lsh = GWF_TABLE_PREFIX . 'dog_slap_history'; $limit = GDO::getLimit(1, Common::clamp($rank - 1, 0)); $query = "SELECT u.user_name slapper, u2.user_name target, s.* FROM {$lsh} s JOIN {$user} u ON u.user_id=lsh_slapper JOIN {$user2} u2 ON u2.user_id=lsh_target ORDER BY lsh_damage DESC {$limit}"; echo $query . PHP_EOL; if (false === ($row = $db->queryFirst($query))) { return 'No database record found.' . PHP_EOL; } $adverb = Dog_SlapItem::getByID($row['lsh_adverb']); $verb = Dog_SlapItem::getByID($row['lsh_verb']); $adjective = Dog_SlapItem::getByID($row['lsh_adjective']); $item = Dog_SlapItem::getByID($row['lsh_item']); $date = $row['lsh_date']; return sprintf('BestSlap #%d: %s %s %s %s with %s %s. This dealt %d damage and happened on %s, %s ago.', $rank, $row['slapper'], $adverb->getVar('lsi_name'), $verb->getVar('lsi_name'), $row['target'], $adjective->getVar('lsi_name'), $item->getVar('lsi_name'), $row['lsh_damage'], GWF_Time::displayDate($date), GWF_Time::displayAge($date)); }