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

Project1

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

[已经解决] 請問敵人使用的補血技能、對象可否更改為HP最低者?

[复制链接]

Lv2.观梦者

梦石
0
星屑
552
在线时间
464 小时
注册时间
2009-10-11
帖子
407
跳转到指定楼层
1
发表于 2014-6-1 10:58:35 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
是這樣的,我設置了一個給敵人"邪惡祭司"弄了個補血技能"治癒術",在效果範圍那邊設定為"我方單體"。

但是在戰鬥中,邪惡祭司幾乎都幫自己補血,而不是幫隊伍裡面血少的怪物補血...{:2_276:}
請問有沒有辦法加上個怪物補血AI、
能選擇幫自己隊伍中血量比例最少或是目前血量最低的隊友補血的方法?? (治癒術技能欄+備注or腳本?)

点评

可以改成全体,然后在技能公式里做手脚,让掉血越多的加血越多,然后提高这个技能的消耗……不过这只是退而求其次的选择……  发表于 2014-6-1 15:00
因为现实太残酷、所以我们都在打造虚幻的天堂。如果现实不再残酷,也是因为有这快乐的天堂。

Lv3.寻梦者

梦石
0
星屑
1323
在线时间
831 小时
注册时间
2007-12-25
帖子
1558
11
发表于 2014-6-13 22:20:58 | 只看该作者
我也来凑热闹了
想给敌人增加AI的话,建议你写一个构架,敌方AI管理器。
而不是想出一个就添加一个,到时候很难维护,越多越乱,会导致坑掉的。

奉献思路一枚,我想照此写出来,以前狂按确定的几个小B配合就让玩家抓狂了。
首先,是一个可调AI强度,0-10。
写一个战斗力评估算法,这个根据自己的游戏设置来具体评估的。
比如   战斗力 = (攻击力*20+防御力*10+敏捷*10……)*HP百分比+MP等等等等……技能,这是很复杂的算法,但是你可以自己想出来,并且写出来。

战斗开始时,将所有敌人加入队友集。(以下敌人,主角均面向玩家而言。)
等到敌人行动时,遍历该敌人所有的行动。比如攻击→主角1234,技能1→主角1234,回复→敌人12345
复制对象,并且模拟使用后的结果,记录下评分。全部遍历完后对比所有的结果评分。所谓的评分,就是我方战斗力-敌方战斗力。
如果AI强度是1的话,选择评分最高的行动。
如果 AI强度是2的话,选择评分前30%的行动。再次迭代下一个行动的角色的行动获得全部评分。
如果下一个行动是主角,遍历所有的行动,并对结果进行分析,将评分最低的30%的行动进行统计。如此递归
总的来说,AI强度每强1级,电脑就会想一步,如果AI强度为10,它会计算接下来10次行动可能造成的结果,来决定这次行动。
当然那计算量相当大。

以上要多看几遍,并且有人讨论才能完成。
简单地说,就是遍历所有的行动,所造成的结果进行评分统计。
也支持对以后的行动进行预测评分。

点评

AI 10的话 以ruby的效率 极有可能卡顿从而造成不好的游戏体验……  发表于 2014-6-14 11:26
這可是要非常強大的邏輯腦力阿...  发表于 2014-6-14 10:23
精卫赤龙腾   
总是存在一种强大,去完成似乎不可能的事情.
无畏战乾程   
或是需要一种勇气,去挑战几乎不存在的胜利.
一味玄真魂     
这是拥有一种恒心,去化解根本没有解的困难.
烈卫开天径    
只是带着一种决心,去争取残存的最后的希望。
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

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

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

开拓者贵宾

10
发表于 2014-6-11 06:18:53 | 只看该作者
本帖最后由 taroxd 于 2014-6-21 07:23 编辑
a000b1745 发表于 2014-6-11 01:47
我把衝突腳本解決哩 :)
目前是="我方HP最低者"
請問還能增加


未测试,但应该没有什么大问题。同样的,别把这个技能给自己人使用

另外,如果需要增加怪物AI的话,应该有人写过脚本来着……

RUBY 代码复制
  1. class Game_Action
  2.   alias targets_for_friends_20140611 targets_for_friends
  3.   def targets_for_friends
  4.     if item.note.include?('<指定同隊HP最低者>')
  5.       [friends_unit.alive_members.min_by(&:hp_rate)]
  6.     elsif item.note.include?('<指定同隊HP最高者>')
  7.       [friends_unit.alive_members.max_by(&:hp_rate)]
  8.     else
  9.       targets_for_friends_20140611
  10.     end
  11.   end
  12.  
  13.   alias targets_for_opponents_20140611 targets_for_opponents
  14.   def targets_for_opponents
  15.     if item.note.include?('<指定敵隊HP最低者>')
  16.       [opponents_unit.alive_members.min_by(&:hp_rate)]
  17.     elsif item.note.include?('<指定敵隊HP最高者>')
  18.       [opponents_unit.alive_members.max_by(&:hp_rate)]
  19.     else
  20.       targets_for_opponents_20140611
  21.     end
  22.   end
  23. end


@Sion 发帖20天了,结贴吧~

点评

很不错啊。  发表于 2014-6-14 11:38

评分

参与人数 1梦石 +1 收起 理由
熊喵酱 + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
552
在线时间
464 小时
注册时间
2009-10-11
帖子
407
9
 楼主| 发表于 2014-6-11 01:47:45 | 只看该作者
taroxd 发表于 2014-6-8 17:50
非常可行,在技能中备注
但是注意,别让自己人用这个技能,会出bug的。

我把衝突腳本解決哩 :)
目前是<指定同隊HP最低者>="我方HP最低者"
請問還能增加
<指定同隊HP最高者>
<指定敵隊HP最低者>
<指定敵隊HP最高者>嗎~?{:2_280:}
這樣貌似怪物的AI更高了
因为现实太残酷、所以我们都在打造虚幻的天堂。如果现实不再残酷,也是因为有这快乐的天堂。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
552
在线时间
464 小时
注册时间
2009-10-11
帖子
407
8
 楼主| 发表于 2014-6-9 22:18:04 | 只看该作者
taroxd 发表于 2014-6-8 17:50
非常可行,在技能中备注
但是注意,别让自己人用这个技能,会出bug的。

設定好後,邪惡祭司無法使出那個技能(會輪到他行動但是沒做啥)??
我有用上橫板戰鬥Sideview不知有沒有影響...

点评

可能有影响。那我就没办法了~  发表于 2014-6-10 06:03
因为现实太残酷、所以我们都在打造虚幻的天堂。如果现实不再残酷,也是因为有这快乐的天堂。
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

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

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

开拓者贵宾

7
发表于 2014-6-8 17:50:00 | 只看该作者
a000b1745 发表于 2014-6-8 16:25
有人有想法嗎?
試了幾天還是沒有頭緒...
如果在注釋規定技能

非常可行,在技能中备注 <指定同隊HP最低者>
但是注意,别让自己人用这个技能,会出bug的。

RUBY 代码复制
  1. class Game_Action
  2.   alias targets_for_friends_20140608 targets_for_friends
  3.   def targets_for_friends
  4.     if item.note.include?('<指定同隊HP最低者>')
  5.       [friends_unit.members.min_by(&:hp)]
  6.     else
  7.       targets_for_friends_20140608
  8.     end
  9.   end
  10. end

点评

又可以用了?  发表于 2014-6-10 06:05
诶?不是用不了么?  发表于 2014-6-10 06:05
moy
hp改为hp_rate  发表于 2014-6-9 23:16
目前是HP數值最低,可以改成HP %數最低嗎?? 邪惡祭司滿血500,大肥怪滿血1200,祭司滿血還是會補自己 >"<  发表于 2014-6-9 22:24
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
552
在线时间
464 小时
注册时间
2009-10-11
帖子
407
6
 楼主| 发表于 2014-6-8 16:25:01 | 只看该作者
有人有想法嗎?
試了幾天還是沒有頭緒...
如果在注釋規定技能<指定同隊HP最低者>
或是像是 @九夜神尊 曾經寫過的腳本來變更技能使用範圍
http://rpg.blue/thread-235239-1-1.html
不知這樣想法可行嗎?
因为现实太残酷、所以我们都在打造虚幻的天堂。如果现实不再残酷,也是因为有这快乐的天堂。
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

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

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

开拓者贵宾

5
发表于 2014-6-1 12:25:24 | 只看该作者
本帖最后由 taroxd 于 2014-6-1 13:34 编辑
鑫晴 发表于 2014-6-1 12:22
我的思路是:

新建一个技能:补充节操


似乎是不错的思路

还可以状态「是时候向1号丢节操了」、「是时候向2号丢节操了」……也许这样要强制战斗指令?

点评

看來要做到偵測隊伍中最低血量的隊友 果真不簡單....  发表于 2014-6-1 17:57
你按着我上面那个设置一下,他只会给队友补节操  发表于 2014-6-1 13:23
自己也是「1号」、「2号」中的一个呀~  发表于 2014-6-1 13:21
貌似不会给自己补节操,估计他节操太多了  发表于 2014-6-1 13:08
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
1
星屑
6316
在线时间
2650 小时
注册时间
2013-8-23
帖子
2315

开拓者

4
发表于 2014-6-1 12:22:43 | 只看该作者
本帖最后由 鑫晴 于 2014-6-1 12:33 编辑

我的思路是:

新建一个技能:补充节操
效果范围:单个队友
使用效果:恢复体力值 100%

新建一个状态:是时候丢节操了
解除条件:

新建一个敌人:节操君
行为模式:补充节操
行动条件:状态「是时候丢节操了」

新建一个敌群:节操君&史莱姆
战斗事件:
条件:敌人「史莱姆」 的体力值在60%以下
更改敌人状态[2.节操君], +「是时候丢节操了」


未测试


回复 支持 反对

使用道具 举报

Lv2.观梦者

会吐槽的画师

梦石
0
星屑
782
在线时间
3431 小时
注册时间
2011-6-10
帖子
6535
3
发表于 2014-6-1 11:28:43 | 只看该作者
直接在敌人信息里设置HP多少一下使用技能

点评

应该使用事件脚本?  发表于 2014-6-1 13:37
嗯嗯,重點是在於敵人的"隊友"如果快死了,邪惡祭司應該要幫血最少的隊友補血,而不是自己。  发表于 2014-6-1 11:46
↓ 是敌人的队友没血了会加血  发表于 2014-6-1 11:34
↓其实楼主的意思就是敌人没血了会加血,效果差不多的,我不是天使  发表于 2014-6-1 11:32
目测你看错楼主的问题了  发表于 2014-6-1 11:31
长名公主玩家群:372588926 攻略娱乐应有尽有
了解更多新RM游戏,游戏制作请加入RPGmaker支援群:113622890
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-25 15:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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