铁血丹心

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

[lua复刻] LUA版增加队友成员数

[复制链接]
发表于 2010-8-6 08:52 | 显示全部楼层 |阅读模式

马上注册,结交更多侠友!

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

x
我在鱼版想增加队友成员数,直接修改JYCONST.LUA中的CC.TeamNum,但是我用之前=6时的存档继续游戏,一战斗就退出。
一,增加队友数是否只改此处就可以?
二,是否要重新开始,另存档?
三,如果想玩旧存档,又想增加队友人数,还需改哪里?

[发帖际遇]: ibicfibictts做得名菜“茯苓花雕猪”,卖出获得银两20两。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-8-6 10:47 | 显示全部楼层
回复 29# ibicfibictts


    改了你说的那个地方后
还需要修改r?.grp,r?.idx
所有涉及到r数据结构扩充的修改,都必须在const.lua和R?.grp,R?.idx两个地方同时修改。
修改r?.grp,r?.idx可以使用WinHex,或者UE等十六进制编辑工具。
不复杂,但是需要你先了解一下R的数据结构。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2010-8-7 17:36 | 显示全部楼层
花了点时间了解了一下r*.grp,r*.idx文件数据结构,不过对于r*.grp的最后24字节(也就是从0001be42h-0001be59h)的含义没有弄清楚是干什么的。
我现在觉得如果要实现我的想法,可能还需要修改jymain.lua的LoadRecord()和SaveRecord()两个function.有点复杂。

[发帖际遇]: ibicfibictts当选为年度“赏善罚恶”大使,路过襄阳城,赏给郭靖银两17。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-8-7 17:44 | 显示全部楼层
回复 31# ibicfibictts


    r?.grp的最后一部分,应该是小宝商店,但是小宝商店的话,应该不止24字节啊
但是无论如何,如果你只是想增加队伍人数,那么就只需要修改CC.TeamNum,然后在R?.grp的第一部分队伍成员那里插入若干字节,然后再把r?.idx里的索引全部修改一下
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2010-8-9 12:27 | 显示全部楼层
小宝商店是在那之前。
如果是插入的话,还要改jyconst.lua的CC.Base_S["物品" .. i]={36+4*(i-1),0,2};CC.Base_S["物品数量" .. i]={36+4*(i-1)+2,0,2};这2句。
前面是哪位大虾说过加在后面,那样我想就要改LoadRecord和SaveRecord。

[发帖际遇]: ibicfibictts做得名菜“茯苓花雕猪”,卖出获得银两13两。

评分

参与人数 1声望 +5 收起 理由
jy02785317 + 5 jyconst里那两句确实需要修改下

查看全部评分

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


    建议你不要加在后面
加在后面的话,就不仅仅是读挡存档函数需要修改了。基本上和队伍有关的函数都需要修改了。

  1.    for i=1,CC.MyThingNum do
  2.         CC.Base_S["物品" .. i]={36+4*(i-1),0,2};
  3.         CC.Base_S["物品数量" .. i]={36+4*(i-1)+2,0,2};
  4.    end
复制代码
也需要修改,你说的没错,我之前这里疏忽了。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2010-8-9 12:58 | 显示全部楼层
本帖最后由 ibicfibictts 于 2010-8-9 13:06 编辑

我这样插入了,是可以多加人了,刚才我就加到8个,但是一查看物品(刚才写的状态,查状态没问题),就直接程序退出了。
看debug:
12:50:42 .\script\jymain.lua:2079: attempt to index field '?' (a nil value)
12:50:42 stack traceback:
        .\script\jymain.lua:101: in function <.\script\jymain.lua:99>
        .\script\jymain.lua:2079: in function 'ShowMenu'
        .\script\jymain.lua:1105: in function '?'
        .\script\jymain.lua:2173: in function 'ShowMenu'
        .\script\jymain.lua:601: in function 'MMenu'
        .\script\jymain.lua:344: in function 'Game_MMap'
        .\script\jymain.lua:302: in function 'Game_Cycle'
        .\script\jymain.lua:192: in function <.\script\jymain.lua:104>
        [C]: in function 'xpcall'
        .\script\jymain.lua:96: in function <.\script\jymain.lua:94>

看来还有其他涉及的地方。

[发帖际遇]: ibicfibictts跟踪成昆进入明教密道,结果:被秃驴发现打伤,损失医药费银两19。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-8-9 13:09 | 显示全部楼层
从debug来看,你是访问物品菜单时跳出的。
而且此时仅仅是物品的分类菜单,还没有实际访问物品。

不应该出问题啊!


不知道你的jymain有过修改没有?或许和我手头的jymain不一样

[发帖际遇]: jy02785317在六派围攻光明顶时施展“放下屠刀”,各派高手纷纷放下兵器,收集起来后当废铁卖得银两27。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-8-9 13:11 | 显示全部楼层
找到问题了
1105行

  1. local r=ShowMenu(menu,CC.TeamNum,0,CC.MainSubMenuX,CC.MainSubMenuY,0,0,1,1,CC.DefaultFont,C_ORANGE, C_WHITE);
复制代码
这里鱼写错了,你把CC.TeamNum改成6就行了
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2010-8-9 13:33 | 显示全部楼层
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2010-8-10 18:54 | 显示全部楼层
本帖最后由 jy02785317 于 2010-8-10 19:03 编辑

铁血今天中午不能上啊,今天又发现问题,当我战斗时选择菜单中第6人之后的战友,在战斗地图中无法正确显示他们,胜利后也不增加他们的经验,就如未带他们战斗一样。
分析后,发现是function WarSelectTeam()的原因。
后改了jymain.lua的4679,4683,4684行后可以了,当然我的修改还有缺陷。
代码如下:

  1. for i=1,CC.TeamNum do -- Fish's version: for i=1,6 do
  2.          if WAR.SelectPerson[i]>0 then
  3.         WAR.Person[WAR.PersonNum]["人物编号"]=JY.Base["队伍" ..i];
  4.         WAR.Person[WAR.PersonNum]["我方"]=true;                        WAR.Person[WAR.PersonNum]["坐标X"]=WAR.Data["我方X"  .. WAR.PersonNum+1];  --WAR.Person[WAR.PersonNum]["坐标X"]=WAR.Data["我方X"  .. i];
  5.         WAR.Person[WAR.PersonNum]["坐标Y"]=WAR.Data["我方Y"  .. WAR.PersonNum+1];  --WAR.Person[WAR.PersonNum]["坐标Y"]=WAR.Data["我方Y"  .. i];
  6.         WAR.Person[WAR.PersonNum]["死亡"]=false;
  7.         WAR.Person[WAR.PersonNum]["人方向"]=2;
  8.         WAR.PersonNum=WAR.PersonNum+1;
  9.      end
  10. end
复制代码
[发帖际遇]: ibicfibictts在绝情谷捡到杨过丢掉的绝情丹,卖出银两11两。

评分

参与人数 1声望 +5 收起 理由
jy02785317 + 5 管理需要

查看全部评分

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


    如此一来,war.sta也需要修改了。
毕竟war.sta里我方只有六个人的出场位置。

其实我觉得不如修改下队友出场选择菜单,修改成可以任意选,但是最多只能选六个。
不过如果你是全新制作,肯花功夫改war.sta那就不用改。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2010-8-11 08:45 | 显示全部楼层
是的,我目前也就是每场战斗最多只选6人参战,但可在我所有队友中选择。
对War.Sta还没研究。

[发帖际遇]: ibicfibictts偷得祖千秋八杯,被老头子祖千秋追杀打伤,医疗费银两15两。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

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

GMT+8, 2024-5-20 11:29

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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