太阳神三国杀界限突破源码编译

【虐心】求教大神为何我编译的国战代码最近一启动服务器就崩溃?_太阳神三国杀吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:27,793贴子:
【虐心】求教大神为何我编译的国战代码最近一启动服务器就崩溃?
最近在用/Fsu0413上国战的代码尝试做mod之前我一直是每天上去看新更的代码同步更新 周四下午更到update freetype to 2.5.3这条 编译后也一切正常当晚把技能和卡牌及部分美工弄完还和朋友联机玩儿了会儿周五上github先同步更新了两位大神更新的代码(从13号的attempt to fix some memory leaks到14号的remove useless "If"'s, make some BGMusic functions usable in chat box)之后 再编译出来就无法启动服务器了 一启动服务器就崩溃 但单机还可以正常玩而且发现进入“关于”之后 再点“确定”也会崩溃于是我赶紧把新更的代码改回去 改回到周四下午的样子 再编译还是无法启动服务器百思不得其解我又重新下了一整套国战代码 原封不动编译 也是启动服务器就崩溃但可以单机,打开“关于”再点“确定”也崩溃查看也看不太懂 只看到写argv argc错误 无法计算错误的表达式什么的于是想说是不是电脑有问题了 又编译了我同时用/Paracel上的V2代码做的mod 一切正常去重新下了一套/Paracel的V2代码原封不动编译,也是一切正常 服务器都可以正常启动为何国战的就不行了 我用的编译 qt是4.8.5 swigwin是2.0.11
你还记得你看过的最虐心...
昨天清晨闲来无事 信手...
打路人局的时候,火树经...
游族《大皇帝》,三国经典策略网页游戏,群雄崛起,逐鹿中原.游族2016精品页游,水墨三国,招募史诗战将,皇帝霸业,等你来战!
swig2.0.11我记得不能编译...楼主是崩在哪里呢?
前几天修内存泄露的时候多删了几个指针……修了
贴吧热议榜
使用签名档&&
保存至快速回贴新版太阳神三国杀武将扩展学习手册_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
新版太阳神三国杀武将扩展学习手册
上传于||暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩167页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢下次自动登录
现在的位置:
& 综合 & 正文
vs2008编译QT开源项目–太阳神三国杀源码分析(一) 项目编译及整体分析
按照上面的网址教程,下载三国杀源码,swig工具,并下载最新的QT4.8.2 for vs2008.我本机已经安装好了vs2008和QT4.7,因此下载QT4.8.2后直接安装,并在vs2008的QT菜单中点击QT Options子菜单,设置默认的QT/Win版本为4.8.2.使用vs2008打开QSanguosha.pro工程文件,转换为QSanguosha.sln.这时编译报无法找到fmodex.lib文件,这个文件是directx的声音文件库.搜索三国杀源码目录,可以找到,直接在项目属性中设置lib搜索路径,添加"./lib"即可成功编译.
后面逐步分析源码。
一、启动界面
从main函数中开始跟踪,找到如下
MainWindow *main_window = new MainW
Sanguosha-&setParent(main_window);
main_window-&show();
在MainWindow类的构造函数中,创建连接对话框和配置对话框实例,并将其exec()/show()槽与Action的triggered信号关联,Action触发时显示对话框,并将对话框的信号与相应处理槽函数关联,一行代码搞定,代码简洁高效.
connection_dialog = new ConnectionDialog(this);
connect(ui-&actionStart_Game, SIGNAL(triggered()), connection_dialog, SLOT(exec()));
connect(connection_dialog, SIGNAL(accepted()), this, SLOT(startConnection()));
config_dialog = new ConfigDialog(this);
connect(ui-&actionConfigure, SIGNAL(triggered()), config_dialog, SLOT(show()));
connect(config_dialog, SIGNAL(bg_changed()), this, SLOT(changeBackground()));
connect(ui-&actionAbout_Qt, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
接着创建启动场景(start_scene),并创建启动画面中的10个启动按钮,将10个Action对象存入一个QList中,其中每个Action都对应创建一个按钮(Button类,继承与QGraphicsObject),并添加到启动场景(start_scene)中.
StartScene *start_scene = new StartS
QList&QAction*&
actions && ui-&actionStart_Game
&& ui-&actionStart_Server
&& ui-&actionPC_Console_Start
&& ui-&actionReplay
&& ui-&actionConfigure
&& ui-&actionGeneral_Overview
&& ui-&actionCard_Overview
&& ui-&actionScenario_Overview
&& ui-&actionAbout
&& ui-&actionA
foreach(QAction *action, actions)
start_scene-&addButton(action);
创建一个QGraphicView对象,并显示在主窗体的中心位置,设置view的场景为启动场景.
view = new FitView(scene);
setCentralWidget(view);
restoreFromConfig();
//让view显示start_scene
gotoScene(start_scene);
二、Button类
启动界面的按钮效果很酷,鼠标滑过有动画效果,并且有声音,和大型网游效果很像.其实现很简单,Button类是从QGraphicObject继承的,在其内部处理鼠标事件和自绘.首先看Button的构造函数,里面直接调用了一个Init成员函数,Init函数中设置Button可接收焦点,可接收鼠标悬停事件,并根据构造函数的title参数创建一个QGraphicsPixmapItem对象,在其上drawText按钮的标题文字,在当前对象的位置之上显示这个图像,注意这个图像对象是在Button的构造函数中show出来的,因此其总会在Button实例的上方,但其不能接受焦点和鼠标事件,因此不影响Button对象对鼠标事件的处理.接着加载指定的按钮图像,并缩放为目标大小,存储在outimg成员中.
setFlags(ItemIsFocusable);
setAcceptHoverEvents(true);
setAcceptedMouseButtons(Qt::LeftButton);
title = new QPixmap(size.toSize());
title-&fill(QColor(0,0,0,0));//填充完全透明的黑色,这样只能显示绘制的文字,其他部分不会覆盖底层图元
QPainter pt(title);
pt.setFont(font);
pt.setPen(Config.TextEditColor);
pt.setRenderHint(QPainter::TextAntialiasing);
pt.drawText(boundingRect(), Qt::AlignCenter, label);
title_item = new QGraphicsPixmapItem(this);
title_item-&setPixmap(*title);
title_item-&show();
QImage bgimg("image/system/button/button.png");
outimg = new QImage(size.toSize(),QImage::Format_ARGB32);
qreal pad = 10;
int w = bgimg.width();
int h = bgimg.height();
int tw = outimg-&width();
=outimg-&height();
qreal xc = (w - 2*pad)/(tw - 2*pad);
qreal yc = (h - 2*pad)/(th - 2*pad);
for(int i=0;i&i++)
for(int j=0;j&j++)
if( x&=pad && x&=(tw - pad) ) x = pad + (x - pad)*
else if(x&=(tw-pad))x = w - (tw - x);
if( y&=pad && y&=(th - pad) ) y = pad + (y - pad)*
else if(y&=(th-pad))y = h - (th - y);
QRgb rgb = bgimg.pixel(x,y);
outimg-&setPixel(i,j,rgb);
Button类的paint虚方法重载实现很简单,直接绘制outimg图像,并根据动画效果需要在图像上方绘制一个白色半透明的矩形区域.
QRectF rect = boundingRect();
painter-&drawImage(rect,*outimg);
painter-&fillRect(rect,QColor(255,255,255,glow*10));
为了实现动画效果,鼠标划入时触发的hoverEnterEvent事件中设置按钮拥有焦点,播放声音,并调用QObject::startTimer函数启动定时器,在timerEvent事件中调用update函数触发重绘,并增减glow变量,调整按钮上方绘制的矩形区域的透明度----当按钮拥有焦点时增加可见度,呈现淡白色朦胧效果,失去焦点则减少可见度,直到使按钮图片完全显示出来.
void Button::hoverEnterEvent(QGraphicsSceneHoverEvent *){
setFocus(Qt::MouseFocusReason);
#ifdef AUDIO_SUPPORT
Sanguosha-&playAudio("button-hover");
if(!timer_id)timer_id = QObject::startTimer(40);
void Button::timerEvent(QTimerEvent *)
if(hasFocus())
if(glow&5)glow++;
if(glow&0)glow--;
else if(timer_id)
QObject::killTimer(timer_id);
timer_id = 0;
太阳神三国杀中声音很流畅亮丽.实现采用开源跨平台的游戏声音引擎fmod,详细内容请参见:.内部将fmod操作封装在Sound类中,这个类很简单,数行代码而已.
static FMOD_SYSTEM *S
static FMOD_SOUND *BGM;
static FMOD_CHANNEL *BGMC
class Sound{
Sound(const QString &filename)
:sound(NULL), channel(NULL)
FMOD_System_CreateSound(System, filename.toAscii(), FMOD_DEFAULT, NULL, &sound);
FMOD_Sound_Release(sound);
void play(){
if(sound){
FMOD_RESULT result = FMOD_System_PlaySound(System, FMOD_CHANNEL_FREE, sound, false, &channel);
if(result == FMOD_OK){
FMOD_Channel_SetVolume(channel, 1.000/*Config.EffectVolume*/);
FMOD_System_Update(System);
bool isPlaying() const{
if(channel == NULL)
FMOD_BOOL is_playing =
FMOD_Channel_IsPlaying(channel, &is_playing);
return is_
FMOD_SOUND *
FMOD_CHANNEL *
在项目启动时初始化fmod:
FMOD_RESULT result = FMOD_System_Create(&System);
if(result == FMOD_OK){
FMOD_System_Init(System, 100, 0, NULL);
在项目结束时释放fmod:
if(System){
SoundCache.clear();
FMOD_System_Release(System);
System = NULL;
注意,fmod需要6个头文件:fmod.h,fmod_codec.h,fmod_dsp.h,fmod_errors.h,fmod_memoryinfo.h,fmod_output.h,以及一个lib文件fmodex.lib,一个dll文件fmodex.dll.可以直接将上面的类和8个文件移植到自己的项目中使用,测试通过.唯一需要注意的是Sound对象的析构函数中会结束音频播放,因此如果声明了一个临时变量,需要等待声音播放完毕才能跳出Sound对象的作用域,否则声音未等播放已经结束了.
四、如何进入到RoomScene
进入游戏后需要首先点击Start Server按钮建立服务端,再点击Start game菜单,重新启动一个进程,在新进程中点击Start game按钮,弹出连接窗体,输入服务器IP地址及用户名后可以加入到游戏中,直接进入正式游戏界面.这里创建了两个进程,第一个是服务端,第二个是客户端.为了跟踪第二个exe进程,需要首先直接启动一个exe进程,在启动第二个进程后,点击vs2008的调试菜单--附加到进程,找到第二个三国杀进程,即可在源码中设置断点跟踪了.这里描述一下客户端建立游戏的过程.
点击Start game按钮后,弹出一个连接窗体,窗口对象的accepted信号与startConnection槽相关联,点击连接按钮后,触发这个函数,创建Client类的实例,在其version_checked信号的响应函数checkVersion中,判断客户端与服务端的版本号是否匹配,如果匹配则与服务端建立连接,客户端对象的server_connected信号触发enterRoom函数,进入到游戏界面.
connect(connection_dialog, SIGNAL(accepted()), this, SLOT(startConnection()));
//构造函数中连接窗体返回触发startConnection
//startConnection函数启动Client对象,并设置信号与槽的连接
void MainWindow::startConnection(){
Client *client = new Client(this);
connect(client, SIGNAL(version_checked(QString,QString)), SLOT(checkVersion(QString,QString)));
connect(client, SIGNAL(error_message(QString)), SLOT(networkError(QString)));
//checkVersion中比较版本号,并进入到游戏界面
void MainWindow::checkVersion(const QString &server_version, const QString &server_mod){
QString client_mod = Sanguosha-&getMODName();
if(client_mod != server_mod){
QMessageBox::warning(this, tr("Warning"), tr("Client MOD name is not same as the server!"));
Client *client = qobject_cast&Client *&(sender());
QString client_version = Sanguosha-&getVersionNumber();
if(server_version == client_version){
client-&signup();
connect(client, SIGNAL(server_connected()), SLOT(enterRoom()));
if(qApp-&arguments().contains("-hall")){
HallDialog *dialog = HallDialog::GetInstance(this);
connect(client, SIGNAL(server_connected()), dialog, SLOT(accept()));
再看一下核心函数enterRoom.设置好服务端IP地址并登陆成功后,触发这个函数.首先将这个IP地址保存在Config中.设置相关Action的Enabled属性使相应按钮和菜单失效变灰.创建RoomScene对象,进行相关设置.最后调用gotoScene(room_scene);切换到游戏界面.
五、游戏界面的创建
游戏界面的元素完全创建在RoomScene场景类中,只要打开游戏查看效果并对照代码和image\system目录中的图片,即可分析出对应界面是如何创建出来的.下面逐一解读.首先根据从游戏服务端获取的玩家总数,生成代表每个异地玩家的图标.
//创建代表其他玩家的头像,不用创建当前玩家
for(i = 0; i & player_count - 1;i++){
Photo *photo = new P
addItem(photo);
photo-&setZValue(-0.5);
接着创建操作面板,这个操作面板包括界面上的按钮区域,还有当前玩家的装备区和手牌区域.
//添加右下方的操作面板及按钮
createControlButtons();
QGraphicsItem *button_widget = NULL;
if(ClientInstance-&getReplayer() == NULL){
QString path = "image/system/button/irregular/background.png";
button_widget = new QGraphicsPixmapItem(QPixmap(path));
//四个不规则按钮
ok_button-&setParentItem(button_widget);
cancel_button-&setParentItem(button_widget);
discard_button-&setParentItem(button_widget);
trust_button-&setParentItem(button_widget);
// create dashboard 仪表盘 包括玩家装备和手牌区域
dashboard = new Dashboard(button_widget);
dashboard-&setObjectName("dashboard");
//dashboard-&setZValue(0.8);
addItem(dashboard);
调用createStateItem();函数创建选择反贼和英雄的两个按钮.
创建聊天区域控件:
chat_box = new QTextE
QSize chat_box_size = room_layout-&chat_box_
chat_box_size.rwidth() += widen_
chat_box-&resize(chat_box_size);
chat_box-&setObjectName("chat_box");
chat_box_widget = addWidget(chat_box);
输入聊天信息的textEdit控件:
chat_edit = new QLineE
chat_edit-&setFixedWidth(chat_box-&width());
chat_edit-&setObjectName("chat_edit");
右边的系统信息显示框:
chat_widget = new ChatWidget();
chat_widget-&setX(chat_box_widget-&x()+chat_edit-&width() - 77);
chat_widget-&setY(chat_box_widget-&y()+chat_box-&height() + 9);
chat_widget-&setZValue(-0.2);
addItem(chat_widget);
最底部的两个ComboBox:
sort_combobox = new QComboB
sort_combobox-&addItem(tr("No sort"));
sort_combobox-&addItem(tr("Sort by color"));
sort_combobox-&addItem(tr("Sort by suit"));
sort_combobox-&addItem(tr("Sort by type"));
sort_combobox-&addItem(tr("Sort by availability"));
connect(sort_combobox, SIGNAL(currentIndexChanged(int)), dashboard, SLOT(sortCards(int)));
connect(Self, SIGNAL(pile_changed(QString)), this, SLOT(updatePileButton(QString)));
// add role combobox
role_combobox = new QComboB
role_combobox-&addItem(tr("Your role"));
role_combobox-&addItem(tr("Unknown"));
connect(Self, SIGNAL(role_changed(QString)), this, SLOT(updateRoleComboBox(QString)));
进入游戏界面的生成基本上介绍完毕,下面将分多个分别介绍各个类的作用和实现机制.
&&&&推荐文章:
【上篇】【下篇】太阳神三国杀QSanguosha for Linux下载 - 查看主题 & Ubuntu中文论坛
&[ 23 篇帖子 ]&
&文章标题 : 太阳神三国杀QSanguosha for Linux下载发表于 :
13:26帖子: 439
送出感谢: 0 次
就像linux的碎片化,这个游戏也有V1、V2和.NET三个分支,区别大概就跟萝莉、御姐、伪娘一样太阳神三国杀V1分支源代码在这里---------------------------------------------------------------------------------------------------太阳神三国杀V2分支【更新】太阳神三国杀V2,更新至源代码在下面---------------------------------------------------------------------------------------------------太阳神三国杀linux的32位和64位的deb和rpm包,还有雨林木风star os的ypk包如果是压缩包,先在linux里面解压软件,进入到主程序所在文件夹,鼠标右键打开终端,把“./QSanguosha”复制粘贴进终端里面,回车键OK---------------------------------------------------------------------------------------------------《三国杀.NET》更新通知,这是基于C#的.NET版本,跟JAVA一样每个不同的平台都需要安装虚拟机。微软确实没有提供Linux版的.NET虚拟机,不过安装微软的欢喜冤家Novell开发的MONO虚拟机就行了,举个大家最熟悉的例子,就是Linux通过MONO也能运行微软的Sliverlight。下载地址源代码在这里---------------------------------------------------------------------------------------------------如果要开发移动平台的版本,建议选择号称比JAVA还要跨平台的亦静亦动的开源语言HAXE+NME开发,这样什么苹果安卓WP版都有了。HAXE是一种基于ActionScript的编程语言,后者大家最熟悉的例子就是ADOBE AIR,目前AIR已经放弃了Linux平台,不过HAXE是有开源社区支持的,这样就能编译出跨平台Flash和C++等的应用了。HAXE语言介绍---------------------------------------------------------------------------------------------------万年坑联机方式,请确认自己使用哪个版本在联机,三国杀.NET自带联机服务器,不能使用万年坑,以下服务器只适用于新神杀端午版和元宵版。万人坑更新到v2 1210版点击“启动游戏”,在“主机”输入1210身份双将: xsgs.dtdns.net:95281210身份单将: xsgs.dtdns.net:9527以上二选一即可,前者是双将后者是单将。如果想自己建立主机就点击“启动服务器”,必须是外网IP,一个路由器拖的N台电脑都是内网IP,不能直接建立主机,用hamachi之类的软件虚拟IP才可以联机。2010年hamachi被LogMeIn收购,收购前有免费的windows的中文版,目前也有linux等跨平台版本【Windows平台工具】解决没有公网IP等,想开服务器的工具。如果觉得软件不好设置,搜索一下“Quamachi”或者“Haguichi”,它们都是图形化配置工具,配置起来比较简单。如果还是不懂用,就用我签名栏的可以穿透防火墙的远程控制软件建立虚拟IP吧~~
_________________
3:08,总共编辑了 15 次
_________________
评价:&3.85%&
&文章标题 : Re: 太阳神三国杀在linux下的编译方法发表于 :
8:48帖子: 26290地址: 东海硇州,一双管钥。
系统: Fundu i64
挺喜欢这游戏的
_________________◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。?执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
&文章标题 : Re: 太阳神三国杀QSanguosha for Linux下载发表于 :
13:26帖子: 439
送出感谢: 0 次
这个是免费开源游戏,已经编译成功linux版本,有兴趣的下载试玩,网上MAC版本也有。
&文章标题 : Re: 太阳神三国杀QSanguosha for Linux下载发表于 :
8:48帖子: 26290地址: 东海硇州,一双管钥。
系统: Fundu i64
这什么情况?
_________________◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。?执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
&文章标题 : Re: 太阳神三国杀QSanguosha for Linux下载发表于 :
16:16帖子: 132
啊,太好了,我就是专门为了玩这个到Win下的。
&文章标题 : Re: 太阳神三国杀QSanguosha for Linux下载发表于 :
14:04帖子: 157
接收感谢: 0 次
压缩包都到73M了啊,好像个头不小哇
&文章标题 : Re: 太阳神三国杀QSanguosha for Linux下载发表于 :
17:41帖子: 275
接收感谢: 0 次
新手求教怎么安装运行。
_________________莫谈国事ubuntu!
&文章标题 : Re: 太阳神三国杀QSanguosha for Linux下载发表于 :
10:38帖子: 4557
archlinux-cn有pkg包
&文章标题 : Re: 太阳神三国杀QSanguosha for Linux下载发表于 :
14:53帖子: 220地址: 新疆
系统: Linux Mint 13 XFCE
给力,马上去下载
_________________常用:Eclipse
Firefox GoldenDict GuakeTerminal pidgin-lwqq谁用谁知道:iBus-Rime(输入法)
Spotify(P2P音乐) SciTE(轻巧的文本编辑器) CherryTree(适合记录代码的笔记簿) f.lux或Redshift(根据地理位置自动调节显示器色温和亮度)
&文章标题 : Re: 太阳神三国杀QSanguosha for Linux下载发表于 :
15:46帖子: 7
送出感谢: 0 次
接收感谢: 0 次
&文章标题 : Re: 太阳神三国杀QSanguosha for Linux下载发表于 :
18:55帖子: 17
接收感谢: 0 次
非常感谢!希望以后都能跟进更新!玩这个比官方那个好多了
_________________梅花香自苦寒来
&文章标题 : Re: 太阳神三国杀QSanguosha for Linux下载发表于 :
20:46帖子: 184
测试可用!
_________________一连串的意外把我推上了 fedora 的前卫的道路。我用A卡,。---------公益广告---------
&文章标题 : Re: 太阳神三国杀QSanguosha for Linux下载发表于 :
18:55帖子: 17
接收感谢: 0 次
官方已更新到雪霁版,是否可以跟进一下?
_________________梅花香自苦寒来
&文章标题 : Re: 太阳神三国杀QSanguosha for Linux下载发表于 :
22:28帖子: 128
送出感谢: 0 次
10.04运行不能,求deb引用:./QSanguosha-bin: undefined symbol: _ZNK11QMetaObject4castEPK7QObject
_________________Citydream is always by your side...
&文章标题 : Re: 太阳神三国杀QSanguosha for Linux下载发表于 :
13:26帖子: 439
送出感谢: 0 次
更新至2013元宵节版~~~
_________________
显示帖子 : 全部帖子1天7天2周1个月3个月6个月1年&排序 作者发表时间文章标题 升序降序&
&[ 23 篇帖子 ]&
正在浏览此版面的用户:没有注册用户 和 3 位游客
您 不能 在这个版面发表主题您 不能 在这个版面回复主题您 不能 在这个版面编辑帖子您 不能 在这个版面删除帖子您 不能 在这个版面提交附件
选择一个版面
------------------
公告/注意事项
& &新闻和通知
& &校园社团支持
& && &华东校区
& && &华南校区
& && &华北校区
& && &华中校区
& && &东北校区
& && &西北校区
& && &港澳台校区
& && &国外校区
& &软件推荐
& &非常任务
系统安装区
& &教学和常见问答
& && &课堂教学和培训
& &初学者园地 - 16.04
& &系统安装和升级
& && &新立得和软件源
& && &Wubi安装讨论
& &启动和引导
& &网卡问题以及网络和拨号
& && &校园网拨号
& &笔记本、UMPC支持
& &手机和平板
& && &Ubuntu移动应用开发
& &常用硬件支持
& &系统架构支持
配置美化区
& &字体美化和中文支持
& && &个人配置文件存放点
& &桌面特效
& &窗口管理器
& &屏幕抓图
& &办公、图像、机械电子设计等
& && &Vim和Emacs
& &因特网相关软件
& &影音多媒体
& &Wine及其分支
& &游戏和游戏模拟器
& &虚拟机和虚拟化
& &其它类软件
& &开源模板库
服务器管理
& &服务器基础应用
& &数据库管理
& &服务器维护和硬件相关
& &Ubuntu VPS
参与Ubuntu开发
& &软件和文档翻译
& &编译或打包
& &Ubuntu错误报告
程序设计区
& &Shell脚本
& &GTK+和QT
& &软件/网站开发
& && &Python/Php/Perl
& && &C/C++/Java
& &内核及嵌入式开发
& &开源小工具
& &Ubuntu 16.10
& &Ubuntu 14.04 LTS
& &Ubuntu 12.04 LTS
& &Ubuntu 10.04 LTS
& &老旧版本支持
& && &Ubuntu 15.10
& && &Ubuntu 15.04
& && &Ubuntu 14.10
衍生发行版
& &Ubuntu GNOME
& &Kubuntu
& &Xubuntu & Lubuntu
& &Ubuntu中文衍生版
& && &UbuntuKylin
& &Ubuntu国外衍生版
& && &Mint
& &Ubuntu衍生版制作
& &其它类Unix OS发行版
& && &Arch发行版
& && &Debian发行版
& && &OpenSUSE发行版
& && &Deepin
& &深度PK版
& &Ubuntu故事和感慨
& &Full Circle开源杂志
分享交流区
& &同城交流
& &线下活动专版
& &Ubuntu宣传推广
& &论坛管理
& && && &Ubuntu中文网上商店}

我要回帖

更多关于 太阳神三国杀源代码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信