JeuxOnLineForumsPlusConnectés : 513 (sites) | 952 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Disparition de montre... RSS
   
Répondre
Partager Outils Rechercher
Avatar de Ambrosis
Ambrosis
Roi
 
Avatar de Ambrosis
 
Tu pige plus quoi, ce que je vien de dire ?
- La créature que je veu faire disparaitre, je lui ai mis un script, celui ci est un script pour que la créature reste en jeu quand elle est morte, elle est d'ailleur morte !
Lien direct vers le message - Vieux
Avatar de aldech
aldech
Dauphin
 
Avatar de aldech
 
Post
J'ai testé le script, il marche, il faut juste que la case
"static" ou "statique" (selon ta version du jeu) de ta créature à faire disparaitre soit décoché.
Lien direct vers le message - Vieux
Avatar de Ambrosis
Ambrosis
Roi
 
Avatar de Ambrosis
 
Oui il marche mai pas quand je rajoute ce script dans le OnSpawn de la créature :

Code PHP:
void main()
{
ActionDoCommand(SetIsDestroyable(FALSE));
ActionDoCommand(ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDeath(),OBJECT_SELF));

et maheureusement je veu le laisser.
Lien direct vers le message - Vieux
Avatar de Ambrosis
Ambrosis
Roi
 
Avatar de Ambrosis
 
Donc je pense que c'est a cause de la fonction SetIsDestroyable qui renvoie à False. :baille:
Donc je ne vois pas comment faire; si vous voyez faite moi signe !
Lien direct vers le message - Vieux
Avatar de Eowung
Eowung
Dauphin
 
Avatar de Eowung
 
NWNLexicon au sujet de la fonction SetIsDestroyable

"If you set an object to be undestroyable (which according to the
documentation only affects what happens upon death) the object will also be unaffected by DestroyObject. It is therefore important to only set
SetIsDestroyable(False) at the moment of the object's death. "


En gros ça veut dire que si on définit un object comme non destructible comme tu le fais dans ton OnSpawn, il n'est pas affecté par la fonction DestroyObject. Il est conseillé de n'affecter SetIsDestroyable(False) qu'au moment de la mort de l'objet.

Bon d'accord la traduction est un peu approximative mais c'est ça.
Lien direct vers le message - Vieux
Avatar de aldech
aldech
Dauphin
 
Avatar de aldech
 
Post
J'ai trouvé :

Mettre ce script dans l'évenement OnUserDefined
de ta créature à faire disparaitre
Code PHP:
void main()
{
     switch(
GetUserDefinedEventNumber())
    {
        case 
1234:
        {
            
SetIsDestroyable(TRUE);
            
DestroyObject(OBJECT_SELF);
        }
        break;
     }

Modifier le script comme ci-dessous :
Code PHP:
void ActionCreate(string sCreaturelocation lLoc)
{
    
CreateObject(OBJECT_TYPE_CREATUREsCreaturelLoc);
}
void main()
{
   
event eSpecialEvent EventUserDefined(1234);  // déclaration d'un évènement personnalisé
   
object oCreature GetNearestCreature(CREATURE_TYPE_PLAYER_CHARPLAYER_CHAR_IS_PC);
   if (
GetIsObjectValid(oCreature) == TRUE && GetDistanceToObject(oCreature) < 10.0)
   {
    
effect eMind EffectVisualEffect(VFX_FNF_SUMMON_UNDEAD);
    
string sCreature "resref créature créer";
    
location lLoc GetLocation(OBJECT_SELF);
    
DelayCommand(0.3ActionCreate(sCreaturelLoc));
    
ApplyEffectAtLocation(DURATION_TYPE_INSTANTeMindGetLocation(OBJECT_SELF));
    
SetPlotFlag(OBJECT_SELFFALSE);
    
DestroyObject(OBJECT_SELF0.5);
    
SignalEvent(GetNearestObjectByTag("Tag créature a faire disparaitre"), eSpecialEvent); // on appelle l'évenement de l'objet
   
}

Lien direct vers le message - Vieux
Avatar de Ambrosis
Ambrosis
Roi
 
Avatar de Ambrosis
 
Non ca ne marche pas, le corps du monstre n'est pas a terre et il ne disparait pas lorsque l'on utilise l'objet... *décu.... *
Lien direct vers le message - Vieux
Avatar de aldech
aldech
Dauphin
 
Avatar de aldech
 
Post
Désolé, mais moi cela marche très bien, je ne vois pas pourquoi cela ne marcherais pas pour toi, voilà comment j'ai mis en scène la situation :

Créature morte :

script dans le OnSpawn :

Code PHP:
void main()
{
ActionDoCommand(SetIsDestroyable(FALSE));
ActionDoCommand(ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDeath(),OBJECT_SELF));

script dans le OnUserDefined :

Code PHP:
void main()
{
     switch(
GetUserDefinedEventNumber())
    {
        case 
1234:
        {
            
SetIsDestroyable(TRUE);
            
DestroyObject(OBJECT_SELF);
        }
        break;
     }

Tas d'os :

script dans le OnHeartbeat ou dans le OnUsed selon le cas :

Code PHP:
void ActionCreate(string sCreaturelocation lLoc)
{
    
CreateObject(OBJECT_TYPE_CREATUREsCreaturelLoc);
}
void main()
{
   
event eSpecialEvent EventUserDefined(1234);  // déclaration d'un évènement personnalisé
   
object oCreature GetNearestCreature(CREATURE_TYPE_PLAYER_CHARPLAYER_CHAR_IS_PC);
   if (
GetIsObjectValid(oCreature) == TRUE && GetDistanceToObject(oCreature) < 10.0)
   {
    
effect eMind EffectVisualEffect(VFX_FNF_SUMMON_UNDEAD);
    
string sCreature "resref créature créer"//chez moi cela créé un squelette
    
location lLoc GetLocation(OBJECT_SELF);
    
DelayCommand(0.3ActionCreate(sCreaturelLoc));
    
ApplyEffectAtLocation(DURATION_TYPE_INSTANTeMindGetLocation(OBJECT_SELF));
    
SetPlotFlag(OBJECT_SELFFALSE);
    
DestroyObject(OBJECT_SELF0.5);
    
SignalEvent(GetNearestObjectByTag("Tag créature a faire disparaitre"), eSpecialEvent); // on appelle l'évenement de l'objet
   
}

EDIT : Si cela ne marche pas chez toi, je pense que soi tu as fait quelquechose de travers soi il manque un élément pour te répondre que tu aurais oublié de dire. Avec tous les éléments donnés ci-dessus et depuis le début de ce topic, tu devrais pouvoir t'en sortir.

:baille:
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Disparition de montre...
   

Outils Rechercher
Rechercher:

Recherche avancée

Les vidéos de Neverwinter Nights RSS
  • Aucune vidéo pour le moment...
Thème visuel : Fuseau horaire GMT +1. Il est actuellement 01h25.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite