设为首页收藏本站同能贴吧 切换语言 繁体中文
开启辅助访问 切换到窄版
返回列表
+ 发新帖
查看: 88|回复: 0

[转载发布] [脚本] 当一个状态结束后赋予另一个状态 New

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    7 天前
  • 签到天数: 226 天

    连续签到: 2 天

    [LV.7]常住居民III

    9106

    主题

    917

    回帖

    7万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    7
    卡币
    65150
    OK点
    16
    推广点
    0
    同能卷
    50
    积分
    75203

    灌水之王

    发表于 昨天 15:44 | 显示全部楼层 |阅读模式
    因为个人需求让AI写了一个这种脚本,考虑到可能会有其他需要的人遂发布
    使用方法见注释,可以判断因为什么条件结束而决定是否赋予下一个状态

    [code]# encoding: utf-8#==============================================================================# ■ 状态连锁(State Chain)#------------------------------------------------------------------------------#  让一个状态在解除时,自动为同一个角色/敌人附加另一个状态。##  ◆ 备注写法(写在备注栏里)##                  该状态解除后,附加 2 号状态#          只有满足 Type 指定的解除原因时才附加##    省略时等同于 。#    可以写多个 ID,用逗号隔开,例如 。##  ◆ Type调用:##   0 任何方式解除都连锁(默认)#   1 战斗结束解除 / 回合数到期解除 / 步数到期解除#   2 受到伤害解除 / 因行动限制解除#   3 使用物品或技能治愈(「状态解除」效果)##  ◆ 注意##   · ~ 只是「连锁的触发条件」,#    状态本身何时解除,仍由数据库里的勾选项决定。#    例如要触发「受到伤害解除」,需要勾选「受到伤害时解除」;#    要触发「因行动限制解除」,需要勾选「因行动限制而解除」。##   · 战斗不能、撤退、完全恢复会直接清空状态表,#    不经过逐个解除,因此不会触发连锁。##   · 目标状态能否附加成功,仍受「状态有效度」等抗性影响;#    角色处于战斗不能状态时也不会附加。##   · 连锁不会在同一个状态上无限循环(有次数上限保护)。##==============================================================================module StateChain  #--------------------------------------------------------------------------  # ● 备注标签  #--------------------------------------------------------------------------  NEXT_PATTERN = //i  TYPE_PATTERN = //i  #--------------------------------------------------------------------------  # ● 解除原因的名称(仅用于调试输出)  #--------------------------------------------------------------------------  REASON_NAMES = {    :battle_end => "战斗结束",    :turn       => "回合到期",    :step       => "步数到期",    :damage     => "受到伤害",    :restrict   => "行动限制",    :cure       => "物品/技能治愈",    :other      => "其他方式",  }  #--------------------------------------------------------------------------  # ● 每种 Type 允许的解除原因(nil 表示不限制)  #--------------------------------------------------------------------------  TRIGGERS = {    0 => nil,    1 => [:battle_end, :turn, :step],    2 => [:damage, :restrict],    3 => [:cure],  }  #--------------------------------------------------------------------------  # ● 设定  #--------------------------------------------------------------------------  # 目标状态已经存在时,是否重新计算持续时间  REFRESH_EXISTING = false  # 角色处于战斗不能状态时,是否仍然附加  APPLY_WHEN_DEAD = false  # 一次连锁最多处理多少个状态(防止 A → B → A 的死循环)  MAX_TRANSFER = 32  # 是否在控制台输出调试信息  DEBUG = false  class

    帖子地址: 

    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    简体中文
    繁體中文
    English(英语)
    日本語(日语)
    Deutsch(德语)
    Русский язык(俄语)
    بالعربية(阿拉伯语)
    Türkçe(土耳其语)
    Português(葡萄牙语)
    ภาษาไทย(泰国语)
    한어(朝鲜语/韩语)
    Français(法语)
    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2026-11-6 10:59 , Processed in 0.137802 second(s), 52 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表