- nathanMembre
- Nombre de messages : 26
Distinction : aucune
Date d'inscription : 09/03/2011
probleme abs 4 requiem [résolu]
Sam 24 Déc 2011 - 10:04
salut tout le monde
J'utilise le script abs 4 requiem pour mon projet et je ne sais pas comment modifier l'argent.
La monnaie est en $ or je veux que la monnaie soient en gills comme la monnaie des final fantasy
Voici le script en question:
J'utilise le script abs 4 requiem pour mon projet et je ne sais pas comment modifier l'argent.
La monnaie est en $ or je veux que la monnaie soient en gills comme la monnaie des final fantasy
Voici le script en question:
- Code:
#==============================================================================
]# Requiem ABS Version 4.0
#==============================================================================
#------------------------------------------------------------------------------
# Credits: Vlad | Email: demon_of_lust@live.com
# Traduit en français par : Calion
#------------------------------------------------------------------------------
# Pour créer une ennemi, mettre les commentaire suivant sur un évènement, sur une map:
#(Pour modifier les commentaires à mettre pour les commandes qui suivent, voir de la ligne 706 à 723.)[/spoiler]
# Enemy ID - Remplacer "ID" par le numéro de l'ID du monstre dont l'ennemi doit avoir les caractéristiques.
# Die Erase - Efface l'ennemi lorsqu'il meurt;
# Die Self Switch A - Active l'interrupteur local A quand l'ennemi meurt;
# Die Self Switch B - Active l'interrupteur local B quand l'ennemi meurt;
# Die Self Switch C - Active l'interrupteur local C quand l'ennemi meurt;
# Die Self Switch D - Active l'interrupteur local D quand l'ennemi meurt;
# Die Switch X - Active l'interrupteur "X " quand l'ennemi meurt;
# Die Variable X - Ajoute +1 à la variable "X";
# Follow X - Changer "X" par la vitesse de déplacement de l'ennemi, il suivra automatiquement le joueur.
# Kill With Weapon X - L'ennemi mourra seulement si il est attaqué par l'arme à l'ID "X"
# Kill With Skill X - L'ennemi mourra seulement si il est attaqué par la compétence à l'ID "X"
# Kill With Item X - L'ennemi mourra seulement si il est attaqué par l'objet à l'ID "X"
# Object - Fait que l'ennemi est un objet, et ne peut pas être tué.
# Puzzle - Fait que l'ennemi est un puzzle, il peut être tué mais les alliés ne le suivent pas, les dommages et la
#barre de vie ne sont pas montrés.
# Respawn X - Fait que l'ennemi ressuscite automatiquement après "X" frames.
# Boss - Montre la barre de vie du boss
#------------------------------------------------------------------------------
# GENERAL CONFIGURATIONS
#------------------------------------------------------------------------------
module Requiem_ABS
#------------------------------------------------------------------------------
# Main droite touche d'attaque:
Right_Attack_Button = Input::Letters["A"]
# Main gauche touche d'attaque et Bouclier:
Left_Attack_and_Shield_Button = Input::Letters["S"]
# Touches de compétences:
Skill_Buttons = [InputNumberkeys[1], Input::Numberkeys[2], Input::Numberkeys[3]]
# Touches d'objets:
Item_Buttons = [InputNumberkeys[4], Input::Numberkeys[5], Input::Numberkeys[6]]
# Texte qui apparait lorsqu'une compétence ou un objet est mémorisé.
Memorize_Text = "Memorisé !"
# Temps d'attaque pour le joueur (in frames)
Hero_Attack_Time = 60
# Temps d'attaque pour l'ennemi (in frames)
Enemy_Attack_Time = 90
# Divize la taille des animations par :
Animations_Divide_By = 3
# Utiliser les animations des attaques ? (true = oui / false = non)
Allow_Weapons_Graphics = true
# Utiliser le bouclier ? (true = oui / false = non)
Allow_Shields_Graphics = true
# Utiliser les combos ? (true = oui / false = non)
Combo_Damage = true
# Animation de l'augmentation de niveau : ( changer 40 par le numéro de l'ID de l'animation voulu )
LevelUp_Animation = 40
# Restaurer les PV et les PM quand le niveau du joueur augmente ? (true = oui / false = non)
Restaure_When_UpLevel = true
# ID de l'icone d'argent : ( changer 147 par le numéro de l'ID de l'icone voulu )
Gold_Drop_Graphic = 147
# Pourcentage de chance que de l'or tombe d'un ennemi
Gold_Drop_Rate = 75#%
# Temps de récupération avant la disparition d'un objet (en frames):
Drop_Duration_Time = 450
# Montrer le nom des objets tombés ? (true = oui / false = non)
Show_Reward = true
# Son quand de l'argent tombe :
Drop_Money_SE = "DropMoney"
# Son quand un objet tombe:
Drop_Item_SE = "DropItem"
# Son quand de l'argent ou un objet est récupéré :
Get_Reward_SE = "Getitem"
# Configuration des textes de dommages :
Damage_Properties = []
Damage_Properties[1] = "Georgia" # Police d'écritures des dommages
Damage_Properties[2] = 22 # Taille du texte
Damage_Properties[3] = false # Texte en gras ? (true = oui / false = non)
Damage_Properties[4] = true # Texte en italique ? (true = oui / false = non)
Damage_Properties[5] = "Coup Critique !" # Texte de dommages critiques
Damage_Properties[6] = "Manqué" # Texte d'attaque manqué
Damage_Properties[7] = "Hits" # Texte quand un coup est donné
Damage_Properties[8] = "Times New Roman" # Police d'écriture du texte
Damage_Properties[9] = 26 # Taille du texte
Damage_Properties[10] = true # Texte en gras ? (true = oui / false = non)
Damage_Properties[11] = true # Texte en italique ? (true = oui / false = non)
Damage_Properties[12] = "Combo" # Texte lors d'un combo
Damage_Properties[13] = Color.new(255,255,255) # Couleur de l'écriture des dommages
Damage_Properties[14] = Color.new(125,200,115) # Couleur de l'écriture lorsque le joueur se régènere
Damage_Properties[15] = Color.new(255,255,128) # Couleur de l'écriture des dommages critiques
Damage_Properties[16] = Color.new(245,150,120) # Couleur de l'écriture des dommages en combo
Damage_Properties[17] = Color.new(210,160,210) # Couleur de l'écriture des coups
Damage_Properties[18] = "Guard" # Texte de Défense
Damage_Properties[19] = "Level Up" # Texte d'augmentation de niveau.
#------------------------------------------------------------------------------
end
#==============================================================================
#------------------------------------------------------------------------------
# Module RPG
#------------------------------------------------------------------------------
module RPG
class State
def animation_id
self.note.each_line { |line|
return line.gsub('Animation = ', '').to_i if line.include?('Animation = ')
}
return 0
end
def walk_slower?
self.note.each_line { |line| return true if line.include?("Walk Slower") }
return false
end
def walk_faster?
self.note.each_line { |line| return true if line.include?("Walk Faster") }
return false
end
def dont_walk?
self.note.each_line { |line| return true if line.include?("Don't Walk") }
return false
end
def duration
self.note.each_line { |line|
return line.gsub('Duration = ', '').to_i if line.include?('Duration = ')
}
return 300
end
end
class BaseItem
def ranged?
self.note.each_line { |line| return true if line.include?("Ranged") }
return false
end
def explosive?
self.note.each_line { |line| return true if line.include?("Explosive") }
return false
end
def bomb?
self.note.each_line { |line| return true if line.include?("Bomb") }
return false
end
def graphic
self.note.each_line { |line|
if line.include?('Graphic = ')
graphic = line.gsub!('Graphic = ', '')
return graphic.chop
end
}
return ""
end
def index
self.note.each_line { |line|
return line.gsub('Index = ', '').to_i if line.include?('Index = ')
}
return 0
end
def move_speed
self.note.each_line { |line|
return line.gsub('Speed = ', '').to_i if line.include?('Speed = ')
}
return 4
end
def range
self.note.each_line { |line|
return line.gsub('Range = ', '').to_i if line.include?('Range = ')
}
return 5
end
def delay
self.note.each_line { |line|
return line.gsub('Delay = ', '').to_i if line.include?('Delay = ')
}
return 60
end
def area
self.note.each_line { |line|
return line.gsub('Area = ', '').to_i if line.include?('Area = ')
}
return 3
end
def shot_se
self.note.each_line { |line|
return line.gsub('Shot SE = ', '').to_s if line.include?('Shot SE = ')
}
return nil
end
def combo_hits
self.note.each_line { |line|
return line.gsub('Combo Hits = ', '').to_i if line.include?('Combo Hits = ')
}
return 5
end
def combo_rate
self.note.each_line { |line|
return line.gsub('Combo Rate = ', '').to_i if line.include?('Combo Rate = ')
}
return 75
end
def ammo1
self.note.each_line { |line|
return $data_items[line.gsub('Ammo1 = ', '').to_i] if line.include?('Ammo1 = ')
}
return nil
end
def ammo2
self.note.each_line { |line|
return $data_items[line.gsub('Ammo2 = ', '').to_i] if line.include?('Ammo2 = ')
}
return nil
end
def defense_rate
self.note.each_line { |line|
return line.gsub('Defense Rate = ', '').to_i if line.include?('Defense Rate = ')
}
return 75
end
end
end
#------------------------------------------------------------------------------
# Game Battler
#------------------------------------------------------------------------------
class Game_Battler
attr_accessor (:combo, :state_turns)
alias requiem_abs_gbattler_execute_damage execute_damage
def make_attack_damage_value(attacker)
damage = attacker.atk * 4 - self.def * 2
damage = 0 if damage < 0
damage *= elements_max_rate(attacker.element_set)
damage /= 100
if damage == 0
damage = rand(2)
elsif damage > 0
@critical = (rand(100) < attacker.cri)
@critical = false if prevent_critical
damage *= 2 if @critical
if attacker.is_a?(Game_Actor) and Requiem_ABS::Combo_Damage
if $game_player.right_attack_on and attacker.weapons[0] != nil
hits = attacker.weapons[0].combo_hits
rate = attacker.weapons[0].combo_rate
elsif $game_player.left_attack_on and attacker.weapons[1] != nil
hits = attacker.weapons[1].combo_hits
rate = attacker.weapons[1].combo_rate
elsif $game_player.right_attack_on and attacker.weapons[0].nil?
hits = 5
rate = 75
elsif $game_player.left_attack_on and attacker.weapons[1].nil?
hits = 5
rate = 75
else
hits = rate = 0
end
@combo = ($game_player.hits >= hits and rand(100) <= rate)
else
@combo = false
end
damage *= 3 if @combo
damage = apply_variance(damage, 20)
damage = apply_guard(damage)
@hp_damage = damage
end
end
def remove_state(state_id)
return unless state?(state_id)
@states.delete(state_id)
@state_turns.delete(state_id)
end
end
#------------------------------------------------------------------------------
# Game Actor
#------------------------------------------------------------------------------
class Game_Actor
attr_accessor (:skill_hotkeys, :item_hotkeys)
alias requiem_abs_gactor_initialize initialize
def initialize(actor_id)
requiem_abs_gactor_initialize(actor_id)
reset_keys
end
def display_level_up(new_skills)
$game_system.battle_end_me.play
$game_player.animation_id = Requiem_ABS::LevelUp_Animation
if Requiem_ABS::Restaure_When_UpLevel
$game_player.actor.hp = $game_player.actor.maxhp
$game_player.actor.mp = $game_player.actor.maxmp
end
end
def atk_animation_id2
if two_swords_style
return weapons[1].nil? ? 1 : weapons[1].animation_id
else
return 1
end
end
def reset_keys
skil_key = {}
key_skil = []
for s in Requiem_ABS::Skill_Buttons
key_skil.push(s)
skil_key[s] = 0
end
@skill_hotkeys = skil_key
conjure_key = {}
item_key = {}
key_item = []
for i in Requiem_ABS::Item_Buttons
key_item.push(i)
item_key[i] = 0
end
@item_hotkeys = item_key
end
end
#------------------------------------------------------------------------------
# Game Enemy
#------------------------------------------------------------------------------
class Game_Enemy < Game_Battler
def attack_animation_id
enemy.note.each_line { |line|
return line.gsub('Attack Animation = ', '').to_i if line.include?('Attack Animation = ')
}
return 1
end
def die_animation_id
enemy.note.each_line { |line|
return line.gsub('Die Animation = ', '').to_i if line.include?('Die Animation = ')
}
return nil
end
def die_se
enemy.note.each_line { |line|
return line.gsub('Die SE = ', '').to_s if line.include?('Die SE = ')
}
return nil
end
end
#------------------------------------------------------------------------------
# Game Map
#------------------------------------------------------------------------------
class Game_Map
def passable?(x, y, flag = 0x01)
all_passable?(x, y, flag)
end
def hero_passable?(x, y, flag = 0x01)
all_passable?(x, y, flag)
end
def range_passable?(x, y, flag = 0x01)
return true if @passages[@map.data[x,y,0]] == 9
all_passable?(x, y, flag)
end
def all_passable?(x, y, flag = 0x01)
for drop in $game_drop
next if drop.nil?
return false if drop.x == x and drop.y == y
end
for event in events_xy(x, y)
next if event.tile_id == 0
next if event.priority_type > 0
next if event.through
pass = @passages[event.tile_id]
next if pass & 0x10 == 0x10
return true if pass & flag == 0x00
return false if pass & flag == flag
end
for i in [2, 1, 0]
tile_id = @map.data[x, y, i]
return false if tile_id.nil?
pass = @passages[tile_id]
next if pass & 0x10 == 0x10
return true if pass & flag == 0x00
return false if pass & flag == flag
end
return false
end
def update_events
for event in @events.values
if in_range?(event) or event.trigger == 3 or event.trigger == 4
event.update
end
end
for common_event in @common_events.values
common_event.update
end
end
def in_range?(object)
return false if object.real_x < (@display_x-256)
return false if object.real_x > (@display_x+(Graphics.width*8)+64)
return false if object.real_y < (@display_y-256)
return false if object.real_y > (@display_y+(Graphics.height*8)+64)
return true
end
end
#------------------------------------------------------------------------------
# Game Character
#------------------------------------------------------------------------------
class Game_Character
alias requiem_abs_gchar_initialize initialize
alias requiem_abs_gchar_update update
attr_accessor (:actor, :damage, :critical, :combo, :hit, :state_id, :ani_time,
:state_time, :weapon1_attack_time, :weapon2_attack_time, :skill_attack_time,
:item_attack_time, :recovery_time, :assigned_skill, :deffending,
:target, :character_name, :character_index, :show_bar, :graphic_name,
:graphic_index, :freeze, :original_move_speed, :anime_attack,
:right_attack_on, :left_attack_on, :priority_type)
def initialize
requiem_abs_gchar_initialize
@state_id = 0
@ani_time = 0
@state_time = 0
@weapon1_attack_time = 0
@weapon2_attack_time = 0
@skill_attack_time = 0
@item_attack_time = 0
@recovery_time = 0
@assigned_skill = 0
@original_move_speed = 0
@anime_attack = 0
@actor = nil
@damage = nil
@hit = nil
@target = nil
@critical = false
@combo = false
@deffending = false
@show_bar = false
@freeze = false
@right_attack_on = false
@left_attack_on = false
end
def update
requiem_abs_gchar_update
return if $game_party.members.size <= 0
decrease_counters
states_properties
$game_temp.next_scene = "gameover" if $game_party.members[0].dead?
end
def decrease_counters
@ani_time -= 1 if @ani_time > 0
@weapon1_attack_time -= 1 if @weapon1_attack_time > 0
@weapon2_attack_time -= 1 if @weapon2_attack_time > 0
@skill_attack_time -= 1 if @skill_attack_time > 0
@item_attack_time -= 1 if @item_attack_time > 0
@recovery_time -= 1 if @recovery_time > 0
@anime_attack -= 1 if @anime_attack > 0
if @anime_attack <= 0
@right_attack_on = false
@left_attack_on = false
end
end
def states_properties
if self.is_a?(Game_Event) and self.in_battle or self.is_a?(Game_Player)
anime_states
remove_state
states_effects
end
end
def anime_states
@state_id = 0
for state in @actor.states
return if state.nil? or state == 0
@state_id = state.id
end
end
def remove_state
return if @state_id.nil? or @state_id == 0
if @state_time < @actor.state_turns[@state_id] * 60
@state_time += 1
elsif @state_time >= @actor.state_turns[@state_id] * 60
for state in @actor.states
@freeze = false if state.dont_walk?
@move_speed = @original_move_speed if state.walk_slower?
@move_speed = @original_move_speed if state.walk_faster?
end
@actor.remove_state(@state_id)
@state_time = 0
end
end
def states_effects
for state in @actor.states
@freeze = true if state.dont_walk?
@move_speed = 2 if state.walk_slower?
@move_speed = 5 if state.walk_faster?
if self.is_a?(Game_Event) and @actor.slip_damage? and Graphics.frame_count % 60 <= 0
@actor.hp -= (@actor.maxhp*10/100)
end
end
end
def in_range?(parent, target, range)
x = (parent.x - target.x) * (parent.x - target.x)
y = (parent.y - target.y) * (parent.y - target.y)
r = x + y
return true if r <= (range * range)
return false
end
def in_direction?(parent, target)
return true if parent.direction == 2 and target.y >= parent.y and target.x == parent.x
return true if parent.direction == 4 and target.x <= parent.x and target.y == parent.y
return true if parent.direction == 6 and target.x >= parent.x and target.y == parent.y
return true if parent.direction == 8 and target.y <= parent.y and target.x == parent.x
return false
end
def in_front?(parent,target)
return true if parent.direction == 2 and parent.x == target.x and (parent.y+1) == target.y
return true if parent.direction == 4 and (parent.x-1) == target.x and parent.y == target.y
return true if parent.direction == 6 and (parent.x+1) == target.x and parent.y == target.y
return true if parent.direction == 8 and parent.x == target.x and (parent.y-1) == target.y
return false
end
def guard?(parent,target)
return true if parent.direction == 2 and target.direction == 8
return true if parent.direction == 4 and target.direction == 6
return true if parent.direction == 6 and target.direction == 4
return true if parent.direction == 8 and target.direction == 2
return false
end
def movable?
return false if moving?
return false if @move_route_forcing
return true
end
def move_toward(target)
sx = distance_x_from(target)
sy = distance_y_from(target)
if sx != 0 or sy != 0
if sx.abs > sy.abs
sx > 0 ? move_left : move_right
if @move_failed and sy != 0
sy > 0 ? move_up : move_down
end
else
sy > 0 ? move_up : move_down
if @move_failed and sx != 0
sx > 0 ? move_left : move_right
end
end
end
end
def turn_toward(target)
sx = distance_x_from(target)
sy = distance_y_from(target)
if sx.abs > sy.abs
sx > 0 ? turn_left : turn_right
elsif sx.abs < sy.abs
sy > 0 ? turn_up : turn_down
end
end
def distance_x_from(target)
sx = @x - target.x
if $game_map.loop_horizontal?
if sx.abs > $game_map.width / 2
sx -= $game_map.width
end
end
return sx
end
def distance_y_from(target)
sy = @y - target.y
if $game_map.loop_vertical?
if sy.abs > $game_map.height / 2
sy -= $game_map.height
end
end
return sy
end
end
#------------------------------------------------------------------------------
# Game Event
#------------------------------------------------------------------------------
class Game_Event < Game_Character
attr_reader (:in_battle, :kill_with_weapon, :kill_with_skill, :kill_with_item,
:respawn, :boss, :object, :puzzle)
alias requiem_abs_gevent_initialize initialize
alias requiem_abs_gevent_setup setup
alias requiem_abs_gevent_update update
alias requiem_abs_gevent_refresh refresh
def initialize(map_id, event)
@enemy_id = 0
@respawn = nil
@in_battle = false
@boss = false
@object = false
@puzzle = false
requiem_abs_gevent_initialize(map_id, event)
self.target = $game_player
end
def setup(new_page)
requiem_abs_gevent_setup(new_page)
self.original_move_speed = @move_speed
end
def update
requiem_abs_gevent_update
@respawn -= 1 if !@in_battle and self.actor.nil? and @respawn != nil and @respawn > 0
if @in_battle and !self.actor.dead?
make_attack($data_enemies[@enemy_id])
elsif @in_battle and self.actor.dead?
kill_enemy
erasing
elsif !@in_battle and self.actor.nil? and @respawn != nil and @respawn <= 0
@erased = false
@starting = false
refresh
end
end
def refresh
requiem_abs_gevent_refresh
@enemy_id = check_comment("Enemy")
@follow_distance = check_comment("Follow")
@erase = check_com("Die Erase")
@switch_local_a = check_com("Die Self Switch A")
@switch_local_b = check_com("Die Self Switch B")
@switch_local_c = check_com("Die Self Switch C")
@switch_local_d = check_com("Die Self Switch D")
@switch = check_comment("Die Switch")
@variable = check_comment("Die Variable")
@kill_with_weapon = check_comment("Kill With Weapon")
@kill_with_skill = check_comment("Kill With Skill")
@kill_with_item = check_comment("Kill With Item")
@boss = check_com("Boss")
@object = check_com("Object")
@puzzle = check_com("Puzzle")
if @enemy_id > 0 and !@in_battle
@respawn = check_comment("Respawn")
@respawn = nil if @respawn <= 0
self.actor = Game_Enemy.new(0, @enemy_id)
self.actor.recover_all
@in_battle = true
@killed = false
elsif @enemy_id <= 0
@in_battle = false
end
@opacity = 255
@blend_type = 0
end
def make_attack(enemy)
return if $game_map.interpreter.running?
return if $game_player.in_vehicle? or $game_player.in_airship?
for action in enemy.actions
next unless self.actor.conditions_met?(action) or rand(11) < action.rating
case action.kind
when 0
case action.basic
when 0
attack_normal
when 1
self.deffending = true
end
when 1
return if self.weapon1_attack_time > 0
self.assigned_skill = $data_skills[action.skill_id]
return if self.assigned_skill.nil?
case self.assigned_skill.scope
when 1..6
if self.assigned_skill.ranged?
if in_direction?(self, $game_player) and in_range?(self, $game_player, self.assigned_skill.range)
skill_range
elsif action.rating == 10
skill_range
end
else
skill_normal
end
when 7..11
skill_recover
end
end
end
end
def attack_normal
if in_front?(self,$game_player) and self.weapon1_attack_time <= 0
return if $game_player.actor.nil?
$game_player.animation_id = self.actor.attack_animation_id
if $game_player.deffending and $game_player.guard?(self, $game_player) and (rand(100)) <= $game_player.actor.equips[1].defense_rate
$game_player.damage = Requiem_ABS::Damage_Properties[18]
else
$game_player.actor.attack_effect(self.actor)
if $game_player.actor.hp_damage > 0
$game_player.damage = $game_player.actor.hp_damage
$game_player.critical = true if $game_player.actor.critical
else
$game_player.damage = Requiem_ABS::Damage_Properties[6]
end
$game_player.jump(0,0)
end
self.weapon1_attack_time = Requiem_ABS::Enemy_Attack_Time
end
end
def skill_normal
if self.actor.mp >= self.assigned_skill.mp_cost and in_front?(self, $game_player) and self.weapon1_attack_time <= 0
return if $game_player.actor.nil?
self.actor.mp -= self.actor.calc_mp_cost(self.assigned_skill)
$game_temp.common_event_id = self.assigned_skill.common_event_id if self.assigned_skill.common_event_id > 0
$game_player.animation_id = self.assigned_skill.animation_id
if $game_player.deffending and $game_player.guard?(self, $game_player) and !self.assigned_skill.ignore_defense and (rand(100)) <= $game_player.actor.equips[1].defense_rate
$game_player.damage = Requiem_ABS::Damage_Properties[18]
else
$game_player.actor.skill_effect(self.actor, self.assigned_skill)
if $game_player.actor.hp_damage > 0
$game_player.damage = $game_player.actor.hp_damage
else
$game_player.damage = Requiem_ABS::Damage_Properties[6]
end
$game_player.jump(0,0)
end
self.weapon1_attack_time = Requiem_ABS::Enemy_Attack_Time
end
end
def skill_range
if self.actor.mp >= self.assigned_skill.mp_cost and self.weapon1_attack_time <= 0
self.actor.mp -= self.actor.calc_mp_cost(self.assigned_skill)
$game_temp.common_event_id = self.assigned_skill.common_event_id if self.assigned_skill.common_event_id > 0
$game_range.push(Game_Range.new(self, self.assigned_skill.graphic, self.assigned_skill.index, self.assigned_skill.move_speed, self.assigned_skill.range, 3))
self.weapon1_attack_time = self.assigned_skill.delay
RPG::SE.new(self.assigned_skill.shot_se).play if self.assigned_skill.shot_se != nil
end
end
def skill_recover
if self.actor.mp >= self.assigned_skill.mp_cost and self.actor.hp <= (self.actor.maxhp*25/100) and self.weapon1_attack_time <= 0
self.actor.mp -= self.actor.calc_mp_cost(self.assigned_skill)
$game_temp.common_event_id = self.assigned_skill.common_event_id if self.assigned_skill.common_event_id > 0
@animation_id = self.assigned_skill.animation_id
self.actor.skill_effect(self.actor, self.assigned_skill)
if self.actor.hp_damage < 0
self.damage = self.actor.hp_damage
elsif self.actor.mp_damage < 0
self.damage = self.actor.mp_damage
end
self.weapon1_attack_time = Requiem_ABS::Enemy_Attack_Time
end
for event in $game_map.events.values
if event.in_battle and in_range?(self, event, 5)
if self.actor.mp >= self.assigned_skill.mp_cost and event.actor.hp <= (event.actor.maxhp*25/100) and self.weapon1_attack_time <= 0
self.actor.mp -= self.assigned_skill.mp_cost
$game_temp.common_event_id = self.assigned_skill.common_event_id if self.assigned_skill.common_event_id > 0
event.animation_id = self.assigned_skill.animation_id
event.actor.skill_effect(self.actor, self.assigned_skill)
if event.actor.hp_damage < 0
event.damage = event.actor.hp_damage
elsif self.actor.mp_damage < 0
event.damage = event.actor.mp_damage
end
self.weapon1_attack_time = Requiem_ABS::Enemy_Attack_Time
end
end
end
end
def erasing
return if @puzzle
@blend_type = 2
@opacity -= 5
end
def kill_enemy
dying unless @killed
if @opacity <= 0 or @puzzle
self.actor = nil
desactive_enemy
@in_battle = false
self.show_bar = false
$game_player.hits = 0
end
end
def dying
$game_player.actor.gain_exp(self.actor.exp, 1)
make_drop
unless @puzzle
if self.actor.die_animation_id != nil
@animation_id = self.actor.die_animation_id
end
if self.actor.die_se != nil
RPG::SE.new(self.actor.die_se).play
else
Sound.play_enemy_collapse
end
end
@killed = true
end
def desactive_enemy
if @erase
erase
elsif @switch_local_a
key = [$game_map.map_id, self.id, "A"]
$game_self_switches[key] = !$game_self_switches[key]
elsif @switch_local_b
key = [$game_map.map_id, self.id, "B"]
$game_self_switches[key] = !$game_self_switches[key]
elsif @switch_local_c
key = [$game_map.map_id, self.id, "C"]
$game_self_switches[key] = !$game_self_switches[key]
elsif @switch_local_d
key = [$game_map.map_id, self.id, "D"]
$game_self_switches[key] = !$game_self_switches[key]
elsif @switch > 0
$game_switches[@switch] = !$game_switches[@switch]
elsif @variable > 0
$game_variables[@variable] += 1
end
$game_map.need_refresh = true
end
def make_drop
for item in make_item1
next if item.nil?
$game_drop.push(Game_Drop.new(self, item.icon_index, [item] ,0))
end
for item in make_item2
next if item.nil?
$game_drop.push(Game_Drop.new(self, item.icon_index, [item] ,0))
end
if self.actor.gold > 0 and (rand(100)) <= Requiem_ABS::Gold_Drop_Rate
$game_drop.push(Game_Drop.new(self, Requiem_ABS::Gold_Drop_Graphic, [], self.actor.gold))
end
end
def make_item1
drop_items = []
for i in [self.actor.drop_item1]
next if i.kind <= 0
next if rand(i.denominator) != 0
if i.kind == 1
drop_items.push($data_items[i.item_id])
elsif i.kind == 2
drop_items.push($data_weapons[i.weapon_id])
elsif i.kind == 3
drop_items.push($data_armors[i.armor_id])
end
end
return drop_items
end
def make_item2
drop_items = []
for i in [self.actor.drop_item2]
next if i.kind <= 0
next if rand(i.denominator) != 0
if i.kind == 1
drop_items.push($data_items[i.item_id])
elsif i.kind == 2
drop_items.push($data_weapons[i.weapon_id])
elsif i.kind == 3
drop_items.push($data_armors[i.armor_id])
end
end
return drop_items
end
def update_self_movement
return if self.freeze
if @in_battle and in_range?(self, self.target, @follow_distance) and @stop_count > 30 * (5 - @move_frequency)
return unless movable?
move_toward(self.target)
elsif @stop_count > 30 * (5 - @move_frequency)
case @move_type
when 1
move_type_random
when 2
move_type_toward_player
when 3
move_type_custom
end
end
end
def check_comment(comentario)
com = comentario.downcase
return 0 if @list.nil? or @list.size <= 0
for item in @list
if item.code == 108 or item.code == 408
if item.parameters[0].downcase =~ /#{com}[ ]?(\d+)?/
return $1.to_i
end
end
end
return 0
end
def check_com(comentario)
return false if @list.nil? or @list.size <= 0
for item in @list
if item.code == 108 or item.code == 408
if item.parameters[0].downcase.include?(comentario.downcase)
return true
end
end
end
return false
end
end
#------------------------------------------------------------------------------
# Game Player
#------------------------------------------------------------------------------
class Game_Player < Game_Character
attr_accessor (:hits, :hit_time, :assigned_item, :bomb_already, :reward)
alias requiem_abs_gplayer_initialize initialize
alias requiem_abs_gplayer_update update
alias requiem_abs_gplayer_perform_transfer perform_transfer
alias requiem_abs_gplayer_move_by_input move_by_input
def initialize
requiem_abs_gplayer_initialize
@hits = 0
@hit_time = 0
@assigned_item = 0
@bomb_already = false
@reward = nil
self.original_move_speed = 4
end
def update
self.actor = $game_party.members[0]
requiem_abs_gplayer_update
return if $game_map.interpreter.running?
return if self.actor.nil?
attack_with_weapon
attack_with_skill
attack_with_item
auto_recovery
if self.right_attack_on and @attack_weapon != nil
@hits = 0 if @hit_time <= 0 or @hits >= @attack_weapon.combo_hits
elsif self.left_attack_on and @attack_weapon_and_Shield != nil
@hits = 0 if @hit_time <= 0 or @hits >= @attack_weapon_and_Shield.combo_hits
elsif self.right_attack_on and @attack_weapon.nil?
@hits = 0 if @hit_time <= 0 or @hits >= 5
elsif self.left_attack_on and @attack_weapon_and_Shield.nil?
@hits = 0 if @hit_time <= 0 or @hits >= 5
end
@hit_time -= 1 if @hit_time > 0
end
def hit_count
return unless Requiem_ABS::Combo_Damage
@hits += 1
@hit = "#{@hits}"
end
def attack_with_weapon
if Input.trigger?(Requiem_ABS::Right_Attack_Button) and self.weapon1_attack_time <= 0 and !self.deffending
@attack_weapon = self.actor.equips[0]
RPG::SE.new(@attack_weapon.shot_se).play if @attack_weapon != nil and @attack_weapon.shot_se != nil
self.anime_attack = 20
self.right_attack_on = true
self.left_attack_on = false
if @attack_weapon != nil and @attack_weapon.ranged?
range_attack_right
self.weapon1_attack_time = @attack_weapon.delay
else
normal_attack_right
self.weapon1_attack_time = Requiem_ABS::Hero_Attack_Time
@hit_time = self.weapon1_attack_time + 15
end
end
if Input.press?(Requiem_ABS::Left_Attack_and_Shield_Button)
self.deffending = (self.actor.equips[1].is_a?(RPG::Armor) and Requiem_ABS::Allow_Shields_Graphics)
else
self.deffending = false
end
if Input.trigger?(Requiem_ABS::Left_Attack_and_Shield_Button) and self.weapon2_attack_time <= 0 and !self.deffending
@attack_weapon_and_Shield = (self.actor.two_swords_style ? self.actor.equips[1] : self.actor.equips[0])
RPG::SE.new(@attack_weapon_and_Shield.shot_se).play if @attack_weapon_and_Shield != nil and @attack_weapon_and_Shield.shot_se != nil
self.anime_attack = 20
self.right_attack_on = false
self.left_attack_on = true
if @attack_weapon_and_Shield != nil and @attack_weapon_and_Shield.ranged?
range_attack_left
self.weapon2_attack_time = @attack_weapon_and_Shield.delay
elsif self.actor.two_swords_style
normal_attack_left
self.weapon2_attack_time = Requiem_ABS::Hero_Attack_Time
@hit_time = self.weapon1_attack_time + 15
end
end
end
def attack_with_skill
for button in self.actor.skill_hotkeys.keys
if Input.trigger?(button) and self.actor.skill_hotkeys[button] != nil and self.actor.skill_hotkeys[button] != 0
self.assigned_skill = $data_skills[self.actor.skill_hotkeys[button]]
if self.assigned_skill.scope == 2
skill_attack_all
elsif self.assigned_skill.ranged?
skill_attack_range
elsif self.assigned_skill.explosive?
skill_exlpode_range
elsif self.assigned_skill.scope >= 7
skill_recover
else
skill_attack_normal
end
end
end
end
def attack_with_item
for button in self.actor.item_hotkeys.keys
if Input.trigger?(button) and self.actor.item_hotkeys[button] != nil and self.actor.item_hotkeys[button] != 0
@assigned_item = $data_items[self.actor.item_hotkeys[button]]
if @assigned_item.ranged?
item_attack_range
elsif @assigned_item.explosive?
item_attack_explode
elsif @assigned_item.bomb?
item_attack_bomb
else
case @assigned_item.scope
when 1
item_normal_attack
when 2
item_attack_all
when 3...6
item_normal_attack
when 7..11
item_recover
end
end
end
end
end
def normal_attack_right
for event in $game_map.events.values
if event.in_battle
if in_front?(self,event)
return if event.actor.dead? or event.object
event.animation_id = self.actor.atk_animation_id
hit_count
if event.deffending and guard?(self,event) or
event.kill_with_weapon > 0 and @attack_weapon != event.kill_with_weapon or
event.kill_with_skill > 0 or event.kill_with_item > 0
event.damage = Requiem_ABS::Damage_Properties[18]
else
event.actor.attack_effect(self.actor)
if event.actor.hp_damage > 0
event.damage = event.actor.hp_damage
event.critical = true if event.actor.critical
event.combo = true if event.actor.combo
else
event.damage = Requiem_ABS::Damage_Properties[6]
end
event.jump(0,0) unless event.puzzle
end
event.target = self
end
end
end
end
def range_attack_right
if $game_party.has_item?(@attack_weapon.ammo1)
$game_party.consume_item(@attack_weapon.ammo1)
$game_range.push(Game_Range.new(self, @attack_weapon.graphic, @attack_weapon.index, @attack_weapon.move_speed, @attack_weapon.range, 1))
end
end
def normal_attack_left
for event in $game_map.events.values
if event.in_battle
if in_front?(self,event)
return if event.actor.dead? or event.object
event.animation_id = self.actor.atk_animation_id2
hit_count
if event.deffending and guard?(self,event) or
event.kill_with_weapon > 0 and @attack_weapon_and_Shield != event.kill_with_weapon or
event.kill_with_skill > 0 or event.kill_with_item > 0
event.damage = Requiem_ABS::Damage_Properties[18]
else
event.actor.attack_effect(self.actor)
if event.actor.hp_damage > 0
event.damage = event.actor.hp_damage
event.critical = true if event.actor.critical
event.combo = true if event.actor.combo
else
event.damage = Requiem_ABS::Damage_Properties[6]
end
event.jump(0,0) unless event.puzzle
end
event.target = self
end
end
end
end
def range_attack_left
if $game_party.has_item?(@attack_weapon_and_Shield.ammo2)
$game_party.consume_item(@attack_weapon_and_Shield.ammo2)
$game_range.push(Game_Range.new(self, @attack_weapon_and_Shield.graphic, @attack_weapon_and_Shield.index, @attack_weapon_and_Shield.move_speed, @attack_weapon_and_Shield.range, 2))
end
end
def skill_attack_normal
for event in $game_map.events.values
if event.in_battle
if in_front?(self,event) and self.skill_attack_time <= 0
return if event.actor.dead? or event.object
if self.actor.mp >= self.assigned_skill.mp_cost and self.skill_attack_time <= 0
self.actor.mp -= self.actor.calc_mp_cost(self.assigned_skill)
$game_temp.common_event_id = self.assigned_skill.common_event_id if self.assigned_skill.common_event_id > 0
event.animation_id = self.assigned_skill.animation_id
if event.deffending and guard?(self,event) and !self.assigned_skill.ignore_defense or
event.kill_with_weapon > 0 or event.kill_with_item > 0 or
event.kill_with_skill > 0 and event.kill_with_skill != self.assigned_skill.id
- nathanMembre
- Nombre de messages : 26
Distinction : aucune
Date d'inscription : 09/03/2011
Re: probleme abs 4 requiem [résolu]
Sam 24 Déc 2011 - 10:10
La deuxieme partie du script:
- Code:
event.damage = Requiem_ABS::Damage_Properties[18] else
event.actor.skill_effect(self.actor, self.assigned_skill)
if event.actor.hp_damage > 0
event.damage = event.actor.hp_damage
else
event.damage = Requiem_ABS::Damage_Properties[6]
end
event.jump(0,0) unless event.puzzle
end
event.target = self
self.skill_attack_time = Requiem_ABS::Hero_Attack_Time
end
end
end
end
def skill_exlpode_range
if self.actor.mp >= self.assigned_skill.mp_cost and self.skill_attack_time <= 0
self.actor.mp -= self.actor.calc_mp_cost(self.assigned_skill)
$game_temp.common_event_id = self.assigned_skill.common_event_id if self.assigned_skill.common_event_id > 0
$game_range.push(Game_Range.new(self, self.assigned_skill.graphic, self.assigned_skill.index, self.assigned_skill.move_speed, self.assigned_skill.range, 4))
self.skill_attack_time = self.assigned_skill.delay
RPG::SE.new(self.assigned_skill.shot_se).play if self.assigned_skill.shot_se != nil
end
end
def skill_recover
if self.actor.mp >= self.assigned_skill.mp_cost and self.skill_attack_time <= 0
self.actor.mp -= self.actor.calc_mp_cost(self.assigned_skill)
$game_temp.common_event_id = self.assigned_skill.common_event_id if self.assigned_skill.common_event_id > 0
self.actor.skill_effect(self.actor, self.assigned_skill)
if self.actor.hp_damage < 0
self.damage = self.actor.hp_damage
elsif self.actor.mp_damage < 0
self.damage = self.actor.mp_damage
end
@animation_id = self.assigned_skill.animation_id
self.skill_attack_time = Requiem_ABS::Hero_Attack_Time
end
end
def item_normal_attack
for event in $game_map.events.values
if event.in_battle
if in_front?(self,event) and self.item_attack_time <= 0
return if event.actor.dead? or event.object
if $game_party.has_item?(@assigned_item) and self.item_attack_time <= 0
$game_party.consume_item(@assigned_item)
$game_temp.common_event_id = @assigned_item.common_event_id if @assigned_item.common_event_id > 0
event.animation_id = @assigned_item.animation_id
if event.deffending and guard?(self,event) and !@assigned_item.ignore_defense or
event.kill_with_weapon > 0 or event.kill_with_skill > 0 or
event.kill_with_item > 0 and event.kill_with_item != self.assigned_item.id
event.damage = Requiem_ABS::Damage_Properties[18]
else
event.actor.item_effect(self.actor, @assigned_item)
if event.actor.hp_damage > 0
event.damage = event.actor.hp_damage
else
event.damage = Requiem_ABS::Damage_Properties[6]
end
event.jump(0,0) unless event.puzzle
end
event.target = self
self.item_attack_time = Requiem_ABS::Hero_Attack_Time
end
end
end
end
end
def item_attack_range
if $game_party.has_item?(@assigned_item) and self.item_attack_time <= 0
$game_party.consume_item(@assigned_item)
$game_temp.common_event_id = @assigned_item.common_event_id if @assigned_item.common_event_id > 0
$game_range.push(Game_Range.new(self, @assigned_item.graphic, @assigned_item.index, @assigned_item.move_speed, @assigned_item.range, 5))
self.item_attack_time = @assigned_item.delay
RPG::SE.new(@assigned_item.shot_se).play if @assigned_item.shot_se != nil
end
end
def item_attack_explode
if $game_party.has_item?(@assigned_item) and self.item_attack_time <= 0
$game_party.consume_item(@assigned_item)
$game_temp.common_event_id = @assigned_item.common_event_id if @assigned_item.common_event_id > 0
$game_range.push(Game_Range.new(self, @assigned_item.graphic, @assigned_item.index, @assigned_item.move_speed, @assigned_item.range, 6))
self.item_attack_time = @assigned_item.delay
RPG::SE.new(@assigned_item.shot_se).play if @assigned_item.shot_se != nil
end
end
def item_recover
if $game_party.has_item?(@assigned_item) and self.item_attack_time <= 0
$game_party.consume_item(@assigned_item)
$game_temp.common_event_id = @assigned_item.common_event_id if @assigned_item.common_event_id > 0
self.actor.item_effect(self.actor, @assigned_item)
if self.actor.mp_damage < 0
self.damage = self.actor.mp_damage
elsif self.actor.hp_damage < 0
self.damage = self.actor.hp_damage
end
@animation_id = @assigned_item.animation_id
self.item_attack_time = Requiem_ABS::Hero_Attack_Time
end
end
def item_attack_all
if $game_party.has_item?(@assigned_item) and self.item_attack_time <= 0
$game_party.consume_item(@assigned_item)
$game_temp.common_event_id = @assigned_item.common_event_id if @assigned_item.common_event_id > 0
for event in $game_map.events.values
if event.in_battle
return if event.actor.dead? or event.object
event.animation_id = @assigned_item.animation_id
if event.kill_with_weapon > 0 or event.kill_with_skill > 0 or
event.kill_with_item > 0 and event.kill_with_item != self.assigned_item.id
event.damage = Requiem_ABS::Damage_Properties[18]
else
event.actor.item_effect(self.actor, @assigned_item)
if event.actor.hp_damage > 0
event.damage = event.actor.hp_damage
else
event.damage = Requiem_ABS::Damage_Properties[6]
end
event.jump(0,0) unless event.puzzle
end
event.target = self
self.item_attack_time = Requiem_ABS::Hero_Attack_Time
end
end
end
end
def item_attack_bomb
if $game_party.has_item?(@assigned_item) and !@bomb_already
$game_party.consume_item(@assigned_item)
$game_temp.common_event_id = @assigned_item.common_event_id if @assigned_item.common_event_id > 0
$game_bomb.push(Game_Bomb.new(self, @assigned_item, @assigned_item.icon_index, @assigned_item.area, @assigned_item.delay))
end
end
def auto_recovery
if self.actor.auto_hp_recover and self.recovery_time <= 0
self.actor.hp += (self.actor.maxhp*10/100)
self.recovery_time = 1800
end
end
def perform_transfer
requiem_abs_gplayer_perform_transfer
for range in $game_range
next if range.nil?
range.destroy = true
end
for drop in $game_drop
next if drop.nil?
drop.destroy = true
end
$game_map.need_refresh = true
end
def map_passable?(x, y)
case @vehicle_type
when 0
return $game_map.boat_passable?(x, y)
when 1
return $game_map.ship_passable?(x, y)
when 2
return true
else
return $game_map.hero_passable?(x, y)
end
end
def move_by_input
return if self.freeze or (self.anime_attack/3) > 0
requiem_abs_gplayer_move_by_input
end
end
#------------------------------------------------------------------------------
# Game Range
#------------------------------------------------------------------------------
class Game_Range < Game_Character
attr_accessor (:draw, :destroy, :character_name)
def initialize(parent, chara_name="", chara_index=0, speed=4, range=0, type=0)
super()
@parent = parent
@character_name = chara_name
@character_index = chara_index
@move_speed = speed
@range = range
@type = type
@step = 0
@destroy = false
@draw = false
moveto(@parent.x, @parent.y)
@direction = @parent.direction
end
def update
super
return @destroy = true if @step > @range
move_route
end
def move_route
return unless movable?
move_forward
@step += 1
end
def check_event_trigger_touch(x,y)
return if @destroy
for event in $game_map.events.values
if event.in_battle
hurt_hero if $game_player.pos?(x,y) and @parent.is_a?(Game_Event)
hurt_enemy_weapon_right(event) if event.pos?(x,y) and @type == 1 and @parent.is_a?(Game_Player)
hurt_enemy_weapon_left(event) if event.pos?(x,y) and @type == 2 and @parent.is_a?(Game_Player)
hurt_enemy_skill(event) if event.pos?(x,y) and @type == 3 and @parent.is_a?(Game_Player)
hurt_enemy_skill_explode if event.pos?(x,y) and @type == 4 and @parent.is_a?(Game_Player)
hurt_enemy_item(event) if event.pos?(x,y) and @type == 5 and @parent.is_a?(Game_Player)
hurt_enemy_item_explode if event.pos?(x,y) and @type == 6 and @parent.is_a?(Game_Player)
end
end
end
def hurt_hero
@destroy = true
$game_player.animation_id = @parent.assigned_skill.animation_id
probability = rand(100)
if $game_player.deffending and guard?($game_player,@parent) and !@parent.assigned_skill.ignore_defense and probability <= $game_player.actor.equips[1].defense_rate
$game_player.damage = Requiem_ABS::Damage_Properties[18]
else
$game_party.members[0].skill_effect(@parent.actor, @parent.assigned_skill)
if $game_party.members[0].hp_damage > 0
$game_player.damage = $game_party.members[0].hp_damage
else
$game_player.damage = Requiem_ABS::Damage_Properties[6]
end
$game_player.jump(0,0)
end
end
def hurt_enemy_weapon_right(enemy)
@destroy = true
return if enemy.actor.dead? or enemy.object
enemy.target = @parent
enemy.animation_id = @parent.actor.equips[0].ammo1.animation_id if @parent.actor.equips[0].ammo1 != nil
if enemy.deffending and guard?(self, enemy) or
enemy.kill_with_weapon > 0 and @parent.actor.weapon_id != enemy.kill_with_weapon or
enemy.kill_with_skill > 0 or enemy.kill_with_item > 0
enemy.damage = Requiem_ABS::Damage_Properties[18]
else
enemy.actor.attack_effect(@parent.actor)
if enemy.actor.hp_damage > 0
enemy.damage = enemy.actor.hp_damage
else
enemy.damage = Requiem_ABS::Damage_Properties[6]
end
enemy.jump(0,0) unless enemy.puzzle
end
end
def hurt_enemy_weapon_left(enemy)
@destroy = true
return if enemy.actor.dead? or enemy.object
enemy.target = @parent
if @parent.actor.two_swords_style
@weapon = @parent.actor.equips[1]
else
@weapon = @parent.actor.equips[0]
end
enemy.animation_id = @weapon.ammo2.animation_id if @weapon.ammo2 != nil
if enemy.deffending and guard?(self, enemy) or
enemy.kill_with_weapon > 0 and @weapon.id != enemy.kill_with_weapon or
enemy.kill_with_skill > 0 or enemy.kill_with_item > 0
enemy.damage = Requiem_ABS::Damage_Properties[18]
else
enemy.actor.attack_effect(@parent.actor)
if enemy.actor.hp_damage > 0
enemy.damage = enemy.actor.hp_damage
else
enemy.damage = Requiem_ABS::Damage_Properties[6]
end
enemy.jump(0,0) unless enemy.puzzle
end
end
def hurt_enemy_skill(enemy)
@destroy = true
return if enemy.actor.dead? or enemy.object
enemy.target = @parent
enemy.animation_id = @parent.assigned_skill.animation_id
if enemy.deffending and guard?(self, enemy) or
enemy.kill_with_weapon > 0 or enemy.kill_with_item > 0 or enemy.kill_with_skill > 0 and @parent.assigned_skill.id != enemy.kill_with_skill
enemy.damage = Requiem_ABS::Damage_Properties[18]
else
enemy.actor.skill_effect(@parent.actor, @parent.assigned_skill)
if enemy.actor.hp_damage > 0
enemy.damage = enemy.actor.hp_damage
else
enemy.damage = Requiem_ABS::Damage_Properties[6]
end
enemy.jump(0,0) unless enemy.puzzle
end
end
def hurt_enemy_item(enemy)
@destroy = true
return if enemy.actor.dead? or enemy.object
enemy.animation_id = @parent.assigned_item.animation_id
if enemy.deffending and guard?(self, enemy) or
enemy.kill_with_weapon > 0 or enemy.kill_with_skill > 0 or
enemy.kill_with_item > 0 and @parent.assigned_item != enemy.kill_with_item
enemy.damage = Requiem_ABS::Damage_Properties[18]
else
enemy.actor.item_effect(@parent.actor, @parent.assigned_item)
if enemy.actor.hp_damage > 0
enemy.damage = enemy.actor.hp_damage
else
enemy.damage = Requiem_ABS::Damage_Properties[6]
end
enemy.jump(0,0) unless enemy.puzzle
end
end
def hurt_enemy_skill_explode
@destroy = true
for event in $game_map.events.values
if event.in_battle
event.target = @parent
if in_range?(self, event, @parent.assigned_skill.area)
return if event.actor.dead? or event.object
event.animation_id = @parent.assigned_skill.animation_id
if event.deffending and guard?(self,event) or
event.kill_with_weapon > 0 or event.kill_with_item > 0 or
event.kill_with_skill > 0 and @parent.assigned_skill != event.kill_with_skill
event.damage = Requiem_ABS::Damage_Properties[18]
else
event.actor.skill_effect(@parent.actor, @parent.assigned_skill)
if event.actor.hp_damage > 0
event.damage = event.actor.hp_damage
else
event.damage = Requiem_ABS::Damage_Properties[6]
end
event.jump(0,0) unless event.puzzle
end
end
end
end
end
def hurt_enemy_item_explode
@destroy = true
for event in $game_map.events.values
if event.in_battle and in_range?(self, event, @parent.assigned_item.area)
return if event.actor.dead? or event.object
event.animation_id = @parent.assigned_item.animation_id
if event.deffending and guard?(self, event) or
event.kill_with_weapon > 0 or event.kill_with_item > 0 or
event.kill_with_skill > 0 and @parent.assigned_item != event.kill_with_skill
event.damage = Requiem_ABS::Damage_Properties[18]
else
event.actor.item_effect(@parent.actor, @parent.assigned_item)
if event.actor.hp_damage > 0
event.damage = event.actor.hp_damage
else
event.damage = Requiem_ABS::Damage_Properties[6]
end
end
event.jump(0,0) unless event.puzzle
end
end
end
def map_passable?(x, y)
return $game_map.range_passable?(x, y)
end
end
#------------------------------------------------------------------------------
# Game Bomb
#------------------------------------------------------------------------------
class Game_Bomb < Game_Character
attr_accessor (:draw, :destroy, :graphic_name)
def initialize(parent, item, graph_index=0, area=0, time=0)
super()
@destroy = false
@draw = false
@parent = parent
@item = item
@graphic_name = "IconSet"
@graphic_index = graph_index
@area = area
@time = time
self.priority_type = 2
case @parent.direction
when 2
moveto(@parent.x, @parent.y+1)
when 4
moveto(@parent.x-1, @parent.y)
when 6
moveto(@parent.x+1, @parent.y)
when 8
moveto(@parent.x, @parent.y-1)
end
RPG::SE.new(Requiem_ABS::Drop_Item_SE).play if Requiem_ABS::Drop_Item_SE != ""
move_random if !moving? and !$game_map.passable?(@x, @y) or !moving? and $game_map.events_xy(@x, @y)
$game_player.bomb_already = true
jump(0,0)
end
def update
super
return if @destroy
if @item.shot_se != nil and Graphics.frame_count % 60 <= 0
RPG::SE.new(@item.shot_se).play
end
@time -= 1 if @time > 0
explode if @time <= 0
end
def explode
self.animation_id = @item.animation_id
if in_range?(self, $game_player, @area)
$game_player.actor.item_effect(@parent.actor, @item)
if $game_player.actor.hp_damage > 0
$game_player.damage = $game_player.actor.hp_damage
else
$game_player.damage = Requiem_SBABS::Damage_Properties[6]
end
$game_player.jump(0, 0)
end
for event in $game_map.events.values
if event.in_battle and in_range?(self, event, @area)
event.actor.item_effect(@parent.actor, @item)
if event.actor.hp_damage > 0
event.damage = event.actor.hp_damage
else
event.damage = Requiem_SBABS::Damage_Properties[6]
end
event.jump(0, 0) unless event.puzzle
end
end
$game_player.bomb_already = false
@destroy = true
end
def check_event_trigger_touch(x, y)
end
end
#------------------------------------------------------------------------------
# Game Drop
#------------------------------------------------------------------------------
class Game_Drop < Game_Character
attr_accessor (:draw, :destroy, :graphic_name)
def initialize(parent, graph_index=0, items=[], gold=0)
super()
@graphic_name = "IconSet"
@graphic_index = graph_index
@items = items
@gold = gold
@drop_time = Requiem_ABS::Drop_Duration_Time
moveto(parent.x,parent.y)
move_random unless moving?
RPG::SE.new(Requiem_ABS::Drop_Item_SE).play if Requiem_ABS::Drop_Item_SE != "" and @items != nil
RPG::SE.new(Requiem_ABS::Drop_Money_SE).play if Requiem_ABS::Drop_Money_SE != "" and @gold > 0
@destroy = false
@draw = false
jump(0,0)
end
def update
super
return if @destroy
if Input.trigger?(Input::C)
if in_range?($game_player,self,1) and in_direction?($game_player,self)
get_reward
end
end
@drop_time -= 1 if @drop_time > 0
@destroy = true if @drop_time <= 0
end
def get_reward
RPG::SE.new(Requiem_ABS::Get_Reward_SE).play if Requiem_ABS::Get_Reward_SE != ""
if @gold > 0
$game_party.gain_gold(@gold)
$game_player.reward = "$ #{@gold}" if Requiem_ABS::Show_Reward
end
for item in @items
case item
when RPG::Item
$game_party.gain_item($data_items[item.id],1)
$game_player.reward = $data_items[item.id].name if Requiem_ABS::Show_Reward
when RPG::Weapon
$game_party.gain_item($data_weapons[item.id],1)
$game_player.reward = $data_weapons[item.id].name if Requiem_ABS::Show_Reward
when RPG::Armor
$game_party.gain_item($data_armors[item.id],1)
$game_player.reward = $data_armors[item.id].name if Requiem_ABS::Show_Reward
end
end
@destroy = true
end
def check_event_trigger_touch(x, y)
end
end
#------------------------------------------------------------------------------
# Sprite Base
#------------------------------------------------------------------------------
class Sprite_Base
alias animation animation_set_sprites
def animation_set_sprites(frame)
cell_data = frame.cell_data
for i in 0..15
sprite = @animation_sprites[i]
next if sprite.nil?
pattern = cell_data[i, 0]
if pattern.nil? or pattern == -1
sprite.visible = false
next
end
if pattern < 100
sprite.bitmap = @animation_bitmap1
else
sprite.bitmap = @animation_bitmap2
end
sprite.visible = true
sprite.src_rect.set(pattern % 5 * 192,
pattern % 100 / 5 * 192, 192, 192)
if @animation_mirror
sprite.x = @animation_ox - cell_data[i, 1] / Requiem_ABS::Animations_Divide_By
sprite.y = @animation_oy - cell_data[i, 2] / Requiem_ABS::Animations_Divide_By
sprite.angle = (360 - cell_data[i, 4])
sprite.mirror = (cell_data[i, 5] == 0)
else
sprite.x = @animation_ox + cell_data[i, 1] / Requiem_ABS::Animations_Divide_By
sprite.y = @animation_oy + cell_data[i, 2] / Requiem_ABS::Animations_Divide_By
sprite.angle = cell_data[i, 4]
sprite.mirror = (cell_data[i, 5] == 1)
end
sprite.z = self.z + 300
sprite.ox = 96
sprite.oy = 96
sprite.zoom_x = cell_data[i, 3] / (100.0 * Requiem_ABS::Animations_Divide_By)
sprite.zoom_y = cell_data[i, 3] / (100.0 * Requiem_ABS::Animations_Divide_By)
sprite.opacity = cell_data[i, 6] * self.opacity / 255.0
sprite.blend_type = cell_data[i, 7]
end
end
end
#------------------------------------------------------------------------------
# Sprite Character
#------------------------------------------------------------------------------
class Sprite_Character < Sprite_Base
alias requiem_abs_spchar_initialize initialize
alias requiem_abs_spchar_update update
alias requiem_abs_spchar_dispose dispose
def initialize(viewport, character=nil)
@character = character
@_damage_duration = 0
@_hit_duration = 0
@_reward_duration = 0
requiem_abs_spchar_initialize(viewport,@character)
end
def update
requiem_abs_spchar_update
update_show_dmg
update_show_hit
update_show_reward
update_show_state_ani
end
def dispose
requiem_abs_spchar_dispose
dispose_damage
dispose_hit
dispose_reward
end
def update_show_dmg
if @_damage_duration > 0
@_damage_duration -=1
@_damage_sprite.y -= 1
@_damage_sprite.opacity -= 5 if @_damage_duration <= 30
@_damage_sprite.x = self.x
if @_damage_duration <= 0
dispose_damage
end
end
if @character != nil and @character.damage != nil
return if @character.is_a?(Game_Event) and @character.puzzle
damage(@character.damage, @character.critical, @character.combo)
@character.damage = nil
@character.critical = false
@character.combo = false
end
end
def update_show_hit
if @_hit_duration > 0
@_hit_duration -=1
@_hit_sprite.opacity -= 5 if @_hit_duration <= 40
elsif @_hit_duration <= 0
dispose_hit
end
if @character != nil and @character.hit != nil
hit(@character.hit)
@character.hit = nil
end
end
def update_show_reward
if @_reward_duration > 0
@_reward_duration -= 1
@_reward_sprite.opacity -= 5 if @_reward_duration <= 1000
if @_reward_duration <= 0
dispose_reward
end
end
if @character.is_a?(Game_Player) and @character.reward != nil
show_reward(@character.reward)
@character.reward = nil
end
end
def update_show_state_ani
return if @character.actor.nil?
for state in @character.actor.states
next if state.nil? or state.animation_id <= 0
if @character.ani_time <= 0
@character.animation_id = state.animation_id
@character.ani_time = $data_animations[@character.animation_id].frame_max * 4 + 1
end
end
end
def damage(value, critical, combo)
dispose_damage
if value.is_a?(Numeric)
damage_string = value.abs.to_s
else
damage_string = value.to_s
end
bitmap = Bitmap.new(160,100)
bitmap.font.name = Requiem_ABS::Damage_Properties[1]
bitmap.font.size = Requiem_ABS::Damage_Properties[2]
bitmap.font.bold = Requiem_ABS::Damage_Properties[3]
bitmap.font.italic = Requiem_ABS::Damage_Properties[4]
bitmap.font.color.set(0,0,0)
bitmap.draw_text(1,(Requiem_ABS::Damage_Properties[2]*2)+5,160,Requiem_ABS::Damage_Properties[2]+2,damage_string,1)
if value.is_a?(Numeric) and value <= 0
bitmap.font.color = Requiem_ABS::Damage_Properties[14]
else
bitmap.font.color = Requiem_ABS::Damage_Properties[13]
end
bitmap.draw_text(0,(Requiem_ABS::Damage_Properties[2]*2)+4,160,Requiem_ABS::Damage_Properties[2]+2,damage_string,1)
if critical
bitmap.font.color.set(0,0,0)
bitmap.draw_text(1,Requiem_ABS::Damage_Properties[2]+5,160,Requiem_ABS::Damage_Properties[2]+2,Requiem_ABS::Damage_Properties[5],1)
bitmap.font.color = Requiem_ABS::Damage_Properties[15]
bitmap.draw_text(0,Requiem_ABS::Damage_Properties[2]+4,160,Requiem_ABS::Damage_Properties[2]+2,Requiem_ABS::Damage_Properties[5],1)
end
if combo
bitmap.font.color.set(0,0,0)
bitmap.draw_text(1,1,160,Requiem_ABS::Damage_Properties[2]+2,Requiem_ABS::Damage_Properties[12],1)
bitmap.font.color = Requiem_ABS::Damage_Properties[16]
bitmap.draw_text(0,0,160,Requiem_ABS::Damage_Properties[2]+2,Requiem_ABS::Damage_Properties[12],1)
end
@_damage_sprite = ::Sprite.new(self.viewport)
@_damage_sprite.bitmap = bitmap
@_damage_sprite.ox = 80
@_damage_sprite.oy = 20
@_damage_sprite.x = self.x
@_damage_sprite.y = self.y-self.oy/2-60
@_damage_sprite.z += 99999
@_damage_duration = 60
end
def hit(value)
dispose_hit
if value.is_a?(Numeric)
hit_string = value.abs.to_s
else
hit_string = value.to_s
end
bitmap = Bitmap.new(160, Requiem_ABS::Damage_Properties[9])
bitmap.font.name = Requiem_ABS::Damage_Properties[8]
bitmap.font.size = Requiem_ABS::Damage_Properties[9]
bitmap.font.bold = Requiem_ABS::Damage_Properties[10]
bitmap.font.italic = Requiem_ABS::Damage_Properties[11]
bitmap.font.color.set(255,255,255)
@_hit_sprite = ::Sprite.new(self.viewport)
@_hit_sprite.bitmap = bitmap
@_hit_sprite.x = 374
@_hit_sprite.y = 208 - Requiem_ABS::Damage_Properties[9]
@_hit_sprite.z += 99999
@_hit_duration = 80
bitmap.font.color.set(0,0,0)
bitmap.draw_text(1,1,160,36,"#{hit_string}"+" "+"#{Requiem_ABS::Damage_Properties[7]}",2)
bitmap.font.color = Requiem_ABS::Damage_Properties[17]
bitmap.draw_text(0,0,160,36,"#{hit_string}"+" "+"#{Requiem_ABS::Damage_Properties[7]}",2)
end
def show_reward(reward)
dispose_reward
bitmap = Bitmap.new(200, 24)
bitmap.font.size = 16
bitmap.font.color = Color.new(0,0,0)
bitmap.draw_text(1, 1, bitmap.width, 24, reward)
bitmap.font.color = Color.new(255,255,255)
bitmap.draw_text(0, 0, bitmap.width, 24, reward)
@_reward_sprite = ::Sprite.new(self.viewport)
@_reward_sprite.bitmap = bitmap
@_reward_sprite.x = 10
@_reward_sprite.y = 196
@_reward_sprite.z = 99999
@_reward_duration = 1100
end
def dispose_damage
if @_damage_sprite != nil
@_damage_sprite.dispose
@_damage_sprite = nil
end
end
def dispose_hit
if @_hit_sprite != nil
@_hit_sprite.dispose
@_hit_sprite = nil
end
end
def dispose_reward
if @_reward_sprite != nil
@_reward_sprite.dispose
@_reward_sprite = nil
end
end
end
#------------------------------------------------------------------------------
# Sprite Drop
#------------------------------------------------------------------------------
class Sprite_Drop < Sprite_Base
attr_accessor :character
def initialize(viewport, character=nil)
super(viewport)
@character = character
update
end
def update
super
update_bitmap
self.visible = (not @character.transparent)
update_src_rect
self.x = @character.screen_x
self.y = @character.screen_y
self.z = @character.screen_z
self.opacity = @character.opacity
self.blend_type = @character.blend_type
self.bush_depth = @character.bush_depth
if @character.animation_id != 0
animation = $data_animations[@character.animation_id]
start_animation(animation)
@character.animation_id = 0
end
if @character.balloon_id != 0
@balloon_id = @character.balloon_id
start_balloon
@character.balloon_id = 0
end
end
def update_bitmap
if @tile_id != @character.tile_id or
@graphic_name != @character.graphic_name or
@graphic_index != @character.graphic_index
@tile_id = @character.tile_id
@graphic_name = @character.graphic_name
@graphic_index = @character.graphic_index
if @tile_id > 0
self.bitmap = tileset_bitmap(@tile_id)
self.src_rect.set(0, 0, 24, 24)
else
self.bitmap = Cache.system(@graphic_name)
@cw = 24
@ch = 24
end
self.ox = @cw / 2
self.oy = @ch
end
end
def update_src_rect
if @tile_id == 0
index = @character.graphic_index
sx = index % 16 * 24
sy = index / 16 * 24
self.src_rect.set(sx, sy, @cw, @ch)
end
end
end
#------------------------------------------------------------------------------
# Sprite Weapon
#------------------------------------------------------------------------------
class Sprite_Weapon < Sprite_Base
attr_accessor (:character, :graphic_name)
def initialize(viewport, character=nil)
super(viewport)
@character = character
update
end
def update
super
return unless Requiem_ABS::Allow_Weapons_Graphics
if @character.anime_attack > 0
self.visible = true
else
self.visible = false
end
update_bitmap
update_src_rect
change_direction
end
def update_bitmap
if @tile_id != @character.tile_id or @graphic_name != "Iconset" or @graphic_index != weapon_index
@tile_id = @character.tile_id
@graphic_name = "Iconset"
@graphic_index = weapon_index
if @tile_id > 0
self.bitmap = tileset_bitmap(@tile_id)
self.src_rect.set(0, 0, 24, 24)
else
self.bitmap = Cache.system(@graphic_name)
@cw = 24
@ch = 24
end
self.ox = @cw / 2
self.oy = @ch
self.zoom_x = 0.80
self.zoom_y = 0.80
end
end
def update_src_rect
if @tile_id == 0
sx = weapon_index % 16 * 24
sy = weapon_index / 16 * 24
self.src_rect.set(sx, sy, @cw, @ch)
end
end
def change_direction
case @character.direction
when 2
self.x = @character.screen_x+10
self.z = @character.screen_z+1
self.mirror = false
change_angle(45,90,135)
when 4
self.x = @character.screen_x-10
self.z = @character.screen_z+1
self.mirror = false
change_angle(-45,0,45)
when 6
self.x = @character.screen_x+10
self.z = @character.screen_z-1
self.mirror = true
change_angle(45,0,-45)
when 8
self.x = @character.screen_x+10
self.z = @character.screen_z-1
self.mirror = true
change_angle(45,0,-45)
end
self.y = @character.screen_y-4
self.opacity = @character.opacity
self.blend_type = @character.blend_type
self.bush_depth = @character.bush_depth
end
def change_angle(a,b,c)
if @character.anime_attack >= 20
self.angle = a
elsif @character.anime_attack >= 15
self.angle = b
elsif @character.anime_attack >= 10
self.angle = c
end
end
def weapon_index
return 0 if @character.actor.nil?
if @character.actor.is_a?(Game_Actor) and @character.right_attack_on and @character.actor.weapon_id > 0
return @character.actor.equips[0].icon_index
elsif @character.actor.is_a?(Game_Actor) and @character.left_attack_on
if @character.actor.two_swords_style and @character.actor.armor1_id > 0
return @character.actor.equips[1].icon_index
elsif @character.actor.two_hands_legal? and @character.actor.weapon_id > 0 and @character.actor.equips[0].ranged?
return @character.actor.equips[0].icon_index
else
return 0
end
end
return 0
end
end
#------------------------------------------------------------------------------
# Sprite Shield
#------------------------------------------------------------------------------
class Sprite_Shield < Sprite_Base
attr_accessor (:character, :graphic_name)
def initialize(viewport, character = nil)
super(viewport)
@character = character
update
end
def update
super
return unless Requiem_ABS::Allow_Shields_Graphics
update_bitmap
self.visible = (@character.deffending)
update_src_rect
case @character.direction
when 2
self.mirror = true
self.x = @character.screen_x+6
self.z = @character.screen_z+1
when 4
self.mirror = false
self.x = @character.screen_x-6
self.z = @character.screen_z+1
when 6
self.mirror = true
self.x = @character.screen_x+6
self.z = @character.screen_z-1
when 8
self.mirror = false
self.x = @character.screen_x-6
self.z = @character.screen_z-1
end
self.y = @character.screen_y
self.opacity = @character.opacity
self.blend_type = @character.blend_type
self.bush_depth = @character.bush_depth
if @character.moving?
self.wave_amp = 1
self.wave_length = 1
self.wave_speed = 6
else
self.wave_amp = 0
end
end
def update_bitmap
if @tile_id != @character.tile_id or @graphic_name != "Iconset" or @graphic_index != shield_index
@tile_id = @character.tile_id
@graphic_name = "Iconset"
@graphic_index = shield_index
if @tile_id > 0
self.bitmap = tileset_bitmap(@tile_id)
self.src_rect.set(0, 0, 24, 24)
else
self.bitmap = Cache.system(@graphic_name)
@cw = 24
@ch = 24
end
self.ox = @cw / 2
self.oy = @ch
self.zoom_x = 0.80
self.zoom_y = 0.80
end
end
def update_src_rect
if @tile_id == 0
sx = shield_index % 16 * 24
sy = shield_index / 16 * 24
self.src_rect.set(sx, sy, @cw, @ch)
end
end
def shield_index
return 0 if @character.actor.nil?
if @character.actor.is_a?(Game_Actor) and !@character.actor.two_swords_style and @character.actor.armor1_id > 0
return $data_armors[@character.actor.armor1_id].icon_index
else
return 0
end
end
end
#------------------------------------------------------------------------------
# Spriteset Map
#------------------------------------------------------------------------------
class Spriteset_Map
attr_accessor :viewport3
alias requiem_abs_sp_map_create_characters create_characters
alias requiem_abs_sp_map_dispose_characters dispose_characters
def create_characters
@range_sprites = []
for range in $game_range
next if range.nil?
@range_sprites.push(Sprite_Character.new(@viewport1, range))
end
@drop_sprites = []
for drop in $game_drop
next if drop.nil?
@drop_sprites.push(Sprite_Drop.new(@viewport1, drop))
end
for bomb in $game_bomb
next if bomb.nil?
@drop_sprites.push(Sprite_Drop.new(@viewport1, bomb))
end
@weapon_sprites = []
@weapon_sprites.push(Sprite_Weapon.new(@viewport1, $game_player))
@shield_sprites = []
@shield_sprites.push(Sprite_Shield.new(@viewport1, $game_player))
requiem_abs_sp_map_create_characters
end
def update_characters
for sprite in @character_sprites
if sprite.character.is_a?(Game_Event)
if $game_map.in_range?(sprite.character) or sprite.character.trigger == 3 or sprite.character.trigger == 4
sprite.update
end
else
sprite.update
end
end
for range in @range_sprites
next if range.nil? or !$game_map.in_range?(range.character)
range.update
end
for drop in @drop_sprites
next if drop.nil? or !$game_map.in_range?(drop.character)
drop.update
end
for weapon in @weapon_sprites
next if weapon.nil? or !$game_map.in_range?(weapon.character)
weapon.update
end
for shield in @shield_sprites
next if shield.nil? or !$game_map.in_range?(shield.character)
shield.update
end
for range in $game_range
next if range.nil?
unless range.draw
@range_sprites.push(Sprite_Character.new(@viewport1,range))
range.draw = true
end
if range.destroy
$game_range.delete(range)
range.character_name = ""
end
end
for drop in $game_drop
next if drop.nil?
unless drop.draw
@drop_sprites.push(Sprite_Drop.new(@viewport1,drop))
drop.draw = true
end
if drop.destroy
$game_drop.delete(drop)
drop.graphic_name = ""
end
end
for bomb in $game_bomb
next if bomb.nil?
unless bomb.draw
@drop_sprites.push(Sprite_Drop.new(@viewport1, bomb))
bomb.draw = true
end
if bomb.destroy
$game_bomb.delete(bomb)
bomb.graphic_name = ""
end
end
end
def dispose_characters
requiem_abs_sp_map_dispose_characters
for range in @range_sprites
next if range.nil?
range.dispose
end
for drop in @drop_sprites
next if drop.nil?
drop.dispose
end
for weapon in @weapon_sprites
next if weapon.nil?
weapon.dispose
end
for shield in @shield_sprites
next if shield.nil?
shield.dispose
end
end
end
#------------------------------------------------------------------------------
# Window Base
#------------------------------------------------------------------------------
class Window_Base < Window
def draw_actor_head(actor, x, y, enabled=true)
char_name = actor.character_name
char_index = actor.character_index
bitmap = Cache.character(char_name)
sign = char_name[/^[\!\$]./]
if sign != nil and sign.include?('$')
cw = bitmap.width / 3
ch = bitmap.height / 4
else
cw = bitmap.width / 12
ch = bitmap.height / 8
end
enbl = (enabled ? 255 : 128)
src_rect = Rect.new((char_index%4*3+1)*cw, (char_index/4*4)*ch, cw, ch/3*2)
self.contents.blt(x,y,bitmap,src_rect,enbl)
end
end
#------------------------------------------------------------------------------
# Scene Title
#------------------------------------------------------------------------------
class Scene_Title < Scene_Base
alias requiem_abs_scenetitle_create_game_objects create_game_objects
def create_game_objects
requiem_abs_scenetitle_create_game_objects
$game_range = []
$game_drop = []
$game_bomb = []
end
end
#------------------------------------------------------------------------------
# Scene Map
#------------------------------------------------------------------------------
class Scene_Map < Scene_Base
alias requiem_abs_smap_update update
alias requiem_abs_smap_terminate terminate
def update
requiem_abs_smap_update
for range in $game_range
next if range.nil? or !$game_map.in_range?(range)
range.update
end
for drop in $game_drop
next if drop.nil? or !$game_map.in_range?(drop)
drop.update
end
for bomb in $game_bomb
next if bomb.nil? or !$game_map.in_range?(bomb)
bomb.update
end
end
def update_encounter
end
end
#------------------------------------------------------------------------------
# Scene Item
#------------------------------------------------------------------------------
class Window_Item < Window_Selectable
def update_help
if $scene.is_a?(Scene_Item) and $scene.message != nil
@help_window.set_text($scene.message)
else
@help_window.set_text(item == nil ? "" : item.description)
end
end
end
#------------------------------------------------------------------------------
class Scene_Item < Scene_Base
attr_accessor :message
attr_accessor :delay
alias requiem_abs_sitem_start start
alias requiem_abs_sitem_update update
alias requiem_abs_sitem_update_item_selection update_item_selection
def start
requiem_abs_sitem_start
@actor = $game_party.members[0]
@message = nil
@delay = 0
end
def update
requiem_abs_sitem_update
if @delay <= 0
@message = nil
else
@delay -= 1
end
end
def update_item_selection
requiem_abs_sitem_update_item_selection
for button in @actor.item_hotkeys.keys
if Input.trigger?(button) and @item_window.item.is_a?(RPG::Item)
Sound.play_decision
@actor.item_hotkeys[button] = @item_window.item.id
@message = Requiem_ABS::Memorize_Text
@delay = 120
end
end
end
end
#------------------------------------------------------------------------------
# Scene Skill
#------------------------------------------------------------------------------
class Window_Skill < Window_Selectable
def update_help
if $scene.is_a?(Scene_Skill) and $scene.message != nil
@help_window.set_text($scene.message)
else
@help_window.set_text(skill == nil ? "" : skill.description)
end
end
end
#------------------------------------------------------------------------------
class Scene_Skill < Scene_Base
attr_accessor :message
attr_accessor :delay
alias requiem_abs_sskill_start start
alias requiem_abs_sskill_update update
alias requiem_abs_sskill_update_skill_selection update_skill_selection
def start
requiem_abs_sskill_start
@message = nil
@delay = 0
end
def update
requiem_abs_sskill_update
if @delay <= 0
@message = nil
else
@delay -= 1
end
end
def update_skill_selection
requiem_abs_sskill_update_skill_selection
for button in @actor.skill_hotkeys.keys
if Input.trigger?(button)
Sound.play_decision
@actor.skill_hotkeys[button] = @skill_window.skill.id
@message = "Memorisé!"
@delay = 120
end
end
end
end
#------------------------------------------------------------------------------
# Scene File
#------------------------------------------------------------------------------
class Scene_File < Scene_Base
alias requiem_abs_sfile_write_save_data write_save_data
alias requiem_abs_sfile_read_save_data read_save_data
def write_save_data(file)
requiem_abs_sfile_write_save_data(file)
Marshal.dump($game_range, file)
Marshal.dump($game_drop, file)
Marshal.dump($game_bomb, file)
end
def read_save_data(file)
requiem_abs_sfile_read_save_data(file)
$game_range = Marshal.load(file)
$game_drop = Marshal.load(file)
$game_bomb = Marshal.load(file)
end
end
#------------------------------------------------------------------------------
# End of ABS
#------------------------------------------------------------------------------
- deltaoneMembre
- Nombre de messages : 12
Distinction : aucune
Date d'inscription : 09/01/2012
Re: probleme abs 4 requiem [résolu]
Jeu 12 Jan 2012 - 1:41
c'est dans la base de donner me semble-t-il non ?
a tu une démo de ton sript s'il te plaît ?
il y a une version 9 de disponible ^^
a tu une démo de ton sript s'il te plaît ?
il y a une version 9 de disponible ^^
- UltimaSasukeMembre
- Nombre de messages : 88
Age : 28
Localisation : France, 05
Distinction : aucune
Date d'inscription : 27/07/2011
Re: probleme abs 4 requiem [résolu]
Jeu 12 Jan 2012 - 6:55
Je n'ai rien lue par rapport à la monnaie, ça dois être dans la base de donnée, puis au lieu du double post tu aurais du mettre le code entre balise code comme ceci :
[code] Script [ /code] (Sans l’espace
)
[code] Script [ /code] (Sans l’espace
)
- nathanMembre
- Nombre de messages : 26
Distinction : aucune
Date d'inscription : 09/03/2011
Re: probleme abs 4 requiem [résolu]
Sam 14 Jan 2012 - 17:00
UltimaSasuke :Non ce n'est pas dans la base de donnee j'avai déja regardé
deltaone : la démo est ici http://adf.ly/246619/http://www.megaupload.com/?d=4FFE6KNM
deltaone : la démo est ici http://adf.ly/246619/http://www.megaupload.com/?d=4FFE6KNM
- UltimaSasukeMembre
- Nombre de messages : 88
Age : 28
Localisation : France, 05
Distinction : aucune
Date d'inscription : 27/07/2011
Re: probleme abs 4 requiem [résolu]
Sam 14 Jan 2012 - 17:09
J'ai trouvé! Enfaite c'est sur le script regarde :
C'est dans la partie Game Drop essaye mais je pense que c'est ça change le deuxième "gold" en la monnaie de ton jeux.
#------------------------------------------------------------------------------
# Game Drop
#------------------------------------------------------------------------------
class Game_Drop < Game_Character
attr_accessor (:draw, :destroy, :graphic_name)
def initialize(parent, graph_index=0, items=[], gold=0)
super()
@graphic_name = "IconSet"
@graphic_index = graph_index
@items = items
@gold = gold
C'est dans la partie Game Drop essaye mais je pense que c'est ça change le deuxième "gold" en la monnaie de ton jeux.
- GummyStaffeux retraité
- Nombre de messages : 2666
Age : 32
Localisation : Belgique
Distinction : Modérateur imprévisible
Papy Lolo' [Nabots Nimousse]
Date d'inscription : 27/01/2008
Re: probleme abs 4 requiem [résolu]
Sam 14 Jan 2012 - 17:36
Non, ne fais surtout pas ça, tu feras planter le script, cette ligne ne fait que passer la valeur d'argent à gagner par le groupe à la fin du combat. Je regarde et j'édite quand j'ai trouvé.
EDIT :
Voici là ligne à modifier, dans la classe "Game_Drop" :
Y'a qu'à modifier le $ par G ou Gils
EDIT :
Voici là ligne à modifier, dans la classe "Game_Drop" :
- Code:
$game_player.reward = "$ #{@gold}" if Requiem_ABS::Show_Reward
Y'a qu'à modifier le $ par G ou Gils
- nathanMembre
- Nombre de messages : 26
Distinction : aucune
Date d'inscription : 09/03/2011
Re: probleme abs 4 requiem [résolu]
Sam 14 Jan 2012 - 17:41
j'ai trouvé en fait il faut pas modifier gold mais le $ entre les guillemets
- deltaoneMembre
- Nombre de messages : 12
Distinction : aucune
Date d'inscription : 09/01/2012
Re: probleme abs 4 requiem [résolu]
Dim 15 Jan 2012 - 11:44
merci pour la démo nathan, mais je vais rester sur la version 9 je la trouve plus avancer. sur la version 9 le changement est dans la base de donnée.
le principal c'est que tu a trouver
le principal c'est que tu a trouver
- UltimaSasukeMembre
- Nombre de messages : 88
Age : 28
Localisation : France, 05
Distinction : aucune
Date d'inscription : 27/07/2011
Re: probleme abs 4 requiem [résolu]
Dim 15 Jan 2012 - 13:46
Ah désolé, je suis vraiment nul en script ^^"
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|