Beispiel #1
0
 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;
 }
Beispiel #2
0
 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));
 }