Jump to content
Rpg²S Forum

Morshudiego

Utenti
  • Posts

    815
  • Joined

  • Last visited

Posts posted by Morshudiego

  1. 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

  2. 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

  3. 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)

  4. ???

    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 :|

  5. 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? ^^

  6. 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

  7. 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.

  8. 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#======================================================================

     

  9. 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

  10. 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 Diegozz95

     

    Allegati

    N/A

     

    Istruzioni 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/A

     

    Altri Dettagli

    Potete darmi spunto per aggiungere nuove funzioni allo script.

  11. 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 :tongue:

    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. :biggrin:

  12. 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ù.

  13. 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 :tongue:

    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 :biggrin:) . 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

  14. 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.

  15. 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.

×
×
  • Create New...