class Weapon
# when 1 ←这个数字是武器ID
# return
def base_action
case @id
when 1
return "普通攻击"
case @battler.id
when 2
return "强烈攻击" #<- 这个我已经在脚本里写好了
end
else
return "普通攻击"
end
end
结果是完全无效,用case @actor_id也是不行的,都是读取"普通攻击", 于是我又换了种方法:
class Game_Actor < Game_Battler
def base_action
case @battler.id
when 2
return "强烈攻击" #<- 这个我已经在脚本里写好了
end
else
return "普通攻击"
end
end
上述方法也是完全没有效果,所以请高人指点迷津.作者: Flyingpww 时间: 2009-11-3 14:31
class Game_Actor < Game_Battler
def base_action
case id
when 2
return "强烈攻击" #<- 这个我已经在脚本里写好了
end
return "普通攻击"
end
end
这里是战斗部分执行攻击动作的代码:
-------------------------------------------------------------------
def execute_action_attack
if @active_battler.actor?
if @active_battler.weapon_id == 0
action = @active_battler.non_weapon
immortaling
else action = $data_weapons[@active_battler.weapon_id].base_action
if $data_weapons[@active_battler.weapon_id].state_set.include?(1)
for member in $game_party.members + $game_troop.members
next if member.immortal
next if member.dead?
member.dying = true
end
else
immortaling
end
end
else
if @active_battler.weapon == 0
action = @active_battler.base_action
immortaling
else
action = $data_weapons[@active_battler.weapon].base_action
if $data_weapons[@active_battler.weapon].state_set.include?(1)
for member in $game_party.members + $game_troop.members
next if member.immortal
next if member.dead?
member.dying = true
end
else
immortaling
end
end
end
target_decision
@spriteset.set_action(@active_battler.actor?, @active_battler.index, action)
playing_action
end