[editato il 13/02/2007]
Supponiamo di voler creare un cavaliere che sappia usare sia la lancia che la spada e di dargli le abilità di lancia e di spada predefinite. Ora però desidereremmo che potesse usare le abilità con la spada solo quando ha la spada e quelle con la lancia solo quando ha la spada.
Creiamo una classe che possa usare sia le abilità del guerriero che del lanciere, e un personaggio che chiameremo Lanceloth che appartenga a tale classe
Per prima cosa ci servono delle abilità con lo stesso nome di quelle che possiede il nostro personaggio, ma che costino zero e non facciano nulla. Sono le abilità che verranno usate quando il personaggio non ha l’arma giusta, queste abilità non devono essere aggiunte alla classe.
Quindi creiamo le seguenti due abilità
Nome: Colpo a croce
Icona: 050-Skill07
Descrizione: Serve una spada per utilizzare Colpo della croce
Bersaglio: nessuno
Usabile in: Non usabile
Costo: 0
Il resto può essere lasciato così com’è
Nome: Sgambetto
Icona: 050-Skill07
Descrizione: Serve una lancia per utilizzare Sgambetto
Bersaglio: nessuno
Usabile in: Non usabile
Costo: 0
Il resto può essere lasciato così com’è
Ora ci serve un evento comune nel database per scambiare le abilità, a seconda di quale arma sia equipaggiata. Creiamo un un processo in parallelo con uno switch test armi per avviarlo.
Cominciamo con inserire un IF (linguetta 1) sulla linguetta 2 dell’IF scegliamo
- Eroe Lancheloth
- arma spada di bronzo
- aggiungi else
il risultato sarà
<> IF Eroe [Lanceloth] [Spada di Bronzo] è Equipaggiata
<>
ELSE
<>
END
<>
Mettiamoci dentro la prima condizione (l’eroe ha la spada di bronzo) e inseriamo un nuovo if
- Eroe Lancheloth
- Abilità colpo della croce (la nostra nuova versione)
In pratica ci stiamo chiedendo se Lancheloth abbia l’abilità della spada disabilitata ma sia in possesso della spada.
<> IF Eroe [Lanceloth] [Spada di Bronzo] è Equipaggiata
<> IF Eroe [Lanceloth] [Colpo della Croce] è Utilizzabile
<>
END
<>
ELSE
<>
END
<>
in questo caso dobbiamo togliere l’abilità disabilitata e aggiungere l’abilità funzionante.
Inseriamo il comando cambia magie (linguetta 3)
Eroe Lanceloth
Azione Dimentica
Magia Colpo della Croce (la nostra versione)
Inseriamo un secondo comando cambia magie (linguetta 3)
Eroe Lanceloth
Azione Dimentica
Magia Colpo della Croce (la versione originale e funzionate)
<> IF Eroe [Lanceloth] [Spada di Bronzo] è Equipaggiata
<> IF Eroe [Lanceloth] [Colpo della Croce] è Utilizzabile
<> Cambia Magie; [Lancheloth], – [Colpo della croce]
<> Cambia Magie; [Lancheloth], + [Colpo della croce]
<>
END
<>
ELSE
<>
END
<>
è da notare che la prima e la seconda riga di cambia magie si riferiscono a due incantesimi diversi anche se hanno lo stesso nome, poichè l’rpg macker usa il numero di indice nel database per sapere quale magia usare.
Ora occupiamoci dell’else. Se l’evento arriva in questo punto vuol dire che la spada non era equipaggiata. Allora dobbiamo domandarci se per caso la tecnica di spada è ancora attiva, nonostante noi non abbiamo una spada.
Inseriamo un IF
- Eroe Lancheloth
- Abilità colpo della croce (la versione funzionate)
Dentro l’IF mettiamo due cambia magie, un per togliere la versione funzionate della tecnica di spada e uno per aggiungere la versione non funzionate
La versone finale dell’evento sarà
<> IF Eroe [Lanceloth] [Spada di Bronzo] è Equipaggiata
<> IF Eroe [Lanceloth] [Colpo della Croce] è Utilizzabile
<> Cambia Magie; [Lancheloth], – [Colpo della croce]
<> Cambia Magie; [Lancheloth], + [Colpo della croce]
<>
END
<>
ELSE
<> IF Eroe [Lanceloth] [Colpo della Croce] è Utilizzabile
<> Cambia Magie; [Lancheloth], – [Colpo della croce]
<> Cambia Magie; [Lancheloth], + [Colpo della croce]
<>
END
<>
<>
non lasciatevi ingannare dai nomi uguali, i comandi si riveriscono a due versioni diverse della stessa abilità.
Questo comando va copiato per ogni tipo di spada previsto nel vostro gioco, cambiando l’oggetto presente nel primo IF. Altrimenti il personaggio con una spada di ferro non sarà in grado di usare l’abilità. Le varie if vanno nidificate e la parte di codice che rimuove l’abilità va messa per ultima
(a breve metterò un codice di esempio)
La stessa cosa va fatta per sgambetto, usando però le lance.
Per avviare il nostro evento comune creiamo un evento ad inizio automatico nella prima mappa del nostro gioco che setti ad on lo switch test armi e lo switch locale A
Creiamo una seconda pagina per l’evento con la
condizione switch locale A on
Mi piace:
Mi piace Caricamento...