Vai al contenuto

Rilevato Ad-Blocker. Per favore disabilita il tuo adblocker quando navighi su makerando.com - Non c'è nessun annuncio invasivo.

Ally

Utente
  • Numero contenuti

    1074
  • Iscritto

  • Ultima visita

  • Days Won

    17

Tutti i contenuti di Ally

  1. Nome Script: MSX - Windowskin 128 Color Versione: 1.0 Autore/i: Melosx Informazioni: Permette di inserire nella windowskin 128 quadratini colorati da usare nei vostri giochi al posto dei 32 di default... Volendo avrei potuto portare al massimo numero inseribile i colori ma non credo ci sia qualcuno che abbia intenzione di usare 2048 colori diversi nella windowskin... Istruzioni: Copiatelo, come ogni altro, sotto Materials e sopra Main. Usate la windowskin che ho postato come base... Le prima due righe di colori sono quelli standard... Nello script ci sono altre istruzioni... Windowskin: Script: #==============================================================================# ** Windowskin 128 Color v1.0#==============================================================================# Author: Melosx# Release Date: 10/04/2012 => v1.0#==============================================================================# * Instructions# -----------------------------------# Place the script under Material and above Main.##==============================================================================# * Description# -----------------------------------# With this script you can use a windowskin with 128 colors.# You can add new color code following the instruction in the Color Zone.##==============================================================================class Window_Base < Window #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|COLORS ZONE|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=### To add new color follow this template:## def COLOR_NAME; text_color(ID); end## ID is a number from 0 to 127 and it is the place of the color in the# windowskin.##----------------------------ADD HERE YOUR COLORS-----------------------------# def msx_color; text_color(32); end; # <- My favourite color ^.^ #=-=-=-=-=-=-=-=-=-=-=-=-=-=-==--=-=-|END|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# def text_color(n) windowskin.get_pixel(64 + (n % 16) * 4, 96 + (n / 16) * 4) end end
  2. Nome Script: Link Event Versione: 1.60 Autore/i: kingartur2(kingartur3) Informazioni: Nello script ce ne sono a suffienza. PS : se ci sono suggerimenti sono bel accolti. Istruzioni: Le trovate sempre nello script Script: #===============================================================================# Autore : kingartur2(kingartur3)# Versione : 1.60#===============================================================================# Istruzioni :# Apporre in un evento il seguente commento :## Link Event x## dove x rappresenta l'id dell'evento da collegare# in questo modo le switch locali dell'evento con id x non saranno più# considerate e le sue switch locali saranno on se tutti gli eventi ad esso# collegati avranno quella switch locale ad on.# Esempio :# Colleghi l'evento con id 1, 2, e 3 all'evento 4.# Se tramite il comando evento cambi la switch locale A dell'evento 4 non# succede nulla, se invece nell'evento 1,2 e 3 la switch locale A risulterà# a ON allora anche nell'evento 4 sarà così, però se nell'evento 1 e 2 la switch# locale A sarà ON e nell'evento 3 sarà OFF allora sarà OFF anche nell'evento 4## Link Event [id mappa, x]# Funziona allo stesso modo del comando precedente con la differenza che in# questo caso l'evento linkato si troverà in un altra mappa#===============================================================================class Game_Map attr_accessor :link_event alias djasijdiasj initialize def initialize djasijdiasj @link_event = [] endendclass Game_Event alias fshfusdhfusdih setup_page def setup_page(new_page) fshfusdhfusdih(new_page) if [email protected]? for i in @page.list if [108, 408].include?(i.code) if i.parameters[0].downcase.include?("link event") a = i.parameters[0].clone.downcase.gsub!("link event") {""} write_link_event(a.to_i) end if i.parameters[0].downcase.include?("link event [") or i.parameters[0].downcase.include?("link event[") a = i.parameters[0].clone.downcase.gsub!("link event") {""} eval("@b = " + a) write_overlink_event(@ end end end end end def write_link_event(id) if $game_map.link_event[$game_map.map_id].nil? $game_map.link_event[$game_map.map_id] = [] end if $game_map.link_event[$game_map.map_id][id].nil? $game_map.link_event[$game_map.map_id][id] = [] end $game_map.link_event[$game_map.map_id][id].push(self.id) end def write_overlink_event(val) if $game_map.link_event[val[0]].nil? $game_map.link_event[val[0]] = [] end if $game_map.link_event[val[0]][val[1]].nil? $game_map.link_event[val[0]][val[1]] = [] end $game_map.link_event[val[0]][val[1]].push([$game_map.map_id, self.id]) end endclass Game_SelfSwitches alias jfdsijfd [] def [](key) if !$game_map.link_event[key[0]].nil? if !$game_map.link_event[key[0]][key[1]].nil? state = true for i in $game_map.link_event[key[0]][key[1]] if i.is_a?(Array) if !$game_self_switches[[i[0], i[1], key[2]]] state = false end elsif !$game_self_switches[[key[0], i, key[2]]] state = false end end return state end end jfdsijfd(key) endend Demo: Coming Soon(Se richiesta, vista la semplicità dello script)) Incompatibilità: N/A
  3. Nome Script: Keyboard Input Versione: 3.0 Autore/i: Keroro Informazioni: Porting per VX-ACE dello script YEM Keyboard Script per VX. Rimpiazza lo Scene_Name facendo inserire direttamente da tastiera. TODO: Gestire la punteggiatura Istruzioni: Creare una nuova tab sotto Materials e incollare lo script. Oltre a modificare lo Scene_Name modifica la classe Input consentendo, al programmatore volenteroso di utilizzare tutti le lettere e i numeri tramite sintassi: if Input.press(:VK_A) #se premo la lettera a end if Input.press(:NUM5) or Input.press(:PAD5) #se premo il numero 5 sulla tastiera o sul numpad end Script: #===============================================================================# Keyboard Input - Porting to VX-ACE# By Keroro - [email protected]# Version 3.0# Last Date Updated. 2012.03.17#===============================================================================## OriginalWij and Yanfly Collaboration - Keyboard Input# Last Date Updated: 2010.06.12# Level: Normal## This is a utility script that provides the functionality to return inputs# from the keyboard as well as free up more keys to be used in the Input module.# This script will also replace Scene_Name and allow for direct keyboard input# to type in an actor's name as well as fix the maximum characters shown from# the default base script.##===============================================================================$imported = {} if $imported == nil$imported["KeyboardInput"] = trueclass << Input #-------------------------------------------------------------------------- # Aliases (Mods - Linked to Module) - Created by OriginalWij #-------------------------------------------------------------------------- alias ow_dt_i_press press? unless $@ alias ow_dt_i_trigger trigger? unless $@ alias ow_dt_i_repeat repeat? unless $@ alias ow_dt_i_update update unless $@endmodule Input #-------------------------------------------------------------------------- # constants - Created by OriginalWij and Yanfly and Keroro #-------------------------------------------------------------------------- VALUES = {} VALUES[:VK_A] = 65; VALUES[:VK_B] = 66; VALUES[:VK_C] = 67; VALUES[:VK_D] = 68; VALUES[:VK_E] = 69; VALUES[:VK_F] = 70; VALUES[:VK_G] = 71; VALUES[:VK_H] = 72; VALUES[:VK_I] = 73; VALUES[:VK_J] = 74; VALUES[:VK_K] = 75; VALUES[:VK_L] = 76 VALUES[:VK_M] = 77; VALUES[:VK_N] = 78; VALUES[:VK_O] = 79; VALUES[:VK_P] = 80; VALUES[:VK_Q] = 81; VALUES[:VK_R] = 82; VALUES[:VK_S] = 83; VALUES[:VK_T] = 84; VALUES[:VK_U] = 85; VALUES[:VK_V] = 86; VALUES[:VK_W] = 87; VALUES[:VK_X] = 88 VALUES[:VK_Y] = 89; VALUES[:VK_Z] = 90; LETTERS = [:VK_A,:VK_B,:VK_C,:VK_D,:VK_E,:VK_F,:VK_G,:VK_H,:VK_I,:VK_J, :VK_K,:VK_L,:VK_M,:VK_N,:VK_O,:VK_P,:VK_Q,:VK_R,:VK_S,:VK_T, :VK_U,:VK_V,:VK_W,:VK_X,:VK_Y,:VK_Z] VALUES[:NUM0] = 48; VALUES[:NUM1] = 49; VALUES[:NUM2] = 50; VALUES[:NUM3] = 51; VALUES[:NUM4] = 52; VALUES[:NUM5] = 53; VALUES[:NUM6] = 54; VALUES[:NUM7] = 55; VALUES[:NUM8] = 56; VALUES[:NUM9] = 57; VALUES[:PAD0] = 96; VALUES[:PAD1] = 97; VALUES[:PAD2] = 98; VALUES[:PAD3] = 99; VALUES[:PAD4] = 100; VALUES[:PAD5] = 101; VALUES[:PAD6] = 102; VALUES[:PAD7] = 103; VALUES[:PAD8] = 104; VALUES[:PAD9] = 105; NUMBERS = [:NUM0,:NUM1,:NUM2,:NUM3,:NUM4,:NUM5,:NUM6,:NUM7,:NUM8,:NUM9] NUMPAD = [:PAD0,:PAD1,:PAD2,:PAD3,:PAD4,:PAD5,:PAD6,:PAD7,:PAD8,:PAD9] VALUES[:ENTER] = 13; VALUES[:SPACE] = 32; VALUES[:ESC] = 27; VALUES[:BACK] = 8; VALUES[:PGUP] = 33; VALUES[:PGDN] = 34; VALUES[:CAPS] = 20;#TODO: aggiungere tags per punteggiatura #-------------------------------------------------------------------------- # initial module settings - Created by OriginalWij and Yanfly #-------------------------------------------------------------------------- GetKeyState = Win32API.new("user32", "GetAsyncKeyState", "i", "i") GetCapState = Win32API.new("user32", "GetKeyState", "i", "i") KeyRepeatCounter = {} module_function #-------------------------------------------------------------------------- # alias method: update - Created by OriginalWij and Keroro #-------------------------------------------------------------------------- def update ow_dt_i_update for key in KeyRepeatCounter.keys if (GetKeyState.call(VALUES[key]).abs & 0x8000 == 0x8000) KeyRepeatCounter[key] += 1 else KeyRepeatCounter.delete(key) end end end #-------------------------------------------------------------------------- # alias method: press? - Created by OriginalWij and Keroro #-------------------------------------------------------------------------- def press?(key) return ow_dt_i_press(key) if !VALUES.has_key?(key) return true unless KeyRepeatCounter[key].nil? return key_pressed?(key) end #-------------------------------------------------------------------------- # alias method: trigger? - Created by OriginalWij and Keroro #-------------------------------------------------------------------------- def trigger?(key) return ow_dt_i_trigger(key) if !VALUES.has_key?(key) count = KeyRepeatCounter[key] return ((count == 0) or (count.nil? ? key_pressed?(key) : false)) end #-------------------------------------------------------------------------- # alias method: repeat? - Created by OriginalWij and Keroro #-------------------------------------------------------------------------- def repeat?(key) return ow_dt_i_trigger(key) if !VALUES.has_key?(key) count = KeyRepeatCounter[key] return true if count == 0 if count.nil? return key_pressed?(key) else return (count >= 23 and (count - 23) % 6 == 0) end end #-------------------------------------------------------------------------- # new method: key_pressed? - Created by OriginalWij and Keroro #-------------------------------------------------------------------------- def key_pressed?(key) if (GetKeyState.call(VALUES[key]).abs & 0x8000 == 0x8000) KeyRepeatCounter[key] = 0 return true end return false end #-------------------------------------------------------------------------- # new method: typing? - Created by Yanfly and Keroro #-------------------------------------------------------------------------- def typing? return true if repeat?(:SPACE) for key in LETTERS return true if repeat?(key) end for key in NUMBERS return true if repeat?(key) end return false end #-------------------------------------------------------------------------- # new method: key_type - Created by Yanfly and Keroro #-------------------------------------------------------------------------- def key_type return " " if repeat?(:SPACE) for key in LETTERS next unless repeat?(key) return upcase? ? key.to_s[3].upcase : key.to_s[3].downcase end for key in NUMBERS return key.to_s[3] if repeat?(key) end for key in NUMPADS return key.to_s[3] if repeat?(key) end return "" end #-------------------------------------------------------------------------- # new method: upcase? - Created by Yanfly #-------------------------------------------------------------------------- def upcase? return !press?(:SHIFT) if GetCapState.call(VALUES[:CAPS]) == 1 return true if press?(:SHIFT) return false endend #Input#===============================================================================# Window_NameEdit#===============================================================================class Window_NameEdit < Window_Base #-------------------------------------------------------------------------- # overwrite method: initialize #-------------------------------------------------------------------------- def initialize(actor, max_char) dw = Graphics.width - 176 dy = (Graphics.height - 128) / 2 if $game_message.visible difference = Graphics.height - 128 case $game_message.position when 0; dy += 64 when 1; dy += 0 when 2; dy -= 64 end end super(88, dy, dw, 128) @actor = actor @name = actor.name @max_char = max_char name_array = @name.split(//)[0...@max_char] @name = "" for i in 0...name_array.size @name += name_array[i] end @default_name = @name @index = name_array.size self.active = false refresh end #-------------------------------------------------------------------------- # overwrite method: item_rect #-------------------------------------------------------------------------- def item_rect(index) if index == @max_char rect = Rect.new(0, 0, 0, 0) else rect = Rect.new(0, 0, 0, 0) rect.x = 112 + index * 12 rect.y = 36 rect.width = 24 rect.height = line_height end return rect endend # Window_NameEdit#===============================================================================# Scene_Base#===============================================================================class Scene_Base #-------------------------------------------------------------------------- # new method: name_entry #-------------------------------------------------------------------------- def name_entry(actor_id, max_char) @name_actor_id = actor_id @name_entry_max = max_char start_name_entry end_name_entry end #-------------------------------------------------------------------------- # new method: start_name_entry #-------------------------------------------------------------------------- def start_name_entry Graphics.freeze actor = $game_actors[@name_actor_id] @edit_window = Window_NameEdit.new(actor, @name_entry_max) Graphics.transition(10) loop do update_name_entry if Input.repeat?(:BACK) and @edit_window.index > 0 Sound.play_cancel @edit_window.back elsif Input.typing? and @edit_window.index != @edit_window.max_char Sound.play_cursor @edit_window.add(Input.key_type) elsif Input.trigger?(:ENTER) Sound.play_ok actor.name = @edit_window.name break elsif Input.trigger?(:ESC) Sound.play_cancel break end end end #-------------------------------------------------------------------------- # new method: update_name_entry #-------------------------------------------------------------------------- def update_name_entry Graphics.update Input.update if SceneManager.scene.is_a?(Scene_Map) $game_map.update @spriteset.update elsif SceneManager.scene.is_a?(Scene_Battle) Graphics.update Input.update $game_system.update $game_troop.update @spriteset.update @message_window.update end @edit_window.update end #-------------------------------------------------------------------------- # end_name_entry #-------------------------------------------------------------------------- def end_name_entry @edit_window.dispose @edit_window = nil @name_actor_id = nil @name_entry_max = nil endend # Scene_Base#===============================================================================# Game_Interpreter#===============================================================================class Game_Interpreter #-------------------------------------------------------------------------- # overwrite method: command_303 (Name Input Processing) #-------------------------------------------------------------------------- def command_303 if $data_actors[@params[0]] != nil SceneManager.scene.name_entry(@params[0], @params[1]) end @index += 1 return false endend # Game_Interpreter Incompatibilità:Nessuna incompatibilità Note dell'Autore: In modalità finestra il mouse compare e scompare, a schermo intero invece resta nascosto.
  4. Nome Script: Actor Battler Graphics Versione: 1.05 Autore/i: Victor Sant Informazioni: Bisogna avere lo script "Victor's Engine - Basic Module" installato per far funzionare gli script di Victor. http://victorscripts.wordpress.com/rpg-maker-vx-ace/basic-scripts/basic-module/ Istruzioni: Lo script va inserito sotto la sezione "Materials" e sotto lo script *NECESSARIO* "Victor's Engine - Basic Module" LE ISTRUZIONI SONO ALL'INTERNO DELLO SCRIPT Script: #==============================================================================# ** Victor Engine - Actors Battlers#------------------------------------------------------------------------------# Author : Victor Sant## Version History:# v 1.00 - 2011.12.19 > First relase# v 1.01 - 2011.12.30 > Faster Regular Expressions# v 1.02 - 2012.01.15 > Compatibility with Target Arrow# v 1.03 - 2012.01.28 > Compatibility with Animated Battle# v 1.04 - 2012.03.11 > Added position distance settings# v 1.05 - 2012.03.17 > Fixed battle test glitch#------------------------------------------------------------------------------# This script adds visible battler graphics for the party actors actors# during combat. With the visible battlers, new options will be available# like setting actor's battlers positions and attack animations.#------------------------------------------------------------------------------# Compatibility# Requires the script 'Victor Engine - Basic Module' v 1.11 or higher# If used with 'Victor Engine | Animated Battle' paste this one bellow it.# # * Overwrite methods (Default)# class Spriteset_Battle# def create_actors# def update_actors## class Scene_Battle < Scene_Base# def show_attack_animation(targets)## * Alias methods (Default)# class << DataManager# def setup_new_game# def create_game_objects# def make_save_contents# def extract_save_contents(contents)## class Game_Actor < Game_Battler# def setup(actor_id)## * Alias methods (Basic Module)# class Game_Interpreter# def comment_call##------------------------------------------------------------------------------# Instructions:# To instal the script, open you script editor and paste this script on# a new section on bellow the Materials section. This script must also# be bellow the script 'Victor Engine - Basic'##------------------------------------------------------------------------------# Comment calls note tags:# Tags to be used in events comment box, works like a script call.# # <battler name id: x># This tag allows to change the actor battler graphic.# id : actor ID# x : battler graphic filename## <battler hue id: x># This tag allows to change the actor battler graphic.# id : actor ID# x : battler graphic hue (0-360)## <battler position i: x, y># This tag allows to change the battler position during combat.# only valid if VE_BATTLE_FORMATION = :custom# i : position index# x : new coorditante X# y : new coorditante X##------------------------------------------------------------------------------# Actors note tags:# Tags to be used on the Actors note box in the database## <battler name: x># This tag allows to set the initial battler graphic filename for the actor.# x : battler graphic filename## <battler hue: x># This tag allows to set the initial battler graphic hur for the actor.# x : battler graphic hue (0-360)##------------------------------------------------------------------------------# Enemies note tags:# Tags to be used on the Enemies note box in the database## <attack animation: x># This tag allows to set the normal attack animation for the enemy# x : animation ID# #==============================================================================#==============================================================================# ** Victor Engine#------------------------------------------------------------------------------# Setting module for the Victor Engine#==============================================================================module Victor_Engine #-------------------------------------------------------------------------- # * Set the battle formation # Choose here how the actors battlers will be placed on the combat. # :front : horizontal placement # :side : vertical placement # :iso : isometric placement # :custom : custom placement #-------------------------------------------------------------------------- VE_BATTLE_FORMATION = :front #-------------------------------------------------------------------------- # * Set battler centralization # When true, battlers are centralized automatically. # Not valid if VE_BATTLE_FORMATION = :custom #-------------------------------------------------------------------------- VE_BATTLE_CENTRALIZE = true #-------------------------------------------------------------------------- # * Set battlers custom positions # Only if VE_BATTLE_FORMATION = :custom, allows to set the position of # all party actors, don't forget to add values for all positions # available if using a party bigger than the default. #-------------------------------------------------------------------------- VE_CUSTOM_POSITION = { # Position 1 => {x: 460, y: 180}, # Position for the first actor. 2 => {x: 480, y: 210}, # Position for the second actor. 3 => {x: 500, y: 240}, # Position for the thrid actor. 4 => {x: 520, y: 270}, # Position for the fourth actor. } # Don't remove #-------------------------------------------------------------------------- # * Actors battlers position adjust # Used to adjust the position of all actors battlers. #-------------------------------------------------------------------------- VE_POSITION_ADJUST = {x: 0, y: 0} #-------------------------------------------------------------------------- # * Actors battlers position adjust # Used to adjust the position of all actors battlers. #-------------------------------------------------------------------------- VE_DISTANCE_ADJUST = {x: 48, y: 32} #-------------------------------------------------------------------------- # * required # This method checks for the existance of the basic module and other # VE scripts required for this script to work, don't edit this #-------------------------------------------------------------------------- def self.required(name, req, version, type = nil) if !$imported[:ve_basic_module] msg = "The script '%s' requires the scriptn" msg += "'VE - Basic Module' v%s or higher above it to work properlyn" msg += "Go to http://victorscripts.wordpress.com/ to download this script." msgbox(sprintf(msg, self.script_name(name), version)) exit else self.required_script(name, req, version, type) end end #-------------------------------------------------------------------------- # * script_name # Get the script name base on the imported value, don't edit this #-------------------------------------------------------------------------- def self.script_name(name, ext = "VE") name = name.to_s.gsub("_", " ").upcase.split name.collect! {|char| char == ext ? "#{char} -" : char.capitalize } name.join(" ") endend$imported ||= {}$imported[:ve_actor_battlers] = 1.04Victor_Engine.required(:ve_actor_battlers, :ve_basic_module, 1.11, :above)#==============================================================================# ** DataManager#------------------------------------------------------------------------------# This module handles the game and database objects used in game.# Almost all global variables are initialized on this module#==============================================================================class << DataManager #-------------------------------------------------------------------------- # * Alias method: setup_new_game #-------------------------------------------------------------------------- alias :setup_new_game_ve_actor_battlers :setup_new_game def setup_new_game setup_new_game_ve_actor_battlers $game_custom_positions = VE_CUSTOM_POSITION.dup end #-------------------------------------------------------------------------- # * Alias method: setup_battle_test #-------------------------------------------------------------------------- alias :setup_battle_test_ve_actor_battlers :setup_battle_test def setup_battle_test setup_battle_test_ve_actor_battlers $game_custom_positions = VE_CUSTOM_POSITION.dup end #-------------------------------------------------------------------------- # * Alias method: create_game_objects #-------------------------------------------------------------------------- alias :create_game_objects_ve_actor_battlers :create_game_objects def create_game_objects create_game_objects_ve_actor_battlers $game_custom_positions = {} end #-------------------------------------------------------------------------- # * Alias method: make_save_contents #-------------------------------------------------------------------------- alias :make_save_contents_ve_actor_battlers :make_save_contents def make_save_contents contents = make_save_contents_ve_actor_battlers contents[:formations_ve] = $game_custom_positions contents end #-------------------------------------------------------------------------- # * Alias method: extract_save_contents #-------------------------------------------------------------------------- alias :extract_save_contents_ve_actor_battlers :extract_save_contents def extract_save_contents(contents) extract_save_contents_ve_actor_battlers(contents) $game_custom_positions = contents[:formations_ve] endend#==============================================================================# ** Game_Actor#------------------------------------------------------------------------------# This class handles actors. It's used within the Game_Actors class# ($game_actors) and referenced by the Game_Party class ($game_party).#==============================================================================class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :screen_x # Coordenada X na tela attr_accessor :screen_y # Coordenada Y na tela #-------------------------------------------------------------------------- # * Alias method: setup #-------------------------------------------------------------------------- alias :setup_ve_actor_battlers :setup def setup(actor_id) setup_ve_actor_battlers(actor_id) @battler_name = actor_battler_name @battler_hue = actor_battler_hue end #-------------------------------------------------------------------------- # * Overwrite method: use_sprite? #-------------------------------------------------------------------------- def use_sprite? return true end #-------------------------------------------------------------------------- # * Overwrite method: screen_z #-------------------------------------------------------------------------- def screen_z return 100 end #-------------------------------------------------------------------------- # * New method: actor_battler_name #-------------------------------------------------------------------------- def actor_battler_name actor.note =~ /<BATTLER NAME: ([^><]*)>/i ? $1.to_s : "" end #-------------------------------------------------------------------------- # * New method: actor_battler_hue #-------------------------------------------------------------------------- def actor_battler_hue actor.note =~ /<BATTLER HUE: (d+)>/i ? $1.to_i : 0 end #-------------------------------------------------------------------------- # * New method: battler_name #-------------------------------------------------------------------------- def battler_name=(name) @battler_name = name if name.is_a?(String) end #-------------------------------------------------------------------------- # * New method: battler_hue #-------------------------------------------------------------------------- def battler_hue=(hue) @battler_hue = hue if hue.numeric? end #-------------------------------------------------------------------------- # * New method: screen_x #-------------------------------------------------------------------------- def screen_x setup_x end #-------------------------------------------------------------------------- # * New method: screen_y #-------------------------------------------------------------------------- def screen_y setup_y end #-------------------------------------------------------------------------- # * New method: setup_x #-------------------------------------------------------------------------- def setup_x case VE_BATTLE_FORMATION when :front then position = get_frontal_x when :side then position = get_sideview_x when :iso then position = get_isometric_x when :custom then position = $game_custom_positions[index + 1][:x] end position + VE_POSITION_ADJUST[:x] end #-------------------------------------------------------------------------- # * New method: setup_y #-------------------------------------------------------------------------- def setup_y case VE_BATTLE_FORMATION when :front then position = get_frontal_y when :side then position = get_sideview_y when :iso then position = get_isometric_y when :custom then position = $game_custom_positions[index + 1][:y] end position + VE_POSITION_ADJUST[:y] end #-------------------------------------------------------------------------- # * New method: get_frontal_x #-------------------------------------------------------------------------- def get_frontal_x if VE_BATTLE_CENTRALIZE size = $game_party.battle_members.size position = (index + 1) * Graphics.width / (size + 1) else size = $game_party.max_battle_members position = index * Graphics.width / size + 64 end position end #-------------------------------------------------------------------------- # * New method: get_frontal_y #-------------------------------------------------------------------------- def get_frontal_y Graphics.height - 16 end #-------------------------------------------------------------------------- # * New method: get_sideview_x #-------------------------------------------------------------------------- def get_sideview_x if VE_BATTLE_CENTRALIZE size = $game_party.max_battle_members x = dist[:x] / 8 position = -index * (index * x - x * size) + Graphics.width - 160 else position = index * dist[:x] + Graphics.width - 192 end position end #-------------------------------------------------------------------------- # * New method: get_sideview_y #-------------------------------------------------------------------------- def get_sideview_y if VE_BATTLE_CENTRALIZE size = $game_party.battle_members.size height = Graphics.height position = (index - size) * dist[:y] + size * dist[:y] / 2 + height - 160 else position = index * dist[:y] + Graphics.height - 192 end position end #-------------------------------------------------------------------------- # * New method: get_isometric_x #-------------------------------------------------------------------------- def get_isometric_x if VE_BATTLE_CENTRALIZE position = -index * (index * dist[:x] - 32) + Graphics.width - 160 else position = index * dist[:x] + Graphics.width - 192 end position end #-------------------------------------------------------------------------- # * New method: get_isometric_y #-------------------------------------------------------------------------- def get_isometric_y if VE_BATTLE_CENTRALIZE position = index * (dist[:y] - index * 6) + Graphics.height - 160 else position = Graphics.height - 96 - index * dist[:y] end position end #-------------------------------------------------------------------------- # * New method: dist #-------------------------------------------------------------------------- def dist VE_DISTANCE_ADJUST endend#==============================================================================# ** Game_Enemy#------------------------------------------------------------------------------# This class handles enemy characters. It's used within the Game_Troop class# ($game_troop).#==============================================================================class Game_Enemy < Game_Battler #-------------------------------------------------------------------------- # * New method: atk_animation_id1 #-------------------------------------------------------------------------- def atk_animation_id1 enemy.note =~ /<ATTACK ANIM(?:ATION): (d+)>/i ? $1.to_i : 1 end #-------------------------------------------------------------------------- # * New method: atk_animation_id2 #-------------------------------------------------------------------------- def atk_animation_id2 return 0 endend#==============================================================================# ** Game_Interpreter#------------------------------------------------------------------------------# An interpreter for executing event commands. This class is used within the# Game_Map, Game_Troop, and Game_Event classes.#==============================================================================class Game_Interpreter #-------------------------------------------------------------------------- # * Alias method: comment_call #-------------------------------------------------------------------------- alias :comment_call_ve_actor_battlers :comment_call def comment_call change_battler_name change_battler_hue change_position comment_call_ve_actor_battlers end #-------------------------------------------------------------------------- # * New method: change_battler_name #-------------------------------------------------------------------------- def change_battler_name note.scan(/<BATTLER NAME (d+): ([^><]*)>/i) do |id, name| $game_actors[id.to_i].battler_name = name end end #-------------------------------------------------------------------------- # * New method: change_battler_hue #-------------------------------------------------------------------------- def change_battler_hue note.scan(/<BATTLER HUE (d+): (d+)>/i) do |id, hue| $game_actors[id.to_i].battler_hue = hue end end #-------------------------------------------------------------------------- # * New method: change_position #-------------------------------------------------------------------------- def change_position regexp = /<BATTLER POSITION (d+): (d+) *, *(d+)>/i note.scan(regexp) do |i, x, y| $game_custom_positions[i.to_i][:x] = x.to_i $game_custom_positions[i.to_i][:y] = y.to_i end endend#==============================================================================# ** Spriteset_Battle#------------------------------------------------------------------------------# This class brings together battle screen sprites. It's used within the# Scene_Battle class.#==============================================================================class Spriteset_Battle #-------------------------------------------------------------------------- # * Overwrite method: create_actors #-------------------------------------------------------------------------- def create_actors @actor_sprites = $game_party.battle_members.reverse.collect do |actor| Sprite_Battler.new(@viewport1, actor) end @actors_party = $game_party.battle_members.dup end #-------------------------------------------------------------------------- # * Overwrite method: update_actors #-------------------------------------------------------------------------- def update_actors update_party if $game_party.battle_members != @actors_party @actor_sprites.each {|sprite| sprite.update } end #-------------------------------------------------------------------------- # * New method: update_party #-------------------------------------------------------------------------- def update_party @actor_sprites.each_index do |i| next if $game_party.battle_members.include?(@actor_sprites[i].battler) @actor_sprites[i].dispose @actor_sprites[i] = nil end $game_party.battle_members.collect do |actor| next if @actors_party.include?(actor) @actor_sprites.push(Sprite_Battler.new(@viewport1, actor)) end @actor_sprites.compact! @actors_party = $game_party.battle_members.dup $game_party.battle_members.each do |actor| old_position = [actor.screen_x, actor.screen_y] actor.setup_position if old_position != [actor.screen_x, actor.screen_y] sprite(actor).start_effect(:appear) end end endend#==============================================================================# ** Scene_Battle#------------------------------------------------------------------------------# This class performs battle screen processing.#==============================================================================class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # * Overwrite method: show_attack_animation #-------------------------------------------------------------------------- def show_attack_animation(targets) show_normal_animation(targets, @subject.atk_animation_id1, false) show_normal_animation(targets, @subject.atk_animation_id2, true) endend
  5. Nome Script: Pop Up Oggetti e Monete Versione: N/D Autore/i: Raizen884 Informazioni: Il titolo credo sia chiaro e faccia intuire subito di cosa tratta lo script =) Quando si riceve un Oggetto o delle Monete, sopra il personaggio apparirà un Pop Up con l'icona e la quantità ricevuta ^^ Screenshots: Istruzioni: Inserite lo script sotto Material. Istruzioni all'interno dello script. Script: #===============================================================# Item Popup # Compativel com RMVXAce# Autor: Raizen884# É permitido postar em outros lugares contanto que não seja mudado# as linhas dos créditos.#===============================================================# Item Popup# Descrição: O Item Popup, é um efeito que ao receber itens# no decorrer do jogo, ele será mostrado sobre o personagemmodule Raizenpop#Switch que ativa o script, sempre que não quiser que esteja#ativado o efeito de popup, basta desligar o switch.SWITCH = 1# Ajuste em x, aqui da para posicionar a coordenada inicial que# o item pop-up fará. Valores menores aproximam o Item popup para a direita.PX = 40# Ajuste em y, aqui da para posicionar a coordenada inicial que# o item pop-up fará. Valores menores aproximam o Item popup para baixo.PY = 90# tempo que levará para sumir o item popup, o valor está em frames# em que 60frames = 1 segundoTIME = 40# distancia que subirá o item popup, medido em pixels, sendo que o valor# 0 desliga o movimento do item popup.DIST = 50# mostrar a quantidade de itens recebidos? Mostrar = true# Som que tocará quando for ativado o popup, caso não queira som algum coloque# duas aspas desse modo "" . Caso queira adicionar algum som, colocar na pasta# SE dentro da pasta Audio do projeto e colocar o nome do arquivo aqui.SOUND = "Chime2"# Som do popup de goldSOUND2 = "Coin"# Número do icone de gold.ICON = 361end# Aqui começa o script, modifique apenas se sabe o que esta fazendo.module SceneManager def self.raizen_initialize(item, n) @scene.raizen_initialize(item, n, Raizenpop::DIST) end def self.raizen_gold(n) @scene.raizen_gold(n, Raizenpop::DIST) endendclass Window_Popup < Window_Base def initialize(x, y, item, n, jy) super(x, y, x + 544, y + 416) self.opacity = 0 refresh(item, n, $game_player.screen_x - Raizenpop::PX, $game_player.screen_y - Raizenpop::PY + jy) end def refresh(item, n, x, y) self.contents.clear if n != 0 self.contents.font.size = 16 if item != 0 and item != nil draw_icon(item.icon_index, x, y) self.contents.draw_text(x + 0, y - 10, 100, 50, item.name, 1) self.contents.draw_text(x - 66, y + 10, 100, 50, "x", 2) if Raizenpop::Mostrar self.contents.draw_text(x - 46, y + 10, 100, 50, n, 2) if Raizenpop::Mostrar else draw_icon(Raizenpop::ICON, x, y) self.contents.draw_text(x + 26, y - 10, 100, 50, "x", 0) if Raizenpop::Mostrar self.contents.draw_text(x + 40, y - 10, 100, 50, n, 0) if Raizenpop::Mostrar end end endendclass Scene_Shop < Scene_MenuBase def raizen_initialize(item, n, jy) end def raizen_gold(g, jy) endendclass Game_Party < Game_Unit alias popup_item gain_item def gain_item(item, n, include_equip = false) popup_item(item, n, include_equip = false) if $game_switches[Raizenpop] == true SceneManager.raizen_initialize(item, n) RPG::SE.new(Raizenpop::SOUND).play end end def gain_gold(n) @gold = [[@gold + n, 0].max, 9999999].min SceneManager.raizen_gold(n) RPG::SE.new(Raizenpop::SOUND2).play end endclass Scene_Map < Scene_Base alias initializeraizen start alias raizen_call call_menu def start @popup = Window_Popup.new(0, 0, 0, 0, 0) initializeraizenend def raizen_initialize(item, n, jy) @popup.refresh(item, n, $game_player.screen_x - Raizenpop::PX, $game_player.screen_y - Raizenpop::PY + jy) @item = item ; @n = n ; @jy = jy end def raizen_gold(g, jy) @popup.refresh(0, g, $game_player.screen_x - Raizenpop::PX, $game_player.screen_y - Raizenpop::PY + jy) @n = g ; @jy = jy ; @item = 0 endalias raizen_update update def update raizen_update if @n != nil @jy -= 1 @contador = 0 if @jy == 2 if @jy >= 0 raizen_initialize(@item, @n, @jy) else @contador += 1 if @contador <= Raizenpop::TIME raizen_initialize(@item, @n, 0) else raizen_initialize(@item, 0, 0) @gold = nil @n = nil end end end endend
  6. Nome Script: MSX - Bars Type Versione: 1.0 Autore/i: Melosx Informazioni: Aggiunge due tipi di barre per personalizare di più i vostri menu... Ho pensato a questo script giocando a Skyrim... Screenshots: Istruzioni: Nello script. Script: #=============================================================================# ** MSX - Bars Type#=============================================================================# Autore: Melosx# Versione: 1.0 => 13-1-2012##=============================================================================# * Istruzioni#-----------------------------------------------------------------------------# Aggiunge due nuovi tipi di barre. Questi nuovi tipi vanno settati inserendo 0, 1 o 2 nel codice# che disegna le barre. di default è settato 0 cioè il tipo di barra di default.##==============================================================================class Window_Base < Window def draw_gauge(x, y, width, rate, color1, color2, type = 0) case type when 0 fill_w = (width * rate).to_i gauge_y = y + line_height - 8 contents.fill_rect(x, gauge_y, width, 6, gauge_back_color) contents.gradient_fill_rect(x, gauge_y, fill_w, 6, color1, color2) when 1 fill_w = (width * rate).to_i gauge_y = y + line_height - 8 gr_x = x + (width - fill_w) / 2 contents.fill_rect(x, gauge_y, width, 6, gauge_back_color) contents.gradient_fill_rect(gr_x, gauge_y, fill_w, 6, color1, color2) when 2 fill_w = (width * rate).to_i gauge_y = y + line_height - 8 gr_x = x + (width - fill_w) contents.fill_rect(x, gauge_y, width, 6, gauge_back_color) contents.gradient_fill_rect(gr_x, gauge_y, fill_w, 6, color1, color2) end end def draw_actor_hp(actor, x, y, width = 124, type = 0) draw_gauge(x, y, width, actor.hp_rate, hp_gauge_color1, hp_gauge_color2, type = 1) change_color(system_color) draw_text(x, y, 30, line_height, Vocab::hp_a) draw_current_and_max_values(x, y, width, actor.hp, actor.mhp, hp_color(actor), normal_color) end def draw_actor_mp(actor, x, y, width = 124, type = 0) draw_gauge(x, y, width, actor.mp_rate, mp_gauge_color1, mp_gauge_color2, type = 2) change_color(system_color) draw_text(x, y, 30, line_height, Vocab::mp_a) draw_current_and_max_values(x, y, width, actor.mp, actor.mmp, mp_color(actor), normal_color) end def draw_actor_tp(actor, x, y, width = 124, type = 0) draw_gauge(x, y, width, actor.tp_rate, tp_gauge_color1, tp_gauge_color2, type) change_color(system_color) draw_text(x, y, 30, line_height, Vocab::tp_a) change_color(tp_color(actor)) draw_text(x + width - 42, y, 42, line_height, actor.tp.to_i, 2) endend Demo:N/D Incompatibilità: Non ne ha, almeno credo... ho pensato a tutto...
  7. Nome Script: Equipment Requirements Versione: 1.2 Autore/i: Fomar0153 Informazioni: Consente di definire i requisiti per Armi e Armature, ed è possibile utilizzare sia il loro livello o una delle loro statistiche. Istruzioni: Inserite lo script sotto Material. Istruzioni all'interno dello script. Script: =beginEquipment Requirementsby Fomar0153Version 1.2----------------------Notes----------------------Adds a level requirement to equipment.----------------------Instructions----------------------Notetag the weapons/armors like so:<levelreq x><mhpreq x><mmpreq x><atkreq x><defreq x><matreq x><mdfreq x><agireq x><lukreq x><switchreq x><wepreq x><armreq x>----------------------Change Log----------------------1.0 -> 1.1 Added stat requirements Changed script name from Equipment Level Requirements to just Equipment Requirements1.1 -> 1.2 Added switch and other equipment requirements----------------------Known bugs----------------------None=endclass Game_BattlerBase #-------------------------------------------------------------------------- # ● If set to true then it compares the requirement with the actor's base # stat rather than their current. #-------------------------------------------------------------------------- EQUIPREQ_USE_BASE_STAT = true #-------------------------------------------------------------------------- # ● Check the requirements #-------------------------------------------------------------------------- alias level_equippable? equippable? def equippable?(item) return false unless item.is_a?(RPG::EquipItem) return false if @level < item.levelreq return false if reqstat(0) < item.mhpreq return false if reqstat(1) < item.mmpreq return false if reqstat(2) < item.atkreq return false if reqstat(3) < item.defreq return false if reqstat(4) < item.matreq return false if reqstat(5) < item.mdfreq return false if reqstat(6) < item.agireq return false if reqstat(7) < item.lukreq if item.switchreq > 0 return false unless $game_switches[item.switchreq] end if item.wepreq > 0 e = [] for equip in @equips if equip.is_weapon? e.push(equip.object.id) end end return false unless e.include?(item.wepreq) unless equip.object.nil? end if item.armreq > 0 e = [] for equip in @equips if equip.is_armor? e.push(equip.object.id) unless equip.object.nil? end end return false unless e.include?(item.armreq) end return level_equippable?(item) end #-------------------------------------------------------------------------- # ● New Method #-------------------------------------------------------------------------- def reqstat(id) if EQUIPREQ_USE_BASE_STAT return param_base(id) else return param(id) end endendmodule RPG #-------------------------------------------------------------------------- # ● Equip Item is inherited by both Weapon and Armor #-------------------------------------------------------------------------- class EquipItem def levelreq if self.note =~ /<levelreq (.*)>/i return $1.to_i else return 0 end end def mhpreq if self.note =~ /<mhpreq (.*)>/i return $1.to_i else return 0 end end def mmpreq if self.note =~ /<mmpreq (.*)>/i return $1.to_i else return 0 end end def atkreq if self.note =~ /<atkreq (.*)>/i return $1.to_i else return 0 end end def defreq if self.note =~ /<defreq (.*)>/i return $1.to_i else return 0 end end def matreq if self.note =~ /<matreq (.*)>/i return $1.to_i else return 0 end end def mdfreq if self.note =~ /<mdfreq (.*)>/i return $1.to_i else return 0 end end def agireq if self.note =~ /<agireq (.*)>/i return $1.to_i else return 0 end end def lukreq if self.note =~ /<lukreq (.*)>/i return $1.to_i else return 0 end end def switchreq if self.note =~ /<switchreq (.*)>/i return $1.to_i else return 0 end end def wepreq if self.note =~ /<wepreq (.*)>/i return $1.to_i else return 0 end end def armreq if self.note =~ /<armreq (.*)>/i return $1.to_i else return 0 end end endend
  8. Nome Script: Text Cache Versione: 1.0 Autore/i: Mithran Link post originale: Link Informazioni: Il VXAce ha portato nuove opzioni di personallizzazione delle scritte e con essi na marea di bug che rovinano la bellezza delle window. Questo script risolve tutti i bug portando le vostre scritte al loro vero splendore... Quindi ogni progetto dovrebbe averlo. Istruzioni: Copiatelo sotto Materials e sopra Main. Script: # Text Cache# by Mithran# posted at forums.rpgmakerweb.com# Instructions%Q(This script is a workaround for the Bitmap#draw_text issues in RPGMaker VX Ace.By default, there are several errors with Bitmap#draw_text in Ace.1. Text shrinking algorithm is overzealous. Text drawn to a rect given by its own text_size is reduced in size. This is both counterintuitive, and not the way it worked in previous versions (VX). 2. Text drawn to any rect wider than approx 640 pixels wraps around to the beginning of the line, overwriting previous text. This also causes center and right alignments to fail. This is both unnecessary and not how it worked in VX. 3. Text drawn character by character with non true-type fonts has awkward spacing. In addition, the text_size of a string of characters is not the same as the sum of the text_size of each character. This existed even in VX. 4. The first character of a Bitmap#draw_text command for certain letters on certain fonts is not drawn correctly. Since message window draws character by character, this can become a major issue. (example: Verdana 20 pt font) These errors can be demonstrated using my text draw debugger:http://pastebin.com/p55ukZP2 What this script does:1. Adds 2 pixels to any draw_text width, so text can be intuitively drawn to its own text_size rect. Offsets x coordinate where appropriate. If SIMPLE_FIX is set to true, only this fix will be enabled. 2. Adds a text cache. Instead of drawing text directly when called, a unique bitmap is created for any potential text draw with buffers, drawn with extra space around it. The character is then copied whenever a text draw is attempted. Text Caching can be turned off by setting SIMPLE_FIX to true. Text Caching also has the following features: - Much faster processing than the original Bitmap#draw_text. Trades a small amount of memory to accomodate faster processing speed. The first time any letter is drawn takes approximately 3-4 times as long, subsquently, any time this same letter and font is drawn it is upwards of twice as fast. The longer the string drawn, the bigger the difference. - Accounts for a 3-length string when checking the size. This makes single characters drawn look more natural for the offending fonts. Does not work with: - Reduced size text. If text is squeezed due to not being given enough room to draw, text caching is bypassed in favor of the original method. This is due to the text squeezing algorithm reducing each character by a variable amount that can not be determined with text_size. Manually stretching or aligning this "squeezed" text looks completely awful, so for now, this will have to stay like this. The exception to this is if the text has "just enough" room to draw, it will be given the two extra pixels rather than squeezing it. - If text extends beyond MAX_DRAW_WIDTH, text caching will be forced. This disables the "squeeze" effect. Using the default method means the text would draw over itself anyway, so this is the lesser of two evils. Changelog:v 1.01 Fixed crash error when using F12 to reset. (Thanks Archiea_Nessiah)v 1.0Official release.)# class Bitmap TEXT_TOP_BUFFER = 2 TEXT_SIDE_BUFFER = 8 # buffer in pixels to draw text away from # the edge of the bitmap, to prevent certain characters from being cut off SIMPLE_FIX = false # just adds the two pixels to prevent unnecessary squeeze MAX_TEXT_DRAW_WIDTH = 640 # tests have shown the draw fails at around 640px # if nil, no max width NO_FIX = false # completely disables the fix, for testing comparison alias draw_text_vxa draw_text def draw_text(*args) return draw_text_vxa(*args) if NO_FIX if args[0].is_a?(Rect) rect = args[0] x, y, width, height = rect.x, rect.y, rect.width, rect.height text = args[1].to_s.clone || "" align = args[2] || 0 else x, y, width, height = *args[0..3] text = args[4].to_s.clone || "" align = args[5] || 0 end text_rect = self.text_size(text) text_width = text_rect.width text_height = text_rect.height squeeze = text_width > width if SIMPLE_FIX or (squeeze and (MAX_TEXT_DRAW_WIDTH and width <= MAX_TEXT_DRAW_WIDTH)) x -= align # shift one pixels to the left if centering # two if right right justified # to offset the extra width given return draw_text_vxa(x, y, width + 2, height, text, align) else # TextCache.canvas(font) # passing the font slows this down extremly, changed it to later fontkey = self.font.to_a case align when 1; x += (width - text_width) / 2 when 2; x += width - text_width end y += (height - text_height) / 2 # horizontal center buf = -TEXT_SIDE_BUFFER text.each_char { |char| letter = TextCache.letters(fontkey, char) draw_text_vxa(x + buf, y, letter.rect.width + 2, letter.height, char) if SIMPLE_FIX # swap with original method for debugging and simple fix self.blt(x + buf, y, letter, letter.rect) unless SIMPLE_FIX buf += letter.rect.width - TEXT_SIDE_BUFFER * 2 } end endendmodule TextCache BUFFER_DRAW = 300 # for drawing characters, to make sure there is enough room def self.canvas(font = nil) @canvas = Bitmap.new(32, 32) if @canvas.nil? || @canvas.disposed? #@canvas.font = font if font and font != @canvas.font @canvas end def self.letters(font, char) @cache ||= {} key = font + [char] if include?(key) return @cache[key] elsif char.empty? return empty_bitmap else return new_letter(font, char) end end def self.empty_bitmap # not used, added for completness in case the cache is accessed directly @cache[:empty] = Bitmap.new(32, 32) unless include?(:empty) @cache[:empty] end def self.new_letter(fontary, char) font = create_font(fontary) # get the font canvas.font = font rect = canvas.text_size(char * 3) # get size of character between two other characters (for better kerning) b = Bitmap.new((rect.width / 3) + Bitmap::TEXT_SIDE_BUFFER * 2, rect.height) # create bitmap just big enough for one character b.font = font # get the font b.draw_text_vxa(rect.x - b.text_size(" ").width + Bitmap::TEXT_SIDE_BUFFER, rect.y - Bitmap::TEXT_TOP_BUFFER, BUFFER_DRAW, rect.height + Bitmap::TEXT_TOP_BUFFER * 2, " #{char} ", 0) # draw blank spaces before and after character, fix for cutting off the # first pixel using draw_text key = fontary + [char] @cache[key] = b end def self.create_font(fontary) font = Font.new(*fontary[0..1]) font.bold = fontary[2] font.italic = fontary[3] font.outline = fontary[4] font.shadow = fontary[5] font.color.set(*fontary[6..9]) font.out_color.set(*fontary[10..13]) font end def self.include?(key) @cache[key] && !@cache[key].disposed? end def self.clear @cache ||= {} @cache.clear GC.start end endclass Font # font's instance variables are not reflective, so this has to be defined explicitly def to_a [name, size, bold, italic, outline, shadow, color.red, color.green, color.blue, color.alpha, out_color.red, out_color.green, out_color.blue, out_color.alpha] end end Incompatibilità:N/D
  9. Nome Script: Picture Bug Fix Versione: Fix Bug Autore/i: Raizen884, Johnbolton, Gab! Informazioni: Quando una picture viene cancellata, gli script di rmvxace, mantengono un leggero ritardo di eliminazione di queste. La cosa non è percepibile con poche immagini, ma se ne usate ad esempio una decina, la cosa si noterà con freeze e lag. Per questo è stato creato questo piccolisismo script che fixerà questo piccolo (ma a quanto pare fastidioso), bug ^^ Pinno il topic per lasciarlo in evidenza Istruzioni: Inserite lo script sotto Material. Script: #=======================================================# Picture Bug Fix# Author : Raizen884# Creditss : JohnBolton, Gab!# The script will correct a fatal bug caused by image deleting,# the more images deleted caused a constant freeze and lag# to the game.#=======================================================# It is better for this script to go over every new script added# to the scripts, and below all the original RMVXA scripts#=======================================================class Sprite_Picture < Sprite def update super if @picture.name != "" update_bitmap update_origin update_position update_zoom update_other else self.bitmap.dispose if self.bitmap != nil end endend
  10. Un buon programma per creare windowskin ^^ Autore Sconosciuto Screen http://g.imagehost.org/0533/DEMO.png Download http://www.4shared.com/file/104239251/494514ac/Windowskin_Generator_11.html
  11. Ecco il programma( non richiede installazione, è solo un piccolo file ): Character_Maker_1999.zip Come potrete vedere, è stato tradotto in italiano da Lu-Chan( l'avevo infatti scaricato anni fa da Dream Maker, ora essendo down non posso scrivere nemmeno il link dal sito; se ciò andasse contro il volere di Lu-Chan, basta che me lo si faccia sapere e io rimuoverò prontamente il link, e magari ne farei una traduzione io stesso dalla versione inglese ). Quindi, per iniziare, dopo aver estratto il programma e averlo aperto, apparirà una finestra del genere: non c'è problema, è gratuito. Premete su Registrati e mettete i dati che volete( non ha importanza ) e premete Registrati sulla nuova finestra. Dopodiché vi chiederà di confermare e quindi premete su SI ed infine su OK. Non vi apparirà mai più. Quindi appena aperto non ci sono tante scelte. Proviamo a creare una nuova immagine. Ecco la finestra che apparirà: @La larghezza e l'altezza dell'immagine: il massimo spazio leggibile da Rpg Maker per un °Charset è 288x256 (LarghezzaxAltezza); °Chipset è 480x256; °Faceset è 192x192; °Battle(Battle Animation) è 480x384; @N di Colori: ovviamente per RPG Maker 2000/2003 deve essere 256col(8bit); @Opzioni - Copia corrente Palette ( serve a copiare la Tavolozza dei Colori dell'immagine attualmente aperta per poterla avere identica nella nuova immagine che si sta per creare ) Una volta premuto OK, vedremo sbloccati tutti i vari strumenti: Analizziamo velocemente cosa ci offre questo programma: (1) (2) (3) (4) (5) (6) (7)
  12. Girovagando per la rete(O_O),ho trovato questo sito(purtroppo in jap),che da la possibilità di creare dei bei face in stile anime Shoujo... Ecco a voi il link ^^ Autore http://lovelymoro.web.fc2.com/ Link http://lovelymoro.web.fc2.com/moromagalabo.html
  13. Ally

    ALTRO Devil Tools

    Suite completa di funzioni veramente utililissime per RPG Maker! Ecco alcuni esempi di ciò che potrete trovare nell'archivio. Tra l'altro è in arrivo pure uno Script Maker. Character Maker XP WAV to MP3 Converter Cartelle 2K(3) to XP Converter (Converte tutto ciò che è convertibile) Make Animations XP Make Animations 2K Make Charset Make Tileset Make Autotile Make Chipset Make Battler Make Faceset Make Windowskin ... E un sacco di altre features veramente interessanti ... Praticamente consente di rippare qualsiasi cosa, anche l'anima se riuscissi a fotografarla... DTSetup.zip (Si ringrazia Loppa per aver trovato i programmi)
  14. My Tankentai Creator Che cos'è My Tankentai Creator My Tankentai Creator è un programma utilizzato per creare le animazioni di combattimento personalizzate che possono essere utilizzate nel Battle System Tankentai per RPG Maker VX. Video dimostrativo Download (versione 1.0.1.0) Tankentai 1.0.1.0.zip
  15. Gemini Autori: ForeverZer0, Zeus81 Gemini è un IDE sviluppato per RMXP e VX da ForeverZer0. Legge e scrive direttamente file Scripts.r *data (non c'è bisogno di importare/esportare gli script in diversi file), ed è pieno di altre features. Purtroppo il creatore, troppo occupato con il suo progetto di creare un clone di RM, ARC, Gemini ha alcuni bug piuttosto fastidiosi (non elencati), ma per fortuna era open source. Proprio per questo, Zeus81, intenzionato a correggerne i bug, ne ha invece fatto un'altra versione e alla fine ha rifatto quasi tutto e ha aggiunto, tra le altre cose, la compatibilità con Ace :sbav Screenshots: Download: Gemini.zip Compatibilità: Per poter avviare il programma, è nevessario avere Microsoft .NET Framework 4 installato.
  16. Autore: mikb89 In giro ci sono un'infinità di character maker. Ognuno si differenzia per tool, per dimensione, per razza, per religione... Non contento, però, di tutti quelli che ci sono in giro, ho deciso di farmi il mio proprio character maker e, già che c'ero, cercare di renderlo il migliore (o quasi). Quello che mi è uscito fuori, alla vista, si presenta così: Il funzionamento si basa sul modello passo passo. Potete infatti vedere la finestra divisa in tre parti principali: la scelta iniziale delle parti del corpo, i settaggi di contorno e il risultato finale. C'è la scheda "Rifinisci" che, in futuro consentirà il pixel editing diretto del chara, ma momentaneamente non serve a nulla. Prima di dilungarmi in lunghi sproloqui su come usare il programma, vi metto il link, così potete provare direttamente. mikb89s Character Maker.zip Sulla lista immagini e la gestione delle cartelle La lista contiene le risoluzioni di immagini che volete. La grafica delle parti ovviamente dovrete inserirla voi, quindi potete decidere che dimensione seguire. A fianco dell'eseguibile, c'è la cartella "Data" e, all'interno, c'è "Charas". Dentro quest'ultima cartella basta crearne un'altra che ha per nome "WxH" dove, al posto di W va messa la larghezza delle immagini contenenti le parti e, al posto di H, l'altezza. Esempio "96x128" che è quella standard del VX. Qui ogni cartella crea un gruppo. Nell'immagine non si vede però. I gruppi saranno tipo "Capelli", "Occhi", ecc... Ultimo passo, all'interno di ogni cartella indicante un gruppo, potete mettere la grafica direttamente così come creare le due cartelle "Boy" e "Girl" per filtrare le immagini utilizzando i check del programma. Funzionamento del programma Per iniziare bisogna scegliere una lista, la 96x128, per esempio. Non ci sono limitazioni del tipo: 'i capelli vanno davanti la faccia e dietro i vestiti' o 'puoi mettere fino a tre accessori'. Puoi mettere tutto quello che vuoi, dove vuoi, e, una volta messo puoi spostarlo su e giù per decidere l'ordine in cui verrà visualizzato. Fai doppio click su un corpo, su un vestito, su quel che ti pare per inserirlo nella seconda lista. Lì, tramite drag'n'drop o coi tasti raffiguranti le frecce, puoi cambiare l'ordine. Il check a fianco di ogni pezzo ti consente invece di nasconderlo, mentre Togli lo rimuoverà del tutto. Per ricominciare invece c'è Svuota. Settaggi Qui non c'è chissà quale novità. Potete regolare i colori e spostare la grafica tramite i controlli sotto. Unica cosa da aggiungere è che vedete il settaggio direttamente nella lista. Nell'immagine per esempio io ho tinto di giallo il vestito e di azzurro i capelli (che sono venuti neri, vabè). Inoltre, fermandosi col mouse su un oggetto, apparirà un tooltip con lo spostamento di quell'immagine ("0,0" se non l'avete spostato). Fine Ultime banalità. Se per esempio il chara è per XP, regolate Animazioni a 4, così si animerà giusto. Per salvare il singolo chara cliccate Salva. Per aggiungere il chara a un'immagine già esistente, usate l'altro tasto. Non c'è bisogno che l'immagine abbia le dimensioni giuste, vengono adattate dal programma. Quindi se il vostro obiettivo è questo, salvate prima il singolo chara, poi quando ne fate un altro, cliccate Aggiungi a file e selezionate il chara salvato in precedenza che, automaticamente, avrà le dimensioni adatte ad ospitarne 8. Clicando sull'immagine finale, verrà eseguito uno zoom. Spero sia di vostro gradimento e, ove lo voleste, di ricevere consigli fighi su futuri sviluppi.
  17. Ally

    ALTRO Rumurumu v.1.1

    Rumurumu v.1.1 Rpg Uh! Maker Uh! Resources Uh! Manipulator Uh! Software per manipolare le risorse grafiche di Rpg Maker. Creato da 255 e pensato soprattutto per essere utilizzato in simbiosi con gli script RM2k/2k3 Graphics (320x240), sia per VX che per VX Ace. Questo software è distribuito senza alcuna garanzia. Questo software può essere distribuito creditando l'autore e senza altre restrizioni di alcun tipo. Download Rumurumu v.1.1.1.zip Istruzioni Rumurumu.exe (assieme alla relativa DLL e al file Rumurumu_batch.bat) va sistemato nella cartella principale del proprio progetto, ovvero nella cartella in cui si trovano il file Game.exe, la cartella Graphics, il file *.rvproj o *.rvproj2, eccetera. Il programma ha due modalità principali: 1) Normal mode (si attiva lanciando manualmente Rumurumu.exe) In questa modalità Rumurumu mostra una finestra sulla quale si possono trascinare immagini e cartelle. Il software automaticamente eseguirà delle operazioni sulle immagini trascinate sovrascrivendole. Le sottocartelle non vengono processate. Le operazioni attualmente sono: > conversione in PNG a 8 bit (256 colori) con eventuale cambio dell'estensione > creazione dello sfondo trasparente (opzionale) > conversione del charset da versione 2k a VX (solo immagini di dimensione 288x256 pixel) Rumurumu non chiede conferma e il processo di conversione inizia subito dopo aver rilasciato i file/le cartelle. Se convertite per sbaglio un charset con le pose già corrette, vi basterà trascinarlo nel programma per 3 volte e le direzioni cambieranno via via fino a tornare quelle originarie. 2) Copy and quit mode (si attiva lanciando il file Rumurumu_batch.bat) In questa modalità Rumurumu si apre senza mostrare nulla a schermo e senza richiedere l'intervento dell'utente. Il software cerca i file Game.rvproj2 o Game.rvproj per capire quale versione di Rpg Maker si sta utilizzando. Se uno dei file esiste, il programma copia il contenuto della cartella MidGraphics nella cartella Graphics (sovrascrivendo eventuali immagini con lo stesso nome) ridimensionando laddove necessario (secondo lo script RM2k/2k3 Graphics) e senza processare ulteriori sottocartelle e file che non sono immagini. In questo modo sarà più semplice utilizzare il suddetto script, evitando di copiare e ridimensionare ogni volta le risorse manualmente. Vengono processate le immagini con le seguenti estensioni. Normal mode: bmp png pbm ppm tga targa tif tiff gif Copy and quit mode: bmp jpg jif jpeg jpe png pbm ppm tga targa tif tiff gif Crediti Sviluppato da 255. mikb89 come betatester
  18. Nome Script: RM2k/2k3 Graphics Versione: 1.4 Autore/i: mikb89 Informazioni: Mi è capitato di pensare che mi piacerebbe avere la grafica degli rpg maker più vecchi ma, essendo scripter, avere la possibilità di usare il codice. Con questo script, potete usare la grafica disponibile per gli rpg maker 2k/2k3 che verrà via codice raddoppiata in dimensioni. Anche il testo stesso può, opzionalmente, riprendere l'effetto che aveva nei vecchi maker. I caratteri vengono presi da una tabella bitmap o da file separati e l'effetto colore usato è il classico, cioè, il colore non è quello che sta al centro del quadratino nella windowskin ma l'intero quadratino viene applicato al carattere. Screenshots: Istruzioni: A parte il copiare lo script, c'è da dire che ci vogliono due cartelle di grafica. Una chiamata MidGraphics, usata durante il debug e contenente le immagini originali, e la Graphics che contiene le immagini così come verranno viste all'interno del programma, quindi raddoppiate. In fase di distribuzione, bisogna togliere la Graphics e rinominare MidGraphics con questo nome, in modo da renderla la cartella effettiva. Riassunto: Mentre sviluppi il gioco: MidGraphics: contiene grafica vera e propria. Graphics: contiene la grafica a dimensioni doppie solo per il programma. Rilascio: Graphics -> Rimossa MidGraphics -> Graphics Per la gestione della grafica raddoppiata , 255 ha creato Rumurumu , uno straordinario tool che in maniera automatica e trasparente si occupa di gestire la cartella Graphics e di correggere la trasparenza di immagini in blocco! Grazie 255!!! Per importare direttamente i charset del 2k/2k3 potete inserire il simbolo # davanti al nome del file. Esempio: '#Chara1'. Così facendo lo script mostrerà correttamente le direzioni dei charset (i charset del 2k/2k3 hanno infatti posizioni diverse). Questa funzione è però DEPRECATA e infatti verrà rimossa al prossimo aggiornamento. Rumurumu invece si occuperà anche di questa conversione e, in futuro, della conversione dei chipset. Per il font , dentro System, c'è un file chiamato Font.png contenente i caratteri del testo. FontB.png sono i caratteri in grassetto, FontI.png quelli in corsivo e FontBI.png lo lascio alla vostra immaginazione. In alternativa , va creata una cartella Font dentro System, contenente le cartelle B, I e BI, e i file nel formato f + numero carattere. Ad esempio "f49.png" è lo zero. Le cartelle B, I e BI conterranno i file allo stesso modo. Allegato c'è un pacchetto con font fatti da me. Script: Visibile su Pastebin . Demo: Cartella Mediafire con l'ultima versione (sia demo ita e ing di 3 MB che RTP di 13 MB): http://www.mediafire.../?0s7e0cgtdu3sm Pacchetto Bitmap font v1.0: http://www.mediafire...ilzfyysj21m1syv Note dell'Autore: Consiglio di scaricare la demo o l'RTP anziché copiaincollare il codice in quanto vi evitate di dover sistemare le cartelle. Ringrazio 255 per tutto il lavoro che ha fatto!
  19. Nome Script: RM2k/2k3 Graphics (320x240) Versione: 1.4 Autore/i: mikb89 & 255 Informazioni: Versione per il VX Ace di questo script . Rende possibile l'utilizzo di grafica old style (RPG Maker 2000/2003), tileset 16x16 anziché 32x32. Lancia il gioco in risoluzione 320x240 ma con la finestra allargata a 640x480. È possibile sia mantenere i font del VX Ace sia avere quelli "old style". Screenshots: Istruzioni: Il contenuto del file zip è un template, ovvero un progetto da cui è possibile partire per creare il proprio gioco. Il modo di organizzare il vostro progetto è quello che segue. Su Graphics ci vanno le immagini ingrandite (dimensione normale di VX Ace), mentre su MidGraphics ci vanno le immagini in risoluzione RM2k/2k3 (dimezzate). Le immagini su Graphics servono solo all'editor per visualizzare correttamente i tileset, mentre testando il gioco l'EXE userà le immagini a dimensione ridotta che si trovano su MidGraphics. Lanciando il gioco fuori dal programma, al contrario, l'EXE andrà a leggere la cartella Graphic. Quindi quando volete fare la release del vostro gioco eliminate la cartella Graphics (magari backuppandola prima), e rinominate la cartella MidGraphics in Graphics. Per ridimensionare automaticamente le risorse (e altre comodità) potete utilizzare il fantastico Rumurumu . Per importare direttamente i charset del 2k/2k3 potete inserire il simbolo # davanti al nome del file. Esempio: '#Chara1'. Così facendo lo script mostrerà correttamente le direzioni dei charset (i charset del 2k/2k3 hanno infatti posizioni diverse). Questa funzione è però DEPRECATA e infatti verrà rimossa al prossimo aggiornamento. Rumurumu invece si occuperà anche di questa conversione e, in futuro, della conversione dei chipset. Per il font , dentro System, c'è un file chiamato Font.png contenente i caratteri del testo. FontB.png sono i caratteri in grassetto, FontI.png quelli in corsivo e FontBI.png lo lascio alla vostra immaginazione. In alternativa , va creata una cartella Font dentro System, contenente le cartelle B, I e BI, e i file nel formato f + numero carattere. Ad esempio "f49.png" è lo zero. Le cartelle B, I e BI conterranno i file allo stesso modo. Allegato c'è un pacchetto con font fatti da me. Script: Visibile su Pastebin . Demo: Template: http://www.mediafire.com/?xdba49176p12w Pacchetto Bitmap font v1.0: http://www.mediafire...ilzfyysj21m1syv Note dell'Autore: Consiglio di scaricare il template anziché copiaincollare il codice in quanto vi evitate di dover sistemare le cartelle.
  20. Ally

    ALTRO Hero Machine 3

    Parlando con in chat, è venuta fuori l'esigenza di creare dei battler. O più o meno qualcosa del genere, ma non è questo il punto. Cercando quindi battler generator, mi sono imbattuto in questo animale qua: Hero Machine 3 Una sua versione diversa la conoscevo ed era già buona, ma questo qui è spaventoso, così ho pensato bene di metterlo a disposizione di tutti. Sarebbe da fare una presentazione come si deve o perlomeno mettere qualche screen, ma non ho molto tempo In ogni caso è online, quindi vi basta cliccare sulla pagina per vederlo ^^ Metto un esempio per fare capire il tipo di grafica che ha: Immagine gentilmente fornita da ^^ E un esempio di immagine senza capo né coda per mostrare le potenzialità:
  21. Ally

    ALTRO VXAce HUD Designer

    VXAce HUD Designer alpha 0.2 Autore: Cidiomar R. Dias Jr Un semplice e facile programmire da usare in WYSIWYG. Un generatore di HUD online da utilizzare sul VXAce. Si può costruire un HUD con solo qualche clic! Tutto è fatto in drag & drop per la scelta delle opzioni e non è necessaria nessuna conoscenza di scripting (lo script è costruito con un solo clic). Per ora sono presenti solo poche opzioni, ma ne arriveranno presto altre. Link: http://vxace-hud-designer.herokuapp.com/ Testato su Chrome/Chromium (Webkit) e Firefox.
  22. Character Maker XP ITA V1.0 Il nome dice tutto, più che un gioco è un breve ma semplice programmino per creare dei chara compatibili per Rpg Maker xp, l'ho fatto assemblando alcuni script reperiti da qualche vecchio sito in fase di chiusura e dimenticato dal mondo (si insomma, un sito archeologico) e poi beh... è tramite questo video che NoxChibi mi ha proposto d'imbucarmi qui in forum. Video introduttivo: Questa è la versione 1.0 ma non la definitiva, giusto perchè con buona probabilità potrei aggiungere nuovi set grafici e magari apportare qualche altra modifica per renderlo ancora migliore, benchè credo più semplice da usare di così non si possa fare xD Spero che vi piaccia e che possa essere utile a chi vuole creare qualche nuovo modellino facile facile ^^ Download: Character Maker XP V1.0.zip
  23. Ally

    ALTRO Extension Changer

    Extension Changer, è un programmino molto utile per modificare in massa le estensioni di molti file contemporaneamente. Le istruzioni solo all'interno del file ^^ Autore: Yehia A.Salam Extension Changer.zip
  24. Ally

    ALTRO DreaMaker

    DreaMaker è un programmino molto utile in grado di estrapolare le mappe di un gioco di RPG Maker 2k/2k3 e convertirle in un unico file TXT dove verrano raccolti tutti i messaggi, anche degli eventi comuni e delle battaglie. In questo modo è possibile modificarli velocemente e poi reinserirli nel gioco reimportandoli nelle mappe sempre tramite DreaMaker. E' possibile quindi effettuare correzioni e traduzioni molto velocemente. Basta seguire i passaggi semplici del programma in Dos: 1- convertire le mappe in formato DreaMaker 2- Estrarre i dialoghi 3- importare di nuovo di dialoghi modificati nelle mappe 4- convertire le mappe in formato RPG Maker Nota: non modificate le mappe con RPG Maker prima di reinserire i dialoghi altrimenti si verificherà un problema di incompatibilità! Autore: King Kadelfek Traduzione in lingua Italiana: mikb89 DreaMaker-v3.8.zip
×