Jump to content
Rpg²S Forum

Omix91

Utenti
  • Posts

    33
  • Joined

  • Last visited

Posts posted by Omix91

  1. Sì, ma evita queste cose, avevi già aperto il tuo bel topic c'era bisogno di riscriverlo anche in quei due già esistenti? No...

     

    Si, nel caso in cui chi ha postato questi script non andasse a vedere anche le richieste di supporto, e potesse rispondere alla mia domanda sui propri topic.

     

    Melius abundare quam deficere :sisi:

     

    Ma va beh, non lo scrivo più allora XD

  2. Salve a tutti!

    Avrei un problema relativo allo script per l'abs.

     

    Essendo un ABS in tempo reale, premendo A si attacca e premendo S si usa lo scudo.

    Il mio problema riguarda lo scudo:

    quando paro subisco sempre 0 danni, ed è troppo facile.

     

    Ecco, si potrebbe fare in modo che, ad esempio, quando paro subisco la metà dei danni? O qualcosa di simile.. Ancora meglio sarebbe se si potesse subire sempre meno danni usando uno scudo sempre più forte (Ad esempio con il primo scudo subisco l' 80 % dei danni, con il secondo il 50 % e così via..)

     

    Spero che qualche scripter in gamba possa aiutarmi =)

    Grazie!

  3. Uh è vero non avevo provato sorry...mmmh è strano non mi pare nenache ci sia l'opzione per disattivare la parata totale, quindi la difesa dei diversi scudi agisce solo quando subisci il danno pieno...mi sa che ci vuole qualche modifica, hai provato a cercare su google se c'è una versione più avanzata?

    ^ ^

     

    eh si.. ma nulla di fatto.. Comunque ho visto che anche altre persone hanno il mio problema, mi informo ancora un po' =) grazie!

  4. Salve a tutti!

    Avrei un problema relativo allo script per l'abs.

     

    Essendo un ABS in tempo reale, premendo A si attacca e premendo S si usa lo scudo.

    Il mio problema riguarda lo scudo:

    quando paro subisco sempre 0 danni, ed è troppo facile.

     

    Ecco, si potrebbe fare in modo che, ad esempio, quando paro subisco la metà dei danni? O qualcosa di simile.. Ancora meglio sarebbe se si potesse subire sempre meno danni usando uno scudo sempre più forte (Ad esempio con il primo scudo subisco l' 80 % dei danni, con il secondo il 50 % e così via..)

  5. Ti quoto perchè interessava anche a me.

    Non mi intendo molto di script ma sto già facendo qualche modifica (mi sono fatto una grafica personalizzata, ho limitato i tasti assegnabili a 1 per le magie e 1 per gli items, etc.) però nelle righe che riguardano l'effetto della parata (le riconosci per la scritta "Guard") non riesco a fare delle variabili

     

    Sarebbe appunto caruccia una casualità, del tipo:

     

    - Colpo parato del tutto (e allora ti esce la scritta tra le virgolette, che io ho chiamato "Shield")

    - Colpo dimezzato

    - Colpo non parato

     

     

    Straquoto! Se lo scoprite mi mandate un PM? grazie =) =) io ho appena aperto un topic apposta, vediamo..

  6. Per inserire lo script usa il tag code, comunque è meglio postare direttamente la domanda sul topic dello script.

    ^ ^

     

    E' strano, ho scaricato la demo, lì ogni scudo ha un valore di difesa diverso, che permette quindi di parare un danno a seconda della potenza dello scudo, sicuro di non aver toccato nulla? Magari dai valori di difesa troppo alti; nella demo sono 2, 4 o 7, il massimo 18 con lo scudo del drago.

    ^ ^

     

     

    Ma quando sei nella demo, prova a parare con il primo scudo che hai (è il più scarso..) e vedi che quando pari un attacco subisci sempre 0 danni. Quindi è troppo facile così.. Dimmi, se a te non fa così narrami come fai =)

  7. Topic di Marzo e l'utente interessato non connette più da Marzo appunto, quindi...

    ^ ^

     

    Già, si sarà arreso XD

     

    In compenso io ho un problema un po' più "raffinato" con lo stesso script, sempre tra le richiesto di supporto.. Aiutatemi buone amine =)

  8. Ciao,

    usi lo stesso personaggio che c'è nella demo?

    Perchè se non usi quello ti servono anche le immagini "attescudo" del personaggio

    (mi pare che le chiami così in quella demo). Cioè le immagini con lo stesso personaggio, ma con la spada o lo scudo ecc..

    Ciao!!

  9. Salve a tutti!

    Avrei un problema relativo allo script per l'abs.

     

    Essendo un ABS in tempo reale, premendo A si attacca e premendo S si usa lo scudo.

    Il mio problema riguarda lo scudo:

    quando paro subisco sempre 0 danni, ed è troppo facile.

     

    Ecco, si potrebbe fare in modo che, ad esempio, quando paro subisco la metà dei danni? O qualcosa di simile.. Ancora meglio sarebbe se si potesse subire sempre meno danni usando uno scudo sempre più forte (Ad esempio con il primo scudo subisco l' 80 % dei danni, con il secondo il 50 % e così via..)

     

    Spero che qualche scripter in gamba possa aiutarmi =)

    Grazie!

     

    Ecco lo script:

    #======================================================================
    ========
    # Crissaegrim ABS tradotto in italiano
    #==============================================================================
    #------------------------------------------------------------------------------
    # Crediti:
    # Vlad: autore 
    # Ciri: traduttore
    #------------------------------------------------------------------------------
    # Per creare un nemico collocare i seguenti commenti in un evento:
    
    # Enemy ID - dove ID sta per l'ID del nemico nel database;
    # Die Erase - fa in modo che il nemico contro cui si combatte scompaia se sconfitto;
    # Die Switch Local A - Attiva la Switch locale A quando il nemico con cui si combatte viene ucciso;
    # Die Switch Local B - Attiva la Switch locale B quando il nemico con cui si combatte viene ucciso;
    # Die Switch Local C - Attiva la Switch locale C quando il nemico con cui si combatte viene ucciso;
    # Die Switch Local D - Attiva la Switch locale D quando il nemico con cui si combatte viene ucciso;
    # Die Switch X - Attiva la Switch X quando il nemico con cui si combatte viene ucciso;
    # Die Variable X - Aggiunge +1 alla variabile x quando il nemico con cui si sta combattendo muore;
    # Follow X - serve a fare si che il nemico segua automaticamente l'eroe, quando questo è a X passi di distanza da lui.
    # Kill Weapon ID - Questo ID indica l'ID di un'arma nel database;il commento serve a fare in modo che il nemico muoia solo se viene usata tale arma. 
    # Kill Skill ID - Questo ID indica l'ID di una skill nel database;il commento serve a fare in modo che il nemico muoia solo se viene usata tale skill.
    # Kill Item ID - Questo ID indica l'ID di un oggetto nel database;il commento serve a fare in modo che il nemico muoia solo se viene usato tale oggetto.
    
    #------------------------------------------------------------------------------
    # CONFIGURAZIONE GENERALE
    #------------------------------------------------------------------------------
    module Crissaegrim_ABS
    #------------------------------------------------------------------------------
    #Tasto per l'attacco con la mano destra:
    Right_Attack_Button = Input::Letters["A"]
    #------------------------------------------------------------------------------
    #Tasto per l'attacco con la mano sinistra, o con lo scudo:
    Left_Attack_and_Shield_Button = Input::Letters["S"]
    #------------------------------------------------------------------------------
    # Tasti per la memorizzazione e l'utilizzo delle abilità:
    Skill_Button = {Input::Numberkeys[1] => 0, Input::Numberkeys[2] => 0, Input::Numberkeys[3] => 0,}
    #------------------------------------------------------------------------------
    # Tasti per la memorizzazione e l'utilizzo di oggetti:
    Item_Button = {Input::Numberkeys[4] => 0, Input::Numberkeys[5] => 0, Input::Numberkeys[6] => 0,}
    #------------------------------------------------------------------------------
    # Arma da distanza.
    # Per creare un arma da distanza copiare: Distance_Weapons[s] = [T, U, V, W, X, Y, Z] e inserire:
    # S:ID dell' Arma, T:Chara del proiettile dell'arma, U:Indice del chara, V:Velocità, W:Distanza, X:Tempo di attasa per attacare nuovamente, Y: database ID  del primo tipo di munizioni, Z:database ID del secondo tipo di munizioni 
    Distance_Weapons = {}
    Distance_Weapons[4] = ["$Arrow", 0, 6, 5, 30, 21, 22]
    #------------------------------------------------------------------------------
    # Armi con animazioni
    # Per creare un'arma con animazione copiare: Animate_Weapons[X] = ["Y", Z] e impostare:
    # X:ID dell'arma nel database e Y per il prefisso del nome del chara che raffigura 
    #l'attacco (per esempio se il chara del protagonista si chiama "Actor3", il chara 
    #del protagonista che attacca si dovrà chiamare "Actor3_preffisso", quel prefisso dovrete 
    #inserirlo al posto della Y), e Z per l'idice del Chara
    Animate_Weapons = {}
    Animate_Weapons[1] = ["_attescudo", 1]
    Animate_Weapons[2] = ["_attescudo", 1]
    Animate_Weapons[3] = ["_attescudo", 1]
    Animate_Weapons[4] = ["_attescudo", 2]
    Animate_Weapons[10] = ["_attescudo", 1]
    Animate_Weapons[30] = ["_attescudo", 1]
    #------------------------------------------------------------------------------
    # Armi con suono
    # Per creare un'arma con suono copiare: Weapon_Shot_SE[X] = "Y" e impostare:
    # X per l'ID dell'arma nel database, e Y per il nome del suono contenuto nella cartella SE
    Weapon_Shot_SE = {}
    Weapon_Shot_SE[4] = "Blow7"
    #------------------------------------------------------------------------------
    # Abilità a distanza
    # Per creare una skill utilizzabile a distanza copiare: Distance_Skills[u] = [V, W, X, Y, Z] e impostare:
    # U:ID della skill, V:Chara della skill, W:Indice del Chara, X:Velocità, Y:Distanza, Z:Tempo da aspettare prima di compiere un nuovo attacco.
    Distance_Skills = {}
    Distance_Skills[84] = ["", 0, 1.5, 2, 60]
    Distance_Skills[59] = ["$FireBall", 0, 4, 5, 60]
    Distance_Skills[63] = ["Energy Ball", 7, 4, 5, 60]
    Distance_Skills[67] = ["Energy Ball", 3, 4, 5, 60]
    Distance_Skills[71] = ["Energy Ball", 2, 4, 5, 60]
    Distance_Skills[73] = ["Energy Ball", 1, 4, 5, 60]
    Distance_Skills[75] = ["Energy Ball", 4, 4, 5, 60]
    Distance_Skills[77] = ["Energy Ball", 3, 4, 5, 60]
    Distance_Skills[79] = ["Energy Ball", 5, 4, 5, 60]
    #------------------------------------------------------------------------------
    # Abilità con animazioni
    # Per creare un'abiltà con animazione copiare: Animate_Skills[X] = ["Y", Z] e impostare:
    # X:ID della skill nel database e Y per il prefisso del nome del chara che raffigura 
    #l'eroe che utilizza l'abilità (per esempio se il chara del protagonista si chiama "Actor3", il chara 
    #del protagonista che usa la skill si dovrà chiamare "Actor3_preffisso", quel prefisso dovrete 
    #inserirlo al posto della Y), e Z per l'idice del Chara
    Animate_Skills = {}
    Animate_Skills[0] = ["_prefisso", 0]
    #------------------------------------------------------------------------------
    # Oggetti utilizabili a distanza
    # Per creare un oggetto utilizzabile a distanza copiare: Distance_Items[u] = [V, W, X, Y, Z] e impostare:
    # U:ID dell'oggetto, V:Chara dell'oggetto, W:Indice del Chara, X:Velocità, Y:Distanza, Z:Tempo da aspettare prima di compiere un altro attacco.
    Distance_Items = {}
    Distance_Items[16] = ["Energy Ball", 0, 5, 5, 30]
    Distance_Items[18] = ["Energy Ball", 7, 5, 5, 30]
    Distance_Items[20] = ["Energy Ball", 3, 5, 5, 30]
    #------------------------------------------------------------------------------
    #  Oggeti con animazioni
    # Per creare un oggetto con animazione copiare: Animate_Items[X] = ["Y", Z] e impostare:
    # X:ID dell'oggetto nel database e Y per il prefisso del nome del chara che raffigura 
    #l'eroe che usa l'oggetto (per esempio se il chara del protagonista si chiama "Actor3", il chara 
    #del protagonista che usa l'oggetto si dovrà chiamare "Actor3_preffisso", quel prefisso dovrete 
    #inserirlo al posto della Y), e Z per l'idice del Chara
    Animate_Items = {}
    Animate_Items[0] = ["_UsingItem", 0]
    #------------------------------------------------------------------------------
    #  Animazio per l'utilizzo di uno scudo
    # Per creare l'animazione dell'eroe che usa uno scudo copiare: Animate_Shields[X] = ["Y", Z] e impostare:
    # X:ID dello scudo nel database e Y per il prefisso del nome del chara che raffigura 
    #l'eroe che usa lo scudo (per esempio se il chara del protagonista si chiama "Actor3", il chara 
    #del protagonista che usa lo scudo si dovrà chiamare "Actor3_preffisso", quel prefisso dovrete 
    #inserirlo al posto della Y), e Z per l'idice del Chara
    Shields = {}
    Shields[1] = ["_attescudo", 0]
    Shields[2] = ["_attescudo", 0]
    #------------------------------------------------------------------------------
    # Oggetti, armi e armature perse dai nemici
    # Per creare il grafico di un oggetto, arma o armatura che viene perso da un nemico sconfitto copiare: Items_Drop[X] = ["Y",Z] e impostare:
    # X per l'ID dell'oggetto, arma o armatura nel database, Y per il chara dell'oggetto, arma o armatura e Z per l'idice del chara
    Items_Drop = {}
    Items_Drop[1] = ["Potions",0]
    Items_Drop[2] = ["Potions",0]
    Items_Drop[4] = ["Potions",1]
    
    Weapons_Drop = {}
    Weapons_Drop[0] = ["",0]
    
    Armors_Drop = {}
    Armors_Drop[0] = ["",0]
    #------------------------------------------------------------------------------
    Drop_Duration_Time = 450 # Tempo per cui l'oggetto rimane a terra prima di scomparire
    Drop_Item_SE = "DropItem" # Suono per l'oggetto che cade
    Drop_Money_SE = "DropMoney" # Suono per il denaro che cade
    Get_Reward_SE = "GetReward" # Suono udibile quando si raccoglie il denaro o un oggetto, arma o armatura
    
    Gold_Drop = ["$Gold",0] # Chara del denaro quando cade
    Default_Items_Drop = ["$Box",0] # Chara standard di un oggetto che cade
    Default_Weapons_Drop = ["$Box",0] # Chara standard di un'arma che cade
    Default_Armors_Drop = ["$Box",0] # Chara standard di un'armatura che cade
    #------------------------------------------------------------------------------
    # Animazione quando l'eroe passa di livello .
    # Il numero dopo LevelUp_animation indica l'ID nel database dell'animazione da visualizzare quando l'ero sale di livello.
    LevelUp_Animation = 40
    #------------------------------------------------------------------------------
    # Animazioni dei nemici
    # Copiare  Enemy_animations[X] = [Y, Z] e impostare:
    # X per l'ID del nemico, Y per l'ID dell'animazione d'attacco del nemico, e Z per l'ID dell'animazione da visualizzare alla morte del nemico.
    Enemy_animations = {}
    Enemy_animations[1] = [0,56]
    Enemy_animations[2] = [13,56]
    Enemy_animations[3] = [19,56]
    Enemy_animations[4] = [0,56]
    Enemy_animations[32] = [13,82]
    #------------------------------------------------------------------------------
    end
    #==============================================================================
    
    #------------------------------------------------------------------------------
    # Game Character
    #------------------------------------------------------------------------------
    class Game_Character
     alias crissaegrim_abs_gchar_initialize initialize
     alias crissaegrim_abs_gchar_update update
     attr_accessor :damage
     attr_accessor :critical
     def initialize
       crissaegrim_abs_gchar_initialize
       @damage = nil
       @critical = false
     end
     def update
       crissaegrim_abs_gchar_update
       $scene = Scene_Gameover.new if $game_party.members[0].dead?
     end
     def move_toward(object)
       sx = distance_x_from(object)
       sy = distance_y_from(object)
       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 distance_x_from(object)
       sx = @x - object.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(object)
       sy = @y - object.y
       if $game_map.loop_vertical?
         if sy.abs > $game_map.height / 2
           sy -= $game_map.height
         end
       end
       return sy
     end
     def in_range?(element, object, range)
       x = (element.x - object.x) * (element.x - object.x)
       y = (element.y - object.y) * (element.y - object.y)
       r = x + y
       return true if r <= (range * range)
       return false
     end
     def in_direction?(element, object)
       return true if element.direction == 2 and object.y >= element.y and object.x == element.x
       return true if element.direction == 4 and object.x <= element.x and object.y == element.y
       return true if element.direction == 6 and object.x >= element.x and object.y == element.y
       return true if element.direction == 8 and object.y <= element.y and object.x == element.x
       return false
     end 
    end
    
    #------------------------------------------------------------------------------
    # Game Event
    #------------------------------------------------------------------------------
    class Game_Event < Game_Character
     attr_reader :in_battle
     attr_reader :enemy_called
     attr_reader :kill_weapon
     attr_reader :kill_skill
     attr_reader :kill_item
     attr_accessor :life
     attr_accessor :mana
     attr_accessor :skill_id
     attr_accessor :deffending
     alias crissaegrim_abs_gevent_initialize initialize
     alias crissaegrim_abs_gevent_update update
     alias crissaegrim_abs_gevent_refresh refresh
     def initialize(map_id, event)
       @enemy_id = 0
       @life = 0
       @mana = 0
       @attack_time = 0
       @in_battle = false
       @deffending = false
       crissaegrim_abs_gevent_initialize(map_id, event)
     end
     def update
       if @in_battle and @life > 0
         make_attack($data_enemies[@enemy_id])
       elsif @in_battle and @life <= 0
         kill_enemy
       end
       @attack_time -= 1 if @attack_time > 0
       crissaegrim_abs_gevent_update
     end
     def refresh
       crissaegrim_abs_gevent_refresh
       @in_battle = false
       @enemy_id = check_comment("Enemy")
       @follow_distance = check_comment("Follow")
       @erase = check_com("Die Erase")
       @switch_local_a = check_com("Die Switch Local A")
       @switch_local_b = check_com("Die Switch Local B")
       @switch_local_c = check_com("Die Switch Local C")
       @switch_local_d = check_com("Die Switch Local D")
       @switch = check_comment("Die Switch")
       @variable = check_comment("Die Variable")
       @kill_weapon = check_comment("Kill Weapon")
       @kill_skill = check_comment("Kill Skill")
       @kill_item = check_comment("Kill Item")
       if @enemy_id > 0
         @in_battle = true
         @enemy_called = GameABS_Enemy.new(@enemy_id)
         @life = @enemy_called.maxhp if @life <= 0
         @mana = @enemy_called.maxmp if @mana <= 0
       end
     end
     def make_attack(enemy)
       return false if $game_map.interpreter.running?
        for action in enemy.actions
          @ranting = action.rating if @attack_time <= 0
          next if enemy_pre_attack(@enemy_called, action)
          case action.kind
          when 0
            case action.basic
            when 0
              attack_normal
            when 1
              @deffending = true
            end
          when 1
            @skill_id = action.skill_id
            next if $data_skills[action.skill_id] == nil
            case $data_skills[action.skill_id].scope
            when 1..6
              if Crissaegrim_ABS::Distance_Skills.has_key?(action.skill_id)
                see_range = Crissaegrim_ABS::Distance_Skills[action.skill_id][3]
                if @direction == 2 and $game_player.x == @x and $game_player.y <= (@y + see_range) and $game_player.y > @y
                  skill_range
                elsif @direction == 4 and $game_player.x >= (@x - see_range) and $game_player.x < @x and $game_player.y == @y
                  skill_range
                elsif @direction == 6 and $game_player.x <= (@x + see_range) and $game_player.x > @x and $game_player.y == @y
                  skill_range
                elsif @direction == 8 and $game_player.x == @x and $game_player.y >= (@y - see_range) and $game_player.y < @y
                  skill_range
                elsif action.rating == 10
                  skill_range
                end
              else
                skill_normal
              end
               when 7..11
                 skill_recover
               end
             end
           end
         end
         def enemy_pre_attack(enemy, action)
          case action.condition_type
          when 1
            n = $game_troop.turn_count
            a = action.condition_param1
            b = action.condition_param2
            return false if (b == 0 and n != a)
            return false if (b > 0 and (n < 1 or n < a or n % b != a % b))
          when 2
            hp_rate = enemy.hp * 100.0 / enemy.maxhp
            return false if hp_rate < action.condition_param1
            return false if hp_rate > action.condition_param2
          when 3
            mp_rate = enemy.mp * 100.0 / enemy.maxmp
            return false if mp_rate < action.condition_param1
            return false if mp_rate > action.condition_param2
          when 4
            return false unless state?(action.condition_param1)
          when 5
            return false if $game_party.max_level < action.condition_param1
          when 6
            switch_id = action.condition_param1
            return false if $game_switches[switch_id] == false
          end
          r = rand(11)
          return true if action.rating < r
          return false
        end
        def attack_normal
          new_x = (@x + (@direction == 4 ? -1 : @direction == 6 ? 1 : 0))
          new_y = (@y + (@direction == 8 ? -1 : @direction == 2 ? 1 : 0))
          guard_x = (@x + ($game_player.direction == 4 ? 1 : $game_player.direction == 6 ? -1 : 0))
          guard_y = (@y + ($game_player.direction == 8 ? 1 : $game_player.direction == 2 ? -1 : 0))
          if $game_player.x == new_x and $game_player.y == new_y and @attack_time <= 0
            dmg = $game_party.members[0].make_attack_damage_value(@enemy_called)
            if Crissaegrim_ABS::Enemy_animations[@enemy_id] != nil and Crissaegrim_ABS::Enemy_animations[@enemy_id][0] != 0
              $game_player.animation_id = Crissaegrim_ABS::Enemy_animations[@enemy_id][0]
            else
              $game_player.animation_id = 1
            end
            if $game_player.deffending == true and $game_player.x == guard_x and $game_player.y == guard_y
              $game_player.damage = "Guard"
            else
              $game_party.members[0].attack_effect(@enemy_called)
              $game_player.damage = dmg
              $game_player.jump(0,0)
            end
            @attack_time = 60 - (($data_enemies[@enemy_id].agi / @ranting * 10) / 100)
          end
        end
        def skill_normal 
          new_x = (@x + (@direction == 4 ? -1 : @direction == 6 ? 1 : 0))
          new_y = (@y + (@direction == 8 ? -1 : @direction == 2 ? 1 : 0))
          guard_x = (@x + ($game_player.direction == 4 ? 1 : $game_player.direction == 6 ? -1 : 0))
          guard_y = (@y + ($game_player.direction == 8 ? 1 : $game_player.direction == 2 ? -1 : 0))
          if @mana >= $data_skills[@skill_id].mp_cost and $game_player.x == new_x and $game_player.y == new_y and @attack_time <= 0
            @mana -= $data_skills[@skill_id].mp_cost
            $game_temp.common_event_id = $data_skills[@skill_id].common_event_id if $data_skills[@skill_id].common_event_id > 0
            dmg = $game_party.members[0].make_obj_damage_value(@enemy_called, $data_skills[@skill_id])
            $game_player.animation_id = $data_skills[@skill_id].animation_id
            if $game_player.deffending == true and $game_player.x == guard_x and $game_player.y == guard_y and !$data_skills[@skill_id].ignore_defense
              $game_player.damage = "Guard"
            else
              $game_party.members[0].skill_effect(@enemy_called, $data_skills[@skill_id])
              $game_player.damage = dmg
              $game_player.jump(0,0)
            end
            @attack_time = 60 - (($data_enemies[@enemy_id].agi / @ranting * 10) / 100)
          end
        end
        def skill_range
          if @mana >= $data_skills[@skill_id].mp_cost and @attack_time <= 0
            @mana -= $data_skills[@skill_id].mp_cost
            $game_temp.common_event_id = $data_skills[@skill_id].common_event_id if $data_skills[@skill_id].common_event_id > 0
            $game_range.push(Game_Range.new(self,Crissaegrim_ABS::Distance_Skills[@skill
    _id][0],Crissaegrim_ABS::Distance_Skills[@skill_id][1],Crissaegrim_ABS::Distance_
    Skills[@skill_id][2],Crissaegrim_ABS::Distance_Skills[@skill_id][3]))
            @attack_time = Crissaegrim_ABS::Distance_Skills[@skill_id][4]
          end
        end
        def skill_recover
          hp_percent = (@enemy_called.maxhp * 25) / 100
          if @mana >= $data_skills[@skill_id].mp_cost and @life <= hp_percent
            @mana -= $data_skills[@skill_id].mp_cost
            $game_temp.common_event_id = $data_skills[@skill_id].common_event_id if $data_skills[@skill_id].common_event_id > 0
            rec = @enemy_called.make_obj_damage_value(@enemy_called, $data_skills[@skill_id])
            @enemy_called.skill_effect(@enemy_called, $data_skills[@skill_id])
            @life -= rec
            @life = @enemy_called.maxhp if @life > @enemy_called.maxhp
            self.damage = rec
            @animation_id = $data_skills[@skill_id].animation_id
          end
          @attack_time = 60 - (($data_enemies[@enemy_id].agi / @ranting * 10) / 100)
        end
        def update_self_movement
          if in_range?(self,$game_player,@follow_distance)
            return unless movable?
            move_toward_player
          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 movable?
          return false if moving?
          return false if @move_route_forcing
          return true
        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
          end
    def kill_enemy
     $game_party.members[0].gain_exp(@enemy_called.exp, 1)
     make_drop
     if Crissaegrim_ABS::Enemy_animations[@enemy_id] != nil and Crissaegrim_ABS::Enemy_animations[@enemy_id][1] != 0
       @animation_id = Crissaegrim_ABS::Enemy_animations[@enemy_id][1]
     end
     if @erase == true
       self.erase
     elsif @switch_local_a == true
       key = [$game_map.map_id, self.id, "A"]
     if $game_self_switches[key] == false
       $game_self_switches[key] = true
       elsif $game_self_switches[key] == true
         $game_self_switches[key] = false
       end
     elsif @switch_local_b == true
       key = [$game_map.map_id, self.id, "B"]
       if $game_self_switches[key] == false
         $game_self_switches[key] = true
       elsif $game_self_switches[key] == true
         $game_self_switches[key] = false
       end
     elsif @switch_local_c == true
       key = [$game_map.map_id, self.id, "C"]
       if $game_self_switches[key] == false
         $game_self_switches[key] = true
       elsif $game_self_switches[key] == true
         $game_self_switches[key] = false
       end
     elsif @switch_local_d == true
       key = [$game_map.map_id, self.id, "D"]
       if $game_self_switches[key] == false
         $game_self_switches[key] = true
       elsif $game_self_switches[key] == true
         $game_self_switches[key] = false
       end
     elsif @switch > 0 and
       if $game_switches[@switch] == false
         $game_switches[@switch] = true
       elsif $game_switches[@switch] == true
         $game_switches[@switch] = false
       end
     elsif @variable > 0
       $game_variables[@variable] += 1
     end
     $game_map.need_refresh = true
     refresh
    end
    def make_drop
     for item in make_items1
       next if item == nil
       case item
       when RPG::Item
         graphic = Crissaegrim_ABS::Default_Items_Drop[0]
         index = Crissaegrim_ABS::Default_Items_Drop[1]
         graphic = Crissaegrim_ABS::Items_Drop[item.id][0] if Crissaegrim_ABS::Items_Drop[item.id] != nil
         index = Crissaegrim_ABS::Items_Drop[item.id][1] if Crissaegrim_ABS::Items_Drop[item.id] != nil
         $game_drop.push(Game_Drop.new(self,graphic,index,[item],0))
       when RPG::Weapon
         graphic = Crissaegrim_ABS::Default_Weapons_Drop[0]
         index = Crissaegrim_ABS::Default_Weapons_Drop[1]
         graphic = Crissaegrim_ABS::Weapons_Drop[item.id][0] if Crissaegrim_ABS::Weapons_Drop[item.id] != nil
         index = Crissaegrim_ABS::Weapons_Drop[item.id][1] if Crissaegrim_ABS::Weapons_Drop[item.id] != nil
         $game_drop.push(Game_Drop.new(self,graphic,index,[item],0))
       when RPG::Armor
         graphic = Crissaegrim_ABS::Default_Armors_Drop[0]
         index = Crissaegrim_ABS::Default_Armors_Drop[1]
         graphic = Crissaegrim_ABS::Armors_Drop[item.id][0] if Crissaegrim_ABS::Armors_Drop[item.id] != nil
         index = Crissaegrim_ABS::Armors_Drop[item.id][1] if Crissaegrim_ABS::Armors_Drop[item.id] != nil
         $game_drop.push(Game_Drop.new(self,graphic,index,[item],0))
       end
     end
     for item in make_items2
      next if item == nil
      case item
       when RPG::Item
         graphic = Crissaegrim_ABS::Default_Items_Drop[0]
         index = Crissaegrim_ABS::Default_Items_Drop[1]
         graphic = Crissaegrim_ABS::Items_Drop[item.id][0] if Crissaegrim_ABS::Items_Drop[item.id] != nil
         index = Crissaegrim_ABS::Items_Drop[item.id][1] if Crissaegrim_ABS::Items_Drop[item.id] != nil
         $game_drop.push(Game_Drop.new(self,graphic,index,[item],0))
       when RPG::Weapon
         graphic = Crissaegrim_ABS::Default_Weapons_Drop[0]
         index = Crissaegrim_ABS::Default_Weapons_Drop[1]
         graphic = Crissaegrim_ABS::Weapons_Drop[item.id][0] if Crissaegrim_ABS::Weapons_Drop[item.id] != nil
         index = Crissaegrim_ABS::Weapons_Drop[item.id][1] if Crissaegrim_ABS::Weapons_Drop[item.id] != nil
         $game_drop.push(Game_Drop.new(self,graphic,index,[item],0))
       when RPG::Armor
         graphic = Crissaegrim_ABS::Default_Armors_Drop[0]
         index = Crissaegrim_ABS::Default_Armors_Drop[1]
         graphic = Crissaegrim_ABS::Armors_Drop[item.id][0] if Crissaegrim_ABS::Armors_Drop[item.id] != nil
         index = Crissaegrim_ABS::Armors_Drop[item.id][1] if Crissaegrim_ABS::Armors_Drop[item.id] != nil
         $game_drop.push(Game_Drop.new(self,graphic,index,[item],0))
       end
     end
     if @enemy_called.gold > 0
       $game_drop.push(Game_Drop.new(self,Crissaegrim_ABS::Gold_Drop[0],0,[],self.e
    nemy_called.gold))
     end
    end
    def make_items1
     drop_items = []
     for di in [@enemy_called.drop_item1]
       next if di.kind == 0
       next if rand(di.denominator) != 0
       if di.kind == 1
         drop_items.push($data_items[di.item_id])
       elsif di.kind == 2
         drop_items.push($data_weapons[di.weapon_id])
       elsif di.kind == 3
         drop_items.push($data_armors[di.armor_id])
       end
     end
     return drop_items
    end
    def make_items2
     drop_items = []
     for di in [@enemy_called.drop_item2]
       next if di.kind == 0
       next if rand(di.denominator) != 0
       if di.kind == 1
         drop_items.push($data_items[di.item_id])
       elsif di.kind == 2
         drop_items.push($data_weapons[di.weapon_id])
       elsif di.kind == 3
         drop_items.push($data_armors[di.armor_id])
       end
     end
     return drop_items
    end
    end
    
    #------------------------------------------------------------------------------
    # Game Player
    #------------------------------------------------------------------------------
    class Game_Player < Game_Character
     attr_accessor :deffending
     attr_accessor :assigned_skill
     attr_accessor :assigned_item
     attr_accessor :right_attack
     attr_accessor :left_attack
     attr_accessor :skill_attack
     attr_accessor :item_attack
     alias crissaegrim_abs_gplayer_initialize initialize
     alias crissaegrim_abs_gplayer_update update
     alias crissaegrim_abs_gplayer_perform_transfer perform_transfer
     def initialize
       @old_character_name = @character_name
       @old_character_index = @character_index
       @right_attack_time = 0
       @left_attack_time = 0
       @skill_attack_time = 0
       @item_attack_time = 0
       @anime_attack_time = 0
       @right_attack = false
       @left_attack = false
       @skill_attack = false
       @item_attack = false
       @deffending = false
       crissaegrim_abs_gplayer_initialize
     end
     def update
       crissaegrim_abs_gplayer_update
       @actor = $game_party.members[0]
       $scene = Scene_Gameover.new if @actor.hp <= 0
       @right_attack_time -= 1 if @right_attack_time > 0
       @left_attack_time -= 1 if @left_attack_time > 0
       @skill_attack_time -= 1 if @skill_attack_time > 0
       @item_attack_time -= 1 if @item_attack_time > 0
       @anime_attack_time -= 1 if @anime_attack_time > 0
       if @anime_attack_time <= 0 and @deffending == false
         self.set_graphic($game_actors[$game_party.members[0].id].character_name, $game_actors[$game_party.members[0].id].character_index)
         @step_anime = false
       end
       if Input.trigger?(Crissaegrim_ABS::Right_Attack_Button) and @deffending == false
         @attack_weapon = @actor.weapon_id
         anime_hero_attack if @anime_attack_time <= 0
         if Crissaegrim_ABS::Distance_Weapons.has_key?(@attack_weapon) and @right_attack_time <= 0
           @right_attack = true
           @left_attack = false
           @skill_attack = false
           @item_attack = false
           @deffending = false
           range_attack_right
           if $game_party.has_item?($data_items[Crissaegrim_ABS::Distance_Weapons[@attack_weapon][5]])
             Audio.se_play("Audio/SE/"+Crissaegrim_ABS::Weapon_Shot_SE[@attack_weapon],100,100) if Crissaegrim_ABS::Weapon_Shot_SE[@attack_weapon] != nil or Crissaegrim_ABS::Weapon_Shot_SE[@attack_weapon] != ""
           else
             Sound.play_buzzer
           end
         else
           normal_attack_right
         end
       end
       if Input.pressed?(Crissaegrim_ABS::Left_Attack_and_Shield_Button)
         if !@actor.two_swords_style or !@actor.two_hands_legal? and @actor.armor1_id != 0
           use_shield
           @deffending = true
         end
       else
         @deffending = false
       end
       if Input.trigger?(Crissaegrim_ABS::Left_Attack_and_Shield_Button) and @deffending == false
         anime_hero_attack
         if @actor.two_swords_style
           @attack_weapon_and_Shield = @actor.armor1_id
         else
           @attack_weapon_and_Shield = @actor.weapon_id
         end
         if Crissaegrim_ABS::Distance_Weapons.has_key?(@attack_weapon_and_Shield) and @left_attack_time <= 0
           @right_attack = false
           @left_attack = true
           @skill_attack = false
           @item_attack = false
           range_attack_left
           if $game_party.has_item?($data_items[Crissaegrim_ABS::Distance_Weapons[@attack_weapon_and_Shield][5]]
    )
             Audio.se_play("Audio/SE/"+Crissaegrim_ABS::Weapon_Shot_SE[@attack_weapon_and_Shield],100,100) if Crissaegrim_ABS::Weapon_Shot_SE[@attack_weapon_and_Shield] != nil or Crissaegrim_ABS::Weapon_Shot_SE[@attack_weapon_and_Shield] != ""
           else
             Sound.play_buzzer
           end
         else
           normal_attack_left
         end
       end
       for button in Crissaegrim_ABS::Skill_Button.keys
       if Input.trigger?(button) and Crissaegrim_ABS::Skill_Button[button] != nil and Crissaegrim_ABS::Skill_Button[button] != 0
         @assigned_skill = Crissaegrim_ABS::Skill_Button[button]
         case $data_skills[@assigned_skill].scope
         when 1
           if Crissaegrim_ABS::Distance_Skills.has_key?(@assigned_skill)
             @right_attack = false
             @left_attack = false
             @skill_attack = true
             @item_attack = false
             skill_attack_range
           else
             skill_attack_normal
           end
         when 2
           skill_attack_all
         when 7..11
           skill_recover
         end
       end
     end
     for button in Crissaegrim_ABS::Item_Button.keys
       if Input.trigger?(button) and Crissaegrim_ABS::Item_Button[button] != nil and Crissaegrim_ABS::Item_Button[button] != 0
         @assigned_item = Crissaegrim_ABS::Item_Button[button]
         if Crissaegrim_ABS::Distance_Items.has_key?(@assigned_item)
           @right_attack = false
           @left_attack = false
           @skill_attack = false
           @item_attack = true
           item_attack_range
         else
           case $data_items[@assigned_item].scope
           when 1..6
             item_normal_attack
           when 7..11
             item_recover
           end
         end
       end
     end
    end
    def normal_attack_right
     if Input.trigger?(Crissaegrim_ABS::Right_Attack_Button)
       @attack_weapon = @actor.weapon_id
       for event in $game_map.events.values
         if event.in_battle
           new_x = (@x + (@direction == 4 ? -1 : @direction == 6 ? 1 : 0))
           new_y = (@y + (@direction == 8 ? -1 : @direction == 2 ? 1 : 0))
           guard_x = (@x + (event.direction == 4 ? 1 : event.direction == 6 ? -1 : 0))
           guard_y = (@y + (event.direction == 8 ? 1 : event.direction == 2 ? -1 : 0))
           if event.x == new_x and event.y == new_y and @right_attack_time <= 0
             dmg = event.enemy_called.make_attack_damage_value(@actor)
             event.animation_id = @actor.atk_animation_id
             if event.deffending == true and event.x == guard_x and event.y == guard_y or event.kill_weapon > 0 and @attack_weapon != event.kill_weapon or event.kill_skill > 0 or event.kill_item > 0
               event.damage = "guard"
             else
               event.enemy_called.attack_effect(@actor)
               event.life -= dmg
               event.damage = dmg
               event.jump(0,0)
             end
             @right_attack_time = 60 - (@actor.agi / 100)
           end
         end
       end
     end
    end
    def range_attack_right
     if $game_party.has_item?($data_items[Crissaegrim_ABS::Distance_Weapons[@attack_weapon][5]])
       $game_party.consume_item($data_items[Crissaegrim_ABS::Distance_Weapons[@attack_weapon][5]])
       $game_range.push(Game_Range.new(self,Crissaegrim_ABS::Distance_Weapons[@atta
    ck_weapon][0],Crissaegrim_ABS::Distance_Weapons[@attack_weapon][1],Crissaegrim_AB
    S::Distance_Weapons[@attack_weapon][2],Crissaegrim_ABS::Distance_Weapons[@attack_
    weapon][3]))
       @right_attack_time = Crissaegrim_ABS::Distance_Weapons[@attack_weapon][4]
     end
    end
    def normal_attack_left
     for event in $game_map.events.values
       if event.in_battle
          new_x = (@x + (@direction == 4 ? -1 : @direction == 6 ? 1 : 0))
          new_y = (@y + (@direction == 8 ? -1 : @direction == 2 ? 1 : 0))
          guard_x = (@x + (event.direction == 4 ? 1 : event.direction == 6 ? -1 : 0))
          guard_y = (@y + (event.direction == 8 ? 1 : event.direction == 2 ? -1 : 0))
         if event.x == new_x and event.y == new_y and @left_attack_time <= 0
           dmg = event.enemy_called.make_attack_damage_value(@actor)
           event.animation_id = @actor.atk_animation_id2
           if event.deffending == true and event.x == guard_x and event.y == guard_y or event.kill_weapon > 0 and @attack_weapon_and_Shield != event.kill_weapon or event.kill_skill > 0 or event.kill_item > 0
             event.damage = "guard"
           else
             event.enemy_called.attack_effect(@actor)
             event.life -= dmg
             event.damage = dmg
             event.jump(0,0)
           end
           @left_attack_time = 60 - (@actor.agi / 100)
         end
       end
     end
    end
    def range_attack_left
     if $game_party.has_item?($data_items[Crissaegrim_ABS::Distance_Weapons[@attack_weapon_and_Shield][6]]
    )
       $game_party.consume_item($data_items[Crissaegrim_ABS::Distance_Weapons[@attack_weapon_and_Shield][6]]
    )
       $game_range.push(Game_Range.new(self,Crissaegrim_ABS::Distance_Weapons[@atta
    ck_weapon_and_Shield][0],Crissaegrim_ABS::Distance_Weapons[@attack_weapon_and_Shi
    eld][1],Crissaegrim_ABS::Distance_Weapons[@attack_weapon_and_Shield][2],Crissaegr
    im_ABS::Distance_Weapons[@attack_weapon_and_Shield][3]))
       @left_attack_time = Crissaegrim_ABS::Distance_Weapons[@attack_weapon_and_Shield][4]
     end
    end
    def skill_attack_normal
     for event in $game_map.events.values
       if event.in_battle
         new_x = (@x + (@direction == 4 ? -1 : @direction == 6 ? 1 : 0))
         new_y = (@y + (@direction == 8 ? -1 : @direction == 2 ? 1 : 0))
         guard_x = (@x + (event.direction == 4 ? 1 : event.direction == 6 ? -1 : 0))
         guard_y = (@y + (event.direction == 8 ? 1 : event.direction == 2 ? -1 : 0))
         if event.x == new_x and event.y == new_y and @skill_attack_time <= 0
           if @actor.mp >= $data_skills[@assigned_skill].mp_cost and @skill_attack_time <= 0
             @actor.mp -= @actor.calc_mp_cost($data_skills[@assigned_skill])
             $game_temp.common_event_id = $data_skills[@assigned_skill].common_event_id if $data_skills[@assigned_skill].common_event_id > 0
             dmg = event.enemy_called.make_obj_damage_value(@actor, $data_skills[@assigned_skill])
             event.animation_id = $data_skills[@assigned_skill].animation_id
             if event.deffending == true and event.x == guard_x and event.y == guard_y or event.kill_weapon > 0 or event.kill_skill > 0 or event.kill_item > 0 and !$data_skills[@assigned_skill].ignore_defense
               event.damage = "guard"
             else
               event.enemy_called.skill_effect(@actor, $data_skills[@assigned_skill])
               event.life -= dmg
               event.damage = dmg
               event.jump(0,0)
             end
             @skill_attack_time = 60 - (@actor.agi / 100)
           end
         end
       end
     end
    end
    def skill_attack_range
     if @actor.mp >= $data_skills[@assigned_skill].mp_cost and @skill_attack_time <= 0
       @actor.mp -= @actor.calc_mp_cost($data_skills[@assigned_skill])
       $game_temp.common_event_id = $data_skills[@assigned_skill].common_event_id if $data_skills[@assigned_skill].common_event_id > 0
       $game_range.push(Game_Range.new(self,Crissaegrim_ABS::Distance_Skills[@assig
    ned_skill][0],Crissaegrim_ABS::Distance_Skills[@assigned_skill][1],Crissaegrim_AB
    S::Distance_Skills[@assigned_skill][2],Crissaegrim_ABS::Distance_Skills[@assigned
    _skill][3]))
       @skill_attack_time = Crissaegrim_ABS::Distance_Skills[@assigned_skill][4]
     end
    end
    def skill_attack_all
     for event in $game_map.events.values
       if event.in_battle
         if @actor.mp >= $data_skills[@assigned_skill].mp_cost and @skill_attack_time <= 0
            @actor.mp -= @actor.calc_mp_cost($data_skills[@assigned_skill])
            $game_temp.common_event_id = $data_skills[@assigned_skill].common_event_id if $data_skills[@assigned_skill].common_event_id > 0
            dmg = event.enemy_called.make_obj_damage_value(@actor, $data_skills[@assigned_skill])
            event.animation_id = $data_skills[@assigned_skill].animation_id
            if event.deffending == true and event.x == guard_x and event.y == guard_y or event.kill_weapon > 0 or event.kill_skill > 0 or event.kill_item > 0 and !$data_skills[@assigned_skill].ignore_defense
              event.damage = "guard"
            else
              event.enemy_called.skill_effect(@actor, $data_skills[@assigned_skill])
              event.life -= dmg
              event.damage = dmg
              event.jump(0,0)
            end
            @skill_attack_time = 60 - (@actor.agi / 100)
          end
        end
      end
    end
    def skill_recover
     if @actor.mp >= $data_skills[@assigned_skill].mp_cost and @skill_attack_time <= 0
       @actor.mp -= @actor.calc_mp_cost($data_skills[@assigned_skill])
       $game_temp.common_event_id = $data_skills[@assigned_skill].common_event_id if $data_skills[@assigned_skill].common_event_id > 0
       dmg = @actor.make_obj_damage_value(@actor, $data_skills[@assigned_skill])
       @actor.skill_effect(@actor, $data_skills[@assigned_skill])
       @animation_id = $data_skills[@assigned_skill].animation_id
       @damage = dmg
       @skill_attack_time = 60 - (@actor.agi / 100)
     end
    end
    def item_normal_attack
     for event in $game_map.events.values
       if event.in_battle
         new_x = (@x + (@direction == 4 ? -1 : @direction == 6 ? 1 : 0))
         new_y = (@y + (@direction == 8 ? -1 : @direction == 2 ? 1 : 0))
         guard_x = (@x + (event.direction == 4 ? 1 : event.direction == 6 ? -1 : 0))
         guard_y = (@y + (event.direction == 8 ? 1 : event.direction == 2 ? -1 : 0))
         if event.x == new_x and event.y == new_y and @item_attack_time <= 0
           if $game_party.has_item?($data_items[@assigned_item]) and @item_attack_time <= 0
             $game_party.lose_item($data_items[@assigned_item],1)
             $game_temp.common_event_id = $data_items[@assigned_item].common_event_id if $data_items[@assigned_item].common_event_id > 0
             dmg = event.enemy_called.make_obj_damage_value(@actor, $data_items[@assigned_item])
             event.animation_id = $data_items[@assigned_item].animation_id
           if event.deffending == true and event.x == guard_x and event.y == guard_y or event.kill_weapon > 0 or event.kill_skill > 0 or event.kill_item > 0 and !$data_items[@assigned_item].ignore_defense
             event.damage = "guard"
           else
             event.enemy_called.item_effect(@actor, $data_items[@assigned_item])
             event.life -= dmg
             event.damage = dmg
             event.jump(0,0)
           end
           @item_attack_time = 60 - (@actor.agi / 100)
         end
       end
     end
    end
    end
    def item_attack_range
     if $game_party.has_item?($data_items[@assigned_item]) and @item_attack_time <= 0
       $game_party.lose_item($data_items[@assigned_item],1)
       $game_temp.common_event_id = $data_items[@assigned_item].common_event_id if $data_items[@assigned_item].common_event_id > 0
       $game_range.push(Game_Range.new(self,Crissaegrim_ABS::Distance_Items[@assign
    ed_item][0],Crissaegrim_ABS::Distance_Items[@assigned_item][1],Crissaegrim_ABS::D
    istance_Items[@assigned_item][2],Crissaegrim_ABS::Distance_Items[@assigned_item][
    3]))
       @item_attack_time = Crissaegrim_ABS::Distance_Items[@assigned_item][4]
     end
    end
    def item_recover
     if $game_party.has_item?($data_items[@assigned_item]) and @item_attack_time <= 0
       $game_party.lose_item($data_items[@assigned_item],1)
       $game_temp.common_event_id = $data_items[@assigned_item].common_event_id if $data_items[@assigned_item].common_event_id > 0
       dmg = @actor.calc_mp_recovery(@actor, $data_items[@assigned_item]) if $data_items[@assigned_item].mp_recovery > 0
       dmg = @actor.calc_hp_recovery(@actor, $data_items[@assigned_item]) if $data_items[@assigned_item].hp_recovery > 0
       @actor.item_effect(@actor, $data_items[@assigned_item])
       @animation_id = $data_items[@assigned_item].animation_id
       @damage = dmg
       @item_attack_time = 60 - (@actor.agi / 100)
     end
    end
    def anime_hero_attack
     if @attack_weapon != 0 and Crissaegrim_ABS::Animate_Weapons[@attack_weapon] != nil and Crissaegrim_ABS::Animate_Weapons[@attack_weapon] != 0 and Crissaegrim_ABS::Animate_Weapons[@attack_weapon][0] != "" and @anime_attack_time <= 0
       self.set_graphic(@character_name + Crissaegrim_ABS::Animate_Weapons[@attack_weapon][0], Crissaegrim_ABS::Animate_Weapons[@attack_weapon][1])
       @step_anime = true
       @anime_attack_time = 30
     end
    end
    def use_shield
     if Crissaegrim_ABS::Shields[@actor.armor1_id] != nil and Crissaegrim_ABS::Shields[@actor.armor1_id] != 0 and Crissaegrim_ABS::Shields[@actor.armor1_id][0] != ""
       self.set_graphic($game_actors[$game_party.members[0].id].character_name + Crissaegrim_ABS::Shields[@actor.armor1_id][0], Crissaegrim_ABS::Shields[@actor.armor1_id][1])
     end
    end
    def perform_transfer
     crissaegrim_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
    end
    end
    
    #------------------------------------------------------------------------------
    # Game Range
    #------------------------------------------------------------------------------
    class Game_Range < Game_Character
     attr_accessor :draw
     attr_accessor :destroy
     attr_accessor :character_name
     def initialize(parent,chara_name="",chara_index=0,speed=4,range=0)
       super()
       @parent = parent
       @character_name = chara_name
       @character_index = chara_index
       @move_speed = speed
       @range = range
       @step = 0
       moveto(@parent.x,@parent.y)
       pd = @parent.direction
       turn_down if pd == 2
       turn_left if pd == 4
       turn_right if pd == 6
       turn_up if pd == 8
       @destroy = false
       @draw = false
     end
     def update
       super
       return @destroy = true if @step >= @range
       move_route
       check_event_trigger_touch(@x, @y)
     end
     def move_route
       return unless movable?
       d = @direction
       move_down if d == 2
       move_left if d == 4
       move_right if d == 6
       move_up if d == 8
       @step += 1
     end
     def movable?
       return false if moving?
       return false if @move_route_forcing
       return true
     end
     def check_event_trigger_touch(x, y)
       return if @destroy
       for event in $game_map.events.values
         if event.in_battle
           hurt_hero(@parent) if $game_player.x == x and $game_player.y == y and @parent.is_a?(Game_Event)
           hurt_enemy_weapon_right(event) if event.x == x and event.y == y and $game_player.right_attack == true and @parent.is_a?(Game_Player)
           hurt_enemy_weapon_left(event) if event.x == x and event.y == y and $game_player.left_attack == true and @parent.is_a?(Game_Player)
           hurt_enemy_skill(event) if event.x == x and event.y == y and $game_player.skill_attack == true and @parent.is_a?(Game_Player)
           hurt_enemy_item(event) if event.x == x and event.y == y and $game_player.item_attack == true and @parent.is_a?(Game_Player)
         end
       end
     end
     def hurt_hero(enemy)
       @destroy = true
       moveto(0,0)
       dmg = $game_party.members[0].make_obj_damage_value(enemy.enemy_called, $data_skills[enemy.skill_id])
       $game_player.animation_id = $data_skills[enemy.skill_id].animation_id
       if $game_player.deffending == true and guard($game_player, enemy) and !$data_skills[enemy.skill_id].ignore_defense
         $game_player.damage = "Guard"
       else
         $game_party.members[0].skill_effect(enemy.enemy_called, $data_skills[enemy.skill_id])
         $game_player.damage = dmg
         $game_player.jump(0,0)
       end
     end
     def hurt_enemy_weapon_right(enemy)
       @destroy = true
       moveto(0,0)
       guard_x = (@x + (enemy.direction == 4 ? 1 : enemy.direction == 6 ? -1 : 0))
       guard_y = (@y + (enemy.direction == 8 ? 1 : enemy.direction == 2 ? -1 : 0))
       dmg = enemy.enemy_called.make_attack_damage_value($game_party.members[0])
       enemy.animation_id = $data_items[Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][5]].animation_id
       if enemy.deffending == true and guard(self, enemy) or enemy.kill_weapon > 0 and $game_party.members[0].weapon_id != enemy.kill_weapon or enemy.kill_skill > 0 or enemy.kill_item > 0
         enemy.damage = "Guard"
       else
         enemy.damage = dmg
         enemy.life -= dmg
         enemy.jump(0,0)
       end
     end
     def hurt_enemy_weapon_left(enemy)
       @destroy = true
       moveto(0,0)
       guard_x = (@x + (enemy.direction == 4 ? 1 : enemy.direction == 6 ? -1 : 0))
       guard_y = (@y + (enemy.direction == 8 ? 1 : enemy.direction == 2 ? -1 : 0))
       dmg = enemy.enemy_called.make_attack_damage_value($game_party.members[0])
       if $game_party.members[0].two_swords_style
         @weapon = $game_party.members[0].armor1_id
       else
         @weapon = $game_party.members[0].weapon_id
       end
       enemy.animation_id = $data_items[Crissaegrim_ABS::Distance_Weapons[@weapon][6]].animation_id
       if enemy.deffending == true and guard(self, enemy) or enemy.kill_weapon > 0 and @weapon != enemy.kill_weapon or enemy.kill_skill > 0 or enemy.kill_item > 0
         enemy.damage = "Guard"
       else
         enemy.damage = dmg
         enemy.life -= dmg
         enemy.jump(0,0)
       end
     end
     def hurt_enemy_skill(enemy)
       @destroy = true
       moveto(0,0)
       guard_x = (@x + (enemy.direction == 4 ? 1 : enemy.direction == 6 ? -1 : 0))
       guard_y = (@y + (enemy.direction == 8 ? 1 : enemy.direction == 2 ? -1 : 0))
       skl = $game_player.assigned_skill
       dmg = enemy.enemy_called.make_obj_damage_value($game_party.members[0], $data_skills[skl])
       enemy.animation_id = $data_skills[skl].animation_id
       if enemy.deffending == true and guard(self, enemy) or enemy.kill_weapon > 0 or enemy.kill_skill > 0 and $game_player.assigned_skill != enemy.kill_skill or enemy.kill_item > 0
         enemy.damage = "Guard"
       else
         enemy.damage = dmg
         enemy.life -= dmg
         enemy.jump(0,0)
       end
     end
     def hurt_enemy_item(enemy)
       @destroy = true
       moveto(0,0)
       guard_x = (@x + (enemy.direction == 4 ? 1 : enemy.direction == 6 ? -1 : 0))
       guard_y = (@y + (enemy.direction == 8 ? 1 : enemy.direction == 2 ? -1 : 0))
       itm = $game_player.assigned_item
       dmg = enemy.enemy_called.make_obj_damage_value($game_party.members[0], $data_items[itm])
       enemy.animation_id = $data_items[itm].animation_id
       if enemy.deffending == true and guard(self, enemy) or enemy.kill_weapon > 0 or enemy.kill_skill > 0 or enemy.kill_item > 0 and $game_player.assigned_item != enemy.kill_item
         enemy.damage = "Guard"
       else
         enemy.damage = dmg
         enemy.life -= dmg
         enemy.jump(0,0)
       end
     end
     def guard(attacker, target)
       if attacker.direction == 2 and target.direction == 8
         return true
       elsif attacker.direction == 4 and target.direction == 6
         return true
       elsif attacker.direction == 6 and target.direction == 4
         return true
       elsif attacker.direction == 8 and target.direction == 2
         return true
       else
         return false
       end
     end
    end
    
    #------------------------------------------------------------------------------
    # Game Drop
    #------------------------------------------------------------------------------
    class Game_Drop < Game_Character
     attr_accessor :draw
     attr_accessor :destroy
     attr_accessor :character_name
     def initialize(parent,chara_name="",chara_index=0,items=[],gold=0)
       super()
       @character_name = chara_name
       @character_index = chara_index
       @items = items
       @gold = gold
       @drop_time = Crissaegrim_ABS::Drop_Duration_Time
       moveto(parent.x,parent.y)
       move_random
       Audio.se_play("Audio/SE/"+Crissaegrim_ABS::Drop_Item_SE,100,100) if Crissaegrim_ABS::Drop_Item_SE != "" and @items != nil
       Audio.se_play("Audio/SE/"+Crissaegrim_ABS::Drop_Money_SE,100,100) if Crissaegrim_ABS::Drop_Money_SE != "" and @gold > 0
       @destroy = false
       @draw = false
     end
     def update
       super
       return if @destroy == true
       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
       Audio.se_play("Audio/SE/"+Crissaegrim_ABS::Get_Reward_SE,100,100) if Crissaegrim_ABS::Get_Reward_SE != ""
       $game_party.gain_gold(@gold)
       for item in @items
         case item
         when RPG::Item
           $game_party.gain_item($data_items[item.id],1)
         when RPG::Weapon
           $game_party.gain_item($data_weapons[item.id],1)
         when RPG::Armor
           $game_party.gain_item($data_armors[item.id],1)
         end
       end
       @destroy = true
     end
     def move_random
       return false if moving?
       case rand(3)
       when 0
         move_down
       when 1
         move_left
       when 2
         move_right
       when 3
         move_up
       end
     end
     def check_event_trigger_touch(x, y)
     end
    end
    
    #------------------------------------------------------------------------------
    # Game ABS Enemy
    #------------------------------------------------------------------------------
    class GameABS_Enemy < Game_Battler
     attr_reader   :enemy_id
     def initialize(enemy_id)
       super()
       @enemy_id = enemy_id
       enemy = $data_enemies[@enemy_id]
     end
     def actor?
       return false
     end
     def enemy
       return $data_enemies[@enemy_id]
     end
     def base_maxhp
       return enemy.maxhp
     end
     def base_maxmp
       return enemy.maxmp
     end
     def base_atk
       return enemy.atk
     end
     def base_def
       return enemy.def
     end
     def base_spi
       return enemy.spi
     end
     def base_agi
       return enemy.agi
     end
     def hit
       return enemy.hit
     end
     def eva
       return enemy.eva
     end
     def cri
       return enemy.has_critical ? 10 : 0
     end
     def odds
       return 1
     end
     def element_rate(element_id)
       rank = enemy.element_ranks[element_id]
       result = [0,200,150,100,50,0,-100][rank]
       for state in states
         result /= 2 if state.element_set.include?(element_id)
       end
       return result
     end
     def state_probability(state_id)
       if $data_states[state_id].nonresistance
         return 100
       else
         rank = enemy.state_ranks[state_id]
         return [0,100,80,60,40,20,0][rank]
       end
     end
     def exp
       return enemy.exp
     end
     def gold
       return enemy.gold
     end
     def drop_item1
       return enemy.drop_item1
     end
     def drop_item2
       return enemy.drop_item2
     end
     def use_sprite?
       return true
     end
     def perform_collapse
       if $game_temp.in_battle and dead?
         @collapse = true
         Sound.play_enemy_collapse
       end
     end
     def escape
       @hidden = true
       @action.clear
     end
     def transform(enemy_id)
       @enemy_id = enemy_id
       if enemy.name != @original_name
         @original_name = enemy.name
         @letter = ''
         @plural = false
       end
       @battler_name = enemy.battler_name
       @battler_hue = enemy.battler_hue
       make_action
     end
     def conditions_met?(action)
       case action.condition_type
       when 1
         n = $game_troop.turn_count
         a = action.condition_param1
         b = action.condition_param2
         return false if (b == 0 and n != a)
         return false if (b > 0 and (n < 1 or n < a or n % b != a % b))
       when 2
         hp_rate = hp * 100.0 / maxhp
         return false if hp_rate < action.condition_param1
         return false if hp_rate > action.condition_param2
       when 3
         mp_rate = mp * 100.0 / maxmp
         return false if mp_rate < action.condition_param1
         return false if mp_rate > action.condition_param2
       when 4
         return false unless state?(action.condition_param1)
       when 5
         return false if $game_party.max_level < action.condition_param1
       when 6
         switch_id = action.condition_param1
         return false if $game_switches[switch_id] == false
       end
       return true
     end
     def make_action
       @action.clear
       return unless movable?
       available_actions = []
       rating_max = 0
       for action in enemy.actions
         next unless conditions_met?(action)
         if action.kind == 1
           next unless skill_can_use?($data_skills[action.skill_id])
         end
         available_actions.push(action)
         rating_max = [rating_max, action.rating].max
       end
       ratings_total = 0
       rating_zero = rating_max - 3
       for action in available_actions
         next if action.rating <= rating_zero
         ratings_total += action.rating - rating_zero
       end
       return if ratings_total == 0
       value = rand(ratings_total)
       for action in available_actions
         next if action.rating <= rating_zero
         if value < action.rating - rating_zero
           @action.kind = action.kind
           @action.basic = action.basic
           @action.skill_id = action.skill_id
           @action.decide_random_target
           return
         else
           value -= action.rating - rating_zero
         end
       end
     end
    end
    
    #------------------------------------------------------------------------------
    # Game Actor
    #------------------------------------------------------------------------------
    class Game_Actor
     alias crissaegrim_abs_change_exp change_exp
     def change_exp(exp, show)
       last_level = @level
       last_skills = skills
       @exp = [[exp, 9999999].min, 0].max
       while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
         level_up
       end
       while @exp < @exp_list[@level]
         level_down
       end
       @hp = [@hp, maxhp].min
       @mp = [@mp, maxmp].min
       if show and @level > last_level
         show_level_up
       end
       crissaegrim_abs_change_exp(exp,show)
     end
     def show_level_up
       $game_player.animation_id = Crissaegrim_ABS::LevelUp_Animation
       $game_party.members[0].hp = $game_party.members[0].maxhp
       $game_party.members[0].mp = $game_party.members[0].maxmp
       $game_player.damage = "Level Up"
     end
     def atk_animation_id2
       if two_swords_style
         return weapons[1] == nil ? 1 : weapons[1].animation_id
       else
         return 1
       end
     end
    end
    
    #------------------------------------------------------------------------------
    # Game Map
    #------------------------------------------------------------------------------
    class Game_Map
     alias crissaegrim_abs_gmap_passable passable?
    def 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
     crissaegrim_abs_gmap_passable(x, y, flag = 0x01)
    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] / 2
           sprite.y = @animation_oy - cell_data[i, 2] / 2
           sprite.angle = (360 - cell_data[i, 4])
           sprite.mirror = (cell_data[i, 5] == 0)
         else
           sprite.x = @animation_ox + cell_data[i, 1] / 2
           sprite.y = @animation_oy + cell_data[i, 2] / 2
           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] / 200.0
         sprite.zoom_y = cell_data[i, 3] / 200.0
         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 crissaegrim_abs_spchar_update update
     alias crissaegrim_abs_spchar_dispose dispose
     def initialize(viewport, character = nil)
       super(viewport)
       @character = character
       @balloon_duration = 0
       @_damage_duration = 0
       update
     end
     def update
       super
       if @_damage_duration > 0
         @_damage_duration -=1
           @_damage_sprite.x = self.x
           if @_damage_duration <= 0
             dispose_damage
           end
         end
         if @character != nil and @character.damage != nil
         damage(@character.damage, @character.critical)
         @character.damage = nil
         @character.critical = false
       end
       crissaegrim_abs_spchar_update
     end
     def dispose
       crissaegrim_abs_spchar_dispose
       dispose_damage
     end
     def damage(value, critical)
         dispose_damage
         if value.is_a?(Numeric)
           damage_string = value.abs.to_s
         else
           damage_string = value.to_s
         end
         bitmap = Bitmap.new(160, 48)
         bitmap.font.name = "Georgia"
         bitmap.font.size = 22
         bitmap.font.italic = true
         if value.is_a?(Numeric) and value <= 0
           bitmap.font.color.set(255, 255, 128)
         else
           bitmap.font.color.set(255, 255, 255)
         end
         bitmap.draw_text(1, 13, 160, 36, damage_string, 1)
         bitmap.draw_text(0, 12, 160, 36, damage_string, 1)
         if critical
           bitmap.font.color.set(0, 0, 0)
           bitmap.draw_text(1, 6, 160, 20, "Critical", 1)
           bitmap.font.color.set(255, 255, 128)
           bitmap.draw_text(0, 5, 160, 20, "Critical", 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 - 40
         @_damage_sprite.z += 99999
         @_damage_duration = 30
       end
       def show_text(string, size=16, color=0)
         dispose_damage
         damage_string = string
         if string.is_a?(Array)
           array = true
         else
           array = false
         end
         bitmap = Bitmap.new(160, 48)
         bitmap.font.name = "Georgia"
         bitmap.font.size = size
         bitmap.font.italic = true
         if array
           for i in 0..string.size
             next if damage_string[i] == nil
             bitmap.font.color.set(96, 96-20, 0) if color == 0
             bitmap.font.color.set(0, 0, 0) if color != 0 
             bitmap.draw_text(-1, (12+(16*i)-1)-16, 160, 36, damage_string[i], 1)
             bitmap.draw_text(+1, (12+(16*i)-1)-16, 160, 36, damage_string[i], 1)
             bitmap.draw_text(-1, (12+(16*i)+1)-16, 160, 36, damage_string[i], 1)
             bitmap.draw_text(+1, (12+(16*i)+1)-16, 160, 36, damage_string[i], 1)
             bitmap.font.color.set(255, 245, 155) if color == 0
             bitmap.font.color.set(144, 199, 150) if color == 1
             bitmap.font.color.set(197, 147, 190)if color == 2
             bitmap.font.color.set(138, 204, 198)if color == 3
             bitmap.draw_text(0, (12+(16*i))-16, 160, 36, damage_string[i], 1)
           end
         else
           bitmap.font.color.set(96, 96-20, 0) if color == 0
           bitmap.font.color.set(0, 0, 0) if color != 0 
           bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1)
           bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1)
           bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1)
           bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1)
           bitmap.font.color.set(255, 245, 155) if color == 0
           bitmap.font.color.set(144, 199, 150) if color == 1
           bitmap.font.color.set(197, 147, 190)if color == 2
           bitmap.font.color.set(138, 204, 198)if color == 3
           bitmap.draw_text(0, 12, 160, 36, damage_string, 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
         @_damage_sprite.z = 3000
         @_damage_duration = 30
       end 
       def dispose_damage
       if @_damage_sprite != nil
         @_damage_sprite.dispose
         @_damage_sprite = nil
       end
     end
    end
    
    #------------------------------------------------------------------------------
    # Spriteset Map
    #------------------------------------------------------------------------------
    class Spriteset_Map
     alias crissaegrim_abs_sp_map_create_characters create_characters
     alias crissaegrim_abs_sp_map_update_characters update_characters
     alias crissaegrim_abs_sp_map_dispose dispose
     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_Character.new(@viewport1,drop))
       end
       crissaegrim_abs_sp_map_create_characters
     end
     def update_characters
       crissaegrim_abs_sp_map_update_characters
       for range in @range_sprites
         next if range == nil
         range.update
       end
       for drop in @drop_sprites
         next if drop == nil
         drop.update
       end
       for range in $game_range
         next if range == nil
         if range.draw == false
           @range_sprites.push(Sprite_Character.new(@viewport1,range))
           range.draw = true
         end
         if range.destroy == true
           $game_range.delete(range)
           range.character_name = ""
         end
       end
       for drop in $game_drop
         next if drop == nil
         if drop.draw == false
           @drop_sprites.push(Sprite_Character.new(@viewport1,drop))
           drop.draw = true
         end
         if drop.destroy == true
           $game_drop.delete(drop)
           drop.character_name = "" 
         end
       end
     end
     def dispose
       for range in @range_sprites
         next if range == nil
         range.dispose
       end
       for drop in @drop_sprites
         next if drop == nil
         drop.dispose
       end
       crissaegrim_abs_sp_map_dispose
     end
    end
    
    #------------------------------------------------------------------------------
    # Scene Map
    #------------------------------------------------------------------------------
    class Scene_Map < Scene_Base
     alias crissaegrim_abs_smap_update update
     def update
       for range in $game_range
         next if range == nil
         range.update
       end
       for drop in $game_drop
         next if drop == nil
         drop.update
       end
       crissaegrim_abs_smap_update
     end
    end
    
    #------------------------------------------------------------------------------
    # Scene File
    #------------------------------------------------------------------------------
    class Scene_File < Scene_Base
     alias crissaegrim_abs_sfile_write_save_data write_save_data
     alias crissaegrim_abs_sfile_read_save_data read_save_data
     def write_save_data(file)
       crissaegrim_abs_sfile_write_save_data(file)
       Marshal.dump($game_range,         file)
       Marshal.dump($game_drop,         file)
     end
     def read_save_data(file)
       crissaegrim_abs_sfile_read_save_data(file)
       $game_range         = Marshal.load(file)
       $game_drop          = Marshal.load(file)
     end
    end
    
    #------------------------------------------------------------------------------
    # Scene Title
    #------------------------------------------------------------------------------
    class Scene_Title < Scene_Base
     alias crissaegrim_abs_scenetitle_command_new_game command_new_game
     def command_new_game
       $game_range = []
       $game_drop = []
       crissaegrim_abs_scenetitle_command_new_game
     end
    end
    
    #------------------------------------------------------------------------------
    # Window Skill
    #------------------------------------------------------------------------------
    class Window_Skill < Window_Selectable
     def update_help
       if $skill_lock_description <= 0
         @help_window.set_text(skill == nil ? "" : skill.description)
       else
         @help_window.set_text(skill == nil ? "" : "Skill Memorizada!")
       end
     end
    end
    class Scene_Skill < Scene_Base
     alias crissaegrim_abs_sskill_start start
     alias crissaegrim_abs_sskill_update update
     alias crissaegrim_abs_sskill_update_skill_selection update_skill_selection
     alias crissaegrim_abs_sitem_use_skill_nontarget use_skill_nontarget
     def start
       $skill_lock_description = 0
       crissaegrim_abs_sskill_start
     end
     def update
       crissaegrim_abs_sskill_update
       $skill_lock_description -= 1 if $skill_lock_description > 0
     end
     def update_skill_selection
       for button in Crissaegrim_ABS::Skill_Button.keys
         if Input.trigger?(button)
           Sound.play_decision
           Crissaegrim_ABS::Skill_Button[button] = @skill_window.skill.id
           $skill_lock_description = 120
         end
       end
       crissaegrim_abs_sskill_update_skill_selection
     end
     def use_skill_nontarget
       return if @skill.scope == 1 or
       @skill.scope == 2 or
       @skill.scope == 3 or
       @skill.scope == 4 or
       @skill.scope == 5 or
       @skill.scope == 6 or
       crissaegrim_abs_sitem_use_skill_nontarget
     end
    end
    
    #------------------------------------------------------------------------------
    # Window Item
    #------------------------------------------------------------------------------
    class Window_Item < Window_Selectable
     alias crissaegrim_abs_witem_initialize initialize
     def initialize(x, y, width, height)
       $item_lock_description = 0
       crissaegrim_abs_witem_initialize(x, y, width, height)
     end
     def update_help
       if $item_lock_description <= 0
       @help_window.set_text(item == nil ? "" : item.description)
     else
       @help_window.set_text(item == nil ? "" : "Item Memorizado!")
     end
    end
    end
    class Scene_Item < Scene_Base
     alias crissaegrim_abs_sitem_start start
     alias crissaegrim_abs_sitem_update update
     alias crissaegrim_abs_sitem_update_item_selection update_item_selection
     alias crissaegrim_abs_sitem_use_item_nontarget use_item_nontarget
     def start
       $item_lock_description = 0
       crissaegrim_abs_sitem_start
     end
     def update
       crissaegrim_abs_sitem_update
       $item_lock_description -= 1 if $item_lock_description > 0
     end
     def update_item_selection
       for button in Crissaegrim_ABS::Item_Button.keys
         if Input.trigger?(button)
           Sound.play_decision
           Crissaegrim_ABS::Item_Button[button] = @item_window.item.id
           $item_lock_description = 120
         end
       end
       crissaegrim_abs_sitem_update_item_selection
     end
     def use_item_nontarget
       return if @item.scope == 1 or
       @item.scope == 2 or
       @item.scope == 3 or
       @item.scope == 4 or
       @item.scope == 5 or
       @item.scope == 6 or
       crissaegrim_abs_sitem_use_item_nontarget
     end
    end
    
    #------------------------------------------------------------------------------
    # Fine dell' ABS
    #------------------------------------------------------------------------------	

  10. Buondì.. Allora.. Il mio problema è questo:

     

    Il testo che compare nei messaggi del mio gioco è piccolo (cioè, il carattere è molto piccolo e non si vede tanto). Io vorrei fare in modo che le parole compaiano con un carattere più grosso, magari in grassetto.. Spero di essermi spiegato bene.. Il fatto è che lo script "Advance message sistem" non funziona nel mio progetto a causa di altri script fondamentale del mio gioco. Quindi sto cercando un altro modo per poter ingrandire le scritte nei messaggi.. Grazie x l'attenzione.. :sisi:

  11. Si, è come avete detto voi. Infatti mi da errori perchè come script di base ho il bs alla FF XII. Infatti gli errori sono riferiti a questo script che però non penso di poter modificare e non posso eliminare perchè è il piu importante. Quindi è per questo che non mi gira lo script x i veicoli.

    Infatti volevo sapere se ci sono altri modi.. grazie..

  12. Salve a tutti..

    Come da titolo, ho 3 problemi che non riesco proprio a risolvere..

     

    1: Inserire il nome scelto del pg in un messaggio. (Ho cercato e letto varie cose.. Come ad esempio che nel messaggio devo inserire /N[numero del pg] però ho provato in ogni modo e lingua ma non compare sto benedetto nome...

     

    2: Inserire una minimappa (problema minore).. Anke in questo caso sono proprio a zero...

     

    3: I mezzi di trasporto (problema più urgente).. Cioè, voglio poter salire su un aereo o una nave e poter quindi navigare o sorvolare l acqua nella stessa mappa in cui il pg non può andare a piedi.. Con rpgmaker xp non sono riuscito a far funzionare diversi script che ho trovato sull argomento... Se conoscete un altro modo...

     

    Ecco.. Dovrei aver finito..

    Intanto ringrazio chiunque abbia letto fino alla fine il mio messaggio..

    E ringrazio tantissimo chi riuscirà a darmi una mano in uno di questi problemi..

×
×
  • Create New...