Ejemplo n.º 1
0
            for ($i = 0; $i < $roomtypelist[$roomdata['roomtype']]['pnum']; $i++) {
                if (!$roomdata['player'][$i]['forbidden']) {
                    $pname = $roomdata['player'][$i]['name'];
                    $pname = (string) $pname;
                    $result = $db->query("SELECT * FROM {$gtablepre}users WHERE username = '******'");
                    if ($db->num_rows($result) != 1) {
                        continue;
                    }
                    $pdata = $db->fetch_array($result);
                    enter_battlefield($pdata['username'], $pdata['password'], $pdata['gender'], $pdata['icon'], $pdata['card']);
                    $db->query("UPDATE {$tablepre}players SET teamID='{$roomtypelist[$roomdata['roomtype']]['teamID'][$roomtypelist[$roomdata['roomtype']]['leader-position'][$i]]}' WHERE name='{$pname}'");
                }
            }
            //进入连斗
            $gamestate = 40;
            addnews($now, 'combo');
            systemputchat($now, 'combo');
            save_gameinfo();
            //再次广播信息,这次让所有玩家跳转到游戏中
            $roomdata['roomstat'] = 0;
            $db->query("UPDATE {$gtablepre}rooms SET status=2 WHERE roomid='{$roomid}'");
            $roomdata['timestamp']++;
            $roomdata['chatdata'] = room_init($roomdata['roomtype'])['chatdata'];
            room_save_broadcast($roomid, $roomdata);
        }
    }
    die;
}
?>

Ejemplo n.º 2
0
function room_create($roomtype)
{
    eval(import_module('sys'));
    global $roomtypelist;
    $roomtype = (int) $roomtype;
    if ($roomtype >= count($roomtypelist)) {
        gexit('参数错误', __FILE__, __LINE__);
        die;
    }
    global $max_room_num;
    $rchoice = -1;
    for ($i = 1; $i <= $max_room_num; $i++) {
        $result = $db->query("SELECT status FROM {$gtablepre}rooms WHERE roomid = '{$i}'");
        if (!$db->num_rows($result)) {
            $db->query("INSERT INTO {$gtablepre}rooms (roomid,status) VALUES ({$i},1)");
            $rchoice = $i;
            break;
        } else {
            $zz = $db->fetch_array($result);
            if ($zz['status'] == 0) {
                $db->query("UPDATE {$gtablepre}rooms SET status = 1 WHERE roomid = '{$i}'");
                $rchoice = $i;
                break;
            }
        }
    }
    if ($rchoice == -1) {
        gexit('房间数目已经达到上限,请加入一个已存在的房间', __FILE__, __LINE__);
        die;
    }
    $roomdata = room_init($roomtype);
    global $cuser;
    $roomdata['player'][0]['name'] = $cuser;
    writeover(GAME_ROOT . './gamedata/tmp/rooms/' . $rchoice . '.txt', base64_encode(gzencode(compatible_json_encode($roomdata))));
    $db->query("DELETE from {$gtablepre}roomlisteners WHERE roomid = '{$rchoice}'");
    return $rchoice;
}