Project1
标题: 主角(血量*等級)等於攻擊力的設置方式 [打印本页]
作者: a1231171 时间: 2014-11-29 16:31
标题: 主角(血量*等級)等於攻擊力的設置方式
本帖最后由 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有腳本相關教學可以推薦的會粉感動
作者: taroxd 时间: 2014-11-29 17:30
楼主需要注意,角色的属性是不能设置的。因为所有角色的属性都要通过各种因素计算得出(比如装备、状态等等)。
因此,我们可以直接修改计算过程。
因为我不用VX,以下所有代码都仅仅是思路,或者伪代码。
1. 执行一次,永久有效。
5.upto(最大的角色ID) do |i|
actor = $game_actors[i]
next unless actor
def actor.atk
hp * level
end
end
5.upto(最大的角色ID) do |i|
actor = $game_actors[i]
next unless actor
def actor.atk
hp * level
end
end
2.
actor = $game_actors[n]
def actor.hp
$game_variables[9]
end if actor
actor = $game_actors[n]
def actor.hp
$game_variables[9]
end if actor
作者: taroxd 时间: 2014-12-2 17:29
@正太君 就是这个意思喽~
class Game_Actor
attr_accessor :atk_is_hp_times_level
alias atk_23333333 atk
def atk
atk_is_hp_times_level ? hp * level : atk_23333333
end
end
class Game_Actor
attr_accessor :atk_is_hp_times_level
alias atk_23333333 atk
def atk
atk_is_hp_times_level ? hp * level : atk_23333333
end
end
作者: 正太君 时间: 2014-12-2 19:31
taroxd 发表于 2014-12-2 17:29
@正太君 就是这个意思喽~
感谢版主大人,这样写是会的呢...
我想知道的是如果按报错那样写,存档应该怎么处理...咦咦...- 1.upto(4) do |i|
- actor = $game_actors[i]
- next unless actor
- def actor.atk
- hp * level
- end
- end
复制代码
作者: taroxd 时间: 2014-12-3 12:29
正太君 发表于 2014-12-2 19:31
感谢版主大人,这样写是会的呢...
我想知道的是如果按报错那样写,存档应该怎么处理...咦咦... ...
重定义 marshal_dump 和 marshal_load
参考 VA 中对事件解释器中 fiber 的处理方式
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |