La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 14/06/2024 13:05:27


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
yellow submarine
Grand Chevalier
Inscrit le: 24 Oct 2003
Messages: 143
Répondre en citant
Posté le : 24/11/2005 09:07:42 Sujet du message : Changer effet visuel d'une zone [Résolu peut être amélioré]

Bonjour


suite du script : Supprimer des objets dans zone spécifique

Voilà :

est-il possible de changer les propriétés visuelles d'une zone avec un script ?

La zone marécage a comme :


Citation :
Visuelles : Extérieur brumeux
Environnement personalisé
Teinte de brume : vert clair
j'iamerai avoir dans propriétés visuelles:


Citation :
Visuelles : Extérieur dégagé
amicalement
_________________
Rien ne vaut la recherche lorsqu'on veut trouver quelque chose.

[J. R. R. Tolkien]
Dernière édition par yellow submarine le 24/11/2005 14:43:50; édité 1 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 24/11/2005 10:19:18 Sujet du message :

Essaye ça :

NWScript :

void main()
{
//PrintString("Fog Sun : "+ IntToString(GetFogAmount(FOG_T YPE_SUN))+ "  FogMoon : "+IntToString(GetFogAmoun t(FOG_TYPE_MOON)));
object oArea = GetArea(OBJECT_SELF); //change la zone au cas ou
location lLoc = Location(oArea,Vector(5.0,5.0,1.0),0.0);
int nTilesCol = 10; //Nombre de colonnes de la zone
int nTilesLign = 8; //Nombre de lignes
int i,j;

  SetFogAmount(FOG_TYPE_ALL,0,oArea); //enleve la brume
  for (i=0;i<nTilesCol;i++)
  {
    for (j=0;j<nTilesLign;j++)
    {
    vector vVector = Vector(10.0*i+5.0,10.0*j+5.0,1.0) ;
    lLoc=Location(oArea,vVector,0.0);
    //int nMain1,nMain2,nSource1,nSource 2;
    //nMain1 = GetTileMainLight1Color(lLoc);
    //nMain2 = GetTileMainLight2Color(lLoc);
    //nSource1 = GetTileSourceLight1Color(lLoc) ;
    //nSource2 = GetTileSourceLight2Color(lLoc) ;
    //CreateObject(OBJECT_TYPE_PLA CEABLE,"flagsv",lLoc );
    //PrintString("i :"+IntToString(i)+" j :"+IntToString(j)+" : ");
    //PrintString("Main1 : "+IntToString(nMain1));
    //PrintString("Main2 : "+IntToString(nMain2));
    //PrintString("Source1 : "+IntToString(nSource1));
    //PrintString("Source2 : "+IntToString(nSource2));
    //PrintString("********** ********");

    SetTileMainLightColor(lLoc,517,518); //valeurs trouvees avec le log
    SetTileSourceLightColor(lLoc,519,520);
    }
  }
RecomputeStaticLighting(oArea); //sert a rien je crois bien
}
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.


En commenté j'ai laissé ce qui m'a permis de retrouver les valeurs pour "exterieur dégagé", si tu veux un autre éclairage, ou si ça peut servir à quelqu'un.

En passant, y a pas un moyen de déterminer le nombre de lignes et de colonnes d'une zone ?
Paske là on est obligé de régler à la main, c'est fatiguant boouh...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
yellow submarine
Grand Chevalier
Inscrit le: 24 Oct 2003
Messages: 143
Répondre en citant
Posté le : 24/11/2005 11:52:43 Sujet du message :

Merci Sith Vicious

maintenant j'ai un plème pour fusionner les 2 scripts (celui-ci et le script Supprimer des objets dans zone spécifique) Very Happy

voilà les 2 réunis :

NWScript :
void main()
{
    object oArea = GetObjectByTag("LesMarcagesdeZylbuthLaboratoire");;
    object oObject = GetFirstObjectInArea(oArea);
    object oPC = GetFirstPC();

    while(GetIsObjectValid(oObject))
    {

        if(GetTag(oObject) == "zep_geiser001")
        {
            DestroyObject(oObject);
        }
        oObject = GetNextObjectInArea(oArea);
            }
}



location lLoc = Location(oArea,Vector(5.0,5.0,1.0),0.0);
int nTilesCol = 11; //Nombre de colonnes de la zone
int nTilesLign =12; //Nombre de lignes
int i,j;

SetFogAmount(FOG_TYPE_ALL,0,oArea); //enleve la brume
  for (i=0;i<nTilesCol;i++)
  {
    for (j=0;j<nTilesLign;j++)
    {
    vector vVector = Vector(10.0*i+5.0,10.0*j+5.0,1.0) ;
    lLoc=Location(oArea,vVector,0.0);
    //int nMain1,nMain2,nSource1,nSource 2;
    //nMain1 = GetTileMainLight1Color(lLoc);
    //nMain2 = GetTileMainLight2Color(lLoc);
    //nSource1 = GetTileSourceLight1Color(lLoc) ;
    //nSource2 = GetTileSourceLight2Color(lLoc) ;
    //CreateObject(OBJECT_TYPE_PLA CEABLE,"flagsv",lLoc );
    //PrintString("i :"+IntToString(i)+" j :"+IntToString(j)+" : ");
    //PrintString("Main1 : "+IntToString(nMain1));
    //PrintString("Main2 : "+IntToString(nMain2));
    //PrintString("Source1 : "+IntToString(nSource1));
    //PrintString("Source2 : "+IntToString(nSource2));
    //PrintString("********** ********");

    SetTileMainLightColor(lLoc,517,518); //valeurs trouvees avec le log
    SetTileSourceLightColor(lLoc,519,520);
  }
  }
RecomputeStaticLighting(oArea); //sert a rien je crois bien
{

/* warning: 1 unclosed block {} */
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.


j'ai une INVALID DECLARATION TYPE EN LIGNE 27 SOIT : sur la ligne SetFogAmount(FOG_TYPE_ALL,0,oArea); //enleve la brume

encore merci de ton aide

PS: pour le nombre de ligne et de colonne tu trouves tout ça dans les propriétés de la zone
Onglet : Base
Hauteur et largeur (grisé)

amicalement
_________________
Rien ne vaut la recherche lorsqu'on veut trouver quelque chose.

[J. R. R. Tolkien]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 24/11/2005 12:04:07 Sujet du message :

Ah zut, t'as quelle version ?

Paske ça marchait chez moi tout ça mais c'est vrai que même le lexicon la connait pas la fonction.

Au moins tu peux changer la couleur avec
NWScript :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.


D'autre part, il y a des constantes pratiques pour les couleurs du genre FOG_COLOR_WHITE


Nan sinon pour la taille de la zone je pensais avec une fonction, au cours du script... Mais je crois qu'y a pas.
c'est super bête d'ailleurs, je trouve.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
yellow submarine
Grand Chevalier
Inscrit le: 24 Oct 2003
Messages: 143
Répondre en citant
Posté le : 24/11/2005 12:34:42 Sujet du message :

Sad
non toujours même erreur sur même ligne


Citation :
Ah zut, t'as quelle version ?
version jeux 1.66
version NWEditeur vts 030

celà ne peut pas venir des 2 scripts réunis?

amicalement
_________________
Rien ne vaut la recherche lorsqu'on veut trouver quelque chose.

[J. R. R. Tolkien]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 24/11/2005 13:06:49 Sujet du message :

Nan mais un truc
Tu as pa remarque que ton void main fait tout bugguer ??

NWScript :
void main()
{
object oArea = GetObjectByTag("LesMarcagesdeZylbuthLaboratoire");;
object oObject = GetFirstObjectInArea(oArea);
object oPC = GetFirstPC();

while(GetIsObjectValid(oObject))
{

if(GetTag(oObject) == "zep_geiser001")
{
DestroyObject(oObject);
}
oObject = GetNextObjectInArea(oArea);
}

location lLoc = Location(oArea,Vector(5.0,5.0,1.0),0.0);
int nTilesCol = 11; //Nombre de colonnes de la zone
int nTilesLign =12; //Nombre de lignes
int i,j;

SetFogAmount(FOG_TYPE_ALL,0,oArea); //enleve la brume
for (i=0;i<nTilesCol;i++)
{
for (j=0;j<nTilesLign;j++)
{
vector vVector = Vector(10.0*i+5.0,10.0*j+5.0,1.0) ;
lLoc=Location(oArea,vVector,0.0);
//int nMain1,nMain2,nSource1,nSource 2;
//nMain1 = GetTileMainLight1Color(lLoc);
//nMain2 = GetTileMainLight2Color(lLoc);
//nSource1 = GetTileSourceLight1Color(lLoc) ;
//nSource2 = GetTileSourceLight2Color(lLoc) ;
//CreateObject(OBJECT_TYPE_PLA CEABLE,"flagsv",lLoc );
//PrintString("i :"+IntToString(i)+" j :"+IntToString(j)+" : ");
//PrintString("Main1 : "+IntToString(nMain1));
//PrintString("Main2 : "+IntToString(nMain2));
//PrintString("Source1 : "+IntToString(nSource1));
//PrintString("Source2 : "+IntToString(nSource2));
//PrintString("********** ********");

SetTileMainLightColor(lLoc,517,518); //valeurs trouvees avec le log
SetTileSourceLightColor(lLoc,519,520);
}
}
RecomputeStaticLighting(oArea); //sert a rien je crois bien
}
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.

_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
yellow submarine
Grand Chevalier
Inscrit le: 24 Oct 2003
Messages: 143
Répondre en citant
Posté le : 24/11/2005 13:07:28 Sujet du message :

Boulet ! au rapport chef


Citation :
Paske ça marchait chez moi tout ça
bien j'ai testé ton script seul

NWScript :
void main()
{
//PrintString("Fog Sun : "+ IntToString(GetFogAmount(FOG_T YPE_SUN))+ "  FogMoon : "+IntToString(GetFogAmoun t(FOG_TYPE_MOON)));
object oPC = GetFirstPC();
object oArea = GetObjectByTag("LesMarcagesdeZylbuthLaboratoire");
location lLoc = Location(oArea,Vector(5.0,5.0,1.0),0.0);
int nTilesCol = 11; //Nombre de colonnes de la zone
int nTilesLign = 12; //Nombre de lignes
int i,j;

SetFogAmount(FOG_TYPE_ALL,0,oArea); //enleve la brume

  for (i=0;i<nTilesCol;i++)
  {
    for (j=0;j<nTilesLign;j++)
    {
    vector vVector = Vector(10.0*i+5.0,10.0*j+5.0,1.0) ;
    lLoc=Location(oArea,vVector,0.0);
    //int nMain1,nMain2,nSource1,nSource 2;
    //nMain1 = GetTileMainLight1Color(lLoc);
    //nMain2 = GetTileMainLight2Color(lLoc);
    //nSource1 = GetTileSourceLight1Color(lLoc) ;
    //nSource2 = GetTileSourceLight2Color(lLoc) ;
    //CreateObject(OBJECT_TYPE_PLA CEABLE,"flagsv",lLoc );
    //PrintString("i :"+IntToString(i)+" j :"+IntToString(j)+" : ");
    //PrintString("Main1 : "+IntToString(nMain1));
    //PrintString("Main2 : "+IntToString(nMain2));
    //PrintString("Source1 : "+IntToString(nSource1));
    //PrintString("Source2 : "+IntToString(nSource2));
    //PrintString("********** ********");

    SetTileMainLightColor(lLoc,517,518); //valeurs trouvees avec le log
    SetTileSourceLightColor(lLoc,519,520);
    }
  }
RecomputeStaticLighting(oArea); //sert a rien je crois bien
FloatingTextStringOnCreature("",oPC,FALSE);
}
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.



Il compile parfaitement

lorsque je le lance dans le OnUsed d'un placeable...Sad la brume ne disparaît pas
(la phrase s'affiche)

????????

amicalement
_________________
Rien ne vaut la recherche lorsqu'on veut trouver quelque chose.

[J. R. R. Tolkien]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
yellow submarine
Grand Chevalier
Inscrit le: 24 Oct 2003
Messages: 143
Répondre en citant
Posté le : 24/11/2005 13:32:29 Sujet du message :

Boulet ! au rapport chef suite


Citation :
Paske ça marchait chez moi tout ça
si je change :

NWScript :
object oArea = GetObjectByTag("LesMarcagesdeZylbuthLaboratoire");
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.


par
NWScript :
object oArea = GetObjectByTag("area010");
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.


area010 étant le ResRef de la zone

ça marche Very Happy

ou presque Sad

car la brume disparait tout autour du PJ même lorsqu'il marche mais ne disparait pas totalement de la zone...

en 2 mots la zone est sans brume seulement autour du PJ. (en 9 mots Laughing)

As-tu eu le même plème?

en ce qui concerne la réunion des 2 scripts t'as une idée?

amicalement
_________________
Rien ne vaut la recherche lorsqu'on veut trouver quelque chose.

[J. R. R. Tolkien]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 24/11/2005 13:57:01 Sujet du message :

He ben

Bon j'ai du mieux, en fait le paramètre important se trouve dans les propriétés visuelles de la zone, par contre (évidement) on y a pas accès par script. C'est la valeur Distance Clip Brouillard, c'est ça qui définit aparement la distance sur laquelle le brouillard est percu. Donc il faut qu'il soit vraiment très élevé pour que la commande pour virer le brouillard marche.

J'ai eu un truc pas mal en mettant une distance a 150, et epaisseur de la brume à 200. Après on la voit en arriere plan toujours, mais c'est beaucoup mieux que les 10 metres d'avant.

Attention, paske en augmentant la valeur, le brouillard perd en intensité (sinon ça serait trop simple...)

La vache. J'ai galéré avec ce truc.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 24/11/2005 14:01:34 Sujet du message :

Ah oui pour réunir les 2 scripts essaye ça :
NWScript :

void main()
{
object oArea = GetObjectByTag("LesMarcagesdeZylbuthLaboratoire");;
object oObject = GetFirstObjectInArea(oArea);
object oPC = GetFirstPC();

while(GetIsObjectValid(oObject))
{

if(GetTag(oObject) == "zep_geiser001")
{
break;
}
oObject = GetNextObjectInArea(oArea);
}
if (GetIsObjectValid(oObject))
{
//mon script
}else return;
}
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.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
yellow submarine
Grand Chevalier
Inscrit le: 24 Oct 2003
Messages: 143
Répondre en citant
Posté le : 24/11/2005 14:41:46 Sujet du message :

pour la réunion des 2 scripts çà MARCHE
(merci au passage à Black Knight)



Citation :
J'ai eu un truc pas mal en mettant une distance a 150, et epaisseur de la brume à 200. Après on la voit en arriere plan toujours, mais c'est beaucoup mieux que les 10 metres d'avant.
cà marche parfaitement Very Happy


j'ai peut être pas compris ta phrase Confused

Citation :
Attention, paske en augmentant la valeur, le brouillard perd en intensité (sinon ça serait trop simple...)
mais moi j'ai un brouillard très épais style brouillard londonnien Very Happy

encore merci

amicalement
_________________
Rien ne vaut la recherche lorsqu'on veut trouver quelque chose.

[J. R. R. Tolkien]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
yellow submarine
Grand Chevalier
Inscrit le: 24 Oct 2003
Messages: 143
Répondre en citant
Posté le : 24/11/2005 14:57:27 Sujet du message :

au fait pour ceux que çà intéressent

voilà le script final :

NWScript :



  void main()
{

object oArea = GetObjectByTag("LesMarcagesdeZylbuth"); // tag de la zone ou ce trouve la brume
  object oArea2 = GetArea(OBJECT_SELF);
    object oObject2 = GetFirstObjectInArea(oArea2);
    object oPC = GetFirstPC();

  FloatingTextStringOnCreature("",oPC,FALSE);
    SetLocalInt(oPC, "sc_source_gaz", 200);

//*****retire geiser gaz*********

    while(GetIsObjectValid(oObject2))
    {

        if(GetTag(oObject2) == "zep_geiser001")
        {
            DestroyObject(oObject2);
        }
        oObject2 = GetNextObjectInArea(oArea2);
            }
//*******retire brume***********

location lLoc = Location(oArea,Vector(5.0,5.0,1.0),0.0);
int nTilesCol = 11;
int nTilesLign =12; //Nombre de lignes
int i,j;

SetFogAmount(FOG_TYPE_ALL,0,oArea); //enleve la brume

for (i=0;i<nTilesCol;i++)
{
  for (j=0;j<nTilesLign;j++)
    {
  vector vVector = Vector(10.0*i+5.0,10.0*j+5.0,1.0) ;
    lLoc=Location(oArea,vVector,0.0);

    SetTileMainLightColor(lLoc,517,518); //valeurs trouvees avec le log
  SetTileSourceLightColor(lLoc,519,520);
}
}
RecomputeStaticLighting(oArea); //sert a rien je crois bien
}
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.


@+ surement Very Happy
_________________
Rien ne vaut la recherche lorsqu'on veut trouver quelque chose.

[J. R. R. Tolkien]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé 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 51.559ms