elin吧 关注:15,172贴子:110,791
  • 1回复贴,共1

以太病的加湿器能叠加吗?

只看楼主收藏回复

如题,农业浇水太麻烦了,于是sl出个加湿器来增加降雨概率,那同伴以及居民的加湿器能否生效,如果可以,是否可以与pc的叠加?


IP属地:广东1楼2025-03-26 14:11回复
    好吧,我自己查到了。。。
    if (condition == Condition.Fine){foreach (Chara member in EClass.pc.party.members){if (member.HasElement(1558) && EClass.rnd(4) == 0){condition = Condition.Rain;Msg.Say("drawRain", member);break;}}}
    这段代码用于在特定条件下改变天气状态,其逻辑如下:
    触发条件
    当当前天气状态为 Condition.Fine(晴朗)时,执行后续检查。
    遍历队伍成员
    通过 foreach 循环遍历玩家队伍中的所有成员 (EClass.pc.party.members),每个成员均为 Chara 类实例。
    成员检查条件
    对每个成员进行两项检查:
    元素检查:member.HasElement(1558)
    验证成员是否拥有 ID 为 1558 的元素(可能是道具、技能或状态,如“呼雨符咒”)。
    概率判定:EClass.rnd(4) == 0
    调用随机数生成器,有 1/4 概率(25%)返回 true。
    触发天气变化
    若同时满足上述条件,执行以下操作:
    将天气状态改为 Condition.Rain(雨天)。
    通过 Msg.Say("drawRain", member) 发送消息(如播放动画或显示文本),提示由该成员触发的天气变化。
    使用 break 跳出循环,不再检查后续成员。
    设计意图
    此代码模拟队伍成员对天气的影响,例如携带特定道具的角色有一定概率召唤降雨。
    仅需一个成员触发即可改变天气,避免多次判定。
    潜在注意事项
    概率逻辑:EClass.rnd(4) 生成 0-3 的整数,==0 确保 25% 触发概率,符合常见设计。
    作用范围:condition 变量需在更外层作用域定义,以便其他系统读取天气状态。
    扩展性:若需允许多个成员尝试触发,可移除 break 并记录所有成功成员,但当前逻辑以首次触发为准。
    只要队伍里的同伴都可以触发。。。


    IP属地:广东2楼2025-03-26 16:33
    回复