铁血丹心

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

人物的姓名和称号属于什么类型的变量?

[复制链接]
发表于 2010-2-2 19:18 | 显示全部楼层 |阅读模式

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

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

x
为什么我读取一个人的姓名到一个变量,再把这个变量赋给另一个人,就什么也没有了?不管这个变量设置成普通变量还是字符串都没有用?

[发帖际遇]: 雨峰跟踪成昆进入明教密道,结果:修炼成功乾坤大挪移,增加声望3。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-2-2 19:34 | 显示全部楼层
以后有问题请开新帖,不要在无关的老贴里回帖发问。

为什么我读取一个人的姓名到一个变量,再把这个变量赋给另一个人,就什么也没有了?

——不知道你是怎么把这个变量赋给另一个人的?你贴出你的做法出来看看。事实上按普通变量和字符串变量读取角色名字都是没有问题的,关键看你怎么写入。

[发帖际遇]: 凶神恶煞挺身而出,阻止萧峰打“段正淳”,成功挽救阿朱,得到奖励银两25。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2010-2-2 21:31 | 显示全部楼层

我采用的是50指令

50(32)变量赋值 [XT]=21592                         50 0 1 21592 0 0 0 0
50(32)定义变量名 [X1] XT                             50 6 1 21592 0 0 0 0
50(32)读取属性 [XT]=人物属性偏移8          50 17 0 0 0 8 1 0   
50(32)保存属性 人物属性偏移8=[XT]          50 16 4 0 0 8 1 0
FISHEDIT运行结果,第三条指令执行失败,主角名字变成了英文"XT"+残缺的中文

第二次,我把"贾宝玉"三个字写入对话ID11115,然后
50(32)读对话到字符串 STR[X10]=TALK(11115)      50 8 0 11115 10 0 0 0
50(32)保存属性 人物属性偏移8=[X10]                        50 16 4 0 0 8 1 0
FISHEDIT运行结果,第二条指令运行失败, 变量[X10]认为非法而不予执行,自动变为数值0,导致主角名字什么也没有了……
是我没有用对,还是FUSHEDIT本身的问题?敬请楼上高手解答,谢谢!
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-2-2 22:07 | 显示全部楼层
你的写入方法明显是错误的……
每个数字变量为2字节,每个字符串变量对应(全角字数+1)*2个字节,在内存中存放的位置均为以变量所使用数字为起点的地址。
如果按数字变量方式操作应该是逐一读取人物属性偏移8、10、12、14、16,写入另一人物属性偏移8、10、12、14、16。
如果按字符串变量方式操作应该是取属性名或读对话至字符串变量如STR100,然后逐一读取变量X100、X101、X102、X103、X104(或数组X100(0)-X100(4))写入另一人物属性偏移8、10、12、14、16。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2010-2-2 22:36 | 显示全部楼层

原来如此

可以把字符串变量折开来?
这在汇编语言里是没问题的,但如今的50指令中如何知道STR100之中X100、X101、X102、X103的地址?
是否我设定一个字符串100,再设定一个变量100,这个变量的地址自然就覆盖在了STR100之上?
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-2-2 22:38 | 显示全部楼层
请看这一句:
每个数字变量为2字节,每个字符串变量对应(全角字数+1)*2个字节,在内存中存放的位置均为以变量所使用数字为起点的地址。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2010-2-2 22:44 | 显示全部楼层

是这样……

那设置变量还要小心了,如果设置了100的字符串,就必须考虑其长度,如其长度为8,则在100~107之间不能随意设置其它变量,以免互相覆盖?
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-2-2 22:47 | 显示全部楼层
是的,不过你说的长度是指所含的全角字数还是用取字符串长度得出的结果?
前者=后者*2。
而且每个字符串变量对应(全角字数+1)*2个字节,最后一个双字节的值为0。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2010-2-2 22:54 | 显示全部楼层

明白了,非常感谢!

还有一问:每一个变量两个字节,也就是说设定了变量0,就不能再设变量1,只能设变量2,也就是偶数值地址?
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-2-2 22:59 | 显示全部楼层
不影响,数字变量可以顺序使用,需要注意的只是数字变量、数组变量与字符串变量地址不要冲突。
以下是游泳的鱼在FISHEDIT0.72的AddKdefV1.2.doc中给出的说明:
内存变量区设置:
保留32768个字节的通用变量区,共16384个16位字作为通用变量。变量编号大于等于16384的变量为保留变量区,供新增指令内部使用。
同时也可以作为数组或字符串访问。
作为字符串时,指定一个变量,则该地址作为字符串起始地址,后面依次保存字符串的各个字节,字符串以0结尾。比如字符串200,即该字符串起始地址为变量200的地址。

[发帖际遇]: 凶神恶煞偷看武当弟子练功,习得梯云纵,增加声望2。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2010-2-2 23:40 | 显示全部楼层

可还有问题,不可运行

把"贾宝玉"三个字写入对话ID11115
50(32)读对话到字符串 STR[X10]=TALK(11115)      50 8 0 11115 10 0 0 0
50(32)定义变量名称 [X10] XT
50(32)保存属性 人物属性偏移8=[XT]                        50 16 4 0 0 8 10 0
FISHEDIT运行结果,第三条指令运行失败,整个游戏无法启动.提示"页面文件太小".

[发帖际遇]: 雨峰在独孤墓捡到大雕遗漏的怪蛇胆,卖出银两20两。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2010-2-3 02:22 | 显示全部楼层

不能运行的问题已解决

好像是我的电脑内存故障,重新启动计算机就好了.

[发帖际遇]: 雨峰遭遇四大恶人,奋力拼搏,得到银两12两银子。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-2-3 03:00 | 显示全部楼层
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-2-3 03:29 | 显示全部楼层
原帖由 黄顺坤 于 2010-2-3 03:00 发表
50指令变量类型说到底只有short吧……

[发帖际遇]: 黄顺坤不自量力,跑去参加华山论剑,结果被五绝打成重伤,花掉医药费银两41。

还有word

[发帖际遇]: weyl挑衅裘千丈,谁知到竟然是裘千仞,结果被裘千仞打了一掌,治伤花费银两4。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-2-3 13:40 | 显示全部楼层
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2010-2-4 11:39 | 显示全部楼层

我现在终于弄明白了50指令设置变量的秘诀

原来每个默认变量的长度不是2字节,而是1字节;正因为这样,所以变量才能1、2、3、4……依次设置互相不受影响;而所谓“字符串变量”其实是假的,字符串一旦读入了内存,立即变为一个个字节存在,无法再作为一个整体变量把它取出!
所以,50指令默认的基础变量就是字节!一切操作最终都是针对字节,而偏移和跳转,也完全是以字节为单位的。这基本上就是一个汇编语言的规律。
我建议把以上这些话写入《提高篇》之中,《提高篇》就不会像看天书一样令人费解了……

[发帖际遇]: 雨峰帮助胡桂南偷雪蛤蟆时中毒,解毒花费银两17。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-2-4 11:42 | 显示全部楼层
每个默认变量的长度是2字节……

[发帖际遇]: 凶神恶煞跟韦小宝赌钱,识破千术,韦小宝乖乖奉上银两25两。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2010-2-4 11:49 | 显示全部楼层

回复 17# 的帖子

不对,是1字节,这我验证过。否则,为什么所容纳的数值不能超过FFFFH,也就是65535?

[发帖际遇]: 雨峰于大胜关英雄大会战胜金轮法王,得郭靖称赞,增加声望4。


[ 本帖最后由 雨峰 于 2010-2-4 11:55 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-2-4 11:58 | 显示全部楼层
1字节=8BIT,只能是0-255……
而且游戏中的变量都是带符号数,达不到65535……
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2010-2-4 12:18 | 显示全部楼层

哦……

是我的概念有些混乱了,FFH为字节,FFFFH为字,玩单片机太久了,居然把最基础的东西记错了,不好意思……

[发帖际遇]: 雨峰在海边沙滩上捡到一支圣火令,当废铜卖了,获得银两3。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2010-2-4 12:28 | 显示全部楼层

修正一下

原来每个默认变量的长度是字;而一切跳转偏移都是以字为基础单位进行的;而所谓“字符串变量”其实只是虚似的存在,字符串一旦读入了内存,立即变为一个个字存在,通常无法再作为整体变量操作。
但那样又存在一个新的问题:如果50指令不引入“与”和“或”的功能,所谓“字节变量”就无法成立,也不能单独操作?

[发帖际遇]: 雨峰除去游坦之脸上铁面,但游坦之毁容后的容貌被阿紫憎恶,游坦之迁怒追杀雨峰,丢失银两14两。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

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

GMT+8, 2024-11-15 17:48

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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