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的结构了解不多。我只能提供一个武器的思路,防具也可以同样的思路来写。

  1. #==============================================================================
  2. #储存所有武器的类,在存取档时需要加上其 储存和读取 。
  3. class Game_Weapons
  4.   #--------------------------------------------------------------------------
  5.   def initialize
  6.     @data = {0=>nil}    # ID是0时为 无 ,某些地方便于判断。
  7.   end
  8.   #--------------------------------------------------------------------------
  9.   def [](weapon_id)
  10.     return @data[weapon_id]  # 根据ID获取装备。
  11.   end
  12.   #--------------------------------------------------------------------------
  13.   def add_weapon(base_id)  #根据数据库基本武器ID,添加新武器
  14.     weapon = New_Weapon.new(base_id, make_id)
  15.     @data[weapon.id] = weapon
  16.   end
  17.   #--------------------------------------------------------------------------
  18.   def make_id
  19.     #根据储存哈希来生成新武器的ID。
  20.     #默认最多同时拥有 10000 把武器。
  21.     10000.times{|i| return i unless @data.keys.include?(i)}
  22.   end
  23.   #--------------------------------------------------------------------------
  24.   def delete_weapon(weapon_id) #根据武器ID删除该武器。(用于丢弃或出售)
  25.     @data.delete(weapon_id)
  26.   end
  27. end
  28. #==============================================================================
  29. # 新的独立的武器类
  30. class New_Weapon
  31.   #--------------------------------------------------------------------------
  32.   def initialize(base_id, id)
  33.     @base_id = base_id     #基本ID,用于读取数据库基本武器数据,名字,说明,,等
  34.     @id = id  
  35.     @exp = 0            #下面就可以加一些新东西,比如经验,等级。
  36.     @level = 1
  37.   end
  38.   #--------------------------------------------------------------------------
  39.   def id        # ID
  40.     return @id
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   def level     # 等级
  44.     return @level
  45.   end
  46.   #--------------------------------------------------------------------------
  47.   def name      # 名字
  48.     return $data_weapons[@base_id].name
  49.   end
  50.   #--------------------------------------------------------------------------
  51.   # 比如示范一个武器攻击力根据等级加成。
  52.   def atk
  53.     base_atk = $data_weapons[@base_id].atk
  54.     add = (@level-1) * 8.0 * base_atk / 100  # 假设每升一级加 8% 。
  55.     return Integer(base_atk + add)
  56.   end
  57. end
  58. #==============================================================================
复制代码


武器独立出来,背包,装备的得失,人物装备过程,人物的一些与装备相关的属性,商店,,,,等,都需要修改,所以我才说这个比较麻烦。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1