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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: 喵呜喵5
打印 上一主题 下一主题

[已经解决] 如何让队伍中某个角色的攻击力随队伍成员发生改变

[复制链接]

Lv3.寻梦者 (版主)

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

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

开拓者贵宾

11
发表于 2014-5-30 17:03:38 | 只看该作者
本帖最后由 taroxd 于 2014-5-30 19:30 编辑
喵呜喵5 发表于 2014-5-28 19:04
我要提升的是角色所有技能的攻击力不是一个技能的攻击力......


测试代码:
RUBY 代码复制
  1. $count = 0
  2.  
  3. class Game_Actor
  4.   alias m5_20140525_param_plus param_plus
  5.   def param_plus(param_id)
  6.     a_par = m5_20140525_param_plus(param_id)
  7.     return a_par unless @actor_id == 1
  8.     $count += 1
  9.     data = {1=>[1,2,3,4,5,6,7,8]}
  10.     if $count >= 5
  11.       puts caller
  12.       Graphics.update until Input.trigger?(:C)
  13.     end
  14.     $game_party.all_members.each do |actor|
  15.       class_id = actor.class_id
  16.       a_par += data[class_id][param_id] if data.has_key?(class_id)
  17.     end
  18.     $count -= 1
  19.     a_par
  20.   end
  21. end


测试结果的一部分(发生问题的原因):

都是初始化的时候refresh惹的祸!!!


解决办法不用我说了吧~  你想怎么解决就怎么解决啦!

At Last,求糖!

评分

参与人数 1星屑 +120 收起 理由
喵呜喵5 + 120 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21631
在线时间
9415 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

12
 楼主| 发表于 2014-5-30 17:27:15 | 只看该作者
taroxd 发表于 2014-5-30 17:03
测试代码:
$count = 0

……但我还是不知道怎么解决

点评

如果怕由于其他人改脚本, @last_skill 的判断不可靠的话,可以在 Game_Actors 里面定义个 initialized? 或者 include? 之类的方法。这样应该就没什么问题了。  发表于 2014-5-30 17:55
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

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

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

开拓者贵宾

13
发表于 2014-5-30 17:40:21 | 只看该作者
本帖最后由 taroxd 于 2014-6-2 09:52 编辑
喵呜喵5 发表于 2014-5-30 17:27
……但我还是不知道怎么解决


比如说一个解决办法
RUBY 代码复制
  1. class Game_Actor
  2.   alias m5_20140525_param_plus param_plus
  3.   def param_plus(param_id)
  4.     a_par = m5_20140525_param_plus(param_id)
  5.     return a_par if !@last_skill || # uninitialized
  6.       @actor_id != 1 # test_database
  7.     data = {1=>[1,2,3,4,5,6,7,8]} # test_database
  8.     $game_party.all_members.each do |actor|
  9.       class_id = actor.class_id
  10.       a_par += data[class_id][param_id] if data.has_key?(class_id)
  11.     end
  12.     a_par
  13.   end
  14. end

缺点:第一次初始化的完全恢复时,是按照未加成的mhp等进行计算的
但是这个随便处理一下,游戏玩家就看不出来了。比如Game_Actors中初始化角色之后立刻完全恢复之类。

如果怕由于其他人改脚本, @last_skill 的判断不可靠的话,可以在 Game_Actors 里面定义个 initialized? 或者 include? 之类的方法。这样应该就没什么问题了。

再比如说,如果不求功能完整的话,可以放弃mhp、mmp这两个属性

@Sion 结贴

评分

参与人数 2星屑 +120 梦石 +1 收起 理由
Sion + 1 认可答案
喵呜喵5 + 120 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 17:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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