请教贤知大人,为什么初始化和休息时运行速度很慢
请教贤知大人下面是我编的脚本,为什么开始初始化和当天结束时运行速度很慢,我改了时间触发器也是这样,请问如何修改才能提高运行速度?ZVSE
!#TM77:S1/999/1/255;
!?TM77&1000;
!!OW:C?i Ii/?j;
!!FU&j<>0:E;[非人类玩家]
!!DO9999994/0/155/1:Pj; 检查每个英雄
!?FU9999994;
!!FU&x1<>0:E;[非人类玩家]
!!HEx16:Ed/?k/1 W?y1;取得英雄移动力
!!VRy2:S1;
!!VRy81:Sy1 *k :25;移动力随等级计算
!!VRy6:Sy2 *k *100;经验随等级计算
!!VRy7:Sy2 *k :2;
!!VRy3:Sy1+y81;
!!HEx16:Gy3 Wy3 Y9/y6/1/1 Y64/2/1/1 Y21/500/1/1;;
用HE:O检测英雄是否属于当前回合的颜色,否则忽略。应该会快一点点。 贤知有您 发表于 2015-11-8 08:57
用HE:O检测英雄是否属于当前回合的颜色,否则忽略。应该会快一点点。
这样修改后仍然无效果,还是很慢!是不是与循环检测所有英雄有关?
ZVSE
!#TM77:S1/999/1/255;
!?TM77&1000;
!!DO9999994/0/155/1:Pj; 检查每个英雄
!?FU9999994;
!!HEx16:O?y12;获取玩家颜色
!!OW&y12>-1:Iy12/?y14;玩家类别
!!FU&y14<>0:E;非人类玩家
!!HEx16:Ed/?k/1 W?y1;取得英雄移动力
!!VRy2:S1;
!!VRy81:Sy1 *k :25;移动力随等级计算
!!VRy6:Sy2 *k *100;经验随等级计算
!!VRy3:Sy1+y81;
!!HEx16:Gy3 Wy3 Y9/y6/1/1 Y64/2/1/1 Y21/500/1/1;; 你没弄懂贤知的意思,他说的是让你检查英雄的颜色和当前回合玩家颜色是否一样,一样才执行你后面的功能。
TM触发器会在每个玩家的回合都触发一次的。 你的脚本的功能是希望循环遍历到每个英雄,但是实际上,最开始的脚本,你都已经进行了155*7次循环了,那些不出现在地图在的英雄都被遍历了。后来你改成的脚本循环执行了当前英雄总数*7次,还是很慢。 不过按道理来说,你这个脚本这么短,应该也不会拖慢才对啊,你要试试去掉脚本还会不会慢,有时间慢是因为AI的兵力太多了。 楼主可以在这个代码中加入IF:M看看运行情况.但要加到最后面.看是不是中途运行得很慢.
克招 发表于 2015-11-8 10:38
不过按道理来说,你这个脚本这么短,应该也不会拖慢才对啊,你要试试去掉脚本还会不会慢,有时间慢是因为AI ...
新开游戏,地图是分裂,才第一天WOG化有5分钟,第一天结束其它玩家很快就运行完了,但是到了人类玩家又要5分钟左右。我已经试了,去掉了就很快。 确实没看出代码有啥慢的可能。还有就是,你得去掉&1000,这个不适用的 贤知有您 发表于 2015-11-8 12:17
确实没看出代码有啥慢的可能。还有就是,你得去掉&1000,这个不适用的
好的,谢谢!。真是痛苦呀!怎么改都不行! 贤知有您 发表于 2015-11-8 08:57
用HE:O检测英雄是否属于当前回合的颜色,否则忽略。应该会快一点点。
多谢贤知大人及克招,未激活的英雄逐个历一遍运行速度太慢,想办法只对人类玩家已激活的英雄检测。借用贤知大人前面指导的脚本通过调整,经测试运行速度基本正常,遗憾的是只能对活动的英雄进行检测,如果该英雄驻守在城堡里就无效。不过不影响主要功能,我的重点是让人类玩家的英雄随着等级提升每级在后勤术上增加1/25,再次谢谢各位!
ZVSE
!#TM2:S1/999/1/255;[直接使用官方的TM2通用触发器]
!?TM2;
!!OW:C?i Ii/?j;
!!FU&j<>0:E;[非人类玩家]
!!FU10000007:Pi;
!?FU10000007;
*x1=玩家颜色
!!OW:Ox1/?y1/?v101/?v102/?v103/?v104/?v105/?v106/?v107/?v108;[只考虑驻外部队]
!!FU&y1<1:E;
!!DO10000008/101/108/1:P;
!?FU10000008;
!!FU&vx16<0:E;[无英雄]
!!VRy10:Svx16;[英雄编号]
!!HEy10:E?j/?k W?y1;取得英雄移动力
!!VRy3:Sy1*k :25 +y1;移动力随等级计算
!!VRy6:Sk *100;经验随等级计算
!!VRy7:S500 *k :10;
!!HEy10:Gy3 Wy3 Y9/y6/1/1 Y64/2/1/1 Y21/y7/1/1;
!!HEy10:S17/?y35;
!!HEy10&y35<1:S17/1; 本帖最后由 xuzhouhudajz 于 2015-11-9 18:32 编辑
贤知有您 发表于 2015-11-8 12:17
确实没看出代码有啥慢的可能。还有就是,你得去掉&1000,这个不适用的
请教一下贤知大人另外一个问题,下面运行时出错!错误见图片,修改增加部分见红色,这个错误我没理解,如何超出范围的?我这样改的目的就是人类玩家所有英雄都能获得以下功能,功能部分单独测试了是没有问题的!问题就出在红色增加部分
!?BA52&1000;
!!VRy8:S1;
!!VRy9:Sy8*-1 +1;
!!BA:Hy9/?v9555; 保存进攻方英雄到v9555
!!BA:Hy8/?v9560; 防守方hero到v9560
!!if&y9=0:;
!!HEv9555:O?y2;
!!OW&y2>-1:Iy2/?y4;
!!HEv9555&y4=0:N?v85;
!!en:;
!!if&y8=1:;
!!HEv9560:O?y5;
!!OW&y5>0:Iy5/?y7;
!!HEv9560&y7=0:N?v85;
!!en:;
!?BF&1000; 战场生成后
!!DO9999996/0/20/1&v9555=v85:P;
!!DO9999996/21/41/1&v9560=v85:P;
!!DO9999997/0/20/1&v9555=v85:P;
!!DO9999997/21/41/1&v9560=v85:P;
!!DO9999998/0/20/1&v9555=v85:P;
!!DO9999998/21/41/1&v9560=v85:P;
!?BR&1000&v997>-1;
!!DO9999999/0/20/1&v9555=v85:P;
!!DO9999999/21/41/1&v9560=v85:P; 谢谢!已解决,修改如下,请指点!
!?BA52&1000;
!!VRy8:S1;
!!VRy9:Sy8*-1 +1;
!!BA:Hy9/?v9555 O?y10/?y11; 保存进攻方英雄到v9555
!!BA:Hy8/?v9560 O?y20/?y21; 防守方hero到v9560
!!OW:C?i Ii/?j;
!!if&y9=0/y10=i/j=0:;
!!HEv9555:O?y2;
!!FU&y2<0:E;
!!OW:Iy2/?y4;
!!HEv9555&y4=0:N?v85;
!!en:;
!!if&y8=1/y21=i/j=0:;
!!HEv9560:O?y5;
!!FU&y5<0:E;
!!OW:Iy5/?y7;
!!HEv9560&y7=0:N?v85;
!!en:;
!?BF&1000; 战场生成后
!!DO9999996/0/20/1&v9555=v85:P;
!!DO9999996/21/41/1&v9560=v85:P;
!!DO9999997/0/20/1&v9555=v85:P;
!!DO9999997/21/41/1&v9560=v85:P;
!!DO9999998/0/20/1&v9555=v85:P;
!!DO9999998/21/41/1&v9560=v85:P;
!?BR&1000&v997>-1;
!!DO9999999/0/20/1&v9555=v85:P;
!!DO9999999/21/41/1&v9560=v85:P;
页:
[1]