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

Project1

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

[已经解决] 主角(血量*等級)等於攻擊力的設置方式

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
22 小时
注册时间
2012-10-27
帖子
13
跳转到指定楼层
1
发表于 2014-11-29 16:31:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 a1231171 于 2014-11-29 16:34 编辑

想請教:


1.

如何使用腳本的方式敘述下列事件:

對主角編號5之後的所有角色,進行以下事件:

變數009代入主角i的HP
變數010代入主角i的等級
變數009*變數010
主角i的攻擊力設定為變數009


完成   '主角i(血量*等級)等於攻擊力'  的效果

我想用來安插在計算傷害之類的地方,每次受到攻擊降低HP都會重新計算攻擊力


2.

n = $game_variables[13]
if $game_actors[n].state?(19)
變數009代入角色n的hp
end

這句直接用$game_actors[n].hp好像不能
請問應該怎麼寫?



--
超嫩小新手,如果爬不夠詳細請多包涵,btw有腳本相關教學可以推薦的會粉感動

Lv3.寻梦者 (版主)

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

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

开拓者贵宾

2
发表于 2014-11-29 17:30:43 | 只看该作者
楼主需要注意,角色的属性是不能设置的。因为所有角色的属性都要通过各种因素计算得出(比如装备、状态等等)。

因此,我们可以直接修改计算过程。

因为我不用VX,以下所有代码都仅仅是思路,或者伪代码。

1. 执行一次,永久有效。
RUBY 代码复制
  1. 5.upto(最大的角色ID) do |i|
  2.   actor = $game_actors[i]
  3.   next unless actor
  4.   def actor.atk
  5.     hp * level
  6.   end
  7. end


2.
RUBY 代码复制
  1. actor = $game_actors[n]
  2. def actor.hp
  3.   $game_variables[9]
  4. end if actor

点评

好人做到底嘛...版主大人...我想学习如果这样定义应该如何处理存档...  发表于 2014-12-2 17:23
好吧忘了存档问题了。那就拿一个实例变量做“是否改变计算方式”的标志吧  发表于 2014-12-2 12:33
脚本"Scene_File"的第218行发生了TypeError...singleton can't be dumped...  发表于 2014-12-1 20:08
我不用VX,没法解决。上面的代码只是提供思路  发表于 2014-11-30 14:36
第二個問題我排除了~~依舊第一個苦手  发表于 2014-11-30 13:29
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

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

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

开拓者贵宾

3
发表于 2014-12-2 17:29:38 | 只看该作者
@正太君 就是这个意思喽~

RUBY 代码复制
  1. class Game_Actor
  2.  
  3.   attr_accessor :atk_is_hp_times_level
  4.  
  5.   alias atk_23333333 atk
  6.  
  7.   def atk
  8.     atk_is_hp_times_level ? hp * level : atk_23333333
  9.   end
  10.  
  11. end
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

聪仔

梦石
0
星屑
6182
在线时间
3077 小时
注册时间
2013-12-26
帖子
3145
4
发表于 2014-12-2 19:31:01 | 只看该作者
taroxd 发表于 2014-12-2 17:29
@正太君 就是这个意思喽~


感谢版主大人,这样写是会的呢...
我想知道的是如果按报错那样写,存档应该怎么处理...咦咦...
  1. 1.upto(4) do |i|
  2.   actor = $game_actors[i]
  3.   next unless actor
  4.   def actor.atk
  5.     hp * level
  6.   end
  7. end
复制代码

点评

我沒注意到這個問題....謝謝提醒  发表于 2014-12-2 20:11

评分

参与人数 1星屑 +80 收起 理由
丿梁丶小柒 + 80 我很赞同

查看全部评分

聪聪全国第三帅...
他们都叫我【人赢聪】
我的RM能力雷达图:

回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

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

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

开拓者贵宾

5
发表于 2014-12-3 12:29:19 | 只看该作者
正太君 发表于 2014-12-2 19:31
感谢版主大人,这样写是会的呢...
我想知道的是如果按报错那样写,存档应该怎么处理...咦咦...  ...

重定义 marshal_dump 和 marshal_load

参考 VA 中对事件解释器中 fiber 的处理方式

评分

参与人数 2星屑 +130 收起 理由
丿梁丶小柒 + 100 我很赞同
正太君 + 30 聪聪笨不懂这些了,糖给你版主大人....

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 17:43

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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