衍之如茶 发表于 2013-1-15 11:42:08

天龙八部单人繁殖珍兽的设想【已更新】

本帖最后由 衍之如茶 于 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.rate then
            LuaFnCreatePetToHuman(sceneId, selfId, horse.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就好


q69650411 发表于 2013-1-15 13:49:58

{:soso_e103:} 以前玩SF时候看到过有单人繁殖   ~~~

珍惜、呐份情 发表于 2013-1-15 19:48:05

:

衍之如茶 发表于 2013-1-15 21:04:43

以前我也有玩过能单人繁殖的SF,那时候还需要爱心小窝
现在要爱心小窝容易,还原代码出来就难了

/_____特曼 发表于 2013-1-16 01:37:08

   单人繁殖已经出来了只是脚本没放出来

/_____特曼 发表于 2013-1-16 01:37:55

楼主加我QQ,:

★雨亭★ 发表于 2013-1-16 13:02:52

::支持设想……观望期待中……

这是我的 发表于 2013-1-16 14:30:57

我也想要单人繁殖的补丁::

q69650411 发表于 2013-1-17 16:37:58

楼主的精神给力~

衍之如茶 发表于 2013-1-19 13:44:40

帖子自己顶,哎

q69650411 发表于 2013-1-20 09:42:16

我去试试 顶楼主

衍之如茶 发表于 2013-1-20 10:21:23

q69650411 发表于 2013-1-20 09:42 static/image/common/back.gif
我去试试 顶楼主

{:8_253:}谢谢支持

q69650411 发表于 2013-1-20 10:39:08

衍之如茶 发表于 2013-1-20 10:21 static/image/common/back.gif
谢谢支持

{:8_257:} 感觉要是能繁殖出来的是提交的宝宝就好了 还有性别也没有判断吧~

zual 发表于 2013-1-20 11:17:14

看不懂,不过感觉很厉害的样子.....

衍之如茶 发表于 2013-1-20 12:10:05

q69650411 发表于 2013-1-20 10:39 static/image/common/back.gif
感觉要是能繁殖出来的是提交的宝宝就好了 还有性别也没有判断吧~

这个不难,比较繁琐就是,做完后我会发上来的

q69650411 发表于 2013-1-22 17:22:21

哈哈 又出新的了继续顶楼主

q69650411 发表于 2013-1-22 18:13:23

{:soso_e129:} 继续顶

q69650411 发表于 2013-1-22 18:35:50

测试中发现一个问题 性别不符合时候点繁殖后没反应 建议改成提示一下

q69650411 发表于 2013-1-22 18:37:05

{:soso_e113:} 而且繁殖之后不是应该两只么

衍之如茶 发表于 2013-1-22 20:23:22

本帖最后由 衍之如茶 于 2013-1-22 20:47 编辑

q69650411 发表于 2013-1-22 18:35 static/image/common/back.gif
测试中发现一个问题 性别不符合时候点繁殖后没反应 建议改成提示一下

我这边是有提示的啊

petcompound.lua里的这段代码就是判断性别的if mod(pet1guidl+pet2guidl,2) == 0 then
        BroadMsgByChatPipe(sceneId, selfId, "@*;SrvMsg;DBD:#{DRFZZC_091013_21}", 0)
        return
end*****************************************************

好像是逍遥天龙那新版本把客户端的StrDictionary.txt给精简了,你把

#{DRFZZC_091013_21}

替换成

繁殖的两只珍兽必须互为异性

就可以了
页: [1] 2 3
查看完整版本: 天龙八部单人繁殖珍兽的设想【已更新】

本站内容如若侵犯到您的权益,请来电来函告知,我们会尽快处理!
联系QQ:1953150286,2251387361,123784736,免责申明