帐号
注册
密码
登录
关闭
安全选项
找回密码
记住我
我的中心
登录或注册新用户,开通自己的个人中心
切换到窄版
论坛
标签
帮助
登录
CheatMaker 论坛
»
修改器版块
»
修改技术讨论
»
PC_AA 63的[BEFORE WRITE]相当于自带锁定数据?
修改器版块
CheatMaker综合讨论
修改技术讨论
修改器发布
游戏相关版块
游戏综合讨论
游戏工具及相关
游戏资源发布
其它版块
五颜六色
资源分享
站务管理
返回列表
查看:
9569
|
回复:
5
PC_AA 63的[BEFORE WRITE]相当于自带锁定数据?
[复制链接]
发送短消息
UID
9361
积分
27
查看公共资料
搜索主题
搜索帖子
Rozen
组别
注册会员
帖子
24
精华
0
积分
27
威望
0
金币
147 元
来自
注册时间
2016-01-20
1
#
字体大小:
t
T
发表于
2016-02-26 16:13
|
只看楼主
内存中物品代码为4xx至7xx,游戏通过对高位也就是4、5、6、7进行加4操作来表示数量,即4AA表示1个,8AA表示2个,5AA表示1个,9AA表示2个,所以我用ComboBox
63(
[AFTER READ]
value = (value-6)/4
[BEFORE WRITE]
value = value*4+6
)
数值0表示1个(以此类推),暂时对6XX系列物品进行数量操作……
然后问题来了,这个高位的数值被锁定了,永远都是我所选择的数量06、0A一类的,导致我还是AA显示还是6AA。分析了下应该是这个ComboBox只要被调用过一次后,任何写入操作前都触发了[BEFORE WRITE]导致无论输入什么数字都强制变成63运算后的数值列表里的数值。求帮助,有更好的实现方法最好,我只能想出IF,但是失败了……
分享
转发
TOP
发送短消息
UID
2
积分
3052
查看公共资料
搜索主题
搜索帖子
天枫十一郎
天枫十一郎
组别
超级版主
帖子
557
精华
1
积分
3052
威望
120
金币
4248 元
来自
幻想的世界
注册时间
2012-09-05
2
#
字体大小:
t
T
发表于
2016-02-26 20:50
|
只看该用户
然后问题来了,这个高位的数值被锁定了,永远都是我所选择的数量06、0A一类的,导致我还是AA显示还是6AA。
这句没听懂. 但好像使用If是能解决.但为什么失败?是If不起效果?看起来你还在用老的IF大写语法.
不知道使用附加值20,21,22等是否也能解决你的问题.
希望CheatMaker帶給你樂趣
TOP
发送短消息
UID
9361
积分
27
查看公共资料
搜索主题
搜索帖子
Rozen
组别
注册会员
帖子
24
精华
0
积分
27
威望
0
金币
147 元
来自
注册时间
2016-01-20
3
#
字体大小:
t
T
发表于
2016-02-26 21:25
|
只看楼主
就是我用ComboBox1写入6AA的物品,然后用那个63附加的ComboBox2选择数量为2,触发[BEFORE WRITE]经过计算6AA的6变成了1*4+6=A,最终数值AAA;然后我用ComboBox1写入7AA的物品,在点下并保存时,又触发了ComboBox2的[BEFORE WRITE],本来是7的那个数值还是采用的1*4+6=A。
我想用if来判断我ComboBox1写入的是4xx还是5xx、6xx,大概是
63(if(高位地址的值=4)
[AFTER READ]
value = (value-4)/4
[BEFORE WRITE]
value = value*4+4
endif;
if (高位地址的值=5)
[AFTER READ]
value = (value-5)/4
[BEFORE WRITE]
value = value*4+5
……endif;)
那个高位地址的值怎么表达我不知道,这语法对不对我也拿不准。
Rozen 最后编辑于 2016-02-26 21:36:19
TOP
发送短消息
UID
9361
积分
27
查看公共资料
搜索主题
搜索帖子
Rozen
组别
注册会员
帖子
24
精华
0
积分
27
威望
0
金币
147 元
来自
注册时间
2016-01-20
4
#
字体大小:
t
T
发表于
2016-02-26 21:34
|
只看楼主
哦,我想通了,我的CB1call了savedata,但是没加范围……然后问题就剩1个了
TOP
发送短消息
UID
9361
积分
27
查看公共资料
搜索主题
搜索帖子
Rozen
组别
注册会员
帖子
24
精华
0
积分
27
威望
0
金币
147 元
来自
注册时间
2016-01-20
5
#
字体大小:
t
T
发表于
2016-02-26 22:30
|
只看楼主
我现在换了个思路,将高位地址的值赋予TextBox1.Text,然后
63(if(TextBox1.Text=6)
[AFTER READ]
value = (value-6)/4
[BEFORE WRITE]
value = value*4+6;
else
[AFTER READ]
value = (value-7)/4
[BEFORE WRITE]
value = value*4+7
endif;)
现在问题是一切入这个Frame就提示Error2:if(textbox1.text=6),目测后续脚本就中断了,值写入没经过运算的0(表示1个)或1(表示2个)
TOP
发送短消息
UID
9361
积分
27
查看公共资料
搜索主题
搜索帖子
Rozen
组别
注册会员
帖子
24
精华
0
积分
27
威望
0
金币
147 元
来自
注册时间
2016-01-20
6
#
字体大小:
t
T
发表于
2016-02-27 10:32
|
只看楼主
早上起来想了下,既然高位地址的值赋予TextBox1.Text了,那怎样才能实现
63(
[AFTER READ]
value = (value-TextBox1.Text)/4
[BEFORE WRITE]
value = value*4+TextBox1.Text
)
TOP
上一主题
|
下一主题
返回列表
高级编辑器
B
Color
Image
Link
Quote
Code
Smilies
默认表情
你需要登录后才可以发帖
登录
|
注册
发表回复
查看背景广告
隐藏
发新主题
修改器版块
CheatMaker综合讨论
修改技术讨论
修改器发布
游戏相关版块
游戏综合讨论
游戏工具及相关
游戏资源发布
其它版块
五颜六色
资源分享
站务管理
TOP
设置头像
个人资料
更改密码
用户组
收藏夹
积分
Default