CheatMaker 论坛

首页 » 修改器版块 » CheatMaker综合讨论 » 有关在一个ListBox中设置不同步长的问题
lazycai - 2016/7/5 9:49:10
在圣战系谱中,武器和杖的步长为13,道具的步长为0A,整个武器道具的数据格式如下:00-69 是武器
6A-79 是道具
7A-88 是武器
89 是道具

要在同一个ListBox(比如ListBox1)下设置对应的步长,是如何做到的?

我目前有两个想法:
1. 在ListBox1里定义00-69用13的步长,6A-79用0A的步长,7A-88用13的步长
2. 武器道具的数据格式里有一项是标识该物品为武器、杖还是道具的flag,0是武器,1是杖,2是道具。用这个flag做if判断,从而调整ListBox1的步长

不过两种想法都不知道该如何实现。
方案1我想可能需要某种特别的步长写法?
方案2我想可能可以用脚本实现?目前写了这样一个脚本:

ListBox1.Bound = GroupBox1;
ListBox1.ListStep = 13;
Call.CtrlData(ListBox1);
if (ComboBox1.Value=2)
ListBox1.Bound = GroupBox1;
ListBox1.ListStep = 0A;
Call.CtrlData(ListBox1);
endif;


但是没用。

这个功能在Edison和银河大大的修改器中是有的,所以肯定是有实现的办法,只是我现在还是CM初学,脚本也不熟,摸不到门路。还请各位大大指点!谢谢!

Update:

发现只要不在ListBox1的属性中指定步长,同时在ListBox1的数值列表中把每个物品的第一个地址填写进去,如:
3ECE4-鉄の剣
3ECF7-鋼の剣
3ED0A-銀の剣
3ED1D-鉄の大剣
3ED30-鋼の大剣
3ED43-銀の大剣


然后把ListBox1控制下的所有其他控件的地址设为0就好了。大概没有步长这个选项之前的修改器都是这样做的?
lazycai - 2016/7/5 19:38:43
Update 2:

看之前的帖子,找到了新版里正确的If语句写法。其实后来才发现原来在PC目录下有Demo,里面有一些示范写法的。

之前的步长问题已经通过在ListBox中输入物品绝对地址解决,后来还需要解决的是如何在显示物品时不显示武器参数。ComboBox.Value实际上是不对的用法,实际上搞一个隐藏的TextBox,然后引用它的Text属性就可以完成本设定了。

当前成功运行的脚本:

'选择条目后
SelChanged
{

}

'选择条目后且执行完控制数据功能后
SelChangedEx
{
If TextBox5.Text == 2
Call.Func(Frame4_items,ListBox1,HideWeaponStats);
Else
Call.Func(Frame4_items,ListBox1,ShowWeaponStats);
EndIf
}

HideWeaponStats
{
GroupBox3.Visible = False;
CheckListBox3.Visible = False;
GroupBox4.Visible = False;
Label8.Visible = False;
ComboBox3.Visible = False;
Label9.Visible = False;
ComboBox2.Visible = False;
Label1.Visible = False;
GridList2.Visible = False;
Label10.Visible = False;
ComboBox5.Visible = False;
ComboBox6.Visible = False;
}

ShowWeaponStats
{
GroupBox3.Visible = True;
CheckListBox3.Visible = True;
GroupBox4.Visible = True;
Label8.Visible = True;
ComboBox3.Visible = True;
Label9.Visible = True;
ComboBox2.Visible = True;
Label1.Visible = True;
GridList2.Visible = True;
Label10.Visible = True;
ComboBox5.Visible = True;
ComboBox6.Visible = True;
}
银河漫步 - 2016/7/6 12:09:21
为什么要把武器和道具整合在一起?
本来就不是一样的内存结构
lazycai - 2016/7/6 19:36:48
回复 3楼银河漫步的帖子

前面部分的数据结构大部分还是一样的,复用起来也不麻烦,还可以节省一个tag。分开也有分开的好处,就是得做两个界面,嫌麻烦……
yylinch - 2017/9/13 18:42:07
继续观摩
1
查看完整版本: 有关在一个ListBox中设置不同步长的问题