示例#1
0
function post_gameover_events()
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('sys'));
    $result = $db->query("SELECT name,pid FROM {$tablepre}players WHERE type=0");
    while ($udata = $db->fetch_array($result)) {
        $edata = \player\fetch_playerdata_by_pid($udata['pid']);
        if ($edata === NULL) {
            continue;
        }
        $res = $db->query("SELECT n_achievements FROM {$gtablepre}users WHERE username='******'name']}'");
        if (!$db->num_rows($res)) {
            continue;
        }
        $zz = $db->fetch_array($res);
        $ach = $zz['n_achievements'];
        $achdata = explode(';', $ach);
        $maxid = count($achdata) - 2;
        foreach (\skillbase\get_acquired_skill_array($edata) as $key) {
            if (defined('MOD_SKILL' . $key . '_INFO') && defined('MOD_SKILL' . $key . '_ACHIEVEMENT_ID')) {
                if (strpos(constant('MOD_SKILL' . $key . '_INFO'), 'achievement;') !== false) {
                    $id = (int) constant('MOD_SKILL' . $key . '_ACHIEVEMENT_ID');
                    if ($id > $maxid) {
                        $maxid = $id;
                    }
                    if (isset($achdata[$id])) {
                        $s = (string) $achdata[$id];
                    } else {
                        $s = '';
                    }
                    $f = false;
                    if (strpos(constant('MOD_SKILL' . $key . '_INFO'), 'daily;') == false) {
                        $f = true;
                    }
                    if ($s != '' && $s != 'VWXYZ') {
                        $f = true;
                    }
                    if ($f) {
                        $func = '\\skill' . $key . '\\finalize' . $key;
                        $achdata[$id] = $func($edata, $s);
                    }
                }
            }
        }
        $nachdata = '';
        for ($i = 0; $i <= $maxid; $i++) {
            $nachdata .= $achdata[$i] . ';';
        }
        $db->query("UPDATE {$gtablepre}users SET n_achievements = '{$nachdata}' WHERE username='******'name']}'");
    }
    $chprocess();
}
示例#2
0
文件: main.php 项目: nahakyuu/dts
function kill(&$pa, &$pd)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    if ($pa['type'] == 0 && \skillbase\skill_query(433, $pd) && $pa['user_commanded'] == 1) {
        eval(import_module('sys', 'logger'));
        $log .= '<span class="yellow">敌人的技能「断肠」使你失去了所有称号技能!</span>';
        $arr = \skillbase\get_acquired_skill_array($pa);
        foreach ($arr as $key) {
            if (defined('MOD_SKILL' . $key . '_INFO') && strpos(constant('MOD_SKILL' . $key . '_INFO'), 'club;') !== false && strpos(constant('MOD_SKILL' . $key . '_INFO'), 'hidden;') === false) {
                \skillbase\skill_lost($key, $pa);
            }
        }
        \skillbase\skill_acquire(433, $pa);
    }
    $chprocess($pa, $pd);
}
示例#3
0
文件: main.php 项目: sillycross/dts
function player_kill_enemy(&$pa, &$pd, $active)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    $chprocess($pa, $pd, $active);
    eval(import_module('logger', 'skillbase'));
    if (\skillbase\skill_query(21, $pd)) {
        $npcdata = evonpc($pd['type'], $pd['name']);
        $log .= '<span class="yellow">' . $pd['name'] . '却没死去,反而爆发出真正的实力!</span><br>';
        if ($npcdata) {
            addnews($now, 'evonpc', $pd['name'], $npcdata['name'], $pa['name']);
            foreach ($npcdata as $key => $val) {
                $pd[$key] = $val;
            }
            \skillbase\skill_lost(21, $pd);
            //进化时失去所有专有技能
            foreach (\skillbase\get_acquired_skill_array($pd) as $key) {
                if (defined('MOD_SKILL' . $key . '_INFO') && strpos(constant('MOD_SKILL' . $key . '_INFO'), 'club;') !== false && strpos(constant('MOD_SKILL' . $key . '_INFO'), 'unique;') !== false) {
                    \skillbase\skill_lost($key, $pd);
                }
            }
            //然后获得新的专有技能
            if (is_array($npcdata['skills'])) {
                $npcdata['skills']['460'] = '0';
                foreach ($npcdata['skills'] as $key => $value) {
                    if (defined('MOD_SKILL' . $key)) {
                        \skillbase\skill_acquire($key, $pd);
                        if ($value > 0) {
                            \skillbase\skill_setvalue($key, 'lvl', $value, $pd);
                        }
                    }
                }
            }
            $pd['npc_evolved'] = 1;
        }
    }
}
示例#4
0
文件: main.php 项目: winddramon/dts
function get_nskillpage($pn)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('player', 'clubbase'));
    $___TEMP_inclist = array();
    foreach (\skillbase\get_acquired_skill_array($pn) as $key) {
        if (defined('MOD_SKILL' . $key . '_INFO') && strpos(constant('MOD_SKILL' . $key . '_INFO'), 'club;') !== false && strpos(constant('MOD_SKILL' . $key . '_INFO'), 'unique;') !== false) {
            array_push($___TEMP_inclist, template(constant('MOD_SKILL' . $key . '_NDESC')));
        }
    }
    foreach ($___TEMP_inclist as $___TEMP_template_name) {
        include $___TEMP_template_name;
    }
}