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

Project1

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

[已经解决] 求教,如何做出一个具有强制选择的状态。

[复制链接]

Lv2.观梦者

梦石
0
星屑
374
在线时间
139 小时
注册时间
2014-12-4
帖子
63
跳转到指定楼层
1
发表于 2015-1-5 18:48:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
比如敌人用了一个嘲讽技能加了一个状态,这个状态存在的时候,我方人物单体技能的选择对象就是只能选有这个状态的敌人,不能选其他敌人。

Lv2.观梦者

梦石
0
星屑
374
在线时间
139 小时
注册时间
2014-12-4
帖子
63
2
 楼主| 发表于 2015-1-8 16:34:37 | 只看该作者
比如敌人用了一个嘲讽技能加了一个状态,这个状态存在的时候,我方人物单体技能的选择对象就是只能选有这个状态的敌人,不能选其他敌人。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

闇吼者の災悪眷族
不気味存在締造者

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
帖子
6491
3
发表于 2015-1-8 17:02:33 | 只看该作者
少年……自己顶贴不是这么顶的…… 另外,我先告诉你一声这种效果不好做,没有一定的脚本基础的话很容易出现逻辑错误。

如果你能看懂就看看↓这个帖子里的脚本。

https://rpg.blue/thread-375221-1-1.html

点评

诶,也是哦嗷~ 我想着要重新写一个目标实例的数组,在存在这样的目标的时候优先调用这个数组,看来想复杂了。  发表于 2015-1-8 17:35
其实挺容易实现的啊- - 往选择目标的窗口里塞一点东西就是了  发表于 2015-1-8 17:30
我没太仔细看,只是觉得“大概能提供一些思路吧”这样的感觉。当然也有告知“这个效果真的挺麻烦的哦”这个成分的意思在里面。  发表于 2015-1-8 17:21
这个是直接禁止选择,根据设定的目标来执行了……  发表于 2015-1-8 17:15
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

4
发表于 2015-1-8 17:35:04 | 只看该作者
本帖最后由 taroxd 于 2015-1-8 17:51 编辑
三途亚梦 发表于 2015-1-8 17:02
少年……自己顶贴不是这么顶的…… 另外,我先告诉你一声这种效果不好做,没有一定的脚本基础的话很容易出 ...


写了一个思路性质的东西,麻烦亚梦或者 @VIPArcher 帮忙实现一下可以吗?(没环境真是超不爽)

RUBY 代码复制
  1. class Window_?
  2.  
  3.   FORCE_SELECT = -> e { e.state? 5 }
  4.   alias_method :include_20150108, :include?
  5.  
  6.   def include?(enemy)
  7.     include_20150108(enemy) &&
  8.       (FORCE_SELECT.call(enemy) ||
  9.       $game_troop.members.none?(&FORCE_SELECT))
  10.   end
  11. end

点评

bingo  发表于 2015-1-8 17:51
我也在好奇这个点TD触你为啥在线……似乎是下课到晚自习之间的吃饭时间? 看VIP的吧,我也在日语课呢……酷爱@一下VIP。  发表于 2015-1-8 17:39
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1023
在线时间
145 小时
注册时间
2013-10-16
帖子
271
5
发表于 2015-1-8 22:43:08 | 只看该作者
你可以试试这样:技能嘲讽,效果是对自己那一方全体施加嘲讽状态,再解除自己的嘲讽状态(就是让你不想选择的敌人都附加上嘲讽状态)。选择攻击对象时,判定如果那个对象有嘲讽状态,就不能选。这样就简单了。

点评

不是更麻烦吗  发表于 2015-1-9 07:51
开心咸鱼每一天~
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

无限の剣制

梦石
0
星屑
10074
在线时间
5020 小时
注册时间
2013-2-28
帖子
5030

开拓者贵宾

6
发表于 2015-1-12 16:23:18 | 只看该作者
本帖最后由 VIPArcher 于 2015-1-12 16:38 编辑
  1. class Window_BattleEnemy < Window_Selectable

  2.   FORCE_SELECT = -> e { e.state? 5 }


  3.   def item_max
  4.     $game_troop.alive_members.select {|member| include?(member)}.size
  5.   end

  6.   def enemy
  7.     $game_troop.alive_members.select {|member| include?(member)}[@index]
  8.   end
  9.   
  10.   def draw_item(index)
  11.     change_color(normal_color)
  12.     name = $game_troop.alive_members.select { |member|
  13.       include?(member)}[index].name
  14.     draw_text(item_rect_for_text(index), name)
  15.   end
  16.   
  17.   def include?(enemy)
  18.       (FORCE_SELECT.call(enemy) ||
  19.       $game_troop.members.none?(&FORCE_SELECT))
  20.   end
  21. end
复制代码
我就测试了一下,大概可以了,不知道有没有BUG。嘛,我只是做个示范,还希望楼主能自己多多琢磨一下下。

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 13:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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