Example #1
0
function activate76()
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('skill76', 'player', 'logger', 'sys'));
    \player\update_sdata();
    if (!\skillbase\skill_query(76) || !check_unlocked76($sdata)) {
        $log .= '你没有这个技能!<br>';
        return;
    }
    $st = check_skill76_state($sdata);
    if ($st == 0) {
        $log .= '你不能使用这个技能!<br>';
        return;
    }
    if ($st == 1) {
        $log .= '你已经发动过这个技能了!<br>';
        return;
    }
    if ($st == 2) {
        $log .= '技能冷却中!<br>';
        return;
    }
    \skillbase\skill_setvalue(76, 'lastuse', $now);
    $rage = 100;
    addnews(0, 'bskill76', $name);
    $log .= '<span class="lime">技能「充能」发动成功。</span><br>';
}
Example #2
0
function kill(&$pa, &$pd)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    $chprocess($pa, $pd);
    eval(import_module('sys', 'logger'));
    if (in_array($pd['state'], array(20, 21, 22, 23, 24, 25, 27, 29))) {
        if (\skillbase\skill_query(58, $pd) && (int) \skillbase\skill_getvalue(58, 'r', $pd) == 0) {
            \skillbase\skill_setvalue(58, 'r', '1', $pd);
            if ($pd['state'] == 27 && !$pd['sourceless']) {
                $log .= "<span class=\"lime\">但是,由于你及时按下了BOMB键,你原地满血复活了!</span><br>";
                $w_log = "<span class=\"lime\">但是,由于{$pd['name']}及时按下了BOMB键,其原地满血复活了!</span><br>";
                \logger\logsave($pa['pid'], $now, $w_log, 'b');
            } else {
                //击杀复活提示将接管player_kill_enemy进行
            }
            $pd['state'] = 0;
            $pd['hp'] = $pd['mhp'];
            $pd['skill58_flag'] = 1;
            if ($pd['type'] == 0) {
                $alivenum++;
            }
            save_gameinfo();
            addnews($now, 'revival', $pd['name']);
            //满血复活时加成效果(这个其实是技能“新生”的内容,但直接做在一起好了)
            $pd['mhp'] += $pd['lvl'] * 2;
            $pd['hp'] += $pd['lvl'] * 2;
            $pd['def'] += $pd['lvl'] * 5;
        }
    }
}
Example #3
0
function gamestateupdate()
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    $chprocess();
    eval(import_module('sys', 'gameflow_combo'));
    if ($gamestate < 40 && $gamestate >= 30 && $alivenum <= $combolimit) {
        //判定进入连斗条件1:停止激活时玩家数少于特定值
        $gamestate = 40;
        addnews($now, 'combo');
        systemputchat($now, 'combo');
    } elseif ($gamestate < 40 && $gamestate >= 20 && $combonum && $deathnum >= $combonum) {
        //判定进入连斗条件2:死亡人数超过特定公式计算出的值
        $real_combonum = $deathlimit + ceil($validnum / $deathdeno) * $deathnume;
        if ($deathnum >= $real_combonum) {
            $gamestate = 40;
            addnews($now, 'combo');
            systemputchat($now, 'combo');
        } else {
            $combonum = $real_combonum;
            addnews($now, 'comboupdate', $combonum, $deathnum);
            systemputchat($now, 'comboupdate', $combonum);
        }
    }
}
Example #4
0
function strike_prepare(&$pa, &$pd, $active)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    if ($pa['bskill'] != 440) {
        return $chprocess($pa, $pd, $active);
    }
    if (!\skillbase\skill_query(440, $pa) || !check_unlocked440($pa)) {
        eval(import_module('logger'));
        $log .= '你尚未解锁这个技能!';
        $pa['bskill'] = 0;
    } else {
        eval(import_module('sys', 'skill440'));
        $l = \skillbase\skill_getvalue(440, 'lastuse', $pa);
        if ($pd['type'] == 0 && $now - $l >= $skill440_cd) {
            eval(import_module('logger'));
            if ($active) {
                $log .= "<span class=\"lime\">你对{$pd['name']}发动了技能「父爱」!</span><br>";
            } else {
                $log .= "<span class=\"lime\">{$pa['name']}对你发动了技能「父爱」!</span><br>";
            }
            \skillbase\skill_setvalue(440, 'lastuse', $now, $pa);
            $pd['skill440_flag'] = 1;
            addnews(0, 'bskill440', $pa['name'], $pd['name']);
        } else {
            if ($active) {
                eval(import_module('logger'));
                $log .= '因对方非玩家或其他原因而未发动技能。<br>';
            }
            $pa['bskill'] = 0;
        }
    }
    $chprocess($pa, $pd, $active);
}
Example #5
0
function antiAFK($timelimit = 0)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('sys', 'gameflow_antiafk'));
    if (empty($timelimit)) {
        $timelimit = $antiAFKertime;
    }
    $timelimit *= 60;
    $deadline = $now - $timelimit;
    $result = $db->query("SELECT * FROM {$tablepre}players WHERE type=0 AND endtime < '{$deadline}' AND hp>'0' AND state<'10'");
    while ($al = $db->fetch_array($result)) {
        $afkerlist[$al['pid']] = array('name' => $al['name'], 'pls' => $al['pls']);
    }
    if (empty($afkerlist)) {
        return;
    }
    foreach ($afkerlist as $kid => $kcontent) {
        $db->query("UPDATE {$tablepre}players SET hp='0',state='32' WHERE pid='{$kid}' AND type='0' AND hp>'0' AND state<'10'");
        if ($db->affected_rows()) {
            addnews($now, 'death32', $kcontent['name'], '', $kcontent['pls']);
            $alivenum--;
            $deathnum++;
        }
    }
    save_gameinfo();
    return;
}
Example #6
0
function strike_prepare(&$pa, &$pd, $active)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    if ($pa['bskill'] != 60) {
        return $chprocess($pa, $pd, $active);
    }
    if (!\skillbase\skill_query(60, $pa) || !check_unlocked60($pa)) {
        eval(import_module('logger'));
        $log .= '你尚未解锁这个技能!';
        $pa['bskill'] = 0;
    } else {
        $rcost = get_rage_cost60($pa);
        if ($pa['rage'] >= $rcost) {
            eval(import_module('logger'));
            if ($active) {
                $log .= "<span class=\"lime\">你对{$pd['name']}发动了技能「恐惧」!</span><br>";
            } else {
                $log .= "<span class=\"lime\">{$pa['name']}对你发动了技能「恐惧」!</span><br>";
            }
            $pa['rage'] -= $rcost;
            $pa['skill60_flag'] = floor((1 - min(1, $pd['hp'] / $pd['mhp'])) * 100);
            addnews(0, 'bskill60', $pa['name'], $pd['name']);
        } else {
            if ($active) {
                eval(import_module('logger'));
                $log .= '怒气不足或其他原因不能发动。<br>';
            }
            $pa['bskill'] = 0;
        }
    }
    $chprocess($pa, $pd, $active);
}
Example #7
0
function strike_prepare(&$pa, &$pd, $active)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    if ($pa['bskill'] != 253) {
        return $chprocess($pa, $pd, $active);
    }
    if (!\skillbase\skill_query(253, $pa) || !check_unlocked253($pa)) {
        eval(import_module('logger'));
        $log .= '你尚未解锁这个技能!';
        $pa['bskill'] = 0;
    } else {
        $rcost = get_rage_cost253($pa);
        if ($pa['rage'] >= $rcost) {
            eval(import_module('logger'));
            if ($active) {
                $log .= "<span class=\"lime\">你对{$pd['name']}发动了技能「天威」!</span><br>";
            } else {
                $log .= "<span class=\"lime\">{$pa['name']}对你发动了技能「天威」!</span><br>";
            }
            $pa['rage'] -= $rcost;
            addnews(0, 'bskill253', $pa['name'], $pd['name']);
            $pd['old_hp'] = $pd['hp'];
            //记录战斗开始时的hp,用于判定返还怒气
        } else {
            if ($active) {
                eval(import_module('logger'));
                $log .= '怒气不足或其他原因不能发动。<br>';
            }
            $pa['bskill'] = 0;
        }
    }
    $chprocess($pa, $pd, $active);
}
Example #8
0
function strike_prepare(&$pa, &$pd, $active)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    if ($pa['bskill'] != 75) {
        return $chprocess($pa, $pd, $active);
    }
    if (!\skillbase\skill_query(75, $pa) || !check_unlocked75($pa)) {
        eval(import_module('logger'));
        $log .= '你尚未解锁这个技能!';
        $pa['bskill'] = 0;
    } else {
        eval(import_module('sys', 'skill75'));
        $l = \skillbase\skill_getvalue(75, 'lastuse', $pa);
        if ($now - $l >= $skill75_cd && $pa['wep_kind'] == 'K') {
            eval(import_module('logger'));
            if ($active) {
                $log .= "<span class=\"lime\">你对{$pd['name']}发动了技能「剑心」!</span><br>";
            } else {
                $log .= "<span class=\"lime\">{$pa['name']}对你发动了技能「剑心」!</span><br>";
            }
            \skillbase\skill_setvalue(75, 'lastuse', $now, $pa);
            addnews(0, 'bskill75', $pa['name'], $pd['name']);
        } else {
            if ($active) {
                eval(import_module('logger'));
                $log .= '冷却时间未到或其他原因不能发动。<br>';
            }
            $pa['bskill'] = 0;
        }
    }
    $chprocess($pa, $pd, $active);
}
Example #9
0
function strike_prepare(&$pa, &$pd, $active)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    if ($pa['bskill'] != 36) {
        return $chprocess($pa, $pd, $active);
    }
    if (!\skillbase\skill_query(36, $pa) || !check_unlocked36($pa)) {
        eval(import_module('logger'));
        $log .= '你尚未解锁这个技能!';
        $pa['bskill'] = 0;
    } else {
        $rcost = get_rage_cost36($pa);
        if ($pa['rage'] >= $rcost && $pa['wepk'] == 'WP') {
            eval(import_module('logger'));
            if ($active) {
                $log .= "<span class=\"lime\">你对{$pd['name']}发动了技能「偷袭」!</span><br>";
            } else {
                $log .= "<span class=\"lime\">{$pa['name']}对你发动了技能「偷袭」!</span><br>";
            }
            $pa['rage'] -= $rcost;
            addnews(0, 'bskill36', $pa['name'], $pd['name']);
        } else {
            if ($active) {
                eval(import_module('logger'));
                $log .= '怒气不足或其他原因不能发动。<br>';
            }
            $pa['bskill'] = 0;
        }
    }
    $chprocess($pa, $pd, $active);
}
Example #10
0
function activate261()
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('skill261', 'player', 'logger', 'sys', 'itemmain'));
    \player\update_sdata();
    if (!\skillbase\skill_query(261) || !check_unlocked261($sdata)) {
        $log .= '你没有这个技能!<br>';
        return;
    }
    $st = check_skill261_state($sdata);
    if ($st == 0) {
        $log .= '你不能使用这个技能!<br>';
        return;
    }
    if ($st == 2) {
        $log .= '你已经使用过这个技能了!<br>';
        return;
    }
    \skillbase\skill_setvalue(261, 'lastuse', $now);
    $wp = $wp + $wp;
    addnews(0, 'bskill261', $name);
    $log .= '<span class="red">技能「决战」发动成功。</span><br>';
}
Example #11
0
function activate430()
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('skill430', 'player', 'logger', 'sys', 'itemmain'));
    \player\update_sdata();
    if (!\skillbase\skill_query(430) || !check_unlocked430($sdata)) {
        $log .= '你没有这个技能!<br>';
        return;
    }
    $st = check_skill430_state($sdata);
    if ($st == 0) {
        $log .= '你不能使用这个技能!<br>';
        return;
    }
    if ($st == 2) {
        $log .= '技能冷却中!<br>';
        return;
    }
    \skillbase\skill_setvalue(430, 'lastuse', $now);
    $file = GAME_ROOT . "./include/modules/base/itemmain/config/mapitem.config.php";
    //真是丑陋!
    $itemlist = openfile($file);
    $in = sizeof($itemlist);
    $i = rand(1, $in - 1);
    list($iarea, $imap, $inum, $iname, $ikind, $ieff, $ista, $iskind) = explode(',', $itemlist[$i]);
    $itm0 = $iname;
    $itme0 = $ieff;
    $itms0 = $ista;
    $itmsk0 = $iskind;
    $itmk0 = $ikind;
    addnews(0, 'bskill430', $name, $iname);
    \itemmain\itemget();
}
Example #12
0
function add_once_area($atime)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('sys', 'map'));
    if ($gamestate > 10 && $now > $atime) {
        $plsnum = sizeof($plsinfo) - 1;
        $areanum += $areaadd;
        for ($x = 0; $x <= $areanum; $x++) {
            if ($x > $plsnum) {
                continue;
            }
            add_new_killarea($arealist[$x], $atime);
        }
        if ($areanum >= $plsnum) {
            $areaaddlist = array_slice($arealist, $areanum - $areaadd + 1);
            $areanum = $plsnum;
        } else {
            if ($hack > 0) {
                $hack--;
            }
            $areaaddlist = array_slice($arealist, $areanum - $areaadd + 1, $areaadd);
            movehtm();
        }
        addnews($atime, 'addarea', $areaaddlist, $weather);
        systemputchat($atime, 'areaadd', $areaaddlist);
        check_addarea_gameover($atime);
    } else {
        return;
    }
}
Example #13
0
function activate232()
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('skill232', 'player', 'logger', 'sys'));
    \player\update_sdata();
    if (!\skillbase\skill_query(232) || !check_unlocked232($sdata)) {
        $log .= '你没有这个技能!<br>';
        return;
    }
    $st = check_skill232_state($sdata);
    if ($st == 0) {
        $log .= '你不能使用这个技能!<br>';
        return;
    }
    if ($st == 2) {
        $log .= '技能冷却中!<br>';
        return;
    }
    \skillbase\skill_setvalue(232, 'lastuse', $now);
    $clv = \skillbase\skill_getvalue(232, 'lvl');
    $sc = $shieldgain[$clv];
    if ($hp < $mhp + $sc) {
        $hp = $mhp + $sc;
    }
    addnews(0, 'bskill232', $name);
    $log .= '<span class="lime">技能「力场」发动成功。</span><br>';
}
Example #14
0
function activate247()
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('skill247', 'player', 'logger', 'sys'));
    \player\update_sdata();
    if (!\skillbase\skill_query(247) || !check_unlocked247($sdata)) {
        $log .= '你没有这个技能!<br>';
        return;
    }
    $st = check_skill247_state($sdata);
    if ($st == 0) {
        $log .= '你不能使用这个技能!<br>';
        return;
    }
    if ($st == 1) {
        $log .= '你已经发动过这个技能了!<br>';
        return;
    }
    if ($st == 2) {
        $log .= '技能冷却中!<br>';
        return;
    }
    $trapitem = array('itm' => '毒性【AC大逃杀革新企划书】', 'itmk' => 'TO', 'itme' => get_skill247_trap_eff(), 'itms' => 2, 'itmsk' => '');
    addnews(0, 'bskill247', $name);
    \trap\trap_use($trapitem);
    \trap\trap_use($trapitem);
    $log .= '<span class="lime">技能「挖坑」发动成功。</span><br>';
    \skillbase\skill_setvalue(247, 'lastuse', $now);
}
Example #15
0
function strike_prepare(&$pa, &$pd, $active)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    if ($pa['bskill'] != 46) {
        return $chprocess($pa, $pd, $active);
    }
    if (!\skillbase\skill_query(46, $pa) || !check_unlocked46($pa)) {
        eval(import_module('logger'));
        $log .= '你尚未解锁这个技能!';
        $pa['bskill'] = 0;
    } else {
        $remtime = (int) get_remaintime46($pa);
        if ($remtime >= 1) {
            eval(import_module('logger'));
            if ($active) {
                $log .= "<span class=\"lime\">你对{$pd['name']}发动了技能「暴打」!</span><br>";
            } else {
                $log .= "<span class=\"lime\">{$pa['name']}对你发动了技能「暴打」!</span><br>";
            }
            $remtime--;
            \skillbase\skill_setvalue(46, 'rmtime', $remtime, $pa);
            $pd['skill46_flag'] = 1;
            addnews(0, 'bskill46', $pa['name'], $pd['name']);
        } else {
            if ($active) {
                eval(import_module('logger'));
                $log .= '怒气不足或其他原因不能发动。<br>';
            }
            $pa['bskill'] = 0;
        }
    }
    $chprocess($pa, $pd, $active);
}
Example #16
0
function itemuse(&$theitem)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('sys', 'player', 'itemmain', 'logger'));
    $itm =& $theitem['itm'];
    $itmk =& $theitem['itmk'];
    $itme =& $theitem['itme'];
    $itms =& $theitem['itms'];
    $itmsk =& $theitem['itmsk'];
    if (strpos($itmk, 'p') === 0) {
        $log .= "你打开了<span class=\"yellow\">{$itm}</span>。<br>";
        $file = __DIR__ . '/config/present.config.php';
        $plist = openfile($file);
        $rand = rand(0, count($plist) - 1);
        list($in, $ik, $ie, $is, $isk) = explode(',', $plist[$rand]);
        $itm0 = $in;
        $itmk0 = $ik;
        $itme0 = $ie;
        $itms0 = $is;
        $itmsk0 = $isk;
        addnews($now, 'present', $name, $itm, $in);
        \itemmain\itms_reduce($theitem);
        \itemmain\itemget();
        return;
    } elseif (strpos($itmk, 'ygo') === 0) {
        $log .= "你打开了<span class=\"yellow\">{$itm}</span>。<br>";
        $file = __DIR__ . '/config/ygobox.config.php';
        $plist1 = openfile($file);
        $rand1 = rand(0, count($plist1) - 1);
        list($in, $ik, $ie, $is, $isk) = explode(',', $plist1[$rand1]);
        $itm0 = $in;
        $itmk0 = $ik;
        $itme0 = $ie;
        $itms0 = $is;
        $itmsk0 = $isk;
        addnews($now, 'present', $name, $itm, $in);
        \itemmain\itms_reduce($theitem);
        \itemmain\itemget();
        return;
    } elseif (strpos($itmk, 'fy') === 0) {
        $log .= "你打开了<span class=\"yellow\">{$itm}</span>。<br>";
        $file = __DIR__ . '/config/fybox.config.php';
        $plist1 = openfile($file);
        $rand1 = rand(0, count($plist1) - 1);
        list($in, $ik, $ie, $is, $isk) = explode(',', $plist1[$rand1]);
        $itm0 = $in;
        $itmk0 = $ik;
        $itme0 = $ie;
        $itms0 = $is;
        $itmsk0 = $isk;
        addnews($now, 'present', $name, $itm, $in);
        \itemmain\itms_reduce($theitem);
        \itemmain\itemget();
        return;
    }
    $chprocess($theitem);
}
function lottery_dohook($hookname, $args)
{
    global $session;
    switch ($hookname) {
        case "newday":
            $numbers = get_module_setting("todaysnumbers");
            $n = $numbers;
            output("`n`@Today's lottery numbers are `^%s-%s-%s-%s`0`n", $n[0], $n[1], $n[2], $n[3]);
            $roundnum = get_module_setting("roundnum");
            $pround = get_module_pref("roundnum");
            if ($roundnum > $pround) {
                if (get_module_pref("pick") === $numbers) {
                    $prize = get_module_setting("prize");
                    if ($prize > "" && $pround < $roundnum) {
                        rawoutput("<font size='+1'>");
                        output("`\$You won today's lottery!`0`n");
                        rawoutput("</font>");
                        output("`\$The jackpot is `^^%s`\$ gold, money that has been deposited in to your bank account!`n", $prize);
                        $session['user']['goldinbank'] += $prize;
                        debuglog("won {$prize} gold on lottery");
                        addnews("`@%s`@ won `^%s`@ gold in the lottery!`0", $session['user']['name'], $prize);
                    }
                }
                set_module_pref("pick", "");
            }
            break;
        case "newday-runonce":
            $numbers = array();
            for ($i = 0; $i < 4; $i++) {
                $numbers[$i] = e_rand(0, 9);
            }
            sort($numbers);
            set_module_setting("todaysnumbers", join("", $numbers));
            $sql = "SELECT count(*) AS c FROM " . db_prefix("module_userprefs") . " WHERE modulename='lottery' AND setting='pick' AND value='" . join("", $numbers) . "'";
            $result = db_query($sql);
            $row = db_fetch_assoc($result);
            if ($row['c'] > 0) {
                //split the jackpot among winners.
                $prize = round(get_module_setting("currentjackpot") / $row['c'], 0);
                set_module_setting("prize", $prize);
                set_module_setting("currentjackpot", get_module_setting("basepot"));
                set_module_setting("howmany", $row['c']);
            } else {
                //the jackpot rolls over.
                set_module_setting("prize", 0);
                set_module_setting("howmany", 0);
            }
            set_module_setting("roundnum", get_module_setting("roundnum") + 1);
            break;
        case "inn":
            addnav("Things to do");
            addnav(array("%s`0's Lottery", getsetting('barkeep', '`tCedrik')), "runmodule.php?module=lottery&op=store");
            break;
    }
    return $args;
}
Example #18
0
function gamestate_start_game()
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('sys'));
    $gamestate = 20;
    addnews($starttime, 'newgame', $gamenum);
    systemputchat($starttime, 'newgame');
}
Example #19
0
function kill(&$pa, &$pd)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    $chprocess($pa, $pd);
    eval(import_module('sys', 'logger'));
    if (in_array($pd['state'], array(20, 21, 22, 23, 24, 25, 27, 29))) {
        if (\skillbase\skill_query(427, $pd)) {
            if ($pa['type'] == 88 || $pa['type'] == 1) {
                $log .= "<span class=\"linen\">都告诉你了,对某些NPC无效……快去死吧。</span><br>";
                return;
            }
            \skillbase\skill_setvalue(427, 'r', '1', $pd);
            if ($pd['state'] == 27 && !$pd['sourceless']) {
                $log .= "<span class=\"lime\">但是,由于你及时按下了BOMB键,你原地满血复活了!</span><br>";
                $w_log = "<span class=\"lime\">但是,由于{$pd['name']}及时按下了BOMB键,其原地满血复活了!</span><br>";
                \logger\logsave($pa['pid'], $now, $w_log, 'b');
            } else {
                //击杀复活提示将接管player_kill_enemy进行
            }
            $pd['state'] = 0;
            $pd['hp'] = $pd['mhp'];
            $pd['skill427_flag'] = 1;
            $deathnum--;
            if ($pd['type'] == 0) {
                $alivenum++;
            }
            save_gameinfo();
            if (\skillbase\skill_query(424, $pd)) {
                $clv = \skillbase\skill_getvalue(424, 'lvl', $pd);
                $clv = $clv - 2;
                if ($clv < 0) {
                    $clv = 0;
                }
                \skillbase\skill_setvalue(424, 'lvl', $clv, $pd);
            }
            //陷阱杀人得技能点一起放在这里
            if ($pd['state'] == 27) {
                $pa['skillpoint'] += 2;
                if (\skillbase\skill_query(424, $pa)) {
                    $clv = \skillbase\skill_getvalue(424, 'lvl', $pa);
                    $clv++;
                    \skillbase\skill_setvalue(424, 'lvl', $clv, $pa);
                }
            }
            addnews($now, 'revival', $pd['name']);
        }
    }
}
Example #20
0
function itemmix_success()
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('sys', 'player', 'logger'));
    $log .= "<span class=\"yellow\">{$itmstr}</span>合成了<span class=\"yellow\">{$itm0}</span><br>";
    addnews($now, 'itemmix', $name, $itm0);
    $wd += 1;
    if (strpos($itmk0, 'H') === 0 && $club == 16 && $itms0 !== $nosta) {
        $itms0 = ceil($itms0 * 2);
    } elseif (($itmk0 == 'EE' || $itmk0 == 'ER') && $club == 7) {
        $itme0 *= 5;
    }
    \itemmain\itemget();
}
Example #21
0
function post_damage_news(&$pa, &$pd, $active)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    $d = $pa['dmg_dealt'];
    $p1 = $pa['name'];
    $p2 = $pd['name'];
    eval(import_module('sys'));
    if ($d >= 100 && $d < 150) {
        $words = "{$p1}对{$p2}做出了{$d}点的攻击,一定是有练过。";
    } elseif ($d >= 150 && $d < 200) {
        $words = "{$p1}拿了什么神兵?{$p2}被打了{$d}滴血。";
    } elseif ($d >= 200 && $d < 250) {
        $words = "{$p1}简直不是人!{$p2}瞬间被打了{$d}点伤害。";
    } elseif ($d >= 250 && $d < 300) {
        $words = "{$p1}发出会心一击!{$p2}损失了{$d}点生命!";
    } elseif ($d >= 300 && $d < 400) {
        $words = "{$p1}使出浑身解数奋力一击!{$d}点伤害!{$p2}还安好吗?";
    } elseif ($d >= 400 && $d < 500) {
        $words = "{$p1}使出武器中内藏的力量!可怜的{$p2}受到了{$d}点的伤害!";
    } elseif ($d >= 500 && $d < 600) {
        $words = "{$p1}眼色一变使出绝招!{$p2}招架不住,生命减少{$d}点!";
    } elseif ($d >= 600 && $d < 750) {
        $words = "{$p1}手中的武器闪耀出七彩光芒!{$p2}招架不住,生命减少{$d}点!";
    } elseif ($d >= 750 && $d < 1000) {
        $words = "{$p1}受到天神的加护,打出惊天动地的一击——{$p2}被打掉{$d}点生命值!";
    } elseif ($d >= 1000 && $d < 5000) {
        $words = "{$p1}燃烧自己的生命得到了不可思议的力量!【{$d}】点的伤害值,没天理啊……{$p2}的HP足够么?";
    } elseif ($d >= 5000 && $d < 10000) {
        $words = "{$p1}超越自己的极限爆发出了震天动地的力量!在【{$d}】点的伤害后,{$p2}化作了一颗流星!";
    } elseif ($d >= 10000 && $d < 50000) {
        $words = "{$p1}运转百万匹周天,吐气扬声,一道霸气的光束过后,在【{$d}】点的伤害下,{$p2}还活着么?";
    } elseif ($d >= 50000 && $d < 200000) {
        $words = "{$p1}已然和手中的武器成为一体!随着一声令大地崩塌的长啸,{$p2}吃下了【{$d}】点的伤害!";
    } elseif ($d >= 200000 && $d < 500000) {
        $words = "天空一道惊雷划过,{$p1}站在战场上,而{$p2}因为受到了【{$d}】点的伤害现在已经不见踪影!";
    } elseif ($d >= 500000) {
        $words = "将{$p2}击飞出【{$d}】的{$p1}业已经天下无敌!";
    } else {
        $words = '';
    }
    if ($words) {
        addnews(0, 'damage', $words);
    }
    return;
}
function peerpressure_runevent($type)
{
    global $session;
    $session['user']['specialinc'] = "module:peerpressure";
    // For translation reasons, you cannot really substitute in his/her
    // since the gender can change other things
    if ($session['user']['sex']) {
        addnews("`&%s`7 heroically decided to seek out `@The Green Dragon`7 with cheers of encouragement from her peers ringing in her ears.", $session['user']['name']);
    } else {
        addnews("`&%s`7 heroically decided to seek out `@The Green Dragon`7 with cheers of encouragement from his peers ringing in his ears.", $session['user']['name']);
    }
    output("`2Wandering the village, going about your business, you are suddenly surrounded by a group of villagers.");
    output("They wonder why such an experienced adventurer as yourself hasn't slain a dragon yet.");
    output("You mutter some embarrassed excuses but they aren't listening.");
    output("They crowd around you closer, and lift you up on their shoulders.");
    $isforest = 0;
    $vloc = modulehook('validforestloc', array());
    foreach ($vloc as $i => $l) {
        if ($session['user']['location'] == $l) {
            $isforest = 1;
            break;
        }
    }
    if ($isforest || count($vloc) == 0) {
        output("`n`nCheering your name the whole way, they carry you into the forest, and right to the mouth of a cave outside the town!`n`n");
    } else {
        $key = array_rand($vloc);
        output("`n`nCheering your name the whole way, they carry you far into the forest, and right to the mouth of a cave outside the town of %s!`n`n", $key);
        $session['user']['location'] = $key;
    }
    output("Still cheering your name, they put you down and eagerly wait for you to enter and slay that dragon.`n`n");
    output("You know that you'd never live it down if you tried to back out now.");
    output("Swallowing your fear as best you can, you enter the cave.");
    if (is_module_active("dragonplace")) {
        addnav("Enter the cave", "runmodule.php?module=dragonplace&op=cave");
    } else {
        addnav("Enter the cave", "dragon.php?nointro=1");
    }
    $session['user']['specialinc'] = "";
    checkday();
    //increment buffs, newday buffs, and heal... and probably throw people off in general
    $session['user']['specialinc'] = "module:peerpressure";
    apply_buff('peerpressure', array("name" => "`2Heroic Valor", "rounds" => 20, "atkmod" => 1 + get_module_pref("dayspast") / 100, "defmod" => 1 + get_module_pref("dayspast") / 100, "startmsg" => "`2You fight bravely, considering the pressure you're under.", "wearoff" => "`@The Green Dragon`2 has beaten and burnt the bravery out of you.", "schema" => "module-peerpressure"));
}
Example #23
0
function ss_sing($sn)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('sys', 'player', 'map', 'logger'));
    $r = $arte;
    if ($ss >= $r) {
        $ss -= $r;
        $log .= "消耗<span class=\"yellow\">{$r}</span>点歌魂,歌唱了<span class=\"yellow\">{$noiseinfo[$sn]}</span>。<br>";
    } else {
        $log .= "需要<span class=\"yellow\">{$r}</span>歌魂才能唱这首歌!<br>";
        return;
    }
    if ($sn == "Alicemagic") {
        $log .= "♪你說過在哭泣之後應該可以破涕而笑♪<br>\n\t\t\t\t\t\t♪我們的旅行 我不會忘♪<br>\n\t\t\t\t\t\t♪施展魔法 為了不再失去 我不會說再見♪<br>\n\t\t\t\t\t\t♪再次踏出腳步之時 將在某一天到來♪<br>";
        $db->query("INSERT INTO {$tablepre}chat (type,`time`,send,recv,msg) VALUES ('0','{$now}','{$name}','{$plsinfo}','♪你說過在哭泣之後應該可以破涕而笑♪')");
        $db->query("UPDATE {$tablepre}players SET def=def+30 WHERE `pls` ={$pls} AND hp>0 AND type=0 ");
        $def += 30;
        if (defined('MOD_NOISE')) {
            \noise\addnoise($pls, $sn, -1, -1);
        }
        addnews($now, 'song', $name, $plsinfo[$pls], $sn);
        return;
    } elseif ($sn == "Crow Song") {
        $log .= "♪从这里找一条路♪<br>\n\t\t\t\t\t\t♪找到逃离的生路♪<br>\n\t\t\t\t\t\t♪奏响激烈的摇滚♪<br>\n\t\t\t\t\t\t♪盯紧遥远的彼方♪<br>\n\t\t\t\t\t\t♪在这个连呼吸都难以为继的都市中♪<br>";
        $db->query("INSERT INTO {$tablepre}chat (type,`time`,send,recv,msg) VALUES ('0','{$now}','{$name}','{$plsinfo}','♪从这里找一条路♪')");
        $db->query("UPDATE {$tablepre}players SET att=att+30 WHERE `pls` ={$pls} AND hp>0 AND type=0 ");
        $att += 30;
        if (defined('MOD_NOISE')) {
            \noise\addnoise($pls, $sn, -1, -1);
        }
        addnews($now, 'song', $name, $plsinfo[$pls], $sn);
        return;
    } elseif ($sn == "KARMA") {
        $log .= "■<br>";
        $rp = 0;
        addnews($now, 'song', $name, $plsinfo[$pls], $sn);
        return;
    }
    return;
}
Example #24
0
function duel($time = 0, $keyitm = '')
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('sys', 'player'));
    if ($gamestate < 30) {
        return 30;
    } elseif ($gamestate >= 50) {
        return 51;
    } else {
        $time = $time == 0 ? $now : $time;
        $gamestate = 50;
        save_gameinfo();
        addnews($time, 'duelkey', $name, $keyitm);
        addnews($time, 'duel');
        systemputchat($time, 'duel');
        return 50;
    }
}
function lovers_dohook($hookname, $args)
{
    global $session;
    $partner = get_partner();
    switch ($hookname) {
        case "newday":
            set_module_pref("seenlover", 0);
            if ($session['user']['marriedto'] == 4294967295.0) {
                $dk = $session['user']['dragonkills'];
                // 0.7 seemed to be a perfect balance of no loss of charm.
                // 1.0 was too much.
                $dk = max(1, round(0.85 * sqrt($dk), 0));
                $charmloss = e_rand(1, $dk);
                $session['user']['charm'] -= $charmloss;
                output("`n`%You're  married,  so there's no reason to keep up that perfect image, and you let yourself go a little today ( You lose `\$%s charmpoint(s)`%).`n", $charmloss);
                if ($session['user']['charm'] <= 0) {
                    output("`bWhen  you  wake  up, you find a note next to you, reading`n`5Dear %s`5,`n", $session['user']['name']);
                    output("Despite  many  great  kisses, I find that I'm simply no longer attracted to you the way I used to be.`n`n");
                    output("Call  me fickle, call me flakey, but I need to move on.");
                    output("There are other warriors in the land, and I think some of them are really hot.");
                    output("So it's not you, it's me, etcetera etcetera.`n`n");
                    output("No hard feelings, Love,`n%s`b`n", $partner);
                    addnews("`\$%s`\$ has left %s`\$ to pursue \"other interests.\"`0", $partner, $session['user']['name']);
                    $session['user']['marriedto'] = 0;
                    $session['user']['charm'] = 0;
                }
            }
            break;
        case "inn":
            addnav("Things to do");
            if ($session['user']['sex'] == SEX_MALE) {
                addnav(array("F?Flirt with %s", $partner), "runmodule.php?module=lovers&op=flirt");
                addnav(array("Chat with %s", translate_inline(getsetting("bard", "`^Seth"))), "runmodule.php?module=lovers&op=chat");
            } else {
                addnav(array("F?Flirt with %s", $partner), "runmodule.php?module=lovers&op=flirt");
                addnav(array("Gossip with %s", translate_inline(getsetting("barmaid", "`%Violet"))), "runmodule.php?module=lovers&op=chat");
            }
            break;
    }
    return $args;
}
Example #26
0
function strike_prepare(&$pa, &$pd, $active)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    if ($pa['bskill'] != 47) {
        return $chprocess($pa, $pd, $active);
    }
    if (!\skillbase\skill_query(47, $pa) || !check_unlocked47($pa)) {
        eval(import_module('logger'));
        $log .= '你尚未解锁这个技能!';
        $pa['bskill'] = 0;
    } else {
        $rcost = get_rage_cost47($pa);
        if ($pa['rage'] >= $rcost && $pa['wep_kind'] == 'C') {
            eval(import_module('logger'));
            if ($active) {
                $log .= "<span class=\"lime\">你对{$pd['name']}发动了技能「花雨」!</span><br>";
            } else {
                $log .= "<span class=\"lime\">{$pa['name']}对你发动了技能「花雨」!</span><br>";
            }
            $pa['rage'] -= $rcost;
            addnews(0, 'bskill47', $pa['name'], $pd['name']);
            eval(import_module('ex_dmg_att'));
            $lis = array();
            foreach ($ex_attack_list as $key) {
                if ($key != 'f' && $key != 'k' && $key != 'd') {
                    array_push($lis, $key);
                }
            }
            $pa['skill47_flag'] = $lis[rand(0, count($lis) - 1)];
        } else {
            if ($active) {
                eval(import_module('logger'));
                $log .= '怒气不足或其他原因不能发动。<br>';
            }
            $pa['bskill'] = 0;
        }
    }
    $chprocess($pa, $pd, $active);
}
Example #27
0
function activate420()
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('skill420', 'player', 'logger', 'sys', 'itemmain'));
    \player\update_sdata();
    if (!\skillbase\skill_query(420) || !check_unlocked420($sdata)) {
        $log .= '你没有这个技能!<br>';
        return;
    }
    $st = check_skill420_state($sdata);
    if ($st == 0) {
        $log .= '你不能使用这个技能!<br>';
        return;
    }
    if ($st == 2) {
        $log .= '技能冷却中!<br>';
        return;
    }
    if ($skillpoint < 2) {
        $log .= '你的技能点不足!<br>';
        return;
    }
    $skillpoint = $skillpoint - 2;
    \skillbase\skill_setvalue(420, 'lastuse', $now);
    addnews(0, 'bskill420', $name);
    $r = rand(0, 9);
    if ($r == 9) {
        $log .= '<span class="yellow">“咕咕咕!”</span><span class="lime">技能「结晶」发动……成功?</span><br>';
    } else {
        $log .= '<span class="lime">技能「结晶」发动成功。</span><br>';
    }
    $nl = array('红色方块', '黄色方块', '蓝色方块', '绿色方块', '金色方块', '银色方块', '水晶方块', '黑色方块', '白色方块', '黄鸡方块');
    $itm0 = $nl[$r];
    $itme0 = 1;
    $itms0 = 1;
    $itmsk0 = '';
    $itmk0 = 'X';
    \itemmain\itemget();
}
Example #28
0
function itemuse_uee($itmn = 0)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('sys', 'player', 'logger'));
    $itm =& ${'itm' . $itmn};
    $itmk =& ${'itmk' . $itmn};
    $itme =& ${'itme' . $itmn};
    $itms =& ${'itms' . $itmn};
    $itmsk =& ${'itmsk' . $itmn};
    if (!$itms) {
        $log .= '此道具不存在,请重新选择。<br>';
        $mode = 'command';
        return;
    }
    if (!$itme) {
        $log .= "<span class=\"yellow\">{$itm}</span>已经没电,请寻找<span class=\"yellow\">电池</span>充电。<br>";
        $mode = 'command';
        return;
    }
    $hack_dice = rand(0, 99);
    $hack_proc = calculate_hack_proc_rate();
    if ($hack_dice < $hack_proc) {
        $hack = 1;
        $log .= '入侵禁区控制系统成功了!全部禁区都被解除了!<br>';
        \map\movehtm();
        addnews($now, 'hack', $name);
        save_gameinfo();
    } else {
        $log .= '可是,入侵禁区控制系统失败了……<br>';
    }
    $itme--;
    $log .= "消耗了<span class=\"yellow\">{$itm}</span>的电力。<br>";
    if ($itme <= 0) {
        $log .= "<span class=\"red\">{$itm}</span>的电池耗尽了。";
    }
    post_hack_events($itmn);
    return;
}
Example #29
0
function check_trapdef_proc()
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('sys', 'player', 'trap', 'logger'));
    $proc_rate = calculate_trapdef_proc_rate();
    $dice = rand(0, 99);
    if ($dice < $proc_rate) {
        //迎击触发
        if ($playerflag) {
            addnews($now, 'trapdef', $name, $trname, $itm0);
            if (!$selflag) {
                $w_log = "<span class=\"yellow\">{$name}触发了你设置的陷阱{$itm0},但是没有受到任何伤害!</span><br>";
                \logger\logsave($itmsk0, $now, $w_log, 'b');
            }
        }
        $log .= "糟糕,你触发了{$trperfix}陷阱<span class=\"yellow\">{$itm0}</span>!<br>不过,身上装备着的自动迎击系统启动了!<span class=\"yellow\">在迎击功能的保护下你毫发无伤。</span><br>";
        return 1;
    }
    return 0;
}
Example #30
0
function upgrade62()
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('skill62', 'player', 'logger'));
    \player\update_sdata();
    if (!\skillbase\skill_query(62) || !check_unlocked62($sdata)) {
        $log .= '你没有这个技能!<br>';
        return;
    }
    $clv = (int) \skillbase\skill_getvalue(62, 't');
    if ($clv == 0) {
        $log .= '发动次数达到了上限。<br>';
        return;
    }
    \skillbase\skill_setvalue(62, 't', $clv - 1);
    $mhp += 50;
    $hp += 50;
    addnews(0, 'bskill62', $name);
    $log .= '发动成功。<br>';
}