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

Project1

 找回密码
 注册会员
搜索
查看: 270|回复: 7
打印 上一主题 下一主题

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

[复制链接]

Lv3.寻梦者

梦石
0
星屑
994
在线时间
89 小时
注册时间
2022-3-19
帖子
59
跳转到指定楼层
1
发表于 2024-9-15 14:07:55 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

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

Lv4.逐梦者

梦石
0
星屑
6260
在线时间
1481 小时
注册时间
2015-7-25
帖子
652

开拓者

2
发表于 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 认可答案

查看全部评分

笨肉包的首款像素OC游戏《花城梦之心》尝试制作中~
目前的坑 【不可思议的迷宫】幽灵契约外传:歌莉娅
持续更新中~ 当前进度 v0.28
大版本更新时才会更新网盘文件,预计下次大版本更新:v0.30
完成度:
主线 15% 支线 0% 数据库 6% 系统 86% 美术 6%
两边同时填坑~
( 这里是笨肉包~专修魔法!目标是大魔法师!
( 坑太大啦,一个人填不完啦hhh 一定会填完的嗯...
( 每天都和bug们比试魔力~吾之魔法将扫平一切!
( 弱点是美术,魔法修行之余再补补课吧~
( 哼哼哼~这便是魔法的力量!
大家都离开啦,笨肉包也不知道还能坚持多久呀...
这是属于笨肉包一个人的旅行(再见了...蚊子湯,七重酱,笨肉包永远想你们!TwT
回复 支持 1 反对 0

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
994
在线时间
89 小时
注册时间
2022-3-19
帖子
59
3
 楼主| 发表于 2024-9-15 16:00:19 | 只看该作者
在新建的项目里测试可行,但是我放在做的游戏里就没效果了,应该是和别的哪一个脚本冲突了,可惜了

点评

全局搜索@enemy_window,截图给我看一下  发表于 2024-9-15 16:11
可以了,我放到最下面就有效了  发表于 2024-9-15 16:09
先只用上半测试一下看看  发表于 2024-9-15 16:02
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
994
在线时间
89 小时
注册时间
2022-3-19
帖子
59
4
 楼主| 发表于 2024-9-15 16:22:12 | 只看该作者

点评

可以用就好啦,我以为不能用所以要看搜索结果来排查无效的原因  发表于 2024-9-15 16:25
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2024-11-10 20:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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