Delta Posted March 8, 2008 Share Posted March 8, 2008 (edited) Cambio Tileset Descrizione (traduzione della descrizione originale)Questo script ti permette di utilizzare una funzione mancante in RPG Maker XP rispetto a RPG Maker 2000 e 2003. Questo script ti permette di cambiare Tileset usando la mappa corrente. E' esplicitamente utilizzabile su mappe che usano multiple elevazioni, puoi cambiare le priorità del tileset quando il giocatore cambia elevazione (esempio: passaggio sopra e sotto ad un ponte nella stessa mappa). Autore Ryethe (credo ... avevo scaricato, non so da dove, lo script e ora l'ho ritrovato ma sembra sia una vecchia versione quindi posto quella che ho io XD) Istruzioni per l'uso Innanzitutto bisogna inserire il seguente codice prima della classe main nello script editor: class Game_System attr_accessor :tileset_settings alias tileset_initialize initialize def initialize tileset_initialize @tileset_settings = Hash.new end end class Game_Map attr_accessor :tileset_flag def setup(map_id) # Put map ID in @map_id memory @map_id = map_id # Load map from file and set @map @map = load_data(sprintf("Data/Map%03d.rxdata", @map_id)) # set tile set information in opening instance variables if $game_system.tileset_settings[@map_id] != nil tileset_id = $game_system.tileset_settings[@map_id] else tileset_id = @map.tileset_id end tileset = $data_tilesets[tileset_id] @tileset_name = tileset.tileset_name @autotile_names = tileset.autotile_names @panorama_name = tileset.panorama_name @panorama_hue = tileset.panorama_hue @fog_name = tileset.fog_name @fog_hue = tileset.fog_hue @fog_opacity = tileset.fog_opacity @fog_blend_type = tileset.fog_blend_type @fog_zoom = tileset.fog_zoom @fog_sx = tileset.fog_sx @fog_sy = tileset.fog_sy @battleback_name = tileset.battleback_name @passages = tileset.passages @priorities = tileset.priorities @terrain_tags = tileset.terrain_tags # Initialize displayed coordinates @display_x = 0 @display_y = 0 # Clear refresh request flag @need_refresh = false # Set map event data @events = {} for i in @map.events.keys @events[i] = Game_Event.new(@map_id, @map.events[i]) end # Set common event data @common_events = {} for i in 1...$data_common_events.size @common_events[i] = Game_CommonEvent.new(i) end # Initialize all fog information @fog_ox = 0 @fog_oy = 0 @fog_tone = Tone.new(0, 0, 0, 0) @fog_tone_target = Tone.new(0, 0, 0, 0) @fog_tone_duration = 0 @fog_opacity_duration = 0 @fog_opacity_target = 0 # Initialize scroll information @scroll_direction = 2 @scroll_rest = 0 @scroll_speed = 4 end def change_tileset(tileset_id) $game_system.tileset_settings[@map_id] = tileset_id tileset = $data_tilesets[tileset_id] @tileset_name = tileset.tileset_name @autotile_names = tileset.autotile_names @panorama_name = tileset.panorama_name @panorama_hue = tileset.panorama_hue @fog_name = tileset.fog_name @fog_hue = tileset.fog_hue @fog_opacity = tileset.fog_opacity @fog_blend_type = tileset.fog_blend_type @fog_zoom = tileset.fog_zoom @fog_sx = tileset.fog_sx @fog_sy = tileset.fog_sy @battleback_name = tileset.battleback_name @passages = tileset.passages @priorities = tileset.priorities @terrain_tags = tileset.terrain_tags @tileset_flag = true end end class Spriteset_Map alias tileset_update update def update if $game_map.tileset_flag @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name) for i in 0..6 autotile_name = $game_map.autotile_names[i] @tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name) end @tilemap.map_data = $game_map.data @tilemap.priorities = $game_map.priorities $game_map.tileset_flag = false end tileset_update end end Ora per cambiare il Tileset basta richiamare il seguente codice tramite evento: $game_map.replace_tileset(x) Dove x rappresenta l'ID del tileset che si va ad applicare al posto di quello precedente Edited March 8, 2008 by Delta Link to comment Share on other sites More sharing options...
the-joker Posted March 11, 2008 Share Posted March 11, 2008 In che senso cambia il tileset? "Quarantadue!" urlò Loonquawl. "Questo è tutto ciò che sai dire dopo un lavoro di sette milioni e mezzo di anni?""Ho controllato molto approfonditamente," disse il computer, "e questa è sicuramente la risposta. Ad essere sinceri, penso che il problema sia che voi non abbiate mai saputo veramente qual è la domanda." Gioco disponibile: Prophecy of Last Era - OPEN SOURCE http://www.mediafire.com/?u6aut42ks12ixgf Puoi utilizzare qualsiasi evento, mappa, chara, grafica, e programmazione contenuta nel gioco-demo.Nessun diritto di copia.Hope you enjoy.http://www.rpg2s.net/awards/bestmusician3.jpg Link to comment Share on other sites More sharing options...
Delta Posted March 13, 2008 Author Share Posted March 13, 2008 Mentre giochi, nella stessa mappa, puoi cambiare tileset, cioè: all'inizio, per esempio, nella mappa c'è impostato il tileset Grassland, una volta attivato l'evento che cambia tileset, al posto di Grassland viene messo il tileset Woods (ovviamente i tileset da sostituire con altri li sceglie il programmatore del gioco) Link to comment Share on other sites More sharing options...
FenriX` Posted March 17, 2008 Share Posted March 17, 2008 bellissimo o.o l'avevo trovato tempo fa ma poi l'avevo perso : | è comodissimo sto prog :) io mi ricordo che in una mappa un ponte l'avevo fatto tutto ad eventi per passarci sopra e sotto -.-'' una rottura... questo è fenomenale ^.^ soprattutto se devi fare mappe molto grandi e articolate, con molti sottopassaggi :) grazie caro :D http://img48.imageshack.us/img48/7195/65408586.png«NEWS!!» http://img123.imageshack.us/img123/24/89057157.pnghttp://img115.imageshack.us/img115/5350/19481487.pnghttp://img407.imageshack.us/img407/2696/45573607.pnghttp://img185.imageshack.us/img185/373/70775921.png Membro # 8-8-8 [Hachi] della:http://img3.imageshack.us/img3/9636/bannergm.png Link to comment Share on other sites More sharing options...
Haltar Dhrim Posted March 21, 2008 Share Posted March 21, 2008 Mah... io credo che si possa anche fare delle mappe divise... Link to comment Share on other sites More sharing options...
Fire-Dragon-DoL Posted April 2, 2009 Share Posted April 2, 2009 Si riesumo un post vecchio, volevo solo avvisare che è $game_map.change_tileset(x) visto che il metodo replace_tileset(x) non esiste da nessuna parte nello script :P If you think C++ is not overly complicated, just what is a protected abstract virtual base pure virtual private destructor and when was the last time you needed one? (Tom Cargill) Se dovete fare una cosa semplice, tipo if (a==b) c='pippo';else c='pluto';Usate le funzionalita' del linguaggio piu' complicato che esiste: c=select decode(sign(a-b),0,"pippo","pluto"); Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now