铁血丹心

 找回密码
 我要成为铁血侠客
搜索
查看: 4961|回复: 21

【star】【BUG补丁】 女主角入队离队BUG完全修复版(源码版)

  [复制链接]
发表于 2011-9-13 22:49 | 显示全部楼层 |阅读模式
本帖最后由 StarShine 于 2011-10-14 10:59 编辑

[BUG补丁]  女主角入队离队BUG完全修复版


完全修复女主角离队、入队问题,并保持对话风格一致。

经多次测试良好兼容,可以算是正式版了



简体繁体用户可直接下载文件



=======================================


实现源码如下:





  1. QZXS("妹子头像显示错误、离队对话错误已修复")
  2. QZXS("Star制作,祝游戏愉快")

  3. OEVENTLUA[199] = function()
  4. instruct_1(390, JY.Person[92]["头像代号"], 0)
  5. instruct_0()
  6. if instruct_9() == true then
  7. if instruct_20(20, 0) == false then
  8. instruct_10(92)
  9. instruct_14()
  10. instruct_3(-2, -2, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2)
  11. instruct_0()
  12. instruct_13()
  13. return
  14. end
  15. instruct_1(391, JY.Person[92]["头像代号"], 0)
  16. instruct_0()
  17. return
  18. end
  19. end

  20. OEVENTLUA[198] = function()
  21. if JY.Person[92]["姓名"] == "周芷若" then
  22. TalkEx("芷若,你先回小村,有需要*时,我再去找你帮忙。", 0, 0)
  23. elseif JY.Person[92]["姓名"] == "赵敏" then
  24. TalkEx("敏敏,你先回小村,有需要*时,我再去找你帮忙。", 0, 0)
  25. elseif JY.Person[92]["姓名"] == "郭襄" then
  26. TalkEx("襄儿,你先回小村,有需要*时,我再去找你帮忙。", 0, 0)
  27. elseif JY.Person[92]["姓名"] == "陆无双" then
  28. TalkEx("无双,你先回小村,有需要*时,我再去找你帮忙。", 0, 0)
  29. else
  30. end

  31. instruct_0();
  32. instruct_21(92);
  33. instruct_3(70,1,1,0,199,0,0,7266,7266,7266,-2,-2,-2);
  34. end

  35. Menu_PersonExit = function()
  36. DrawStrBox(CC.MainSubMenuX, CC.MainSubMenuY, "要求谁离队", C_WHITE, CC.DefaultFont)
  37. local nexty = CC.MainSubMenuY + CC.SingleLineHeight
  38. local r = SelectTeamMenu(CC.MainSubMenuX, nexty)
  39. if r == 1 then
  40. DrawStrBoxWaitKey("抱歉!没有你游戏进行不下去", C_WHITE, CC.DefaultFont, 1)
  41. else
  42. if JY.SubScene == 82 then
  43. do return end
  44. end
  45. end
  46. if r > 0 and JY.SubScene == 55 and JY.Base["队伍" .. r] == 35 then
  47. do return end
  48. end
  49. if r > 1 then
  50. local personid = JY.Base["队伍" .. r]
  51. for i,v in ipairs(CC.PersonExit) do
  52. if personid == v[1] then
  53. if OEVENTLUA[v[2]]~=nil then
  54. OEVENTLUA[v[2]]()
  55. else
  56. oldCallEvent(v[2])
  57. end
  58. end
  59. end
  60. end
  61. Cls()
  62. return 0
  63. end




复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x

评分

参与人数 2声望 +10 收起 理由
xzqcm111 + 5 好贴奖励
tsmdsyp + 5 好帖奖励

查看全部评分

【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-9-13 23:02 | 显示全部楼层
很好
话说本来下次打算拿这个事件举例的
(你多发了两帖)

你试过改离队事件没?
把那句“李姑娘”换成相应的“X姑娘”
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-9-13 23:04 | 显示全部楼层
本帖最后由 StarShine 于 2011-9-14 13:50 编辑

本补丁发布恰逢系统升级,原先的帖子编辑了一半,因为系统的不完善,无论如何无法再发出了…… 结果,分享补丁仅仅是发帖子这个环节就耗费了半个多小时。。。晕

点评

操你妈的starshine,还更新不更新了?,趁着大爷我放假有时间,赶紧的!你这个不争气的东西,不愧是你那破鞋妈妈和太监爸爸操出来的狗杂种(亮点),呸~呸!!!!!   发表于 2012-8-1 09:33
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-9-13 23:11 | 显示全部楼层
回复 tsmdsyp 的帖子


s大也在阿,呵呵

刚才这个本想给大家分享个半个晚上的制作成果,结果一来发帖卡了,二来恰好赶上系统升级,多出来两个帖子真是让咱不知如何说起~

李姑娘那个…… 事件编号我还没找到,s大给个提示?  ^^

点评

请大家多可怜可怜starshine,尽量安慰安慰它,谢谢!  发表于 2012-8-1 09:34
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-9-13 23:18 | 显示全部楼层
队友入队离队事件都是挨着的
应该是198吧

你去找一个大刀发的帖
里面把所有事件内容都按编号整理出来了的
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-9-13 23:27 | 显示全部楼层
回复 tsmdsyp 的帖子


收到,我去试试 ^^

原来大刀也是修改帝阿。。。哈哈!
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-9-13 23:38 | 显示全部楼层
       --离队人员列表: {人员id,离队调用函数}      ----如果有新的离队人员加入,直接在这里增加
    CC.PersonExit={{1,100},{2,102},{4,104},{9,106},{16,108},
                   {17,110},{25,112},{28,114},{29,116},{30,118},
                   {35,120},{36,122},{37,124},{38,126},{44,128},
                   {45,130},{47,132},{48,134},{49,136},{51,138},
                   {52,140},{53,142},{54,144},{55,146},{56,148},
                   {58,150},{59,152},{63,154},{66,156},{72,158},
                   {73,160},{74,162},{75,164},{76,166},{77,168},
                   {78,170},{79,172},{80,174},{81,176},{82,178},
                   {83,180},{84,182},{85,184},{86,186},{87,188},
                   {88,190},{89,192},{90,194},{91,196},{92,198},

                                   };

好像是蒼半的人物離隊表!~說不定以後新加人物也可以加在這
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-9-13 23:59 | 显示全部楼层
本帖最后由 StarShine 于 2011-9-14 00:02 编辑

发现这个问题没那么简单,198函数不能轻易覆盖的……

我再想想办法  

点评

我剛剛試了一下= = 我198也覆蓋不了舊事件 上面是蒼半的人物和離隊事件的配對  发表于 2011-9-14 00:03
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-9-14 00:05 | 显示全部楼层
本帖最后由 少朋 于 2011-9-14 00:06 编辑

我是寫這樣 但是他不理我= = (難道是我一直用EVB206 所以DIY生氣了)

OEVENTLUA[198]=function()
    CC.EVB206=JY.Person[92]["姓名"] .. "你先回小村,有需*要时,我再去找你帮忙。"
    say(CC.EVB206,JY.Person[0]["头像代号"],0,JY.Person[0]["姓名"])
    instruct_0(); -- 0(0)::空语句(清屏)
    instruct_21(92);   --  21(15):[女主角]离队
    instruct_3(70,1,1,0,199,0,0,7266,7266,7266,-2,-2,-2);   --  3(3):修改事件定义:场景[小村]:场景事件编号 [1]
end
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-9-14 00:11 | 显示全部楼层
回复 少朋 的帖子


没错!所以这里面没这么简单!


不过在半夜里还有兄台陪伴解题,也是快事了! 哈哈


点评

我換改祖千秋也是不能耶 可能離隊事件有特別的地方?  发表于 2011-9-14 00:19
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-9-14 01:15 | 显示全部楼层
那應是离队直接 做 oldCallEvent(eventnum)

沒做
if OEVENTLUA[eventnum]~=nil then
       OEVENTLUA[eventnum]()
  else   
       oldCallEvent(eventnum);
這判斷

故怎改OEVENTLUA都无用

点评

這俢改還是把3997對話中的"李"字去掉就算  发表于 2011-9-14 01:20
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-9-14 04:16 | 显示全部楼层
剛才趁空想了一下, 又在 jymain.lua 中找到了
function Menu_PersonExit()        

試了一下, 少朋坛友的代码是正確的

全部代码如下

OEVENTLUA[198]=function()
    CC.EVB206=JY.Person[92]["姓名"] .. "你先回小村,有需*要时,我再去找你帮忙。"
    say(CC.EVB206,JY.Person[0]["头像代号"],0,JY.Person[0]["姓名"])
    instruct_0(); -- 0(0)::空语句(清屏)
    instruct_21(92);   --  21(15):[女主角]离队
    instruct_3(70,1,1,0,199,0,0,7266,7266,7266,-2,-2,-2);   --  3(3):修改事件定义:场景[小村]:场景事件编号 [1]
end


function Menu_PersonExit()        --离队Exit
    DrawStrBox(CC.MainSubMenuX,CC.MainSubMenuY,"要求谁离队",C_WHITE,CC.DefaultFont);
        local nexty=CC.MainSubMenuY+CC.SingleLineHeight;

        local r=SelectTeamMenu(CC.MainSubMenuX,nexty);
    if r==1 then
        DrawStrBoxWaitKey("抱歉!没有你游戏进行不下去",C_WHITE,CC.DefaultFont,1);
    elseif r>1 then
        local personid=JY.Base["队伍" .. r];
        for i,v in ipairs(CC.PersonExit) do         --在离队列表中调用离队函数
             if personid==v[1] then

             -- here use OEVENTLUA again
             if OEVENTLUA[v[2]]~=nil then
               OEVENTLUA[v[2]]()
             else   
               oldCallEvent(v[2]);
             end



             end
        end
    end
    Cls();
    return 0;
end

点评

謝過 xzqcm111 大大  发表于 2011-9-14 11:12
啊,對不起,版主, 二連了  发表于 2011-9-14 04:23

评分

参与人数 1声望 +3 收起 理由
xzqcm111 + 3 欢迎讨论

查看全部评分

【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-9-14 08:59 | 显示全部楼层
喔喔= = 原來那段沒加把原事件 更新的代碼
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-9-14 10:07 | 显示全部楼层
本帖最后由 StarShine 于 2011-9-14 10:18 编辑


问题的原因我已经找到了,还在进行最后的调试。因为打算尽量做成可以进入实用的bug补丁,所以必须保证逻辑的严密。

PS:看了一下,上面也有人找到了原因,但这段代码是有漏洞的,一会儿我会把代码发上来

点评

正好你发上来我直接用就好了 哈哈 不用我自己费力写了。。。。  发表于 2011-9-14 10:28
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-9-14 10:51 | 显示全部楼层
本帖最后由 StarShine 于 2011-9-14 12:10 编辑

搞定了。对话方式特别沿用了原版,保持一致的入队离队风格。

源码已更新
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-9-14 12:17 | 显示全部楼层
OK,离队事件和离队函数的问题大家也解决了
这种钻研精神很好!


【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-9-14 17:22 | 显示全部楼层
弱弱的问一句:这个代码也需要每次开启游戏都执行一次么
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-9-14 17:34 | 显示全部楼层
回复 呼延婷 的帖子


涉及到事件层的修改,一般都是需要的。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-9-14 17:47 | 显示全部楼层
回复 StarShine 的帖子

呵呵, 原來令狐2號的bug是在此改正的, 受教了

有以下疑問
1. 為何在SubScene 82 (梅庄地牢?), 所有人都不准离队? 那明教地道等 SubScene 是否也應不准离队?
2. 第50句, 會使令狐冲只要在梅庄便不能离队 (不論會見黑白子與否), 能否改良至只有見過黑白子後才不准离队?


【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-9-14 18:15 | 显示全部楼层
那啥头像下面没显示名字。。其他人都有
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-9-14 19:27 | 显示全部楼层
本帖最后由 StarShine 于 2011-9-14 19:32 编辑
wklee3 发表于 2011-9-14 17:47
回复 StarShine 的帖子

呵呵, 原來令狐2號的bug是在此改正的, 受教了

1.明教地道,有不准离队的必要吗?你可以离队阿 ,但没有人会这么做吧,嫌人少还来不及呢

2.可以是可以,但这类小事情玩家并无法从中投机取巧,只是玩家自己折腾而已,对游戏的平衡也没有任何影响。
所以我觉得没有再加判断条件的必要。

3.令狐冲的bug是属于破坏平衡的恶性bug,和上面两点有本质不同。




点评

头像下面的名字 能搞上去么?  发表于 2011-9-15 19:00
谢谢  发表于 2011-9-15 02:50
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-9-23 12:11 | 显示全部楼层
本帖最后由 StarShine 于 2011-9-23 12:20 编辑
小滚滚 发表于 2011-9-14 18:15
那啥头像下面没显示名字。。其他人都有



采用新对话风格(例如胡斐洗刀剑)是可以的,但这里打算采用原版的方式,

因为其他队友入队离队都是原版这种风格

92号人物确实比较特殊。但大头像都有了,下标小名字显示没那么重要了吧



另回复17# 呼延婷

其实这段代码也不算很长,你可以把它复制到常用DIY文件的末尾,这样每次就都可以自动调用了。
或者复制下来单独命名一个文件,在DIY文件的末尾加入调用此文件的一句话,更方便~





【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2024-12-22 20:44

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表