Esempio n. 1
0
function gamestate_prepare_game()
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('sys'));
    $gamenum++;
    \sys\reset_game();
    \sys\prepare_new_game();
    \sys\rs_game(1 + 2 + 4 + 8 + 16 + 32);
}
Esempio n. 2
0
function gamestate_prepare_game()
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('sys'));
    $gamenum++;
    $gamestate = 10;
    $hdamage = 0;
    $hplayer = '';
    $noisemode = '';
    \sys\reset_game();
    \sys\rs_game(1 + 2 + 4 + 8 + 16 + 32);
}
Esempio n. 3
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]);
        }
        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);
        if ($areanum >= $plsnum) {
            \sys\gameover($atime, 'end1');
            return;
        }
        if ($alivenum == 1 && $gamestate >= 30) {
            \sys\gameover($atime);
            return;
        } elseif ($alivenum <= 0 && $gamestate >= 30) {
            \sys\gameover($atime, 'end1');
            return $atime;
        } else {
            \sys\rs_game(16 + 32);
            //$areatime += $areahour*3600;
            //addarea($areatime);
            return;
        }
    } else {
        return;
    }
}
Esempio n. 4
0
function check_addarea_gameover($atime)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('sys', 'map'));
    $plsnum = sizeof($plsinfo) - 1;
    if ($areanum >= $plsnum) {
        \sys\gameover($atime, 'end1');
        return;
    }
    if ($alivenum == 1 && $gamestate >= 30) {
        \sys\gameover($atime);
        return;
    } elseif ($alivenum <= 0 && $gamestate >= 30) {
        \sys\gameover($atime, 'end1');
    } else {
        \sys\rs_game(16 + 32);
    }
}
Esempio n. 5
0
function check_addarea_gameover($atime)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('sys', 'map'));
    if ($gametype == 15) {
        if ($alivenum <= 0) {
            \sys\gameover($atime, 'end1');
            return;
        }
        if ($areanum >= $areaadd) {
            //限时1禁
            $result = $db->query("SELECT * FROM {$tablepre}players WHERE hp>0 AND type=0");
            $wdata = $db->fetch_array($result);
            $winner = $wdata['name'];
            \sys\gameover($atime, 'end8', $winner);
            return;
        }
        \sys\rs_game(16 + 32);
        return;
    }
    $chprocess($atime);
}
Esempio n. 6
0
function check_addarea_gameover($atime)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('sys', 'map'));
    if ($gametype == 1) {
        if ($alivenum <= 0) {
            \sys\gameover($atime, 'end1');
            //理论不会这样,防BUG
            return;
        }
        if ($areanum >= $areaadd * 2) {
            //限时2禁
            $result = $db->query("SELECT * FROM {$tablepre}players WHERE type=0 ORDER BY pid DESC");
            $ml = -1;
            $winner = '';
            $wl = array();
            while ($pt = $db->fetch_array($result)) {
                $pa = \player\fetch_playerdata_by_pid($pt['pid']);
                $cl = (int) \skillbase\skill_getvalue(424, 'lvl', $pa);
                $wl[$pa['name']] = $cl;
                if ($cl > $ml) {
                    $ml = $cl;
                    $winner = $pa['name'];
                }
            }
            arsort($wl);
            $rk = 0;
            foreach ($wl as $kk => $v) {
                $rk++;
                $k = \player\fetch_playerdata($kk);
                if ($v >= 5) {
                    \cardbase\get_qiegao(150, $k);
                }
                if ($v >= 10) {
                    \cardbase\get_qiegao(300, $k);
                }
                if ($v >= 20) {
                    \cardbase\get_qiegao(600, $k);
                }
                if ($v >= 30) {
                    \cardbase\get_card(94, $k);
                    \cardbase\get_qiegao(500, $k);
                }
                if ($rk == 1) {
                    \cardbase\get_card(96, $k);
                    \cardbase\get_card(95, $k);
                }
                if ($rk <= 2) {
                    \cardbase\get_card(95, $k);
                }
                if ($rk <= 3) {
                    \cardbase\get_qiegao(500, $k);
                    addnews(0, 'g1announce', $rk, $kk, $v);
                }
            }
            \sys\gameover($atime, 'end8', $winner);
            return;
        }
        \sys\rs_game(16 + 32);
        return;
    }
    $chprocess($atime);
}
Esempio n. 7
0
function check_addarea_gameover($atime)
{
    if (eval(__MAGIC__)) {
        return $___RET_VALUE;
    }
    eval(import_module('sys', 'map'));
    if ($gametype == 1) {
        if ($alivenum <= 0) {
            \sys\gameover($atime, 'end1');
            //理论不会这样,防BUG
            return;
        }
        if ($areanum >= $areaadd * 2) {
            //限时2禁
            $result = $db->query("SELECT * FROM {$tablepre}players WHERE type=0 ORDER BY pid DESC");
            $ml = -1;
            $winner = '';
            $wl = array();
            $wc = 0;
            while ($pt = $db->fetch_array($result)) {
                $pa = \player\fetch_playerdata_by_pid($pt['pid']);
                $cl = (int) \skillbase\skill_getvalue(424, 'lvl', $pa);
                //$wl[$pa['name']]=$cl;
                if ($cl > $ml) {
                    $ml = $cl;
                    $winner = $pa['name'];
                }
                $wc++;
                $wl[$wc]['n'] = $pa['name'];
                $wl[$wc]['p'] = $pa['pid'];
                $wl[$wc]['c'] = $cl;
            }
            //arsort($wl);
            for ($i = 1; $i < $wc; $i++) {
                for ($j = $i + 1; $j <= $wc; $j++) {
                    if ($wl[$i]['c'] < $wl[$j]['c'] || $wl[$i]['c'] == $wl[$j]['c'] && $wl[$i]['p'] < $wl[$j]['p']) {
                        $tt = $wl[$i];
                        $wl[$i] = $wl[$j];
                        $wl[$j] = $tt;
                    }
                }
            }
            $rk = 0;
            $max_announce_num = 3;
            //进行状况展示人数
            $bestlist = array();
            //进行状况中展示的前X名列表
            //foreach ($wl as $kk=>$v){
            for ($rk = 1; $rk <= $wc; $rk++) {
                //$rk++;
                $kk = $wl[$rk]['n'];
                $v = $wl[$rk]['c'];
                $k = \player\fetch_playerdata($kk);
                if ($v >= 5) {
                    \cardbase\get_qiegao(150, $k);
                }
                if ($v >= 10) {
                    \cardbase\get_qiegao(300, $k);
                }
                if ($v >= 20) {
                    \cardbase\get_qiegao(600, $k);
                }
                if ($v >= 30) {
                    \cardbase\get_card(94, $k);
                    \cardbase\get_qiegao(500, $k);
                }
                if ($rk == 1) {
                    \cardbase\get_card(96, $k);
                    \cardbase\get_card(95, $k);
                }
                if ($rk <= 2) {
                    \cardbase\get_card(95, $k);
                }
                if ($rk <= $max_announce_num) {
                    \cardbase\get_qiegao(500, $k);
                    $bestlist[$rk] = array(0 => $kk, 1 => $v);
                }
            }
            for ($i = $max_announce_num; $i >= 1; $i--) {
                if (isset($bestlist[$i])) {
                    addnews(0, 'g1announce', $i, $bestlist[$i][0], $bestlist[$i][1]);
                }
            }
            \sys\gameover($atime, 'end8', $winner);
            return;
        }
        \sys\rs_game(16 + 32);
        return;
    }
    $chprocess($atime);
}