Project1

标题: 请问有没有能让敌人无法被玩家选中的脚本 [打印本页]

作者: tuifeiheihu    时间: 2024-9-15 14:07
标题: 请问有没有能让敌人无法被玩家选中的脚本
想做一种不会被玩家选中的敌人,但是群体技能和随机目标的技能还是可以打到这个敌人,敌群中的其他敌人也可以正常地对这个敌人使用各种辅助技能。
还想做一个这样的状态,敌人附加这个状态也能有这种效果
作者: 魔法丶小肉包    时间: 2024-9-15 15:35
你需要的两个功能分割开来了,上半是敌人自带,下半是状态附加,可以只用上半部分,也可以都用,但不能只用下半部分(上半的是基础脚本)
使用方法:
数据库-敌人-备注写<不可选中>,该敌人就是永久不可选中的
数据库-状态-备注写<不可选中>,敌人附加该状态后状态持续时间内变为不可选中

RUBY 代码复制
  1. #敌人自带不可选中
  2. class RPG::Enemy
  3.   def can_select?
  4.     !@note.include?("<不可选中>")
  5.   end
  6. end
  7. class Window_BattleEnemy
  8.   def item_max
  9.     $game_troop.alive_select_members.size
  10.   end
  11.   def enemy
  12.     $game_troop.alive_select_members[@index]
  13.   end
  14.   def draw_item(index)
  15.     change_color(normal_color)
  16.     name = $game_troop.alive_select_members[index].name
  17.     draw_text(item_rect_for_text(index), name)
  18.   end
  19. end
  20. class Game_Troop
  21.   def alive_select_members
  22.     members.select {|member| member.alive? && member.enemy.can_select?}
  23.   end
  24. end
  25. class Scene_Battle
  26.   alias mf240915on_enemy_ok on_enemy_ok
  27.   def on_enemy_ok
  28.     return @enemy_window.activate unless @enemy_window.enemy
  29.     mf240915on_enemy_ok
  30.   end
  31. end
  32. #——————————————————————————————————
  33. #不可选中的状态
  34. class Game_Enemy
  35.   def add_state(state_id)
  36.     if state_addable?(state_id)
  37.       add_new_state(state_id) unless state?(state_id)
  38.       reset_state_counts(state_id)
  39.       @result.added_states.push(state_id).uniq!
  40.       change_select(false) if $data_states[state_id].note.include?("<不可选中>")
  41.     end
  42.   end
  43.   def remove_state(state_id)
  44.     if state?(state_id)
  45.       revive if state_id == death_state_id
  46.       erase_state(state_id)
  47.       refresh
  48.       @result.removed_states.push(state_id).uniq!
  49.       change_select(true) if $data_states[state_id].note.include?("<不可选中>")
  50.     end
  51.   end
  52.   def change_select(can_select)
  53.     can_select ? enemy.note.sub!(/<不可选中>/,'') : enemy.note += "<不可选中>"
  54.   end
  55. end

作者: tuifeiheihu    时间: 2024-9-15 16:00
在新建的项目里测试可行,但是我放在做的游戏里就没效果了,应该是和别的哪一个脚本冲突了,可惜了
作者: tuifeiheihu    时间: 2024-9-15 16:22






欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1