Exemple de script
Remarque : les noms de fonctions sont dans cet exemple en majuscules, cependant il est possible de les écrire sous toutes les formes (minuscules, ou mélange de majuscules et de minuscules). Seules les instructions if, then, else, endif doivent être en minuscule impérativement.
#Création et animation d'un hélico :
#############################################
### Init les données de départ du script
#On crée l'helico :
{
IA(HELICO;3000;210;1;1,4;1,4;100;1;2)
setIDIA(HELICO1)
OMBREIA(1;0;1 250;0,8;0,5;2500)
IA_VISIBLE(1)
IADESTROYONRELOAD(HELICO1;1)
PLAYSON(HELICO;2) #son des pales
bDommages=0
vieMax=getIaLifeMax(HELICO1)
vieDommages=vieMax/2
timerTir=0
}
#On fait avancer l'hélico:
{
KP_INIT(1)
KPG(2;10;0,50;0,50;20;0;-1)
KP(3000;100;1,4;1,4;-10;255;255;255;255;0;0;-1;-1;-1;-1)
KP(1350;210;1,4;1,4;-10;255;255;255;255;0;0;-1;-1;-1;-1)
KP(1289;210;1,4;1,4;-25;255;255;255;255;0;0;-1;-1;-1;-1)
}
#On bloque le script tant que l'hélico n'est pas arrivé à destination:
ATTENDRE_FIN_ANIMKP()
#Helico en surplace une fois arrivé:
{
KP_INIT(1)
KPG(2;4;0,50;0,50;40;0;-1)
KP(1 300;210;1,4;1,4;-30;255;255;255;255;0;0;-1;-1;-1;-1)
KP(1 100;338;1,4;1,4;-35;255;255;255;255;0;0;-1;-1;-1;-1)
KP(1 400;450;1,4;1,4;-30;255;255;255;255;0;0;-1;-1;-1;-1)
KP(1 500;250;1,4;1,4;-35;255;255;255;255;0;0;-1;-1;-1;-1)
}
#############################################
### Boucle principale du script
:GESTION
bVisible=isIaVisible(HELICO1)
if (bVisible=1)
#visible : gestion des dégats sur l'helico
vie=getIaLife(HELICO1)
if (vie<=0)
#mort !
GOTO(MORT)
else
if (bDommages=0)
if (vie<vieDommages) then GOTO(DOMMAGES)
else
#helico endommagé=> les pâles font un bruit avec pause:
PLAYSON(HELICO;1) #son des pales avec ratés
endif
endif
#Gestion du tir: l'helico tire à intervalle régulier sans chercher à viser Mars
if (timerTir>=2)
timerTir=0
IA_TIRER(HELICO1)
else
timerTir=timerTir+1
endif
else
#pas visible => on stoppe le script
GOTO(FINSCRIPT)
endif
GOTO(GESTION)
#############################################
:DOMMAGES
{
INITIADEF(HELICO1)
ADD_OVER(OVER_HELICO_FUMEE;FUMEE_FEU;HELICO1;;0;-110;1;1;15;1;-1)
bDommages=1
}
#On rallie un point commun :
{
KPG(2;6;0,50;0,50;40;0;-1)
KP(1 300;200;1,4;1,4;-15;255;255;255;255;0;0;-1;-1;-1;-1)
}
#On bloque le script tant que l'hélico n'est pas arrivé à destination:
ATTENDRE_FIN_ANIMKP()
#Helico en surplace :
{
KP_INIT(1)
KPG(2;6;0,50;0,50;40;0;-1)
KP(1 300;200;1,4;1,4;-15;255;255;255;255;0;0;-1;-1;-1;-1)
KP(1 300;700;1,4;1,4;-15;255;255;255;255;0;0;-1;-1;-1;-1)
}
GOTO(GESTION)
#############################################
:MORT
{
INITIADEF(HELICO1)
PLAYSON(EXPLOSION)
ADD_OVER(OVER_HELICO_FUMEE2;FUMEE_FEU;HELICO1;;-80;-110;2,5;1,4;15;1;-1)
ADD_OVER(OVER_HELICO_FUMEE3;FUMEE_FEU;HELICO1;;30;-150;1,4;1,1;15;1;-1)
}
#On rallie un point commun :
{
KPG(2;6;0,50;0,50;40;0;-1)
KP(1 300;100;1,4;1,4;-15;255;255;255;255;0;0;-1;-1;-1;-1)
}
#On bloque le script tant que l'hélico n'est pas arrivé à destination:
ATTENDRE_FIN_ANIMKP()
#Coupe le son des pales:
PLAYSON(HELICO;-1)
#Helico en surplace :
{
KP_INIT(1)
KPG(2;50;0,50;0,50;40;0;1)
KP(1 300;100;1,4;1,4;-15;255;255;255;255;0;0;-1;-1;-1;-1)
KP(1 300;930;1,4;1,4;-15;255;255;255;255;0;0;-1;-1;-1;-1)
}
#On bloque le script tant que l'hélico n'est pas arrivé à destination:
ATTENDRE_FIN_ANIMKP()
#Ok, l'helico est au sol : il explose en laissant la carcasse visible !
EXPLOSION("HELICO1";"")
#Animation de mort :
IAANIM(HELICO1;1)
#Coupe toute animation:
KP_INIT(0)
#Le script est terminé, on peut le quitter
GOTO(FINSCRIPT)
##############################
:FINSCRIPT