コード例 #1
0
function blurry_dohook($hook, $args)
{
    switch ($hook) {
        case 'everyfooter-loggedin':
            global $navbysection;
            $drunkeness = get_module_pref('drunkeness');
            if (file_exists('modules/drinks/drunkenize.php') && $drunkeness != 0) {
                require_once 'modules/drinks/drunkenize.php';
                foreach ($navbysection as $section => $navs) {
                    for ($i = 0; $i < count($navs); $i++) {
                        // Support to fix villagenav() and other arrayed navigation titles.
                        if (is_array($navs[$i][0])) {
                            $navs[$i][0] = sprintf_translate($navs[$i][0]);
                        }
                        if (strpos($navs[$i][0], '?') !== false) {
                            $navTitle = explode('?', $navs[$i][0]);
                            if (count($navTitle) > 2) {
                                $navTitle[2] = drinks_drunkenize($navTitle[2], $drunkeness);
                                $navTitle[2] = str_replace('*hic*', '', $navTitle[2]);
                            } else {
                                $navTitle[1] = drinks_drunkenize($navTitle[1], $drunkeness);
                                $navTitle[1] = str_replace('*hic*', '', $navTitle[1]);
                            }
                            $navTitle[1] = str_replace('*hic*', '', $navTitle[1]);
                            $navTitle = implode('?', $navTitle);
                            $navbysection[$section][$i][0] = stripslashes($navTitle);
                            unset($navTitle);
                        } else {
                            $navbysection[$section][$i][0] = drinks_drunkenize($navs[$i][0], $drunkeness);
                        }
                    }
                }
            }
            break;
    }
    return $args;
}
function drinks_dohook_private($hookname, $args)
{
    global $session;
    switch ($hookname) {
        case "dragonkill":
            set_module_pref("drunkeness", 0);
            break;
        case "ale":
            require_once "modules/drinks/misc_functions.php";
            $texts = drinks_gettexts();
            $drinktext = modulehook("drinks-text", $texts);
            $drunk = get_module_pref("drunkeness");
            $drunklist = array(-1 => "stone cold sober", 0 => "quite sober", 1 => "barely buzzed", 2 => "pleasantly buzzed", 3 => "almost drunk", 4 => "barely drunk", 5 => "solidly drunk", 6 => "sloshed", 7 => "hammered", 8 => "really hammered", 9 => "almost unconscious", 10 => "about to pass out");
            $drunklist = translate_inline($drunklist);
            $drunk = round($drunk / 10 - 0.5, 0);
            if ($drunk > 10) {
                $drunk = 10;
            }
            $hard = "";
            if (get_module_pref('harddrinks') >= get_module_setting('hardlimit')) {
                tlschema($drinktexts['schemas']['toomany']);
                output_notl("`n`n");
                $remark = translate_inline($drinktexts['toomany']);
                $remark = str_replace("{lover}", $partner . "`0", $remark);
                $remark = str_replace("{barkeep}", $drinktext['barkeep'] . "`0", $remark);
                output_notl("%s`n", $remark);
                output($drinktexts['toomany']);
                output_notl("`n");
                $hard = "AND harddrink=0";
            }
            output("`n`n`7You now feel %s.`n`n", $drunklist[$drunk]);
            $sql = "SELECT * FROM " . db_prefix("drinks") . " WHERE active=1 {$hard} ORDER BY costperlevel";
            $result = db_query($sql);
            while ($row = db_fetch_assoc($result)) {
                $row['allowdrink'] = 1;
                $row = modulehook("drinks-check", $row);
                if ($row['allowdrink']) {
                    $drinkcost = $row['costperlevel'] * $session['user']['level'];
                    // No hotkeys on drinks.  Too easy for them to interfere
                    // with and modify stock navs randomly.
                    addnav(array(" ?%s  (`^%s`0 gold)", $row['name'], $drinkcost), "runmodule.php?module=drinks&act=buy&id={$row['drinkid']}");
                }
            }
            break;
        case "newday":
            set_module_pref("harddrinks", 0);
            $drunk = get_module_pref("drunkeness");
            if ($drunk > 66) {
                output("`0Waking up in the gutter after last night's adventures, you `\$lose some Stamina`0 clutching your head and moaning.`n`n");
                $args['turnstoday'] .= ", Hangover: -1";
                $session['user']['turns']--;
                // Sanity check
                if ($session['user']['turns'] < 0) {
                    $session['user']['turns'] = 0;
                }
            }
            set_module_pref("drunkeness", 0);
            break;
        case "header-graveyard":
            set_module_pref("drunkeness", 0);
            break;
        case "soberup":
            $soberval = $args['soberval'];
            $sobermsg = $args['sobermsg'];
            $drunk = get_module_pref("drunkeness");
            if ($drunk > 0) {
                $drunk = round($drunk * $soberval, 0);
                set_module_pref("drunkeness", $drunk);
                if ($sobermsg) {
                    if ($args['schema']) {
                        tlschema($args['schema']);
                    }
                    output($sobermsg);
                    if ($args['schema']) {
                        tlschema();
                    }
                }
            }
            break;
        case "commentary":
            if ($session['user']['superuser'] & SU_IS_GAMEMASTER && substr($args['commentline'], 0, 5) == "/game") {
                break;
            }
            require_once "modules/drinks/drunkenize.php";
            $drunk = get_module_pref("drunkeness");
            if ($drunk > 50) {
                $args['commenttalk'] = "drunkenly {$args['commenttalk']}";
            }
            $commentline = $args['commentline'];
            if (substr($commentline, 0, 1) != ":" && substr($commentline, 0, 2) != "::" && substr($commentline, 0, 3) != "/me" && $drunk > 0) {
                $args['commentline'] = drinks_drunkenize($commentline, $drunk);
            }
            break;
        case "superuser":
            if ($session['user']['superuser'] & SU_EDIT_USERS || get_module_pref("canedit")) {
                addnav("Module Configurations");
                // Stick the admin=true on so that when we call runmodule it'll
                // work to let us edit drinks even when the module is deactivated.
                addnav("Drinks Editor", "runmodule.php?module=drinks&act=editor&admin=true");
            }
            break;
    }
    //end select
    return $args;
}