Project1
标题:
装备升级
[打印本页]
作者:
fjm
时间:
2017-4-9 16:37
标题:
装备升级
指定武器或防具,例如10号武器,10号防具,像角色一样随着经验的积累可以升级,武器每升一级加一定伤害,敏捷.防具的话每升一级加一定防御,HP上限,最高10级
作者:
芯☆淡茹水
时间:
2017-4-9 19:18
这个你需要期待好心人帮你搞了。因为这个还比较麻烦。
如果是指定一样装备,并且是独一无二只有一件的话还好。如果可以有多件,那么装备就必须独立出来,不能用数据库的公共数据;或者额外增添对应装备的属性,再加上该装备的数据库属性。
不知道VA有没现成的,如果要做的话,一般比较麻烦。当然可能有捷径我没想到的。
作者:
cinderelmini
时间:
2017-4-10 14:33
好像见过一个装备升级系统……
唔,具体来说应该是个强化系统,强化成功后往数据库末端新建一个强化后的装备,
这样可以让每一件装备的升级数据独立……
唔……不过这种办法并不适用于制作中的工程之类的就是了……
作者:
芯☆淡茹水
时间:
2017-4-10 16:56
本帖最后由 芯☆淡茹水 于 2017-4-10 16:59 编辑
最近比较忙,亦或是对VA的结构了解不多。我只能提供一个武器的思路,防具也可以同样的思路来写。
#==============================================================================
#储存所有武器的类,在存取档时需要加上其 储存和读取 。
class Game_Weapons
#--------------------------------------------------------------------------
def initialize
@data = {0=>nil} # ID是0时为 无 ,某些地方便于判断。
end
#--------------------------------------------------------------------------
def [](weapon_id)
return @data[weapon_id] # 根据ID获取装备。
end
#--------------------------------------------------------------------------
def add_weapon(base_id) #根据数据库基本武器ID,添加新武器
weapon = New_Weapon.new(base_id, make_id)
@data[weapon.id] = weapon
end
#--------------------------------------------------------------------------
def make_id
#根据储存哈希来生成新武器的ID。
#默认最多同时拥有 10000 把武器。
10000.times{|i| return i unless @data.keys.include?(i)}
end
#--------------------------------------------------------------------------
def delete_weapon(weapon_id) #根据武器ID删除该武器。(用于丢弃或出售)
@data.delete(weapon_id)
end
end
#==============================================================================
# 新的独立的武器类
class New_Weapon
#--------------------------------------------------------------------------
def initialize(base_id, id)
@base_id = base_id #基本ID,用于读取数据库基本武器数据,名字,说明,,等
@id = id
@exp = 0 #下面就可以加一些新东西,比如经验,等级。
@level = 1
end
#--------------------------------------------------------------------------
def id # ID
return @id
end
#--------------------------------------------------------------------------
def level # 等级
return @level
end
#--------------------------------------------------------------------------
def name # 名字
return $data_weapons[@base_id].name
end
#--------------------------------------------------------------------------
# 比如示范一个武器攻击力根据等级加成。
def atk
base_atk = $data_weapons[@base_id].atk
add = (@level-1) * 8.0 * base_atk / 100 # 假设每升一级加 8% 。
return Integer(base_atk + add)
end
end
#==============================================================================
复制代码
武器独立出来,背包,装备的得失,人物装备过程,人物的一些与装备相关的属性,商店,,,,等,都需要修改,所以我才说这个比较麻烦。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1