#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ #_/¡¡¡¡¡ßÓéÖª?Ò· £­ KGC_RankConception¡ß #_/---------------------------------------------------------------------------- #_/¡¡??ãÁªËÓéÖª?ÞÒïïªÎ?Ò·ªòõÚÊ¥ª·ªÞª¹¡£ #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ #============================================================================== # ¡Ú «««¹«¿«Þ«¤«ºú£ÙÍ ¡Ú #============================================================================== class Game_Battler # ¡ßÞÒïïÚ±àâïÒãÁªÎÞÒïïËå×î DEFAULT_RANGE = 4 end #¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú $imported = {} if $imported == nil $imported["RankConception"] = true if $game_special_elements == nil $game_special_elements = {} $data_system = load_data("Data/System.rxdata") end # ÓéÖª?àõ $game_special_elements["rank"] = $data_system.elements.index("ÓéÖª") # ÞÒïï?àõ $game_special_elements["range"] = /ÞÒïï(\d)/ # ÓéÖªì¹ÔÑ?àõ $game_special_elements["move_rank"] = /(îñ|ñé|ý­)êÛì¹ÔÑ/ #============================================================================== # ¡á Game_Actor #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ¡Ü «»«Ã«È«¢«Ã«× # actor_id : «¢«¯«¿? ID #-------------------------------------------------------------------------- alias setup_KGC_RankConception setup def setup(actor_id) # ꪪÎ?×âªò?ú¼ setup_KGC_RankConception(actor_id) # ÓéÖªªòôøÑ¢ûù @position = $data_classes[@class_id].position end #-------------------------------------------------------------------------- # ¡Ü ÓéÖªªÎö¢Ôð #-------------------------------------------------------------------------- def position @position = $data_classes[@class_id].position if @position == nil return @position end #-------------------------------------------------------------------------- # ¡Ü ÓéÖªªÎàâïÒ #-------------------------------------------------------------------------- def position=(p) @position = p end end #¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú #============================================================================== # ¡á Game_Battler (ÝÂùÜïÒëù 2) #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ¡Ü ÞÒïïêó?÷÷ïÒ # attacker : Íô?íº # action : ?×âú¼ÔÑ #-------------------------------------------------------------------------- def within_range?(attacker, action = nil) # ÞÒïïªòö¢Ôð if action != nil for element in action.element_set.compact element_name = $data_system.elements[element] # ÞÒïï?àõªòò¥ªÃªÆª¤ªëíÞùê if $game_special_elements["range"] =~ element_name range = $1.to_i if $1 != nil break end end end # ÞÒï窱Ùíª¤íÞùê if action == nil || range == nil range = DEFAULT_RANGE end # Íô?íºªÎÓéÖªªòö¢Ôð if attacker.is_a?(Game_Actor) a_pos = attacker.position else if $game_special_elements["rank"] != nil case $data_enemies[attacker.id].element_ranks[$game_special_elements["rank"]] when 1..2 # îñêÛ(A,B) a_pos = 0 when 3 # ñéêÛ(C) a_pos = 1 when 4..6 # ý­êÛ(D,E,F) a_pos = 2 end else a_pos = 1 end end # Íô??ßÚªÎÓéÖªªòö¢Ôð if self.is_a?(Game_Actor) t_pos = self.position else if $game_special_elements["rank"] != nil case $data_enemies[self.id].element_ranks[$game_special_elements["rank"]] when 1..2 # îñêÛ(A,B) t_pos = 0 when 3 # ñéêÛ(C) t_pos = 1 when 4..6 # ý­êÛ(D,E,F) t_pos = 2 end else t_pos = 1 end end # êó?ÞÒïïªò÷÷ïÒ return a_pos + t_pos <= range end end #¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú #============================================================================== # ¡á Game_Battler (ÝÂùÜïÒëù 3) #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ¡Ü ÷×ßÈÍô?ªÎ?ÍýîêéÄ #-------------------------------------------------------------------------- alias attack_effect_KGC_RankConception attack_effect def attack_effect(attacker) # ÞÒïïèâªÎíÞùê action = attacker.is_a?(Game_Actor) ? ($imported["EquipExtension"] ? $data_weapons[attacker.weapon_id(attacker.attack_count)] : $data_weapons[attacker.weapon_id]) : nil unless self.within_range?(attacker, action) # «À«á?«¸ªË "Miss" ªòàâïÒ self.damage = "Miss" # «¯«ê«Æ«£«««ë«Õ«é«°ªò«¯«ê«¢ self.critical = false # ?ªòÚ÷ª¹ return false end # ꪪÎ?×âªò?ú¼ return attack_effect_KGC_RankConception(attacker) end #-------------------------------------------------------------------------- # ¡Ü «¹«­«ëªÎ?ÍýîêéÄ #-------------------------------------------------------------------------- alias skill_effect_KGC_RankConception skill_effect def skill_effect(user, skill) # ÞÒïïèâªÎíÞùê unless self.within_range?(user, skill) # «À«á?«¸ªË "Miss" ªòàâïÒ self.damage = "Miss" # «¯«ê«Æ«£«««ë«Õ«é«°ªò«¯«ê«¢ self.critical = false # ?ªòÚ÷ª¹ return false end # ÓéÖªì¹ÔÑ?àõ÷÷ïÒ for element in skill.element_set.compact element_name = $data_system.elements[element] # ÞÒïï?àõªòò¥ªÃªÆª¤ªëíÞùê if $game_special_elements["move_rank"] =~ element_name move_position = $1 break end end # ÓéÖªì¹ÔÑ?àõªòò¥ªÃªÆª¤ªÊª¤íÞùê if move_position == nil # ꪪÎ?×âªò?ú¼ return skill_effect_KGC_RankConception(user, skill) end # «¯«ê«Æ«£«««ë«Õ«é«°ªò«¯«ê«¢ self.critical = false # «¹«­«ëªÎ?ÍýÛô?ª¬ HP 1 ì¤ß¾ªÎÚ«Û°ªÇ¡¢í»ÝªΠHP ª¬ 0¡¢ # ªÞª¿ªÏ«¹«­«ëªÎ?ÍýÛô?ª¬ HP 0 ªÎÚ«Û°ªÇ¡¢í»ÝªΠHP ª¬ 1 ì¤ß¾ªÎíÞùê if ((skill.scope == 3 || skill.scope == 4) && self.hp == 0) || ((skill.scope == 5 || skill.scope == 6) && self.hp >= 1) # «á«½«Ã«ÉðûÖõ return false end # êó?«Õ«é«°ªò«¯«ê«¢ @effective = false # «³«â«ó«¤«Ù«ó«È ID ª¬êó?ªÎíÞùêªÏêó?«Õ«é«°ªò«»«Ã«È @effective |= skill.common_event_id > 0 # ð¯ìéÙ¤ñé÷÷ïÒ hit = skill.hit if skill.atk_f > 0 hit *= user.hit / 100 end hit_result = (rand(100) < hit) # Üôü¬?ªÊ«¹«­«ëªÎíÞùêªÏêó?«Õ«é«°ªò«»«Ã«È @effective |= hit < 100 # Ù¤ñéªÎíÞùê if hit_result == true # «¹«Æ?«È?ûù @state_changed = false effective |= states_plus(skill.plus_state_set) effective |= states_minus(skill.minus_state_set) # ò¦ïÒêÈöǪËì¹ÔÑ case move_position when "îñ" if self.is_a?(Game_Actor) self.position = 0 else self.element_ranks[$game_special_elements["rank"]] = 1 end when "ñé" if self.is_a?(Game_Actor) self.position = 1 else self.element_ranks[$game_special_elements["rank"]] = 3 end when "ý­" if self.is_a?(Game_Actor) self.position = 2 else self.element_ranks[$game_special_elements["rank"]] = 4 end end # ?ªë return true end return false end end #¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú¡Ù¡Ú #============================================================================== # ¡á Window_BattleStatus #============================================================================== class Window_BattleStatus < Window_Base #-------------------------------------------------------------------------- # ¡Ü «ê«Õ«ì«Ã«·«å #-------------------------------------------------------------------------- alias refresh_KGC_RankConception refresh def refresh self.contents.font.size = 22 self.contents.font.color = normal_color # ꪪÎ?×âªò?ú¼ refresh_KGC_RankConception # ÓéÖªªòÙÚ? self.contents.font.size = 18 self.contents.font.color = text_color(3) for actor in $game_party.actors actor_x = actor.screen_x - 48 w = $imported["HPSPAlter"] && KGC::HPSP_DRAW_NAME_LUMP ? 16 : 120 case actor.position when 0 text = "F" when 1 text = "M" when 2 text = "R" end self.contents.draw_shadow_text(actor_x - 24, 0, w, 32, text, 2) end end end