-
Posts
107 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Posts posted by Mungò
-
-
Il problema è che non sono capace di scriverlo! XD
L'unico linguaggio informatico che conosco è il pascal, e cerco di orientarmi usando quello. Mi piacerebbe però imparare il linguaggio di questi script, solo non riesco a trovare su internet una guida completa
Comunque tornando al nostro script la condizione che vorrei inserire è "se l'abilità usata non ha questa nota, il danno inflitto da abilità e oggetti, se è minore di 20, è uguale a 20". Il numero 20 è provvisorio, magari aumenterò la soglia del danno minimo qualora dovessi accorgermi che effettivamente è troppo piccola. Mi serve a evitare che le abilità più deboli che infliggono danni, o a causa della forza dell'abilità o a causa del livello del giocatore, non tolgano zero, ma che tolgano almeno un po', per evitare uno spreco di punti magia inutile. Le altre abilità che non necessitano di questa nota infliggono più semplicemente degli stati alterati. È a questo che mi serve questo codice.

-
Ok, così funziona, però in questo modo tutte le abilità tolgono 20 se il danno è < 20.
È possibile invece fare in modo che alcune abilità non tolgano niente e altre che tolgono almeno 20? Pensavo che si potesse fare per esempio anche attraverso una nota sull'abilità, ma non saprei come...
-
Ho bisogno di uno script che faccia in modo che il danno causato da oggetti e abilità sia uguale al danno stesso se il danno è > 20, e che sia uguale a 20 se il danno è < 20. Mi spiego meglio.
Se per esempio un'abilità di un personaggio (nemico o alleato) toglie 100, allora il danno complessivo sarà 100.
Ma se il danno è 15, o -100, o comunque < 20, il danno complessivo sarà 20.
Ho provato a modificare questo script, utilizzando una switch che quando è su off attiva il primo caso, con il danno > 20, quando è su on attiva l'altro, ovvero il danno = 20. Purtroppo non sono un bravo scripter (si dice così, giusto?
), ed è tutto il giorno che lavoro su questo script, ma l'unico risultato che ho ottenuto è questo:class Game_Battler def skills for i in @skill.keys.sort result.push($data_skill[i]) if @skill[i] > 0 skill = $data_skill[@skill_id] unless skill.note.include?("*NODANNO") if damage < 20 $game_switches[29] = true else $game_switches[29] = false end end end end def make_obj_damage_value(user, obj) damage = obj.base_damage # get base damage if damage > 0 # a positive number? damage += user.atk * 4 * obj.atk_f / 1 # Attack F of the user damage += user.spi * 2 * obj.spi_f / 1 # Spirit F of the user unless obj.ignore_defense # Except for ignore defense damage -= self.def * 2 * obj.atk_f / 1 # Attack F of the target damage -= self.spi * 1 * obj.spi_f / 1 # Spirit F of the target end damage = 0 if damage < 0 # If negative, make 0 elsif damage < 0 # a negative number? damage -= user.atk * 4 * obj.atk_f / 1 # Attack F of the user damage -= user.spi * 2 * obj.spi_f / 1 # Spirit F of the user damage = 0 end damage *= elements_max_rate(obj.element_set) # elemental adjustment damage /= 100 damage = apply_variance(damage, obj.variance) # variance damage = apply_guard(damage) # guard adjustment if $game_switches[29] = true damage = 0 end if obj.damage_to_mp @mp_damage = damage # damage MP else @hp_damage = damage # damage HP end end endCiò che viene fuori è una battaglia in cui le abilità e gli oggetti dei personaggi non tolgono niente, anche se causano comunque danni quali veleno, sonno, ecc. Cosa ho sbagliato?
Un'altra cosa: è possibile creare abilità che infliggono sempre stati alterati e altre che le infliggono solo alcune volte?
-
Grande! Adesso lo script funziona alla perfezione! Ancora una volta mi hai salvato! Grazie giver! :ohmy:
-
Ah ok, scusami allora se ho frainteso! :Ok:
Cmq sono riuscito a risolvere il problema della corsa automatica, basta andare sulla riga 570 ed eliminare ":auto_dash," :nana:
L'altro problema purtroppo rimane, come si può risolvere? :ph34r:
-
Mi dà errore sulla riga 7...
Hai ragione, non puoi testarlo perché ti mancano le windowskin, perdonami! :nana:
Prova a cambiare la parte dopo la riga 185 con questo:
DEFAULT_SKIN_VALUE = 1 WINDOW_HASH ={ # Window ID => [ Name, Opac, Bold, Italic, Shadow, Size, Font], 1 => [ "Pokémon", 200, false, false, true, 20, DEFAULT], 2 => [ "Rosso Mario", 200, false, false, true, 20, DEFAULT], 3 => [ "Verde Yoshi", 200, false, false, true, 20, DEFAULT], 4 => [ "Rosso fuoco", 255, false, false, true, 20, DEFAULT], 5 => [ "Neon blu", 200, false, false, true, 20, DEFAULT], 6 => [ "Tecnologico", 255, false, false, true, 20, DEFAULT], } # Do not remove this.Qui ci sono le windowskin.
Crea una cartella su graphics/windowskin e metti il contenuto del file .rar.
Se lo provi capirai subito qual è esattamente il problema.
-
Lo script permette di aggiungere la nuova voce "opzioni" nel menu di pausa, dove è possibile cambiare il volume delle canzoni, la windowskin da usare, se usare la corsa automatica o no, ecc.
Ho un problema con questo script: quando vado su menu/opzioni/windowskin, non riesco a selezionare tutte le windowskin, ne posso scegliere solo alcune! Quando compare l'elenco delle windowskin selezionabili, premo giù e il cursore si sposta verso il basso, premo ancora giù e si sposta ancora verso il basso; fin qui tutto ok. Appena lo sposto di nuovo verso il basso ecco che ritorna alla prima windowskin! :nana: Si può risolvere questo bug?
È possibile inoltre rimuovere l'opzione nel menu per la modifica della corsa automatica?
Qui sotto c'è lo script:
System Game Options
Descrizione
Aggiunge una nuova voce nel menu di pausa dove è possibile cambiare alcune opzioni di giocoAutore
Yanfly Engine MelodyAllegati
N/AIstruzioni per l'uso
Mettere sotto materials#=============================================================================== # # Yanfly Engine Melody - System Game Options # Last Date Updated: 2010.06.12 # Level: Normal # # System Game Options replaces the "Game End" scene found in the default RPG # Maker VX with a system options menu. In this menu, the player can readjust # sound volumes, automatic dashing, and more. This changes one of the unused # game end scene into something a whole lot more useful. # #=============================================================================== # Updates # ----------------------------------------------------------------------------- # o 2010.06.12 - Bugfix for disposing the skins window. # o 2010.05.14 - Finished Script. # o 2010.05.12 - Started Script. #=============================================================================== # 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. # # 1. Scroll down, adjust the various Switches and Variable values to something # empty or predetermined. # 2. Make a "Windows" folder in your project's "Graphics" folder. Insert the # window skins you want to use there and adjust the WINDOW_HASH accordingly. # #=============================================================================== # Compatibility # ----------------------------------------------------------------------------- # - Replaces ALL of Scene_End. Expect no functionality with any scripts that # will also replace Scene_End. # - This script is made to be specifically compatible with Battle Engine Melody. #=============================================================================== $imported = {} if $imported == nil $imported["SystemGameOptions"] = true module YEM module SYSTEM # This replaces the Game End title with the following text. And although # script itself doesn't provide the icon, any script that may potentially # link towards the System menu will reveal the System icon below. TITLE = "System" ICON = 134 #========================================================================== = # Game System Commands # -------------------------------------------------------------------------- # The following adjusts the order at which you would like the menu system # commands to appear. Here is the reference table to their command ID's. # :blank - Blank Item. # :volume_bgm - Adjusts BGM volume. # :volume_bgs - Adjusts BGS volume. # :volume_sfx - Adjusts SFX volume. # :animations - Turns on/off battle animations. # :autocursor - Requires BEM. Memorized cursor position. # :skill_help - Requires BEM. Display skill help. # :next_actor - Requires BEM. Automatic Next Actor. # :atb_active - Requires BEM. Sets ATB type. # :atb_speed - Requires BEM. Sets ATB speed. # :auto_dash - Controls if need to hold down dash button to run. # :instant_text - Whether or not text appears instantly in messages. # :windowskin - Changes the windowskin. # :return_title - Return back to the title screen. # :return_menu - Return back to the menu screen. #========================================================================== = # This array modifies the order your system menu options appear in from # top to bottom. Rearrange them as you see fit or remove them if desired. COMMANDS =[ :windowskin, # Adjusts window skins. :skill_help, # Requires BEM. Shows skill help. :atb_active, # Requires BEM. Sets ATB type. :atb_speeds, # Requires BEM. Sets ATB speed. :animations, # Turns on/off battle animations. :autocursor, # Requires BEM. Memory cursor. :next_actor, # Requires BEM. Automatic Next Actor. :bgm_volume, # Adjusts BGM volume. :bgs_volume, # Adjusts BGS volume. :sfx_volume, # Adjusts SFX volume. :auto_dash, # Controls need to hold down dash button to run. :instant_text, # Makes text appear instantly. :atb_active, # Requires BEM. Sets ATB type. :atb_speed, #Requires BEM. Sets ATB speed. :event1, :blank, # A blank space. :return_title, # Return to the title screen. :return_menu, # Return back to the main menu. ] # Do not remove this. # The following hash determines what variables and switches are used to # adjust the system options menu. It's very important that you bind the # values to the proper variables and switches in order for your game to # run properly. In addition to adjusting the switches, you also apply # text descriptions of each of the items here, too. OPTIONS ={ # Option => Value :bgm_variable => 21, # Variable used to adjust BGM volume. :bgm_mute_sw => 21, # Switch used to mute/unmute the BGM. :bgm_volume => "BGM Volume", :bgm_des => "Adjusts BGM volume. Z to Mute and Unmute.", :bgs_variable => 22, # Variable used to adjust BGS volume. :bgs_mute_sw => 22, # Switch used to mute/unmute the BGS. :bgs_volume => "BGS Volume", :bgs_des => "Adjusts BGS volume. Z to Mute and Unmute.", :sfx_variable => 23, # Variable used to adjust SFX volume. :sfx_mute_sw => 23, # Switch used to mute/unmute the SFX. :sfx_volume => "SFX Volume", :sfx_des => "Adjusts SFX volume. Z to Mute and Unmute.", :mute => "Mute", :audio => "Audio %d%%", :atb_avariable => 24, # Variable used for ATB Active Type. :atb_aname => "ActiveType", :wait_0 => "Full", :wait_0_des => "ATB Gauge does not stop with battle menus open.", :wait_1 => "Semi", :wait_1_des => "ATB Gauge stops during target selection.", :wait_2 => "Stop", :wait_2_des => "ATB Gauge stops with battle menus open.", :wait_3 => "Wait", :wait_3_des => "ATB Gauge stops with any member ready for action.", :atb_svariable => 25, # Variable used for ATB Speeds. :atb_sname => "Turn Speed", :atb_s_des => "Adjusts battle speed. Higher values are faster.", :animation_sw => 24, # Switch used to display/hide animations. :animations => "Animations", :ani_des => "Enables/Disables battle animations.", :ani_show => "Show", :ani_hide => "Hide", :autocursor_sw => 25, # Switch used for autocursors. :autocursor => "AutoCursor", :curmem_des => "Enables/Disables cursor memory for actions.", :curmem_on => "Memory", :curmem_off => "Reset", :next_actor_sw => 26, # Switch used for automatic next actor. :next_actor => "Next Actor", :next_des => "Move to next actor after selecting commands", :next_on => "Auto", :next_off => "Manual", :skill_help_sw => 27, # Switch used to enable skill help. :skill_help => "Skill Help", :help_des => "Display skill descriptions during battle phase.", :help_on => "Enabled", :help_off => "Disable", :auto_dash_sw => 28, # Switch used to enable auto-dashing. :auto_dash => "Auto-Dash", :dash_des => "Automatically dash without holding the run button.", :dash_on => "Dash", :dash_off => "Walk", :inst_text_sw => 29, # Switch used to control instant text. :instant_text => "Instant Text", :inst_des => "Text appears all at once instead of one by one.", :inst_on => "Instant", :inst_off => "Normal", :return_title => "Return to Title", :retitle_des => "Return back to the title screen.", :return_menu => "Return to Main Menu", :remenu_des => "Return back to the main menu.", :window_var => 30, # Variable used to change windowskins. :windowskin => "Windowskin", :wind_des => "Changes the windowskin used for the game.", } # Do not remove this. # This sets the default fonts used for your windows. Note that in this # array, if a player doesn't have the font in front, it'll use the next one # onward until the player does have that font installed. DEFAULT = ["UmePlus Gothic", "Verdana", "Arial", "Courier New"] WRITING = ["Comic Sans MS", "Lucida Handwriting", "Arial"] # The following adjusts the window skins used for your game. Match the # Window skins with the names accordingly. Within the windowskin hash, # the following settings are adjusted as such: # Name - File Name # Opac - Back Opacity # Bold - Bold font? # Italic - Italic font? # Shadow - Use shadows? # Size - Font Size # Font - Font Set DEFAULT_SKIN_VALUE = 7 WINDOW_HASH ={ # Window ID => [ Name, Opac, Bold, Italic, Shadow, Size, Font], 1 => [ "Merah", 200, false, false, true, 20, DEFAULT], 2 => [ "Orange", 200, false, false, true, 20, DEFAULT], 3 => [ "Kuning", 255, false, false, false, 20, DEFAULT], 4 => ["Hijau Daun", 200, false, false, true, 20, DEFAULT], 5 => [ "Hijau", 200, false, false, true, 20, DEFAULT], 6 => [ "Biru Muda", 200, false, false, true, 20, DEFAULT], 7 => [ "Biru Laut", 200, false, false, true, 20, DEFAULT], 8 => [ "Biru", 200, false, false, true, 20, DEFAULT], 9 => [ "Nila", 200, false, false, true, 20, DEFAULT], 10 => [ "Ungu", 200, false, false, true, 20, DEFAULT], 11 => [ "Pink", 200, false, false, true, 20, DEFAULT], 12 => [ "Abu-abu", 200, false, false, true, 20, DEFAULT], 13 => [ "Hitam", 200, false, false, true, 20, DEFAULT], 14 => [ "Putih", 255, false, false, false, 20, DEFAULT], } # Do not remove this. end # SYSTEM end # YEM #=============================================================================== # Editting anything past this point may potentially result in causing computer # damage, incontinence, explosion of user's head, coma, death, and/or halitosis. # Therefore, edit at your own risk. #=============================================================================== #=============================================================================== # Vocab #=============================================================================== module Vocab #-------------------------------------------------------------------------- # overwrite method: self.game_end #-------------------------------------------------------------------------- def self.game_end return YEM::SYSTEM::TITLE end end # Vocab #=============================================================================== # module Icon #=============================================================================== module Icon #-------------------------------------------------------------------------- # new method: self.system #-------------------------------------------------------------------------- def self.system return YEM::SYSTEM::ICON end end # Icon #=============================================================================== # module Cache #=============================================================================== module Cache #-------------------------------------------------------------------------- # new method: self.windows #-------------------------------------------------------------------------- def self.windows(filename); load_bitmap("Graphics/Windows/", filename); end end # Cache YEM::SYSTEM::WINDOWSKIN_VARIABLE = YEM::SYSTEM::OPTIONS[:window_var] #=============================================================================== # RPG::BGM #=============================================================================== unless $imported["BattleEngineMelody"] module RPG class BGM < AudioFile #-------------------------------------------------------------------------- # overwrite method: play #-------------------------------------------------------------------------- def play if @name.empty? Audio.bgm_stop @@last = BGM.new else vol = @volume if $game_variables != nil options = YEM::SYSTEM::OPTIONS vol = vol * $game_variables[options[:bgm_variable]] / 100 vol = [[vol, 0].max, 100].min vol = 0 if $game_switches[options[:bgm_mute_sw]] end Audio.bgm_play("Audio/BGM/" + @name, vol, @pitch) @@last = self end end end # BGM class ME < AudioFile #-------------------------------------------------------------------------- # overwrite method: play #-------------------------------------------------------------------------- def play if @name.empty? Audio.me_stop else vol = @volume if $game_variables != nil options = YEM::SYSTEM::OPTIONS vol = vol * $game_variables[options[:bgm_variable]] / 100 vol = [[vol, 0].max, 100].min vol = 0 if $game_switches[options[:bgm_mute_sw]] end Audio.me_play("Audio/ME/" + @name, vol, @pitch) end end end # ME class BGS < AudioFile #-------------------------------------------------------------------------- # overwrite method: play #-------------------------------------------------------------------------- def play if @name.empty? Audio.bgs_stop @@last = BGS.new else vol = @volume if $game_variables != nil options = YEM::SYSTEM::OPTIONS vol = vol * $game_variables[options[:bgs_variable]] / 100 vol = [[vol, 0].max, 100].min vol = 0 if $game_switches[options[:bgs_mute_sw]] end Audio.bgs_play("Audio/BGS/" + @name, vol, @pitch) @@last = self end end end # BGS class SE < AudioFile #-------------------------------------------------------------------------- # overwrite method: play #-------------------------------------------------------------------------- def play unless @name.empty? vol = @volume if $game_variables != nil options = YEM::SYSTEM::OPTIONS vol = vol * $game_variables[options[:sfx_variable]] / 100 vol = [[vol, 0].max, 100].min vol = 0 if $game_switches[options[:sfx_mute_sw]] end Audio.se_play("Audio/SE/" + @name, vol, @pitch) end end end # SE end # RPG end # $imported["BattleEngineMelody"] #=============================================================================== # Game_System #=============================================================================== class Game_System #-------------------------------------------------------------------------- # new method: create_system_options #-------------------------------------------------------------------------- def create_system_options return if @created_system_options @created_system_options = true options = YEM::SYSTEM::OPTIONS $game_variables[options[:bgm_variable]] = 100 $game_variables[options[:bgs_variable]] = 100 $game_variables[options[:sfx_variable]] = 100 $game_switches[options[:bgm_mute_sw]] = false $game_switches[options[:bgs_mute_sw]] = false $game_switches[options[:sfx_mute_sw]] = false $game_switches[options[:animation_sw]] = true $game_switches[options[:autocursor_sw]] = true $game_switches[options[:next_actor_sw]] = true $game_switches[options[:skill_help_sw]] = false $game_switches[options[:auto_dash_sw]] = false $game_switches[options[:inst_text_sw]] = false $game_variables[YEM::SYSTEM::WINDOWSKIN_VARIABLE] = YEM::SYSTEM::DEFAULT_SKIN_VALUE end end # Game_System #=============================================================================== # Game_Player #=============================================================================== class Game_Player < Game_Character #-------------------------------------------------------------------------- # alias method: dash? #-------------------------------------------------------------------------- alias dash_sgo dash? unless $@ def dash? if $game_switches[YEM::SYSTEM::OPTIONS[:auto_dash_sw]] return false if @move_route_forcing return false if $game_map.disable_dash? return false if in_vehicle? return false if Input.press?(Input::A) return true else return dash_sgo end end end # Game_Player #=============================================================================== # Window #=============================================================================== class Window #-------------------------------------------------------------------------- # update windowskin #-------------------------------------------------------------------------- def update_windowskin return if $game_variables == nil variable = YEM::SYSTEM::WINDOWSKIN_VARIABLE if $game_variables[variable] == 0 $game_variables[variable] = YEM::SYSTEM::DEFAULT_SKIN_VALUE elsif !YEM::SYSTEM::WINDOW_HASH.include?($game_variables[variable]) $game_variables[variable] = YEM::SYSTEM::DEFAULT_SKIN_VALUE end skin = YEM::SYSTEM::WINDOW_HASH[$game_variables[variable]] change_settings(skin) end #-------------------------------------------------------------------------- # change_settings #-------------------------------------------------------------------------- def change_settings(skin) self.windowskin = Cache.windows(skin[0]) self.back_opacity = skin[1] self.contents.font.bold = Font.default_bold = skin[2] self.contents.font.italic = Font.default_italic = skin[3] self.contents.font.shadow = Font.default_shadow = skin[4] self.contents.font.size = Font.default_size = skin[5] self.contents.font.name = Font.default_name = skin[6] self.contents.font.color = normal_color end end # Window #=============================================================================== # Window_Base #=============================================================================== class Window_Base < Window #-------------------------------------------------------------------------- # alias method: initialize #-------------------------------------------------------------------------- alias initialize_window_sgo initialize unless $@ def initialize(x, y, width, height) initialize_window_sgo(x, y, width, height) self.update_windowskin end #-------------------------------------------------------------------------- # alias method: create_contents #-------------------------------------------------------------------------- alias create_contents_base_sgo create_contents unless $@ def create_contents create_contents_base_sgo self.contents.font.color = normal_color end end # Window_Base #=============================================================================== # Window_Selectable #=============================================================================== class Window_Selectable < Window_Base #-------------------------------------------------------------------------- # alias method: create_contents #-------------------------------------------------------------------------- alias create_contents_selectable_sgo create_contents unless $@ def create_contents create_contents_selectable_sgo self.contents.font.color = normal_color end end # Window_Selectable #=============================================================================== # Window_SaveFile #=============================================================================== class Window_SaveFile < Window_Base #-------------------------------------------------------------------------- # alias method: refresh #-------------------------------------------------------------------------- alias refresh_savefile_mso refresh unless $@ def refresh if @file_exist n = @game_variables[YEM::SYSTEM::WINDOWSKIN_VARIABLE] if n == 0 or !YEM::SYSTEM::WINDOW_HASH.include?(n) n = YEM::SYSTEM::DEFAULT_SKIN_VALUE end skin = YEM::SYSTEM::WINDOW_HASH[n] change_settings(skin) end refresh_savefile_mso end end # Window_SaveFile #=============================================================================== # Window_Message #=============================================================================== class Window_Message < Window_Selectable #-------------------------------------------------------------------------- # alias method: update_show_fast #-------------------------------------------------------------------------- alias update_show_fast_sgo update_show_fast unless $@ def update_show_fast if $game_switches[YEM::SYSTEM::OPTIONS[:inst_text_sw]] if self.pause or self.openness < 255 @show_fast = false else @show_fast = true end if @show_fast and @wait_count > 0 @wait_count -= 1 end else update_show_fast_sgo end end #-------------------------------------------------------------------------- # alias method: new_page #-------------------------------------------------------------------------- alias new_page_sgo new_page unless $@ def new_page self.update_windowskin new_page_sgo end end # Window_Message #=============================================================================== # Window_SystemOptions #=============================================================================== class Window_SystemOptions < Window_Selectable #-------------------------------------------------------------------------- # initialize #-------------------------------------------------------------------------- def initialize(help_window) dy = help_window.height dh = Graphics.height - dy super(0, dy, Graphics.width, dh) self.index = 0 refresh @help_window = help_window update_help end #-------------------------------------------------------------------------- # item #-------------------------------------------------------------------------- def item; return @data[self.index]; end #-------------------------------------------------------------------------- # refresh #-------------------------------------------------------------------------- def refresh @data = [] for command in YEM::SYSTEM::COMMANDS case command when :windowskin, :animations, :bgm_volume, :sfx_volume, :bgs_volume, :auto_dash, :instant_text, :blank, :event1, :atb2, :return_title, :return_menu when :skill_help, :atb_active, :atb_speeds, :autocursor, :next_actor next unless $imported["BattleEngineMelody"] if [:atb_active, :atb_speeds].include?(command) type = $game_variables[YEM::BATTLE_ENGINE::BATTLE_TYPE_VARIABLE] next unless type == 2 end else; next end @data.push(command) end @item_max = @data.size create_contents for i in 0...@item_max; draw_item(i); end end #-------------------------------------------------------------------------- # draw_item #-------------------------------------------------------------------------- def draw_item(index) rect = item_rect(index) self.contents.clear_rect(rect) obj = @data[index] return if obj == nil case obj when :windowskin draw_window_item(obj, rect.clone) when :bgm_volume, :sfx_volume, :bgs_volume draw_volume_item(obj, rect.clone) when :animations, :autocursor, :next_actor, :skill_help, :auto_dash, :instant_text draw_switch_item(obj, rect.clone) when :atb_active, :atb_speeds draw_atb_item(obj, rect.clone) when :return_title, :return_menu draw_solo_item(obj, rect.clone) end end #-------------------------------------------------------------------------- # draw_window_item #-------------------------------------------------------------------------- def draw_window_item(obj, rect) title = YEM::SYSTEM::OPTIONS[:windowskin] self.contents.font.color = normal_color self.contents.draw_text(rect.x, rect.y, rect.width/2, WLH, title, 1) dx = rect.x + rect.width/2 skin_id = $game_variables[YEM::SYSTEM::WINDOWSKIN_VARIABLE] skin_name = YEM::SYSTEM::WINDOW_HASH[skin_id][0] dx = rect.x + rect.width/2 self.contents.draw_text(dx, rect.y, rect.width/2, WLH, skin_name, 1) end #-------------------------------------------------------------------------- # draw_volume_item #-------------------------------------------------------------------------- def draw_volume_item(obj, rect) options = YEM::SYSTEM::OPTIONS case obj when :bgm_volume title = options[:bgm_volume] value = $game_variables[options[:bgm_variable]] mute = $game_switches[options[:bgm_mute_sw]] when :bgs_volume title = options[:bgs_volume] value = $game_variables[options[:bgs_variable]] mute = $game_switches[options[:bgs_mute_sw]] when :sfx_volume title = options[:sfx_volume] value = $game_variables[options[:sfx_variable]] mute = $game_switches[options[:sfx_mute_sw]] else; return end value = sprintf(options[:audio], value) self.contents.font.color = normal_color self.contents.draw_text(rect.x, rect.y, rect.width/2, WLH, title, 1) self.contents.font.color.alpha = mute ? 128 : 255 dx = rect.x + rect.width/2 self.contents.draw_text(dx, rect.y, rect.width/4, WLH, value, 1) self.contents.font.color.alpha = mute ? 255 : 128 dx = rect.x + rect.width*3/4 self.contents.draw_text(dx, rect.y, rect.width/4, WLH, options[:mute], 1) end #-------------------------------------------------------------------------- # draw_switch_item #-------------------------------------------------------------------------- def draw_switch_item(obj, rect) options = YEM::SYSTEM::OPTIONS title = options[obj] case obj when :animations name1 = options[:ani_show] name2 = options[:ani_hide] toggle = $game_switches[options[:animation_sw]] when :autocursor name1 = options[:curmem_on] name2 = options[:curmem_off] toggle = $game_switches[options[:autocursor_sw]] when :next_actor name1 = options[:next_on] name2 = options[:next_off] toggle = $game_switches[options[:next_actor_sw]] when :skill_help name1 = options[:help_on] name2 = options[:help_off] toggle = $game_switches[options[:skill_help_sw]] when :cinematics name1 = options[:cinem_on] name2 = options[:cinem_off] toggle = $game_switches[options[:cinematics_sw]] when :auto_dash name1 = options[:dash_on] name2 = options[:dash_off] toggle = $game_switches[options[:auto_dash_sw]] when :instant_text name1 = options[:inst_on] name2 = options[:inst_off] toggle = $game_switches[options[:inst_text_sw]] else; return end self.contents.font.color = normal_color self.contents.draw_text(rect.x, rect.y, rect.width/2, WLH, title, 1) self.contents.font.color.alpha = toggle ? 255 : 128 dx = rect.x + rect.width/2 self.contents.draw_text(dx, rect.y, rect.width/4, WLH, name1, 1) self.contents.font.color.alpha = toggle ? 128 : 255 dx = rect.x + rect.width*3/4 self.contents.draw_text(dx, rect.y, rect.width/4, WLH, name2, 1) end #-------------------------------------------------------------------------- # draw_atb_item #-------------------------------------------------------------------------- def draw_atb_item(obj, rect) options = YEM::SYSTEM::OPTIONS case obj when :atb_active title = options[:atb_aname] value = $game_variables[options[:atb_avariable]] #--- self.contents.font.color = normal_color name1 = options[:wait_0] dx = rect.x + rect.width/2 self.contents.font.color.alpha = (value == 0) ? 255 : 128 self.contents.draw_text(dx, rect.y, rect.width/8, WLH, name1, 1) name2 = options[:wait_1] dx = rect.x + rect.width*5/8 self.contents.font.color.alpha = (value == 1) ? 255 : 128 self.contents.draw_text(dx, rect.y, rect.width/8, WLH, name2, 1) name3 = options[:wait_2] dx = rect.x + rect.width*6/8 self.contents.font.color.alpha = (value == 2) ? 255 : 128 self.contents.draw_text(dx, rect.y, rect.width/8, WLH, name3, 1) name4 = options[:wait_3] dx = rect.x + rect.width*7/8 self.contents.font.color.alpha = (value == 3) ? 255 : 128 self.contents.draw_text(dx, rect.y, rect.width/8, WLH, name4, 1) #--- when :atb_speeds title = options[:atb_sname] value = $game_variables[options[:atb_svariable]] - 1 #--- for i in 0...10 self.contents.font.color = normal_color name = (i + 1).to_s dx = rect.x + rect.width * (10 + i)/20 self.contents.font.color.alpha = (value == i) ? 255 : 128 self.contents.draw_text(dx, rect.y, rect.width/20, WLH, name, 1) end #--- else; return end self.contents.font.color = normal_color self.contents.draw_text(rect.x, rect.y, rect.width/2, WLH, title, 1) end #-------------------------------------------------------------------------- # draw_solo_item #-------------------------------------------------------------------------- def draw_solo_item(obj, rect) options = YEM::SYSTEM::OPTIONS case obj when :return_title, :return_menu text = options[obj] else; return end self.contents.font.color = normal_color self.contents.draw_text(rect.x, rect.y, rect.width, WLH, text, 1) end #-------------------------------------------------------------------------- # update #-------------------------------------------------------------------------- def update super if Input.trigger?(Input::C) input_case_c elsif Input.repeat?(Input::LEFT) input_case_left elsif Input.repeat?(Input::RIGHT) input_case_right end end #-------------------------------------------------------------------------- # input_case_c #-------------------------------------------------------------------------- def input_case_c options = YEM::SYSTEM::OPTIONS case item when :windowskin Sound.play_decision $scene.open_skins_window return when :bgm_volume; switch = options[:bgm_mute_sw] when :bgs_volume; switch = options[:bgs_mute_sw] when :sfx_volume; switch = options[:sfx_mute_sw] when :animations; switch = options[:animation_sw] when :autocursor; switch = options[:autocursor_sw] when :next_actor; switch = options[:next_actor_sw] when :skill_help; switch = options[:skill_help_sw] when :cinematics; switch = options[:cinematics_sw] when :auto_dash; switch = options[:auto_dash_sw] when :instant_text; switch = options[:inst_text_sw] when :return_title $scene.command_to_title return when :return_menu Sound.play_decision $scene.return_scene return else; return end $game_switches[switch] = !$game_switches[switch] Sound.play_decision RPG::BGM::last.play if item == :bgm_volume RPG::BGS::last.play if item == :bgs_volume draw_item(self.index) end #-------------------------------------------------------------------------- # input_case_left #-------------------------------------------------------------------------- def input_case_left options = YEM::SYSTEM::OPTIONS ignore = false case item when :bgm_volume, :bgs_volume, :sfx_volume value = Input.press?(Input::SHIFT) ? 10 : 1 case item when :bgm_volume; variable = options[:bgm_variable] when :bgs_volume; variable = options[:bgs_variable] when :sfx_volume; variable = options[:sfx_variable] end return if $game_variables[variable] == 0 $game_variables[variable] -= value $game_variables[variable] = [$game_variables[variable], 0].max ignore = true when :atb_active variable = options[:atb_avariable] return if $game_variables[variable] == 0 $game_variables[variable] -= 1 $game_variables[variable] = [$game_variables[variable], 0].max ignore = true when :atb_speeds variable = options[:atb_svariable] return if $game_variables[variable] == 1 $game_variables[variable] -= 1 $game_variables[variable] = [$game_variables[variable], 1].max ignore = true when :animations; switch = options[:animation_sw] when :autocursor; switch = options[:autocursor_sw] when :next_actor; switch = options[:next_actor_sw] when :skill_help; switch = options[:skill_help_sw] when :cinematics; switch = options[:cinematics_sw] when :auto_dash; switch = options[:auto_dash_sw] when :instant_text; switch = options[:inst_text_sw] else; return end unless ignore return if $game_switches[switch] $game_switches[switch] = true end Sound.play_cursor RPG::BGM::last.play if item == :bgm_volume RPG::BGS::last.play if item == :bgs_volume draw_item(self.index) end #-------------------------------------------------------------------------- # input_case_right #-------------------------------------------------------------------------- def input_case_right options = YEM::SYSTEM::OPTIONS ignore = false case item when :bgm_volume, :bgs_volume, :sfx_volume value = Input.press?(Input::SHIFT) ? 10 : 1 case item when :bgm_volume; variable = options[:bgm_variable] when :bgs_volume; variable = options[:bgs_variable] when :sfx_volume; variable = options[:sfx_variable] end return if $game_variables[variable] == 100 $game_variables[variable] += value $game_variables[variable] = [$game_variables[variable], 100].min ignore = true when :atb_active variable = options[:atb_avariable] return if $game_variables[variable] == 3 $game_variables[variable] += 1 $game_variables[variable] = [$game_variables[variable], 3].min ignore = true when :atb_speeds variable = options[:atb_svariable] return if $game_variables[variable] == 10 $game_variables[variable] += 1 $game_variables[variable] = [$game_variables[variable], 10].min ignore = true when :animations; switch = options[:animation_sw] when :autocursor; switch = options[:autocursor_sw] when :next_actor; switch = options[:next_actor_sw] when :skill_help; switch = options[:skill_help_sw] when :cinematics; switch = options[:cinematics_sw] when :auto_dash; switch = options[:auto_dash_sw] when :instant_text; switch = options[:inst_text_sw] else; return end unless ignore return if !$game_switches[switch] $game_switches[switch] = false end Sound.play_cursor RPG::BGM::last.play if item == :bgm_volume RPG::BGS::last.play if item == :bgs_volume draw_item(self.index) end #-------------------------------------------------------------------------- # update_help #-------------------------------------------------------------------------- def update_help case item when :bgm_volume; type = :bgm_des when :bgs_volume; type = :bgs_des when :sfx_volume; type = :sfx_des when :animations; type = :ani_des when :autocursor; type = :curmem_des when :next_actor; type = :next_des when :skill_help; type = :help_des when :cinematics; type = :cinem_des when :windowskin; type = :wind_des when :auto_dash; type = :dash_des when :instant_text; type = :inst_des when :return_title; type = :retitle_des when :return_menu; type = :remenu_des when :atb_active case $game_variables[YEM::SYSTEM::OPTIONS[:atb_avariable]] when 0; type = :wait_0_des when 1; type = :wait_1_des when 2; type = :wait_2_des when 3: type = :wait_3_des end when :atb_speeds; type = :atb_s_des else; type = nil end text = YEM::SYSTEM::OPTIONS[type].to_s @help_window.set_text(text, 1) end end # Window_SystemOptions #=============================================================================== # Window_Skins #=============================================================================== class Window_Skins < Window_Selectable #-------------------------------------------------------------------------- # initialize #-------------------------------------------------------------------------- def initialize dx = Graphics.width/4 dw = Graphics.width/2 dh = Graphics.height - 112 super(dx, 56, dw, dh) @column_max = 1 self.index = 0 self.back_opacity = 255 self.openness = 0 self.active = false refresh end #-------------------------------------------------------------------------- # refresh #-------------------------------------------------------------------------- def refresh @data = [] variable = $game_variables[YEM::SYSTEM::WINDOWSKIN_VARIABLE] hash = YEM::SYSTEM::WINDOW_HASH.sort{ |a,b| a[0] <=> b[0] } for key in hash @data.push(key[0]) self.index = key[0] - 1 if key[0] == $game_variables[variable] end @item_max = @data.size create_contents for i in 0...@item_max draw_item(i) end end #-------------------------------------------------------------------------- # draw_item #-------------------------------------------------------------------------- def draw_item(index) rect = item_rect(index) self.contents.clear_rect(rect) rect.width -= 4 text = YEM::SYSTEM::WINDOW_HASH[@data[index]][0] self.contents.draw_text(rect, text, 1) end end # Window_Skins #=============================================================================== # Scene_Title #=============================================================================== class Scene_Title < Scene_Base #-------------------------------------------------------------------------- # alias method: create_game_objects #-------------------------------------------------------------------------- alias create_game_objects_sgo create_game_objects unless $@ def create_game_objects create_game_objects_sgo $game_system.create_system_options end end # Scene_Title #=============================================================================== # Scene_Map #=============================================================================== class Scene_Map < Scene_Base #-------------------------------------------------------------------------- # alias method: start #-------------------------------------------------------------------------- alias start_sgo start unless $@ def start $game_system.create_system_options start_sgo end end # Scene_Map #=============================================================================== # Scene_Battle #=============================================================================== class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # alias method: display_normal_animation #-------------------------------------------------------------------------- unless $imported["BattleEngineMelody"] alias display_normal_animation_sgo display_normal_animation unless $@ def display_normal_animation(targets, animation_id, mirror = false) return if $game_switches[YEM::SYSTEM::OPTIONS[:animation_sw]] display_normal_animation_sgo(targets, animation_id, mirror) end end # $imported["BattleEngineMelody"] end # Scene_Battle #=============================================================================== # Scene_End #=============================================================================== class Scene_End < Scene_Base #-------------------------------------------------------------------------- # public instance variables #-------------------------------------------------------------------------- attr_accessor :window_var #-------------------------------------------------------------------------- # overwrite method: start #-------------------------------------------------------------------------- def start super create_menu_background @window_var = YEM::SYSTEM::WINDOWSKIN_VARIABLE @help_window = Window_Help.new @options_window = Window_SystemOptions.new(@help_window) @skins_window = Window_Skins.new end #-------------------------------------------------------------------------- # overwrite method: post_start #-------------------------------------------------------------------------- def post_start; super; end #-------------------------------------------------------------------------- # overwrite method: pre_terminate #-------------------------------------------------------------------------- def pre_terminate; super; end #-------------------------------------------------------------------------- # overwrite method: close_command_window #-------------------------------------------------------------------------- def close_command_window; end #-------------------------------------------------------------------------- # overwrite method: terminate #-------------------------------------------------------------------------- def terminate super @help_window.dispose @options_window.dispose @skins_window.dispose dispose_menu_background end #-------------------------------------------------------------------------- # overwrite method: update #-------------------------------------------------------------------------- def update super @help_window.update @skins_window.update update_menu_background if @options_window.active update_options_window elsif @skins_window.active update_skins_window end end #-------------------------------------------------------------------------- # new method: update_options_window #-------------------------------------------------------------------------- def update_options_window @options_window.update if Input.trigger?(Input::B) Sound.play_cancel return_scene end end #-------------------------------------------------------------------------- # new method: open_skins_window #-------------------------------------------------------------------------- def open_skins_window @skins_window.open @skins_window.index = $game_variables[YEM::SYSTEM::WINDOWSKIN_VARIABLE] - 1 @skins_window.active = true @options_window.active = false end #-------------------------------------------------------------------------- # new method: update_skins_window #-------------------------------------------------------------------------- def update_skins_window if @last_index != @skins_window.index @last_index = @skins_window.index update_skins end if Input.trigger?(Input::B) Sound.play_cancel @skins_window.close @skins_window.active = false @options_window.active = true elsif Input.trigger?(Input::C) Sound.play_decision @skins_window.close @skins_window.active = false @options_window.active = true end end #-------------------------------------------------------------------------- # new method: update_skins #-------------------------------------------------------------------------- def update_skins $game_variables[@window_var] = @skins_window.index + 1 @options_window.update_windowskin @options_window.refresh @help_window.update_windowskin @help_window.set_text("") @options_window.update_help @skins_window.update_windowskin @skins_window.back_opacity = 255 @skins_window.refresh @options_window.draw_item(@options_window.index) end end # Scene_End #=============================================================================== # # END OF FILE # #=============================================================================== -
Ho messo gli script sopra main dato che lo script del teletrasporto istantaneo era là. Ho messo prima quello del teletrasporto istantaneo, poi quello del nome della mappa in revolution mode e poi sotto quello che mi hai dato prima. Adesso tutti e 3 gli script funzionano alla perfezione!
Grazie mille giver, ti sono veramente grato!

-
Ho fatto un po' di prove con gli script che ho aggiunto al mio progetto, aggiungendoli o togliendoli.
Ebbene ho trovato il problema! :rovatfl:
Nonostante lo script dica che non entra in conflitto con niente con il 99.999% di sicurezza ho trovato uno script che verifica quello 0.001% mancante: lo script del teletrasporto istantaneo:
#============================================================================== # Instant Transfer by Morhudiego, Member of rpg2s.net # Date: 11th january of 2010 # Version: 1.1 # Permission required: no # Credit required: yes #------------------------------------------------------------------------------ # UPDATE BUG (italian) # 1.0 : Uscita dello script # 1.1 : Corretti errori di sintassi. # # UPDATE BUG (english) # 1.0 : Script published # 1.1 : Sintax errors corrected. #------------------------------------------------------------------------------ # CONFIGURATION (italian) # Cambiate l'id della variabile qui sotto (Se necessario) usata per impostare # il tipo di dissolvenza. # Poi in un evento usate il comando "Controllo Variabili" e assegnatene uno # dei seguenti valori. # Valore 0 = Dissolvenza normale (nera) # Valore 1 = Dissolvenza immediata # Altri valori = Messaggio di errore # # CONFIGURATION (english) # Change the number of the variable (if necessary) used to set the kind of # fadeout/fadein. # Then use in an event the command "Variables" and assign it one of this # values. # Value 0 = Normal fade (black) # Value 1 = Instant fade # Other values = Error Message #============================================================================== class Scene_Map < Scene_Base #Cambia il numero con l'id della variabile. #Change this number with the variable id. TIPO_DI_FADE = 4 attr_accessor :transfer_kind def update_transfer_player return unless $game_player.transfer? transfer_kind = $game_variables[TIPO_DI_FADE] if transfer_kind == 0 fade = (Graphics.brightness > 0) fadeout(30) if fade @spriteset.dispose # Dispose of sprite set $game_player.perform_transfer # Execute player transfer $game_map.autoplay # Automatically switch BGM and BGS $game_map.update Graphics.wait(15) @spriteset = Spriteset_Map.new # Recreate sprite set fadein(30) if fade Input.update elsif transfer_kind == 1 @spriteset.dispose # Dispose of sprite set $game_player.perform_transfer # Execute player transfer $game_map.autoplay # Automatically switch BGM and BGS $game_map.update @spriteset = Spriteset_Map.new # Recreate sprite set Input.update else p 'id variabile invalido.' $game_variables[TIPO_DI_FADE] = 0 end end end
Entrambi gli script per me sono indispensabili, in particolar modo quello del teletrasporto istantaneo: c'è un modo per poterli rendere compatibili? -
corto ma efficace!
-
Personaggio in squadra non visibile
Descrizione
Uno script che fa in modo che un personaggio è in squadra ma non è visibile né nel menu né in battaglia, un po' come in un videogioco in stile pokemon!Autore
modern algebraIstruzioni per l'uso
Mettere sopra MainScript
class Game_Player #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Refresh #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alias malgbr_rfrsh_mour_ledactrmap_7jv3 refresh def refresh (*args) # Alias in case there is another script that overwrites and need to # incorporate whatever it does malgbr_rfrsh_mour_ledactrmap_7jv3 (*args) actor = $game_actors[1] # Get first actor in database @character_name = actor.character_name @character_index = actor.character_index endend
Bugs e Conflitti Noti
N/A -
Purtroppo il problema persiste...
Ho provato ora a ricopiare di nuovo lo script di base e quello che hai fatto tu, ho provato anche con e senza il tuo script e ho capito che è nello script di base che c'è qualcosa che non va, il problema persiste anche se c'è solo lo script di base.

-
Funziona, anche se mi dava errore sulla riga 9 poi ho risolto cambiando
$game_system.map_noname = true if $scene 1= self
in
$game_system.map_noname = true if $scene1 = self
:rovatfl:
Ho trovato però un altro errore nello script di base: appena cambi mappa non compare il nome, e se salvi e carichi il gioco non compare neppure il nome della mappa da cui riparti, compare solo quando fai nuovo gioco sulla mappa da cui parti.
-
È possibile fare in modo che il nome della mappa non ricompaia appena esci dal menu di pausa?
-
allora: scarica avs audio converter, aprilo e in alto vedrai i tipi di formato in cui si puo convertire (mp3 m4a wav mp2 etc) premi mp3 anche se la tu canzone è gia mp3... e premi converti in basso, se ti da errore allora premi mp2 e converti quindi converti in mp3 lo stesso file che hai convertito in mp2 mi segui? ricordati che una volta dopo aver converito il file mp3 in mp2 dovrai re inserirlo nella lista dei file da convertire
se non hai capito qualcosa avvisami
ti faccio fare questo procedimento perche può essere un errore di lettura causato dalla fonte da cui lo hai scaricato (nel caso di siti) o da dove lo hai importato (nel caso di aggeggi mobili come telefoni etc..)
Si, funziona!!! Grazie mille!
Un'altra domanda: è possibile decidere di disattivare il tasto ctrl quando vuoi nel corso del gioco o anche fuori dal gioco?
-
aaahh... capito... e un'altra cosa: vorrei far si che in un combattimento ci fossero dei dialoghi ogni tanto, per esempio la battaglia inizia e il nemico dice una frase e il mio personaggio risponde poi posso scegliere i comandi per combattere e quando gli ho tolto il 50% dica un'altra frase e quando muore un altra ancora... si puo fare?
Se vai sul database, nella pagina con i gruppi di nemici, in basso a destra puoi inserire degli eventi che funzioneranno in battaglia, anche dialoghi! Puoi stabilire anche quando un certo evento deve verificarsi, se un certo nemico ha pochi HP, se una switch è attivata, ecc.
Domanda: ho trovato delle musiche che normalmente si sentono bene, ma appena le importo nel programma si sente all'inizio della canzone un rumore che sembra il riavvolgimento di un nastro; dura mezzo secondo, ma è molto fastidioso! Inoltre non è neanche possibile aumentare la velocità di riproduzione di tutta la canzone. C'è modo di sistemare questo errore? Il file è un mp3.
-
Grazie mille, è esattamente quello che cercavo!!! :rovatfl:
Pare non abbia conflitti con il KGC LargeParty.
-
Scusatemi, credevo che il sito avesse problemi a caricare la nuova discussione, e così ho premuto diverse volte il tasto destro del mouse su "invia nuova discussione"; mi erano venuti diversi messaggi di errore, e quindi pensavo che non fosse riuscito a caricare correttamente la discussione. Grazie mille e scusatemi per il disagio!
Comunque avete qualche soluzione per questo script? Mi serve uno script praticamente in stile pokemon. Mi serve una voce da poter aggiungere nel menù o della schermata iniziale insieme a "nuovo gioco", "carica", ecc., oppure nel menù di pausa, un po' come si vede nel video che ho postato prima. Purtroppo non posso usare questo script perché come ho già detto prima entra in conflitto con un altro script a me indispensabile; mi serve solo la parte dello script che cambia le windowskin a piacimento del giocatore, e magari anche tutte quelle opzioni in più, come la regolazione dei volumi di BGS, di BGM, ecc. Purtroppo io sono ignorante in materia di RGSS2, e non ho idea di come fare a estrapolare solo questa parte dello script.

-
È possibile cambiare windowskin dal menù di gioco? Come in questo video:
Il problema è che creando questo tipo di menù questo script entra in conflitto con un altro script che a me serve assolutamente, ovvero il Kylock's Time System VX 1.5, qui sotto.
#====================================================================== ======== # ■ Kylock's Time System VX 1.5 # 6.3.2008 #------------------------------------------------------------------------------ # Script by: Kylock #============================================================================== # Mostly rewritten since XP version. Cleaner code and less intrusive (more # compatible). This is my comprehensive time and day/night system. This # script adds a new window to the game menu, so if you use a CMS, then place # this script ABOVE it so that it won't mess up your CMS. If you use a custom # script that makes changes to the battle background, place KTS below it so # that you don't get the delayed-tone effect in you battles. Other than that, # there shouldn't be any other script compatibility issues. # I've tried to make this script as customizable as possible, the settings # are found immediately following this header. Although time output to game # variables is optional, I strongly suggest using it so that its easier to # build your events based on the time in the game. #============================================================================== # ● Change Log #------------------------------------------------------------------------------ # 1.0 - Original Release. # 1.1 - Corrected tinting issue at the start of a battle. Place this script # below any battle background scripts if you experience "jumpy tinting" # 1.2 - Corrected the accuracy of $kts.stop and $kts.go # 1.3 - $kts.stop really stops everything now. Also added game switches for # even easier eventing. # 1.4 - Fixed Battle Test compatibility (simulates normal daylight for battle # test instead of darkness). # Now switches and variables will only update when the map loads so that # events don't suddenly dissappear when their time is up. # Added $kts_anti_tone - returns an inverse tone color to allow sprites # to appear normally on a tinted screen. # 1.5 - Rewrote the regexp that finds the [KTS] in the map name. Hopefully # this resolves the wrong maps being tinted problem. #============================================================================== # ● Auto-tone Instructions #------------------------------------------------------------------------------ # Maps designated as outdoors are the only maps to be affected by this # scripts use of auto-toning. To signify a map to be "outdoors", you must # include [KTS] In the name of the map. For example, you world map could be # named "World Map [KTS]" or "[KTS] World Map". Provisions are made later in # the script to remove [KTS] from the map name when it's read by another # script. This means that "[KTS]" won't show up in your Map Name Popup # windows. #============================================================================== # ● Script Function Calls #------------------------------------------------------------------------------ # The following are script commands that can be executed by using the # "Script..." command in your events. # ● $kts.stop - Stops time (can be used for cutscenes) # ● $kts.go - Resumes time (don't forget to use this!) # ● $kts.sec(n) - progresses time forward (n) seconds # ● $kts.min(n) - progresses time forward (n) minutes # ● $kts.hours(n) - progresses time forward (n) hours # ● $kts.days(n) - progresses time forward (n) days # ● $kts.jump_to_hour(n) - progresses time forward TO the specified hour. # Particularly useful in a situation where you # want a certain event to happen at a certain time, # or an Innkeeper who should wake the party up at # a certain hour. This command MAY cause your game # to appear to freeze for a few seconds on slower # computers. #============================================================================== # ● Game Database Setup #------------------------------------------------------------------------------ # This script, by defult, uses the following game variables and switches: # Database Variables: # [1] The Current Time [4] The Current Hour # [2] The Current Second [5] The Current Day # [3] The Current Minute [6] Name of the Current Day # Database Switches # [1] ON during night hours (2200-0400)(10pm-4am) # [2] ON during dawn hours (0500-0800)( 5am-8am) # [3] ON during daytime hours (0900-1800)( 9am-6pm) # [4] ON during sunset hours (1900-2100)( 7pm-9pm) #============================================================================== #============================================================================== # Stores variables and user defined settings for the time system. #============================================================================== module KTS #----------------------------------------------------------------------- # User Definable Clock Settings #----------------------------------------------------------------------- # Sets the speed multiplier of the clock. 1 is real time. A higher # value will give you a faster clock. Default is 100. SPEED = 60 #AMPM (True: 12-hour clock, False: 24-hour clock) AMPM = false # Sets the time at the start of your game. START_HOUR = 12 START_DAY = 1 #----------------------------------------------------------------------- # If you want custom day names, edit away! #----------------------------------------------------------------------- DAY_NAMES = ["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"] #----------------------------------------------------------------------- # Settings for Time Periods #----------------------------------------------------------------------- T1 = [ 0,5 ] # Night # Sets time periods for tinting effects T2 = [ 6,8 ] # Dawn # [start Hour, End Hour] for time period T3 = [ 9,18] # Day # Use 24-hour values for time periods T4 = [19,21] # Sunset T5 = [22,24] # Night # <- Ex: Night is between 23:00 and 24:00 #----------------------------------------------------------------------- # Settings for Output to Game Variables option. #----------------------------------------------------------------------- # Set this to true to output the current time to game variables. DATABASE_OUTPUT = true # Game Variable to be used for time output. TIME = 5 #(Time in string format. Ex: "2:48 AM" or "02:48") SECONDS = 6 MINUTES = 7 HOURS = 8 DAYS = 9 DAYNAME = 10 # Game Switches to be used for time output. NIGHT = 5 # This switch is on during night hours (2200-0400)(10pm-4am) DAWN = 6 # This switch is on during dawn hours (0500-0800)( 5am-8am) DAY = 7 # This switch is on during daytime hours (0900-1800)( 9am-6pm) SUNSET = 8 # This switch is on during sunset hours (1900-2100)( 7pm-9pm) #----------------------------------------------------------------------- # Settings for time controlled screen toning #----------------------------------------------------------------------- # True will enable screen toning to be used by the script. USE_TONE = true # Sets the duration of tone changes (in frames) FADE_LENGTH = 120 # Defines tones to be used in the corresponding time periods defined above. # RED, GREEN, BLUE, GREY C1 = Tone.new(-187, -119, -17, 68) C2 = Tone.new( 17, -51, -102, 0) C3 = Tone.new( 0, 0, 0, 0) C4 = Tone.new( -68, -136, -34, 0) C5 = Tone.new(-187, -119, -17, 68) # Defines anti-tones A1 = Tone.new( 187, 119, 17, -68) A2 = Tone.new( -17, 51, 102, 0) A3 = Tone.new( 0, 0, 0, 0) A4 = Tone.new( 68, 136, 34, 0) A5 = Tone.new( 187, 119, 17, -68) end #============================================================================== # Core Time System Engine #============================================================================== class Kylock_Time_System # sets instance variables def initialize $kts_map_data = load_data("Data/MapInfos.rvdata") @event_offset = (KTS::START_HOUR * 3600) + (KTS::START_DAY * 86400) @kts_stop = false $kts_event_tone = false $kts_battle_tone = true $kts_anti_tone = Tone.new(0,0,0,0) end # Computes current time and updates variables if used def update if !@kts_stop @total_seconds = (Graphics.frame_count * KTS::SPEED / 60) + @event_offset @seconds = (@total_seconds) % 60 @minutes = (@total_seconds / 60) % 60 @hours = (@total_seconds / 3600) % 24 @days = (@total_seconds / 86400) update_tint if KTS::DATABASE_OUTPUT $game_variables[KTS::TIME] = getTime $game_variables[KTS::DAYNAME] = getDayName end end end def update_variables $game_variables[KTS::SECONDS] = @seconds $game_variables[KTS::MINUTES] = @minutes $game_variables[KTS::HOURS] = @hours $game_variables[KTS::DAYS] = @days end def update_switches if @period == 1 || @period == 5 $game_switches[KTS::NIGHT] = true else $game_switches[KTS::NIGHT] = false end if @period == 2 $game_switches[KTS::DAWN] = true else $game_switches[KTS::DAWN] = false end if @period == 3 $game_switches[KTS::DAY] = true else $game_switches[KTS::DAY] = false end if @period == 4 $game_switches[KTS::SUNSET] = true else $game_switches[KTS::SUNSET] = false end end def getTime if KTS::AMPM # Formats a 12-Hour Clock if @hours > 12 hours1 = @hours - 12 if hours1 > 9 time = sprintf("%02d:%02d" + " PM", hours1, @minutes) else time = sprintf("%01d:%02d" + " PM", hours1, @minutes) end else if @hours > 9 time = sprintf("%02d:%02d" + " AM", @hours, @minutes) else time = sprintf("%01d:%02d" + " AM", @hours, @minutes) end end return time else # Formats a 24-Hour Clock time = sprintf("%02d:%02d", @hours, @minutes) return time end end #----------------------------------------------------------------------- # Script Command Functions #----------------------------------------------------------------------- def stop @time_stopped = @total_seconds @kts_stop = true end def go total_seconds = (Graphics.frame_count * KTS::SPEED / 60) + @event_offset @event_offset -= (total_seconds - @time_stopped) @kts_stop = false end def sec(sec = 0) @event_offset += sec end def min(min = 0) @event_offset += min * 60 end def hours(hours = 0) @event_offset += hours * 3600 end def days(days = 0) @event_offset += days * 86400 end def jump_to_hour(jhour = 0) while @hours != jhour @event_offset += 1 $kts.update end end #----------------------------------------------------------------------- # Script Support/Misc Functions #----------------------------------------------------------------------- def getDayName weekday = (@days % KTS::DAY_NAMES.length) return KTS::DAY_NAMES[weekday] end #----------------------------------------------------------------------- # Screen Tone Functions #----------------------------------------------------------------------- def update_tint(duration = KTS::FADE_LENGTH) return if $BTEST if KTS::USE_TONE && !$kts_event_tone && $kts_map_data[$game_map.map_id].outside_tint? if @hours >= KTS::T1[0] and @hours <= KTS::T1[1] @period = 1 screen.start_tone_change(KTS::C1,duration) $kts_anti_tone = KTS::A1 elsif @hours >= KTS::T2[0] and @hours <= KTS::T2[1] @period = 2 screen.start_tone_change(KTS::C2,duration) $kts_anti_tone = KTS::A2 elsif @hours >= KTS::T3[0] and @hours <= KTS::T3[1] @period = 3 screen.start_tone_change(KTS::C3,duration) $kts_anti_tone = KTS::A3 elsif @hours >= KTS::T4[0] and @hours <= KTS::T4[1] @period = 4 screen.start_tone_change(KTS::C4,duration) $kts_anti_tone = KTS::A4 elsif @hours >= KTS::T5[0] and @hours <= KTS::T5[1] @period = 5 screen.start_tone_change(KTS::C5,duration) $kts_anti_tone = KTS::A5 end else # no tone if indoors if !$kts_map_data[$game_map.map_id].outside_tint? screen.start_tone_change(Tone.new(0,0,0,0),duration) end end end def screen if $game_temp.in_battle return $game_troop.screen else return $game_map.screen end end end class Spriteset_Map #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- alias kts_initialize initialize def initialize $kts.update_switches if !@kts_stop && KTS::DATABASE_OUTPUT $kts.update_variables if !@kts_stop && KTS::DATABASE_OUTPUT kts_initialize end end #============================================================================== # Instantly updates screen tone when a new map is loaded. #============================================================================== class Game_Map alias kts_setup setup def setup(map_id) kts_setup(map_id) $kts_event_tone = false $kts.update $kts.update_tint(0) end end #============================================================================== # Instantly updates screen tone when a battle starts. #============================================================================== class Spriteset_Battle alias kts_create_battleback create_battleback def create_battleback $kts.update_tint(0) kts_create_battleback end end #============================================================================== # Temporarily disables auto-toning if an event tints the screen. #============================================================================== class Game_Interpreter alias kts_Interpreter_command_223 command_223 def command_223 $kts_event_tone = true kts_Interpreter_command_223 end end #============================================================================== # Integrates the Time System into the Game System. #============================================================================== class Game_System # inits a KTS object alias kts_initialize initialize def initialize $kts=Kylock_Time_System.new kts_initialize end # Updates kts every game frame alias kts_update update def update $kts.update kts_update end end #============================================================================== # Scans Map Names for Toning #============================================================================== class RPG::MapInfo def name # Definition prevents location scripts from reading anything within return @name.gsub(/\[.*\]/) {""} # brackets, including the brackets end def original_name return @name end def outside_tint? return @name.scan(/\[KTS\]/).size > 0 # old regexp: return @name.scan(/[\KTS]/).size > 0 end end #============================================================================== # Sets up the time window for the menu. #============================================================================== class Window_KTS < Window_Base def initialize(x, y) super(x, y, 160, WLH + 32) refresh end def refresh self.contents.clear self.contents.draw_text(4, -6, 120, 32, $kts.getDayName + " ore " + $kts.getTime, 2) end def update super $kts.update self.contents.clear self.contents.draw_text(4, -6, 120, 32, $kts.getDayName + " ore " + $kts.getTime, 2) end end #============================================================================== # Adds the time window to the menu. #============================================================================== class Scene_Menu < Scene_Base alias kts_start start def start kts_start @kts_window = Window_KTS.new(0,305) end alias kts_terminate terminate def terminate kts_terminate @kts_window.dispose end alias kts_update update def update kts_update @kts_window.update end end #============================================================================== # Saves and Loads game time to/from save game file. #============================================================================== class Scene_File alias kts_write_save_data write_save_data def write_save_data(file) kts_write_save_data(file) Marshal.dump($kts, file) end alias kts_read_save_data read_save_data def read_save_data(file) kts_read_save_data(file) $kts = Marshal.load(file) end endInoltre io uso lo script KGC LargeParty, lo script che permette anche l'organizzazione dei personaggi nella squadra attraverso una settima voce nel menù. È possibile aggiungere un'ottava voce nel menù che faccia cambiare le opzioni di gioco come si vede nel video?
-
È possibile creare un'azione di un personaggio che duri anche se esci e rientri in una mappa, senza eventi con processi in parallelo?
Ho un'evento che si attiva con un bottone d'azione, dovrei fare in modo che il personaggio, che è l'evento stesso, se effettuate certe condizioni salti sul posto, e dovrebbe continuare a saltare anche quando esco e rientro nella mappa. Siccome dovrei fare queste condizioni per circa 300 eventi, non è conveniente utilizzare processi in parallelo attivati da tantissime switch. C'è un modo più semplice per fare ciò?
-
Ti ho fatto questo script, spero ti possa essere utile (sono insicuro anche io della sua utilità.
Grazie mille, ti sono veramente molto grato!
Non era necessario fare anche la parte che riduce i danni causati dalle abilità, mi bastavano solo gli attacchi normali! Ciò che mi serviva esattamente era questo:
module Morshudiego SOTTRAZIONE_DANNO = 150 #NON TOCCARE QUESTA LINEA. end class Game_Battler #-------------------------------------------------------------------------- # * Calculation of Damage From Normal Attack # attacker : Attacker # The results are substituted for @hp_damage #-------------------------------------------------------------------------- def make_attack_damage_value(attacker) damage = attacker.atk * 4 - self.def * 2 # base calculation damage = 0 if damage < 0 # if negative, make 0 damage *= elements_max_rate(attacker.element_set) # elemental adjustment damage /= 100 if damage == 0 # if damage is 0, damage = rand(2) # half of the time, 1 dmg elsif damage > 0 # a positive number? @critical = (rand(100) < attacker.cri) # critical hit? @critical = false if prevent_critical # criticals prevented? damage *= 3 if @critical # critical adjustment end damage = apply_variance(damage, 20) # variance damage = apply_guard(damage) # guard adjustment damage -= Morshudiego::SOTTRAZIONE_DANNO @hp_damage = damage # damage HP end endAdesso gli attacchi normali non toglieranno più 4 volte il danno causato da una potente abilità!

-
Scusa, non so se ho capito bene.
Tu vuoi cambiare la potenza di un attacco normale, che si basa sull'attacco dell'eroe, senza cambiare l'attacco dell'eroe?
no, sinceramente. non capisco.
Praticamente voglio diminuire SOLO la potenza dell'attacco normale di tutti i personaggi senza alterare la potenza delle abilità, se possibile senza cambi di statistiche, equipaggiamenti o cambi di stato. Tra gli script c'è un'opzione che mostra il calcolo dei danni dell'attacco normale in generale?
-
Potresti cambiare le statistiche dell'arma, cioè equipaggiarlo con un'arma più potente e poi rimuoverla, oppure c'è l'opzione per la maggiore probabilità di attacchi critici, ma non aviene sempre. La soluzione migliore mi pare quella di uno status alterato che aumenta l'attacco.
^ ^
A me servirebbe non aumentare, ma abbassare l'attacco normale del personaggio, senza armi o status. C'è qualche opzione negli script? Ho provato a modificare qualcosa, ma senza risultato

-
C'è un modo per cambiare la potenza di un attacco normale senza però modificare le statistiche del personaggio?

Script danno minimo con oggetti e abilità in battaglia
in Supporto RGSS2 (VX)
Posted
Siiiiiiiiiiiiiiiiiiiiiiiiiii!!! Adesso funziona!!!
Mi sei stato davvero di grande aiuto, grazie mille!!!!!!