Project1
标题: 求解释RPG::UsableItem::Effect [打印本页]
作者: a774741359 时间: 2013-9-20 12:58
标题: 求解释RPG::UsableItem::Effect
本帖最后由 a774741359 于 2013-9-20 13:19 编辑
原型如下:
class RPG::UsableItem::Effect
def initialize(code = 0, data_id = 0, value1 = 0, value2 = 0)
[url=home.php?mod=space&uid=10413]@code[/url] = code
@data_id = data_id
@value1 = value1
@value2 = value2
end
attr_accessor :code
attr_accessor :data_id
attr_accessor :value1
attr_accessor :value2
end
class RPG::UsableItem::Effect
def initialize(code = 0, data_id = 0, value1 = 0, value2 = 0)
[url=home.php?mod=space&uid=10413]@code[/url] = code
@data_id = data_id
@value1 = value1
@value2 = value2
end
attr_accessor :code
attr_accessor :data_id
attr_accessor :value1
attr_accessor :value2
end
日文解释如下:
code
使用効果コード。
data_id
使用効果の種類に応じたデータ (ステート、能力値など) の ID。
value1
使用効果の種類に応じた設定値 1。
value2
使用効果の種類に応じた設定値 2
code
使用効果コード。
data_id
使用効果の種類に応じたデータ (ステート、能力値など) の ID。
value1
使用効果の種類に応じた設定値 1。
value2
使用効果の種類に応じた設定値 2
@晴兰 就你一个好友,就别介意了= v=
具体不明何意,比如,物品增加500HP,这个使用效果是怎么储存的。
经过大量测试,得出如下结论。
code
效果编号
恢复
11号 恢复体力值
12号 恢复魔力值
13号 增加特技值
状态
21号 附加状态
22号 解除状态
能力
31号 强化能力
32号 弱化能力
33号 解除能力强化
34号 解除能力弱化
其他
41号 特殊效果
42号 能力提升
43号 学会技能
44号 公共事件
data_id
比如 21号附加状态
data_id就储存着附加状态的状态id
但是其首位是普通攻击
value1 value2
两个附加数据
比如 11号恢复体力值
恢复50%体力,value1就=0.5 =>50%
恢复500点体力,value2就为500 =>500
作者: fangyc 时间: 2013-9-20 13:13
本帖最后由 fangyc 于 2013-9-20 13:19 编辑
这个是数据结构,在数据库中设定一个道具后,此道具的使用效果就用一个 RPG::UsableItem::Effect 的实例来储存
比如,物品增加500HP,那么他的效果应该以code的某个值保存,恢复量则保存在value1(固定值)或value2(百分比)里
code的值对应什么效果是工具里预先定义好的,它只是一个抽象的值,具体效果会在内置的脚本里体现出来
这个只能自己去内置脚本里找了
Game_Battler里有下面一段内容,意思就是如果code的值等于EFFECT_RECOVER_HP,那么就调用item_effect_recover_hp方法恢复HP,这样……
不知道楼主明白了没有…………
#--------------------------------------------------------------------------
# ● 应用使用效果
#--------------------------------------------------------------------------
def item_effect_apply(user, item, effect)
method_table = {
EFFECT_RECOVER_HP => :item_effect_recover_hp,
EFFECT_RECOVER_MP => :item_effect_recover_mp,
EFFECT_GAIN_TP => :item_effect_gain_tp,
EFFECT_ADD_STATE => :item_effect_add_state,
EFFECT_REMOVE_STATE => :item_effect_remove_state,
EFFECT_ADD_BUFF => :item_effect_add_buff,
EFFECT_ADD_DEBUFF => :item_effect_add_debuff,
EFFECT_REMOVE_BUFF => :item_effect_remove_buff,
EFFECT_REMOVE_DEBUFF => :item_effect_remove_debuff,
EFFECT_SPECIAL => :item_effect_special,
EFFECT_GROW => :item_effect_grow,
EFFECT_LEARN_SKILL => :item_effect_learn_skill,
EFFECT_COMMON_EVENT => :item_effect_common_event,
}
method_name = method_table[effect.code]
send(method_name, user, item, effect) if method_name
end
#--------------------------------------------------------------------------
# ● 应用使用效果
#--------------------------------------------------------------------------
def item_effect_apply(user, item, effect)
method_table = {
EFFECT_RECOVER_HP => :item_effect_recover_hp,
EFFECT_RECOVER_MP => :item_effect_recover_mp,
EFFECT_GAIN_TP => :item_effect_gain_tp,
EFFECT_ADD_STATE => :item_effect_add_state,
EFFECT_REMOVE_STATE => :item_effect_remove_state,
EFFECT_ADD_BUFF => :item_effect_add_buff,
EFFECT_ADD_DEBUFF => :item_effect_add_debuff,
EFFECT_REMOVE_BUFF => :item_effect_remove_buff,
EFFECT_REMOVE_DEBUFF => :item_effect_remove_debuff,
EFFECT_SPECIAL => :item_effect_special,
EFFECT_GROW => :item_effect_grow,
EFFECT_LEARN_SKILL => :item_effect_learn_skill,
EFFECT_COMMON_EVENT => :item_effect_common_event,
}
method_name = method_table[effect.code]
send(method_name, user, item, effect) if method_name
end
作者: a774741359 时间: 2013-9-20 13:21
本帖最后由 a774741359 于 2013-9-20 13:24 编辑
fangyc 发表于 2013-9-20 13:13
这个是数据结构,在数据库中设定一个道具后,此道具的使用效果就用一个 RPG::UsableItem::Effect 的实例来 ...
感谢回复
#--------------------------------------------------------------------------
# ● 常量(使用效果)
#--------------------------------------------------------------------------
EFFECT_RECOVER_HP = 11 # 恢复 HP
EFFECT_RECOVER_MP = 12 # 恢复 MP
EFFECT_GAIN_TP = 13 # 增加 TP
EFFECT_ADD_STATE = 21 # 附加状态
EFFECT_REMOVE_STATE = 22 # 解除状态
EFFECT_ADD_BUFF = 31 # 强化能力
EFFECT_ADD_DEBUFF = 32 # 弱化能力
EFFECT_REMOVE_BUFF = 33 # 解除能力强化
EFFECT_REMOVE_DEBUFF = 34 # 解除能力弱化
EFFECT_SPECIAL = 41 # 特殊效果
EFFECT_GROW = 42 # 能力提升
EFFECT_LEARN_SKILL = 43 # 学会技能
EFFECT_COMMON_EVENT = 44 # 公共事件
#--------------------------------------------------------------------------
# ● 常量(使用效果)
#--------------------------------------------------------------------------
EFFECT_RECOVER_HP = 11 # 恢复 HP
EFFECT_RECOVER_MP = 12 # 恢复 MP
EFFECT_GAIN_TP = 13 # 增加 TP
EFFECT_ADD_STATE = 21 # 附加状态
EFFECT_REMOVE_STATE = 22 # 解除状态
EFFECT_ADD_BUFF = 31 # 强化能力
EFFECT_ADD_DEBUFF = 32 # 弱化能力
EFFECT_REMOVE_BUFF = 33 # 解除能力强化
EFFECT_REMOVE_DEBUFF = 34 # 解除能力弱化
EFFECT_SPECIAL = 41 # 特殊效果
EFFECT_GROW = 42 # 能力提升
EFFECT_LEARN_SKILL = 43 # 学会技能
EFFECT_COMMON_EVENT = 44 # 公共事件
作者: fangyc 时间: 2013-9-20 13:26
额,实际上内置脚本里已经有一部分的效果定义了……
不过这点我觉得确实不太友好,如果在帮助文档里有更详细的说明,用起来会更方便
#encoding:utf-8
#==============================================================================
# ■ Game_Battler
#------------------------------------------------------------------------------
# 处理战斗者的类。Game_Actor 和 Game_Enemy 类的父类。
#==============================================================================
class Game_Battler < Game_BattlerBase
#--------------------------------------------------------------------------
# ● 常量(使用效果)
#--------------------------------------------------------------------------
EFFECT_RECOVER_HP = 11 # 恢复 HP
EFFECT_RECOVER_MP = 12 # 恢复 MP
EFFECT_GAIN_TP = 13 # 增加 TP
EFFECT_ADD_STATE = 21 # 附加状态
EFFECT_REMOVE_STATE = 22 # 解除状态
EFFECT_ADD_BUFF = 31 # 强化能力
EFFECT_ADD_DEBUFF = 32 # 弱化能力
EFFECT_REMOVE_BUFF = 33 # 解除能力强化
EFFECT_REMOVE_DEBUFF = 34 # 解除能力弱化
EFFECT_SPECIAL = 41 # 特殊效果
EFFECT_GROW = 42 # 能力提升
EFFECT_LEARN_SKILL = 43 # 学会技能
EFFECT_COMMON_EVENT = 44 # 公共事件
#--------------------------------------------------------------------------
# ● 常量(特殊效果)
#--------------------------------------------------------------------------
SPECIAL_EFFECT_ESCAPE = 0 # 撤退
#encoding:utf-8
#==============================================================================
# ■ Game_Battler
#------------------------------------------------------------------------------
# 处理战斗者的类。Game_Actor 和 Game_Enemy 类的父类。
#==============================================================================
class Game_Battler < Game_BattlerBase
#--------------------------------------------------------------------------
# ● 常量(使用效果)
#--------------------------------------------------------------------------
EFFECT_RECOVER_HP = 11 # 恢复 HP
EFFECT_RECOVER_MP = 12 # 恢复 MP
EFFECT_GAIN_TP = 13 # 增加 TP
EFFECT_ADD_STATE = 21 # 附加状态
EFFECT_REMOVE_STATE = 22 # 解除状态
EFFECT_ADD_BUFF = 31 # 强化能力
EFFECT_ADD_DEBUFF = 32 # 弱化能力
EFFECT_REMOVE_BUFF = 33 # 解除能力强化
EFFECT_REMOVE_DEBUFF = 34 # 解除能力弱化
EFFECT_SPECIAL = 41 # 特殊效果
EFFECT_GROW = 42 # 能力提升
EFFECT_LEARN_SKILL = 43 # 学会技能
EFFECT_COMMON_EVENT = 44 # 公共事件
#--------------------------------------------------------------------------
# ● 常量(特殊效果)
#--------------------------------------------------------------------------
SPECIAL_EFFECT_ESCAPE = 0 # 撤退
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |