-
Posts
815 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Posts posted by Morshudiego
-
-
Chiami la windowskin "Window" e la metti in System.
-
XD hai avuto la mia stessa idea riguardo ai faceset! (solo che io uso i charset ^^)
-
a.. capito grazie del chiarimento XD
quando vuoi amico ^^
-
Facciamo un esempio di un evento...
<>Ciao cosa guardi?
<>Guardo quel masso che ti sta schiacciando
<>Condizione SE: Eroe girato a sinistra
<>Lo evitato per miracolo
ELSE
<>Chiama Script: events_touching(ID 1° Evento, ID 2° Evento)
<>Dhoo!
Fine
____________________
e parte l'evento 2 (il masso) se non ti giri a sinistra
o capito bene?
(_-_)
non proprio... questo script ricrea ciò che si può già fare con l'eroe.
Una cosa del tipo così:
"Hai spinto la pietra."
Condizione se: events_touching(1,3)
<>La pietra ha toccato il pulsante.
altrimenti
<>La pietra non ha toccato il pulsante
fine
-
Dimmi peer piacere potenza ram e nome voltaggi della cpu!
A me regge almeno come minimo 30 eventi parallerim massimo 150
e lo script a me va veloce come sempre!!!
Orca O.O Che hai, un moster jam? XD
Comunque ho un:
Pentilum® D CPU 2.80GHz
2.80 GHz, 1,50GB di RAM
-
Che funziona olo con l'airship noin è vero perchè ho spiegato come si fa' senza al primo post!
Per il resto purtroppo ti devo dare raggione!!!
ah si scusa non l'avevo visto :P, comunque non avrebbe senso a causa degli sprite.
Mi sono dimenticato, comunque, che da un lag pazzesco. (io che ho un computer buono, regge più di 10 eventi paralleli con grafica senza lag... mi è arrivato a 13 FPS)
-
???
Arrivo subito alla spiegazione della mia risposta.
Il Mode7 del VX funziona solo con l'airship, e ho visto pochi giochi che sfruttano l'airship base del VX.
Poi un'altra brutta cosa: se si hanno degli eventi grafici mentre si usa l'airship, essi vengono comunque rappresentati come se si fosse in 2D, quindi vedrete molti eventi volare nel vuoto sempre con la stessa immagine.
A mio parere non mi sembra un buon script :|
-
Me l'aspettavo che qualcuno lo postasse...
e io rispondo:
http://www.gobblin.net/wp-content/uploads/2009/08/darth_vader_noooo1.jpg
-
-
Secondo me è uno script un po' inutile. Facilita troppo la creazione di crediti (che perdono originalità).
Consiglio di farvi delle picture e di progettarlo voi :D
-
potresti farlo con dei "Mostra immagine"
-
A ok.. grazie per la spiegazione.. quindi in poche parole l'elimina evento e quasi inutile? (se non del tutto inutile)
No, non è inutile. Semplicemente è un metodo per terminare il processo dell'evento.
per esempio:
Mostra testoMostra sceltaSe si@ fai qualcosaSe no@ elimina eventosetta variabilemostra testo
Quando seleziono no, il processo termina. Se non ci fosse l'elimina evento si continuerebbe col processo al di sotto della scelta.
capito a cosa serve? ^^
-
Ciao a tutti...
Oggi mi sono messo a creare un progetto, ma neanche ho iniziato che arrivo al primo problema..
quando faccio un evento non si ferma quando finisce e ricomincia da capo.. come faccio a fermare un evento in modo definitivo??..
Ecco come ho fatto ma non funziona.. continua sempre a ripeterlo all'infinito
http://img46.imageshack.us/img46/6171/75581086.png
Ho sbaiato qualcosa?
Aiutatemi plez.. so nuovo nel campo rpg e non so nada..
Tu hai usato Elimina evento, che non lo elimina definitivamente, ma elimina il suo processo, che riparte subito dopo a causa dell'autorun.
Hai due opzioni:
1) usi il comando Cancella evento (In Marrone) che cancella l'evento. Non è utile se dovrai rientrare di nuovo nella mappa.
2) attivi uno switch locale che concatena l'attivazione di una seconda pagina dell'evento che non è autorun.
EDIT: dopo tre secondi hai postato te kingartur2 XD
-
D: Nel database, nella pagina delle abilità giù in fondo dopo il danno compiuto dalla mossa ci sono le voci "Attack F" e "Spirit F" cercando su internet mi è parso di capire che indicano quanto i valori Attacco e Spirito influenzano l'effetto di quella determinata mossa (può darsi che mi sia sbagliato), se è effettivamente così, quei valori ricorrono ad una percentuale o cosa?
Attack F è la percentuale di attacco applicata all'abilità (es: 100=attacco normale).
Stessa cosa Spirit F ma al posto dell'attacco si conta l'intelligenza.
-
L'unica teoria è questa: stai usando una versione babbana di RPGVX
a me non si impalla quando imposto un attacco con condizione dello switch.
Che patch stai usando sul tuo RMVX?
-
Versione 1.0?
Are you shitting me???provate la nuova 3.0
#===============================================================# ● [VX] ◦ Neo Save System III ◦ □#--------------------------------------------------------------# ◦ by Woratana [woratana@hotmail.com]# ◦ Thaiware RPG Maker Community# ◦ Released on: 15/02/2009# ◦ Version: 3.0#--------------------------------------------------------------# ◦ Log III:# - Change back to draw tilemap as screenshot. Don't need any image.# - For drawing tilemap, the characters won't show on the tilemap.#--------------------------------------------------------------# ◦ Log II:# - Screenshot DLL is not work with Vista Aero, so I remove it# and use image for each map instead of screenshot.# - Actor's level in last version (V.1) is incorrect.#--------------------------------------------------------------# ◦ Features:# - Unlimited save slots, you can choose max save slot# - You can use image for scene's background# - Choose your save file's name, and folder to store save files# - Choose to show only information you want# - Editable text for information's title# - Draw tilemap for map that player is currently in.# - Remove text you don't want from map's name (e.g. tags for special script)# - Choose map that you don't want to show its name# - Include save confirmation window before overwrite old save#================================================================= module Wora_NSS #========================================================================== # * START NEO SAVE SYSTEM - SETUP #-------------------------------------------------------------------------- NSS_WINDOW_OPACITY = 255 # All windows' opacity (Lowest 0 - 255 Highest) # You can change this to 0 in case you want to use image for background NSS_IMAGE_BG = '' # Background image file name, it must be in folder Picture. # use '' for no background NSS_IMAGE_BG_OPACITY = 255 # Opacity for background image MAX_SAVE_SLOT = 20 # Max save slots no. SLOT_NAME = 'SLOT {id}' # Name of the slot (show in save slots list), use {id} for slot ID SAVE_FILE_NAME = 'Saveslot{id}.rvdata' # Save file name, you can also change its file type from .rvdata to other # use {id} for save slot ID SAVE_PATH = '' # Path to store save file, e.g. 'Save/' or '' (for game folder) SAVED_SLOT_ICON = 133 # Icon Index for saved slot EMPTY_SLOT_ICON = 141 # Icon Index for empty slot EMPTY_SLOT_TEXT = '-NO DATA-' # Text to show for empty slot's data DRAW_GOLD = true # Draw Gold DRAW_PLAYTIME = true # Draw Playtime DRAW_LOCATION = true # Draw location DRAW_FACE = true # Draw Actor's face DRAW_LEVEL = true # Draw Actor's level DRAW_NAME = true # Draw Actor's name PLAYTIME_TEXT = 'Play Time: ' GOLD_TEXT = 'Gold: ' LOCATION_TEXT = 'Location: ' LV_TEXT = 'Lv ' MAP_NAME_TEXT_SUB = %w{} # Text that you want to remove from map name, # e.g. %w{[LN] [DA]} will remove text '[LN]' and '[DA]' from map name MAP_NO_NAME_LIST = [] # ID of Map that will not show map name, e.g. [1,2,3] MAP_NO_NAME_NAME = '??????????' # What you will use to call map in no name list MAP_BORDER = Color.new(0,0,0,200) # Map image border color (R,G,B,Opacity) FACE_BORDER = Color.new(0,0,0,200) # Face border color ## SAVE CONFIRMATION WINDOW ## SFC_Text_Confirm = 'Confirm to save' # Text to confirm to save file SFC_Text_Cancel = 'Cancel' # Text to cancel to save SFC_Window_Width = 200 # Width of Confirmation Window SFC_Window_X_Offset = 0 # Move Confirmation Window horizontally SFC_Window_Y_Offset = 0 # Move Confirmation Window vertically #---------------------------------------------------------------------- # END NEO SAVE SYSTEM - SETUP #=========================================================================end class Scene_File < Scene_Base include Wora_NSS attr_reader :window_slotdetail #-------------------------------------------------------------------------- # * Start processing #-------------------------------------------------------------------------- def start super create_menu_background if NSS_IMAGE_BG != '' @bg = Sprite.new @bg.bitmap = Cache.picture(NSS_IMAGE_BG) @bg.opacity = NSS_IMAGE_BG_OPACITY end @help_window = Window_Help.new command = [] (1..MAX_SAVE_SLOT).each do |i| command << SLOT_NAME.clone.gsub!(/{ID}/i) { i.to_s } end @window_slotdetail = Window_NSS_SlotDetail.new @window_slotlist = Window_SlotList.new(160, command) @window_slotlist.y = @help_window.height @window_slotlist.height = Graphics.height - @help_window.height @help_window.opacity = NSS_WINDOW_OPACITY @window_slotdetail.opacity = @window_slotlist.opacity = NSS_WINDOW_OPACITY # Create Folder for Save file if SAVE_PATH != '' Dir.mkdir(SAVE_PATH) if !FileTest.directory?(SAVE_PATH) end if @saving @index = $game_temp.last_file_index @help_window.set_text(Vocab::SaveMessage) else @index = self.latest_file_index @help_window.set_text(Vocab::LoadMessage) (1..MAX_SAVE_SLOT).each do |i| @window_slotlist.draw_item(i-1, false) if !@window_slotdetail.file_exist?(i) end end @window_slotlist.index = @index # Draw Information @last_slot_index = @window_slotlist.index @window_slotdetail.draw_data(@last_slot_index + 1) end #-------------------------------------------------------------------------- # * Termination Processing #-------------------------------------------------------------------------- def terminate super dispose_menu_background unless @bg.nil? @bg.bitmap.dispose @bg.dispose end @window_slotlist.dispose @window_slotdetail.dispose @help_window.dispose end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super if !@confirm_window.nil? @confirm_window.update if Input.trigger?(Input::C) if @confirm_window.index == 0 determine_savefile @confirm_window.dispose @confirm_window = nil else Sound.play_cancel @confirm_window.dispose @confirm_window = nil end elsif Input.trigger?(Input::B) Sound.play_cancel @confirm_window.dispose @confirm_window = nil end else update_menu_background @window_slotlist.update if @window_slotlist.index != @last_slot_index @last_slot_index = @window_slotlist.index @window_slotdetail.draw_data(@last_slot_index + 1) end @help_window.update update_savefile_selection end end #-------------------------------------------------------------------------- # * Update Save File Selection #-------------------------------------------------------------------------- def update_savefile_selection if Input.trigger?(Input::C) if @saving and @window_slotdetail.file_exist?(@last_slot_index + 1) Sound.play_decision text1 = SFC_Text_Confirm text2 = SFC_Text_Cancel @confirm_window = Window_Command.new(SFC_Window_Width,[text1,text2]) @confirm_window.x = ((544 - @confirm_window.width) / 2) + SFC_Window_X_Offset @confirm_window.y = ((416 - @confirm_window.height) / 2) + SFC_Window_Y_Offset else determine_savefile end elsif Input.trigger?(Input::B) Sound.play_cancel return_scene end end #-------------------------------------------------------------------------- # * Execute Save #-------------------------------------------------------------------------- def do_save file = File.open(make_filename(@last_slot_index), "wb") write_save_data(file) file.close $scene = Scene_Map.new end #-------------------------------------------------------------------------- # * Execute Load #-------------------------------------------------------------------------- def do_load file = File.open(make_filename(@last_slot_index), "rb") read_save_data(file) file.close $scene = Scene_Map.new RPG::BGM.fade(1500) Graphics.fadeout(60) Graphics.wait(40) @last_bgm.play @last_bgs.play end #-------------------------------------------------------------------------- # * Confirm Save File #-------------------------------------------------------------------------- def determine_savefile if @saving Sound.play_save do_save else if @window_slotdetail.file_exist?(@last_slot_index + 1) Sound.play_load do_load else Sound.play_buzzer return end end $game_temp.last_file_index = @last_slot_index end #-------------------------------------------------------------------------- # * Create Filename # file_index : save file index (0-3) #-------------------------------------------------------------------------- def make_filename(file_index) return SAVE_PATH + SAVE_FILE_NAME.gsub(/{ID}/i) { (file_index + 1).to_s } end #-------------------------------------------------------------------------- # * Select File With Newest Timestamp #-------------------------------------------------------------------------- def latest_file_index latest_index = 0 latest_time = Time.at(0) (1..MAX_SAVE_SLOT).each do |i| file_name = make_filename(i - 1) next if !@window_slotdetail.file_exist?(i) file_time = File.mtime(file_name) if file_time > latest_time latest_time = file_time latest_index = i - 1 end end return latest_index endend class Window_SlotList < Window_Command #-------------------------------------------------------------------------- # * Draw Item #-------------------------------------------------------------------------- def draw_item(index, enabled = true) rect = item_rect(index) rect.x += 4 rect.width -= 8 icon_index = 0 self.contents.clear_rect(rect) if $scene.window_slotdetail.file_exist?(index + 1) icon_index = Wora_NSS::SAVED_SLOT_ICON else icon_index = Wora_NSS::EMPTY_SLOT_ICON end if !icon_index.nil? rect.x -= 4 draw_icon(icon_index, rect.x, rect.y, enabled) # Draw Icon rect.x += 26 rect.width -= 20 end self.contents.clear_rect(rect) self.contents.font.color = normal_color self.contents.font.color.alpha = enabled ? 255 : 128 self.contents.draw_text(rect, @commands[index]) end def cursor_down(wrap = false) if @index < @item_max - 1 or wrap @index = (@index + 1) % @item_max end end def cursor_up(wrap = false) if @index > 0 or wrap @index = (@index - 1 + @item_max) % @item_max end endend class Window_NSS_SlotDetail < Window_Base include Wora_NSS def initialize super(160, 56, 384, 360) @data = [] @exist_list = [] @bitmap_list = {} @map_name = [] end def dispose dispose_tilemap super end def draw_data(slot_id) contents.clear # 352, 328 dispose_tilemap load_save_data(slot_id) if @data[slot_id].nil? if @exist_list[slot_id] save_data = @data[slot_id] # DRAW SCREENSHOT~ contents.fill_rect(0,30,352,160, MAP_BORDER) create_tilemap(save_data['gamemap'].data, save_data['gamemap'].display_x, save_data['gamemap'].display_y) if DRAW_GOLD # DRAW GOLD gold_textsize = contents.text_size(save_data['gamepar'].gold).width goldt_textsize = contents.text_size(GOLD_TEXT).width contents.font.color = system_color contents.draw_text(0, 0, goldt_textsize, WLH, GOLD_TEXT) contents.draw_text(goldt_textsize + gold_textsize,0,200,WLH, Vocab::gold) contents.font.color = normal_color contents.draw_text(goldt_textsize, 0, gold_textsize, WLH, save_data['gamepar'].gold) end if DRAW_PLAYTIME # DRAW PLAYTIME hour = save_data['total_sec'] / 60 / 60 min = save_data['total_sec'] / 60 % 60 sec = save_data['total_sec'] % 60 time_string = sprintf("%02d:%02d:%02d", hour, min, sec) pt_textsize = contents.text_size(PLAYTIME_TEXT).width ts_textsize = contents.text_size(time_string).width contents.font.color = system_color contents.draw_text(contents.width - ts_textsize - pt_textsize, 0, pt_textsize, WLH, PLAYTIME_TEXT) contents.font.color = normal_color contents.draw_text(0, 0, contents.width, WLH, time_string, 2) end if DRAW_LOCATION # DRAW LOCATION lc_textsize = contents.text_size(LOCATION_TEXT).width mn_textsize = contents.text_size(save_data['map_name']).width contents.font.color = system_color contents.draw_text(0, 190, contents.width, WLH, LOCATION_TEXT) contents.font.color = normal_color contents.draw_text(lc_textsize, 190, contents.width, WLH, save_data['map_name']) end # DRAW FACE & Level & Name save_data['gamepar'].members.each_index do |i| actor = save_data['gameactor'][save_data['gamepar'].members[i].id] face_x_base = (i*80) + (i*8) face_y_base = 216 lvn_y_plus = 10 lv_textsize = contents.text_size(actor.level).width lvt_textsize = contents.text_size(LV_TEXT).width if DRAW_FACE # Draw Face contents.fill_rect(face_x_base, face_y_base, 84, 84, FACE_BORDER) draw_face(actor.face_name, actor.face_index, face_x_base + 2, face_y_base + 2, 80) end if DRAW_LEVEL # Draw Level contents.font.color = system_color contents.draw_text(face_x_base + 2 + 80 - lv_textsize - lvt_textsize, face_y_base + 2 + 80 - WLH + lvn_y_plus, lvt_textsize, WLH, LV_TEXT) contents.font.color = normal_color contents.draw_text(face_x_base + 2 + 80 - lv_textsize, face_y_base + 2 + 80 - WLH + lvn_y_plus, lv_textsize, WLH, actor.level) end if DRAW_NAME # Draw Name contents.draw_text(face_x_base, face_y_base + 2 + 80 + lvn_y_plus - 6, 84, WLH, actor.name, 1) end end else contents.draw_text(0,0, contents.width, contents.height - WLH, EMPTY_SLOT_TEXT, 1) end end def load_save_data(slot_id) file_name = make_filename(slot_id) if file_exist?(slot_id) or FileTest.exist?(file_name) @exist_list[slot_id] = true @data[slot_id] = {} # Start load data file = File.open(file_name, "r") @data[slot_id]['time'] = file.mtime @data[slot_id]['char'] = Marshal.load(file) @data[slot_id]['frame'] = Marshal.load(file) @data[slot_id]['last_bgm'] = Marshal.load(file) @data[slot_id]['last_bgs'] = Marshal.load(file) @data[slot_id]['gamesys'] = Marshal.load(file) @data[slot_id]['gamemes'] = Marshal.load(file) @data[slot_id]['gameswi'] = Marshal.load(file) @data[slot_id]['gamevar'] = Marshal.load(file) @data[slot_id]['gameselfvar'] = Marshal.load(file) @data[slot_id]['gameactor'] = Marshal.load(file) @data[slot_id]['gamepar'] = Marshal.load(file) @data[slot_id]['gametro'] = Marshal.load(file) @data[slot_id]['gamemap'] = Marshal.load(file) @data[slot_id]['total_sec'] = @data[slot_id]['frame'] / Graphics.frame_rate @data[slot_id]['map_name'] = get_mapname(@data[slot_id]['gamemap'].map_id) file.close else @exist_list[slot_id] = false @data[slot_id] = -1 end end def make_filename(file_index) return SAVE_PATH + SAVE_FILE_NAME.gsub(/{ID}/i) { (file_index).to_s } end def file_exist?(slot_id) return @exist_list[slot_id] if !@exist_list[slot_id].nil? @exist_list[slot_id] = FileTest.exist?(make_filename(slot_id)) return @exist_list[slot_id] end def get_mapname(map_id) if @map_data.nil? @map_data = load_data("Data/MapInfos.rvdata") end if @map_name[map_id].nil? if MAP_NO_NAME_LIST.include?(map_id) @map_name[map_id] = MAP_NO_NAME_NAME else @map_name[map_id] = @map_data[map_id].name MAP_NAME_TEXT_SUB.each_index do |i| @map_name[map_id].sub!(MAP_NAME_TEXT_SUB[i], '') end end end return @map_name[map_id] end def create_tilemap(map_data, ox, oy) @viewport = Viewport.new(self.x + 2 + 16, self.y + 32 + 16, 348,156) @viewport.z = self.z @tilemap = Tilemap.new(@viewport) @tilemap.bitmaps[0] = Cache.system("TileA1") @tilemap.bitmaps[1] = Cache.system("TileA2") @tilemap.bitmaps[2] = Cache.system("TileA3") @tilemap.bitmaps[3] = Cache.system("TileA4") @tilemap.bitmaps[4] = Cache.system("TileA5") @tilemap.bitmaps[5] = Cache.system("TileB") @tilemap.bitmaps[6] = Cache.system("TileC") @tilemap.bitmaps[7] = Cache.system("TileD") @tilemap.bitmaps[8] = Cache.system("TileE") @tilemap.map_data = map_data @tilemap.ox = ox / 8 + 99 @tilemap.oy = oy / 8 + 90 end def dispose_tilemap unless @tilemap.nil? @tilemap.dispose @tilemap = nil end endend class Scene_Title < Scene_Base def check_continue file_name = Wora_NSS::SAVE_PATH + Wora_NSS::SAVE_FILE_NAME.gsub(/{ID}/i) { '*' } @continue_enabled = (Dir.glob(file_name).size > 0) endend#======================================================================# END - NEO SAVE SYSTEM by Woratana#====================================================================== -
Scusa giusto per darti un consiglio:
quando lo devi richiamare su mappa, non puoi inserire le istruzioni direttamente sotto l'if dell'input senza riscrivere il def update_scene_change.
Se non hai capito leggi come avresti potuto fare e confronatalo con il tuo.
def update diegozz_update if Input.trigger?(Input::F5) and not $game_player.moving and not $game_map.interpreter.running? and $TEST Sound.play_decision $scene = Diegozz_Debug endend
NB : la variabile $TEST è su true se il gioco è in modalità debug(quella attivata da rpg maker)
Si è vero può essere semplificato, ma più che altro lo volevo integrare col basilare update di scene della classe Scene_Map
Grazie per avermi ricordato che posso fare tutto in una "if" riguardo al controllo di $TEST.
Upgrade alla 1.1 e credito di kingartur2
-
S4League: Stilysh eSper Shooting Sport
Gioco multiplayer Futuristic TPS per PC.
Troppo bello :D
-
Debug Scriptt
Descrizione
Questo script permette di avere alcune funzioni speciali mentre si testa il gioco. Comprende:- Salvataggio- 50000 Gold- Tutti gli oggetti- Tutte le armi- Tutte le armature- Level Up Generale (Grazie per avermelo ricordato Guardian ^^)v 1.1: lo script riconosce automaticamente se in test o no.Autore
Morshudiego aka Diegozz95Allegati
N/AIstruzioni per l'uso
Inserite questo script in una qualsiasi parte della sezione "materiali". Durante il gioco premete f5 per attivare il menu.#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/# ° Morshudiego's Debug Script (RPG2s) www.rpg2s.net# ° Data: 24 Febbraio 2010# ° Condizioni d'uso: Crediti nel Gioco.# ° Versione: 1.1#_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|# ° v 1.1# ° Lo script identifica automaticamente se si gioca in test o no.# (Ringrazio kingartur2)## ° v 1.0# ° Plug & Play# ° 6 opzioni disponibili: Salva, Gold, Armi, Oggetti, Armature, Livello#_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|# ° ISTRUZIONI D'USO# Piazzate sopra la classe Main (difficilmente creerà conflitti.)# Nel gioco premete F5 per entrare nel menù del debug.# Il debug comprende: Salvataggio, Aggiungi gold, Tutte gli oggetti, armi,# armature e level up.#_______________________________________ class Diegozz_Debug < Scene_Base #-------------------------------------------------------------------------- # * Object Initialization # menu_index : command cursor's initial position #-------------------------------------------------------------------------- def initialize (posizione_cursore = 0) @posizione_cursore = posizione_cursore end #-------------------------------------------------------------------------- # * Start processing #-------------------------------------------------------------------------- def start super @sfondo = Sprite.new @sfondo.bitmap = $game_temp.background_bitmap @sfondo.color.set(16, 16, 16, 128) crea_comandi_finestra end #-------------------------------------------------------------------------- # * Termination Processing #-------------------------------------------------------------------------- def terminate super @sfondo.dispose @finestra_comandi.dispose end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super @finestra_comandi.update update_comandi_finestra end #-------------------------------------------------------------------------- # * Create Command Window #-------------------------------------------------------------------------- def crea_comandi_finestra s1 = 'Salva' s2 = '50000 Gold' s3 = 'Tutti gli Oggetti' s4 = 'Tutte le Armi' s5 = 'Tutte le Armature' s6 = 'Livello +1' @finestra_comandi = Window_Command.new(160, [s1, s2, s3, s4, s5, s6]) @finestra_comandi.x = (544 - 160) / 2 @finestra_comandi.y = (416 - @finestra_comandi.height) / 2 @finestra_comandi.index = @posizione_cursore end #-------------------------------------------------------------------------- # * Update Command Selection #-------------------------------------------------------------------------- def update_comandi_finestra if Input.trigger?(Input::B) Sound.play_cancel $scene = Scene_Map.new elsif Input.trigger?(Input::C) Sound.play_decision case @finestra_comandi.index when 0 $scene = Scene_File.new(true,false,true) when 1 Sound.play_decision $game_party.gain_gold(50000) $scene = Scene_Map.new when 2 Sound.play_decision for i in 0...$data_items.size $game_party.gain_item($data_items[i],99) end $scene = Scene_Map.new when 3 Sound.play_decision for i in 0...$data_weapons.size $game_party.gain_item($data_weapons[i],99) end $scene = Scene_Map.new when 4 Sound.play_decision for i in 0...$data_armors.size $game_party.gain_item($data_armors[i],99) end $scene = Scene_Map.new when 5 Sound.play_decision for i in 1...$data_actors.size $game_actors[i].level_up end $scene = Scene_Map.new end end endend class Scene_Map < Scene_Base alias diegozz_update update def update diegozz_update unless $game_message.visible update_transfer_player update_encounter update_call_menu update_call_debug update_scene_change update_diegozz_debug end end def update_diegozz_debug if Input.trigger?(Input::F5) return if $game_map.interpreter.running? and $TEST $game_temp.next_scene = "diegozzdebug" end end def update_scene_change return if $game_player.moving? # Is player moving? case $game_temp.next_scene when "battle" call_battle when "shop" call_shop when "name" call_name when "menu" call_menu when "save" call_save when "debug" call_debug when "diegozzdebug" call_diegozz_debug when "gameover" call_gameover when "title" call_title else $game_temp.next_scene = nil end end def call_diegozz_debug Sound.play_decision $game_temp.next_scene = nil $scene = Diegozz_Debug.new endend
Bugs e Conflitti Noti
N/AAltri Dettagli
Potete darmi spunto per aggiungere nuove funzioni allo script.
-
Quindi diciamo che un metodo di procedere, per un principiante, potrebbe essere questo: caricare inizialmente un solo tileset con i soli elementi strettamente necessari alla prima locazione, poi aggiungere in un secondo momento, sempre al primo tileset, gli elementi necessari alla seconda, e così via, il tutto ovviamente all'insegna dell'ECONOMIA massima dello spazio. Il rischio è quello di finire lo spazio troppo presto ma muovendosi con oculatezza ce la si può fare, senza necessariamente dover avere tutto il materiale pronto all'inizio. Dico questo perché essendo il mio primo tentativo pianificare proprio tutto all'inizio sarebbe troppo complicato per me ^_^
C'è sempre lo script di Bulletxt che ti fa avere infiniti tileset sul VX

Os, perchè l'ho detto o.o (abbasso le facilitazioni XD)
Basterebbe semplicemente modificare i tile con Paint o Photoshop ogni volta che volete aggiungere qualcosa, i vecchi rimarranno e i nuovi saranno pronti all'uso.
E poi c'è sempre l'opzione dei Characters (Per oggetti che in teoria non si sovrappongono), i background (per effetti speciali) e anche di pictures.
Comunque qualunque sia la tua scelta non farti condizionare da nessuno!
USA IL VX!!!
ma proprio nessuno.

-
Per la differenza fra XP e VX non ho capito bene quello che Morshudiego diceva a proposito dei Tilesets, nel VX non si possono usare gli stessi Tilesets dell'XP?
Purtroppo no, nell'XP i tileset possono essere lunghi quanto tu vuoi (anche 2 milioni di pixel, però la larghezza resta sempre 256) Mentre nel VX hai le misure predefinite e devi rispettare quelle.
Però non considerarlo un tool scadente solo da quel fattore (so che non lo hai detto, però sempre meglio prevenire :D)
Morshuzionario
Grafica Quadratica: Ogni quadrato di 32x32 pixel ha all'interno un'immagine che assomoliglia molto ad un quadrato. Pure i personaggi preinstallati sono quadrati. Si salva solo l'iconset e le animazioni :( (e le facce XD)
EDIT: Ma multimedia fusion non è un programma per RPG XD è una cosa in stile game maker, ci fai quello che ti conviene di più.
-
1) Le differenze tra RGSS e RGSS2 sono minime. L'RGSS2 è una versione leggermente più comprensibile dell'RGSS con anche nuovi comandi.
2) Prendendo riferimento dalla risposta di prma, puoi benissimo imparare l'RGSS e poi approfondire le varie modifiche dell'RGSS2.
3) Non so purtroppo dove ci possano essere guide sull'RGSS. Puoi sempre trovare delle guide sul Ruby, che è la madre dell'RGSS.
4) Credo di no, a meno che non fai un istituto informatico e conosci qualche libro...
5) Ti consiglio di cominciare dal programma su cui ti trovi meglio. Scaricateli tutti e due (intanto ti scarichi le RTP) e provali, poi fai un confronto e guarda cosa riesci a fare.
6) L'XP ha la grafica migliore e la possibilità dei tileset infiniti. Apparte qualche piccolo inconvenientuccio (non è possibile attaccare più di una volta, i messaggi appaiono instantanei) è un buon tool su cui lavorarci. Gli script sono un po' disorganizzati ma anche a quello ci si fa l'abitudine

Il VX (L'ultimo uscito) ha la grafica Quadratica e un tot di tileset da poter usare. La programmazione è più facilitata anche dagli eventi veloci. Possiede Barca, Nave e Areonave (Parte FON DA MEN TA LE del programma
) . Gli script sono ben organizzati ed è disponibile una patch italiana per tradurre il programma in italiano (non so se c'è anche nell'XP).Tutti e due i programmi sono TRIAL (cioè hai 30 giorni di prova e poi bisogna pagare 60$ per comprarlo)
anche se... no dai non dico altro :tongue]
By Morshudiego aka Diegozz95
-
mi serve un aiuto nel processo di swap tile: mi da un errore chiamato "NoMethodError occurred while running script. Undefined method 'tileset' for #<game_map:0x1460290>". Che mi significa?? blink.gif
Che script stai usando ?!?!? Perchè non esiste nessuno script per lo Swap Tile nell'RGSS2 base.
-
L'entrata è da quella parte!
Le entrate delle case sono sempre al lato sud della casa. Se l'entrata si dovesse trovare in altri luoghi si entrerebbe direttamente dentro il muro senza alcuna porta.
Preferisco morire!
Quando vi troverete faccia a faccia contro un boss l'opzione fuga sarà sempre rimossa. Anche nel caso che un tizio vi abbia sfidato l'opzione fuga o resa non è disponibile.
Corollario
Tutto questo sarebbe normale se prima della battaglia l'unica uscita viene misteriosamente bloccata.
No Sexy No Party
Solo le ragazze più carine e che si ripetono UNA SOLA VOLTA in tutto il gioco sono ammesse in squadra.
Il creatore formato donna!
Negli JRPG classici la divinità venerata in tutto il mondo sarà SEMPRE la dea.
Eccezione
Alcuni giochi, per rientrare nella storia, hanno religioni politeiste.

Creare un buon equilibrio tra eroe - mostro
in Supporto VX e VX-Ace
Posted
comunque il calcolo del danno è:
Attacco * 4 - difesa * 2