| 赞 | 3 |
| VIP | 333 |
| 好人卡 | 2 |
| 积分 | 1 |
| 经验 | 1450446 |
| 最后登录 | 2019-5-29 |
| 在线时间 | 615 小时 |
Lv1.梦旅人 66RPG站长
- 梦石
- 0
- 星屑
- 54
- 在线时间
- 615 小时
- 注册时间
- 2005-10-10
- 帖子
- 5734
  
|
以下引用近猪者胖于2007-7-27 10:59:47的发言:
本贴悬赏额度如下:VIP:0 积分:100 好人卡:1
rmxp中设置了一个地图事件
我通过那个事件页面,调用外部dll的函数,并加入循环以及条件分歧,但是执行几次之后总是崩。。。。
不过我通过脚本写出来,直接在脚本的最前面加入,执行n次也没有问题。(可以确定的是dll肯定没有问题)
忘记说了,在事件编辑器中,我调用dll的脚本语言分成了四段,因为脚本不能超过12行。。。
大致流程是这样的:
loop do
调用dll的一系列函数,由于长度受限,分成了4段脚本。
得到一个参数
if 参数满足一个条件
break
elseif 参数满足另一个条件
输出一句话
else
输出另一句话
end
我把这段程序放到脚本编辑器的最前面,这样的时候是没有问题的,可以一直执行不崩溃。
但是同样的流程在事件编辑页中,通过加入条件分歧以及循环,中断来执行,则总是崩溃。
怎么回事呢?如何解决?
希望高手们不吝赐教。
彩色字很可能就是关键。因为他是分段执行的,也就是当执行第一段的时候,脚本并不会知道你还打算给他第二段,所以在第一段如果不够完整缺少end什么的,直接就出错了。
解决方法有几种简单的:
1、标准方法:把这个过程写成一个函数,在F11那个脚本里面装载这个函数,然后事件中的脚本仅仅调用这个函数就行了。
2、换个修改过的RMXP,能够多输入几行脚本。我自己用的:http://rpg.blue/upload_program/files/RMXP_Hacked EXE.rar
这个能在事件输入40行脚本,不过你得先在脚本编辑器输入好然后粘贴过来。如果框还不够大可以自己用任何一款汉化破解工具继续增大这个框(自己找一下,我忘了以前用的什么软件了)。
3、修改事件,不要每行执行,而是当下一个事件不是“脚本”的时候才执行,如果下一个事件是“脚本”则把下一个事件的语句加到当前脚本。这个可以修改Interpreter 7的def command_355,也可以直接参考http://rpg.blue/web/htm/news213.htm
这一种解决方法可以和第2种结合使用。
如果你在F11那里能执行通过,那么现在这里应该问题不大了。如果还没解决,欢迎上传工程,解决了请自己认可答案,呵呵~{/cy} |
|