@window_gold = Window_Gold.new
@window_gold.x = 640 - @window_gold.width - 32 #右下角窗口
@window_gold.y = 480 - @window_gold.height - 32
@windows << @window_gold << @window_shopcommand << @window_mercenaries << @window_help
@window_help.visible = false
@spriteset = Spriteset_Map.new
end
def main_loop
while $scene == self
rm_update
update_window
input_update
end
end
def main_end
@windows.each{ |window|window.dispose }
@spriteset.dispose
end
def rm_update
Graphics.update
Input.update
end
def update_window
@windows.each{ |window|window.update }
update_help
end
def update_help
if @window_mercenaries.active=true
@window_help.visible=true
wx=@window_mercenaries.index%@window_mercenaries.column_max*64
wy=@window_mercenaries.index/@window_mercenaries.column_max*80
@window_help.x=wx+@window_mercenaries.x+64
@window_help.y=wy+@window_mercenaries.y+80
if @window_help.x+@window_help.width>640
@window_help.x=640-@window_help.width
end
if @window_help.y+@window_help.height>480
@window_help.y=480-@window_help.height
end
@window_help.draw_actors($game_actors[@window_mercenaries.id])
else
@window_help.visible=false
end
end
def input_update
if Input.trigger?(Input::B)
@window_shopcommand.active=true
@window_mercenaries.active=false
@window_mercenaries.index=-1
return
end
if Input.trigger?(Input::C)
if @window_shopcommand.active
case @window_shopcommand.index
when 0 #准备雇佣窗口
#出现2-9号角色的窗口
p @window_mercenaries.id
@window_mercenaries.set_mercenaries(@temp)
@type=0
@window_shopcommand.active=false
@window_mercenaries.active=true
@window_mercenaries.index = 0
return
when 1#准备解雇窗口
p @window_mercenaries.id
actors=[]
for actor in $game_party.actors
actors<<actor.id
end
# @mercenaries=[3,4,5,6,7,8,9],@window_mercenaries.id=9
@type = 1
@window_shopcommand.active=false
@window_mercenaries.active=true
@window_mercenaries.index = 0
return
when 2
$scene=Scene_Map.new
return
end
end
# end #如果这里有end,角色迅速雇佣,是回车键
case @type
when 0 #雇佣2号角色的窗口
if $game_party.gold>=$game_actors[@window_mercenaries.id].price
if $game_party.actors.size<4
$game_party.lose_gold($game_actors[@window_mercenaries.id].price)
$game_party.add_actor(@window_mercenaries.id)
# @mercenaries=[2,3,4,5,6,7,8,9],@window_mercenaries.id=2
@window_mercenaries.refresh
if @window_mercenaries.index>@window_mercenaries.mercenaries.size-1
@window_mercenaries.index=@window_mercenaries.mercenaries.size-1
end
end
end
when 1 #解雇2号角色的窗口
if @window_mercenaries.id != 1
$game_party.gain_gold($game_actors[@window_mercenaries.id].price/2)
$game_party.remove_actor(@window_mercenaries.id)
# @mercenaries=[1,2],@window_mercenaries.id=2
@temp<<@window_mercenaries.id
if @window_mercenaries.index>@window_mercenaries.mercenaries.size-1
@window_mercenaries.index=@window_mercenaries.mercenaries.size-1
end
end
end# Input::C
@window_gold.refresh
end
end
end #雇佣场景类
end
class Game_Actor
def price [email protected](/,/)[1].nil? ? 0 : @name.split(/,/)[1]
return price*self.level
end
def name [email protected](/,/)[0]
end
end
在地图上建一事件,用脚本:
a=[2,3,4,5,6,7,8]
$scene=\
Mercenaries::\
Scene_Mercenaries.new(a)
请问:在P@window_mercenaries.id 的两个地方,为什么在雇佣转解雇 和 解雇转雇佣的时候,总是P出最大的值? 作者: srwjrevenger 时间: 2023-11-18 12:11
@mercenaries [2,3,4,5,6,7,8] p 8
↑ @window_mercenaries.id 8
↑
@mercenaries[self.index] 8
↑
@window_mercenaries.index -1
↑
def input_update
if Input.trigger?(Input::B)
@window_shopcommand.active=true
@window_mercenaries.active=true
@window_mercenaries.index=-1 # ←
end
if Input.trigger?(Input::C)
if @window_shopcommand.active
case @window_shopcommand.index