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

Project1

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

[已经解决] 【已解决】如何根据Game_Troop中敌人名字后缀改变敌人属性

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3026
在线时间
649 小时
注册时间
2018-8-8
帖子
15
跳转到指定楼层
1
发表于 2023-11-28 11:07:53 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 [email protected] 于 2023-12-3 10:10 编辑

Game_Troop中敌人名字后缀改成性格之类的词缀,根据词缀的不同同一敌人属性会有偏差,请教下面写法为何不生效。
class Game_Troop
  alias pe_setup setup
  def setup(troop_id)
    # 根据敌人名字后缀的字表修改敌人属性
    @enemies.each do |enemy|
    suffix = enemy.name[/\[(.*?)\]/, 1]# 获取敌人名字后缀的文字描述
    modify_enemy_attributes(enemy, suffix) if suffix
    pe_setup(troop_id)
  end
end

# 修改敌人属性的方法
  def modify_enemy_attributes(enemy, suffix)
    case suffix
    when "(暴躁)"
      enemy.params[0] += 20 # 最大HP增加20
      enemy.params[1] += 20 # 最大MP增加20
      enemy.params[2] += 20 # 物理攻击增加20
      enemy.params[3] += 20 # 物理防御增加20
      enemy.params[4] += 10 # 魔法攻击增加10
      enemy.params[5] += 10 # 魔法防御增加10
      enemy.params[6] += 10 # 敏捷值增加10
      enemy.params[7] += 10 # 幸运值增加10
    when "(邪恶)"
。。。。。。
   when "(胆小)"
。。。。。。
    else
    end
  end
end

Lv2.观梦者

梦石
0
星屑
840
在线时间
926 小时
注册时间
2011-5-11
帖子
440
7
发表于 2023-12-2 21:36:57 | 只看该作者
本帖最后由 345912390 于 2023-12-2 21:57 编辑
freeman2008 发表于 2023-11-29 13:55
感谢,在史莱姆名字后面加性格词缀是可以的,但我想到脚本Game_Troop里的LETTER_TABLE = []里的这个表里 ...



RUBY 代码复制
  1. class Game_Enemy < Game_Battler
  2.   #前缀名
  3.   PREFIX_TABLE = ['','【金】•','【木】•','【火】•','【水】•','【土】•']
  4.   #前缀属性
  5.   PREFIX_PARAMS=[[0,0,0,0,0,0,0,0],
  6.                                 [97,0,0,0,0,0,0,0],
  7.                                 [75,200,0,0,0,0,0,0],
  8.                                 [43,0,70,0,0,0,0,0],
  9.                                 [28,0,0.5,0,0,0,0,0],
  10.                                 [39,0,0,0,0,0,0,20],]
  11.   #--------------------------------------------------------------------------
  12.   # ● 定义实例变量
  13.   #--------------------------------------------------------------------------
  14.   attr_accessor :prefix_index #前缀序号
  15.  
  16.   alias old_initialize initialize
  17.   def initialize(index, enemy_id)
  18.    old_initialize(index, enemy_id)
  19.    @prefix_index=rand(PREFIX_TABLE.size)if @prefix_index==nil
  20.    #p @prefix_index
  21.   end
  22.   #--------------------------------------------------------------------------
  23.   # ● 获取显示名称
  24.   #--------------------------------------------------------------------------
  25.   alias old_name name
  26.   def name
  27.     PREFIX_TABLE[@prefix_index]+@original_name + (@plural ? letter : "")
  28.   end
  29.    #--------------------------------------------------------------------------
  30.   # ● 获取普通能力的基础值
  31.   #--------------------------------------------------------------------------
  32.   alias old_param_base param_base
  33.   def param_base(param_id)
  34.     @prefix_index=rand(PREFIX_TABLE.size) if @prefix_index==nil
  35.       #return enemy.params[param_id]
  36.  
  37.      if PREFIX_PARAMS[@prefix_index][param_id].abs<1 then #按百分比计算
  38.         return enemy.params[param_id]*(1+PREFIX_PARAMS[@prefix_index][param_id])
  39.       else #按实际值计算
  40.         return enemy.params[param_id]+PREFIX_PARAMS[@prefix_index][param_id]
  41.       end
  42.  
  43.     #return enemy.params[param_id]
  44.   end
  45. end

点评

感谢。  发表于 2023-12-3 09:25
http://rpg.blue/static/image/smiley/yct/A059.gif中国字认识都不到一半,哪的心情学英语呀!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
152
在线时间
198 小时
注册时间
2016-7-13
帖子
45
6
发表于 2023-11-29 13:55:41 | 只看该作者
srwjrevenger 发表于 2023-11-29 11:17
刚刚发现自己搞错想回来改,就发现你回报了... ...
先像楼上说的改一下
之后名字要这样哦 史莱姆[暴躁]

感谢,在史莱姆名字后面加性格词缀是可以的,但我想到脚本Game_Troop里的LETTER_TABLE = []里的这个表里设置性格词缀,效果是同一敌群有随机的性格,可以给同一敌群的几个敌人不同属性

点评

呜呼~才发现你不是楼主(捂脸)  发表于 2023-12-2 11:40
[url=https://rpg.blue/thread-395191-1-1.html]https://rpg.blue/data/attachment/forum/201610/29/153606ps34xuimwuykiyv7.jpg[/url]
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
152
在线时间
198 小时
注册时间
2016-7-13
帖子
45
5
发表于 2023-11-29 11:48:00 | 只看该作者
srwjrevenger 发表于 2023-11-29 11:17
when "(暴躁)" -> when "暴躁"
enemy.params[0]  ->  enemy.param(0) 然而这是读取数据库的,无效... ...

新建了工程测试,还是无效。when后面不改属性,改其它来测试都没生效
[url=https://rpg.blue/thread-395191-1-1.html]https://rpg.blue/data/attachment/forum/201610/29/153606ps34xuimwuykiyv7.jpg[/url]
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6165
在线时间
794 小时
注册时间
2019-1-20
帖子
204
4
发表于 2023-11-29 11:17:31 | 只看该作者
本帖最后由 srwjrevenger 于 2023-11-29 12:25 编辑

刚刚发现自己搞错想回来改,就发现你回报了... ...
先像楼上说的改一下
之后名字要这样哦 史莱姆[暴躁]
when "(暴躁)" --> when "暴躁"
enemy.params[0]  -->  enemy.param(0)  这个不能直接改它,只是提醒你写错了
用 enemy.add_param(对应能力id, 数值)



点评

感谢。  发表于 2023-12-3 09:26
思路不要反了,应该先判断附加哪一个一个,之后再给词缀,楼下给了一个,应该不用了吧?  发表于 2023-12-2 23:43
这样写只能读取到数据库里敌人名字,要怎么写才能读到脚本Game_Troop里的LETTER_TABLE = []里的修改过的词缀呢?  发表于 2023-12-2 13:34

提高解答机会的方法:
看一下对应版本的帮助文件 看天气预报说今天不下雨
改变问题为更有可能的或常见的 如:天气自动变化下雨→天气系统 果然不准呀~
使用论坛的搜索功能查找相关问题 好丧啊... ...想看女装
清楚说明实际上你想解决的问题  想看坛友的女装  
脚本自己有改过的地方要标明  不要遮脸的
脚本有问题但不是默认的要全部贴出来 大胆点,尽情发
三包原则:包有BUG,包甩锅,包咕咕
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
152
在线时间
198 小时
注册时间
2016-7-13
帖子
45
3
发表于 2023-11-29 08:39:28 | 只看该作者
本帖最后由 freeman2008 于 2023-11-29 10:36 编辑
345912390 发表于 2023-11-28 21:30
看了一下你的顺序 弄反了

没具体测试过,大概方向是这样


改好顺序还是无效,还有其它原因吗?
[url=https://rpg.blue/thread-395191-1-1.html]https://rpg.blue/data/attachment/forum/201610/29/153606ps34xuimwuykiyv7.jpg[/url]
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
840
在线时间
926 小时
注册时间
2011-5-11
帖子
440
2
发表于 2023-11-28 21:30:20 | 只看该作者
看了一下你的顺序 弄反了
  1. alias pe_setup setup
  2.   def setup(troop_id)

  3.     pe_setup(troop_id)#先初始化,否则@enemies为空
  4.     # 根据敌人名字后缀的字表修改敌人属性
  5.     @enemies.each do |enemy|
  6.     suffix = enemy.name[/\[(.*?)\]/, 1]# 获取敌人名字后缀的文字描述
  7.     modify_enemy_attributes(enemy, suffix) if suffix
  8.   end
复制代码

没具体测试过,大概方向是这样
http://rpg.blue/static/image/smiley/yct/A059.gif中国字认识都不到一半,哪的心情学英语呀!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-4 02:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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