- 精华
- 阅读权限
- 70
- 好友
- 相册
- 分享
- 听众
- 收听
- 注册时间
- 2012-12-12
- 在线时间
- 小时
- 最后登录
- 1970-1-1
|
本帖最后由 衍之如茶 于 2013-1-21 11:55 编辑
珍兽系统作为天龙的一大特色,在单机游戏里若不能实现单人繁殖未免有些遗憾。
我看了很多朋友发布的版本,似乎还没有一个版本能够单人繁殖珍兽的。希望有这样版本的朋友,发布一个上来,或者知道的朋友发布一个链接,这里万分感谢!
我在这里提出单人繁殖的几点设想,希望与各位朋友共同研究。
声明一下,本人接触天龙SF也才一个多月,知识尚有许多不足之处,如有错漏,请朋友们多多包涵{:soso_e183:}
服务端:
tlbb\Public\Data\Script\event\petprocreate\PetProcreateRegister.lua ----珍兽繁殖脚本
tlbb\Public\Data\Script\event\petprocreate\PetProcreateTakeOut.lua ----取出完成繁殖珍兽脚本
tlbb\Public\Data\Script\event\petcompound\petcompound.lua ----炼兽脚本
客户端:
Interface.axp => PetProcreate文件夹 ----珍兽繁殖界面和脚本
Interface.axp => PetSynthesize文件夹 ----炼兽界面和脚本
Interface.axp => PetPropagateSingle文件夹 ----可能是单人珍兽繁殖的界面和脚本
以下只是作为实现单人繁殖的一种设想而已,成功率应该很低。
设想1:
点击“珍兽繁殖”时,弹出“单人珍兽繁殖”的窗口。
方法1:
把PetPropagateSingle.lua的函数内容搬到PetProcreate.lua里,并保证PetProcreate.lua的函数名不变,变量名尽量不变。这个方法我自己测试过,出错了,是客户端的某个函数没有定义,也许是程序本身问题,也许是我粗心了,后面没再测试,有兴趣的朋友可以试下。
设想2:
“炼兽”的界面,需要提交两只宠物,很适合转型用来做单人珍兽繁殖。这个应该只需用修改后台脚本。
方法2:
暂缺。想不出来。因为珍兽繁殖的脚本只用到两个函数
LuaFnCheckCallPetProcreateRegisterUI(sceneId, selfId,targetId) ----判断玩家是否组队,队友是否在附近,玩家是不是队长等等,返回值为0或1
LuaFnCallPetProcreateRegisterUI(sceneId, selfId,targetId,26) ----判断珍兽是否宝宝,是否未生,是否同一种类,是不是异性,快乐度够不够等,返回值为0或1
至于函数内的流程,我们似乎无法修改(或者是我不知道在哪修改)。
设想3:
基于方法2的难处,我另想了一种。能否在调用LuaFnCheckCallPetProcreateRegisterUI之前,我们先插入代码,修改玩家组队情况,以符合函数的所有判断条件。
至于珍兽繁殖的界面,也应当做相应的修改,让玩家可以单人提交两只珍兽。
方法3:
暂缺
以上设想,只为抛砖引玉。我接触天龙时间太短,还有很多不懂,也不知道单人繁殖珍兽能否实现。希望宝湾的高手们,能够替广大玩家实现这个功能。
****************************************************************************************************************************
分割线
****************************************************************************************************************************
1月17日更新
设想4:模拟繁殖
不使用游戏本身的繁殖程序,利用LuaFnCreatePetToHuman函数,直接生成两只随机变异的珍兽给玩家。由于函数是现成的(来自珍兽蛋代码),剩下的工作,只是把繁殖珍兽的条件模拟出来而已。
方法4:
客户端界面仍是利用炼兽那个,放进两个珍兽之后,自己按官方条件尽量多的添加限制,点击确定之后,调用服务端代码生成珍兽。以駮马为例:
駮马宝宝代码3289,其二代变异代码是3281-3286。建立数组
horse = {
{id=3281,rate=100}
{id=3282,rate=300}
{id=3283,rate=500}
{id=3284,rate=800}
{id=3285,rate=950}
{id=3286,rate=1000}
}
通过这样的数组以及随机数random(1000),让玩家获得随机变异的二代珍兽- if bbid==3289 then
- local ratee = random(1000)
- for i=1,6
- if ratee<horse[i].rate then
- LuaFnCreatePetToHuman(sceneId, selfId, horse[i].id, 1 , 0)
- end
- end
- end
复制代码 生完之后,如果无法在数据库做标记,也可以用SetMissionData做一个标记代替,用来限制宝宝珍兽20级之后才能再繁殖。
结论:这个方法只能算是一个取巧,实现的可能性应该较高,可以在80%以上。但这不是真正的单人繁殖,所以会有些BUG,比如30级单人繁殖之后你还可以再开个号进行传统的双人珍兽繁殖,配偶ID如果填不进数据库,会出现可以任意配对的情况,这些都需要慢慢研究加以优化。
希望朋友们积极讨论踊跃发言,让单机天龙更加完善起来。
****************************************************************************************************************************
分割线
****************************************************************************************************************************
1月19日更新
按照设想4的方法,发一下第一阶段的代码
近来逍遥天龙的端很火,我是使用逍遥天龙的端做测试的,其他端没有试过。
代码实现了客户端和服务端的脚本调用,即:利用炼兽界面提交两只珍兽,然后客户端调用服务端脚本,增加一只小红马。
代码不全,还不能模拟珍兽繁殖,只是在客户端做了点判断(珍兽快乐度和寿命值等),后台直接送一只二代珍兽。可以修改一下petcompound.lua,实现珍兽繁殖的珍兽宝宝判断,珍兽类型判断,修改繁殖出来的二代珍兽等等,这些应该不难,朋友们自行发挥吧。后面的难点是在珍兽配偶辨别和30级50级的繁殖限制,这需要再想办法解决,目前我还没有想到。
简单说一下脚本的替换
服务端部分:
petcompound.lua放在/home/tlbb/Public/Data/Script/event/petcompound
yuanbaoshop.lua放在/home/tlbb/Public/Data/Script/event/prize
客户端部分:
PetSynthesize下的两个文件,替换data/Interface.axp里PetSynthesize下的两个文件(使用AXPPacker.exe)
****************************************************************************************************************************
分割线
****************************************************************************************************************************
1月20日更新
再更新一下
这个文件更新了一些珍兽繁殖条件的判断,再根据宝宝类型生出相对应的二代(苏州云霏霏)。
1、繁殖等级就没做限制,1级直接可以生;
2、没有繁殖次数限制;
3、成长率随机,与“双亲”再无关系;
更新方法:
服务端部分:
petcompound.lua放在/home/tlbb/Public/Data/Script/event/petcompound
yuanbaoshop.lua放在/home/tlbb/Public/Data/Script/event/prize
客户端部分:
PetSynthesize下的两个文件,替换data/Interface.axp里PetSynthesize下的两个文件(使用AXPPacker.exe)
19日的更新包我不小心删掉了,已经用过19日更新包的朋友,只要更新petcompound.lua就好
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
x
评分
-
查看全部评分
|