Jump to content
Rpg²S Forum

Sleeping Leonhart

Utenti
  • Posts

    569
  • Joined

  • Last visited

Everything posted by Sleeping Leonhart

  1. Sono un po di fretta ma provo a risponderti comunque. Allora per capire quanto dura un secondo come credo avrai capito devi vedere il frame rate, quindi l'immagine per attraversare lo schermo ci mette, (640 / frame_rate) secondi, nel caso di 40 FPS ci mette 16 secondi con lo spostamento di un pixel ad ogni update. Non occorre nessun wait, ti basti sapere che la funzione update è chiamata una volta a frame e quindi ti puoi regolare di conseguenza, non so fai un contatore che ti conta n frame e poi si riazzera quando ha raggiunto n e gli fai fare quello che vuoi (pratica molto usata, mi sembra anche gli eventi fanno così), ti prendi il resto della divisione del frame_count per vedere se sono passati tot frame o secondi (questa non so quanto sia affidabile xD), puoi sbizzarrirti come più ti piace, non è poi tanto difficile dopo che ci prendi la mano. Per quanto riguarda il frame_rate, quello dovrebbe rimanere invariato a meno che non lo cambi, solo che come hai detto tu il tuo pc ne riproduce di meno a schermo (credo, dovrei approfondire con qualche esperimento). Altra cosa, perchè usi tutte variabili globali? è solo un esempio vero? Altra cosa, in questo caso (come in molti casi in rpg maker) la creazione di altri thread è prettamente inutile, ti conviene mettere tutto in un metodo update che poi richiamerai ad ogni aggiornamento.(scusa la spiegazione da cani ma meglio di così non riesco a spiegarmi :P) Ora vado che mi stanno trascinando via dal PC, buona pasqua e buona programmazione
  2. Devi seguire il consiglio di Barèch, non ho tempo per spiegarti meglio, ora scappo.
  3. Ah ok ho capito, ti esce un inseime di lettere e numeri poichè un ogetto è sostanzialmente una struct in C, se la assegni a una variabile e poi la rileggi dovrebbe ridarti l'ogetto come lo hai trascritto.
  4. 1) Serve quando vuoi modificare un metodo senza sovrascriverlo, in poche parole l'alias contiene il vecchio metodo, esempio def ciccio print "A"end alias old_ciccio cicciodef ciccio old_ciccio print "B"end Quando chiami ciccio questo ti stamperà A e poi B 2) Come fai a non capire un ciclo semplice come il for? Comunque il for è costituito così for indice in espressione fai qualcosaend nell'indice andrà a finire ciascun valore dell'espressione, esempio for i in 0...3 print iend Stampa 0 1 2 3)Si esatto, in questo caso ti sono utili gli alias che ti ho spiegato sopra se magari vuoi modificare un metodo ma non sovrascriverlo Se non capisci qualcosa sono a tua disposizione
  5. Sei fortunato in quanto ho appena finito un bs laterale e quindi ti posso dare qualche suggerimento, ti anticipo però che l'ho fatto modificando il bs standard e non ricreando le classi da 0 così da mantenere una buona compatibilità con gli script standard e con quelli creati da terzi. Allora io ho fatto così: In Game_Battler ho messo la gestione dei parametri quali coordinate del battler, calcolo del frame da mostrare, nome della grafica e altro, in Sprite_Battler invece ho messo la gestione del movimento del battler, la visualizzazione del frame, il movimento del battler verso il nemico e altra robaccia. Il Game_Battler viene passato allo Sprite_Battler come parametro @battler (in poche parole come fa rpg maker) e dal battler si prende tutte le informazioni che gli servono. Per quanto riguarda le domande ti rispondo in ordine: 1) Puoi mostrare quante immagini vuoi, almeno finchè Rpg Maker riesce a tenerle, poi dipende anche dal PC su cui gire Rpg Maker credo. 2) Si, puoi usare la funzione blt e stretch_blt della classe bitmap, ti consiglio di guardartele sulla guida di Rpg Maker perchè io spiego da cane. 3) Io non conosco la funzione wait, conosco la funzione sleep che ti stoppa l'esecuzione per n secondi, il wait degli eventi invece è un aggiornamento "a vuoto" dell'evento, nel senso che aggiorna l'evento senza fargli eseguire le operazioni listate al suo interno. 4) Cosa intendi per salvare la variabile? Cioè se vuoi salvare un oggetto su file usa il metodo Marhsal.dump(oggetto, file) e poi per caricarlo usa il metodo ogetto = Marshal.load(file) La pressione di F9 mostra semplicemente i valori delle switch e delle variabili facendo riferimento a $game_switches e $game_variables, non serializza nulla.
  6. vai in Game_Party, dovresti trovare questo: def gain_item(item, n, include_equip = false) number = item_number(item) case item when RPG::Item @items[item.id] = [[number + n, 0].max, 99].min when RPG::Weapon @weapons[item.id] = [[number + n, 0].max, 99].min when RPG::Armor @armors[item.id] = [[number + n, 0].max, 99].min end n += number if include_equip and n < 0 for actor in members while n < 0 and actor.equips.include?(item) actor.discard_equip(item) n += 1 end end end end Cambia i 99 con ciò che vuoi. I negozi però ti venderanno sempre 99 ogetti al massimo, per cambiare vai per prima cosa in Window_ShopBuy e cambia il 99 all'interno di questo codice con il numero da te deciso. enabled = (item.price <= $game_party.gold and number < 99) Successivamente vai in Scene_Shop e cambia i 99 che trovi qui nel numero scelto def update_buy_selection @status_window.item = @buy_window.item if Input.trigger?(Input::B) Sound.play_cancel @command_window.active = true @dummy_window.visible = true @buy_window.active = false @buy_window.visible = false @status_window.visible = false @status_window.item = nil @help_window.set_text("") return end if Input.trigger?(Input::C) @item = @buy_window.item number = $game_party.item_number(@item) if @item == nil or @item.price > $game_party.gold or number == 99 Sound.play_buzzer else Sound.play_decision max = @item.price == 0 ? 99 : $game_party.gold / @item.price max = [max, 99 - number].min @buy_window.active = false @buy_window.visible = false @number_window.set(@item, max, @item.price) @number_window.active = true @number_window.visible = true end end end
  7. Bello Bello, appena si fixa il problema con lo spoiler diventa perfetto :rovatfl:
  8. In Game_Battler 3 sostituisci atk = [attacker.atk - self.pdef / 2, 0].max self.damage = atk * (20 + attacker.str) / 20 con self.damage = ((attacker.str / 100) - (self.pdef / 100) + 6) / 2 * 100 L'arrotondamento è per difetto in quanto considera solo la parte intera del numero.
  9. Non ti ho mica capito? Roba tipo ((attacker.str / 100) - (self.pdef / 100) + 6) / 2 - (attacker.str / 100) - 1 Sono giusti?(attacker è l'attaccante, self è il difensore, pdef è la difesa fisica e str è la forza) Altrimenti spiega un po meglio i calcoli da fare.
  10. A fare si può fare, ma devi essere più esplicito con la richiesta, che vuoi mostrare? Oggetti? Armi? Banane?
  11. Perchè non implementate un evidenziatore di sintassi?(Tipo questo) Secondo me sarebbe molto comodo, oltre a rendere la vita un po più facile agli scripter potrebbe essere utile per un bug fixing rapido, del tipo: "Aiuto mi da errore alla linea 666" lo scripter guarda il codice tutto bello colorato e trova la linea da sistemare, e se è una cosa rapida la sistema in un nanosecondo. Inoltre fa molto cool & profescional
  12. Prima pagina degli eventi penultimo comando ;)
  13. Fatto in 5 minuti Se non vuoi il rettangolo di selezione standard cancellalo dalla windowskin. Ogni frame del cursore deve stare in un quadrato la cui larghezza deve essere pari all'altezza totale dell'immagine, il resto è quasi tutto configurabile.
  14. Con calma xD non sto mica sempre davanti al pc. Ho preso la demo del Takentai XP e ci ho fatto sopra questa versione, vedi se funziona: Va messo sotto lo script dell'ATB, non l'ho testato con gli overdrive e tutti quegli altri ammenicoli, non mi andava, troppa roba.
  15. Preso direttamente dall'help, cambia il valore di @_damage_sprite.y e ti sistemi la y come vuoi. Incollalo sopra tutti gli script, credo che dovrebbe andare
  16. MMM vediamo, per prima cosa cambia attr_reader :licenseboard in attr_accessor :licenseboard poi usa grid = GridPanel.new grid.type = "Skill" grid.value = IDSKILLDAAPPRENDERE grid.ap = COSTOINLP $game_party.actors[POSIZIONEMEMBROPARTY].licenseboard[1][NUMEROLICENZA] = grid Le scritte in maiuscolo sono i valori che devi mettere tu. POSIZIONEMEMBROPARTY parte da 0 e non da 1
  17. Ti crei una condizione con Limitazione Non Può agire e in Condizioni di Recupero metti 3 Turni dopo si recupera al 100% Poi fai che la skill Time Stop infligge quella condizione. Per capirci: http://img293.imageshack.us/img293/7836/hrsfdgs.png Niente script xD
  18. Aaaaallora in Scene_LBoard aggiungi a def initialize(actor) questo @index = @actor.index devi metterlo sotto @actor = actor Poi in def update_command_selection aggiungi if Input.trigger?(Input::L) $game_system.se_play($data_system.cursor_se) @index = (@index + $game_party.actors.size - 1) % $game_party.actors.size $scene = Scene_LBoard.new($game_party.actors[@index]) return end if Input.trigger?(Input::R) $game_system.se_play($data_system.cursor_se) @index = (@index + 1) % $game_party.actors.size $scene = Scene_LBoard.new($game_party.actors[@index]) return end Dovrebbe funzionare ;)
  19. License Board System Descrizione Mero copia/incolla del topic della versione VX. Questo script simula il sistema di licenze di Final Fantasy XII. Autore The Sleeping Leonhart Allegati Demo Script Istruzioni per l'uso Inserire il file BoardSystem in Pictures(gia incluso nella demo) Per far apparire la scacchiera delle licenze usare: $scene = Scene_LBoard.new(eroe) Bugs e Conflitti Noti N/A Altri Dettagli Non ho messo la possibilità di dover comprare le licenze prima di poterle usare, mi stavo un po antipatica come cosa se volete però l'aggiungo come possibilità. Scusate la pesantezza del file me un exe in ruby compilato occupa uno sproposito.
  20. Ho aggiornato lo script poichè avevo trovato uno stupido bug, comunque di quelli segnalati io ho provato in tutti i modi ma non li ho trovati, se mi dite le condizioni precise in cui vi sono usciti magari riesco a trovarli. @Narutofan: Per capire cosa sono le licenze guarda QUI (uno dei primi risultati di google che spiegano cosa sono le licenze). Inoltre ho provato a spiegarlo un po anche nella guida che sta nella demo.
  21. Da l'errore che hei segnalato sembra che tu non abbia assegnato nessun valore a $gold_dapag. Prima di eseguire lo script assegna a $gold_dapag un valore numerico.
  22. Ho gia fatto il porting per XP appena riesco a prendere possesso del PC lo posto. Per quanto riguarda i bug io non ne ho riscontrato nessuno, devo indagare meglio.
  23. License Board System Descrizione Questo script simula il sistema di licenze di Final Fantasy XII. Autore The Sleeping Leonhart Allegati Demo Script Istruzioni per l'uso Inserire il file BoardSystem in System(gia incluso nella demo) Per far apparire la scacchiera delle licenze usare: $scene = Scene_LBoard.new(eroe) Bugs e Conflitti Noti N/A Altri Dettagli Non ho messo la possibilità di dover comprare le licenze prima di poterle usare, mi stavo un po antipatica come cosa se volete però l'aggiungo come possibilità. Scusate la pesantezza del file me un exe in ruby compilato occupa uno sproposito.
×
×
  • Create New...