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(); }
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); }
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; } } }
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; } }