| 赞 | 5 |
| VIP | |
| 好人卡 | |
| 积分 | 39 |
| 经验 | |
| 最后登录 | 2026-8-3 |
| 在线时间 | 1899 小时 |
- 梦石
- 0
- 星屑
- 3850
- 在线时间
- 1899 小时
- 注册时间
- 2010-6-19
- 回帖
- 917
|
楼主 |
发表于 2022-5-20 22:29:17
|
显示全部楼层
发现1个问题,我把敌人数组改成 ACID = {8=>[51,52,53]} ,3个宠物ID
然后捕捉的时候队伍里设置2个角色,当角色1和2同时捕捉敌人1的时候,
会同时出现捕捉数组里面同1个宠物的情况,如何改成,同时捕捉同1个敌人的时候,
宠物在队里了,就去除一个ID,比如1先行动,捕捉敌人,然后51号宠物入队了,
2号捕捉的时候只能捕捉其它两只,当这个数组里面的所有宠物都被捕捉了,
然后再次去捕捉改敌人的时候,就显示,无法继续捕捉该宠物了
下面是我的捕捉系统
[pre lang="ruby"]#==============================================================================
# ■ 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.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
[/pre] |
|