Jump to content
Rpg²S Forum

Sylaer

Utenti
  • Posts

    287
  • Joined

  • Last visited

Everything posted by Sylaer

  1. Ho fatto una nuova versione del diario, quella vecchia aveva troppi problemi e non era proprio un diario era più una lunga pergamena. Adesso nella nuova vesione non c'è lo scorrimento verticale, bensì a pagine. Non l'ho ancora terminato, però qui ho uno screen.
  2. Be' prova questo script. Character Creator Ah. Se vuoi sapere cosa sono i Rens leggi qua. Cosa sono i Rens e come Accumularli
  3. Provate questa demo, guardate se vi fa. Lo fatta con un oggetto che richiama il bestiario da evento comune, però i mostri sono gli originali. Demo Bestiario
  4. Se ho capito bene vuoi fare in modo che premendo q o w si cambì personaggio, ma vuoi che il personaggio sia nella posizione e nella mappa in cui l'hai lasciato, giusto? Be' se è così è un po' più comlicato di come l'hai fatto te. Postami lo script. P.S. Se vuoi far in modo che il ciclo for ti indichi tutti i membri del party ci devi mettere: for i in 0..$game_party.actors.size
  5. Quale bestiario e quale bs?
  6. Ho capito perché ti dà errore: quello che ha scritto questo script forse non ha pensato che nell'inventerio poteva anche non esserci alcun oggetto. Comunque io ho risolto mettendo in cima al metodo refresh della classe Window_Information_CIS questo: if item == nil return end Se poi ti dà un errore nel refresh della Window_Samo_Item cancella queste due linee: self.contents.font.name = $fontface self.contents.font.size = $fontsize
  7. Dai un'occhiata a Scene_Battle1 nel metodo update. Ci dovrebbe questo: if @wait_count > 0 @wait_count -= 1 return end Ecco questo è il metodo per richiamare il comando attesa. Spiego: Ogni frame, e mi raccomando frame, non secondo il gioco richiama la funzione update della classe e perciò esegue questa parte della script, se trova che @wait_count è maggiore di 0, lo decrementa e chiude lì quel metodo update passando al frame successivo, nel quale viene richiamato di nuovo il metodo update, questo fino a che @wait_count non diventa minore uguale a 0. Cioè se mettiamo @wait_count = 5, il gioco aspetterà 5 frame prima di fare quello che c'è scritto dopo quella roba scritta in cima. Spero di essere stato chiaro. Comunque per cosa ti serve?
  8. Non sono riuscito a capire il perché vi da quell'errore. A me funziona tutto ok. Forse dipende dalla versione di Rpgmaker xp o da quella della libreria. Non lo so voi che versione c'avete?
  9. Minimappa DescrizioneQuesta è una demo per imparare ad usare la minimappa lo script è all'interno di questa. In realtà questa minimappa non l'ho fatta io l'ho presa da una battaglia in tempo reale piuttosto bella, ma non mi ricordo dove l'ho trovata. Autore Non lo so, modificato da me Allegati La demo a questo indirizzo. Demo Minimappa Istruzioni per l'uso Sono all'interno della demo Se ci sono problemi postete le vostre domande qui.
  10. Diario di Viaggio Descrizione Ho pensato di postare lo script che ho realizzato per Raldon il quale me lo aveva chiesto espressamente, così magari sarà utile anche a qualcun'altro. In parole semplici non è altro che una finestra che visualizza tutto quello che c'è scritto alcuni file,che sono appunto le sue pagine, però è dotato di certe funzioni, che lo rendono adatto per essere un diario delle avventure. E' possibile impostare che certe righe possano essere visibili solo quando certe switch sono attive, ad esempio. Autore Io Allegati Demo Screen: http://img520.imageshack.us/img520/1161/diariozl3hq1.th.png Script Istruzioni per l'uso Sono scritte all'interno dello script Se ci sono problemi, ditemi qui sotto.
  11. Si può fare, ma bisogna che tu risostituisca lo script con quello che ho modificato ora. Una volta fatto basta che tu inserisca questo nel call script: Ho dovuto modificare lo script perchè se si preme il tasto cancella viene rievocato automaticamente il menu e non la mappa anche se si era chiamato il diario da lì.
  12. Ho provato su un mio progetto il bestiario e le impostazioni da te fornite, e funziona tutto alla perfezione. Nessun errore, ho provato a cancellare tutti i mostri e a riscrivere i loro dati, e funziona anche così. Puoi darmi più dettagli sull'errore che ti dà e sugli altri script che magari hai usato? Ci sta che la causa sia il conflitto con altri script.
  13. Fammi capire bene: anche se scrivi qualcosa nel file Diary.rxdata, non ti mostra niente sulla finestra? Comunque la finestra del diario te la apre, giusto? Non lo so', sei sicuro di aver salvato il file prima di par partire il gioco?
  14. Si scusa mi ero dimenticato di dirti che questo metodo funziona solo con la versione 1.02 di Rpg maker Xp. Lo so questo perché lo faceva anche a me poi l'ho aggiornato è funzionava tutto bene. Quindi se vuoi aggiungere questo aspetto al tuo gioco ti conviene cercare l'aggiornamento.
  15. T'ho buttato giù uno script per il diario, non è niente di che, anzi sembra più una pergamena che un diario. Comunque speriamo che ti sia utile. Se c'è qualche problema fammelo sapere su questo topic così te lo risolvo.
  16. Per lo schermo intero, il più sempice direi, hai due possibilità: Puoi metterlo nel main e quindi all'avvio del gioco viene messo direttamente in schermo intero oppure puoi metterlo in un comando del menu del title. Comunque questo è lo script, nel caso tu lo voglia a schermo intero dall'inizio. Altrimenti per il menu te lo devi sistemare, questo è il mio Scene_Title:
  17. Anche per me è lo stesso se lo inserisco in un progetto già fatto con diversi script non fa e mi dà quel messaggio d'errore altrimenti in un progetto vuoto, funziona alla perfezione. Mi ci sono scervellato ma non sono riuscito a capire il perché.
  18. Non c'è SDK su quel progetto. Solo un buon numero di script.
  19. Mi pare strano, quello @spriteset.dispose serve per togliere lo Spriteset_Map solo da quella Scene, non dovrebbe far sparire tutto comunque prova con il mio Scene_Menu guarda cosa ti dà. #====================================================================== ======== # ** Scene_Menu #------------------------------------------------------------------------------ # This class performs menu screen processing. #============================================================================== class Scene_Menu #-------------------------------------------------------------------------- # * Object Initialization # menu_index : command cursor's initial position #-------------------------------------------------------------------------- def initialize(menu_index = 0) @menu_index = menu_index end #-------------------------------------------------------------------------- # * Main Processing #-------------------------------------------------------------------------- def main # Make command window s1 = $data_system.words.item s2 = $data_system.words.skill s3 = $data_system.words.equip s4 = "Status" s5 = "Save" s6 = "End Game" @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6]) @command_window.index = @menu_index bo = 120 @command_window.back_opacity = bo @spriteset = Spriteset_Map.new # If number of party members is 0 if $game_party.actors.size == 0 # Disable items, skills, equipment, and status @command_window.disable_item(0) @command_window.disable_item(1) @command_window.disable_item(2) @command_window.disable_item(3) end # If save is forbidden if $game_system.save_disabled # Disable save @command_window.disable_item(4) end # Make play time window @playtime_window = Window_PlayTime.new @playtime_window.x = 0 @playtime_window.y = 224 @playtime_window.back_opacity = bo # Make steps window @steps_window = Window_Steps.new @steps_window.x = 0 @steps_window.y = 320 @steps_window.back_opacity = bo # Make gold window @gold_window = Window_Gold.new @gold_window.x = 0 @gold_window.y = 416 @gold_window.back_opacity = bo # Make status window @status_window = Window_MenuStatus.new @status_window.x = 160 @status_window.y = 0 @status_window.back_opacity = bo # Execute transition Graphics.transition # Main loop loop do # Update game screen Graphics.update # Update input information Input.update # Frame update update # Abort loop if screen is changed if $scene != self break end end # Prepare for transition Graphics.freeze # Dispose of windows @spriteset.dispose @command_window.dispose @playtime_window.dispose @steps_window.dispose @gold_window.dispose @status_window.dispose end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update # Update windows @command_window.update @playtime_window.update @steps_window.update @gold_window.update @status_window.update # If command window is active: call update_command if @command_window.active update_command return end # If status window is active: call update_status if @status_window.active update_status return end end #-------------------------------------------------------------------------- # * Frame Update (when command window is active) #-------------------------------------------------------------------------- def update_command # If B button was pressed if Input.trigger?(Input::B) # Play cancel SE $game_system.se_play($data_system.cancel_se) # Switch to map screen $scene = Scene_Map.new return end # If C button was pressed if Input.trigger?(Input::C) # If command other than save or end game, and party members = 0 if $game_party.actors.size == 0 and @command_window.index < 4 # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end # Branch by command window cursor position case @command_window.index when 0 # item # Play decision SE $game_system.se_play($data_system.decision_se) # Switch to item screen $scene = Scene_Item.new when 1 # skill # Play decision SE $game_system.se_play($data_system.decision_se) # Make status window active @command_window.active = false @status_window.active = true @status_window.index = 0 when 2 # equipment # Play decision SE $game_system.se_play($data_system.decision_se) # Make status window active @command_window.active = false @status_window.active = true @status_window.index = 0 when 3 # status # Play decision SE $game_system.se_play($data_system.decision_se) # Make status window active @command_window.active = false @status_window.active = true @status_window.index = 0 when 4 # save # If saving is forbidden if $game_system.save_disabled # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end # Play decision SE $game_system.se_play($data_system.decision_se) # Switch to save screen $scene = Scene_Save.new when 5 # end game # Play decision SE $game_system.se_play($data_system.decision_se) # Switch to end game screen $scene = Scene_End.new end return end end #-------------------------------------------------------------------------- # * Frame Update (when status window is active) #-------------------------------------------------------------------------- def update_status # If B button was pressed if Input.trigger?(Input::B) # Play cancel SE $game_system.se_play($data_system.cancel_se) # Make command window active @command_window.active = true @status_window.active = false @status_window.index = -1 return end # If C button was pressed if Input.trigger?(Input::C) # Branch by command window cursor position case @command_window.index when 1 # skill # If this actor's action limit is 2 or more if $game_party.actors[@status_window.index].restriction >= 2 # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end # Play decision SE $game_system.se_play($data_system.decision_se) # Switch to skill screen $scene = Scene_Skill.new(@status_window.index) when 2 # equipment # Play decision SE $game_system.se_play($data_system.decision_se) # Switch to equipment screen $scene = Scene_Equip.new(@status_window.index) when 3 # status # Play decision SE $game_system.se_play($data_system.decision_se) # Switch to status screen $scene = Scene_Status.new(@status_window.index) end return end end end
  20. A me non dà nessun problema, ho provato a metterlo sul menu principale e funziona tutto tutte le volte che ci vado ho fatto lo stesso con il menu oggetti e nessun problema pure lì. Comunque per chi non lo sapesse per attivare la mappa come sfondo per i menu è sufficiente scrivere quello che hai scritto te nel main, magari non nel loop do, e poi mettere @spriteset.dispose insieme alla lista dei dispose per le finestre, non c'è nemmeno il bisogno di mettere l'update perché la mappa non può cambiare. Inoltre per mostrare la mappa bisogna impostare l'opacità di fondo(@nomedellafinestra.back_opacity =x) a un valore minore di 255, io ho messo 120. Almeno io ho fatto così e non mi ha dato nessun problema.
  21. Mi da un errore, è possibile? alla riga che dice: elsif @corre or (@dash_min <= 0 and @corre) Mi dice che per @dash_min (nilClass) non è definito il metodo '<=', è come se non cosiderasse la riga che lo definisce coma valore numerico: @dash_min = DASH_LENGHT*10 Com'è possibile? Comunque me lo fa solo con un gioco in particolare per il resto funziona alla perfezione.
  22. Per risolvere l'errore è sufficente che tu cambi tre righe di codici: La prima è quella che ti ha dato l'errore cioè @savefile_windows.push(Window_SaveFile.new(i, make_filename(i), i)) e sostituirla con @savefile_windows.push(Window_SaveFile.new(i, make_filename(i))) cioè togiere l'ultimo argomento dalla Window_SaveFile.new. Lo stesso lo devi fare per @savefile_windows.push(Window_SaveFile.new(f, name, i)) e per @savefile_windows.push(Window_SaveFile.new(f, name, i)) devi semplicemente togliere la virgola e i dopo name. Cmq questo script non è un gran che. Ce ne sono di meglio in giro.
  23. Quale script per il bestiario hai usato e cosa ci hai scritto nel common event? Comunque non credo che il problema sia nato dal fatto che hai cambiato tutti i mostri nel database.
  24. Penso di averti risolto anche questo problema. In effetti è abbastanza semplice prova a mettere lo script che ti mostra HP e MP sotto lo script dell'antilag. Lo so che è troppo semplice ma funziona. Almeno a me.
  25. Ho riscritto lo script per lo hud in modo che funzioni quando attivi una switch, di default è settata ad 1 Comunque puoi cambiarla andando in fondo allo script dove c'è scritto @activation_switch = 1 e metterci quale ti pare. #====================================================================== ======== # ■ Kingdom Hearts HUD #------------------------------------------------------------------------------ # by Skive # skivedaft@yahoo.com # # -- # # released on 5th March 2006 #============================================================================== #============================================================================== # ■ Sprite_HP #------------------------------------------------------------------------------ #  the HUD's hp bar #============================================================================== class Sprite_HP < Sprite #-------------------------------------------------------------------------- # ● instances #-------------------------------------------------------------------------- attr_writer :actor #-------------------------------------------------------------------------- # ● initialize #-------------------------------------------------------------------------- def initialize(actor = nil) super(nil) self.z = 202 self.bitmap = Bitmap.new(60, 26) @actor = actor if !@actor.nil? @hp = @actor.hp @maxhp = @actor.maxhp end refresh end #-------------------------------------------------------------------------- # ● refresh #-------------------------------------------------------------------------- def refresh self.bitmap.clear return if @actor.nil? @hp = @actor.hp @maxhp = @actor.maxhp draw_bar(20, 6) self.angle = 270 end #-------------------------------------------------------------------------- # ● update #-------------------------------------------------------------------------- def update super if @actor.nil? self.bitmap.clear return end if @hp != @actor.hp or @maxhp != @actor.maxhp refresh end end #-------------------------------------------------------------------------- # ● draw_bar #-------------------------------------------------------------------------- def draw_bar(radius, width) max = (@actor.hp * 360) / @actor.maxhp for j in 1..width for i in 0..max bx = Math.cos( (i * Math::PI) / 360) * (radius + j) by = Math.sin( (i * Math::PI) / 360) * (radius + j) case j when 1 color = Color.new(74, 112, 29) when 2 color = Color.new(77, 120, 29) when 3 color = Color.new(80, 131, 28) when 4 color = Color.new(85, 144, 27) when 5 color = Color.new(89, 156, 26) when 6 color = Color.new(93, 167, 26) end self.bitmap.set_pixel(30 + bx, by, color) end end end end #============================================================================== # ■ Sprite_SP #------------------------------------------------------------------------------ #  the HUD's sp bar #============================================================================== class Sprite_SP < Sprite #-------------------------------------------------------------------------- # ● instances #-------------------------------------------------------------------------- attr_writer :actor #-------------------------------------------------------------------------- # ● initialize #-------------------------------------------------------------------------- def initialize(actor = nil) super(nil) self.z = 202 self.bitmap = Bitmap.new(60, 26) @actor = actor if !@actor.nil? @sp = @actor.sp @maxsp = @actor.maxsp end refresh end #-------------------------------------------------------------------------- # ● refresh #-------------------------------------------------------------------------- def refresh self.bitmap.clear return if @actor.nil? @sp = @actor.sp @maxsp = @actor.maxsp draw_bar(20, 6) self.angle = 90 self.mirror = true end #-------------------------------------------------------------------------- # ● update #-------------------------------------------------------------------------- def update super if @actor.nil? self.bitmap.clear return end if @sp != @actor.sp or @maxsp != @actor.maxsp refresh end end #-------------------------------------------------------------------------- # ● draw_bar #-------------------------------------------------------------------------- def draw_bar(radius, width) max = (@actor.sp * 360) / @actor.maxsp for j in 1..width for i in 0..max bx = Math.cos( (i * Math::PI) / 360) * (radius + j) by = Math.sin( (i * Math::PI) / 360) * (radius + j) case j when 1 color = Color.new(29, 82, 112) when 2 color = Color.new(29, 86, 120) when 3 color = Color.new(28, 90, 131) when 4 color = Color.new(27, 96, 144) when 5 color = Color.new(26, 102, 156) when 6 color = Color.new(26, 106, 167) end self.bitmap.set_pixel(30 + bx, by, color) end end end end #============================================================================== # ■ Sprite_HUD #------------------------------------------------------------------------------ #  draws the HUD on the map #============================================================================== class Sprite_HUD < Sprite #-------------------------------------------------------------------------- # ● initialize #-------------------------------------------------------------------------- def initialize(corner = 4) super(nil) self.z = 200 for actor in $game_party.actors next if actor.dead? @actor = actor @actor_index = $game_party.actors.index(@actor) break end @hp_sprite = Sprite_HP.new(@actor) @hp_sprite.visible = false @sp_sprite = Sprite_SP.new(@actor) @sp_sprite.visible = false self.bitmap = Bitmap.new(60, 60) case corner when 1 x = 16 y = 16 when 2 x = 640 - 52 - 16 y = 16 when 3 x = 16 y = 480 - 52 - 16 when 4 x = 640 - 52 - 16 y = 480 - 52 - 16 end self.x = x self.y = y @hp_sprite.x = x + 27 @hp_sprite.y = y - 3 @sp_sprite.x = x + 27 - 1 @sp_sprite.y = y - 3 - 1 + 60 refresh end #-------------------------------------------------------------------------- # ● refresh #-------------------------------------------------------------------------- def refresh self.bitmap.clear return if @actor.nil? bmp = RPG::Cache.character(@actor.character_name, @actor.character_hue) rect = Rect.new(0, 0, bmp.width / 4, (bmp.height / 4)) self.bitmap.blt(27 - bmp.width / 8, 5, bmp, rect) self.bitmap.blt(0, 0, RPG::Cache.picture("hud"), Rect.new(0, 0, 60, 60)) end #-------------------------------------------------------------------------- # ● update #-------------------------------------------------------------------------- def update super if self.visible @hp_sprite.visible = true @sp_sprite.visible = true else @hp_sprite.visible = false @sp_sprite.visible = false end @hp_sprite.update @sp_sprite.update if @actor != $game_party.actors[@actor_index] @actor = $game_party.actors[@actor_index] @hp_sprite.actor = @actor @sp_sprite.actor = @actor @hp_sprite.refresh @sp_sprite.refresh refresh end end end #============================================================================== # ■ Scene_Map #------------------------------------------------------------------------------ #  draws the hud on the map screen # @khhud_corner is the corner you want the hud to be displayed in. # 1 is upper left, 2 is upper right, 3 is bottom left and 4 is bottom right #============================================================================== class Scene_Map alias main_khhud main alias update_khhud update alias transfer_khhud transfer_player #-------------------------------------------------------------------------- # ● initialize #-------------------------------------------------------------------------- def initialize @khhud_corner = 4 # 1 or 2 or 3 or 4 @activation_switch = 1 end #-------------------------------------------------------------------------- # ● main #-------------------------------------------------------------------------- def main @hud = Sprite_HUD.new(@khhud_corner) @hud.visible = false main_khhud @hud.dispose end #-------------------------------------------------------------------------- # ● update #-------------------------------------------------------------------------- def update @hud.update if $game_switches[@activation_switch] @hud.visible = true else @hud.visible = false end update_khhud end end
×
×
  • Create New...