1321321  2022-10-11 17:58:21 |
5 334

36

回帖

885

金币

508

积分

积分
508
发表于 2022-10-11 17:58:21 | 显示全部楼层 |阅读模式

马上注册,下载996引擎,与更多游戏开发者交流。

您需要 登录 才可以下载或查看,没有账号?注册

×
goto调用次数是否有上限?
新手学习goto 写一个循环调用

[@调用]
#act
mov n$i 1
mov n$result 0
goto @计算
sendmsg 0 <$str(n$i)>,<$str(n$result)>,

[@计算]
#if
small n$i 2000
#act
    inc n$result n$i
    inc n$i 1
    goto @计算



当调用执行时  我想让 n$i 从1-1999   并每次都把他累加到 n$result中
可是结果却是  n$i为 1500   n$result 为1125750

并不是我想要的结果. 理论上 n$i应该为2000才对..因为到2000才停止

请问一下是goto次数有上限吗?

回复

使用道具 举报

442

回帖

1万

金币

8592

积分

积分
8592
发表于 2022-10-12 00:37:36 | 显示全部楼层
选项-参数-游戏选张1-脚本死循环数
哥们儿你连这个都不知道,你脚本能写的下去嘛?
回复

使用道具 举报

9419

回帖

1万

金币

1万

积分

积分
14743
发表于 2022-10-12 09:15:18 | 显示全部楼层
M2Server.exe程序-参数设置-游戏选项(1)-脚本死循环数 默认是1500. 你可以调到2000测试用

一般不建议用GOTO做累加循环  递归调用容易产生栈溢出

建议先搜 996说明书 循环
脚本循环

While 操作符说明: >大于 <小于 =等于 !不等于

[@222]
#IF
#ACT
;为方便测试每次执行脚本前将变量设置为1,本示例脚本可无视MOV
;MOV N1 1
;循环开始,While 变量/值 比较符号(> < =) 变量/值;循环写在 #ACT中
While N1 < 1000
SendMsg 6 <$STR(N1)>
Inc N1 1
EndWhile
;循环结束 EndWhile
SendMsg 6 aaaaaa


回复

使用道具 举报

36

回帖

885

金币

508

积分

积分
508
 楼主| 发表于 2022-10-12 11:09:53 | 显示全部楼层
996技术-wang 发表于 2022-10-12 09:15
M2Server.exe程序-参数设置-游戏选项(1)-脚本死循环数 默认是1500. 你可以调到2000测试用

一般不建议用GOT ...

感谢解答,昨天我在说明书中也看到了.
不过我也尝试过while
貌似while执行机制搞不清楚.
数值大了也会有限制.
就是不知道如何限制的.
回复

使用道具 举报

9419

回帖

1万

金币

1万

积分

积分
14743
发表于 2022-10-14 09:31:39 | 显示全部楼层
多大数值被限制了
超过21亿了么?
回复

使用道具 举报

36

回帖

885

金币

508

积分

积分
508
 楼主| 发表于 2022-10-14 17:28:37 | 显示全部楼层
mrkingli 发表于 2022-10-12 00:37
选项-参数-游戏选张1-脚本死循环数
哥们儿你连这个都不知道,你脚本能写的下去嘛? ...

老哥 我是新手来着 自己学习摸索啊。
回复

使用道具 举报