Нужна доработка Ace Battle Engine

Больше
12 года 7 мес. назад - 12 года 7 мес. назад #64690 от Shedi
Всем привет! Я уже в курсе что на этом форуме могут мне помочь. С моей проблемой.
А проблема такая.
Code:
#============================================================================== # # ▼ Yanfly Engine Ace - Battle Engine Add-On: Enemy HP Bars v1.10 # -- Last Updated: 2012.02.10 # -- Level: Easy, Normal # -- Requires: YEA - Ace Battle Engine v1.00+. # #============================================================================== $imported = {} if $imported.nil? $imported["YEA-EnemyHPBars"] = true #============================================================================== # ▼ Updates # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # 2012.02.10 - Bug Fixed: AoE selection doesn't reveal hidden enemies. # 2012.02.01 - Bug Fixed: Back and front of gauge randomly don't appear. # 2012.01.11 - Efficiency update. # 2012.01.04 - Compatibility Update: Area of Effect # 2011.12.28 - Efficiency update. # - Bug Fixed: HP bars didn't disappear after a heal. # 2011.12.26 - Bug Fixed: HP bars were not depleting. # 2011.12.23 - Efficiency update. # 2011.12.10 - Bug Fixed: HP bars no longer appear when dead and an AoE skill # has been selected. # 2011.12.08 - New feature. Hide HP Bars until defeated once. # 2011.12.06 - Started Script and Finished. # #============================================================================== # ▼ Introduction # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # This script shows HP gauges on enemies as they're selected for targeting or # whenever they're damaged. The HP gauges will actually slide downward or # upward as the enemies take damage. # # Included in v1.01 is the option to require the player having slain an enemy # once before enemies of that type will show their HP gauge. # #============================================================================== # ▼ Instructions # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # To install this script, open up your script editor and copy/paste this script # to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save. # # ----------------------------------------------------------------------------- # Enemy Notetags - These notetags go in the enemy notebox in the database. # ----------------------------------------------------------------------------- # <back gauge: x> # Changes the colour of the enemy HP back gauge to x where x is the text colour # used from the "Window" skin image under Graphics\System. # # <hp gauge 1: x> # <hp gauge 2: x> # Changes the colour of the enemy HP HP gauge to x where x is the text colour # used from the "Window" skin image under Graphics\System. # # <hide gauge> # <show gauge> # Hides/shows HP gauge for enemies in battle. These gauges appear whenever the # enemy is targeted for battle or whenever the enemy takes HP damage. Note that # using the <show gauge> tag will bypass the requirement for needing to defeat # an enemy once if that setting is enabled. # #============================================================================== # ▼ Compatibility # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # This script is made strictly for RPG Maker VX Ace. It is highly unlikely that # it will run with RPG Maker VX without adjusting. # # This script requires Yanfly Engine Ace - Ace Battle Engine v1.00+ and the # script must be placed under Ace Battle Engine in the script listing. # #============================================================================== module YEA module BATTLE #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # - Enemy HP Gauges - #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # Adjust the settings for the enemy HP gauges. You can choose to show the # enemy HP gauges by default, the size of the gauge, the colour of the # gauge, and the back colour of the gauge. #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- SHOW_ENEMY_HP_GAUGE = true # Display Enemy HP Gauge? ANIMATE_HP_GAUGE = true # Animate the HP gauge? DEFEAT_ENEMIES_FIRST = false # Must defeat enemy first to show HP? ENEMY_GAUGE_WIDTH = 35 # How wide the enemy gauges are. ENEMY_GAUGE_HEIGHT = 4 # How tall the enemy gauges are. ENEMY_HP_GAUGE_COLOUR1 = 20 # Colour 1 for HP. ENEMY_HP_GAUGE_COLOUR2 = 21 # Colour 2 for HP. ENEMY_BACKGAUGE_COLOUR = 19 # Gauge Back colour. end # BATTLE end # YEA #============================================================================== # ▼ Editting anything past this point may potentially result in causing # computer damage, incontinence, explosion of user's head, coma, death, and/or # halitosis so edit at your own risk. #============================================================================== if $imported["YEA-BattleEngine"] module YEA module REGEXP module ENEMY HIDE_GAUGE = /<(?:HIDE_GAUGE|hide gauge)>/i SHOW_GAUGE = /<(?:SHOW_GAUGE|show gauge)>/i BACK_GAUGE = /<(?:BACK_GAUGE|back gauge):[ ]*(\d+)>/i HP_GAUGE_1 = /<(?:HP_GAUGE_1|hp gauge 1):[ ]*(\d+)>/i HP_GAUGE_2 = /<(?:HP_GAUGE_2|hp gauge 2):[ ]*(\d+)>/i end # ENEMY end # REGEXP end # YEA #============================================================================== # ■ DataManager #============================================================================== module DataManager #-------------------------------------------------------------------------- # alias method: load_database #-------------------------------------------------------------------------- class <<self; alias load_database_ehpb load_database; end def self.load_database load_database_ehpb load_notetags_ehpb end #-------------------------------------------------------------------------- # new method: load_notetags_ehpb #-------------------------------------------------------------------------- def self.load_notetags_ehpb groups = [$data_enemies] for group in groups for obj in group next if obj.nil? obj.load_notetags_ehpb end end end end # DataManager #============================================================================== # ■ RPG::Enemy #============================================================================== class RPG::Enemy < RPG::BaseItem #-------------------------------------------------------------------------- # public instance variables #-------------------------------------------------------------------------- attr_accessor :show_gauge attr_accessor :require_death_show_gauge attr_accessor :back_gauge_colour attr_accessor :hp_gauge_colour1 attr_accessor :hp_gauge_colour2 #-------------------------------------------------------------------------- # common cache: load_notetags_ehpb #-------------------------------------------------------------------------- def load_notetags_ehpb @show_gauge = YEA::BATTLE::SHOW_ENEMY_HP_GAUGE @require_death_show_gauge = YEA::BATTLE::DEFEAT_ENEMIES_FIRST @back_gauge_colour = YEA::BATTLE::ENEMY_BACKGAUGE_COLOUR @hp_gauge_colour1 = YEA::BATTLE::ENEMY_HP_GAUGE_COLOUR1 @hp_gauge_colour2 = YEA::BATTLE::ENEMY_HP_GAUGE_COLOUR2 #--- self.note.split(/[\r\n]+/).each { |line| case line #--- when YEA::REGEXP::ENEMY::HIDE_GAUGE @show_gauge = false when YEA::REGEXP::ENEMY::SHOW_GAUGE @show_gauge = true @require_death_show_gauge = false when YEA::REGEXP::ENEMY::BACK_GAUGE @back_gauge_colour = [$1.to_i, 31].min when YEA::REGEXP::ENEMY::HP_GAUGE_1 @hp_gauge_colour1 = [$1.to_i, 31].min when YEA::REGEXP::ENEMY::HP_GAUGE_2 @hp_gauge_colour2 = [$1.to_i, 31].min end } # self.note.split #--- end end # RPG::Enemy #============================================================================== # ■ Sprite_Battler #============================================================================== class Sprite_Battler < Sprite_Base #-------------------------------------------------------------------------- # alias method: initialize #-------------------------------------------------------------------------- alias sprite_battler_initialize_ehpb initialize def initialize(viewport, battler = nil) sprite_battler_initialize_ehpb(viewport, battler) create_enemy_gauges end #-------------------------------------------------------------------------- # alias method: dispose #-------------------------------------------------------------------------- alias sprite_battler_dispose_ehpb dispose def dispose sprite_battler_dispose_ehpb dispose_enemy_gauges end #-------------------------------------------------------------------------- # alias method: update #-------------------------------------------------------------------------- alias sprite_battler_update_ehpb update def update sprite_battler_update_ehpb update_enemy_gauges end #-------------------------------------------------------------------------- # new method: create_enemy_gauges #-------------------------------------------------------------------------- def create_enemy_gauges return if @battler.nil? return if @battler.actor? return unless @battler.enemy.show_gauge @back_gauge_viewport = Enemy_HP_Gauge_Viewport.new(@battler, self, :back) @hp_gauge_viewport = Enemy_HP_Gauge_Viewport.new(@battler, self, :hp) end #-------------------------------------------------------------------------- # new method: dispose_enemy_gauges #-------------------------------------------------------------------------- def dispose_enemy_gauges @back_gauge_viewport.dispose unless @back_gauge_viewport.nil? @hp_gauge_viewport.dispose unless @hp_gauge_viewport.nil? end #-------------------------------------------------------------------------- # new method: update_enemy_gauges #-------------------------------------------------------------------------- def update_enemy_gauges @back_gauge_viewport.update unless @back_gauge_viewport.nil? @hp_gauge_viewport.update unless @hp_gauge_viewport.nil? end #-------------------------------------------------------------------------- # new method: update_enemy_gauge_value #-------------------------------------------------------------------------- def update_enemy_gauge_value @back_gauge_viewport.new_hp_updates unless @back_gauge_viewport.nil? @hp_gauge_viewport.new_hp_updates unless @hp_gauge_viewport.nil? end end # Sprite_Battler #============================================================================== # ■ Game_BattlerBase #============================================================================== class Game_BattlerBase #-------------------------------------------------------------------------- # public instance variables #-------------------------------------------------------------------------- attr_accessor :hidden #-------------------------------------------------------------------------- # alias method: refresh #-------------------------------------------------------------------------- alias game_battlerbase_refresh_ehpb refresh def refresh game_battlerbase_refresh_ehpb return unless SceneManager.scene_is?(Scene_Battle) return if actor? sprite.update_enemy_gauge_value end end # Game_BattlerBase #============================================================================== # ■ Game_Battler #============================================================================== class Game_Battler < Game_BattlerBase #-------------------------------------------------------------------------- # alias method: die #-------------------------------------------------------------------------- alias game_battler_die_ehpb die def die game_battler_die_ehpb return if actor? $game_party.add_defeated_enemy(@enemy_id) end #-------------------------------------------------------------------------- # alias method: hp= #-------------------------------------------------------------------------- alias game_battlerbase_hpequals_ehpb hp= def hp=(value) game_battlerbase_hpequals_ehpb(value) return unless SceneManager.scene_is?(Scene_Battle) return if actor? return if value == 0 sprite.update_enemy_gauge_value end end # Game_Battler #============================================================================== # ■ Game_Party #============================================================================== class Game_Party < Game_Unit #-------------------------------------------------------------------------- # alias method: init_all_items #-------------------------------------------------------------------------- alias game_party_init_all_items_ehpb init_all_items def init_all_items game_party_init_all_items_ehpb @defeated_enemies = [] end #-------------------------------------------------------------------------- # new method: defeated_enemies #-------------------------------------------------------------------------- def defeated_enemies @defeated_enemies = [] if @defeated_enemies.nil? return @defeated_enemies end #-------------------------------------------------------------------------- # new method: add_defeated_enemy #-------------------------------------------------------------------------- def add_defeated_enemy(id) @defeated_enemies = [] if @defeated_enemies.nil? @defeated_enemies.push(id) unless @defeated_enemies.include?(id) end end # Game_Party #============================================================================== # ■ Enemy_HP_Gauge_Viewport #============================================================================== class Enemy_HP_Gauge_Viewport < Viewport #-------------------------------------------------------------------------- # initialize #-------------------------------------------------------------------------- def initialize(battler, sprite, type) @battler = battler @base_sprite = sprite @type = type dw = YEA::BATTLE::ENEMY_GAUGE_WIDTH dw += 2 if @type == :back @start_width = dw dh = YEA::BATTLE::ENEMY_GAUGE_HEIGHT dh += 2 if @type == :back rect = Rect.new(0, 0, dw, dh) @current_hp = @battler.hp @current_mhp = @battler.mhp @target_gauge_width = target_gauge_width @gauge_rate = 1.0 setup_original_hide_gauge super(rect) self.z = 125 create_gauge_sprites self.visible = false update_position end #-------------------------------------------------------------------------- # dispose #-------------------------------------------------------------------------- def dispose @sprite.bitmap.dispose unless @sprite.bitmap.nil? @sprite.dispose super end #-------------------------------------------------------------------------- # update #-------------------------------------------------------------------------- def update super self.visible = gauge_visible? @sprite.ox += 4 if YEA::BATTLE::ANIMATE_HP_GAUGE update_position update_gauge @visible_counter -= 1 end #-------------------------------------------------------------------------- # setup_original_hide_gauge #-------------------------------------------------------------------------- def setup_original_hide_gauge @original_hide = @battler.enemy.require_death_show_gauge return unless @original_hide if YEA::BATTLE::DEFEAT_ENEMIES_FIRST enemy_id = @battler.enemy_id @original_hide = !$game_party.defeated_enemies.include?(enemy_id) end end #-------------------------------------------------------------------------- # create_gauge_sprites #-------------------------------------------------------------------------- def create_gauge_sprites @sprite = Plane.new(self) dw = self.rect.width * 2 @sprite.bitmap = Bitmap.new(dw, self.rect.height) case @type when :back colour1 = Colour.text_colour(@battler.enemy.back_gauge_colour) colour2 = Colour.text_colour(@battler.enemy.back_gauge_colour) when :hp colour1 = Colour.text_colour(@battler.enemy.hp_gauge_colour1) colour2 = Colour.text_colour(@battler.enemy.hp_gauge_colour2) end dx = 0 dy = 0 dw = self.rect.width dh = self.rect.height @gauge_width = target_gauge_width @sprite.bitmap.gradient_fill_rect(dx, dy, dw, dh, colour1, colour2) @sprite.bitmap.gradient_fill_rect(dw, dy, dw, dh, colour2, colour1) @visible_counter = 0 end #-------------------------------------------------------------------------- # update_visible #-------------------------------------------------------------------------- def gauge_visible? update_original_hide return false if @original_hide return false if case_original_hide? return true if @visible_counter > 0 return true if @gauge_width != @target_gauge_width if SceneManager.scene_is?(Scene_Battle) return false if SceneManager.scene.enemy_window.nil? unless @battler.dead? if SceneManager.scene.enemy_window.active return true if SceneManager.scene.enemy_window.enemy == @battler return true if SceneManager.scene.enemy_window.select_all? return true if highlight_aoe? end end end return false end #-------------------------------------------------------------------------- # highlight_aoe? #-------------------------------------------------------------------------- def highlight_aoe? return false unless $imported["YEA-AreaofEffect"] return false if @battler.enemy? && @battler.hidden return SceneManager.scene.enemy_window.hightlight_aoe?(@battler) end #-------------------------------------------------------------------------- # new_hp_updates #-------------------------------------------------------------------------- def new_hp_updates return if @current_hp == @battler.hp && @current_mhp == @battler.mhp @current_hp = @battler.hp @current_mhp = @battler.mhp return if @gauge_rate == target_gauge_rate @gauge_rate = target_gauge_rate @target_gauge_width = target_gauge_width @visible_counter = 60 end #-------------------------------------------------------------------------- # case_original_hide? #-------------------------------------------------------------------------- def case_original_hide? return false if !@battler.enemy.require_death_show_gauge if YEA::BATTLE::DEFEAT_ENEMIES_FIRST enemy_id = @battler.enemy_id return true unless $game_party.defeated_enemies.include?(enemy_id) end return false end #-------------------------------------------------------------------------- # update_original_hide #-------------------------------------------------------------------------- def update_original_hide return unless @original_hide return if @battler.dead? enemy_id = @battler.enemy_id @original_hide = false if $game_party.defeated_enemies.include?(enemy_id) end #-------------------------------------------------------------------------- # update_position #-------------------------------------------------------------------------- def update_position dx = @battler.screen_x - @start_width / 2 dy = @battler.screen_y self.rect.x = dx self.rect.y = dy dh = self.rect.height + 1 dh += 2 unless @type == :back dy = [@battler.screen_y, Graphics.height - dh - 120].min dy += 1 unless @type == :back self.rect.y = dy end #-------------------------------------------------------------------------- # update_gauge #-------------------------------------------------------------------------- def update_gauge return if @gauge_width == @target_gauge_width rate = 3 @target_gauge_width = target_gauge_width if @gauge_width > @target_gauge_width @gauge_width = [@gauge_width - rate, @target_gauge_width].max elsif @gauge_width < @target_gauge_width @gauge_width = [@gauge_width + rate, @target_gauge_width].min end @visible_counter = @gauge_width == 0 ? 10 : 60 return if @type == :back self.rect.width = @gauge_width end #-------------------------------------------------------------------------- # target_gauge_rate #-------------------------------------------------------------------------- def target_gauge_rate return @current_hp.to_f / @current_mhp.to_f end #-------------------------------------------------------------------------- # target_gauge_width #-------------------------------------------------------------------------- def target_gauge_width return [@current_hp * @start_width / @current_mhp, @start_width].min end end # Enemy_HP_Gauge_Viewport end # $imported["YEA-BattleEngine"] #============================================================================== # # ▼ End of File # #==============================================================================
Есть вот такой скрипт его надо доработать вот до такого вида.
ВНИМАНИЕ: Спойлер!

Зарание спасибо!
Последнее редактирование: 12 года 7 мес. назад пользователем AnnTenna. Причина: более адекватное название темы сделала

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 1 место Программист Ruby Писатель 3 место 3 место Учитель Организатор конкурсов 1 место в Готв Ветеран Проект месяца 2 место
Больше
12 года 7 мес. назад - 12 года 7 мес. назад #64691 от DeadElf79
Воспользуйся тегом ["code type=ruby"]для вставки скрипта[/"code] (без кавычек). Очень неудобно читать))
Последнее редактирование: 12 года 7 мес. назад пользователем DeadElf79.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
12 года 7 мес. назад #64694 от Shedi
исправил.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 1 место Программист Ruby Писатель 3 место 3 место Учитель Организатор конкурсов 1 место в Готв Ветеран Проект месяца 2 место
Больше
12 года 7 мес. назад #64696 от DeadElf79
Удали кавычки))
Ладно, почитаю, где-то я это уже видел.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
12 года 7 мес. назад #64697 от Shedi
Почитай. рад буду если сможешь помочь.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 1 место Программист Ruby Писатель 3 место 3 место Учитель Организатор конкурсов 1 место в Готв Ветеран Проект месяца 2 место
Больше
12 года 7 мес. назад #64706 от DeadElf79
Не стал излишне дополнять этот скрипт, так что сделал отдельный аддон. Сейчас кое-что допишу, потестируешь - скажешь, работает ли.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
12 года 7 мес. назад #64707 от Shedi
Давай самое главное чтоб стрелка двигалась за градиентом жизни врагов и при использование массовой магии
размножалась как и градиент на всех врагов. а то другие стрелки при использование этого скрипта при масовой магии только на одном враге появляются(

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 1 место Программист Ruby Писатель 3 место 3 место Учитель Организатор конкурсов 1 место в Готв Ветеран Проект месяца 2 место
Больше
12 года 7 мес. назад #64708 от DeadElf79
оу, вот это не гарантирую.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
12 года 7 мес. назад #64709 от Shedi
Как так??

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 1 место Программист Ruby Писатель 3 место 3 место Учитель Организатор конкурсов 1 место в Готв Ветеран Проект месяца 2 место
Больше
12 года 7 мес. назад - 12 года 7 мес. назад #64710 от DeadElf79
Так, сделал по аналогии с оригинальным скриптом. Вставляй как отдельный скрипт:
Code:
#============================================================================== # # ▼ Yanfly Engine Ace - Battle Engine Add-On: Enemy Pointer v1.0 # -- Author: DeadElf79 # -- Last Updated: 2013.09.20 # -- Level: Easy, Normal # -- Requires: YEA - Ace Battle Engine v1.00+. # #============================================================================== $imported = {} if $imported.nil? $imported["YEA-EnemyPointer"] = true #============================================================================== # ▼ Updates # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # 2013.09.20 - Release # #============================================================================== # ▼ Introduction # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # This script shows pointer over enemy # #============================================================================== # ▼ Instructions # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # To install this script, open up your script editor and copy/paste this script # to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save. # # ----------------------------------------------------------------------------- # Enemy Notetags - These notetags go in the enemy notebox in the database. # ----------------------------------------------------------------------------- # <pointer: x>, <pointer: y> # Position for pointer image relatively Battler's center # #============================================================================== # ▼ Compatibility # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # This script is made strictly for RPG Maker VX Ace. It is highly unlikely that # it will run with RPG Maker VX without adjusting. # # This script requires Yanfly Engine Ace - Ace Battle Engine v1.00+ and the # script must be placed under Ace Battle Engine in the script listing. # #============================================================================== module YEA module BATTLE #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # - Enemy Pointer - #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # You can choose image for pointer #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ENEMY_POINTER_IMAGE="Data/Pictures/Pointer" DEF_ENEMY_POINTER_X=0 DEF_ENEMY_POINTER_Y=+30 end # BATTLE end # YEA #============================================================================== # ▼ Editting anything past this point may potentially result in causing # computer damage, incontinence, explosion of user's head, coma, death, and/or # halitosis so edit at your own risk. #============================================================================== if $imported["YEA-BattleEngine"] module YEA module REGEXP module ENEMY ENEMY_POINTER_X =/<(?:pointer_x|POINTER_X):[ ]*(\d+)>/i ENEMY_POINTER_Y =/<(?:pointer_y|POINTER_Y):[ ]*(\d+)>/i end # ENEMY end # REGEXP end # YEA #============================================================================== # ■ DataManager #============================================================================== module DataManager #-------------------------------------------------------------------------- # alias method: load_database #-------------------------------------------------------------------------- class <<self; alias load_database_epoin load_database; end def self.load_database load_database_epoin load_notetags_epoin end #-------------------------------------------------------------------------- # new method: load_notetags_epoin #-------------------------------------------------------------------------- def self.load_notetags_epoin groups = [$data_enemies] for group in groups for obj in group next if obj.nil? obj.load_notetags_epoin end end end end # DataManager #============================================================================== # ■ RPG::Enemy #============================================================================== class RPG::Enemy < RPG::BaseItem #-------------------------------------------------------------------------- # public instance variables татьяна 89853184215 - спец. по подбору персонала #-------------------------------------------------------------------------- attr_accessor :pointer_x attr_accessor :pointer_y #-------------------------------------------------------------------------- # common cache: load_notetags_ehpb #-------------------------------------------------------------------------- def load_notetags_epoin @pointer_x = YEA::BATTLE::DEF_ENEMY_POINTER_X @pointer_y = YEA::BATTLE::DEF_ENEMY_POINTER_Y #--- self.note.split(/[\r\n]+/).each { |line| case line #--- when YEA::REGEXP::ENEMY::ENEMY_POINTER_X @pointer_x = [$1.to_i, 320].min when YEA::REGEXP::ENEMY::ENEMY_POINTER_Y @pointer_y = [$1.to_i, 240].min end } # self.note.split #--- end end # RPG::Enemy #============================================================================== # ■ Sprite_Battler #============================================================================== class Sprite_Battler < Sprite_Base #-------------------------------------------------------------------------- # alias method: initialize #-------------------------------------------------------------------------- alias sprite_battler_initialize_epoin initialize def initialize(viewport, battler = nil) sprite_battler_initialize_epoin(viewport, battler) create_enemy_pointer end #-------------------------------------------------------------------------- # alias method: dispose #-------------------------------------------------------------------------- alias sprite_battler_dispose_epoin dispose def dispose sprite_battler_dispose_epoin dispose_enemy_pointer end #-------------------------------------------------------------------------- # alias method: update #-------------------------------------------------------------------------- alias sprite_battler_update_epoin update def update sprite_battler_update_epoin update_enemy_pointer end #-------------------------------------------------------------------------- # new method: create_enemy_pointer #-------------------------------------------------------------------------- def create_enemy_pointer return if @battler.nil? return if @battler.actor? @enemy_pointer=Pointer_Viewport.new(@battler, self, :back) end #-------------------------------------------------------------------------- # new method: dispose_enemy_pointer #-------------------------------------------------------------------------- def dispose_enemy_pointer @enemy_pointer.dispose unless @enemy_pointer.nil? end #-------------------------------------------------------------------------- # new method: update_enemy_pointer #-------------------------------------------------------------------------- def update_enemy_pointer unless @enemy_pointer.nil? @enemy_pointer.update unless @enemy_pointer.nil? end end end # Sprite_Battler #============================================================================== # ■ Pointer_Viewport #============================================================================== class Pointer_Viewport # # initialize # def initialize(battler, sprite, type) @battler = battler @base_sprite = sprite @type = type @enemy_pointer=Sprite.new @enemy_pointer.bitmap=Bitmap.new(YEA::BATTLE::ENEMY_POINTER_IMAGE) @enemy_pointer.z=126 #over gauges end # # update # def update dx = @battler.screen_x - @start_width / 2 dy = @battler.screen_y @enemy_pointer.x = dx + @battler.pointer_x @enemy_pointer.y = dy + @battler.pointer_y end # # dispose # def dispose @enemy_pointer.bitmap.dispose unless @enemy_pointer.bitmap.nil? @enemy_pointer.dispose unless @enemy_pointer.nil? end end# Pointer_Viewport end # $imported["YEA-BattleEngine"] #============================================================================== # # ▼ End of File # #==============================================================================

Протестировать, к сожалению, не могу. Если будут ошибки - приложи скриншот, я исправлю))
Чуть не забыл - тебе потребуется картинка с именем Pointer в папке Graphics/Pictures. Ее приложи сам какую-нибудь))
Последнее редактирование: 12 года 7 мес. назад пользователем DeadElf79.
Спасибо сказали: Amphilohiy

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
12 года 7 мес. назад #64711 от Shedi
выдает ошибку
ВНИМАНИЕ: Спойлер!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 1 место Программист Ruby Писатель 3 место 3 место Учитель Организатор конкурсов 1 место в Готв Ветеран Проект месяца 2 место
Больше
12 года 7 мес. назад #64712 от DeadElf79
Пофиксил. вот код:
Code:
#============================================================================== # # ▼ Yanfly Engine Ace - Battle Engine Add-On: Enemy Pointer v1.0 # -- Author: DeadElf79 # -- Last Updated: 2013.09.20 # -- Level: Easy, Normal # -- Requires: YEA - Ace Battle Engine v1.00+. # #============================================================================== $imported = {} if $imported.nil? $imported["YEA-EnemyPointer"] = true #============================================================================== # ▼ Updates # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # 2013.09.20 - Release # #============================================================================== # ▼ Introduction # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # This script shows pointer over enemy # #============================================================================== # ▼ Instructions # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # To install this script, open up your script editor and copy/paste this script # to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save. # # ----------------------------------------------------------------------------- # Enemy Notetags - These notetags go in the enemy notebox in the database. # ----------------------------------------------------------------------------- # <pointer: x>, <pointer: y> # Position for pointer image relatively Battler's center # #============================================================================== # ▼ Compatibility # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # This script is made strictly for RPG Maker VX Ace. It is highly unlikely that # it will run with RPG Maker VX without adjusting. # # This script requires Yanfly Engine Ace - Ace Battle Engine v1.00+ and the # script must be placed under Ace Battle Engine in the script listing. # #============================================================================== module YEA module BATTLE #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # - Enemy Pointer - #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # You can choose image for pointer #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ENEMY_POINTER_IMAGE="Data/Pictures/Pointer" DEF_ENEMY_POINTER_X=0 DEF_ENEMY_POINTER_Y=+30 end # BATTLE end # YEA #============================================================================== # ▼ Editting anything past this point may potentially result in causing # computer damage, incontinence, explosion of user's head, coma, death, and/or # halitosis so edit at your own risk. #============================================================================== if $imported["YEA-BattleEngine"] module YEA module REGEXP module ENEMY ENEMY_POINTER_X =/<(?:pointer_x|POINTER_X):[ ]*(\d+)>/i ENEMY_POINTER_Y =/<(?:pointer_y|POINTER_Y):[ ]*(\d+)>/i end # ENEMY end # REGEXP end # YEA #============================================================================== # ■ DataManager #============================================================================== module DataManager #-------------------------------------------------------------------------- # alias method: load_database #-------------------------------------------------------------------------- class <<self; alias load_database_epoin load_database; end def self.load_database load_database_epoin load_notetags_epoin end #-------------------------------------------------------------------------- # new method: load_notetags_epoin #-------------------------------------------------------------------------- def self.load_notetags_epoin groups = [$data_enemies] for group in groups for obj in group next if obj.nil? obj.load_notetags_epoin end end end end # DataManager #============================================================================== # ■ RPG::Enemy #============================================================================== class RPG::Enemy < RPG::BaseItem #-------------------------------------------------------------------------- # public instance variables татьяна 89853184215 - спец. по подбору персонала #-------------------------------------------------------------------------- attr_accessor :pointer_x attr_accessor :pointer_y #-------------------------------------------------------------------------- # common cache: load_notetags_ehpb #-------------------------------------------------------------------------- def load_notetags_epoin @pointer_x = YEA::BATTLE::DEF_ENEMY_POINTER_X @pointer_y = YEA::BATTLE::DEF_ENEMY_POINTER_Y #--- self.note.split(/[\r\n]+/).each { |line| case line #--- when YEA::REGEXP::ENEMY::ENEMY_POINTER_X @pointer_x = [$1.to_i, 320].min when YEA::REGEXP::ENEMY::ENEMY_POINTER_Y @pointer_y = [$1.to_i, 240].min end } # self.note.split #--- end end # RPG::Enemy #============================================================================== # ■ Sprite_Battler #============================================================================== class Sprite_Battler < Sprite_Base #-------------------------------------------------------------------------- # alias method: initialize #-------------------------------------------------------------------------- alias sprite_battler_initialize_epoin initialize def initialize(viewport, battler = nil) sprite_battler_initialize_epoin(viewport, battler) create_enemy_pointer end #-------------------------------------------------------------------------- # alias method: dispose #-------------------------------------------------------------------------- alias sprite_battler_dispose_epoin dispose def dispose sprite_battler_dispose_epoin dispose_enemy_pointer end #-------------------------------------------------------------------------- # alias method: update #-------------------------------------------------------------------------- alias sprite_battler_update_epoin update def update sprite_battler_update_epoin update_enemy_pointer end #-------------------------------------------------------------------------- # new method: create_enemy_pointer #-------------------------------------------------------------------------- def create_enemy_pointer return if @battler.nil? return if @battler.actor? @enemy_pointer=Pointer_Viewport.new(@battler, self, :back) end #-------------------------------------------------------------------------- # new method: dispose_enemy_pointer #-------------------------------------------------------------------------- def dispose_enemy_pointer @enemy_pointer.dispose unless @enemy_pointer.nil? end #-------------------------------------------------------------------------- # new method: update_enemy_pointer #-------------------------------------------------------------------------- def update_enemy_pointer unless @enemy_pointer.nil? @enemy_pointer.update unless @enemy_pointer.nil? end end end # Sprite_Battler #============================================================================== # ■ Pointer_Viewport #============================================================================== class Pointer_Viewport # # initialize # def initialize(battler, sprite, type) @battler = battler @base_sprite = sprite @type = type @enemy_pointer=Sprite.new @enemy_pointer.bitmap=Bitmap.new(YEA::BATTLE::ENEMY_POINTER_IMAGE) @enemy_pointer.z=126 #over gauges end # # update # def update dx = @battler.screen_x - @enemy_pointer.width / 2 dy = @battler.screen_y @enemy_pointer.x = dx + @battler.pointer_x @enemy_pointer.y = dy + @battler.pointer_y end # # dispose # def dispose @enemy_pointer.bitmap.dispose unless @enemy_pointer.bitmap.nil? @enemy_pointer.dispose unless @enemy_pointer.nil? end end# Pointer_Viewport end # $imported["YEA-BattleEngine"] #============================================================================== # # ▼ End of File # #==============================================================================

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
12 года 7 мес. назад #64713 от Shedi
скрин ставить не буду но пишет ошибку в строке 226
с pointer.x

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 1 место Программист Ruby Писатель 3 место 3 место Учитель Организатор конкурсов 1 место в Готв Ветеран Проект месяца 2 место
Больше
12 года 7 мес. назад #64714 от DeadElf79
Ты хоть напиши, что за ошибку он пишет, я не могу протестировать у себя, а вслепую угадывать - так эта тема еще на несколько страниц разойдется)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
12 года 7 мес. назад #64716 от Shedi
вот ошибка
ВНИМАНИЕ: Спойлер!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 1 место Программист Ruby Писатель 3 место 3 место Учитель Организатор конкурсов 1 место в Готв Ветеран Проект месяца 2 место
Больше
12 года 7 мес. назад #64717 от DeadElf79
Попробуй в этой и следующей строке заменить слово @battler на @base_sprite. Если и это не избавит от ошибки с pointer_x, то я даже и не знаю, что можно сделать, придется как освобожусь включать мейкер и тестировать на нем самостоятельно.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
12 года 7 мес. назад #64719 от Shedi
увы не работает(

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 1 место Программист Ruby Писатель 3 место 3 место Учитель Организатор конкурсов 1 место в Готв Ветеран Проект месяца 2 место
Больше
12 года 7 мес. назад #64720 от DeadElf79
Ладно, значит, позже вечером я все потестирую у себя.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby 2 место Готв Победитель Сбитой кодировки Учитель Оратор
Больше
12 года 7 мес. назад - 12 года 7 мес. назад #64784 от Amphilohiy
Я ленивее Эльфа, так что просто поизгалялся над готовым классом. Вставлять как отдельный скрипт, но ниже градиентного аддона, хоть туда в конец припихать.
ВНИМАНИЕ: Спойлер!

Курсор пихать в Graphics/system/select_arrow.png, могу одолжить свой
ВНИМАНИЕ: Спойлер!

Размеры под батлера не подгоняются, оффсет по y настраивается в ручную, думаю найдешь где :)

Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Последнее редактирование: 12 года 7 мес. назад пользователем Amphilohiy.
Спасибо сказали: DeadElf79, Shedi

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
12 года 7 мес. назад #64787 от Shedi
Благодарен! без мерно!)) тему можно закрывать!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.128 секунд
Работает на Kunena форум