qq634488405 发表于 2022-5-20 11:02
# 捕捉系统设置
module BUZHUO_BABY
ACID = {1=>[a,b,c,d,e...],
qq634488405 发表于 2022-5-20 11:02
# 捕捉系统设置
module BUZHUO_BABY
ACID = {1=>[a,b,c,d,e...],
#============================================================================== # ■ Scene_Battle (分割定义 4) #------------------------------------------------------------------------------ # 处理战斗画面的类。 #============================================================================== class Scene_Battle #====================================================== # 【捕捉系统】 # 生成提示窗口 alias bnzz main def main @tip_window = Window_Tip1.new bnzz @tip_window.dispose end alias tgbmj update def update @tip_window.update tgbmj end def make_buzhuo_action_result # 捕捉 # 设置动画ID @animation1_id = BUZHUO_BABY::ANI[@active_battler.id][0] @animation2_id = BUZHUO_BABY::ANI[@active_battler.id][1] # 法术值消耗 if @active_battler.sp - BUZHUO_BABY::COMP >= 0 @active_battler.sp -= BUZHUO_BABY::COMP end # 应用动画 index = @active_battler.current_action.target_index en = $game_troop.smooth_target_enemy(index) @target_battlers = [en] # 帮助窗口显示"捕捉" @help_window.set_text(@active_battler.name + "发动了捕捉", 1) # 队伍中的宠物 acca = [] for i in $game_party.actors acca += i.kds_baby end # 限制处理 if @active_battler.kds_baby.size >= 8 # 测试用,身上8只宠物【仓库满】 @active_battler.damage = "!c[4]" + @active_battler.name + "!c[6]携带的宠物已满!无法继续捕捉!c[2]" + en.name+"!c[6]!" @phase4_step = 3 return elsif @active_battler.sp < BUZHUO_BABY::COMP #【MP不足】 @active_battler.damage = "!c[4]" + @active_battler.name + "!c[6]的!c[1]MP!c[6]不足!无法捕捉!c[2]" + en.name+"!c[6]!" @phase4_step = 3 return elsif BUZHUO_BABY::LV[en.id] > @active_battler.level#【等级不够】 @active_battler.damage = "!c[4]" + @active_battler.name + "!c[6]的等级低于!c[2]"+BUZHUO_BABY::LV[en.id].to_s+"!c[6]无法捕捉!c[2]" + en.name+"!c[6]!" @phase4_step = 3 return elsif BUZHUO_BABY::UNENID.include?(en.id)#【无效目标】 @active_battler.damage = "!c[4]" + @active_battler.name + "!c[6]无法捕捉该目标!c[2]" + en.name+"!c[6]!" @phase4_step = 3 return elsif acca.include?(BUZHUO_BABY::ACID[en.id])#【无效目标】 @active_battler.damage = "!c[2]" + en.name + "!c[6]已经在队伍中的召唤兽!" @phase4_step = 3 return end # 突破限制捕捉处理 if rand(10 + 100 * en.hp / en.maxhp) < BUZHUO_BABY::PC[@active_battler.id] @active_battler.damage = "!c[6]恭喜!c[4]"+@active_battler.name+"!c[6]成功捕获了!c[2]"+en.name+"!c[6]作为召唤兽!" #获得宠物 # @active_battler.kds_baby.push(BUZHUO_BABY::ACID[en.id]) # $game_actors[BUZHUO_BABY::ACID[en.id]].zhuren = @active_battler.id #获得宠物 BUZHUO_BABY::ACID[en.id].each do |i| unless @active_battler.kds_baby.include?(i) @active_battler.kds_baby.push(i) $game_actors[i].zhuren = @active_battler.id break end end # 在update_phase4_step5中让其死亡,被捕捉标志 en.damage = "捕捉" else @active_battler.damage = "!c[2]" + en.name+"!c[6]十分机智的逃脱了!c[4]"+@active_battler.name+"!c[6]的捕捉!" end end
黑米馒头 发表于 2022-5-20 17:32
应该是上次卡了,问题没打全,现在写全了,你帮我看看
qq634488405 发表于 2022-5-20 22:33
意思是捕捉8号后添加到$game_party,放在80-100的空位?
黑米馒头 发表于 2022-5-20 22:38
是的,8号是个例子,后面还要设置好多宠物,因为我这个宠物系统,里面的宠物等同于角色,同个ID的宠物又 ...
qq634488405 发表于 2022-5-21 00:50
那这个捕捉系统要大改,ACID单对多ACID[en.id]的类型是数组,而原脚本ACID[en.id]是数字,所有用到这个的 ...
# 捕捉系统设置 module BUZHUO_BABY UNENID = [1,2,9,10] # 不可以捕捉的敌人id COMP = 20 # 消耗MP LV = [] # 敌人等级 LV[敌人ID] = 等级 LV[1] = 1 LV[2] = 1 LV[8] = 1 LV[9] = 10 LV[10] = 1 PC = [] # 成功概率 PC[角色id] = 概率 PC[1] = 100 PC[2] = 100 PC[3] = 100 PC[4] = 100 PC[5] = 100 ANI = [] # 动画 ANI[角色id] = [我方动画id, 敌方动画id] ANI[1] = [136, 69] ANI[2] = [70, 69] ANI[3] = [70, 69] ANI[4] = [70, 69] ANI[5] = [70, 69] ACID = [] # 敌人对应相应的角色 ACID[敌人id] = 角色id ACID[8] = 51 end
qq634488405 发表于 2022-5-21 09:42
elsif acca.include?(BUZHUO_BABY::ACID[en.id])#【无效目标】
@active_battler.damage = "!c[2] ...
qq634488405 发表于 2022-5-21 09:56
elsif acca & BUZHUO_BABY::ACID[en.id] != nil
qq634488405 发表于 2022-5-21 10:13
这个是有任意一个对应ID在队伍就不行,要全部都在队伍就不能捕捉那就是
elsif acca & BUZHUO_BABY::ACID[en ...
qq634488405 发表于 2022-5-21 11:08
原来的判断是单个角色单独判断是否有ID
#获得宠物
BUZHUO_BABY::ACID[en.id].each do |i|
qq634488405 发表于 2022-5-21 16:44
改成acca还有BUG?
黑米馒头 发表于 2022-5-21 18:20
Bug:现在数组里的宠物全在队伍里了,也能继续捕捉
# 已经在队伍的情况
qq634488405 发表于 2022-5-21 23:45
acca是所有角色宠物总集合。acca & BUZHUO_BABY::ACID[en.id]返回的是角色宠物总集合与敌人对应ID的交集 ...
1.35 MB, 下载次数: 2
黑米馒头 发表于 2022-5-22 00:22
这是范例,你进去看下,用1个角色捕捉宠物的话,捕捉玩3只就不能捕捉了,但是你如果用别的角色去捕捉,就 ...
qq634488405 发表于 2022-5-22 23:13
知道原因了,因为不同角色捕捉的顺序不同,导致即便抓满了acca & BUZHUO_BABY::ACID[en.id]的结果顺序不 ...
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |