Exemple #1
0
function set_stun_period($t, &$pa)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('sys'));
    if ($gamestate >= 50) {
        $t = round($t / 3);
    }
    //死斗眩晕时间变为1/3
    $flag = 1;
    $ct = floor(getmicrotime() * 1000);
    $e = 0;
    if (\skillbase\skill_query(602, $pa)) {
        $e = (int) \skillbase\skill_getvalue(602, 'end', $pa);
        if ($ct >= $e) {
            $flag = 0;
        }
    } else {
        $flag = 0;
    }
    if ($flag == 0) {
        \skillbase\skill_acquire(602, $pa);
        \skillbase\skill_setvalue(602, 'start', $ct, $pa);
    }
    if ($ct + $t > $e) {
        $e = $ct + $t;
    }
    \skillbase\skill_setvalue(602, 'end', $e, $pa);
    $pa['new_stun_flag'] = 1;
}
Exemple #2
0
function get_alone_card_skill(&$pa = NULL)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('player', 'clubbase', 'cardbase'));
    $cid = $pa == NULL || $pa['pid'] == $ppid ? $card : $pa['card'];
    if (is_array($cards[$card]['skills'])) {
        $card_array = $cards[$cid];
    } else {
        return;
    }
    foreach ($card_array['skills'] as $sk => $sklvl) {
        $flag = 0;
        if ($card_array['club']) {
            foreach (array_keys($clublist) as $clubnum) {
                if (in_array($sk, $clublist[$clubnum]['skills'])) {
                    $flag = 1;
                }
            }
        }
        if (defined('MOD_SKILL' . $sk) && !$flag) {
            if ($pa == NULL || $pa['pid'] == $ppid) {
                \skillbase\skill_acquire($sk);
                \skillbase\skill_setvalue($sk, 'lvl', $sklvl);
            } else {
                \skillbase\skill_acquire($sk, $pa);
                \skillbase\skill_setvalue($sk, 'lvl', $sklvl, $pa);
            }
        }
    }
}
Exemple #3
0
function upgrade227()
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('player', 'logger', 'input'));
    $skillpara1 = (int) $skillpara1;
    if (!\skillbase\skill_query(227) || !check_unlocked227($sdata)) {
        $log .= '你没有这个技能。<br>';
        return;
    }
    if (!\sklearn_util\sklearn_basecheck($skillpara1) || !sklearn_checker227('is_learnable', $skillpara1)) {
        $log .= '你不可以学习这个技能!<br>';
        return;
    }
    if (!sklearn_checker227('now_learnable', $skillpara1)) {
        $log .= '现在尚没有足够资源学习这个技能!<br>';
        return;
    }
    if (\skillbase\skill_query($skillpara1)) {
        $log .= '你已经拥有这个技能了!<br>';
        return;
    }
    if ((int) \skillbase\skill_getvalue(227, 'l') != 0) {
        $log .= '你已经学习过一个技能了!<br>';
        return;
    }
    \skillbase\skill_setvalue(227, 'l', $skillpara1);
    \skillbase\skill_acquire($skillpara1);
    $log .= '学习成功。<br>';
}
Exemple #4
0
function upgrade43()
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('player', 'logger'));
    if (!\skillbase\skill_query(43) || !check_unlocked43($sdata)) {
        $log .= '你没有这个技能。<br>';
        return;
    }
    eval(import_module('input'));
    $val = (int) $skillpara1;
    if ($val != 1 && $val != 2) {
        $log .= '参数不合法。<br>';
        return;
    }
    if ($val == 1) {
        if (!\skillbase\skill_query(41)) {
            \skillbase\skill_acquire(41);
        }
        \skill41\unlock41($sdata);
    } else {
        if (!\skillbase\skill_query(42)) {
            \skillbase\skill_acquire(42);
        }
        \skill42\unlock42($sdata);
    }
    \skillbase\skill_lost(43);
    $log .= '选择成功。<br>';
}
Exemple #5
0
function skill_onload_event(&$pa)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    if (!\skillbase\skill_query(300, $pa)) {
        \skillbase\skill_acquire(300, $pa);
    }
    $chprocess($pa);
}
Exemple #6
0
function skill_onload_event(&$pa)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    if (strpos($pa['inf'], 'p') !== false) {
        \skillbase\skill_acquire(5, $pa);
    }
    $chprocess($pa);
}
Exemple #7
0
function skill_onload_event(&$pa)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('sys'));
    if ($gametype == 15 && !\skillbase\skill_query(313, $pa)) {
        \skillbase\skill_acquire(313, $pa);
    }
    $chprocess($pa);
}
Exemple #8
0
function skill_onload_event(&$pa)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('sys'));
    if (!in_array($gametype, $ach_ignore_mode) && !\skillbase\skill_query(306, $pa)) {
        \skillbase\skill_acquire(306, $pa);
    }
    $chprocess($pa);
}
Exemple #9
0
function club_acquire($clubid, &$pa = NULL)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('clubbase'));
    if ($pa == NULL) {
        eval(import_module('player'));
        $club = $clubid;
    } else {
        $pa['club'] = $clubid;
    }
    foreach ($clublist[$clubid]['skills'] as $key) {
        if (defined('MOD_SKILL' . $key)) {
            \skillbase\skill_acquire($key, $pa);
        }
    }
}
Exemple #10
0
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);
}
Exemple #11
0
function itemuse_uhf(&$theitem)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('sys', 'player', 'itemmain', 'logger', 'skillbase', 'skill2900'));
    $itm =& $theitem['itm'];
    $itmk =& $theitem['itmk'];
    $itme =& $theitem['itme'];
    $itms =& $theitem['itms'];
    $itmsk =& $theitem['itmsk'];
    if (strpos($itm, '测试用补给') !== false) {
        $log .= "你使用了测试用特效补给来获得BUFF。<br>";
        $lasttime = 15;
        $starttime = $now;
        \skillbase\skill_acquire(2900);
        \skillbase\skill_setvalue(2900, 'start', $starttime);
        \skillbase\skill_setvalue(2900, 'end', $starttime + $lasttime);
        \skillbase\skill_setvalue(2900, 'add_buff_effect', 200);
        \skillbase\skill_setvalue(2900, 'del_buff_effect', 200);
    }
}
Exemple #12
0
function strike_finish(&$pa, &$pd, $active)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    if (\skillbase\skill_query(221, $pa)) {
        eval(import_module('logger', 'skill221', 'skill600', 'sys'));
        $var_221 = get_skill221_lasttime($pa, $pd, $active);
        if (!\skillbase\skill_query(600, $pd)) {
            \skillbase\skill_acquire(600, $pd);
            $var_221_2 = $now;
        } else {
            $var_221_2 = \skillbase\skill_getvalue(600, 'end', $pd);
            if ($var_221_2 < $now) {
                $var_221_2 = $now;
            }
        }
        \skillbase\skill_setvalue(600, 'start', $var_221_2, $pd);
        \skillbase\skill_setvalue(600, 'end', $var_221_2 + $var_221, $pd);
    }
    $chprocess($pa, $pd, $active);
}
Exemple #13
0
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;
        }
    }
}
Exemple #14
0
function upgrade242()
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('player', 'clubbase', 'skill242', 'logger', 'input'));
    if (!\skillbase\skill_query(242) || !check_unlocked242($sdata)) {
        $log .= '你没有这个技能。<br>';
        return;
    }
    $remcnt = $lvl - (int) \skillbase\skill_getvalue(242, 'c');
    if ($remcnt <= 0) {
        $log .= '你现在不能改变技能。<br>';
        return;
    }
    $can_list = array();
    foreach ($clublist as $nowclub => $arr) {
        if ($nowclub != $club) {
            foreach ($arr['skills'] as $skillid) {
                if (\sklearn_util\sklearn_basecheck($skillid) && !in_array($skillid, $sk242_cannot_list)) {
                    array_push($can_list, $skillid);
                }
            }
        }
    }
    $sk = $can_list[rand(0, count($can_list) - 1)];
    $ori_sk = (int) \skillbase\skill_getvalue(242, 'i');
    if ($ori_sk) {
        \skillbase\skill_lost($ori_sk);
    }
    \skillbase\skill_acquire($sk);
    \skillbase\skill_setvalue(242, 'i', $sk);
    $z = (int) \skillbase\skill_getvalue(242, 'c');
    $z++;
    \skillbase\skill_setvalue(242, 'c', $z);
    $log .= "改变成功。<br>";
}
Exemple #15
0
function get_inf($hurtposition, &$pa = NULL)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('wound'));
    $flag = 1;
    if ($pa == NULL) {
        eval(import_module('player'));
        if (strpos($inf, $hurtposition) !== false) {
            $flag = 0;
        }
        $inf = str_replace($hurtposition, '', $inf);
        $inf .= $hurtposition;
    } else {
        if (strpos($pa['inf'], $hurtposition) !== false) {
            $flag = 0;
        }
        $pa['inf'] = str_replace($hurtposition, '', $pa['inf']);
        $pa['inf'] .= $hurtposition;
    }
    \skillbase\skill_acquire($infskillinfo[$hurtposition], $pa);
    return $flag;
}
Exemple #16
0
function rs_game($xmode = 0)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    $chprocess($xmode);
    eval(import_module('sys', 'map', 'player', 'npc', 'lvlctl', 'skillbase'));
    if ($xmode & 8) {
        //echo " - NPC初始化 - ";
        $db->query("DELETE FROM {$tablepre}players WHERE type>0 ");
        //$typenum = sizeof($typeinfo);
        $plsnum = sizeof($plsinfo) - sizeof($hidden_arealist);
        $npcqry = '';
        foreach ($npcinfo as $i => $npcs) {
            if (!empty($npcs)) {
                if (sizeof($npcs['sub']) > $npcs['num']) {
                    shuffle($npcs['sub']);
                }
                for ($j = 1; $j <= $npcs['num']; $j++) {
                    $npc = array_merge($npcinit, $npcs);
                    //$npc = $npcinfo[$i];
                    $npc['type'] = $i;
                    $npc['endtime'] = $now;
                    $npc['sNo'] = $j;
                    $subnum = sizeof($npc['sub']);
                    $sub = $j % $subnum;
                    $npc = array_merge($npc, $npc['sub'][$sub]);
                    $npc['hp'] = $npc['mhp'];
                    $npc['sp'] = $npc['msp'];
                    $npc['exp'] = round(2 * $npc['lvl'] * $baseexp);
                    $npc['wp'] = $npc['wk'] = $npc['wg'] = $npc['wc'] = $npc['wd'] = $npc['wf'] = $npc['skill'];
                    if ($npc['gd'] == 'r') {
                        $npc['gd'] = rand(0, 1) ? 'm' : 'f';
                    }
                    $rpls = rand(1, $plsnum - 1);
                    while ($rpls == 34) {
                        $rpls = rand(1, $plsnum - 1);
                    }
                    if ($npc['pls'] == 99) {
                        $npc['pls'] = $rpls;
                    } elseif (is_array($npc['pls'])) {
                        $epls = rand(0, sizeof($npc['pls']));
                        $npc['pls'] = $npc['pls'][$epls];
                    }
                    $npc['state'] = 0;
                    $npcqrylit = "(";
                    $npcqry = "(";
                    foreach ($npc as $key => $value) {
                        if (in_array($key, $db_player_structure)) {
                            $npcqrylit .= $key . ",";
                            $npcqry .= "'" . $npc[$key] . "',";
                        }
                    }
                    $npcqrylit = substr($npcqrylit, 0, strlen($npcqrylit) - 1) . ")";
                    $npcqry = substr($npcqry, 0, strlen($npcqry) - 1) . ")";
                    $qry = "INSERT INTO {$tablepre}players " . $npcqrylit . " VALUES " . $npcqry;
                    $db->query($qry);
                    unset($qry);
                    if (is_array($npc['skills'])) {
                        $qry = "SELECT * FROM {$tablepre}players WHERE type>'0' ORDER BY pid DESC LIMIT 1";
                        $result = $db->query($qry);
                        $pr = $db->fetch_array($result);
                        $pp = \player\fetch_playerdata_by_pid($pr['pid']);
                        foreach ($npc['skills'] as $key => $value) {
                            if (defined('MOD_SKILL' . $key)) {
                                \skillbase\skill_acquire($key, $pp);
                                if ($value > 0) {
                                    \skillbase\skill_setvalue($key, 'lvl', $value, $pp);
                                }
                            }
                        }
                        \player\player_save($pp);
                    }
                    unset($npc);
                }
            }
        }
    }
}
Exemple #17
0
function upgrade72()
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('skill72', 'player', 'logger', 'input'));
    $skillpara1 = (int) $skillpara1;
    if (!\skillbase\skill_query(72) || !check_unlocked72($sdata)) {
        $log .= '你没有这个技能。<br>';
        return;
    }
    if (!\sklearn_util\sklearn_basecheck($skillpara1) || !sklearn_checker72('is_learnable', $skillpara1)) {
        $log .= '你不可以学习这个技能!<br>';
        return;
    }
    if (!sklearn_checker72('now_learnable', $skillpara1)) {
        $log .= '现在尚没有足够资源学习这个技能!<br>';
        return;
    }
    if (\skillbase\skill_query($skillpara1)) {
        $log .= '你已经拥有这个技能了!<br>';
        return;
    }
    $x = (int) \skillbase\skill_getvalue(72, 't');
    $x++;
    \skillbase\skill_setvalue(72, 't', $x);
    $val = constant('MOD_SKILL' . $skillpara1 . '_INFO');
    if (strpos($val, 'battle;') !== false) {
        $x = (int) \skillbase\skill_getvalue(72, 'b');
        $x++;
        \skillbase\skill_setvalue(72, 'b', $x);
    }
    $skillpoint -= $skill72_skpoint_need[$skillpara1];
    \skillbase\skill_acquire($skillpara1);
    $log .= '学习成功。<br>';
}
Exemple #18
0
function enter_battlefield($xuser, $xpass, $xgender, $xicon, $card = 0)
{
    eval(import_module('sys'));
    if ($xgender != 'm' && $xgender != 'f') {
        $xgender = 'm';
    }
    $validnum++;
    $alivenum++;
    $name = $xuser;
    $pass = $xpass;
    global $gd;
    $gd = $xgender;
    $type = 0;
    $endtime = $now;
    global $sNo;
    $sNo = $validnum;
    global $hp, $mhp, $sp, $msp, $att, $def, $wep, $itm, $icon;
    $hp = $mhp = $hplimit;
    $sp = $msp = $splimit;
    $rand = rand(0, 15);
    $att = 95 + $rand;
    $def = 105 - $rand;
    $pls = 0;
    $killnum = 0;
    $lvl = 0;
    $skillpoint = 0;
    $exp = $areanum * 20;
    $money = 20;
    $rage = 0;
    $pose = 0;
    $tactic = 0;
    $icon = $xicon ? $xicon : rand(1, $iconlimit);
    $club = 0;
    $arb = $gd == 'm' ? '男生校服' : '女生校服';
    $arbk = 'DB';
    $arbe = 5;
    $arbs = 15;
    $arbsk = '';
    $arh = $ara = $arf = $art = '';
    $arhk = $arak = $arfk = $artk = '';
    $arhsk = $arask = $arfsk = $artsk = '';
    $arhe = $arae = $arfe = $arte = 0;
    $arhs = $aras = $arfs = $arts = 0;
    for ($i = 0; $i <= 6; $i++) {
        $itm[$i] = $itmk[$i] = $itmsk[$i] = '';
        $itme[$i] = $itms[$i] = 0;
    }
    $itm[1] = '面包';
    $itmk[1] = 'HH';
    $itme[1] = 100;
    $itms[1] = 30;
    $itm[2] = '矿泉水';
    $itmk[2] = 'HS';
    $itme[2] = 100;
    $itms[2] = 30;
    //solo局补给增加,配发探测器
    if (in_array($gametype, $elorated_mode)) {
        $itms[1] = 50;
        $itms[2] = 50;
        $itm[5] = '生命探测器';
        $itmk[5] = 'ER';
        $itme[5] = 5;
        $itms[5] = 1;
    }
    $weplist = openfile(config('stwep', $gamecfg));
    do {
        $index = rand(1, count($weplist) - 1);
        list($wep, $wepk, $wepe, $weps, $wepsk) = explode(",", $weplist[$index]);
    } while (!$wepk);
    $stitemlist = openfile(config('stitem', $gamecfg));
    do {
        $index = rand(1, count($stitemlist) - 1);
        list($itm[3], $itmk[3], $itme[3], $itms[3], $itmsk[3]) = explode(",", $stitemlist[$index]);
    } while (!$itmk[3]);
    do {
        $index = rand(1, count($stitemlist) - 1);
        list($itm[4], $itmk[4], $itme[4], $itms[4], $itmsk[4]) = explode(",", $stitemlist[$index]);
    } while (!$itmk[4] || $itmk[3] == $itmk[4]);
    if (strpos($wepk, 'WG') === 0) {
        $itm[3] = '手枪子弹';
        $itmk[3] = 'GB';
        $itme[3] = 1;
        $itms[3] = 12;
        $itmsk[3] = '';
    }
    if ($name == 'Amarillo_NMC') {
        $msp += 500;
        $mhp += 500;
        $hp += 500;
        $sp += 500;
        $att += 200;
        $def += 200;
        $exp += 3000;
        $money = 20000;
        $rage = 255;
        $pose = 1;
        $tactic = 3;
        $itm[1] = '死者苏生';
        $itmk[1] = 'HB';
        $itme[1] = 2000;
        $itms[1] = 400;
        $itmsk[1] = '';
        $itm[2] = '移动PC';
        $itmk[2] = 'EE';
        $itme[2] = 50;
        $itms[2] = 1;
        $itm[3] = '超光速快子雷达';
        $itmk[3] = 'ER';
        $itme[3] = 32;
        $itms[3] = 1;
        $itmsk[3] = 2;
        $itm[4] = '凸眼鱼';
        $itmk[4] = 'Y';
        $itme[4] = 1;
        $itms[4] = 30;
        $itmsk[4] = '';
        $itm[5] = '楠叶特制营养剂';
        $itmk[5] = 'ME';
        $itme[5] = 50;
        $itms[5] = 12;
        $itm[6] = '测试道具';
        $itmk[6] = 'ME';
        $itme[6] = 50;
        $itms[6] = 12;
        $wep = '神圣手榴弹';
        $wepk = 'WC';
        $wepe = 8765;
        $weps = 876;
        $wepsk = 'd';
        $arb = '守桥人的长袍';
        $arbk = 'DB';
        $arbe = 3200;
        $arbs = 100;
        $arbsk = 'A';
        $arh = '千年积木';
        $arhk = 'DH';
        $arhe = 1600;
        $arhs = 120;
        $arhsk = 'c';
        $ara = '皇家钻戒';
        $arak = 'DA';
        $arae = 1600;
        $aras = 120;
        $arask = 'a';
        $arf = '火弩箭';
        $arfk = 'DF';
        $arfe = 1600;
        $arfs = 120;
        $arfsk = 'M';
        $art = '贤者之石';
        $artk = 'A';
        $arte = 9999;
        $arts = 999;
        $artsk = 'H';
        $wp = $wk = $wg = $wc = $wd = $wf = 600;
    } elseif ($name == '霜火协奏曲') {
        $art = '击败思念的纹章';
        $artk = 'A';
        $arte = 1;
        $arts = 1;
        $artsk = 'zZ';
    } elseif ($name == '时期') {
        $art = '击败鬼畜级思念的纹章';
        $artk = 'A';
        $arte = 1;
        $arts = 1;
        $artsk = 'zZ';
    } elseif ($name == '枪毙的某神' || $name == '精灵们的手指舞') {
        $art = 'TDG地雷的证明';
        $artk = 'A';
        $arte = 1;
        $arts = 1;
        $artsk = 'zZ';
    }
    $state = 0;
    $bid = 0;
    $inf = $teamID = $teamPass = '';
    ///////////////////////////////////////////////////////////////
    require config('card', $gamecfg);
    if ($card == 81) {
        $arr = array('0');
        $r = rand(1, 100);
        if ($r <= 20) {
            $arr = $cardindex['S'];
        } else {
            if ($r <= 60) {
                $arr = $cardindex['A'];
            } else {
                if ($r <= 80) {
                    $arr = $cardindex['B'];
                } else {
                    $arr = $cardindex['C'];
                }
            }
        }
        $c = count($arr) - 1;
        $card = $arr[rand(0, $c)];
    }
    $cardfix = $cards[$card];
    $cardname = $carddesc[$card]['name'];
    $cardrare = $carddesc[$card]['rare'];
    ///////////////////////////////////////////////////////////////
    foreach ($cardfix as $key => $value) {
        if (substr($key, 0, 3) == "itm") {
            $tt = substr($key, -1);
            $ts = substr($key, 0, strlen($key) - 1);
            ${$ts}[$tt] = $value;
        } else {
            ${$key} = $value;
        }
    }
    ///////////////////////////////////////////////////////////////
    $db->query("INSERT INTO {$tablepre}players (name,pass,type,endtime,gd,sNo,icon,club,hp,mhp,sp,msp,att,def,pls,lvl,`exp`,money,bid,inf,rage,pose,tactic,killnum,state,wp,wk,wg,wc,wd,wf,teamID,teamPass,wep,wepk,wepe,weps,arb,arbk,arbe,arbs,arh,arhk,arhe,arhs,ara,arak,arae,aras,arf,arfk,arfe,arfs,art,artk,arte,arts,itm0,itmk0,itme0,itms0,itm1,itmk1,itme1,itms1,itm2,itmk2,itme2,itms2,itm3,itmk3,itme3,itms3,itm4,itmk4,itme4,itms4,itm5,itmk5,itme5,itms5,itm6,itmk6,itme6,itms6,wepsk,arbsk,arhsk,arask,arfsk,artsk,itmsk0,itmsk1,itmsk2,itmsk3,itmsk4,itmsk5,itmsk6,card,cardname,skillpoint) VALUES ('{$name}','{$pass}','{$type}','{$endtime}','{$gd}','{$sNo}','{$icon}','{$club}','{$hp}','{$mhp}','{$sp}','{$msp}','{$att}','{$def}','{$pls}','{$lvl}','{$exp}','{$money}','{$bid}','{$inf}','{$rage}','{$pose}','{$tactic}','{$state}','{$killnum}','{$wp}','{$wk}','{$wg}','{$wc}','{$wd}','{$wf}','{$teamID}','{$teamPass}','{$wep}','{$wepk}','{$wepe}','{$weps}','{$arb}','{$arbk}','{$arbe}','{$arbs}','{$arh}','{$arhk}','{$arhe}','{$arhs}','{$ara}','{$arak}','{$arae}','{$aras}','{$arf}','{$arfk}','{$arfe}','{$arfs}','{$art}','{$artk}','{$arte}','{$arts}','{$itm['0']}','{$itmk['0']}','{$itme['0']}','{$itms['0']}','{$itm['1']}','{$itmk['1']}','{$itme['1']}','{$itms['1']}','{$itm['2']}','{$itmk['2']}','{$itme['2']}','{$itms['2']}','{$itm['3']}','{$itmk['3']}','{$itme['3']}','{$itms['3']}','{$itm['4']}','{$itmk['4']}','{$itme['4']}','{$itms['4']}','{$itm['5']}','{$itmk['5']}','{$itme['5']}','{$itms['5']}','{$itm['6']}','{$itmk['6']}','{$itme['6']}','{$itms['6']}','{$wepsk}','{$arbsk}','{$arhsk}','{$arask}','{$arfsk}','{$artsk}','{$itmsk['0']}','{$itmsk['1']}','{$itmsk['2']}','{$itmsk['3']}','{$itmsk['4']}','{$itmsk['5']}','{$itmsk['6']}','{$card}','{$cardname}','{$skillpoint}')");
    $db->query("UPDATE {$gtablepre}users SET lastgame='{$gamenum}' WHERE username='******'");
    ///////////////////////////////////////////////////////////////
    $pp = \player\fetch_playerdata($name);
    //为了灵活性,直接处理所有技能,在固定称号的时候记得要写入skills不然进游戏就没技能了
    //if (isset($cardfix['club'])){
    //	\clubbase\club_acquire($cardfix['club'],$pp);
    //}
    if (is_array($cardfix['skills'])) {
        foreach ($cardfix['skills'] as $key => $value) {
            if (defined('MOD_SKILL' . $key)) {
                \skillbase\skill_acquire($key, $pp);
                if ($value > 0) {
                    \skillbase\skill_setvalue($key, 'lvl', $value, $pp);
                }
            }
        }
    }
    \player\player_save($pp);
    ///////////////////////////////////////////////////////////////
    if ($cardrare == "S") {
        $rarecolor = "orange";
    } else {
        if ($cardrare == 'A') {
            $rarecolor = "linen";
        } else {
            if ($cardrare == 'B') {
                $rarecolor = "brickred";
            } else {
                if ($cardrare == 'C') {
                    $rarecolor = "seagreen";
                }
            }
        }
    }
    if ($udata['groupid'] >= 6 || $cuser == $gamefounder) {
        addnews($now, 'newgm', "<span class=\"" . $rarecolor . "\">" . $cardname . '</span> ' . $name, "{$sexinfo[$gd]}{$sNo}号", $ip);
    } else {
        addnews($now, 'newpc', "<span class=\"" . $rarecolor . "\">" . $cardname . '</span> ' . $name, "{$sexinfo[$gd]}{$sNo}号", $ip);
    }
    if ($validnum >= $validlimit && $gamestate == 20) {
        $gamestate = 30;
    }
    //$gamestate = $validnum < $validlimit ? 20 : 30;
    save_gameinfo();
}
Exemple #19
0
function addnpc($xtype, $xsub, $num, $time = 0, $xpls = 0)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('sys', 'player', 'map', 'logger', 'addnpc', 'lvlctl', 'skillbase'));
    $time = $time == 0 ? $now : $time;
    $plsnum = sizeof($plsinfo) - sizeof($hidden_arealist);
    $npc = array_merge($npcinit, $anpcinfo[$xtype]);
    //$npcwordlist = Array();
    $summon_pid = -1;
    //禁止NPC随机刷新至以下地区
    $deny_add_arr = array(0, 34, 99);
    if (!$npc) {
        return;
    } else {
        for ($i = 0; $i < $num; $i++) {
            $npc = array_merge($npc, $npc['sub'][$xsub]);
            $npc['type'] = $xtype;
            $npc['endtime'] = $time;
            $npc['exp'] = round(($npc['lvl'] * 2 + 1) * $baseexp);
            $npc['sNo'] = $i;
            $npc['hp'] = $npc['mhp'];
            $npc['sp'] = $npc['msp'];
            $spid = uniqid('', true);
            $npc['pass'] = $spid;
            if (!isset($npc['state'])) {
                $npc['state'] = 0;
            }
            $npc['wp'] = $npc['wk'] = $npc['wg'] = $npc['wc'] = $npc['wd'] = $npc['wf'] = $npc['skill'];
            if ($npc['gd'] == 'r') {
                $npc['gd'] = rand(0, 1) ? 'm' : 'f';
            }
            //之前的写法会导致一旦召唤$num>1数量的NPC,所有NPC都会刷到同一个地方
            //因此用$npc['npls']代替$npc['pls']
            //不得不说太蠢了,所以希望以后有机会能大改addnpc函数
            $npc['npls'] = $xpls ? $xpls : $npc['pls'];
            if ($npc['pls'] == 99) {
                $areaarr = array_slice($arealist, $areanum + 1);
                if (empty($areaarr)) {
                    $npc['npls'] = 0;
                } else {
                    while (in_array($npc['npls'], $deny_add_arr)) {
                        $npc['npls'] = $areaarr[rand(0, sizeof($areaarr))];
                    }
                }
            } elseif (is_array($npc['pls'])) {
                $epls = rand(0, sizeof($npc['pls']));
                $npc['npls'] = $npc['pls'][$epls];
            }
            $db->query("INSERT INTO {$tablepre}players (name,pass,type,endtime,gd,sNo,icon,club,hp,mhp,sp,msp,att,def,pls,lvl,`exp`,money,bid,inf,rage,pose,tactic,killnum,state,wp,wk,wg,wc,wd,wf,teamID,teamPass,wep,wepk,wepe,weps,arb,arbk,arbe,arbs,arh,arhk,arhe,arhs,ara,arak,arae,aras,arf,arfk,arfe,arfs,art,artk,arte,arts,itm0,itmk0,itme0,itms0,itm1,itmk1,itme1,itms1,itm2,itmk2,itme2,itms2,itm3,itmk3,itme3,itms3,itm4,itmk4,itme4,itms4,itm5,itmk5,itme5,itms5,itm6,itmk6,itme6,itms6,wepsk,arbsk,arhsk,arask,arfsk,artsk,itmsk0,itmsk1,itmsk2,itmsk3,itmsk4,itmsk5,itmsk6) VALUES ('" . $npc['name'] . "','" . $npc['pass'] . "','" . $npc['type'] . "','" . $npc['endtime'] . "','" . $npc['gd'] . "','" . $npc['sNo'] . "','" . $npc['icon'] . "','" . $npc['club'] . "','" . $npc['hp'] . "','" . $npc['mhp'] . "','" . $npc['sp'] . "','" . $npc['msp'] . "','" . $npc['att'] . "','" . $npc['def'] . "','" . $npc['npls'] . "','" . $npc['lvl'] . "','" . $npc['exp'] . "','" . $npc['money'] . "','" . $npc['bid'] . "','" . $npc['inf'] . "','" . $npc['rage'] . "','" . $npc['pose'] . "','" . $npc['tactic'] . "','" . $npc['killnum'] . "','" . $npc['state'] . "','" . $npc['wp'] . "','" . $npc['wk'] . "','" . $npc['wg'] . "','" . $npc['wc'] . "','" . $npc['wd'] . "','" . $npc['wf'] . "','" . $npc['teamID'] . "','" . $npc['teamPass'] . "','" . $npc['wep'] . "','" . $npc['wepk'] . "','" . $npc['wepe'] . "','" . $npc['weps'] . "','" . $npc['arb'] . "','" . $npc['arbk'] . "','" . $npc['arbe'] . "','" . $npc['arbs'] . "','" . $npc['arh'] . "','" . $npc['arhk'] . "','" . $npc['arhe'] . "','" . $npc['arhs'] . "','" . $npc['ara'] . "','" . $npc['arak'] . "','" . $npc['arae'] . "','" . $npc['aras'] . "','" . $npc['arf'] . "','" . $npc['arfk'] . "','" . $npc['arfe'] . "','" . $npc['arfs'] . "','" . $npc['art'] . "','" . $npc['artk'] . "','" . $npc['arte'] . "','" . $npc['arts'] . "','" . $npc['itm0'] . "','" . $npc['itmk0'] . "','" . $npc['itme0'] . "','" . $npc['itms0'] . "','" . $npc['itm1'] . "','" . $npc['itmk1'] . "','" . $npc['itme1'] . "','" . $npc['itms1'] . "','" . $npc['itm2'] . "','" . $npc['itmk2'] . "','" . $npc['itme2'] . "','" . $npc['itms2'] . "','" . $npc['itm3'] . "','" . $npc['itmk3'] . "','" . $npc['itme3'] . "','" . $npc['itms3'] . "','" . $npc['itm4'] . "','" . $npc['itmk4'] . "','" . $npc['itme4'] . "','" . $npc['itms4'] . "','" . $npc['itm5'] . "','" . $npc['itmk5'] . "','" . $npc['itme5'] . "','" . $npc['itms5'] . "','" . $npc['itm6'] . "','" . $npc['itmk6'] . "','" . $npc['itme6'] . "','" . $npc['itms6'] . "','" . $npc['wepsk'] . "','" . $npc['arbsk'] . "','" . $npc['arhsk'] . "','" . $npc['arask'] . "','" . $npc['arfsk'] . "','" . $npc['artsk'] . "','" . $npc['itmsk0'] . "','" . $npc['itmsk1'] . "','" . $npc['itmsk2'] . "','" . $npc['itmsk3'] . "','" . $npc['itmsk4'] . "','" . $npc['itmsk5'] . "','" . $npc['itmsk6'] . "')");
            $newsname = $typeinfo[$xtype] . ' ' . $npc['name'];
            //$npcwordlist[] = $typeinfo[$type].' '.$npc['name'];
            $result = $db->query("SELECT pid FROM {$tablepre}players where pass='******' AND type>0");
            if ($db->num_rows($result)) {
                $zz = $db->fetch_array($result);
                $summon_pid = $zz['pid'];
            } else {
                //出BUG了
                $summon_pid = -1;
            }
            if (is_array($npc['skills'])) {
                $qry = "SELECT * FROM {$tablepre}players WHERE type>'0' ORDER BY pid DESC LIMIT 1";
                $result = $db->query($qry);
                $pr = $db->fetch_array($result);
                $pp = \player\fetch_playerdata_by_pid($pr['pid']);
                foreach ($npc['skills'] as $key => $value) {
                    if (defined('MOD_SKILL' . $key)) {
                        \skillbase\skill_acquire($key, $pp);
                        if ($value > 0) {
                            \skillbase\skill_setvalue($key, 'lvl', $value, $pp);
                        }
                    }
                }
                \player\player_save($pp);
            }
        }
        if ($num > 1) {
            addnews($now, 'addnpcs', $newsname, $num);
        } else {
            addnews($now, 'addnpc', $newsname);
        }
    }
    /*
    if($num > $npc['num']){
    //if($num > 1){
    	$newsname=$typeinfo[$xtype];
    	addnews($time, 'addnpcs', $newsname,$i);
    }else{
    	//		for($i=0;$i< $num;$i++){
    	//			addnews($time, 'addnpc', $npcwordlist[$i]);
    	//		}
    	//$newsname=$typeinfo[$type].' '.$npc['name'];
    	//addnews($time, 'addnpc', $newsname);
    }
    */
    return $summon_pid;
}
Exemple #20
0
function post_enterbattlefield_events(&$pa)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('sys'));
    if ($gametype == 2) {
        \skillbase\skill_acquire(475, $pa);
        \skillbase\skill_acquire(235, $pa);
        \skillbase\skill_setvalue(235, 'lvl', '1', $pa);
        $pa['itm6'] = '任务指令书B';
        $pa['itmk6'] = 'Y';
        $pa['itme6'] = '1';
        $pa['itms6'] = '1';
        $pa['itmsk6'] = '';
    }
    return $chprocess($pa);
}
Exemple #21
0
function itemuse(&$theitem)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('sys', 'player', 'weapon', 'itemmain', 'logger'));
    $itm =& $theitem['itm'];
    $itmk =& $theitem['itmk'];
    $itme =& $theitem['itme'];
    $itms =& $theitem['itms'];
    $itmsk =& $theitem['itmsk'];
    if (strpos($itmk, 'V') === 0) {
        //特殊的技能书类型VS,效果是获得技能编号为itmsk的技能
        if (strpos($itmk, 'VS') === 0) {
            eval(import_module('clubbase'));
            $sk_kind = (int) $itmsk;
            if ($sk_kind < 1) {
                $sk_kind = 1;
            }
            if (defined('MOD_SKILL' . $sk_kind) && $clubskillname[$sk_kind] != '') {
                if (\skillbase\skill_query($sk_kind)) {
                    $log .= "你翻开了<span class=\"red\">{$itm}</span>,发现这本书就是昨天刚刚看过的那本。你随手把书放回了包里。<br>";
                } else {
                    $log .= "你读完了<span class=\"red\">{$itm}</span>,感觉受益匪浅。你获得了技能「<span class=\"yellow\">" . $clubskillname[$sk_kind] . "</span>」,请前往技能界面查看。<br>";
                    \skillbase\skill_acquire($sk_kind);
                    \itemmain\itms_reduce($theitem);
                }
            } else {
                $log .= "技能书参数错误,这应该是一个BUG,请联系管理员。<br>";
            }
            return;
        }
        //下面是普通的技能书处理(效果是加某个系的熟练)
        $skill_minimum = 100;
        $skill_limit = 300;
        $log .= "你阅读了<span class=\"red\">{$itm}</span>。<br>";
        $dice = rand(-5, 5);
        if (strpos($itmk, 'VV') === 0) {
            $skcnt = 0;
            $ws_sum = 0;
            foreach (array_unique(array_values($skillinfo)) as $key) {
                $skcnt++;
                $ws_sum += ${$key};
            }
            if ($ws_sum < $skill_minimum * $skcnt) {
                $vefct = $itme;
            } elseif ($ws_sum < $skill_limit * $skcnt) {
                $vefct = round($itme * (1 - ($ws_sum - $skill_minimum * $skcnt) / ($skill_limit * $skcnt - $skill_minimum * $skcnt)));
            } else {
                $vefct = 0;
            }
            if ($vefct < 5) {
                if ($vefct < $dice) {
                    $vefct = -$dice;
                }
            }
            foreach (array_unique(array_values($skillinfo)) as $key) {
                ${$key} += $vefct;
            }
            $wsname = "全系熟练度";
        } elseif (strpos($itmk, 'VP') === 0) {
            if ($wp < $skill_minimum) {
                $vefct = $itme;
            } elseif ($wp < $skill_limit) {
                $vefct = round($itme * (1 - ($wp - $skill_minimum) / ($skill_limit - $skill_minimum)));
            } else {
                $vefct = 0;
            }
            if ($vefct < 5) {
                if ($vefct < $dice) {
                    $vefct = -$dice;
                }
            }
            $wp += $vefct;
            //$itme;
            $wsname = "斗殴熟练度";
        } elseif (strpos($itmk, 'VK') === 0) {
            if ($wk < $skill_minimum) {
                $vefct = $itme;
            } elseif ($wk < $skill_limit) {
                $vefct = round($itme * (1 - ($wk - $skill_minimum) / ($skill_limit - $skill_minimum)));
            } else {
                $vefct = 0;
            }
            if ($vefct < 5) {
                if ($vefct < $dice) {
                    $vefct = -$dice;
                }
            }
            $wk += $vefct;
            //$itme;
            $wsname = "斩刺熟练度";
        } elseif (strpos($itmk, 'VG') === 0) {
            if ($wg < $skill_minimum) {
                $vefct = $itme;
            } elseif ($wg < $skill_limit) {
                $vefct = round($itme * (1 - ($wg - $skill_minimum) / ($skill_limit - $skill_minimum)));
            } else {
                $vefct = 0;
            }
            if ($vefct < 5) {
                if ($vefct < $dice) {
                    $vefct = -$dice;
                }
            }
            $wg += $vefct;
            //$itme;
            $wsname = "射击熟练度";
        } elseif (strpos($itmk, 'VC') === 0) {
            if ($wc < $skill_minimum) {
                $vefct = $itme;
            } elseif ($wc < $skill_limit) {
                $vefct = round($itme * (1 - ($wc - $skill_minimum) / ($skill_limit - $skill_minimum)));
            } else {
                $vefct = 0;
            }
            if ($vefct < 5) {
                if ($vefct < $dice) {
                    $vefct = -$dice;
                }
            }
            $wc += $vefct;
            //$itme;
            $wsname = "投掷熟练度";
        } elseif (strpos($itmk, 'VD') === 0) {
            if ($wd < $skill_minimum) {
                $vefct = $itme;
            } elseif ($wd < $skill_limit) {
                $vefct = round($itme * (1 - ($wd - $skill_minimum) / ($skill_limit - $skill_minimum)));
            } else {
                $vefct = 0;
            }
            if ($vefct < 5) {
                if ($vefct < $dice) {
                    $vefct = -$dice;
                }
            }
            $wd += $vefct;
            //$itme;
            $wsname = "引爆熟练度";
        } elseif (strpos($itmk, 'VF') === 0) {
            if ($wf < $skill_minimum) {
                $vefct = $itme;
            } elseif ($wf < $skill_limit) {
                $vefct = round($itme * (1 - ($wf - $skill_minimum) / ($skill_limit - $skill_minimum)));
            } else {
                $vefct = 0;
            }
            if ($vefct < 5) {
                if ($vefct < $dice) {
                    $vefct = -$dice;
                }
            }
            $wf += $vefct;
            //$itme;
            $wsname = "灵击熟练度";
        }
        if ($vefct > 0) {
            $log .= "嗯,有所收获。<br>你的{$wsname}提高了<span class=\"yellow\">{$vefct}</span>点!<br>";
        } elseif ($vefct == 0) {
            $log .= "对你来说书里的内容过于简单了。<br>你的熟练度没有任何提升。<br>";
        } else {
            $vefct = -$vefct;
            $log .= "对你来说书里的内容过于简单了。<br>而且由于盲目相信书上的知识,你反而被编写者的纰漏所误导了!<br>你的{$wsname}下降了<span class=\"red\">{$vefct}</span>点!<br>";
        }
        \itemmain\itms_reduce($theitem);
        return;
    }
    $chprocess($theitem);
}
Exemple #22
0
function skill435_summon_npc($nkind)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('skill435', 'map', 'sys', 'player', 'logger', 'input'));
    $log .= '你召唤出了保安<span class="yellow">' . $skill435_npc['sub'][$nkind]['name'] . '</span>来保护你!<br>';
    $x = (int) \skillbase\skill_getvalue(435, 't');
    $spid = \addnpc\addnpc(25, $nkind, 1);
    if ($spid == -1) {
        $log .= '出现了一个BUG,请联系管理员。抱歉。<br>';
        return;
    }
    //设置位置
    $db->query("UPDATE {$tablepre}players SET pls='{$pls}' WHERE pid='{$spid}'");
    \skillbase\skill_setvalue(435, 'p' . $x, $spid);
    \skillbase\skill_setvalue(435, 'l' . $x, $now);
    \skillbase\skill_setvalue(435, 's' . $x, $nkind);
    \skillbase\skill_setvalue(435, 'h' . $x, 1);
    //保安技能skill436(收工资)
    $pdata = \player\fetch_playerdata_by_pid($spid);
    \skillbase\skill_acquire(436, $pdata);
    \skill436\skill436_set_hpid($pid, $pdata);
    \skill436\skill436_set_label($x, $pdata);
    \player\player_save($pdata);
}
Exemple #23
0
function strike_finish(&$pa, &$pd, $active)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    if ($pa['bskill'] == 237) {
        eval(import_module('logger', 'skill601', 'sys'));
        if (!\skillbase\skill_query(601, $pd)) {
            \skillbase\skill_acquire(601, $pd);
            $var_237 = $now;
        } else {
            $var_237 = \skillbase\skill_getvalue(601, 'end', $pd);
            if ($var_237 < $now) {
                $var_237 = $now;
            }
        }
        \skillbase\skill_setvalue(601, 'start', $var_237, $pd);
        \skillbase\skill_setvalue(601, 'end', $var_237 + 40, $pd);
    }
    $chprocess($pa, $pd, $active);
}
Exemple #24
0
function strike_finish(&$pa, &$pd, $active)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    if ($pa['bskill'] != 440) {
        return $chprocess($pa, $pd, $active);
    }
    eval(import_module('logger', 'skill440', 'skill600', 'sys'));
    $var_440 = 40;
    if (!\skillbase\skill_query(600, $pd)) {
        \skillbase\skill_acquire(600, $pd);
        $var_440_2 = $now;
    } else {
        $var_440_2 = \skillbase\skill_getvalue(600, 'end', $pd);
        if ($var_440_2 < $now) {
            $var_440_2 = $now;
        }
    }
    \skillbase\skill_setvalue(600, 'start', $var_440_2, $pd);
    \skillbase\skill_setvalue(600, 'end', $var_440_2 + $var_440, $pd);
    if (strpos($pd['inf'], 'u') === false) {
        $pd['inf'] .= 'u';
    }
    if (strpos($pd['inf'], 'p') === false) {
        $pd['inf'] .= 'p';
    }
    if ($active) {
        $log .= '<span class="red">敌人已经大难临头了!</span><br>';
    } else {
        $log .= "<span class=\"red\">你已经大难临头了!</span><br>";
    }
    $chprocess($pa, $pd, $active);
}
Exemple #25
0
function skill42_temp_acquire41(&$pa)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    $pa['skill42_flag1'] = 1;
    if (!\skillbase\skill_query(41, $pa)) {
        //原先没有神速
        \skillbase\skill_acquire(41, $pa);
        \skill41\unlock41($pa);
        $pa['skill42_flag2'] = 1;
    } else {
        $stat = \skill41\check_unlocked41($pa);
        if ($stat) {
            $pa['skill42_flag2'] = 3;
        } else {
            \skill41\unlock41($pa);
            $pa['skill42_flag2'] = 2;
        }
    }
}