Project1
标题:
求武器等级脚本,有上限的那种
[打印本页]
作者:
峰星
时间:
2011-1-29 23:16
提示:
作者被禁止或删除 内容自动屏蔽
作者:
predecessor
时间:
2011-1-29 23:24
回复
峰星
的帖子
module RPG
class Weapon
def level
return 1 if @description.split(/★/)[1] == nil
return @description.split(/★/)[1]
end
def description
return @description.split(/★/)[0] == nil ? "" : @description.split(/★/)[0]
end
end
class Armor
def level
return 1 if @description.split(/★/)[1] == nil
return @description.split(/★/)[1]
end
def description
return @description.split(/★/)[0] == nil ? "" : @description.split(/★/)[0]
end
end
end
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● 可以装备判定
# item : 物品
#--------------------------------------------------------------------------
def equipable?(item)
# 武器的情况
if item.is_a?(RPG::Weapon)
# 包含当前的职业可以装备武器的场合
if $data_classes[@class_id].weapon_set.include?(item.id) and item.level.to_i<=@level
return true
end
end
# 防具的情况
if item.is_a?(RPG::Armor)
# 不包含当前的职业可以装备武器的场合
if $data_classes[@class_id].armor_set.include?(item.id) and item.level.to_i<=@level
return true
end
end
return false
end
end
#==============================================================================
# ■ Window_EquipItem
#------------------------------------------------------------------------------
# 装备画面、显示浏览变更装备的候补物品的窗口。
#==============================================================================
class Window_EquipItem < Window_Selectable
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
if self.contents != nil
self.contents.dispose
self.contents = nil
end
@data = []
# 添加可以装备的武器
if @equip_type == 0
weapon_set = $data_classes[@actor.class_id].weapon_set
for i in 1...$data_weapons.size
if $game_party.weapon_number(i) > 0 and weapon_set.include?(i) and @actor.equipable?($data_weapons[i])
@data.push($data_weapons[i])
end
end
end
# 添加可以装备的防具
if @equip_type != 0
armor_set = $data_classes[@actor.class_id].armor_set
for i in 1...$data_armors.size
if $game_party.armor_number(i) > 0 and armor_set.include?(i) and @actor.equipable?($data_armors[i])
if $data_armors[i].kind == @equip_type-1
@data.push($data_armors[i])
end
end
end
end
# 添加空白
@data.push(nil)
# 生成位图、描绘全部项目
@item_max = @data.size
self.contents = Bitmap.new(width - 32, row_max * 32)
for i in 0...@item_max-1
draw_item(i)
end
end
end
复制代码
具体是哪位大虾的代码记不清了,使用方法是在main前插入复制脚本,再在装备说明栏中最后加:比如“★10”代表10级可装备
作者:
峰星
时间:
2011-1-30 13:23
提示:
作者被禁止或删除 内容自动屏蔽
作者:
949801120
时间:
2011-2-1 18:51
很好用,3Q
作者:
OWOWOW
时间:
2011-2-1 20:01
2L答非所问吧
LZ指的是装备的效果有波动,即有偏差。
-----------------------
但是这样就很不好了,
比如没有脚本之前,你有2把铁剑,同时占背包一个位置,标注为“铁剑×2”
而有脚本后,每个装备都要单独占一个背包的位置,铁剑的标注方法就变成了“铁剑×1”和“铁剑×1”
而且这种脚本根本没有什么实用性嘛,这种小幅波动有什么使用的价值?没意义啊!
作者:
忧雪の伤
时间:
2011-2-2 15:41
有个脚本叫做武器攻击力波动
class Game_Party
def gain_weapon(weapon_id, n)
if weapon_id > 0
# 商店购买 或 装备栏中卸下的武器不进行随机处理~
if $scene.is_a?(Scene_Shop) or $scene.is_a?(Scene_Equip)
@weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, 99].min
else
# 随机浮动范围~★★★★★★★
add_atk = rand(50)-25
if add_atk == 0
@weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, 99].min
else
now = 0
# 判断数据库中是否已经有 相同属性的武器~
for i in weapon_id...$data_weapons.size
if $data_weapons[i].atk == $data_weapons[weapon_id].atk+add_atk and
($data_weapons[i].name.split('+')[0] == $data_weapons[weapon_id].name or $data_weapons[i].name.split('-')[0] == $data_weapons[weapon_id].name)
now = i
break
end end
if now == 0
# 无相同属性时则 重新生成~
new_weapon = $data_weapons[weapon_id].clone
new_weapon.id = $data_weapons.size
if add_atk<0
new_weapon.name = $data_weapons[weapon_id].name+"-"+add_atk.abs.to_s
else
new_weapon.name = $data_weapons[weapon_id].name+"+"+add_atk.abs.to_s
end
new_weapon.atk = $data_weapons[weapon_id].atk+add_atk
$data_weapons.push(new_weapon)
# 职业可装备武器数组更新~
for i in 1...$data_classes.size
if $data_classes[i].weapon_set.include?(weapon_id)
$data_classes[i].weapon_set.push(new_weapon.id)
end
end
# 增加武器~
@weapons[new_weapon.id] = [[weapon_number(new_weapon.id) + n, 0].max, 99].min
else
# 有相同属性则直接 增加武器~
@weapons[now] = [[weapon_number(now) + n, 0].max, 99].min
end
end
end
end
end
def lose_weapon(weapon_id, n)
if weapon_id > 0
@weapons[weapon_id] = [[weapon_number(weapon_id) - n, 0].max, 99].min
end
end
end
复制代码
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1