2016 年 08 月 - 3 文章

TrinityCore一些常用的数据库查询脚本

  |   0 评论   |   0 浏览

1.查询在线用户

SELECT
    GUID AS 序号,
    ACCOUNT AS 账户,
    NAME AS 角色名称,
    ELT(
        RACE,
        '人类',
        '兽人',
        '矮人',
        '暗夜精灵',
        '亡灵',
        '牛头人',
        '侏儒',
        '巨魔',
        '',
        '血精灵',
        '德莱尼'
    ) AS 种族,
ELT(class,'战士','圣骑士','猎人','盗贼','牧师','死亡骑士','萨满','法师','术士','','德鲁伊') AS 职业,
LEVEL AS 等级,
ceil(money/10000) AS 金币,
arenapoints AS 竞技场点数,
totalHonorPoints AS 荣誉点数,
IF(ONLINE = 1,'在线','离线') AS 在线状态,
CONCAT(floor(totaltime/86400),'天', floor(MOD(totaltime,86400)/3600),'小时') AS 游戏时间
FROM
    characters
WHERE online = 1

2.查询任务及其相关信息

SELECT
	qt.id AS 任务ID,
	qt.questtype AS 任务类别,
	qt.logtitle AS 任务名称,
	qt.logDescription AS 任务简报,
	qt.questDescription AS 任务内容,
	qt.objectivetext1 AS 文本1,
	qt.objectivetext2 AS 文本2,
	qt.objectivetext3 AS 文本3,
	qt.objectivetext4 AS 文本4,
	it. NAME AS 道具名称1,
	ct. NAME AS 生物名称1,
	ct2. NAME AS 生物名称2,
	ct3. NAME AS 生物名称3,
	gt. NAME AS 事件名称1,
	gt2. NAME AS 事件名称2,
	gt3. NAME AS 事件名称3,
	gt4. NAME AS 事件名称4
FROM
	quest_template qt
LEFT JOIN item_template it ON qt.RequiredItemId1 = it.entry
LEFT JOIN creature_template ct ON qt.RequiredNpcOrGo1 = ct.entry
LEFT JOIN creature_template ct2 ON qt.RequiredNpcOrGo2 = ct2.entry
LEFT JOIN creature_template ct3 ON qt.RequiredNpcOrGo3 = ct3.entry
LEFT JOIN gameobject_template gt ON gt.entry = ABS(qt.RequiredNpcOrGo1)
LEFT JOIN gameobject_template gt2 ON gt2.entry = ABS(qt.RequiredNpcOrGo2)
LEFT JOIN gameobject_template gt3 ON gt3.entry = ABS(qt.RequiredNpcOrGo3)
LEFT JOIN gameobject_template gt4 ON gt4.entry = ABS(qt.RequiredNpcOrGo4)

 

期待已久的pi4j发布了1.1版本

  |   0 评论   |   0 浏览

期待已久的pi4j发布了1.1版本,终于支持了Pi3 Model B。 Pi4j项目的目的是提供一个友好的面向I/O接口的API,以jar包形式提供。通过Pi4j的API,我们可以轻松控制GPIO而不用关注底层实现。

1.1新版本特性简单翻译如下:

  • 新增支持 Raspberry Pi 3 - Model B 设备
  • 新增支持 Raspberry Pi Zero 设备
  • 新增支持 BananaPi platform 设备
  • 新增支持 BananaPro platform 设备
  • 新增支持 Odroid C1/C1+ 设备
  • 新增支持 Odroid XU4 设备
  • 升级运行时环境为 Java 7
  • 新增支持通过 non-privileged GPIO 访问the Pi4J API
  • 优化GPIO响应延迟
  • 支持Maven交叉编译
  • 支持高级的串行配置/操作
官网地址:http://pi4j.com/

基于TrinityCore的魔兽世界服务器架构规划

  |   0 评论   |   0 浏览
TrinityCore是一个开源项目,维护于GitHub。TrinityCore基于MaNGOS开源项目并做了大量改动与优化,目前已经独立出来并拥有大量维护者,拥有成熟的社区环境。 TrinityCore是一个魔兽世界服务端模拟器,目前经过多年的维护于优化,已经基本模拟了所有魔兽世界服务端的功能与特性,而且没有严重影响游戏运行的BUG。 TrinityCore开源项目目前在GitHub上面维护了两个最重要的分支,一个是6.x版本(最新版),一个是3.3.5版本(巫妖王之怒)。 下面我们就将基于TrinityCore开源项目(3.3.5分支)讨论如何规划一个魔兽世界的公益服务器。

〇、整体架构共分为三层

1.Client客户端
2.Server服务端
3.DataBase数据库
如下图所示:
服务器架构图
图中灰色框体内是TrinityCore开源项目部分,其他颜色框体是开服必须但是非TrinityCore部分。下面我们来分别说明:

一、客户端

1.WOW Client :游戏客户端,版本限制为3.3.5a(国服13930,台服12340)。
2.Launcher:登录器,使用C#编写的windows程序,提供登录功能。基于Jeakz's Launcher改造。

二、服务器

1.WEB Server:网站系统,基于通用CMS改造,提供账号注册、修改密码、服务器状态查询等功能。
2.World Server:游戏世界服务器,基于TrinityCore改造。支撑游戏运行的最重要的服务器。
3.Auth Server:鉴权服务器,基于TrinityCore,无改动。提供登录与服务器列表功能。

三、数据库

1.Web数据库:对应WEB Server服务器的数据库。
2.Characters数据库:角色数据库,存储所有角色人物相关的信息。TrinityCore提供建表SQL。
3.World数据库:世界数据库,存储整个魔兽世界的一切信息,包括NPC,怪物,装备,道具,任务,副本等等所有一切。TrinityCore提供建表SQL。
4.Auth数据库:权限数据库,存储服务器列表,玩家账户等信息。TrinityCore提供建表SQL。