La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 23/11/2024 20:23:26


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
warpShadow
Légende vivante
Inscrit le: 01 Fév 2005
Messages: 363
Localisation: Perpignan
Répondre en citant
Posté le : 24/08/2005 17:53:40 Sujet du message : activer des effets visuels placeable

salut !

je cherche le moyen de faire apparaitre une série d'effets viduels et d'enflammer des torches de cette maniere :

un placeable qui sert de switch on/off, qu'and on l'utilise (script sur onUse donc), ensuite des effets visuel placeable désactivés par défaut, qui s'activent quand on utilise le switch, et les torches qui s'alument en même temps que les effets s'activent. quand on réutilise le switch, tout se désactive.

voila merci beaucoup ^^ ++
_________________
Asphia
Module RP Médiéval Fantastique pour Neverwiner Nights
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Longbow
Grand Sage du Conseil
Inscrit le: 10 Déc 2003
Messages: 638
Localisation: Orléans
Répondre en citant
Posté le : 25/08/2005 10:09:42 Sujet du message :

Hum, hum...

Que dirais-tu de créer des objets invisbles à l'emplacement de tes torches lorsque tu "switch on"... Dans le Heart Beat de ces objets invisibles, tu mets un script avec l'effet visuel VFX_IMP_FLAME_S.

Quand le joueur "switch off", tu crées une boucle qui détruit tous les objets invisibles et donc tous les effets visuels...

Rq: je n'ai pas trouvé d'effet visuel de flamme, qui puisse avoir une durée permanente comme VFX_DUR_CESSATE_POSITIVE (qui peut donner un effet sympa et permanent...). Cela permettrait d'éviter le Heart Beat gourmand en ressources et utiliser plutôt le OnSpawn...

Voila pour une première approche de ta demande.
_________________
Rex illeteratus
Quasi Asinus Coronatus
Jean de Salisbury
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
warpShadow
Légende vivante
Inscrit le: 01 Fév 2005
Messages: 363
Localisation: Perpignan
Répondre en citant
Posté le : 26/08/2005 07:31:41 Sujet du message :

"hum hum ®" (Very Happy)

en fait, je sais pas du tout comment m'y prendre, c'est aussi pour ça que je demandais.

pour les torches, ce sont celles du cep, qui ont un script zep_torch sur le OnUsed, qui sert de on/off, donc a les allumer eteindre (logiquement, mais j'ai pas testé). HotU (oui je l'ai maintenant) utilise un script aussi pour ses torches, dans le même genre. Donc, je pensais qu'il etait possible de se servir de ça. En attribuant le même tag a achaque torche de la piece, un script qui permette d'activer ou désactiver a la maniere du "onoff" par le biais d'un objet qui agirait comme un "OnUse" de l'objet (ici tous les objets) portant le tag.

pour les effets visuels, je n'en ai plus besoin, donc on peut se concentrer sur les torches Very Happy

à tout hasard, je poste les scripts du cep et de hotu pour les torches.

NWScript :
//:Confused///////////////////////// /////////////////////
//:: NW_O2_ONOFF.nss
//:: Copyright (c) 2001 Bioware Corp.
//:Confused///////////////////////// ////////////////////
/*
    Turns the placeable object's animation on/off
*/

//:Confused///////////////////////// ////////////////////
//:: Created By:  Brent
//:: Created On:  January 2002
//:Confused///////////////////////// ////////////////////


void main()
{

    if (GetLocalInt(OBJECT_SELF,"NW_L_AMION") == 0)
    {
        object oSelf = OBJECT_SELF;
        PlayAnimation(ANIMATION_PLACEABLE_ACTIVATE);
        //DelayCommand(0.4,SetPlaceabl eIllumination(oSelf, TRUE));
        SetLocalInt(OBJECT_SELF,"NW_L_AMION",1);
        //DelayCommand(0.5,RecomputeSt aticLighting(GetArea(oSelf)));
        effect eLight = EffectVisualEffect(VFX_DUR_LIGHT_YELLOW_20);
        ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLight, oSelf);
    }
    else
    {
        object oSelf = OBJECT_SELF;
        PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE);
        //DelayCommand(0.4,SetPlaceabl eIllumination(oSelf, FALSE));
        SetLocalInt(OBJECT_SELF,"NW_L_AMION",0);
        //DelayCommand(0.9,RecomputeSt aticLighting(GetArea(oSelf)));
        effect eEffect = GetFirstEffect(oSelf);
        while (GetIsEffectValid(eEffect) == TRUE)
        {
            if (GetEffectType(eEffect) == EFFECT_TYPE_VISUALEFFECT)
                RemoveEffect(oSelf, eEffect);
            eEffect = GetNextEffect(oSelf);
        }

    }
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


NWScript :
//:Confused///////////////////////// /////////////////////
//:: ZEP_TORCH.nss
//:: Copyright (c) 2001 Bioware Corp.
//:: Modified by Dan Heidel 1/21/04 for CEP
//:Confused///////////////////////// ////////////////////
/*
    Turns the placeable object's animation on/off
    for the activation of torches, candles and othe light sources.
    It works by deleting the calling object and replacing it with its
    lit/unlit counterpart.  Although this function ignores the value of
    CEP_L_LIGHTCYCLE, if that localint is set to 1, the placeable will
    revert back to its normal lit/unlit day/night cycle state on the
    next heartbeat.  To properly turn off a cycling light-source placeable,
    CEP_L_LIGHTCYCLE must be set to 0.

    Works as zep_onoff except that no sounds are called and a
    lighting effect is called on the placeable instead.  The
    light type is stored in a local int CEP_L_LIGHT.  CEP_L_LIGHT is
    defined in zep_torchspawn from a table of constants - eg:
    VFX_DUR_LIGHT_YELLOW_20.  CEP_L_LIGHTCONST is a local string defined
    on the placeable which is used to set CEP_L_LIGHTCONST to the proper value.
    Place the name of the constant in this local string so that
    zep_torchspawn to operate correctly.

*/

//:Confused///////////////////////// ////////////////////
//:: Created By:  Brent
//:: Created On:  January 2002
//:Confused///////////////////////// ////////////////////

#include "zep_inc_main"


void main()
{
    location lLoc = GetLocation(OBJECT_SELF);
    string sResRef = GetResRef(OBJECT_SELF);
    int nAmIOn = GetLocalInt(OBJECT_SELF, "CEP_L_AMION");
    int nLightCycle = GetLocalInt(OBJECT_SELF, "CEP_L_LIGHTCYCLE");
    int nInitialized = GetLocalInt(OBJECT_SELF, "CEP_L_LIGHTINITIALIZED");
    int nLightDiurnal = GetIsNight();
    string sLightConst = GetLocalString(OBJECT_SELF, "CEP_L_LIGHTCONST");
    string sLightSwap = GetLocalString(OBJECT_SELF, "CEP_L_LIGHTSWAP");
    int nLight = ColorInit(sLightConst);

    if(nAmIOn == 1){nAmIOn = 0;}
    else {nAmIOn = 1;}

    object oNew = CreateObject(OBJECT_TYPE_PLACEABLE, sLightSwap, lLoc);
    SetLocalInt(oNew, "CEP_L_AMION", nAmIOn);
    SetLocalInt(oNew, "CEP_L_LIGHTCYCLE", nLightCycle);
    SetLocalInt(oNew, "CEP_L_LIGHTINITIALIZED", nInitialized);
    SetLocalInt(oNew, "CEP_L_LIGHTDIURNAL", nLightDiurnal);
    SetLocalString(oNew, "CEP_L_LIGHTCONST", sLightConst);
    SetLocalString(oNew, "CEP_L_LIGHTSWAP", sResRef);

    if (nAmIOn == 1)
    {
        effect eLight = EffectVisualEffect(nLight);
        ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLight, oNew);
    }
    DestroyObject(OBJECT_SELF, 0.0);
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


voilà, merci et +++ ^^
_________________
Asphia
Module RP Médiéval Fantastique pour Neverwiner Nights
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
warpShadow
Légende vivante
Inscrit le: 01 Fév 2005
Messages: 363
Localisation: Perpignan
Répondre en citant
Posté le : 02/09/2005 23:32:49 Sujet du message :

... hem... euh, et bien... comment dire... up ? ConfusedVery Happy
_________________
Asphia
Module RP Médiéval Fantastique pour Neverwiner Nights
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Mars
Seigneur
Inscrit le: 31 Mar 2004
Messages: 199
Répondre en citant
Posté le : 03/09/2005 00:35:22 Sujet du message :

Pour éviter le HB tu peux utiliser un CreateObject en utilisant un plaçable "flamme" tu le trouvera dans la palete dans "effet visuel". et pour l'éteindre un DestroyObject.
_________________
Retour de forums d'aide aux créateurs
===> La communauté d'Aurora
===>Le sanctuaire des Scripts
===>Le salon de la 3D
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
warpShadow
Légende vivante
Inscrit le: 01 Fév 2005
Messages: 363
Localisation: Perpignan
Répondre en citant
Posté le : 03/09/2005 18:55:08 Sujet du message :

je sais pas, je veux bien, mais les torches sont cencées etre allumables et eteignables en cliquant dessus, donc je pense qu'il doit bien y avoir un moyen de le faire via un script sur OnUse d'un placeable

++ ^^
_________________
Asphia
Module RP Médiéval Fantastique pour Neverwiner Nights
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Mars
Seigneur
Inscrit le: 31 Mar 2004
Messages: 199
Répondre en citant
Posté le : 05/09/2005 15:54:48 Sujet du message :

Alors déjà tu commence par créer un objet invisible sur tes torches avec comme TAG "torche".

Ensuite dans le OnUse de ton plaçable tu met ceci.

NWScript :
void main()
{
object oTorche = GetNearestObjectByTag ("torche");
int nUtilise = GetLocalInt(OBJECT_SELF, "deja_utilise");
if ( nUtilise == 0 )
{
SetLocalInt(OBJECT_SELF, "deja_utilise", 1);
CreateObject(OBJECT_TYPE_PLACEABLE, "plc_flamemedium", GetLocation(oTorche), FALSE);
}
else
{
object oFlamme = GetNearestObjectByTag ("plc_flamemedium");
SetLocalInt(OBJECT_SELF, "deja_utilise", 0);
DestroyObject (oFlamme);
}
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


VOila ce n'est pas testé et tappé directement sur le forum donc je ne garanti rien
_________________
Retour de forums d'aide aux créateurs
===> La communauté d'Aurora
===>Le sanctuaire des Scripts
===>Le salon de la 3D
Dernière édition par Mars le 06/09/2005 01:10:22; édité 1 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
warpShadow
Légende vivante
Inscrit le: 01 Fév 2005
Messages: 363
Localisation: Perpignan
Répondre en citant
Posté le : 05/09/2005 16:19:59 Sujet du message :

merci ^^

mais tu parles de variables, c'est quoi exactement ?

merci ++ pp
_________________
Asphia
Module RP Médiéval Fantastique pour Neverwiner Nights
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Montrer les messages depuis :
Page 1 sur 1 ¤


Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Sauter vers:
FAQ | Rechercher | Liste des Membres | Groupes d'utilisateurs | S'enregistrer | Profil | Se connecter pour vérifier ses messages privés | Connexion
Powered by phpBB 2.* [m] © 2001, 2002 phpBB Group
Theme rewritten in beautiful XHTML code by Baldurien.
Thème "La Bibliothèque de Neverwinter" crée par Kruger
Traduction par : phpBB-fr.com
Page generated in 66.744ms