Les fonctions disable et enable font disparaître ou aparaître des objets ou personnages en disable l'objet est invisible et n'entre pas en collision avec les autres objets mais un script peut s'activer lorsque l'on rentre dans la cellule.
Ces fonctions sont assez symaphatiques pour créer par exemple quelques piéges
Exemple de dalle piégée
Ce script permet de créer une dalle piégée qui disparait lorsque le joueur marche dessus. Le script en lui-même est à associer à un misc item posé au centre de la dalle. En raison du fait qu'on ne peut associer un script à un static, c'est en effet le script à associer à ce misc item qui fera disaparaitre la dalle, ce qui entraine que si plusieurs dalles piégées sont plaçées dans une même cellule, elles disparaitront tous en même temps lorsque le joueur marchera sur l'une d'entre elles.
Note : Pensez à mettre un étage en dessous si vous ne voulez pas voir votre personnage tomber dans le néant :-).
begin dalle_1 Short start ; On disable le misc item qui ne sert qu'à porter le script faisant disparaitre la dalle. disable if(start==1); tant que le joueur n'a pas activé le piége return endif if(start==0) If ( GetDistance Player <= 50 ); distance < 50; pour être sûr que le joueur se trouve au centre de la dalle MessageBox "Piége" in_dae_room_l_floor_02_01->disable; in_dae_rom_floor_02_01 est le nom de la ou des dalles (s'il y en a plusieurs toutes les dalles disparaîssent). set start to 1; le piége s'est déclanché endif endif ; ici on peut remettre le piége en place lorsque le joueur sort de la cellule en faisant réaparaître la dalle. end dalle_1
Autre exemple de l'emploi de ces fonctions pour créer un guet-apens.
Nous sommes dans un couloir et dans ce couloir, quatre personnages (perso_a, perso_b, perso_c, perso_d) et un objet ou un autre perso un peu plus loin sur lequel sera mis ce script.
Begin guetapens short cache objet_a->Disable; on disable l'objet qui contient le script ;cache sera mis à 1 lorsque l'action débutera dans ce cas le script ne doit pas revenir pour recommencer if(cache==1) return endif ; ici on teste si le script doit être lancer avec un index de journal ou si les quatre personnages sont morts if(perso_a->Ondeath==1) if(perso_b->Ondeath==1) if(perso_c->Ondeath==1) if(perso_d->Ondeath==1) return; ils sont morts donc return endif endif endif endif ; lorsque le joueur rentre dans la cellule on cache les personnages if (cache==0) perso_a->disable perso_a->disable perso_a->disable perso_a->disable endif if(getdistanceplayer < 150) return; ici on ressort si le joueur est trop loin de l'objet else set cache to 1 perso_a->enable perso_a Startcombat player perso_b->enable perso_b Startcombat player perso_c->enable perso_c Startcombat player perso_d->enable perso_d Startcombat player endif ; normalement ici les quatre personnages apparaîssent dans le dos du joueur et l'attaquent End guetapens
Il y a d'autres exemples que l'on peut faire avec ces deux fonctions par exemple faire balader un personnage avec la fonction AItravel de telle façon qu'il arrive devant une porte et là on fait un disable et cela donne l'impression que le personnage est rentré dans la maison.
Il n'y a pas bcp de limite juste l'imagination. Bon courage.