游戏脚本开发:如何在无限循环中仅执行一次条件代码?
解决方法
你需要添加一个状态标记变量来记录目标代码是否已经执行过,以此避免重复触发。具体修改如下:
// 初始化标记,默认未执行过目标代码 bool hasTriggered = false; while (true) { var value = swed.ReadInt(localplayer, offsets.health); // 只有当数值为70且从未触发过时,才执行代码 if (value == 70 && !hasTriggered) { Console.WriteLine("hello"); // 标记为已触发,防止后续重复执行 hasTriggered = true; } // 如果你需要:数值离开70后,再次回到70时能重新触发,就取消下面这段注释 // else if (value != 70 && hasTriggered) // { // hasTriggered = false; // } }
逻辑说明
hasTriggered相当于一个开关,初始值为false,代表还没执行过你要的那段代码。- 当读取到的数值等于70,且开关处于未触发状态时,才会执行输出操作,同时把开关拨到已触发状态。
- 之后哪怕数值一直停留在70,因为开关已经是
true,触发条件不再满足,就不会重复输出"hello"。
内容的提问来源于stack exchange,提问作者Finn
相关产品推荐
相关产品推荐

