#============================================================================== # ■ module N01 for Sideview Ver3.3 #------------------------------------------------------------------------------ # #原版的網址 http://rpgex.sakura.ne.jp/home/sozai/sozai_top.html#VXブー # # 横版战斗系统设定项目。 #============================================================================== module N01 #-------------------------------------------------------------------------- # ● 设定 #-------------------------------------------------------------------------- # 主人公初期位置 第一人 第二人 第三人 第四人 # X轴 Y轴 X轴 Y轴 X轴 Y轴 X轴 Y轴 ACTOR_POSITION = [[408,120],[468,150],[428,180],[488,210]] # 战斗成员最大数(可改动人数) 当人数变动时,上方的坐标也要相应变动 MAX_MEMBER = 4 # 战斗中行动结束后、到下个角色行动开始之间的等待时间。 ACTION_WAIT = 10 # 敌方溃败(被击破时的退场)前的等待时间 COLLAPSE_WAIT = 12 # 胜利前的等待时间 WIN_WAIT = 70 # 战斗背景在画面中位置的设定 FLOOR = [ X轴, Y轴, 透明度] FLOOR = [ 0, 96,128] # 未装备武器地情况下攻击时显示的动画ID NO_WEAPON = 82 # 二刀流设定 当双手装备武器时一次攻击的伤害数值。数值为% # 通常攻击 技能、物品 TWO_SWORDS_STYLE = [ 50, 100] # 状态扩张・自动复活的动画ID RESURRECTION = 41 # 伤害数字图片的文件名(横向等距的从零到九依次排列的图片) DAMAGE_GRAPHICS = "Number+" # 回复数字图片的文件名 RECOVER_GRAPHICS = "Number-" # 显示数值时的文字间隔 NUM_INTERBAL = -3 # 显示数值时的显示时间 NUM_DURATION = 68 # 伤害窗口关闭、只显示文字时的情况是true NON_DAMAGE_WINDOW = false # 伤害窗口中所显示的词语。如果不想显示的情况请""这样消除掉引号中内容即可。 POP_DAMAGE0 = "毫发未损!" # 伤害数值为0时(数字0将不被显示) POP_MISS = "未击中!" # 攻击因攻击者原因没有击中时 POP_EVA = "闪避!" # 攻击因被被攻击者躲开时 POP_CRI = "会心一击!" # 会心一击 POP_MP_DAM = "伤害MP" # 受到MP的伤害时 POP_MP_REC = "回复MP" # 回复MP时 # 阴影效果 使用的话是true不使用时是false SHADOW = true # 识别步行效果 在战斗中人物使用步行效果的话是true不使用时是false # false的情况下、一定要使用自己的行走图,不要使用脚本范例中的。 # 还有,No1之后的图片大小要统一(不是全人物统一,单一人物的统一即可) WALK_ANIME = true # 角色战斗图中用图的动画动作格数(横分割数) ANIME_PATTERN = 3 # 角色战斗图中用图的动画种类数(纵分割数) ANIME_KIND = 4 # 背后攻击(偷袭时的画面反转) 使用的话是true不使用的是false BACK_ATTACK = true # 背后攻击时战斗背景不反转的情况是false BACK_ATTACK_NON_BACK_MIRROR = true # 将背后攻击设置为无效时 偷袭效果依然发挥。 # 全部都是装备上所需装备时、发挥技能时,才会有效果。 # 防止背后攻击的武器ID 举例) = [1] 多数时的举例) = [1,2] NON_BACK_ATTACK_WEAPONS = [] # 防止背后攻击的盾ID NON_BACK_ATTACK_ARMOR1 = [] # 防止背后攻击的头部防具ID NON_BACK_ATTACK_ARMOR2 = [] # 防止背后攻击的身体防具ID NON_BACK_ATTACK_ARMOR3 = [] # 防止背后攻击的装饰品ID NON_BACK_ATTACK_ARMOR4 = [] # 防止背后攻击的技能ID NON_BACK_ATTACK_SKILLS = [] # 一定会发生背后攻击的开关No(会优先于防止) BACK_ATTACK_SWITCH = [] #============================================================================== # ■ 单独战斗动作 #------------------------------------------------------------------------------ # 使用的是连贯动作,这里的单独是没有意义的。 #============================================================================== # 这里的单独动作名,请不要重复。 # 与连贯动作名重复没有问题。 ANIME = { #-------------------------------------------------------------------------- # ● 角色动画的设定 #-------------------------------------------------------------------------- # 文件No…使用战斗动作图的号码。 # 0的情况是使用行走图对应。 # 1以后的是像"人物行走图文件名+_1"这样,参照文件名后的附加数字 # 来判别的。例)$拉尔夫_1 的文件名No是1 # 战斗动作图全部都是从人物行走图文件夹内读取。 # # 种类…战斗动作图的分隔纵列。从上开始0到3依次。 # 速度…动画的更新速度。数值越低更新速度越快。 # 循环… [0=往复循环] [1=循环一次] [2=不循环] # 等待…不循环(2)的情况下、到动画显示结束的等待时间。 # 固定…如果动画不作固定的情况、指定分割号码(横向位置)。不固定的情况是-1。反向再生是-2。 # Z轴…在面前显示的话是正数。相较通常情况靠前的显示。 # 影…表示阴影效果的话是true、不表示为false # 武器…武器表示的情况填入武器动作名。不表示的情况为""。 # 目标动画名 文件No 种类 速度 循环 等待 固定 Z轴 影 武器 "待机" => [ 1, 0, 30, 0, 0, -1, 0, true,"普通待机武器" ], "待机(固定)" => [ 1, 0, 10, 2, 0, 1, 0, true,"普通待机武器" ], "向右(固定)" => [ 0, 2, 10, 1, 2, 1, 0, true,"" ], "伤害" => [ 1, 1, 7, 1, 24, -1, 0, true,"普通待机武器" ], "闪避" => [ 2, 1, 7, 1, 24, -1, 0, true,"" ], "无法战斗" => [ 2, 3, 10, 1, 8, 0, 0, true,"死亡武器位置" ], "前进" => [ 1, 3, 12, 1, 0, -1, 0, true,"普通待机武器" ], "后退" => [ 1, 3, 12, 1, 0, -1, 0, true,"普通待机武器" ], "逃跑" => [ 1, 3, 12, 0, 0, -1, 0, true,"普通待机武器" ], "头上显示" => [ 0, 1, 2, 1, 0, -1, 600, true,"" ], "武器挥动攻击" => [ 3, 0, 1, 2, 0, -1, 2, true,"纵挥动"], "武器挥动攻击L" => [ 3, 0, 1, 2, 0, -1, 2, true,"纵挥动L"], "武器挥动攻击缓" => [ 3, 0, 6, 2, 0, -1, 2, true,"纵挥动"], "武器下旋转" => [ 3, 0, 2, 2, 0, -1, 2, true,"下旋转"], "武器上旋转" => [ 3, 0, 2, 2, 0, -1, 2, true,"上旋转"], "举起武器" => [ 3, 0, 2, 2, 28, -1, 2, true,"举起"], "胜利动作" => [ 3, 0, 15, 0, 0, -1, 0, true,"" ], "剑系统攻击" => [ 3, 0, 2, 2, 0, -1, 0, true,"剑系统武器攻击" ], "剑系统后跳" => [ 2, 1, 30, 1, 0, -1, 0, true,"剑系统武器待机" ], "剑系统后退" => [ 1, 3, 8, 0, 0, -1, 0, true,"剑系统武器待机" ], "枪系统攻击" => [ 3, 0, 1, 2, 0, -1, 2, true,"枪系统武器攻击"], "缓慢前进" => [ 1, 3, 12, 0, 0, -1, 0, true,"缓慢待机武器" ], "插剑动作" => [ 3, 2, 1, 2, 0, -1, 2, true,"插剑"], "使用魔法" => [ 3, 3, 15, 0, 0, -1, 0, true,"" ], #-------------------------------------------------------------------------- # ● 武器动作 让武器图像动起来的方法 #-------------------------------------------------------------------------- # 这里使用的武器动作名、必须是上面角色动画中设置的武器动作名。 # X轴…横向移动距离。 # Y轴…纵向移动距离。 # Z轴…如果让此动作显示时武器在人物前方写作true。 # 初始角度…武器在动作前的最初角度。半圆的0~360度。复数情况为反半圆。 # 完毕角度…动作完毕时的角度。 # 原点…武器旋转时的原点。[0…中心] [1…左上] [2…右上] [3…左下] [4…右下] # 反转…当为true时,动作前武器的图像将会显示为反转的。 # X扩…X轴放大率、武器横向放大率。1是同等、2是2倍、0.5是1/2。 # Y扩…Y轴放大率、武器纵向放大率。1是同等、2是2倍、0.5是1/2。 # 调X…略微调整X轴。这里的数字是调整武器初期的X坐标。 # 调Y…略微调整Y轴。这里的数字是调整武器初期的Y坐标。 # 二刀…限定于二刀流为true、将以二刀流来显示左边武器动作的武器画像。 # 如果不是二刀流的情况会自动跳过角色动画。 # 武器动作名 X轴 Y轴 Z轴 初始角度 完毕角度 原点 反转 X扩 Y扩 调X 调Y 二刀 "纵挥动" => [ 6, 8,false,-135, 45, 4,false, 1, 1, -4, -6,false], "纵挥动L" => [ 6, 8,false,-135, 45, 4,false, 1, 1, -4, -6, true], "下旋转" => [ 6, 8,false, 270, 45, 4,false, 1, 1, -4, -6,false], "上旋转" => [ 6, 8,false, 45,-100, 4,false, 1, 1, -4, -6,false], "举起" => [ 6, -4,false, 90, -45, 4,false, 1, 1, -4, -6,false], # 剑系统武器动画 "剑系统武器待机" => [ 3, 3,false, 55, 55, 0, false, 1, 1, -20, 2,false], "剑系统武器前进" => [ 0, 0,false, -90, -90, 0, false, 1, 1, 10, -14,false], "剑系统武器被伤害" => [ 0, 0,false, 15, 15, 0, false, 1, 1, -12, -5,false], "剑系统武器防御" => [ -15, -15, true, 0, 0, 0, false, 1, 1, -8, -3,false], "剑系统武器攻击" => [ 6, 8,false, 10, 60, 4,false, 1, 1, -4, -6,false], "剑系统武器胜利" => [ 0, 3,false, -10, -30, 4,false, 1, 1, -7, 3,false], "剑系统武器斩" => [ 0, 0,false, 360, 120, 4, true, 1, 1, -4, -6,false], "剑系统武器强打" => [ 0, 8,false,-320, 55, 4,false, 1, 1, -4, -6,false], "剑系统武器举起" => [ 6, -4, true, 90, -45, 4,false, 1, 1, -4, -6,false], "剑系统武器下斩" => [ 0, 0,false,-320, 180, 4, true, 1, 1, 0, 0,false], "枪系统武器攻击" => [ -10, 0,false, 45, 45, 4,false, 1, 1, 4, 2,false], "缓慢待机武器" => [ 3, 3,false, 65, 65, 0,false, 1, 1, -10, -4,false], "插剑" => [ 0, 0,false, 270, 0, 3,false, 1, 1, -35, -4,false], "死亡武器位置" => [ 0, 0,false, 0, 0, 0,false, 1, 1, -20, 0,false], "普通待机武器" => [ 3, 3,false, 65, 65, 0,false, 1, 1, -18, 2,false], #-------------------------------------------------------------------------- # ● 角色移动 敌方的X轴移动是以相反的复数计算。 #-------------------------------------------------------------------------- # 目标…坐标移动的参照 [0=自身现在的位置] [1=目标] [2=窗口] [3=初期位置] # X轴…从对象所看X坐标。绝对值就算是最低时也会比时间高 # Y轴…从对象所看Y坐标。绝对值就算是最低时也会比时间高 # 时间…移动时间。数值越大越缓慢。这里是用距离除以时间所得每格行动距离。 # 加速…正数是加速、负数是减速。这里是每格行动的加速或减速。 # 跳跃…跳跃轨道。正数是向下跳、负数是向上跳。0是不跳。 # 动画…这里的移动所使用的角色动画名。 # 目标 X轴 Y轴 时间 加速 跳跃 动画 "不能移动" => [ 0, 0, 0, 1, 0, 0, "待机(固定)"], "到战斗开始的位置"=> [ 0, 54, 0, 1, 0, 0, "前进"], "一步向前移动" => [ 3, -32, 0, 18, -1, 0, "前进"], "一步向后移动" => [ 0, 32, 0, 8, -1, 0, "前进"], "四人攻击移动1" => [ 2, 444, 96, 18, -1, 0, "前进"], "四人攻击移动2" => [ 2, 444, 212, 18, -1, 0, "前进"], "四人攻击移动3" => [ 2, 384, 64, 18, -1, 0, "前进"], "四人攻击移动4" => [ 2, 384, 244, 18, -1, 0, "前进"], "被伤害" => [ 0, 32, 0, 4, -1, 0, "伤害"], "推动" => [ 0, 12, 0, 1, 1, 0, "伤害"], "我方逃走" => [ 0, 300, 0,300, 1, 0, "逃跑"], "逃走失败" => [ 0, 48, 0, 16, 1, 0, "逃跑"], "胜利的跳跃" => [ 0, 0, 0, 20, 0, -5, "前进"], "目标移动" => [ 1, 0, 0, 18, -1, 0, "前进"], "目标高速移动" => [ 1, 0, -12, 8, 0, -2, "前进"], "目标向前移动" => [ 1, 24, 0, 12, -1, 0, "前进"], "目标向前高速移动"=> [ 1, 24, 0, 1, 0, 0, "前进"], "目标右前移动" => [ 1, 96, 32, 16, -1, 0, "前进"], "目标左前移动" => [ 1, 96, -32, 16, -1, 0, "前进"], "一步向前跳跃" => [ 0, -32, 0, 8, -1, -4, "前进"], "一步向后跳跃" => [ 0, 32, 0, 8, -1, -4, "闪避"], "跳跃到目标" => [ 1, 12, -12, 12, -1, -6, "前进"], "投掷我方" => [ 0, -24, 0, 16, 0, -2, "前进"], "强力踩踏" => [ 1, 12, -32, 12, -1, -6, "头上显示"], "一步向前跳跃敲击"=> [ 0, -32, 0, 12, -1, -2, "武器挥动攻击"], "向前跳跃敲击" => [ 1, 12, 0, 12, -1, -5, "武器挥动攻击缓"], "对后方给予提高" => [ 1, 12, 0, 16, 0, -3, "武器挥动攻击"], "原地跳跃敲击" => [ 1, 0, 0, 16, 0, -5, "武器挥动攻击"], "拔出" => [ 1, -96, 0, 16, 2, 0, "武器挥动攻击"], "右拔出" => [ 1, -96, 32, 16, 2, 0, "武器挥动攻击"], "左拔出" => [ 1, -96, -32, 16, 2, 0, "武器挥动攻击"], "右拔出2" => [ 1,-128, 48, 16, 2, 0, "武器挥动攻击"], "左拔出2" => [ 1,-128, -48, 16, 2, 0, "武器挥动攻击"], "剑系统目标前移动" => [ 1, 24, 0, 50, -1, 0, "剑系统攻击移动"], "剑系统攻击后后跳" => [ 0, 32, 0, 25, -1, -3, "剑系统后跳"], "战场中心移动" => [ 2, 272, 208, 18, -3, -2, "缓慢前进"], #-------------------------------------------------------------------------- # ● 角色漂浮 角色与影子脱离 #-------------------------------------------------------------------------- # 判別…用来判别的、请全部统一填入"float"。 # 始高…开始漂浮的高度。负数情况是在影子之上、正数是在影子下方。 # 终高…漂浮完毕的高度。因为动作系需要使用这个数值,请不要变动。 # 时间…漂浮过程所用时间。 # 动画…漂浮时候所用的角色动画名。 # 判別 始高 终高 时间 动画 "低空漂浮中" => ["float", -22, -20, 2, "待机(固定)"], "低空漂浮中2" => ["float", -20, -18, 2, "待机(固定)"], "低空漂浮中3" => ["float", -18, -20, 2, "待机(固定)"], "低空漂浮中4" => ["float", -20, -22, 2, "待机(固定)"], "跳跃停止" => ["float", 0, -80, 4, "待机(固定)"], "跳跃着地" => ["float", -80, 0, 4, "待机(固定)"], "抬起" => ["float", 0, -30, 4, "待机(固定)"], #-------------------------------------------------------------------------- # ● 坐标初始化 返回到原始位置的移动设置 #-------------------------------------------------------------------------- # 判別…用来判别的、请全部统一填入"reset"。 # 时间…返回过程所用时间。即使是同样的时间如果距离远的情况下移动速度也会发生变化。 # 加速…正数为加速、负数为减速。这里是每格行动的加速或减速。 # 跳跃…跳跃轨道。正数为向下跳、负数为向上跳。0是不跳。 # 动画…这里移动时使用的角色动画名。 # 判別 时间 加速 跳跃 动画 "坐标初始化" => ["reset", 16, 0, 0, "前进"], "后退初始化" => ["reset", 16, 0, 0, "后退"], "目标面前坐标初始化" => ["reset", 50, 0, 0, "剑系统后退"], #-------------------------------------------------------------------------- # ● 强制动作 被动形成的目标动作 #-------------------------------------------------------------------------- # 识别…被动形成的动作是单独还是连贯。"单独"时直接填入单独即可。 # "连贯"时请填入连贯。 # # 对象…获取是指动作的对象。0是目标、除他以外的处于那个状态No # 的全部角色视为对象。 # 数值前有负号的就会习得此数字绝对值的数字对应的技能ID上的技能 # 除自身以外的主人公作为对象(主人公限定) # 指定引取的情况(成员位置)、引取值填入1000。 # 指定的引取是自身不在的情况(无法战斗或是逃走时) # 从零号开始顺次参照、所有角色界不在为时,行动中段。 # # 恢复…动作后返回原始坐标的目标动作名。 # 不返回的情况以这样""不填任何东西即可。 # 动作名…强制动作的动作名。识别是单独的话、使用单独动作名。 # 连贯的话就用连贯动作名(组合动作)。 # 识别 对象 恢复 动作名 "轻微吹动" => ["单独", 0, "坐标初始化", "推动"], "右旋转" => ["单独", 0, "坐标初始化", "右旋转一周"], "纵向压扁" => ["单独", 0, "坐标初始化", "纵向缩小"], "中弹1" => ["单独", 0, "坐标初始化", "从对象到自身1"], "举起我方" => ["单独", 0, "", "抬起"], "吴莉嘉连同攻击" => ["连贯", 18, "坐标初始化", "吴莉嘉合体攻击1"], "四人攻击1" => ["连贯", -101, "坐标初始化", "四人合体攻击1"], "四人攻击2" => ["连贯", -102, "坐标初始化", "四人合体攻击2"], "四人攻击3" => ["连贯", -103, "坐标初始化", "四人合体攻击3"], "将我方投掷飞出" => ["连贯", 1000, "坐标初始化", "可以投掷"], #-------------------------------------------------------------------------- # ● 目标变更 改变现在角色作为目标对象的 #-------------------------------------------------------------------------- # ※只是改变战斗动作上的目标、战斗的目标不改变。 # 只能是实行战斗中的角色执行。 # 判別…因为使用于判别、请全部统一填入"target"。 # # 对象…被变更目标的对象。0是目标、改变这个目标以外处于那个状态No中 # 角色的全部对象。 # 数值前有负号的就会习得此数字绝对值的数字对应的技能ID上的技能(我方队员为对象)。 # 指定引取的情况(成员位置)、引取值填入1000。 # 指定的引取是自身不在的情况(无法战斗或是逃走时) # 从零号开始顺次参照。 # # 变更处…变更处内容 0=自身 1=自身的目标 # 2=成为自身的目标后、再将自己的目标变为变更对象 # 3=将已变更为自身的目标返还(必须是在实行过2的情况下下) # 目标変更名 判別 对象 変更先 "以自身为目标" => ["target", 0, 0], "二人攻击目标统一" => ["target", 18, 1], "四人攻击目标统一" => ["target", 19, 1], "选择投掷角色" => ["target", 1000, 2], "投掷目标组合" => ["target", 1000, 3], #-------------------------------------------------------------------------- # ● 技能连发 中断动作后、其他技能被连发出来 #-------------------------------------------------------------------------- # 判別…用于判别、请全部统一填入"der"。 # 确率…连发的成功率、0~100之间。如果没有被连发、剩下的动作继续执行。 # 习得…如果连发的技能没有被习得也可以实行的话是true # 技能ID…连发的技能的ID # 连发名 判別 确率 习得 技能ID "回复连发" => ["der", 100, true, 91], "适当连发" => ["der", 100, true, 92], #-------------------------------------------------------------------------- # ● 动作条件 设定条件、满足条件以后将停止所有行动 #-------------------------------------------------------------------------- # 判別…用于判别、请全部统一填入"nece"。 # 对象…用于条件参照的对象。[0=自分] [1=目标] [2=敌全体] [3=我方全体] # 内容… [0=状态] [1=参数] [2=开关] [3=变量] [4=习得技能] # # 条件…填入符合上边内容确定的项目的数值。 # [0]状态…状态ID # [1]参数…[0=现HP] [1=现MP] [2=攻击力] [3=防御力] [4=精神力] [5=敏捷性] # [2]开关…游戏中的开关No # [3]变量…游戏中的变量No # [4]习得技能…习得特定技能的条件、将那个技能的ID编号填入。 # # 补足…补足上边的条件。 # [0]状态…成为条件的被施加状态的人数。 # 符号为正号时是需要此号码对应条件,负号时为不需要。 # [1]参数…参数的数值。对象为复数时,将取平均值。 # 符号为正的数值以上、以及负的数值以下作为条件。 # [2]开关…开关ON为条件是 true、OFF为条件是 false # [3]变量…符号为正的数值以上、以及负的数值以下作为条件。 # [4]习得技能…作为条件的技能所习得的人数。 # 连发名 判別 对象 内容 条件 补足 "二人攻击条件确认" => ["nece", 3, 0, 18, 1], "四人攻击条件确认" => ["nece", 3, 0, 19, 3], "漂浮状态确认" => ["nece", 0, 0, 17, 1], "是否已变身成猫"=> ["nece", 0, 0, 20, 1], "死亡确认" => ["nece", 1, 0, 1, 1], #-------------------------------------------------------------------------- # ● 角色旋转 画像旋转。与反转不同、武器动作不能被反映 #-------------------------------------------------------------------------- # 判別…用于判别、请全部统一填入"angle"。 # 时间…旋转过程所需时间。 # 初始角度…旋转开始时的角度。指定于0~360度之间。正数为正半圆、负数为反半圆。 # 完毕角度…旋转完毕时的角度。指定于0~360度之间。跟上边所记相同,但敌人的设定是与其相反的。 # 回复…true是在完毕的同时恢复到通常角度。false是保持最后着动作。 # 判別 时间 初始角度 完毕角度 回复 "右旋转一周" => ["angle", 48, 0,-360,false], "左高速旋转" => ["angle", 6, 0, 360,false], #-------------------------------------------------------------------------- # ● 角色放大缩小 武器动作不能被反映 #-------------------------------------------------------------------------- # 判別…用于判别、请全部统一填入"zoom"。 # 时间…放大缩小过程所需时间。 # X扩…横向的放大率。1.0是等倍、0.5是原有的一半。 # Y扩…纵向的放大率。1.0是等倍、0.5是原有的一半。 # 回复…true是在完毕的同时还原成等倍。false是保持完毕时的样子。 # 放大缩小时会一时变更当前对象的原点、在恢复的时候复原。 # 判別 时间 X拡 Y拡 回复 "横向缩小" => ["zoom", 16, 0.5, 1.0, true], "纵向缩小" => ["zoom", 16, 1.0, 0.5, true], #-------------------------------------------------------------------------- # ● 战斗动画 显示数据库的战斗动画 #-------------------------------------------------------------------------- # 判別…用于判别、请全部统一填入"anime"。 # ID…动画ID。-1时将显示武器或者技能上设定的动画的伤害。 # -2时技能也变成武器上所带的动画。 # 对象… [0=自身] [1=目标] # 反转…true时动画地画像将被反转。 # 等待…一直在动画显示完毕都存在的话是true。 # 二刀用…true时将实行二刀流的动画。动画ID为-1时通常攻击的情况 # 设定成显示为左手武器的动画。技能是技能动画的在实行。 # 判別 ID 对象 反转 等待 二刀用 "对象动画" => ["anime", -1, 1, false,false, false], "对象动画等待" => ["anime", -1, 1, false, true, false], "对象动画武器" => ["anime", -2, 1, false,false, false], "对象动画L" => ["anime", -1, 1, false,false, true], "打击动画" => ["anime", 1, 1, false,false, false], "斩击/必杀技1" => ["anime", 11, 1, false,false, false], "敌对象动画无" => ["anime", 0, 1, true,false, false], "幻鬼之阵" => ["anime", 201, 0, false,false, false], "终末之冬 杀" => ["anime", 207, 1, false,false, false], #-------------------------------------------------------------------------- # ● 动画飞出 让战斗动画飞出去。飞行道具、远距离攻击用 #-------------------------------------------------------------------------- # ID…数据库里设定的动画ID。0是不显示动画。 # 对象…飞出的对象 [0=目标] [1=敌全体的中心] [2=我方全体的中心] [4=自身] # 类型…[0=碰撞时消失] [1=直线贯穿] # 时间…动画飞出去时候的移动时间。数值越大速度越缓慢。 # 轨道…动画飞出去时候的轨道。填入数值的话是走抛物线。正数为向下的抛物线、负数为向上。 # 调X…略微调整X轴。改变飞出时的初期X坐标。敌方的情况是自动的反向运算。 # 调Y…略微调整Y轴。改变飞出时的初期Y坐标。 # 始…动画飞出时的开始位置。[0=自身] [1=对象] [2=不能移动] # Z坐标…动画或者武器在角色面前显示的话是true # 武器…填入下面贴附的武器、技能动作名。如果不是用为"" # 判別 ID 对象 类型 时间 轨道 调X 调Y 始 Z坐标 武器 "魔法发动动画" => ["m_a", 0, 4, 0, 52, 0, 0, 0, 2,false,""], "从对象到自身1" => ["m_a", 4, 0, 0, 24, 0, 0, 0, 1,false,""], "开始武器投掷" => ["m_a", 0, 0, 0, 18, -24, 0, 0, 0,false,"旋转投掷"], "放弃武器投掷" => ["m_a", 0, 0, 0, 18, 24, 0, 0, 1,false,"旋转投掷"], "全体动画单体化" => ["m_a", 80, 1, 0, 64, 0, 0, 0, 2, true,""], "幻鬼之阵1" => ["m_a", 202, 1, 0, 100, 0, 0, 0, 2, true,""], "幻鬼之阵2" => ["m_a", 203, 1, 0, 100, 0, 0, 0, 2, true,""], "幻鬼之阵3" => ["m_a", 204, 1, 0, 100, 0, 0, 0, 2, true,""], "幻鬼之阵4" => ["m_a", 205, 1, 0, 100, 0, 0, 0, 2, true,""], "终末之冬" => ["m_a", 206, 0, 0, 100, 0, 0, 0, 2, true,""], #-------------------------------------------------------------------------- # ● 动画飞出时贴附的武器图像动画 专用于上面的武器飞出 #-------------------------------------------------------------------------- # 让贴附的武器图片动。这个画像可以和和武器动作的画像区分使用。 # 那样的情况贴附的图像请去武器设定。 # 初始角度…动作前的最初角度。前半圆0~360度。 # 完毕角度…动作后的角度。前半圆0~360度。 # 时间…旋转过程需要的时间。越小越快。动作到消失前持续保持旋转。 # 武器动作名 初始角度 完毕角度 时间 "旋转投掷" => [ 0, 360, 8], #-------------------------------------------------------------------------- # ● 动画飞出时贴附的技能画像动画 专用于上边的动画飞出 #-------------------------------------------------------------------------- # 让贴附的技能图片动。能够贴附的图像在技能设定上。 # 初始角度…动作前的最初角度。前半圆0~360度。 # 完毕角度…动作后的角度。前半圆0~360度。 # 时间…旋转过程所需要的时间。越小越快。动作到消失前持续保持旋转。 # 判別…用于判别、请全部统一填入"skill"。 # 武器动作名 初始角度 完毕角度 时间 判別 "石投掷" => [ 0, 360, 8, "skill"], #-------------------------------------------------------------------------- # ● 状态动画 显示事件使用的状态ICON #-------------------------------------------------------------------------- # 判別…用于判别、请全部统一填入"balloon"、"balloon2"。 # 种类…状态的种类(纵位置)在0~9之间。 # 形式…动画更新方法、在完毕时消失。[0=单线] [1=往返] # 状态名 判別 种类 形式 "异常状态/危急" => ["balloon", 5, 1], "异常状态/睡眠" => ["balloon", 9, 1], "异常状态/封穴" => ["balloon", 6, 1], "异常状态/中毒" => ["balloon2", 9, 1], "异常状态/昏迷" => ["balloon2", 8, 1], "异常状态/混乱" => ["balloon2", 7, 1], "异常状态/内伤" => ["balloon2", 6, 1], #-------------------------------------------------------------------------- # ● 声效 #-------------------------------------------------------------------------- # 判別…用于判别、请全部统一填入"sound"。 # 种别…効果音为"se" BGM为"bgm" BGS为"bgs" # 速度…速度、50~150之间。音量…音量 不管哪个都要默认为100。 # 文件名…播放的文件名。""时不改变任何BGM和BGS的设定。 # SE名 判別 种别 速度 音量 SE文件名 "absorb1" => ["sound", "se", 80, 100, "absorb1"], #-------------------------------------------------------------------------- # ● 变更游戏整体速度 动作的慢放化 #-------------------------------------------------------------------------- # 判別…用于判别、请全部统一填入"fps"。 # 游戏速度…60是默认的数值、比这个值低的时候就会放慢。 # ※这个指令也可以直接变更FPS。请注意处理。 # 変更名 判別 游戏速度 "缓慢再生" => ["fps", 20], "通常再生" => ["fps", 60], #-------------------------------------------------------------------------- # ● 赋予状态 #-------------------------------------------------------------------------- # 判別…用于判别、请全部统一填入"sta+"。 # 对象…[0=自分] [1=目标] [2=敌全体] [3=我方全体] [4=除自身以外的我方全体] # 状态ID…赋予的状态ID编号。「不能抵抗」状态以外为抵抗。 # 赋予的状态名 判別 对象 状态ID "赋予二人攻击状态" => ["sta+", 0, 18], "赋予四人攻击状态" => ["sta+", 0, 19], "猫" => ["sta+", 0, 20], #-------------------------------------------------------------------------- # ● 状态解除 #-------------------------------------------------------------------------- # 判別…用于判别、请全部统一填入"sta-"。 # 对象…[0=自分] [1=目标] [2=敌全体] [3=我方全体] [4=除自身以外的我方全体] # 状态ID…解除的状态ID编号 # 赋予的状态名 判別 对象 状态ID "解除二人攻击状态" => ["sta-", 3, 18], "解除四人攻击状态" => ["sta-", 3, 19], #-------------------------------------------------------------------------- # ● 角色画像文件変更 只能使用于主人公们 #-------------------------------------------------------------------------- # 判別…用于判别、请全部统一填入"change"。 # 复原…战斗后也显示为变化的是false。行走图也将变化。 # 文件名…变更为的文件名。因为要改变识别处,请不要用文件名加"_1"后缀的方式。 # 変更名 判別 复原 文件名 "变身成猫" => ["change", true,"$cat"], "解除变身" => ["change", true,"$ylva"], "攻击变身" => ["change", true,"_1"], "技能变身" => ["change", true,"_2"], "受击变身" => ["change", true,"_3"], "还原变身" => ["change", true,""], #-------------------------------------------------------------------------- # ● 图片显示 一名角色对应显示一枚图片 #-------------------------------------------------------------------------- # 始X…移动开始位置。从画面所看的X坐标。图片是以左上为原点。 # 始Y…移动开始位置。从画面所看的Y坐标。 # 終X…移动完毕X坐标。 # 終Y…移动完毕Y坐标。 # 时间…移动时间。数值越大越缓慢。这里是用距离除以时间所得每格行动距离。 # Z轴…相较HP窗口靠前显示的话为true # 图片文件名…图片文件夹内的文件名。 # 判別 始X 始Y 终X 终Y 时间 Z轴 图片文件名 "特写1开始" => ["pic",-280, 48, 0, 64, 14,false,"Actor2-3"], "特写1完毕" => ["pic", 0, 48, 550, 64, 12,false,"Actor2-3"], #-------------------------------------------------------------------------- # ● 游戏开关的设置 #-------------------------------------------------------------------------- # 判別…用于判别、请全部统一填入"switch"。 # 开关No…设置哪个开关 # ON/OFF…将开关ON时是true、OFF时是false # # 开关设置名 判別 开关No ON/OFF "开关No1/ON" => ["switch", 1, true], #-------------------------------------------------------------------------- # ● 游戏变量的设置 #-------------------------------------------------------------------------- # 判別…用于判别、请全部统一填入"variable"。 # 变量No…设置哪个开关 # 设置…[0=代入] [1=加法] [2=减法] [3=乘法] [4=除法] [5=剩余] # 设置数值…指定成为演算对象的数值。 # # 变量设置名 判別 变量No 设置 设置数值 "变量No1/+1" => ["variable", 1, 1, 1], #-------------------------------------------------------------------------- # ● 脚本运行的设置 #-------------------------------------------------------------------------- # 判別…用于判别、请全部统一填入"script"。 # # 使动作被添加到建议的脚本中。样品p = 1可以添加任何自己想要设置的脚本。 # 功能中、不能处理文字列。 # # 设置名 判別 "检测程序" => ["script", " p = 1 "], #-------------------------------------------------------------------------- # ● 其他 没有设定项目。这里所使用的名称请不要改动。 #-------------------------------------------------------------------------- # 消去图片…消除显示的图片。 # 残像ON…留下角色轨迹中的残像。持续连贯动作中的残像。 # 残像OFF…消除残像。 # 反转…反转画像。是再次被反转回去,还是坐标不复原保持着反转后的样子。 # 待机不能移动…行动后、不做待机动作。 # 击倒许可…目标的HP变成0时、在这个时机可以被击倒。 # 如果这段没有的话,怪会在所有动作完成时被击倒。 # 限定于二刀…只是这个下面的单独动作、限定于二刀来处理。 # 如果不是二刀的话将会跳过、直接执行下一个单独动作。 # 非限定于二刀…与上边相反,只有在不是二刀的情况下个动作才会有效。 # 单独处理开始…在全体攻击处理成单独时、是播放行动的开始记号。 # 单独处理完毕…在全体攻击处理成单独时、是播放行动的完毕记号。 # 变更初期位置…原坐标(初期位置)变成现在的位置。 # 解除变更初期位置…将变更初期位置还原。 # 解除主动…当作战斗行动完毕、下一个角色开始行动。 # 击倒许可设置也被含在其中、在这之后的所有动作都不会再对对象做出伤害。 # 完毕…行动完毕。就算没有这里,在所有动作完毕后也会自动识别成完毕。 "消去图片" => ["消去图片"], "残像ON" => ["残像ON"], "残像OFF" => ["残像OFF"], "反转" => ["反转"], "待机不能移动"=> ["待机不能移动"], "击倒许可" => ["击倒许可"], "限定于二刀" => ["限定于二刀"], "非限定于二刀" => ["非限定于二刀"], "单独处理开始" => ["单独处理开始"], "单独处理完毕" => ["单独处理完毕"], "变更初期位置" => ["变更初期位置"], "解除变更初期位置"=> ["解除变更初期位置"], "解除主动" => ["解除主动"], "完毕" => ["完毕"] #-------------------------------------------------------------------------- # ● 等待相关 #-------------------------------------------------------------------------- # 单独动作上只有数值时、将会直接判定为等待时间。 # 总之,请不要用只有数字的单独动作名。 # 等待是到下一个动作执行前的等待时间、角色动画的更新不会被停止 } #============================================================================== # ■ 连贯动作 #------------------------------------------------------------------------------ # 将上边的单独动作组合起来、这里是实际做出的动作。 #============================================================================== # 这里的连贯动作名将是下面主人公或者敌方所指定用的。 # 行动会从左到右依次进行。 ACTION = { #------------------------------- 待机系 ----------------------------------------- # 连贯动作名 行动 "战斗开始" => ["到战斗开始的位置","坐标初始化"], "待机" => ["待机"], "危急待机" => ["不能移动","待机(固定)","异常状态/危急","22"], "异常状态待机" => ["不能移动","待机(固定)","异常状态/通用","22"], "睡眠待机" => ["不能移动","待机(固定)","异常状态/睡眠","22"], "漂浮待机" => ["待机(固定)","6","低空漂浮中","4", "低空漂浮中2","4","低空漂浮中3","4", "低空漂浮中4","4"], "气绝" => ["无法战斗"], "伤害" => ["被伤害","坐标初始化"], "敌伤害" => ["被伤害","受击变身","24","还原变身","坐标初始化"], "逃走" => ["我方逃走"], "敌方逃走" => ["我方逃走","坐标初始化"], "逃走失败" => ["逃走失败","待机(固定)","8","坐标初始化"], "选择指令" => ["一步向前移动"], "选择指令后" => ["坐标初始化"], "防御" => ["待机(固定)","4","漂浮状态确认","低空漂浮中", "2","低空漂浮中2","2","低空漂浮中3","2", "低空漂浮中4","2"], "友方回避" => ["一步向后跳跃","待机(固定)","16","坐标初始化"], "敌方回避" => ["一步向后跳跃","待机(固定)","16","坐标初始化"], "胜利" => ["待机(固定)","16","向右(固定)","胜利动作", "待机(固定)","待机不能移动","是否已变身成猫", "魔法发动动画","解除变身","待机(固定)","待机不能移动",], "坐标复原" => ["坐标初始化"], #------------------------------- 強制系 ---------------------------------------- "吴莉嘉合体攻击1" => ["2","目标左前移动","待机(固定)", "魔法发动动画","武器下旋转","举起武器", "48","右拔出","64","后退初始化"], "四人合体攻击1" => ["2","四人攻击移动2","待机(固定)","魔法发动动画", "武器下旋转","举起武器","90", "左拔出","96","后退初始化"], "四人合体攻击2" => ["2","四人攻击移动3","待机(固定)","魔法发动动画", "武器下旋转","举起武器","60","右拔出2","右旋转", "对象动画","128","后退初始化"], "四人合体攻击3" => ["2","四人攻击移动4","待机(固定)","魔法发动动画", "武器下旋转","举起武器","34","左拔出2","右旋转", "对象动画","144","后退初始化"], "可以投掷" => ["右旋转一周","4","目标高速移动","一步向后跳跃","4", "待机(固定)","一步向后跳跃","待机(固定)","32"], #--------------------------- 基本アクション系 ---------------------------------- "通常攻击" => ["目标向前移动","武器挥动攻击","对象动画等待", "12","武器挥动攻击L","对象动画L","限定于二刀","16", "击倒许可","后退初始化"], "近身技能" => ["目标向前移动","武器挥动攻击","对象动画等待", "12","武器挥动攻击L","对象动画L","限定于二刀","16", "击倒许可","后退初始化"], "使用通用技能" => ["一步向前移动","待机(固定)","使用魔法","魔法发动动画", "武器下旋转","举起武器","武器挥动攻击", "对象动画等待","击倒许可","24","坐标初始化"], "敌方使用技能" => ["一步向前移动","技能变身","待机(固定)","魔法发动动画", "武器下旋转","举起武器","武器挥动攻击", "对象动画等待","击倒许可","24","还原变身","坐标初始化"], "通用技能单独处理"=> ["一步向前移动","魔法发动动画","武器下旋转","举起武器", "单独处理开始","武器挥动攻击","对象动画","24", "单独处理完毕","击倒许可","坐标初始化"], "使用物品" => ["目标向前移动","待机(固定)","24","对象动画等待", "击倒许可","坐标初始化"], #------------------------------ スキル系 --------------------------------------- "乱剑狂舞" => ["残像ON","向前跳跃敲击","武器挥动攻击L","对象动画武器", "待机(固定)","16","对象动画武器","武器下旋转", "武器上旋转","4","原地跳跃敲击","武器挥动攻击L", "对象动画武器","待机(固定)","16","对象动画武器", "反转","武器挥动攻击","武器挥动攻击L","12","反转", "原地跳跃敲击","武器挥动攻击L","对象动画武器", "一步向后跳跃","一步向后跳跃","待机(固定)", "对象动画武器","拔出","武器挥动攻击L","击倒许可", "残像OFF","16","反转","后退初始化","反转"], "多段随机攻击" => ["向前跳跃敲击","武器挥动攻击L","对象动画武器","待机(固定)","16", "向前跳跃敲击","武器挥动攻击L","对象动画武器","待机(固定)","16", "向前跳跃敲击","武器挥动攻击L","对象动画武器","待机(固定)","16", "向前跳跃敲击","武器挥动攻击L","对象动画武器","击倒许可","坐标初始化"], "高速多段攻击" => ["目标向前移动","武器挥动攻击","轻微吹动","对象动画武器", "目标向前高速移动","武器挥动攻击","轻微吹动","武器挥动攻击L","对象动画武器", "目标向前高速移动","武器挥动攻击","轻微吹动","武器挥动攻击L","对象动画武器", "目标向前高速移动","武器挥动攻击","轻微吹动","武器挥动攻击L","对象动画武器", "目标向前高速移动","武器挥动攻击","轻微吹动","武器挥动攻击L","对象动画武器", "目标向前高速移动","武器挥动攻击","轻微吹动","武器挥动攻击L","对象动画武器", "击倒许可","12","坐标初始化"], "二人同時攻击" => ["二人攻击条件确认","二人攻击目标统一","吴莉嘉连同攻击", "目标右前移动","待机(固定)","魔法发动动画","武器下旋转", "举起武器","48","斩击/必杀技1","左拔出","64","对象动画", "击倒许可","后退初始化","解除二人攻击状态"], "二人同時攻击准备"=> ["赋予二人攻击状态"], "四人同時攻击" => ["四人攻击条件确认","四人攻击目标统一","四人攻击1", "四人攻击2","四人攻击3","四人攻击移动1","待机(固定)", "魔法发动动画","武器下旋转","举起武器","90", "斩击/必杀技1","右拔出","64","对象动画等待", "击倒许可","后退初始化","合体攻击解除"], "四人同時攻击准备"=> ["赋予四人攻击状态"], "武器投掷" => ["一步向前移动","武器挥动攻击","absorb1","待机(固定)", "开始武器投掷","12","对象动画武器","击倒许可", "放弃武器投掷","坐标初始化"], "单独全体远距离攻击"=> ["一步向前跳跃","跳跃停止","单独处理开始", "以自身为目标","武器挥动攻击","中弹1","8", "对象动画武器","单独处理完毕","击倒许可", "跳跃着地","坐标初始化"], "全体远距离攻击" => ["以自身为目标","武器挥动攻击","中弹1","20", "对象动画等待","击倒许可"], "回复连发" => ["目标向前移动","对象动画","武器挥动攻击", "16","死亡确认","回复连发","坐标初始化"], "适当连发" => ["逃走失败","魔法发动动画","武器下旋转","举起武器", "8","对象动画","适当连发","坐标初始化"], "特写" => ["待机(固定)","魔法发动动画","特写1开始", "75","特写1完毕","8","目标向前移动", "武器挥动攻击","对象动画等待","击倒许可", "消去图片","后退初始化"], "踩踏攻击" => ["跳跃到目标","打击动画","纵向压扁","一步向后跳跃", "强力踩踏","打击动画","纵向压扁","一步向后跳跃", "强力踩踏","对象动画","纵向压扁","一步向后跳跃", "一步向后跳跃","击倒许可","待机(固定)","8","后退初始化"], "全体攻击1" => ["一步向前移动","待机(固定)","魔法发动动画","武器下旋转", "举起武器","全体动画单体化","武器挥动攻击","48", "对象动画等待","击倒许可","坐标初始化"], "变身成猫" => ["一步向前跳跃","待机(固定)","魔法发动动画","32", "变身成猫","待机(固定)","猫","32","一步向后跳跃"], "人体投掷" => ["选择投掷角色","目标移动","举起我方","4", "absorb1","投掷目标组合","将我方投掷飞出", "投掷我方","待机(固定)","对象动画","坐标初始化", "待机(固定)","32"], # =============共通动作============== "剑系统攻击动作" => ["剑系统目标前移动","剑系统攻击","对象动画","10", "剑系统攻击后后跳","20","击倒许可","反转", "目标面前坐标初始化","反转"], "枪系统攻击动作" => ["剑系统目标前移动","枪系统攻击","对象动画等待","20", "限定于二刀","20","击倒许可","反转","目标面前坐标初始化","反转"], "敌方无武器的攻击"=> ["目标向前移动","12","攻击变身","敌对象动画无","对象动画等待", "12","还原变身","击倒许可","后退初始化"], # =============己方技能============== "幻鬼之阵(友)" => ["残像ON","战场中心移动","使用魔法","插剑动作","70","幻鬼之阵", "幻鬼之阵1","对象动画","55","幻鬼之阵2","对象动画","55","幻鬼之阵3","对象动画","55", "幻鬼之阵4","对象动画","55","幻鬼之阵2","对象动画","55","幻鬼之阵3","对象动画","55", "击倒许可","残像OFF","向后跳跃","反转","坐标初始化","反转"], # =============敌方技能============== "幻鬼之阵(敌)" => ["残像ON","战场中心移动","技能变身","30","幻鬼之阵", "幻鬼之阵1","对象动画","55","幻鬼之阵2","对象动画","55","幻鬼之阵3","对象动画","55", "幻鬼之阵4","对象动画","55","幻鬼之阵2","对象动画","55","幻鬼之阵3","对象动画","55", "击倒许可","残像OFF","向后跳跃","还原变身","反转","坐标初始化","反转"], "终末之冬(敌)" => ["一步向前移动","技能变身","30","终末之冬","90","终末之冬 杀", "60","对象动画","60","击倒许可","还原变身","坐标初始化"], #------------------------------------------------------------------------------- "完毕" => ["完毕"]} end #============================================================================== # ■ Game_Actor #------------------------------------------------------------------------------ # 设定主人公的基本动作类 #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● 从主人公ID中确定空手时的动作(无武器时) #-------------------------------------------------------------------------- # when 1 ←这个数字是主人公ID # return "通常攻击" ←填入对应的连贯动作名 def non_weapon case @actor_id when 1 return "通常攻击" end # 上述主人公ID以外的其他主人公全部使用的连贯动作名 return "通常攻击" end #-------------------------------------------------------------------------- # ● 通常待机 #-------------------------------------------------------------------------- def normal case @actor_id when 1 return "待机" end # 上述主人公ID以外的其他主人公全部使用的连贯动作名 return "待机" end #-------------------------------------------------------------------------- # ● 危急(HP1/4以下) #-------------------------------------------------------------------------- def pinch case @actor_id when 1 return "危急待机" end # 上述主人公ID以外的其他主人公全部使用的连贯动作名 return "危急待机" end #-------------------------------------------------------------------------- # ● 防御 #-------------------------------------------------------------------------- def defence case @actor_id when 1 return "防御" end # 上述主人公ID以外的其他主人公全部使用的连贯动作名 return "防御" end #-------------------------------------------------------------------------- # ● 伤害 对象动画時、取得命中时的动作 #-------------------------------------------------------------------------- def damage_hit case @actor_id when 1 return "伤害" end # 上述主人公ID以外的其他主人公全部使用的连贯动作名 return "伤害" end #-------------------------------------------------------------------------- # ● 回避 对象动画時、取得沒命中时的动作 #-------------------------------------------------------------------------- def evasion case @actor_id when 1 return "友方回避" end # 上述主人公ID以外的其他主人公全部使用的连贯动作名 return "友方回避" end #-------------------------------------------------------------------------- # ● 选择指令前動作 #-------------------------------------------------------------------------- def command_b case @actor_id when 1 return "选择指令" end # 上述主人公ID以外的其他主人公全部使用的连贯动作名 return "选择指令" end #-------------------------------------------------------------------------- # ● 选择指令后動作 #-------------------------------------------------------------------------- def command_a case @actor_id when 1 return "选择指令后" end # 上述主人公ID以外的其他主人公全部使用的连贯动作名 return "选择指令后" end #-------------------------------------------------------------------------- # ● 逃走成功 #-------------------------------------------------------------------------- def run_success case @actor_id when 1 return "逃走" end # 上述主人公ID以外的其他主人公全部使用的连贯动作名 return "逃走" end #-------------------------------------------------------------------------- # ● 逃走失败 #-------------------------------------------------------------------------- def run_ng case @actor_id when 1 return "逃走失败" end # 上述主人公ID以外的其他主人公全部使用的连贯动作名 return "逃走失败" end #-------------------------------------------------------------------------- # ● 胜利 #-------------------------------------------------------------------------- def win case @actor_id when 1 return "胜利" end # 上述主人公ID以外的其他主人公全部使用的连贯动作名 return "胜利" end #-------------------------------------------------------------------------- # ● 进入战斗时的动作 #-------------------------------------------------------------------------- def first_action case @actor_id when 1 return "战斗开始" end # 上述主人公ID以外的其他主人公全部使用的连贯动作名 return "战斗开始" end #-------------------------------------------------------------------------- # ● 动作被中断时的恢复动作 #-------------------------------------------------------------------------- def recover_action case @actor_id when 1 return "坐标复原" end # 上述主人公ID以外的其他主人公全部使用的连贯动作名 return "坐标复原" end #-------------------------------------------------------------------------- # ● 影图像 在人物行走图文件夹中读取 #-------------------------------------------------------------------------- # return "shadow00" ←在这里填入想要设定的话像文件名 def shadow case @actor_id when 1 return "shadow00" end # 上述主人公ID以外的其他主人公全部使用的影图像 return "shadow00" end #-------------------------------------------------------------------------- # ● 略微调整影图像的位置 #-------------------------------------------------------------------------- # return [横坐标, 縦坐标] def shadow_plus case @actor_id when 1 return [ 0, 4] end # 上述主人公ID以外的其他主人公全部使用的位置 return [ 0, 4] end end #============================================================================== # ■ Game_Enemy #------------------------------------------------------------------------------ # 敌方的基本动作设定 #============================================================================== class Game_Enemy < Game_Battler #-------------------------------------------------------------------------- # ● 从敌方ID来确定未装备武器时的通常攻击动作 #-------------------------------------------------------------------------- # when 1 ←这里的数字是敌方ID编号 # return "敌方无武器的攻击" ←请填入对应的连贯动作名 def base_action case @enemy_id when 1 return "敌方无武器的攻击" end # 上述敌方ID以外的其他敌方队员全部使用的武器ID动作 return "敌方无武器的攻击" end #-------------------------------------------------------------------------- # ● 通常待机 #-------------------------------------------------------------------------- def normal case @enemy_id when 1 return "待机" end # 上述敌方ID以外的其他敌方队员全部使用的武器ID动作 return "待机" end #-------------------------------------------------------------------------- # ● 危急(HP1/4以下) #-------------------------------------------------------------------------- def pinch case @enemy_id when 1 return "待机" end # 上述敌方ID以外的其他敌方队员全部使用的武器ID动作 return "待机" end #-------------------------------------------------------------------------- # ● 防御 #-------------------------------------------------------------------------- def defence case @enemy_id when 1 return "防御" end # 上述敌方ID以外的其他敌方队员全部使用的武器ID动作 return "防御" end #-------------------------------------------------------------------------- # ● 伤害 对象动画時、取得命中时的动作 #-------------------------------------------------------------------------- def damage_hit case @enemy_id when 1 return "伤害" end # 上述敌方ID以外的其他敌方队员全部使用的武器ID动作 return "敌伤害" end #-------------------------------------------------------------------------- # ● 回避 对象动画時、取得未命中时的动作 #-------------------------------------------------------------------------- def evasion case @enemy_id when 1 return "敌方回避" end # 上述敌方ID以外的其他敌方队员全部使用的武器ID动作 return "敌方回避" end #-------------------------------------------------------------------------- # ● 逃走 #-------------------------------------------------------------------------- def run_success case @enemy_id when 1 return "敌方逃走" end # 上述敌方ID以外的其他敌方队员全部使用的武器ID动作 return "敌方逃走" end #-------------------------------------------------------------------------- # ● 进入战斗时的动作 #-------------------------------------------------------------------------- def first_action case @enemy_id when 1 return "战斗开始" end # 上述敌方ID以外的其他敌方队员全部使用的武器ID动作 return "战斗开始" end #-------------------------------------------------------------------------- # ● 动作被中断时的恢复动作 #-------------------------------------------------------------------------- def recover_action case @enemy_id when 1 return "坐标复原" end # 上述敌方ID以外的其他敌方队员全部使用的武器ID动作 return "坐标复原" end #-------------------------------------------------------------------------- # ● 影图像 在人物行走图文件夹中读取 #-------------------------------------------------------------------------- # return "shadow01" ←在这里填入想要设定的话像文件名。 def shadow case @enemy_id when 1 return "shadow01" when 30 return "" end # 上述敌方ID以外的其他敌方队员全部使用的武器ID影图像 return "shadow01" end #-------------------------------------------------------------------------- # ● 略微调整影图像的位置 #-------------------------------------------------------------------------- # return [横坐标, 縦坐标] def shadow_plus case @enemy_id when 3 return [ 0, -8] when 301 # 索妮娅 return [ 0, 8] end # 上述敌方ID以外的其他敌方队员全部使用的武器ID位置 return [ 0, 0] end #-------------------------------------------------------------------------- # ● 敌方武器设定 在动作和动画时,武器也被显示。 #-------------------------------------------------------------------------- # return 1 ←这个数字是武器ID。0的话将被判别为空手。 # 只有在敌方动画NO的时候画像才被显示。 def weapon case @enemy_id when 1 return 0 end # 上述敌方ID以外的其他敌方队员全部使用的武器ID return 0 end #-------------------------------------------------------------------------- # ● 战斗配置的略微调整 在这里可以设置数据库中所不能设置的广范围坐标 #-------------------------------------------------------------------------- # return [ 0, 0] => [X坐标、Y坐标] 这个数值从数据库上的配置上变化 def position_plus case @enemy_id when 1 return [0, 0] end # 上述敌方ID以外的其他敌方队员全部使用的武器ID坐标调整 return [ 0, 0] end #-------------------------------------------------------------------------- # ● 敌方击倒(击破时的退场)方式 #-------------------------------------------------------------------------- # 被击倒画像残留的为1、普通为2、BOSS型为3 def collapse_type case @enemy_id when 1 return 2 when 30 #敌方ID为30,BOSS型击倒! return 3 end # 上述敌方ID以外的其他敌方队员全部使用的武器ID击倒方式 return 2 end #-------------------------------------------------------------------------- # ● 敌方行动回数 1回合做几次行动 #-------------------------------------------------------------------------- # 回数 确率 补正 # return [ 2, 100, 50] # # 回数…最大的行动回数 # 确率…下次行动能否成功的成功率。数值为% # 补正…速度修正。行动的每次数值%后得出的值 def action_time case @enemy_id when 1 return [ 1, 100, 100] end # 上述敌方ID以外的其他敌方队员全部使用的武器ID行动回数 return [ 1, 100, 100] end #-------------------------------------------------------------------------- # ● 敌方动画 #-------------------------------------------------------------------------- # 敌方被作成动画? true是是跟主人公同等对待。 # [设定方法] # 1.敌方的动画画像变成行走图 # 2.数据库的敌方角色名、参照着行走图文件名填写 def anime_on case @enemy_id when 1,2 return true end # 上述敌方ID以外的其他敌方队员全部使用的武器ID动画设定 return false end #-------------------------------------------------------------------------- # ● 敌方动画時的自动反转 #-------------------------------------------------------------------------- # 如果想自动反转上面设定为NO的敌方画像和武器动画时为true def action_mirror case @enemy_id when 1,2 return true end # 上述敌方ID以外的其他敌方队员全部使用的武器ID动画设定 return false end end module RPG #============================================================================== # ■ module RPG #------------------------------------------------------------------------------ # 设定状态动作。 #============================================================================== class State #-------------------------------------------------------------------------- # ● 指定ID 根据状态改变通常待机、危急时的动作。 #-------------------------------------------------------------------------- # when 1 ←这个数字是状态ID # return "气绝" ←填入对应的连贯动作名 def base_action case @id when 1 # 无法战斗(HP0)时。最优先。 return "气绝" when 2,3,4,5,7 return "异常状态待机" when 6 return "睡眠待机" when 17 return "漂浮待机" end # 上述状态ID以外的其他状态全部使用的连贯动作 return "待机" end #-------------------------------------------------------------------------- # ● 扩张设定 从状态ID确定扩张设定。可以重复。 #-------------------------------------------------------------------------- # "自动复活/50"…无法战斗时自动复活。不要解除无法战斗。 # /后的数字是回复时的HP(最大值的比例%)回复后状态会自动解除 # "魔法反弹/39"…反弹魔法(物理攻击以外)技能。/后填入反射时显示的动画ID编号 # "物理反弹/39"…反弹物理攻击(包含物理技能)。/后填入反射时显示的动画ID编号 # "魔法无效/39"…魔法(物理攻击以外)技能无效化。/后填入无效时显示的动画ID编号 # "物理无效/39"…物理攻击(包含物理技能)无效化。/后填入无效时显示的动画ID编号 # "成本吸収"…受到技能时将他的成本还原到自身。数值不显示。 # "0回合解除"…按照行动顺序的回合数解除状态。 # "敌方除外"…让敌方不显示这个状态 # "无POP"…附加这个状态時、伤害窗口上不显示状态名 # "不显示ICON"…在状态窗口上不显示状态ICON # "禁止状态动作"…附加这个状态时不会改变人物待机状态 # "连续伤害"…调用下面的连续伤害 # "无"…无扩张 def extension case @id when 1 # 无法战斗 return ["无POP","敌方除外"] when 2 # 毒 return ["敌方除外"] when 218 return ["0回合解除","不显示ICON"] when 219 return ["0回合解除","不显示ICON"] when 220 return ["不显示ICON","禁止状态动作"] end # 上記のID以外すべてに適用される拡張設定 return ["无"] end #-------------------------------------------------------------------------- # ● 连续伤害扩张设置 包含连续回复 #-------------------------------------------------------------------------- # when 1 ←这个数字是状态ID。上面的只有填写了"连续伤害"的扩张才会有这个效果 # 可以多数设置。例)[["hp",0,5,true],["mp",0,5,true]] # # 对象 定数 比例 POP 无法战斗许可 # return [["hp", 0, 10, true, true]] # # 对象…比例伤害对象是 HP的话为"hp" MP为"mp" # 定数…这个数值直接是伤害值。如果是负数时便成为回復。数值上多少会有些误差 # 比例…对象的最大值的比例伤害。数值以%计算。数值上多少会有些误差 # POP…在战斗画面上显示数值是true # 无法战斗许可…许可HP0的情况是true def slip_extension case @id when 2 # 毒 return [["hp", 0, 10, true, true]] end return [] end end #============================================================================== # ■ module RPG #------------------------------------------------------------------------------ # 设置武器动作 #============================================================================== class Weapon #-------------------------------------------------------------------------- # ● 动作指定 从装备着的武器ID来决定通常攻击的动作。 #-------------------------------------------------------------------------- # when 1 ←这个数字是武器ID # return "通常攻击" ←请填入对应的连贯动作名 def base_action case @base_id when 2 return "剑系统攻击动作" when 3 return "枪系统攻击动作" end # 上述ID以外的其他全部使用的动作 return "通常攻击" end #-------------------------------------------------------------------------- # ● 图像指定 从装备着的武器ID来决定通常攻击的动作。 #-------------------------------------------------------------------------- # return "001-Weapon01" ←请填入对应的武器图像的文件名 # 武器图像请放入人物行走图文件夹中 # 使用ICON时、在ID上没有的全部使用ICON来表示 # 特定的武器想要让他们不显示的话请用空白的图像。 def graphic case @base_id when 1 return "" end # 使用上述ID以外的全ICON画像 return "" end #-------------------------------------------------------------------------- # ● 飞出动画中贴附武器图像 自人物行走图文件夹中读取 #-------------------------------------------------------------------------- # 飞出动画用武器画像另行设定。显示弓和箭之类的。 # 在这里没有被设置的武器会和上面的图像作相同处理。 def flying_graphic case @base_id when 1 return "" end # 上述ID以外一律使用的图像 return "" end end #============================================================================== # ■ module RPG #------------------------------------------------------------------------------ # 技能动作设定。 #============================================================================== class Skill #-------------------------------------------------------------------------- # ● 从技能ID决定动作。 #-------------------------------------------------------------------------- def base_action case @id when 84 return "武器投掷" when 86 return "高速多段攻击" when 87 return "单独全体远距离攻击" when 88 return "全体远距离攻击" when 89 return "多段随机攻击" when 90,320,340,341 return "回复连发" when 91 return "适当连发" when 92,255,257,260,266,267,268,269,271,272,273,275,276,277,278,279,280,281,282,283,284,285,287,289,290,291,292,293,295,298,299,300,305,308,309,312,313,314,315,316,319,322,323,324,325,326,329,330,331,334,337,338,339,342,343,344,345,347,349,351,352,356,357,359,360,362,363,364,365,366,368,369,371,372,373,374,375,376,377,378,379,380,381 return "通常攻击" when 93 return "特写" when 94 return "踩踏攻击" when 95,262 return "全体攻击1" when 96,256,261,270,274,286,288,294,296,297,301,302,303,306,307,310,311,317,318,321,327,328,335,336,346,348,350,358,361,367,370,382,383,384 return "通用技能单独处理" when 97 return "变身成猫" when 98 return "二人同時攻击" when 99 return "二人同時攻击准备" when 100 return "四人同時攻击" when 101 return "四人同時攻击准备" when 102 return "四人同時攻击准备" when 103 return "四人同時攻击准备" when 104 return "人体投掷" when 201,253,255,256,257,259,260,263,264,265,266,267,268,269,270,271,273,274,275,276,277,278,279,280,281,283,284,285,287,288,289,290,291,293,295,297,298,299,300,301,304,305,308,309,312,316,322,323,324,325,326,287,334,337,338,339,342,343,344,345,347,349,351,352,353,355,356,357,359,360,362,363,364,365,366,368,369,371,372,373,374,375,376,377,378,379,380,381 return "敌方无武器的攻击" when 251 return "幻鬼之阵(敌)" when 252 return "终末之冬(敌)" when 34,251,252,254,256,258,261,262,272,282,286,292,294,296,302,303,306,307,310,311,317,318,328,331,346,348,350,354,358,361,367,370,382,383,384 return "敌方使用技能" end # 上述ID以外的其他全部使用的动作 return "使用通用技能" end #-------------------------------------------------------------------------- # ● 扩张设定 从技能ID决定扩张设定。可以重复。 #-------------------------------------------------------------------------- # "必中"…攻击绝对不会被回避 # "HP消費"…将MP消费改为HP消费 # "%成本MAX"…技能成本变为以最大MP(HP)的比例取值。例)MAXMP500的成本10是消费MP50 # "%成本NOW"…技能成本变为以现在MP(HP)的比例取值。例)现MP100的成本10是消费MP10 # "无视反射"…无视魔法、物理技能反射和无效化状态 # "%伤害MAX/30"…伤害计算变为以对象的最大HP(MP)的比例取值。/后的数值为%值伤害 # "%伤害NOW/30"…伤害计算变为以对象的现在HP(MP)的比例取值。/后的数值为%值伤害 # "成本威力"…根据使用者的最大MP(HP)判别消費MP(HP)的比例威力。MAX消費是原本威力、MAX10%是原有威力的1/10 # "现HP威力"…根据使用者的最大HP改变现在HP的比例威力。MAX是原本威力、MAX10%是原有威力的1/10 # "现MP威力"…根据使用者的最大MP改变现在MP的比例威力。MAX是原本威力、MAX10%是原有威力的1/10 # "MP消耗减半无效"…防具上的定义「MP消耗减半」被无效化 # "不显示HELP"…动作时、帮助窗口上不显示技能名 # "全区域"…目标范围为敌我方全体 # "随机目标"…目标内随机选择一个对象 # "自身以外"…在目标内将自己排除 # "伤害动作禁止"…不显示伤害命中时的动作 # "行动前无闪光"…行动时角色不发光 # "无"…无扩张 def extension case @id when 86 return ["伤害动作禁止"] when 89 return ["随机目标"] when 94 return ["伤害动作禁止"] when 96 return ["全域"] when 98 return ["伤害动作禁止"] when 99 return ["不显示HELP","行动前无闪光"] when 100 return ["伤害动作禁止"] when 101 return ["不显示HELP","行动前无闪光"] when 102 return ["不显示HELP","行动前无闪光"] when 103 return ["不显示HELP","行动前无闪光"] end # 上述ID以外的其他全部使用的拡張設定 return ["无"] end #-------------------------------------------------------------------------- # ● 飞出动画上贴附的画像 自人物行走图文件夹中读取 #-------------------------------------------------------------------------- # 指定技能ID的画像 def flying_graphic case @id when 1 return "" end # 上述ID以外为画像未使用 return "" end end #============================================================================== # ■ module RPG #------------------------------------------------------------------------------ # 物品动作设定。 #============================================================================== class Item #-------------------------------------------------------------------------- # ● 根据物品ID决定动作。 #-------------------------------------------------------------------------- def base_action case @id when 1 return "使用物品" end # 上述ID以外的其他全部使用的动作 return "使用物品" end #-------------------------------------------------------------------------- # ● 扩张设定 根据物品ID决定扩张设定。可以重复。 #-------------------------------------------------------------------------- # "必中"…攻击绝对不会被回避 # "反射无视"…无视魔法、物理反射和无效化状态 # "不显示HELP"…帮助窗口上不显示物品名 # "全区域"…目标范围为敌我全体 # "随机目标"…目标内中随机选择一个对象 # "自身以外"…目标内中将自身排除 # "伤害动作禁止"…不显示伤害命中时的动作 # "行动前无闪光"…行动时角色不发光 # "无"…无扩张 def extension case @id when 1 return ["无"] end # 上述ID以外的其他全部使用的拡張設定 return ["无"] end end end #============================================================================== # Learn Skills By Use # Version: 2.0b # Author: modern algebra (rmrk.net) # Date: October 29, 2010 #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # NB: If you wish to use the learn immediately option of the script, then # Zeriab's Dialog System is required and he should be credited. You can find # it here: http://rmrk.net/index.php/topic,24828.0.html #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # Description: # # This script allows you to have actors learn skills by using other skills. # For instance, you could set it so that an actor will learn Fire II only # after he has used Fire 50 times. You can also set it so that there can be # multiple paths to learning a skill and multiple skill requirements. For # instance, that same actor could also learn Fire II if he has used Flame # 60 times and Flame II 25 times. However, you can also set class # prohibitions and level requirements, so if you never want a Paladin to # learn Fire II no matter how many times he uses its root skills, then it is # easy to set that up, and if you don't want Fire II to be learned by any # actor until they are at least level 7, then that can be setup too. You may # also set it up so that it is like an upgrade - Fire becomes obsolete once # Fire II is learned, and so you can simply forget Fire once you have Fire II # It also has two options of ways to show the number of times you've used a # skill. # # Also, you can set it so that the actor either learns the new skill # immediately upon meeting use requirements, or at his/her next level. # # Further, this doesn't interfere with the regular skill learning system, so # if you set it that a mage will learn Fire II at level 6 in the Class Tab # of the database, than the mage will learn Fire II at level 6 no matter if # she has met the use requirements of its root skills, and no matter what # the class prohibitions or level requirements are. # # There are also a number of options you can set regarding how to show the # number of uses in the help window, and you can do it by either pressing a # button or it will show up at the same time as the description. There is # also a new set of mastery options. #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # Instructions: # # Place this script above Main and below Materials in the Editor. It should # also be below any custom levelup scripts you may have. If set to learn # immediately, then Zeriab's Dialog System is required above this script: # http://rmrk.net/index.php/topic,24828.0.html # # To set up a skill to be learned through use, you must use this code in a # notes box: # # \ROOT_SKILL[skill_id, number_of_uses, <supplement_skills>, forget] # skill_id : The ID of the root skill that leads to this skill. # number_of_uses : An integer - the number of times the root skill has # be used before it teaches this skill. # <supplement_skills> : a list of skill IDs that also have to have their # root requirements fulfilled before the skill will be learned. It is # of the format: <x, y, z> where x, y, and z are the IDs of the other # skills that must have usage requirements met. You can have as many # as you like. Note, however, that you must set up one of these # requirements notes for each of the other skills as well, and you # must cross-reference the skills in this path. Defaults to <>, # meaning that the only usage requirements needed to be filled is this # one # forget : If this is set to 1, then the root skills will be forgotten # once this skill is learned. If left blank or set to any other digit, # than the root skills will be retained. # # EXAMPLE A: # # This code in the notebox of a skill: # # \ROOT_SKILL[9, 100] # # There is only one path to learning this skill: # (i) Use the skill with ID 9 at least 100 times. # # No skill is forgotten # # EXAMPLE B: # # These codes in the notebox of a skill: # # \ROOT_SKILL[1, 20, 1] # \ROOT_SKILL[4, 15, <5>] # \ROOT_SKILL[5, 8, <4>] # # With these codes, there are two paths to learning this skill. # (i) Use the skill with ID 1 at least 20 times. # (ii) Use the skill with ID 4 at least 15 times and use the skill with # ID 5 at least 8 times. # # No matter which path is taken to the skill, the skill with ID 1 will be # forgotten as soon as the new skill is learned. # # EXAMPLE C: # # The following codes in the notebox of a skill: # # \ROOT_SKILL[6, 100] # \ROOT_SKILL[7, 100] # \ROOT_SKILL[6, 20, <7, 8>] # \ROOT_SKILL[7, 25, <6, 8>] # \ROOT_SKILL[8, 15, <6, 7>] # # With these codes, there are three paths to learning this skill. # (i) Use the skill with ID 6 at least 100 times # (ii) Use the skill with ID 7 at least 100 times # (iii) Use the skill with ID 6 at least 20 times, the skill with ID 7 at # least 25 times, and the skill with ID 8 at least 15 times. # # No matter which path is taken, no skills will be forgotten. # # To prohibit a class from learning a skill through usage requirements, # put this code in a notebox of a skill: # # \PROHIBIT_CLASS[class_id] # class_id : ID of class not allowed to learn this skill through use # # To set a minimum level for learning a skill through usage requirements, # put this code in the notebox of a skill: # # \MIN_LEVEL[x] # x : an integer that is the minimum level. An actor cannot learn # the skill until his level is at least equal to x. # # Next, you may want to setup if and how the use count is displayed. To, set the text that you # want to signify the count under LSU_VOCAB_USECOUNT at line 159, and you can # set the color of the text at line 165 - LSU_COUNT_FONTCOLOR. If this is an # integer, it takes the color from the windowskin palette. You could also set # it as an array of the form: [red, green, blue, alpha]. # Alternatively, you could set it up to only show the skill count if the # player presses a specified button. You would not get to choose the color in # that case, but would get to specify alignment. # # Lastly, there is now an option to show "Mastery". You can specify a number # of uses to meet this threshold. When showing use count, it will show up as # # of uses / mastery threshold, and once reached, it will be replaced by any # text you choose. Those options are between lines 162 and 168. To set the # threshold for a skill individually, use the following code: # \MASTER[x] # x : the number of uses to reach mastery. #============================================================================== #\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ # EDITABLE REGION #|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| LSU_LEARN_IMMEDIATELY = true # Whether to learn the skill immediately upon # meeting usage requirements or to wait for level # If true, you MUST have Zeriab's Dialog System: # http://rmrk.net/index.php/topic,24828.0.html LSU_VOCAB_OBTAIN_SKILL = "%n has learned %s!" # The message shown when an actor # learns a new skill if immediate and not on level LSU_SE_OBTAIN_SKILL = "Skill" # The SE that plays when an actor learns a new # skill. Again, only applies if on immediate. #`````````````````````````````````````````````````````````````````````````````` LSU_SHOW_USE = false # Whether or not to show use count at all in the # the help window. LSU_VOCAB_USECOUNT = "Used: " # Text to label skill count LSU_BUTTONSHOW = false # Whether or not it shows up with the description # or is drawn only when pressing a button LSU_BUTTON = Input::SHIFT # If LSU_BUTTONSHOW is true, what button needs to # be pressed to show the skill use count LSU_SHOWCOUNT_ALIGN = 0 # Alignment of text if LSU_BUTTONSHOW is true LSU_COUNT_FONTCOLOR = 16 # Font color if LSU_BUTTONSHOW is false #`````````````````````````````````````````````````````````````````````````````` LSU_SHOW_MASTERY = true # Whether or not to show some the word for mastery # when a script has been used to its maximum # efficiency or to a stated goal. LSU_DEFAULT_MASTERY = 100 # The default number of uses for mastery LSU_VOCAB_MASTERY = "[MASTERED]" # The word to show once skill use reaches goal LSU_MASTER_REPLACE = true # Whether to replace the Used: x text or simply be # placed after it. #|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| # END EDITABLE REGION #////////////////////////////////////////////////////////////////////////////// if LSU_LEARN_IMMEDIATELY #============================================================================== # ** Dialog_DiscoverFavourite #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # This class processes when a favourite item is discovered #============================================================================== class Dialog_LearnSkill < Dialog #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * A show method #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def initialize(actor, skill) @actor = actor @skill = skill begin (RPG::SE.new (*skill.ma_learn_se)).play rescue (RPG::SE.new ("Skill")).play end end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Create the windows #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def main_window text = help_text tw = [@background_sprite.bitmap.text_size (text).width + 32, Graphics.width].min @learn_window = Window_Help.new @learn_window.width = tw @learn_window.create_contents @learn_window.x = (Graphics.width - tw) / 2 @learn_window.y = (Graphics.height - @learn_window.height) / 2 @learn_window.z = STARTING_Z_VALUE + 1 @learn_window.set_text (text, 1) end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Help Text #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def help_text text = LSU_VOCAB_OBTAIN_SKILL.gsub (/%s/) { @skill.name } text.gsub! (/%n/) { @actor.name } return text end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Dispose the windows #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def main_dispose @learn_window.dispose end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Frame Update #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def update if Input.trigger?(Input::B) || Input.trigger?(Input::C) mark_to_close self.value = false end end end end #============================================================================== # ** Skill #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # Summary of Changes: # new public variables - ma_root_skills; ma_descendant_skills; # ma_level_requirement; ma_prohibited classes # new methods - ma_learn_se; ma_cache_lsu_skill_stats #============================================================================== class RPG::Skill #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Public Instance Variables #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ attr_accessor :ma_root_skills attr_accessor :ma_descendant_skills attr_accessor :ma_level_requirement attr_accessor :ma_prohibited_classes attr_accessor :ma_master_uses #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Learn SE #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def ma_learn_se # Not cached because it will only rarely be accessed. Better to use RAM if self.note[/\\LEARN_SE\[(.+?),?\s*(\d*?),?\s*(\d*?)\]/i] != nil learn_se = [$1.to_s] learn_se.push ($2.to_i) unless $2.empty? learn_se.push ($3.to_i) unless $3.empty? else return LSU_SE_OBTAIN_SKILL end end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Cache LSU stats #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def ma_cache_lsu_skill_stats # Get skill paths and descendants @ma_root_skills, @ma_prohibited_classes = [], [] @ma_descendant_skills = [] if @ma_descendant_skills.nil? @ma_master_uses, @ma_level_requirement = LSU_DEFAULT_MASTERY, 1 # Level Requirements @ma_level_requirement = $1.to_i if self.note[/\\MIN_LEVEL\[(\d+)\]/i] != nil @ma_master_uses = $1.to_i if self.note[/\\MASTERY?\[(\d+)\]/i] != nil && $1.to_i > 0 root_paths = {} root_skills = [] (self.note.scan (/\\ROOT_SKILL\[(\d+),?\s*(\d*),?\s*?<?([\d ,;:]*?)>?,?\s*?([F1]?)\]/i)).each { |match| id = match[0].to_i n = match[1].to_i supplement_skills = [] (match[2].scan (/\d+?/)).each { |id2| supplement_skills.push (id2.to_i) } unless match[2].empty? forget = !match[3].empty? root_skills.push ([id, n, forget, supplement_skills]) } root_skills.each { |array| key = ([array[0]] + array[3]).sort root_paths[key] = [] if !root_paths[key] root_paths[key].push (array[0, 3]) } root_paths.each { |key, path| if path.size < key.size key.each { |key2| exists = false path.each { |array| exists = true if path[0] == key2 } path.push ([key2, 0, false]) if !exists } end path.sort! { |a, b| a[0] <=> b[0] } @ma_root_skills.push (path) } @ma_root_skills.each { |path| path.each { |d_id, n, forget| $data_skills[d_id].ma_descendant_skills = [] if $data_skills[d_id].ma_descendant_skills.nil? d_skills = $data_skills[d_id].ma_descendant_skills d_skills.push (self.id) unless d_skills.include? (self.id) } } # Prohibited Classes (self.note.scan (/\\PROHIBIT_CLASS\[(\d+)\]/i)).each { |id| @ma_prohibited_classes.push (id[0].to_i) } end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Compatibility with Note Editor + General Compatibility Patch #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if self.method_defined? (:ma_reset_note_values) alias malg_lsu_rsetnote_8uk2 ma_reset_note_values def ma_reset_note_values (*args) malg_lsu_rsetnote_8uk2 (*args) # Run Original Method @ma_root_skills.each { |path| path.each { |a| $data_skills[a[0]].ma_descendant_skills.delete (self.id) } } ma_cache_lsu_skill_stats # Recache skill stats for LSU end end end #============================================================================== # ** Game_Actor #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # Summary of Changes: # aliased method - initialize; level_up # new method - lsu_skill_requirements_met?; learn_skill_by_use; skill_count; # increase_skill_count; skill_mastered? #============================================================================== class Game_Actor #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Object Initialization #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alias modalg_brnchskill_stp_1xc3 setup def setup (*args) @lsbu_skill_count = [] # Run Original Method modalg_brnchskill_stp_1xc3(*args) end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Level Up #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alias malg_skl_brnches_byuse_lvlplus_0kb2 level_up def level_up (*args) # Run Original Method malg_skl_brnches_byuse_lvlplus_0kb2 (*args) # Check all skills to see if requirements have been met to learn the skill skills.each { |skill| skill.ma_descendant_skills.each { |descendant_id| descen = $data_skills[descendant_id] if [email protected]? (descen.id) && lsu_skill_requirements_met? (descen) # Learn Skill learn_skill_by_use (descen.id) end } } end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Check if this actor meets requirements to learn skill #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def lsu_skill_requirements_met? (skill) return false if skill.ma_prohibited_classes.include? (@class_id) return false if @level < skill.ma_level_requirement skill.ma_root_skills.each { |path| path_complete = true path.each { |reqs| if skill_count (reqs[0]) < reqs[1] path_complete = false break end } return true if path_complete # If all requirements met } return false end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Learn Skill By Use #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def learn_skill_by_use (skill_id) forgets = [] $data_skills[skill_id].ma_root_skills.each { |path| path.each { |reqs| forgets.push (reqs[0]) if reqs[2] } } forgets.each { |forget_id| forget_skill (forget_id) } learn_skill (skill_id) end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Retrieve Skill Count # skill_id : ID of skill checked #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def skill_count (skill_id) @lsbu_skill_count[skill_id] = 0 if @lsbu_skill_count[skill_id].nil? return @lsbu_skill_count[skill_id] end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Increase Skill Count # skill_id : ID of skill increased #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def increase_skill_count (skill_id) @lsbu_skill_count[skill_id] = skill_count (skill_id) + 1 end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Skill Mastered? #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def skill_mastered? (skill) return skill_count (skill.id) >= skill.ma_master_uses end end #============================================================================== # ** Window_Help #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # Summary of Changes: # new method - lsu_set_secondary_text #============================================================================== class Window_Help #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Set Secondary Text #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def lsu_insert_secondary_text (text, align = 2) # Check if real text has changed if (@lsu_changed_text != @text) || (@lsu_changed_align != @align) if LSU_COUNT_FONTCOLOR.is_a? (Integer) self.contents.font.color = text_color (LSU_COUNT_FONTCOLOR) else self.contents.font.color = Color.new (*LSU_COUNT_FONTCOLOR) end self.contents.draw_text(4, 0, self.width - 40, WLH, text, align) @lsu_changed_text, @lsu_changed_align = @text, @align end end end #============================================================================== # ** Window_Skill #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # Summary of Changes: # aliased method - update_help #============================================================================== class Window_Skill #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Update Help Text #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alias ma_lsu_updhelp_uses_8kh2 update_help def update_help (*args) if LSU_BUTTONSHOW if Input.press? (LSU_BUTTON) && @actor @help_window.set_text (ma_use_text, LSU_SHOWCOUNT_ALIGN) else ma_lsu_updhelp_uses_8kh2 (*args) end else ma_lsu_updhelp_uses_8kh2 (*args) return unless @actor && skill @help_window.lsu_insert_secondary_text (ma_use_text) end end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Get Use Text #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def ma_use_text add = "" if LSU_SHOW_MASTERY if @actor.skill_mastered? (skill) return LSU_VOCAB_MASTERY if LSU_MASTER_REPLACE add = LSU_VOCAB_MASTERY else add = " / #{skill.ma_master_uses}" end end return LSU_VOCAB_USECOUNT + @actor.skill_count(skill.id).to_s + add end end #============================================================================== # ** Scene_Base #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # Summary of Changes: # new method - lsu_advance_skill_count #============================================================================== class Scene_Base #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Advance Skill Count #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def lsu_advance_skill_count (user, skill) # Increase skill count user.increase_skill_count (skill.id) if LSU_LEARN_IMMEDIATELY new_skills = [] skill.ma_descendant_skills.each { |descendant_id| descendant = $data_skills[descendant_id] # Check requirements if !user.skill_learn? (descendant) && user.lsu_skill_requirements_met? (descendant) new_skills.push (descendant) end } for new_skill in new_skills user.learn_skill_by_use (new_skill.id) Dialog_LearnSkill.show (user, new_skill) end end end end #============================================================================== # ** Scene_Title #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # Summary of Changes: # aliased methods - load_database; load_bt_database #============================================================================== class Scene_Title #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Load Database #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alias malsu_lddata_5yj7 load_database def load_database (*args) malsu_lddata_5yj7 (*args) # Run Original Method $data_skills.each { |skill| skill.ma_cache_lsu_skill_stats if !skill.nil? } end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Load Battle Test Database #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alias malg_lsu_btdat_6yh1 load_bt_database def load_bt_database (*args) malg_lsu_btdat_6yh1 (*args) # Run Original Method $data_skills.each { |skill| skill.ma_cache_lsu_skill_stats if !skill.nil? } end end #============================================================================== # ** Scene_Skill #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # Summary of Changes: # aliased method - use_skill_nontarget #============================================================================== class Scene_Skill #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Use Skill Nontarget #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alias ma_lsu_uskll_7uj2 use_skill_nontarget def use_skill_nontarget (*args) ma_lsu_uskll_7uj2 (*args) # Run Original Method lsu_advance_skill_count (@actor, @skill) # Advance Skill Count end end #============================================================================== # ** Scene Battle #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # Summary of Changes: # aliased methods - execute_action_skill #============================================================================== class Scene_Battle #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Execute Skill #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alias mdrnalg_exctskl_lsbu_4nv2 execute_action_skill def execute_action_skill (*args) mdrnalg_exctskl_lsbu_4nv2 (*args) # Run Original Method # Increase User's skill count if actor lsu_advance_skill_count (@active_battler, @active_battler.action.skill) if @active_battler.actor? end end |
目测问题是不显示技能名? learn skill by use是技能的熟练度脚本,不会对sideview造成影响。 问题应该出在sideview的help_window里 |
看到你的截图我瞬间无语…… 你光说脚本的名字别人怎么知道是啥脚本,把脚本扔出来啊 |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-12-23 06:40
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.