自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (1)
  • 收藏
  • 关注

原创 Ascent/Arcemu代码分析8-任务系统

 任务类型: 对话、送信、施放技能、杀怪、收集、采集、探索、护送(未实现) 任务定义: Quest 定义了任务的需求、奖励、文本描述、完成条件以及QuestScrip扩展接口。和ItemPrototye类似,作为任务的定义模板,其对象在运行期间不变。  QuestLogEntry 任务的实例,记录了一个任务的运行期状态,如已完成的杀怪数量。和Item类似,引用一

2009-10-05 19:19:00 3642 1

原创 Ascent/Arcemu代码分析7- 物品及装备

 类型定义:                   主要在ItemPrototype.h中,是各种道具相关的宏定义和枚举定义。                            物品类型(INVENTORY_TYPES):                            道具分类(ITEM_CLASS)                            道具子类(I

2009-10-05 19:17:00 3109

原创 Ascent代码分析6-技能

 相关概念: Spell 施放的技能,如火球术。每个技能可附带三种效果(如某系伤害、Aura) Effect 技能造成的效果,可以是某系魔法伤害,或者物理伤害,或者持续效果 类型定义:SpellEffects SpellTarget 技能目标,可能是单个目标(如火球术),一串目标(连锁闪电)或者区域目标(暴风雪) 类型定义:SpellTargetType

2009-10-05 18:52:00 2699 1

原创 Ascent代码分析5-更新一下资源

休假太久了也颇无聊...更新一下。 目前相对比较活跃的一个版本是arcemu,衍生自ascent,所以代码结构差不多。但是更新较快也较为完善。数据库的话,以前用的NCDB停掉了,目前较为好用的是whyDb.相对之前早期版本,指针都使用share_ptr重写了一遍,所以编译需要C++ tr1,这个可以在vc2008 sp1中找到。或者使用boost库中的tr1也可以。 这个版本可

2009-10-05 18:31:00 1950 1

原创 Ascent代码分析4-World之地图管理及实现结构

  Wow世界中的地图有两种:场景地图和副本地图.              场景地图只有一个实体,一般比较大。如东部王国、卡里姆多和外域分别是一个整张的地图(各个地图间传送的港口也是单独的地图)。              副本地图是同样的地图场景,但却有多个不同的实体。比如各种副本和战场,都属于副本地图。InstanceMgr:将负责整个世界的地图创建和保持。每个地图(以及

2008-11-27 00:19:00 3208 3

原创 Ascent代码分析3-World之对象与脚本

  事件管理器(EventMgr) Ascent的每个事件是一个TimedEvent对象,其中包含了一个回调函数对象、间隔时间、回调次数和标志信息。EventMgr只是封装了添加事件的操作(并不负责运行事件的回调函数),真正执行事件回调函数的是EventableObjectHolder的update()函数。当使用EventMgr::AddEvent的时候,需要指定目标对象(一

2008-11-27 00:08:00 3513 2

原创 Ascent代码分析1-运行环境架设

Ascent是一个魔兽世界服务器的模拟器开源项目,也就是现在使用的比较广泛的魔兽世界私服之一(还有个就是Mangos),Ascent的性能相对较高,有私服广告称,四核服务器能带1000玩家,根据其他人的反应应该差距不会太大。另外感觉ascent的代码相对mangos实现较为简洁易懂,所以稍微研究一下。程序主要有LogonServer,RealmServer,voicechat,world四个。

2008-11-26 23:04:00 7059 4

原创 Ascent代码分析2-底层shared

底层shared工程1.     线程&线程池   线程对象的基类ThreadBase提供了2个接口:virtual bool run() = 0;virtual void OnShutdown() {};新建线程对象只需要从ThreadBase派生,并实现run接口。然后使用CThreadPool::ExecuteTask()将线程对象加入线程池中

2008-11-19 22:52:00 4008 4

原创 CEventSocket 0.1修正版

对CEventSocket做了些修改,主要是原来close时,清理socket和事件很容易造成同步问题。修改后的清理方案为将close的socket,事件不再移除出数组,而是置为无效状态,并不绑定事件。在新加socket时扫描无效空位,在空位中插入新socket。这样避免了清除socket时对其他socket的移动而造成同步问题。另外添加了些注释说明,大部分用法和CAsyncSocket差不多

2008-03-08 10:24:00 1418

原创 使用vc编译psi

        编译完服务器,还要有客户端,就编译Psi吧,linux下面或者是用命令行就很容易编译了,直接运行批处理就可以了,这里要把他转换为vc工程,才好控制一些.还是要把需要的东西准备好:psi-0.10.tar.tar 官方源代码下载地址:http://psi-im.orgqt-win-free-3.3.7-7-without-doc-src.7z     qt3无文档源代码包下载

2007-04-21 18:36:00 2149 1

原创 使用vc编译jabberd2服务器

       首先要把东西准备齐了,已经有人做出了vc的代码补丁,可以到这个地方去下http://pingu.ii.uj.edu.pl/~ono/jabber/(比如这个jabberd-2.0-CVS20050711-VC2003.zip),然后就是要JABBERD2的源代码jabberd-2.0s11.tar.gz,还有openSSL和mysql的库文件,编译的时候用的到(Win32OpenSS

2007-04-21 17:51:00 4642 4

原创 一个基于事件模型的socket封装类CEventSocket

这是以前仿照MFC中的CAsyncSocket类写的一个基于事件模型的封装类~用法跟CAsyncSocket差不多,派生并重写接口.不同的是,这里会生成一个新的工作线程并在最大64个socket上进行操作.不过有些地方感觉还是不完善(比如错误代码处理上面还有其他什么不知道的地方),也不知道有没有必要写文档.贴出来大家看看有什么需要改进的,谢谢留言~(目前只测试了tcp连接的,可以正常工作)//

2007-03-31 13:20:00 2565

Programming Ground up

Programming from the Ground Up Jonathan Bartlett 这本书介绍linux下的汇编,使用的是gas和AT&T语法,内容很好,非常适合用来教学。只要你英语不是很差,看这本书是没问题的。

2011-02-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除