Où sont définies tes fonctions
get_Etape et
set_Etape ? Elles doivent être définies dans le ficheir .asc qui correspond au fichier .ash où tu définis la
struct. Et il me semble que dans ce fichier .asc, justement, tu peux pas
directement utiliser
.Etape comme tu le fais : tu dois utiliser
set_Etape et
get_Etape, précisément. Les
attribute ne sont pas des "vraies" variables, en vrai lorsque tu y fais référence ça va justement chercher une de ces fonctions selon le contexte. Mais tu as besoin de stocker une valeur dans une variable quand même, c'est pourquoi tu as déclaré
protected int etape : une variable qui n'est pas accessible en dehors des fonctions importées dans la
struct, mais que tu vas justement manipuler dans
set_Etape et
get_Etape.
Au final, tu veux un script un peu comme ça (probablement avec une fonction
set_Etape un peu plus sophistiquée) :
- Code:
-
// module script .asc
String memo_txt[10];
Objectif quete[10];
int Objectif::get_Etape() {
return this.etape;
}
void Objectif::set_Etape(int etape) {
this.etape = etape;
}
//
function game_start()
{
quete[0].set_Etape(-1);
quete[0].name = "A";
quete[1].name = "B";
quete[1].set_Etape(-1);
for(int i = 0; i <10; i++){
memo_txt[i] = "";
}
}
function ini_quete(int Q, int E){
int q_step = -1;
quete[Q].set_Etape(E);
q_step++;
if(q_step == 0) {
if (quete[0].get_Etape() == 0) memo_txt[0] = "A0[";
if (quete[0].get_Etape() == 1) memo_txt[0] = memo_txt[0].Append("[A1[");
//////////////////////FIn quete 0
////////////////QUETE 1////
if (quete[1].get_Etape() == 0) memo_txt[1] = "B0[";
if (quete[1].get_Etape() == 1) memo_txt[1] = memo_txt[1].Append("[B1.[");
if (quete[1].get_Etape() == 2) memo_txt[1] = memo_txt[1].Append("[B2.[");
if(quete[Q].get_Etape() >= 0) quete[Q].description = memo_txt[Q];
q_step++;
}
//fin du q_step//
}
export quete;
Note que tu pourrais, et peut-être même que tu devrais, déplacer l'intégralité du code contenu dans
ini_quete vers
set_Etape justement : tu pourrais y vérifier la valeur de
etape et changer
memo_txt en conséquence. C'est toute la pertinence d'utiliser des attributs. Et comme ça tu pourrais depuis le global script ou les scripts de pièce (par exemple) faire directement
quete[5].Etape = 2; et ton module s'occupera de mettre automatiquement à jour
memo_txt dans les coulisses.
_________________
Ga is Ga
Vous pouvez consulter l'
aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !