Project1
标题:
关于装备固定
[打印本页]
作者:
倾师战界
时间:
2012-1-31 20:08
标题:
关于装备固定
我想主角遇到了某样神器,然后以后就只能装备这件武器(就像仙剑3的景天),怎样才能实现发生了事件之后,装备固定更换不能呢? dsu_plus_rewardpost_czw
作者:
风中萧萧
时间:
2012-1-31 20:25
这个脚本允许你创建不能卸下的诅咒装备,唯一被卸下的方法是通过事件里面的更改角色装备,一旦装备,诅咒武器和防具将会显示紫色。
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
#==============================================================================
# ■ Game_System
#------------------------------------------------------------------------------
# 处理系统附属数据的类。也可执行诸如 BGM 管理之类的功能。
#==============================================================================
class Game_System
attr_accessor :cursed_weapons
attr_accessor :cursed_armors
alias carol3_ini initialize
def initialize
@cursed_weapons = [] #——在这里输入诅咒武器的编号,用逗号隔开。
@cursed_armors = [] #——在这里输入诅咒防具编号,逗号隔开。比如 = [1,2,3,4]
carol3_ini
end
end
#==============================================================================
# ■ Scene_Equip
#------------------------------------------------------------------------------
# 处理装备画面的类。
#==============================================================================
class Scene_Equip
def update_right
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Menu.new(2)
return
end
if Input.trigger?(Input::C)
w = @actor.weapon_id
a1 = @actor.armor1_id
a2 = @actor.armor2_id
a3 = @actor.armor3_id
a4 = @actor.armor4_id
if @actor.equip_fix?(@right_window.index)
$game_system.se_play($data_system.buzzer_se)
return
end
if @right_window.index == 0 && $game_system.cursed_weapons.include?(w)
$game_system.se_play($data_system.buzzer_se)
return
elsif @right_window.index == 1 && $game_system.cursed_armors.include?(a1)
$game_system.se_play($data_system.buzzer_se)
return
elsif @right_window.index == 2 && $game_system.cursed_armors.include?(a2)
$game_system.se_play($data_system.buzzer_se)
return
elsif @right_window.index == 3 && $game_system.cursed_armors.include?(a3)
$game_system.se_play($data_system.buzzer_se)
return
elsif @right_window.index == 4 && $game_system.cursed_armors.include?(a4)
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
@right_window.active = false
@item_window.active = true
@item_window.index = 0
return
end
if Input.trigger?(Input::R)
$game_system.se_play($data_system.cursor_se)
@actor_index += 1
@actor_index %= $game_party.actors.size
$scene = Scene_Equip.new(@actor_index, @right_window.index)
return
end
if Input.trigger?(Input::L)
$game_system.se_play($data_system.cursor_se)
@actor_index += $game_party.actors.size - 1
@actor_index %= $game_party.actors.size
$scene = Scene_Equip.new(@actor_index, @right_window.index)
return
end
end
end
#==============================================================================
# ■ Window_EquipRight
#------------------------------------------------------------------------------
# 装备画面、显示角色现在装备的物品的窗口。
#==============================================================================
class Window_EquipRight < Window_Selectable
def draw_item_name(item, x, y)
if item == nil
return
end
bitmap = RPG::Cache.icon(item.icon_name)
if item.is_a?(RPG::Weapon) && $game_system.cursed_weapons.include?(item.id)
self.contents.font.color = cursed_color
end
if item.is_a?(RPG::Armor) && $game_system.cursed_armors.include?(item.id)
self.contents.font.color = cursed_color
end
self.contents.draw_text(x + 28, y, 212, 32, item.name)
end
end
#==============================================================================
# ■ Window_Base
#------------------------------------------------------------------------------
# 游戏中全部窗口的超级类。
#==============================================================================
class Window_Base < Window
def cursed_color
return Color.new(255, 107, 255)
end
end
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
复制代码
作者:
倾师战界
时间:
2012-1-31 20:36
额……那个脚本报错……91行……
本人脚本纯小白……
‘‘
91行报错是怎么回事?我脚本尚没有入门,不是很懂……
──倾师战界于2012-1-31 20:41补充以上内容’’
作者:
风中萧萧
时间:
2012-1-31 20:41
15行设置武器ID,
作者:
倾师战界
时间:
2012-1-31 21:02
风中萧萧 发表于 2012-1-31 20:41
15行设置武器ID,
……还是不行……
91行发生了NoMethodError.
undefined method 'include?' for nil:NilClass
作者:
hys111111
时间:
2012-1-31 21:36
本帖最后由 hys111111 于 2012-1-31 21:40 编辑
在事件中使用,可以将角色现在的装备强制固定
$data_actors[角色编号].weapon_fix=true
(武器)
$data_actors[角色编号].armor1_fix=true
(防具1)
$data_actors[角色编号].armor2_fix=true
(防具2)
以此类推
同样,false就是解除固定
‘‘
补充:
假设15号武器是你说的神器,就用并行处理,即可完成固定:
条件分歧:1号角色,15号武器装备中(脚本表示:$data_actors[1].weapon==15)
$data_actors[1].weapon_fix=true
分歧结束
──hys111111于2012-1-31 21:39补充以上内容’’
作者:
倾师战界
时间:
2012-1-31 23:07
还是搞不定啊~
@风中萧萧
可不可以告诉我会关系到其他什么脚本么?我其中系统的脚本也有稍微改过……但貌似找不到原因……
作者:
风中萧萧
时间:
2012-1-31 23:15
应该和装备类脚本脚本冲突,你用6楼事件并行处理试试!
作者:
dnf520com
时间:
2012-1-31 23:27
冲突的问题吧,2楼的应该是真确的。
作者:
倾师战界
时间:
2012-2-1 21:13
我把整个游戏从新来过,好像还挺正常……
就是读档有问题……
无论如何,谢谢各位前辈!
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1