首先我们要大概知道NPC是怎么创建出来的
1.天骄里面的新建 道具 NPC 怪物 场景都是一个来自同一个抽象类
2.这个新建的派生类的每个函数需要重新定义在实例化出来,所以需要一个虚表指向类的函数
这个是创建汉中郡的虚表(上面说到的抽象类就是这样的)
.链表结构如下
1.析构(也就是释放,即有析构肯定有*构造函数,下面在说在那里)
2.CERPerson::Create创建,这个函数有点讲头,看图解释
2.1.创建默认属性,注意这里是Person也就是拟人的创建(设置等级/属性/声望/金钱/HMP/乱七八糟的,NPC就没有尊严有属性的吗?)
2.2.NPC怎么增加修理/打造/鉴定,也是在这里SetInt
2.3.看下面这张图片,我先说作用,是生成一个物品,为什么要说这个?因为在这里设置的物品是属于这个人的,你买了不需要刷新一直都存在.注意这里的asc_xxxx是必须先创建*字符串索引,下面说
3.类似析构(没跟过代码,稍微看了下,类析构的时候会删除内存并调用这个析构函数)
4.加载(没啥好说的)
5.保存(没啥好说的)
6.获取保存长度(没啥好说的)
7.CERObject::Init初始化(我的理解是刷新,看解释)因为这里是商人的购买界面的物品生成物品的函数,这里的跟上面的不同之处在于你买完就没了,得等服务端刷新
8.删除Init生成的物品
9.不知道拿来干嘛的,没用,二次生成物品?
10.复制(没分析,不清楚,应该是字面意思)
11.On析构(这里无用)
12.On使用(这里无用)
13.On死亡(这里无用)
14.验证(这里无用)
15.接受对象(这里无用)
16.属于(这里无用)
17.确认?(这里无用)
18.最后还有一句dd offset zahuoshang_hz_Ask,这个函数是对话选项
上面提到字符串索引是什么呢?我说过 来自同一个抽象类,就是创建这个派生类,在虚表[1]的Create函数里面设置索引,注意这里是物品所以是CERItem::Create,Init Ask都是无用的
然后就是析构函数 3步走1分配内存 2实例化 3指向链表
最后还有一步准备创建物品
ER_createPrepareObject(构造函数,字符串索引, 类型, 0);
类型需要说下 1 NPC 2物品
上面创建道具其实已经说完了,NPC还有要说的
CERRoom::SetObject(this指针, 字符串索引, 数量);
this指针,参考之前的帖子.数量 NPC一般是1,大于1的一般是场景出口.注意这里是Room,也可以创建出口
大概说完了,下面实战结果
1.天骄里面的新建 道具 NPC 怪物 场景都是一个来自同一个抽象类
2.这个新建的派生类的每个函数需要重新定义在实例化出来,所以需要一个虚表指向类的函数
这个是创建汉中郡的虚表(上面说到的抽象类就是这样的)
.链表结构如下
1.析构(也就是释放,即有析构肯定有*构造函数,下面在说在那里)
2.CERPerson::Create创建,这个函数有点讲头,看图解释
2.1.创建默认属性,注意这里是Person也就是拟人的创建(设置等级/属性/声望/金钱/HMP/乱七八糟的,NPC就没有尊严有属性的吗?)
2.2.NPC怎么增加修理/打造/鉴定,也是在这里SetInt
2.3.看下面这张图片,我先说作用,是生成一个物品,为什么要说这个?因为在这里设置的物品是属于这个人的,你买了不需要刷新一直都存在.注意这里的asc_xxxx是必须先创建*字符串索引,下面说
3.类似析构(没跟过代码,稍微看了下,类析构的时候会删除内存并调用这个析构函数)
4.加载(没啥好说的)
5.保存(没啥好说的)
6.获取保存长度(没啥好说的)
7.CERObject::Init初始化(我的理解是刷新,看解释)因为这里是商人的购买界面的物品生成物品的函数,这里的跟上面的不同之处在于你买完就没了,得等服务端刷新
8.删除Init生成的物品
9.不知道拿来干嘛的,没用,二次生成物品?
10.复制(没分析,不清楚,应该是字面意思)
11.On析构(这里无用)
12.On使用(这里无用)
13.On死亡(这里无用)
14.验证(这里无用)
15.接受对象(这里无用)
16.属于(这里无用)
17.确认?(这里无用)
18.最后还有一句dd offset zahuoshang_hz_Ask,这个函数是对话选项
上面提到字符串索引是什么呢?我说过 来自同一个抽象类,就是创建这个派生类,在虚表[1]的Create函数里面设置索引,注意这里是物品所以是CERItem::Create,Init Ask都是无用的
然后就是析构函数 3步走1分配内存 2实例化 3指向链表
最后还有一步准备创建物品
ER_createPrepareObject(构造函数,字符串索引, 类型, 0);
类型需要说下 1 NPC 2物品
上面创建道具其实已经说完了,NPC还有要说的
CERRoom::SetObject(this指针, 字符串索引, 数量);
this指针,参考之前的帖子.数量 NPC一般是1,大于1的一般是场景出口.注意这里是Room,也可以创建出口
大概说完了,下面实战结果