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


  • Si prega di effettuare il log in prima di rispondere
statistiche di base mostrate nella descrizione dell' abilitā [mz]

    Ischenderun
  • Utente occasionale

  • Utenti
  • Rens: 15
  • 0
  • StellettaStelletta
  • 144 messaggi
  • Sesso:Non Specificato
  • Provenienza:Neverwinter
  • Abilitā:Novizio

#1 Inviato 24 December 2020 - 15:31 PM

Autore: io

Requisiti : plugin visustella core (il message sicuro)
Descrizione : se l'abilità è legata a uno o più statistiche di base del personaggio (attacco,difesa ecc.) queste vengono mostrate singolarmente e con totale nella sua descrizione (battaglia e fuori battaglia).

Credit : Visustella

 

Passo 1 : dedicate una variabile di gioco al contenimento di quello che sarà la gestione del totale . Nel caso da me trattato io ho usato la variabile con id 2 dandole il nome : salvo_tot
 
Codice e posizione : si usa la text macros del plugin message core di Visustella, il codice viene scritto direttamente li
 
Esempi:
24JHKBZ.png
3X2eUap.png
 
Procedura : aprire il plugin message core\Text macros
qP90Z9I.png
IHOWzzu.png
 
Scrivi il nome (questo ti servirà per richiamare il codice dalla descrizione dell'abilità). Elimina quello che trovi scritto  in STR: Text. Aggiungi il codice (che troverai sotto l'immagine) nella sezione JS: Text
VRI3YoP.png
Passo 2 : Bisogna creare 7 macro , una per ogni abilità e l'ultima per il totale . Il codice per le abilità è il seguente :
 
if (!$gameParty.inBattle()){
 let x = $gameParty.menuActor().actorId();
 for (o = 0; o < 42; o++){
  if ($gameActors.actor(x).hasSkill(o)){
   let y = $gameActors.actor(x).atk;
   let b = $gameVariables.value(2);
   let somma = y + b;
   $gameVariables.setValue(2,somma);
    return $gameActors.actor(x).atk;
  }
 }
} else {let a = BattleManager.actor().actorId();
   let y = $gameActors.actor(a).atk;
   let b = $gameVariables.value(2);
   let somma = y + b;
   $gameVariables.setValue(2,somma);
    return $gameActors.actor(a).atk;};
 
Questo è quello relativo all'attacco . Cambiare ogni 'atk' con la relativa abreviazione per tutte le altre abilità (def,mat,mdf,agi,luk).
Spiegazione codice:
1) controlla se il gruppo non è in battaglia
 
2) salva in una variabile l'id dell'attore selezionato dal menu
 
3) ciclo che racchiude tutti gli id del database (o , se volete, solo una parte di esso) abilità (sostituite il 42 con il numero massimo del vostro database abilità + 1 )
4) (il precedente ciclo mi serve per questo controllo). Controlla se l'attore che è stato selezionato dal menu possiede una delle abilità del database
 
5) salvo il valore attacco dell'attore selezionato in una variabile locale
6) salvo il valore della variabile di gioco con id 2 in una variabile locale (questo mi serve x calcolare il futuro totale)
 
7/8/9) in pratica aumento la variabile di gioco con id 2 di = suo valore + statistica dell'attore selezionato
 
10) (il return) restituisco il valore della statistica dell'attore selezionato a quello che sarà il mio comando per richiamarlo .
 
blocco else = fa le stesse cose delle precedenti istruzioni tranne che considera l'id dell' attore attualmente attivo in battaglia ( . BattleManager.actor().actorId();)
Questo blocco viene usato durante la battaglia.
 
Codice per il totale  :
let a = $gameVariables.value(2);
$gameVariables.setValue(2,0);
return a;
 
 
Spiegazione :
1) salvo l'attuale valore in una variabile locale
2) resetto la variabile di gioco con id 2 a zero (altrimenti aumenterebbe di continuo ad ogni selezione)
3) restituisco il valore del totale (prima che venga azzerato) a quello che sarà il mio comando per richiamarlo
 
 
In descrizione abilità : Ricordate i return ? , vengono richiamati dai comandi inseriti tra parentesi quadre (che sono anche i titoli che abbiamo dato alle macro). Ovviamente il tutto deve essere coerente con la formula danno da voi inserita
CkxfKNI.png

 

Fine .

 

Precisazione : non sono un programmatore esperto(sto cercando di imparare) e questo codice ha delle evidenti limitazioni (non può fare operazioni e forse è pure molto rozzo).

 

Per i motivi sopra citati chiedo a chi ne sa più di me qualche suggerimento su come migliorare questo codice


praticate gentilezza a casaccio e atti di bellezza privi di senso
Non ho particolari talenti, sono soltanto appassionatamente curioso.




  • Feed RSS