Rpg˛S Forum uses cookies. Read the Privacy Policy for more info. To remove this message, please click the button to the right:    I accept the use of cookies

Vai al contenuto

Rpg˛S Forum uses cookies. Read the Privacy Policy for more info. To remove this message, please click the button to the right:    I accept the use of cookies

Screen Contest #90

Kamikun






  • Si prega di effettuare il log in prima di rispondere
Aiuto con Mog battle Hud

    Lerry
  • Nuovo Arrivato

  • Utenti
  • Rens: 6
  • 2
  • Stelletta
  • 75 messaggi
  • Sesso:Maschio
  • Abilitā:Iniziato

#1 Inviato 26 August 2016 - 19:04 PM

Ciao a tutti, usando lo script riportato sotto di mog hunter (script enorme) ho creato una hud personalizzata per il mio gioco, e fin qui tutto bene

L'unico problema è che quando il mio personaggio viene colpito, la sua barra degli hp non decresce come dovrebbe.

Vi faccio un esempio

Es. Inizia la battaglia (userò gli uguali per far capire che è la barra degli hp) e la vita è ======== (8 uguali)

Vengo colpito e la barra rimane così ========(8 uguali)

Continua così per un paio di round (a 8 uguali) e poi dopo aver tolto un altro ammontare di vita la barra comincia a scendere regolarmente ======= (7 Uguali).

Vorrei sapere come poter impostare la barra in modo che scenda in modo attinente alla reale percentuale di vita. (non so se mi sono spiegato, visto che saltando alcuni passaggi di riduzione del danno la barra non corrispondeva alla vita attuale)

Vi lascio lo script

http://pastebin.com/AmSqiRpq

 

Per aiutarvi posso dire che La barra HP_Meter è quella che viene disegnata sullo schermo (Mp_meter per gli mp ecc...)

E che c'è il mio settaggio non prevede il gradient, ma prevede la riduzione animata (La barra rossa che indica quanta vita è andata via).

Non so proprio come impostarlo secondo le mie esigenze. E se c'è una parte che controlla questa animazione e modificarla per la lunghezza della mia barra.

Grazie a tutti coloro che mi aiuteranno

EDIT

Ho trovato un altro errore (probabilmente collegato al primo) la barra della vita si esaurisce ancora prima che io abbia finito i miei HP


Modificato da Lerry, 26 August 2016 - 19:57 PM.


    Exim Gealbhonn
  • Utente avanzato

  • Utenti
  • Rens: 49
  • 2
  • StellettaStellettaStelletta
  • 355 messaggi
  • Sesso:Maschio
  • Abilitā:Esperto

#2 Inviato 26 August 2016 - 22:35 PM

Io ho programmato per il gioco a cui sto lavorando un HUD, quindi potrei aiutarti, ma sarebbe il caso che tu postassi una demo con lo script (o meglio tutti gli script che usi) e tutta la grafica (ha già provato a vedere se mettendo lo script in un progetto vuoto ti causa lo stesso problema?)



    Lerry
  • Nuovo Arrivato

  • Utenti
  • Rens: 6
  • 2
  • Stelletta
  • 75 messaggi
  • Sesso:Maschio
  • Abilitā:Iniziato

#3 Inviato 27 August 2016 - 10:22 AM

Nel progetto vuoto non funziona comunque, eccoti la demo:

https://www.dropbox....ovaHud.rar?dl=0


Modificato da Lerry, 27 August 2016 - 10:22 AM.


    Exim Gealbhonn
  • Utente avanzato

  • Utenti
  • Rens: 49
  • 2
  • StellettaStellettaStelletta
  • 355 messaggi
  • Sesso:Maschio
  • Abilitā:Esperto

#4 Inviato 27 August 2016 - 11:43 AM

Ho trovato il problema, era il più stupido del previsto, te lo assicuro. Praticamente per simulare gli hp che calano l'immagine viene tagliata proporzionalmente alla tua vita seguendo questa espressione

meter_width = @hp_meter_cw * @actor.hp / @actor.mhp rescue nil

(cosa che non c'entra nulla, ma MOG davvero si aspetta la possibilità che gli hp massimi di un personaggio possano essere 0? Cioè non ha senso xD)

 

questa espressione è ricavata ovviamente dalla seguente proporzione

 

HP_Massimi : Larghezza_dell'immagine = HP_Attuali : X

 

Il punto è che considera TUTTA la larghezza dell'immagine, anche le parti invisibili! Quindi se fai coincidere gli estremi dell'immagine con gli estremi della barra hai risolto (naturalmente devi anche sistemare un poco le cordinate delle barre nella configurazione dello script)!

 

Se hai ancora domande chiedi pure!


Modificato da Sora Keyblade, 27 August 2016 - 11:54 AM.


    Lerry
  • Nuovo Arrivato

  • Utenti
  • Rens: 6
  • 2
  • Stelletta
  • 75 messaggi
  • Sesso:Maschio
  • Abilitā:Iniziato

#5 Inviato 27 August 2016 - 12:12 PM

Ah, ecco cosa era! Dannate parti invisibili!  :biggrin:  E io ieri che scleravo dopo ore a cercare di fare un hud quantomeno decente e poi trovarmi questo problema  :sad:  :wacko:

Okay, si ho inteso la formula, essendo le parti ritagliate maggiori della barra effettiva era ovvio che non coincidevano!

L'unica domanda è riguardo al linguaggio dello script, rescue nil praticamente lancia un eccezione se gli mhp (hp totali) sono 0? (nil) (scusa ma sto ancora imparando a comprendere questo linguaggio)

 Per il resto grazie mille  :biggrin:


Modificato da Lerry, 27 August 2016 - 12:13 PM.


    Exim Gealbhonn
  • Utente avanzato

  • Utenti
  • Rens: 49
  • 2
  • StellettaStellettaStelletta
  • 355 messaggi
  • Sesso:Maschio
  • Abilitā:Esperto

#6 Inviato 27 August 2016 - 13:38 PM

Ah, ecco cosa era! Dannate parti invisibili!  :biggrin:  E io ieri che scleravo dopo ore a cercare di fare un hud quantomeno decente e poi trovarmi questo problema  :sad:  :wacko:

Okay, si ho inteso la formula, essendo le parti ritagliate maggiori della barra effettiva era ovvio che non coincidevano!

L'unica domanda è riguardo al linguaggio dello script, rescue nil praticamente lancia un eccezione se gli mhp (hp totali) sono 0? (nil) (scusa ma sto ancora imparando a comprendere questo linguaggio)

 Per il resto grazie mille  :biggrin:

In sostanza sì, ma ti spiego il perché. Tieni bene a mente che i computer, o i calcolatori in generale, possono lavorare solo con i numeri reali.

 

rescue è un comando che previene il lancio di un'eccezione da parte del gioco, infatti in caso si presentasse un errore nella parte di codice che lo precede lo sostiuirebbe con la parte di codice che segue. In questo caso se

 

@hp_meter_cw * @actor.hp / @actor.mhp  lanciasse un'eccezione sosituirebbe il codice con nil

 

Ora l'espressione per calcolare quanto tagliare la barra è alquanto semplice e non presenta particolari condizioni di esistenza (sempre per esistere all'interno dei numeri reali), tranne che il valore per cui si divide (ossia @actor,mhp nel nostro caso) sia diverso da 0, infatto un qualsiasi numero diviso per 0 dà come risultato un numero fuori dai numeri reali (per esempio prova a fare 3/0 sulla calcolatrice) e il gioco ti darà un'eccezione.

 

Il fatto inusuale è che MOG abbia messo un controllo del genere considerando che la variabile @actor.mhp non sarà mai uguale a 0 (rpg maker stesso ti blocca una cosa del genere oltre a non avere senso di per sé).



    Lerry
  • Nuovo Arrivato

  • Utenti
  • Rens: 6
  • 2
  • Stelletta
  • 75 messaggi
  • Sesso:Maschio
  • Abilitā:Iniziato

#7 Inviato 27 August 2016 - 13:46 PM

Ah, ho capito, in teoria avrebbe messo una condizione che bloccherebbe l'errore e lo sostituirebbe con un valore nullo (nil) Ma dato che l'errore non può esserci visto che rpg maker blocca in automatico gli mhp sotto lo zero (minimo 1) è qualcosa di inutile.

Grazie della spiegazione =D






  • Feed RSS