Project1

标题: 怎么可以随机获得武器装备的属性 [打印本页]

作者: 枪胜贤者    时间: 2011-3-29 19:10
标题: 怎么可以随机获得武器装备的属性
怎么可以随机获得武器装备的属性
事件和脚本都可以
作者: 小传子    时间: 2011-3-29 23:53

  1. class Game_Party

  2. def gain_weapon(weapon_id, n)
  3.    if weapon_id > 0
  4.      # 商店购买 或 装备栏中卸下的武器不进行随机处理~
  5.      
  6.       
  7.      if $scene.is_a?(Scene_Map) or $scene.is_a?(Scene_Shop)
  8.        @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, 99].min
  9.      else
  10.        # 随机浮动范围~★★★★★★★
  11.        add_atk = rand(200)-60
  12.         if add_atk == 0
  13.          @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, 99].min
  14.        else
  15.          now = 0
  16.          # 判断数据库中是否已经有 相同属性的武器~
  17.          for i in weapon_id...$data_weapons.size
  18.            if $data_weapons[i].atk == $data_weapons[weapon_id].atk+add_atk and
  19.             ($data_weapons[i].name.split('+')[0] == $data_weapons[weapon_id].name or $data_weapons[i].name.split('-')[0] == $data_weapons[weapon_id].name)
  20.              now = i
  21.              break
  22.            end         end
  23.          if now == 0
  24.            # 无相同属性时则 重新生成~
  25.            new_weapon = $data_weapons[weapon_id].clone
  26.            new_weapon.id = $data_weapons.size
  27.            if add_atk<0
  28.              new_weapon.name = $data_weapons[weapon_id].name+"-"+add_atk.abs.to_s
  29.            else
  30.              new_weapon.name = $data_weapons[weapon_id].name+"+"+add_atk.abs.to_s
  31.            end
  32.            new_weapon.atk = $data_weapons[weapon_id].atk+add_atk
  33.            $data_weapons.push(new_weapon)
  34.            # 职业可装备武器数组更新~
  35.            for i in 1...$data_classes.size
  36.              if $data_classes[i].weapon_set.include?(weapon_id)
  37.                $data_classes[i].weapon_set.push(new_weapon.id)
  38.              end
  39.            end
  40.            # 增加武器~
  41.            @weapons[new_weapon.id] = [[weapon_number(new_weapon.id) + n, 0].max, 99].min
  42.          else
  43.            # 有相同属性则直接 增加武器~
  44.            @weapons[now] = [[weapon_number(now) + n, 0].max, 99].min
  45.          end
  46.        end
  47.      end
  48.    end
  49. end

  50. def lose_weapon(weapon_id, n)   
  51.    if weapon_id > 0
  52.      @weapons[weapon_id] = [[weapon_number(weapon_id) - n, 0].max, 99].min
  53.    end
  54. end

  55. end
复制代码
夏娜姐姐写的,这是仅仅是add_atk 你可以自己试着摸索




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