Jump to content
Rpg²S Forum

giver

Utenti
  • Posts

    1,288
  • Joined

  • Last visited

Everything posted by giver

  1. Nello script Window_Skill, all'interno del (def) initialize, cerca il blocco if $game_temp.in_battle self.y = 64 self.height = 256 self.back_opacity = 160 end e setti al suo interno, dopo la coordinata y, il valore della coordinata z, in modo che diventi così . . . if $game_temp.in_battle self.y = 64 self.z += 100 self.height = 256 self.back_opacity = 160 end
  2. Personalmente penso di no . . . Da quello che ho capito, richiede XNA-GSE (e MsVS C# express 2008, quindi) per esportare in quel formato e la Flex SDK per esportare in Flash . . .
  3. Se è sempre lo stesso font che vuoi usare in tutto il gioco e ti tocca modificare tutti gli script che usi per poterlo fare, allora dovresti provare ad usare lo script Main modificato da DaD, che dovrebbe coprire tutte le modalità di gestione dei font usati dalle traduzioni non ufficiali del tool, presenti in molti script custom . . . Main Modificato da DaD @ Rpg2S N.B.: Così com'è realizzato lo script, il gioco viene eseguito in finestra durante il Test nel Tool, ma parte a schermo intero quando giocato normalmente, con doppio clic su Game.exe . . .
  4. giver

    piccolo problema

    Per quello che so io, l'Aeon System memorizza già il party al momento dell'evocazione, quindi si tratterebbe solo di ripristinarlo a fine battaglia, nella parte appropriata di Scene_Battle. Ma potrebbero esserci anche da risolvere problemi di assegnazione dell'esperienza per la battaglia affrontata . . .
  5. Io l'ho preso così com'è dal manuale ed ho controllato la demo ufficiale inglese, che lo usa senza problemi con tre Mostra Scelta consecutivi per un totale di 9 opzioni (4+4+1). I tre Mostra Scelta erano preceduti dall'istruzione: $game_temp.num_choiches = 3 Come opzione per l'annulla, vale quella impostata per l'ultimo Mostra Scelta e gli altri vengono ignorati. Scusa la domanda stupida: Hai levato dal progetto lo script di Sleeping prima di provare ? Ed hai anche provato ad inserire l'UMS nella Demo dello script di Sleeping per vedere se funziona comunque ?
  6. Fammi capire. Tu hai usato la funzione incorporata nell'UMS (senza usare questo script, quindi) per avere il Mostra Scelta esteso, e lo script fonde i due o più mostra scelta consecutivi, fino al numero massimo indicato nell'impostazione dell'UMS (* vedi), ma quando scegli un'opzione dalla quinta in poi non succede niente ? *: Usando prima dei mostra scelta, tramite comando (call) script $game_temp.num_choices = numero_mostra_scelta_da_fondere_assieme
  7. L'UMS prevede già la possibilità di sfruttare Mostra Scelta con più di 4 opzioni. Non c'è bisogno dello script di Sleeping, in questo caso . . . Basta leggere il manuale allegato all'UMS . . .
  8. Corretto uno script: Monster DB avanzato Corretto uno script che non poteva funzionare a causa di una modifica, fatta non so da chi, che doveva renderlo compatibile con più versioni di Rpg Maker XP, e chiarito il suo utilizzo due post più sotto . . . Cheats FATTO.
  9. Io lo script mi sono limitato a correggerlo. Lo ha postato Friday666, se stavi "parlando" con me . . . Comunque, le cheat, s?, attivano dei benefici tipo il "god mode" in certi FPS o possono sbloccare delle features, come l'accesso ad una scene particolare, comandi nel men?, attivare uno switch legato a delle quest segrete (o la aggiunge direttamente in un eventuale quest log), ecc. Nello script ci sono indicazioni di alcuni dei benefici che possono essere associati ad una cheat e due esempi di cheat (a partire dalla riga 69 della versione che ho corretto io). Riposto la parte personalizzabile. # START EDITING // ? #=============================================================================== #=========================== # # elsif @cheat_word == "Per iniziare a mettere nuovi trucchi nel gioco." #Queste sono le combinazioni # $game_party.gain_item(Item ID, How many) #per inserire altri oggetti # $game_party.gain_gold(How many) # Per inserire altro oro # $game_party.gain_weapon(Weapon ID, How many) #Per inserire nuove armi # $game_party.gain_armor(Armor ID, How many) # Per inserire nuove armature # $game_party.actors[Actor ID].learn_skill(Skill ID) # Per inserire nuove magie # $game_system.se_play($data_system.decision_se) # Questo ? il suono di verifica # # Il primo codice deve iniziare con 'if' invece che con 'elsif'! # #=============================================================================== #=========================== ? ? if @cheat_word == "everythingismine" $game_party.gain_gold(20) # 20 Gold $game_party.gain_item(17, 3) # 3x Seed of Life $game_system.se_play($data_system.decision_se) ? elsif @cheat_word == "iamarealfighter" $game_party.gain_weapon(1, 2) # 2x Bronze Sword $game_party.gain_armor(21, 1) # 1x Cotton Robe $game_system.se_play($data_system.decision_se) ? ? # STOP EDITING \ ? else $game_system.se_play($data_system.buzzer_se) end $scene = Scene_Map.new Lo script usa una serie di if/elsif (ma poteva usare anche un case/when) per valutare il contenuto di @cheat_word, ed in caso corrisponda ad una delle cheat programmate ne attiva i benefici. Ogni volta che il giocatore prova ad inserire una cheat, il gioco torna alla mappa eseguendo un suono differente a seconda che la cheat sia presente o meno quando il giocatore d? l'OK a ci? che ha inserito . . . Per aggiungere una cheat basta inserire un blocco di codice tra le cheat gi? esistenti e "# STOP EDITING \", del tipo elsif @cheat_word == "codicedellacheat_max17caratteri" # benefici ottenuti attivando la cheat, in qualunque quantit? e # di qualunque natura, non solo quelli indicati dall'autore dello script Per cancellare un carattere indesiderato mentre si cerca di attivare una cheat bisogna premere ESC, e si ritorna al gioco solo dando l'OK al codice inserito, anche se non si ? inserito nulla . . . Spero che questo chiarisca un po' le cose . . .
  10. Prova con questa versione corretta . . . #============================================================================== # Cheats Input Script - v1.05 - by BudsieBuds Modificato da Alex'94 & mew2 #============================================================================== ? ? #============================================================================== # Scene_Cheats #------------------------------------------------------------------------------ # by BudsieBuds #============================================================================== ? class Scene_Cheats #-------------------------------------------------------------------------- # def main #-------------------------------------------------------------------------- def main @edit_window = Window_CheatsEdit.new @input_window = Window_CheatsInput.new Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end Graphics.freeze @edit_window.dispose @input_window.dispose end #-------------------------------------------------------------------------- # def update #-------------------------------------------------------------------------- def update @edit_window.update @input_window.update if Input.repeat?(Input::B) if @edit_window.index == 0 return end $game_system.se_play($data_system.cancel_se) @edit_window.back return end if Input.trigger?(Input::C) if @input_window.character == nil @cheat_word = @edit_window.cheat.downcase ? # START EDITING // ? #=============================================================================== #=========================== # # elsif @cheat_word == "Per iniziare a mettere nuovi trucchi nel gioco." #Queste sono le combinazioni # $game_party.gain_item(Item ID, How many) #per inserire altri oggetti # $game_party.gain_gold(How many) # Per inserire altro oro # $game_party.gain_weapon(Weapon ID, How many) #Per inserire nuove armi # $game_party.gain_armor(Armor ID, How many) # Per inserire nuove armature # $game_party.actors[Actor ID].learn_skill(Skill ID) # Per inserire nuove magie # $game_system.se_play($data_system.decision_se) # Questo ? il suono di verifica # # Il primo codice deve iniziare con 'if' invece che con 'elsif'! # #=============================================================================== #=========================== ? ? if @cheat_word == "everythingismine" $game_party.gain_gold(20) # 20 Gold $game_party.gain_item(17, 3) # 3x Seed of Life $game_system.se_play($data_system.decision_se) ? elsif @cheat_word == "iamarealfighter" $game_party.gain_weapon(1, 2) # 2x Bronze Sword $game_party.gain_armor(21, 1) # 1x Cotton Robe $game_system.se_play($data_system.decision_se) ? ? # STOP EDITING ? else $game_system.se_play($data_system.buzzer_se) end $scene = Scene_Map.new return end if @input_window.character == "" $game_system.se_play($data_system.buzzer_se) return end $game_system.se_play($data_system.decision_se) @edit_window.add(@input_window.character) return end end end ? #============================================================================== # Window_Base #------------------------------------------------------------------------------ # by BudsieBuds Modificato da Alex'94 & mew2 #============================================================================== ? class Window_Base < Window def draw_icon_graphic(icon, x, y) bitmap = RPG::Cache.icon(icon) cw = bitmap.width ch = bitmap.height src_rect = Rect.new(0, 0, cw, ch) self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect) end end ? #============================================================================== # Window_CheatsEdit #------------------------------------------------------------------------------ # by BudsieBuds Modificato da Alex'94 & mew2 #============================================================================== ? class Window_CheatsEdit < Window_Base #-------------------------------------------------------------------------- # def ?! #-------------------------------------------------------------------------- attr_reader :cheat attr_reader :index #-------------------------------------------------------------------------- # def initialize #-------------------------------------------------------------------------- def initialize super(0, 0, 640, 128) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.size = 22 self.contents.font.name = "Arial" @max_char = 17 @index = 0 @cheat = "" refresh update_cursor_rect end #-------------------------------------------------------------------------- # def add(character) #-------------------------------------------------------------------------- def add(character) if @index < @max_char and character != "" @cheat += character @index += 1 refresh update_cursor_rect end end #-------------------------------------------------------------------------- # def back #-------------------------------------------------------------------------- def back if @index > 0 name_array = @cheat.split(//) @cheat = "" for i in 0...name_array.size-1 @cheat += name_array end @index -= 1 refresh update_cursor_rect end end #-------------------------------------------------------------------------- # def refresh #-------------------------------------------------------------------------- def refresh self.contents.clear name_array = @cheat.split(//) for i in 0...@max_char c = name_array if c == nil c = "?" end x = (i + 1) * 32 self.contents.draw_text(x, 32, 28, 32, c, 1) end draw_icon_graphic("cheat", 16, 60) end #-------------------------------------------------------------------------- # def update_cursor_rect #-------------------------------------------------------------------------- def update_cursor_rect x = (@index + 1) * 32 self.cursor_rect.set(x, 32, 28, 32) end #-------------------------------------------------------------------------- # def update #-------------------------------------------------------------------------- def update super update_cursor_rect end end ? ? #============================================================================== # Window_CheatsInput #------------------------------------------------------------------------------ # by BudsieBuds Modificato da Alex'94 & mew2 #============================================================================== ? class Window_CheatsInput < Window_Base CHARACTER_TABLE = [ "A","B","C","D","E", "F","G","H","I","J", "K","L","M","N","O", "P","Q","R","S","T", "U","V","W","X","Y", "Z"," "," "," "," ", "+","-","*","/","!", "1","2","3","4","5", "" ,"" ,"" ,"" ,"" , "a","b","c","d","e", "f","g","h","i","j", "k","l","m","n","o", "p","q","r","s","t", "u","v","w","x","y", "z"," "," "," "," ", "#","$","%","&","@", "6","7","8","9","0", "" ,"" ,"" ,"" ,"" , ] #-------------------------------------------------------------------------- # def initialize #-------------------------------------------------------------------------- def initialize super(0, 128, 640, 352) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.size = 22 self.contents.font.name = "Arial" @index = 0 refresh update_cursor_rect end #-------------------------------------------------------------------------- # def character #-------------------------------------------------------------------------- def character return CHARACTER_TABLE[@index] end #-------------------------------------------------------------------------- # def refresh #-------------------------------------------------------------------------- def refresh self.contents.clear for i in 0...90 x = 140 + i / 5 / 9 * 180 + i % 5 * 32 y = i / 5 % 9 * 32 self.contents.draw_text(x, y, 32, 32, CHARACTER_TABLE, 1) end self.contents.draw_text(428, 9 * 32, 48, 32, "OK", 1) end #-------------------------------------------------------------------------- # def update_cursor_rect #-------------------------------------------------------------------------- def update_cursor_rect if @index >= 90 self.cursor_rect.set(428, 9 * 32, 48, 32) else x = 140 + @index / 5 / 9 * 180 + @index % 5 * 32 y = @index / 5 % 9 * 32 self.cursor_rect.set(x, y, 32, 32) end end #-------------------------------------------------------------------------- # def update #-------------------------------------------------------------------------- def update super if @index >= 90 if Input.trigger?(Input::DOWN) $game_system.se_play($data_system.cursor_se) @index -= 90 end if Input.repeat?(Input::UP) $game_system.se_play($data_system.cursor_se) @index -= 90 - 40 end else if Input.repeat?(Input::RIGHT) if Input.trigger?(Input::RIGHT) or @index / 45 < 3 or @index % 5 < 4 $game_system.se_play($data_system.cursor_se) if @index % 5 < 4 @index += 1 else @index += 45 - 4 end if @index >= 90 @index -= 90 end end end if Input.repeat?(Input::LEFT) if Input.trigger?(Input::LEFT) or @index / 45 > 0 or @index % 5 > 0 $game_system.se_play($data_system.cursor_se) if @index % 5 > 0 @index -= 1 else @index -= 45 - 4 end if @index < 0 @index += 90 end end end if Input.repeat?(Input::DOWN) $game_system.se_play($data_system.cursor_se) if @index % 45 < 40 @index += 5 else @index += 90 - 40 end end if Input.repeat?(Input::UP) if Input.trigger?(Input::UP) or @index % 45 >= 5 $game_system.se_play($data_system.cursor_se) if @index % 45 >= 5 @index -= 5 else @index += 90 end end end if Input.repeat?(Input::L) or Input.repeat?(Input::R) $game_system.se_play($data_system.cursor_se) if @index < 45 @index += 45 else @index -= 45 end end end update_cursor_rect end end
  11. Il tuo sistema va bene per immagini statiche, ma non andrebbe bene per un'animazione a picture o un pannello che richieda l'uso di più tasti per essere gestito . . .
  12. Come dice l'autore dello script nel forum in lingua inglese Post Custom Comands Script by Dargor @ rmxp.org Link diretto alla demo dello script Custom Commands @ Mediafire
  13. Nell'evento comune, dopo il Mostra Picture, inserisci un ciclo che aspetta 1 fotogramma finchè non viene premuto il tasto che vuoi, dopodichè, uscito dal ciclo cancelli la picture. Una cosa del genere: @> Show Picture NN@> Loop @> If Button A is Pressed @> Break Loop :> End IF @> Wait 1 Frame:> Repeat Above@> Erase Picture NN Alternativamente, se il Numero (del layer) della Picture è sempre lo stesso per tutti gli oggetti, puoi usare un evento comune in Processo Parallelo, il cui switch di avvio viene messo ON in quello dell'oggetto che mostra la picture. Il Processo Parallelo, naturalmente, esegue il controllo tasti e cancella la picture alla sua pressione, quindi mette OFF il proprio switch di attivazione . . . Nel link sottostante trovi una demo che avevo fatto per un altro utente, in cui due oggetti, separatamente, visualizzano una serie di pictures finchè non viene premuto ESC (Button B). Usando Numeri Picture differenti ognuno ha il proprio Processo Parallelo di disattivazione. Post Demo Orologio/Datario ad eventi con pictures @ RPG2S
  14. Lo script adesso parte e sembra funzionare, incluso l'aggiornamento delle statistiche dopo una battaglia. Allego la versione corretta in un file di testo zippato . . .
  15. E' relativamente semplice. Ovviamente l'icona del gioco deve essere in formato ico, ossia quello delle icone di windows . . . Meglio ancora se di 32x32 e profondità a 256 colori, con o senza trasparenza. 1) Apri il file Game.exe del progetto di cui vuoi personalizzare l'icona. 2) Sulla sinistra c'è un albero di navigazione delle risorse che compongono l'exe: Clicca sul simbolo + accanto alla "cartella" icongroup, fai lo stesso con la sotto-cartella 1, quindi clicca/seleziona quella specie di pallino verde con accanto la scritta 1024. Nella parte destra dovrebbero apparire l'elenco dei dati delle icone e la loro grafica, a sottolineare il fatto che la risorsa risulta selezionata. 3) Nella barra dei menù apri quello denominato Action e scegli l'opzione replace Icon. Nel pannello che appare sfoglia il disco fisso per indicare il file da usare come icona per l'exe, e dai l'OK non appena appare l'icona scelta sotto il campo per sfogliare i file. Il pannello con le info sull'icongroup adesso dovrebbe presentare i dati dell'icona che hai scelto al posto di quelli dell'icongroup originale. 4) Scegli salva dal menù file . . . Se vai a guardare nella cartella del progetto dovrebbero esserci due exe, ossia quello con l'icona cambiata e quello con l'icona originale . . .
  16. Mi sembra improbabile, visto che l'autore del Neo Message System è sempre Woratana . . .
  17. Woratana ha realizzato uno script che mette un bordo/cornice attorno ai face, magari puoi provare ad usare quello: è stato postato nella sezione script VX di questo forum . . .
  18. Cioè . . . Devo dire che, vista la richiesta stile vecchia checca isterica, sono stato tentato di lasciarti al tuo infame destino . . . Comunque, al momento non ho buone notizie: sul mio hard disc non c'è e non ho al momento il tempo per verificare se ne ho fatto il backup da qualche parte. Se non lo trovo mi sa che dovrò rifare la modifica e ricreare la demo, cosa che non potrò fare in tempi brevi . . . So che Kylock ne ha fatto una buona conversione per il VX, che include più effetti e prevede già lo switch di attivazione/disattivazione del sistema di luci, ma non so se possa funzionare senza modifiche anche nell'XP . . . Mi spiace . . .
  19. Visto che il grosso dell'array viene ordinato all'inizio e resta abbastanza invariato come composizione, invece di fare mioarray.push(nuovo_elemento_in_coda) e rieseguire l'ordinamento, si potrebbe fare direttamente mioarray.insert(posizione, nuovo_elemento) dopo aver stabilito posizione tramite ricerca binaria/dicotomica che, vista la dimensione massima dell'array, dovrebbe richiedere nel peggiore dei casi 5 passaggi. Per il sorting iniziale puoi benissimo usare la funzione incorporata nel ruby mioarray.sort! (che equivale a mioarray = mioarray.sort), specificando il criterio di ordinamento se diverso da quello tradizionale . . .
  20. Prova ad usare qualcosa del genere if rand(100) >= 50 $game_player.damage = dmg/3 # o diviso quello che ti pareelse use_shieldend rand(100) genera a caso un numero tra 0 e 99. Il blocco esegue il danno ridotto se tale numero è almeno 50 e l'uso dello scudo, senza calcolare danni, se è minore di 50 . . . Ossia, in questo caso, la probabilità per ciascuna è del 50%. Metti al posto del 50 un altro valore se vuoi che abbiano probabilità diverse, tenendo conto che aumentandolo la percentuale va in favore dell'uso dello scudo, ossia se mettessi 60 la percentuale per il danno ridotto sarebbe 40% e 60% per l'uso dello scudo.
  21. E' così perchè rpg maker XP supporta l'uso del gamepad, che non ha i tasti con l'alfabeto. Affinchè i tasti corrispondano devi usare un Input Module, ossia uno script fatto apposta per sfruttare tutta la tastiera (ed in alcuni casi anche il mouse). Che un eventuale gamepad non potrà comunque sfruttare, quindi . . . Se premi F1 mentre giochi, in modalità test o normalmente, si attiva un pannellino di configurazione che permette tra le altre cose di cambiare le associazioni tra buttons e tasti corrispondenti, anche se i tasti utilizzabili sono comunque un numero ridotto/limitato . . .
  22. Dovrebbe bastare aggiungere il percorso nelle due istruzioni che verificano e caricano i file, ossia nella riga 2 del blocco da inserire in when 0 e e nella riga 5 dei due metodi trascritti. Es 1. Cartella Save dentro la cartella principale del gioco saves = (Dir.glob('Save/Save*.rvdata').size > 0) file = File.open("Save/Save#{findex}.rvdata", "rb") Es 2. Cartella Save nella sottocartella Data del gioco saves = (Dir.glob('Data/Save/Save*.rvdata').size > 0) file = File.open("Data/Save/Save#{findex}.rvdata", "rb") Attenzione che il percorso è case sensitive, ossia le minuscole sono considerate differenti dalle maiuscole della stessa lettera. In ruby funziona, in RGSS2 non lo so . . .
  23. In caso non sia attuabile l'opzione indicata da Silver Element e qualcuno ti possa indicare una soluzione migliore, puoi provare a fare così: Nel when 0 lasciato vuoto inserisci questo codice # when 0saves = (Dir.glob('Save*.rvdata').size > 0)unless saves Sound.play_buzzer returnelse Sound.play_load do_loadend# when 1 poi incolla questi due metodi, presi quasi pari-pari da Scene_File, all'interno del tuo script Come sempre, ricordo che non ho il VX, quindi non l'ho potuto testare . . . P.S.: Ma l'end che chiude la classe è andato perduto nel copiare lo script dentro il post o te lo sei dimenticato ?
  24. Basta leggere le istruzioni . . . MAP_RECT = [410, [color="red"]20[/color], 100, 100] # Grandezza e disposizione della minimappa # [X, Y, Larghezza, Altezza] # Si può modificare questi parametri nel gioco facendo un "call script": # $game_system.minimap = [X, Y, Larghezza, Altezza] cioè: X per la posizione orizzontale della minimappa Y per la posixzione verticale (aumentare il valore per abbassarne la posizione) Larghezza della minimappa Altezza della minimappa
  25. Dati di ogni Battle Animation: $data_animations[id_nel_db] Sopra il player $game_player.animation_id = id_nel_db Sopra evento $game_map.events[id_evento].animation_id = id_nel_db
×
×
  • Create New...