Правила раздела:
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.

Помогите в управлении скриптом!(ACE)

Больше
13 года 9 мес. назад #54117 от DeadKane
Помогите пожалуйста разобраться со скриптом!Я нашёл на одном сайте вот этот скрипт
Code:
=begin CSCA Achievements version: 1.0 Created by: Casper667 from http://www.caspergaming.com/ Compatibility: Compatible only with VXAce. IMPORTANT: ALL CSCA Scripts should be compatible with each other unless otherwise noted. INTRODUCTION: This script creates an achievement system in your game. FEATURES: -Achievements! -Can assign a reward for each achievement -Can display a progress bar for each achievement -Automatically earn achievements when progress bar gets to 100%. -Can play an SE when achievement is unlocked -Popup window when achievement is earned -Able to use custom graphic in place of achievement window(size is 248x72), image will be resized if bigger or smaller. SETUP Setup required. Instructions below. To set an achievement as true, use the following script call: $game_achievements[achievement_id] = true where achievement_id would be the same number as ACHIEVEMENTS[achievement_id] CREDIT & TERMS Free to use in noncommercial games if credit is given to: casper667 from http://www.caspergaming.com/ If using in commercial game, please contact me. www.rpgmakervxace.net/user/193-casper667/ or www.caspergaming.com =end module CSCA # Don't touch module ACHIEVEMENTS # Don't touch #=======================================================================# # Declaring arrays, do not touch # #=======================================================================# ACHIEVEMENTS = [] # Don't touch DESCRIPTION = [] # Don't touch PROGRESS = [] # Don't touch REWARDS = [] # Don't touch #=======================================================================# # Description Setup # #=======================================================================# #DESCRIPTION[x] = ["Descriptive Text","Seperate lines with commas!"] DESCRIPTION[0] = ["Откройте 10 сундуков."] DESCRIPTION[1] = ["Вы открыли 10 сундуков","Chests!"] DESCRIPTION[2] = ["Получить меч."] #=======================================================================# # Progress Setup # #=======================================================================# #PROGRESS[x] = [id, upper bound, "describe numbers", :type] # The type can be either: # :var = amount stored in $game_variables[id] # :item = amount of $data_items[id] # :weapon = amount of $data_weapons[id] # :armor = amount of $data_armors[id] # :gold = amount of gold, ignores id value # :step = amount of steps, ignores id value # :save = amount of saves, ignores id value # :battle = amount of battles, ignores id value # :playtime = playtime, ignores id value # * :loot = amount of gold looted, ignores id value # * :dtake = amount of damage taken, ignores id value # * :ddeal = amount of damage dealt, ignores id value # * :gspend = amount of gold spent at shops, ignores id value # * :gearn = amount of gold earned from selling to shops, ignores id value # * :iuse = amount of items used, ignores id value # * :ibuy = amount of items bought from shops, ignores id value # * :isell = amount of items sold to shops, ignores id value # * Requires CSCA Extra Stats(1.1+) Get it here: # http://www.rpgmakervxace.net/topic/2030-csca-extra-stats/ PROGRESS[0] = [5, 10, "Открыто сундуков", :var] # 10 max, tracks variable ID5. PROGRESS[1] = [0, 100, "Всего золота", :gold] # 100 max, tracks party's gold. #=======================================================================# # Rewards Setup # #=======================================================================# #REWARDS[x] = [amount, id, type] # The type can be either: # :item = amount of $data_items[id] # :weapon = amount of $data_weapons[id] # :armor = amount of $data_armors[id] # :gold = amount of gold, ignores id value REWARDS[0] = [100, 0, :gold] # 100 gold. REWARDS[1] = [5, 1, :item] # 5 of item ID 1. #=======================================================================# # Achievement Setup # #=======================================================================# #ACHIEVEMENT[x] = ["Name After Unlock","Name Before Unlock"(optional), #Description, Description after unlock(optional),progress tracking(optional), #reward(optional),popup graphic(optional)] # If you are not using an optional feature, write: nil ACHIEVEMENTS[0] = ["Охотник за сокровищами","???",DESCRIPTION[0],DESCRIPTION[1], PROGRESS[0],REWARDS[0],nil] ACHIEVEMENTS[1] = ["Охотник за сокровищами II",nil,DESCRIPTION[2],nil,nil,nil,"DarkSpace1"] #=======================================================================# # Misc. Setup # #=======================================================================# SCENE_NAME = "Достижения" # Text shown in the head window. TOTAL = "Достижений открыто: " # Text shown before total numbers. PROGRESS = "Прогресс:" # Text above progress bar REWARD = "Награда: " # Text shown before the reward amount/name. UNLOCKED = "Достижение открыто!" # Text shown when achievement unlocked. EARNED_ICON = 621 # Icon to display if achievement is earned. UNEARNED_ICON = 622 # Icon to display if achievement is unearned. NUMBERED = false # If true, numbers achieve list. If false, uses icons. CENTER = false # Center the description text ? True/false STOP_TRACK = false # Stop tracking achievement progress after earned? COLOR1 = 20 # Color1 of the progress gauge. COLOR2 = 21 # Color2 of the progress gauge. SOUND = "Applause1" # SE Played when an achievement is earned. Set to nil to disable. POP_ALIGN = :bottom # Alignment of Popup on map when achievement is earned. # :bottom = bottom center, :middle = middle of screen, :top = top center # Set to nil to disable the Popup Window. #-----------------------------------------------------------------------# # END SETUP! DO NOT EDIT BELOW UNLESS YOU KNOW WHAT YOU ARE DOING # #-----------------------------------------------------------------------# end end $imported = {} if $imported.nil? $imported["CSCA-Achievements"] = true #============================================================================== # ** DataManager #------------------------------------------------------------------------------ # Overwrites: make_save_contents # Aliases: create_game_objects, extract_save_contents #============================================================================== module DataManager #--------------------------------------------------------------------------# # alias method. # #--------------------------------------------------------------------------# class <<self; alias csca_ach_create_game_objects create_game_objects; end def self.create_game_objects csca_ach_create_game_objects $game_achievements = Game_Achievements.new end #--------------------------------------------------------------------------# # overwrite method. # #--------------------------------------------------------------------------# def self.make_save_contents contents = {} contents[:system] = $game_system contents[:timer] = $game_timer contents[:message] = $game_message contents[:switches] = $game_switches contents[:variables] = $game_variables contents[:self_switches] = $game_self_switches contents[:actors] = $game_actors contents[:party] = $game_party contents[:troop] = $game_troop contents[:map] = $game_map contents[:player] = $game_player contents[:achievements] = $game_achievements contents end #--------------------------------------------------------------------------# # alias method # #--------------------------------------------------------------------------# class <<self; alias csca_ach_extract_save_contents extract_save_contents; end def self.extract_save_contents(contents) csca_ach_extract_save_contents(contents) $game_achievements = contents[:achievements] end end #============================================================================== # ** Game_Achievements #------------------------------------------------------------------------------ # This class handles achievements. # The instance of this class is referenced by $game_achievements #============================================================================== class Game_Achievements #--------------------------------------------------------------------------# # Object Initialization # #--------------------------------------------------------------------------# def initialize @data = [] end #--------------------------------------------------------------------------# # Get Achievement # #--------------------------------------------------------------------------# def [](achievement_id) @data[achievement_id] || false end #--------------------------------------------------------------------------# # Set Achievement # #--------------------------------------------------------------------------# def []=(achievement_id, value) @data[achievement_id] = value on_change(achievement_id) end #--------------------------------------------------------------------------# # Processing When Setting Achievements # #--------------------------------------------------------------------------# def on_change(achievement_id) $game_party.csca_achievement_reward(CSCA::ACHIEVEMENTS::ACHIEVEMENTS[achievement_id][5]) unless CSCA::ACHIEVEMENTS::ACHIEVEMENTS[achievement_id][5].nil? Audio.se_play("Audio/SE/" + CSCA::ACHIEVEMENTS::SOUND, 80, 100) unless CSCA::ACHIEVEMENTS::SOUND.nil? $game_map.achievement_id = achievement_id $game_map.achievement_earned = true end end #============================================================================== # ** CSCA_Scene_Achievements #------------------------------------------------------------------------------ # This class performs the achievement screen processing. #============================================================================== class CSCA_Scene_Achievements < Scene_MenuBase #--------------------------------------------------------------------------# # Start Processing # #--------------------------------------------------------------------------# def start super create_head_window create_achievement_window create_selection_window create_totals_window end #--------------------------------------------------------------------------# # Create Background # #--------------------------------------------------------------------------# def create_background super @background_sprite.tone.set(0, 0, 0, 128) end #--------------------------------------------------------------------------# # Create Header Window # #--------------------------------------------------------------------------# def create_head_window @head_window = CSCA_Window_AchievementsMainHead.new(0, 0) @head_window.viewport = @viewport end #--------------------------------------------------------------------------# # Create Achievement Selection Window # #--------------------------------------------------------------------------# def create_selection_window @command_window = CSCA_Window_AchievementSelect.new(0,@head_window.height, Graphics.width/2,Graphics.height-@head_window.height-48) @command_window.viewport = @viewport @command_window.help_window = @achievement_window @command_window.set_handler(:cancel, method(:return_scene)) @command_window.activate end #--------------------------------------------------------------------------# # Create Achievement Window # #--------------------------------------------------------------------------# def create_achievement_window @achievement_window = CSCA_Window_AchievementDisplay.new(Graphics.width/2, @head_window.height,Graphics.width/2,Graphics.height-@head_window.height-48) @achievement_window.viewport = @viewport end #--------------------------------------------------------------------------# # Create Achievement Totals Window # #--------------------------------------------------------------------------# def create_totals_window @totals_window = CSCA_Window_AchievementTotals.new(0,@head_window.height+ @achievement_window.height,Graphics.width,Graphics.height-@head_window.height- @achievement_window.height) @totals_window.viewport = @viewport end end #============================================================================== # ** CSCA_Window_AchievementsMainHead #------------------------------------------------------------------------------ # This window displays the achievement header window. #============================================================================== class CSCA_Window_AchievementsMainHead < Window_Base #--------------------------------------------------------------------------# # Object Initialization # #--------------------------------------------------------------------------# def initialize(x, y) super(x, y, Graphics.width, line_height * 2) refresh end #--------------------------------------------------------------------------# # Refresh # #--------------------------------------------------------------------------# def refresh contents.clear draw_text(0, 0, contents.width, line_height, CSCA::ACHIEVEMENTS::SCENE_NAME, 1) end end #============================================================================== # ** CSCA_Window_AchievementSelect #------------------------------------------------------------------------------ # This window displays the achievement names, numbers, and icons. #============================================================================== class CSCA_Window_AchievementSelect < Window_Selectable #--------------------------------------------------------------------------# # Object Initialization # #--------------------------------------------------------------------------# def initialize(x,y,width,height) super @data = [] refresh select(0) end #--------------------------------------------------------------------------# # Get Item Max # #--------------------------------------------------------------------------# def item_max @data ? @data.size : 1 end #--------------------------------------------------------------------------# # Get Item # #--------------------------------------------------------------------------# def item @data && index >= 0 ? @data[index] : nil end #--------------------------------------------------------------------------# # Populate item list # #--------------------------------------------------------------------------# def make_item_list @data = CSCA::ACHIEVEMENTS::ACHIEVEMENTS end #--------------------------------------------------------------------------# # Draw Items # #--------------------------------------------------------------------------# def draw_item(index) item = @data[index] if item rect = item_rect(index) CSCA::ACHIEVEMENTS::NUMBERED ? draw_item_id(rect, index) : draw_ach_icon(rect, index) if $game_achievements[index] || CSCA::ACHIEVEMENTS::ACHIEVEMENTS[index][1].nil? name = CSCA::ACHIEVEMENTS::ACHIEVEMENTS[index][0] else name = CSCA::ACHIEVEMENTS::ACHIEVEMENTS[index][1] end draw_text(rect.x + 32, rect.y, contents.width - 40, line_height, name) end end #--------------------------------------------------------------------------# # Draw Numbers # #--------------------------------------------------------------------------# def draw_item_id(rect, index) draw_text(rect, sprintf("%2d.", index + 1)) end #--------------------------------------------------------------------------# # Draw Icons # #--------------------------------------------------------------------------# def draw_ach_icon(rect, index) $game_achievements[index] ? draw_icon(CSCA::ACHIEVEMENTS::EARNED_ICON,rect.x+5,rect.y) : draw_icon(CSCA::ACHIEVEMENTS::UNEARNED_ICON,rect.x+5,rect.y) end #--------------------------------------------------------------------------# # Refresh # #--------------------------------------------------------------------------# def refresh make_item_list create_contents draw_all_items end #--------------------------------------------------------------------------# # Update Help Window # #--------------------------------------------------------------------------# def update_help @help_window.set_item(index) end end #============================================================================== # ** CSCA_Window_AchievementTotals #------------------------------------------------------------------------------ # This window displays the achievement header window. #============================================================================== class CSCA_Window_AchievementTotals < Window_Base #--------------------------------------------------------------------------# # Object Initialization # #--------------------------------------------------------------------------# def initialize(x, y, w, h) super(x, y, w, h) refresh end #--------------------------------------------------------------------------# # Refresh # #--------------------------------------------------------------------------# def refresh contents.clear total_achieves = CSCA::ACHIEVEMENTS::ACHIEVEMENTS.size unlocked = 0 for i in 0...CSCA::ACHIEVEMENTS::ACHIEVEMENTS.size unlocked += 1 if $game_achievements[i] end string = CSCA::ACHIEVEMENTS::TOTAL+unlocked.to_s+"/"+total_achieves.to_s draw_text(0,0,contents.width,line_height,string,1) end end #============================================================================== # ** CSCA_Window_AchievementDisplay #------------------------------------------------------------------------------ # This window displays the achievement descriptions. #============================================================================== class CSCA_Window_AchievementDisplay < Window_Base #--------------------------------------------------------------------------# # Object Initialization # #--------------------------------------------------------------------------# def initialize(x,y,w,h) super(x,y,w,h) end #--------------------------------------------------------------------------# # Draw all info # #--------------------------------------------------------------------------# def set_item(achievement_id) contents.clear draw_description(0,contents.width,line_height,achievement_id) draw_progress(0,line_height*8,contents.width,line_height,achievement_id) unless CSCA::ACHIEVEMENTS::ACHIEVEMENTS[achievement_id][4].nil? draw_reward(0,line_height*11,contents.width,line_height,achievement_id) unless CSCA::ACHIEVEMENTS::ACHIEVEMENTS[achievement_id][5].nil? end #--------------------------------------------------------------------------# # Draw description # #--------------------------------------------------------------------------# def draw_description(x,w,h,achievement) if !$game_achievements[achievement] || CSCA::ACHIEVEMENTS::ACHIEVEMENTS[achievement][3].nil? description = CSCA::ACHIEVEMENTS::ACHIEVEMENTS[achievement][2] else description = CSCA::ACHIEVEMENTS::ACHIEVEMENTS[achievement][3] end for i in 0...description.size draw_text(x,h*i,w,h,description[i].to_s, centered_text?) end end #--------------------------------------------------------------------------# # Get centered option # #--------------------------------------------------------------------------# def centered_text? CSCA::ACHIEVEMENTS::CENTER ? 1 : 0 end #--------------------------------------------------------------------------# # Draw Progress bar # #--------------------------------------------------------------------------# def draw_progress(x,y,w,h,achievement) color1 = text_color(CSCA::ACHIEVEMENTS::COLOR1) color2 = text_color(CSCA::ACHIEVEMENTS::COLOR2) contents.font.size = 20 draw_text(x,y,w,h,CSCA::ACHIEVEMENTS::PROGRESS,1) if $game_achievements[achievement] && CSCA::ACHIEVEMENTS::STOP_TRACK draw_gauge(x,y+line_height-8,w,1/1,color1,color2) string = CSCA::ACHIEVEMENTS::ACHIEVEMENTS[achievement][4][1].to_s draw_text(x,y+line_height-4,w,h,string+"/"+string,1) else draw_gauge(x,y+line_height-8,w,csca_get_rate(achievement),color1,color2) draw_gauge_numbers(x,y+line_height-4,w,h,achievement) end draw_text(x,y+line_height*2-12,w,h,CSCA::ACHIEVEMENTS::ACHIEVEMENTS[achievement][4][2],1) contents.font.size = 24 end #--------------------------------------------------------------------------# # Calculate Rate # #--------------------------------------------------------------------------# def csca_get_rate(achievement) csca_get_numerator(achievement).to_f/csca_get_denominator(achievement).to_f end #--------------------------------------------------------------------------# # Get Numerator # #--------------------------------------------------------------------------# def csca_get_numerator(achievement) case CSCA::ACHIEVEMENTS::ACHIEVEMENTS[achievement][4][3] when :var return $game_variables[CSCA::ACHIEVEMENTS::ACHIEVEMENTS[achievement][4][0]] when :item return $game_party.item_number($data_items[CSCA::ACHIEVEMENTS::ACHIEVEMENTS[achievement][4][0]]) when :weapon return $game_party.item_number($data_weapons[CSCA::ACHIEVEMENTS::ACHIEVEMENTS[achievement][4][0]]) when :armor return $game_party.item_number($data_armors[CSCA::ACHIEVEMENTS::ACHIEVEMENTS[achievement][4][0]]) when :gold return $game_party.gold when :step return $game_party.steps when :save return $game_system.save_count when :battle return $game_system.battle_count when :playtime return Graphics.frame_count / Graphics.frame_rate when :loot return $game_variables[CSCA_EXTRA_STATS::LOOTED] if $imported["CSCA-ExtraStats"] when :dtake return $game_variables[CSCA_EXTRA_STATS::DAMAGE_TAKEN] if $imported["CSCA-ExtraStats"] when :ddeal return $game_variables[CSCA_EXTRA_STATS::DAMAGE_DEALT] if $imported["CSCA-ExtraStats"] when :gspend return $game_variables[CSCA_EXTRA_STATS::GOLDSPENT] if $imported["CSCA-ExtraStats"] when :gearn return $game_variables[CSCA_EXTRA_STATS::GOLDGAINED] if $imported["CSCA-ExtraStats"] when :iuse return $game_variables[CSCA_EXTRA_STATS::ITEMS_USED] if $imported["CSCA-ExtraStats"] when :ibuy return $game_variables[CSCA_EXTRA_STATS::ITEMSBOUGHT] if $imported["CSCA-ExtraStats"] when :isell return $game_variables[CSCA_EXTRA_STATS::ITEMSSOLD] if $imported["CSCA-ExtraStats"] end return 0 end #--------------------------------------------------------------------------# # Get Denominator # #--------------------------------------------------------------------------# def csca_get_denominator(achievement) return CSCA::ACHIEVEMENTS::ACHIEVEMENTS[achievement][4][1] end #--------------------------------------------------------------------------# # Draw Gauge Values # #--------------------------------------------------------------------------# def draw_gauge_numbers(x,y,w,h,achievement) draw_text(x,y,w,h,csca_get_numerator(achievement).to_s+"/"+csca_get_denominator(achievement).to_s,1) end #--------------------------------------------------------------------------# # Draw Reward # #--------------------------------------------------------------------------# def draw_reward(x,y,w,h,achievement) reward_amount = CSCA::ACHIEVEMENTS::ACHIEVEMENTS[achievement][5][0] reward_id = CSCA::ACHIEVEMENTS::ACHIEVEMENTS[achievement][5][1] reward_type = CSCA::ACHIEVEMENTS::ACHIEVEMENTS[achievement][5][2] case reward_type when :gold; reward = Vocab::currency_unit when :item; reward = " " + $data_items[reward_id].name when :weapon; reward = " " + $data_weapons[reward_id].name when :armor; reward = " " + $data_armors[reward_id].name end draw_text(x,y,w,h,CSCA::ACHIEVEMENTS::REWARD+reward_amount.to_s+reward) end end #============================================================================== # ** CSCA_Window_AchievementPop #------------------------------------------------------------------------------ # This window displays when an achievement is unlocked if no custom graphic # is available. #============================================================================== class CSCA_Window_AchievementPop < Window_Base #--------------------------------------------------------------------------# # Object Initialization # #--------------------------------------------------------------------------# def initialize case CSCA::ACHIEVEMENTS::POP_ALIGN when :bottom super(Graphics.width/4,Graphics.height-fitting_height(3),window_width,fitting_height(3)) when :middle super(Graphics.width/4,Graphics.height/2-fitting_height(1),window_width,fitting_height(3)) when :top super(Graphics.width/4,0,window_width,fitting_height(3)) end self.opacity = 0 self.contents_opacity = 0 @show_count = 0 refresh end #--------------------------------------------------------------------------# # Get Window Width # #--------------------------------------------------------------------------# def window_width return 272 end #--------------------------------------------------------------------------# # Frame Update # #--------------------------------------------------------------------------# def update super if @show_count > 0 update_fadein @show_count -= 1 else update_fadeout end end #--------------------------------------------------------------------------# # Update Fadein # #--------------------------------------------------------------------------# def update_fadein unless $game_map.achievement_id.nil? self.opacity += 16 if CSCA::ACHIEVEMENTS::ACHIEVEMENTS[$game_map.achievement_id][6].nil? end self.contents_opacity += 16 end #--------------------------------------------------------------------------# # Update Fadeout # #--------------------------------------------------------------------------# def update_fadeout unless $game_map.achievement_id.nil? self.opacity -= 16 if CSCA::ACHIEVEMENTS::ACHIEVEMENTS[$game_map.achievement_id][6].nil? end self.contents_opacity -= 16 end #--------------------------------------------------------------------------# # Open Window # #--------------------------------------------------------------------------# def open refresh @show_count = 150 self.contents_opacity = 0 self.opacity = 0 self end #--------------------------------------------------------------------------# # Close Window # #--------------------------------------------------------------------------# def close @show_count = 0 self end #--------------------------------------------------------------------------# # Refresh # #--------------------------------------------------------------------------# def refresh contents.clear unless $game_map.achievement_id.nil? if CSCA::ACHIEVEMENTS::ACHIEVEMENTS[$game_map.achievement_id][6].nil? contents.font.bold = true draw_text(0,0,contents.width,line_height,CSCA::ACHIEVEMENTS::UNLOCKED,1) contents.font.bold = false draw_text(0,line_height,contents.width,line_height,CSCA::ACHIEVEMENTS::ACHIEVEMENTS[$game_map.achievement_id][0],1) draw_reward($game_map.achievement_id) unless CSCA::ACHIEVEMENTS::ACHIEVEMENTS[$game_map.achievement_id][5].nil? else draw_custom_image end end end #--------------------------------------------------------------------------# # Draw Reward if Exist # #--------------------------------------------------------------------------# def draw_reward(achievement) reward_amount = CSCA::ACHIEVEMENTS::ACHIEVEMENTS[achievement][5][0] reward_id = CSCA::ACHIEVEMENTS::ACHIEVEMENTS[achievement][5][1] reward_type = CSCA::ACHIEVEMENTS::ACHIEVEMENTS[achievement][5][2] case reward_type when :gold; reward = Vocab::currency_unit when :item; reward = " " + $data_items[reward_id].name when :weapon; reward = " " + $data_weapons[reward_id].name when :armor; reward = " " + $data_armors[reward_id].name end draw_text(0,line_height*2,contents.width,line_height, CSCA::ACHIEVEMENTS::REWARD+reward_amount.to_s+reward,1) end #--------------------------------------------------------------------------# # Draw Popup Graphic if Exist # #--------------------------------------------------------------------------# def draw_custom_image bitmap = Cache.picture(CSCA::ACHIEVEMENTS::ACHIEVEMENTS[$game_map.achievement_id][6]) rect = Rect.new(0,0,bitmap.width,bitmap.height) target = Rect.new(0,0,contents.width,contents.height) contents.stretch_blt(target, bitmap, rect, 255) end end #============================================================================== # ** Scene_Map #------------------------------------------------------------------------------ # Overwrites: none # Aliases: create_all_windows, update, pre_transfer #============================================================================== class Scene_Map < Scene_Base #--------------------------------------------------------------------------# # alias method. # #--------------------------------------------------------------------------# alias csca_create_all_windows create_all_windows def create_all_windows csca_create_all_windows csca_create_achievement_window unless CSCA::ACHIEVEMENTS::POP_ALIGN.nil? end #--------------------------------------------------------------------------# # new method; create achievement window # #--------------------------------------------------------------------------# def csca_create_achievement_window @achievement_window = CSCA_Window_AchievementPop.new @achievement_window.viewport = @viewport end #--------------------------------------------------------------------------# # alias method. # #--------------------------------------------------------------------------# alias csca_ach_pre_transfer pre_transfer def pre_transfer @achievement_window.close unless CSCA::ACHIEVEMENTS::POP_ALIGN.nil? csca_ach_pre_transfer end #--------------------------------------------------------------------------# # alias method. # #--------------------------------------------------------------------------# alias csca_ach_update update def update csca_ach_update if $game_map.achievement_earned @achievement_window.open unless CSCA::ACHIEVEMENTS::POP_ALIGN.nil? $game_map.achievement_earned = false end end end #============================================================================== # ** Game_Party #------------------------------------------------------------------------------ # Overwrites: none # Aliases: none #============================================================================== class Game_Party < Game_Unit #--------------------------------------------------------------------------# # new method; Gives Reward # #--------------------------------------------------------------------------# def csca_achievement_reward(reward) case reward[2] when :gold; gain_gold(reward[0]) when :item; gain_item($data_items[reward[1]], reward[0]) when :weapon; gain_item($data_weapons[reward[1]], reward[0]) when :armor; gain_item($data_armors[reward[1]], reward[0]) end end end #============================================================================== # ** Game_Map #------------------------------------------------------------------------------ # Overwrites: none # Aliases: initialize, update #============================================================================== class Game_Map attr_accessor :achievement_earned attr_accessor :achievement_id #--------------------------------------------------------------------------# # alias method. # #--------------------------------------------------------------------------# alias csca_ach_initialize initialize def initialize csca_ach_initialize @achievement_earned = false @achievement_id = 0 end #--------------------------------------------------------------------------# # alias method. # #--------------------------------------------------------------------------# alias csca_ach_update update def update(main = false) update_interpreter if main csca_ach_update(main = false) csca_update_achievements end #--------------------------------------------------------------------------# # new method; automatically earn achievement if progress 100% # #--------------------------------------------------------------------------# def csca_update_achievements data = CSCA::ACHIEVEMENTS::ACHIEVEMENTS for i in 0...data.size unless $game_achievements[i] if csca_get_progress_completion(data[i]) $game_achievements[i] = true end end end end #--------------------------------------------------------------------------# # new method; determine progress completion # #--------------------------------------------------------------------------# def csca_get_progress_completion(achievement) return false if achievement[4].nil? return csca_ach_numerator(achievement)/csca_ach_denominator(achievement) >= 1 end #--------------------------------------------------------------------------# # new method; determine rate numerator # #--------------------------------------------------------------------------# def csca_ach_numerator(achievement) case achievement[4][3] when :var return $game_variables[achievement[4][0]] when :item return $game_party.item_number(achievement[4][0]) when :weapon return $game_party.item_number(achievement[4][0]) when :armor return $game_party.item_number(achievement[4][0]) when :gold return $game_party.gold when :step return $game_party.steps when :save return $game_system.save_count when :battle return $game_system.battle_count when :playtime return Graphics.frame_count / Graphics.frame_rate when :loot return $game_variables[CSCA_EXTRA_STATS::LOOTED] if $imported["CSCA-ExtraStats"] when :dtake return $game_variables[CSCA_EXTRA_STATS::DAMAGE_TAKEN] if $imported["CSCA-ExtraStats"] when :ddeal return $game_variables[CSCA_EXTRA_STATS::DAMAGE_DEALT] if $imported["CSCA-ExtraStats"] when :gspend return $game_variables[CSCA_EXTRA_STATS::GOLDSPENT] if $imported["CSCA-ExtraStats"] when :gearn return $game_variables[CSCA_EXTRA_STATS::GOLDGAINED] if $imported["CSCA-ExtraStats"] when :iuse return $game_variables[CSCA_EXTRA_STATS::ITEMS_USED] if $imported["CSCA-ExtraStats"] when :ibuy return $game_variables[CSCA_EXTRA_STATS::ITEMSBOUGHT] if $imported["CSCA-ExtraStats"] when :isell return $game_variables[CSCA_EXTRA_STATS::ITEMSSOLD] if $imported["CSCA-ExtraStats"] end return 0 end #--------------------------------------------------------------------------# # new method; determine rate denominator # #--------------------------------------------------------------------------# def csca_ach_denominator(achievement) return achievement[4][1] end end

Там есть достижение откройте 10 сундуков,а как мне сделать,то есть какой скрипт я должен вписать в ивент сундука,чтобы каждый открытый сундук шёл мне в прогресс ,ну типа 0\10,1\10 и так далее?

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

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