设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索

请问有没有能让敌人无法被玩家选中的脚本

查看数: 284 | 评论数: 3 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2024-9-15 14:07

正文摘要:

想做一种不会被玩家选中的敌人,但是群体技能和随机目标的技能还是可以打到这个敌人,敌群中的其他敌人也可以正常地对这个敌人使用各种辅助技能。 还想做一个这样的状态,敌人附加这个状态也能有这种效果 ...

回复

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

点评

全局搜索@enemy_window,截图给我看一下  发表于 2024-9-15 16:11
可以了,我放到最下面就有效了  发表于 2024-9-15 16:09
先只用上半测试一下看看  发表于 2024-9-15 16:02
魔法丶小肉包 发表于 2024-9-15 15:35:42
你需要的两个功能分割开来了,上半是敌人自带,下半是状态附加,可以只用上半部分,也可以都用,但不能只用下半部分(上半的是基础脚本)
使用方法:
数据库-敌人-备注写<不可选中>,该敌人就是永久不可选中的
数据库-状态-备注写<不可选中>,敌人附加该状态后状态持续时间内变为不可选中

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

评分

参与人数 1+1 收起 理由
tuifeiheihu + 1 认可答案

查看全部评分

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-22 01:22

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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