#include "x2_inc_toollib"
// X2_TL_GROUNDTILE_ICE = 426;
// X2_TL_GROUNDTILE_WATER = 401;
// X2_TL_GROUNDTILE_GRASS = 402;
// X2_TL_GROUNDTILE_LAVA_FOUNTAIN = 349;
// X2_TL_GROUNDTILE_LAVA = 350;
// X2_TL_GROUNDTILE_CAVEFLOOR = 406; origine : +0.0
// X2_TL_GROUNDTILE_SEWER_WATER = 461; origine : +2.0
int GetAreaXAxis(object oArea)
{
location locTile;
int iX = 0;
int iY = 0;
vector vTile = Vector(0.0, 0.0, 0.0);
for (iX = 0; iX < 32; ++iX)
{
vTile.x = IntToFloat(iX);
locTile = Location(oArea, vTile, 0.0);
int iRes = GetTileMainLight1Color(locTile);
if (iRes > 32 || iRes < 0)
return(iX);
}
return 32;
}
int GetAreaYAxis(object oArea)
{
location locTile;
int iX = 0;
int iY = 0;
vector vTile = Vector(0.0, 0.0, 0.0);
for (iY = 0; iY < 32; ++iY)
{
vTile.y = IntToFloat(iY);
locTile = Location(oArea, vTile, 0.0);
int iRes = GetTileMainLight1Color(locTile);
if (iRes > 32 || iRes < 0)
return(iY);
}
return 32;
}
void main()
{
if(GetLocalInt(OBJECT_SELF, "tileset_ok") != 1)
{
object oArea = GetArea(OBJECT_SELF);
int iXAxis = GetAreaXAxis(oArea);
int iYAxis = GetAreaYAxis(oArea);
float fAxeZ = GetLocalFloat(OBJECT_SELF, "AxeZ");
// Lecture variable sur object invisible pour definir le type de tile
int iTile = GetLocalInt(OBJECT_SELF, "tileset_type");
TLChangeAreaGroundTiles(oArea, iTile , iXAxis, iYAxis, fAxeZ);
SetLocalInt(OBJECT_SELF, "tileset_ok", 1);
}
}
La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
FAQ
Rechercher
Liste des Membres
Groupes d'utilisateurs
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
La date/heure actuelle est 23/11/2024 20:28:19
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
Djezebel Héros Messages: 252 |
Bonjour à tous !
J'ai trouvé ce script très intéressant mais j'aimerais modifier certaines choses. Ce que j'ai fais ne fonctionne pas, donc je fais appel à vous. Le script en question permet de générer une zone d'eau, de lave, d'herbe sur toute la surface de la zone. (cf le spoiler). Le script est à mettre sur le onHeatBeat d'un objet. Il faut juste ajouter à l'objet deux variables (en faisant clique droit sur l'objet et "Variables") : AxeZ, float, 1,3 tileset_type, int, 401 Ce message est un spoiler, et risque de vous informer de choses que vous auriez dû apprendre par vous même (fin d'un jeu, film, etc). À vos risques et périls (ludiques), vous pouvez le voir en cliquant sur cet avertissement.
Spoiler : Bien, à présent, ce que je souhaite faire c'est qu'en utilisant l'objet en question, le tileset change et devienne de la glace. Or, j'ai fais sur un "onUsed" : SetLocalInt(OBJECT_SELF, "tileset_type", 426); Malheureusement ça n'a rien changé... Pire : si je détruit l'objet, l'eau reste là... n'est-elle pas sensée disparraître ? Merci de vos lumières ! |
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
Il y a un système pour que le heartbeat ne se déclanche qu'une fois, donc sur ton OnUsed tu ne vas pas activer le changement de tiles.
Tu devrais rajouter directement un TLChangeAreaGroundTiles à partir de ton OnUsed avec un TLResetAreaGroundTiles avant, ça ne remplace pas les effets, ça rajouterait par dessus le précédent. En fait tout dépend de ce que tu veux faire, et du nombre de tiles que tu as à traiter, et dans combien de zones. Parcequ'une méthode qui peut être bien, c'est d'à la place d'utiliser le TLCHange machin, qui est très très très bourrin (il s'en fout de savoir si il y a de la lave ou pas sur le tile, il rajoute le placeable et l'effet, ce qui fait que sur une zone 32*32, tu as 1024 objets invisibles d'un coup et 1024 effets visuels), donc à la place tu pôurrais si ça ne concerne que peu de tiles, placer toi même des objets invisibles destinés à recevoir les effets, et de les traiter par des UserDefinedEvents pour changer les effets visuels en fonction de l'activation de ton placeable. |
Revenir en haut | |
Djezebel Héros Messages: 252 |
Hum, j'ai du mal à voir ce que tu veux dire.
J'ai mis le script en lui-même sur le onUserDefined : ça semble annuler totalement l'effet. Pour le OnUsed, j'ai tenté de mettre un TLResetAreaGroundTiles au bon endroit, ça compile bien, mais ça n'enlève pas l'effet (qui ne peut être que sur le onHeartBeat vu que sur le onUserDefined ça ne fonctionne pas). Autrement, pour préciser mon idée, elle est simple, voici la situation : Des aventuriers arrivent devant une étendue d'eau qu'ils ne peuvent traverser car l'eau est bien dangereuse. Pour réussir à passer, il faut réussir à activer un objet qui permettrait de transformer l'eau... en glace. Voilà l'idée, si tu as des meilleures suggestions sur comment s'y prendre, je suis toute ouïe |
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
Tu peux te passer de l'objet avec le HB à mon avis, si c'est pour une seule zone, fais des scripts utilisant les TLmachins en rentrant directement les dimensions de ta zone dedans.
J'ai pas saisi si c'était pour remplacer de l'eau déjà existante, ou si l'eau elle même est rajoutée par un TLChangeTiles. Si l'eau est là au départ, alors utilise un TLChangeAreaTiles pour placer la glace à la place lors de l'activation (avec une variable pour être sure de le faire qu'une fois). Quand tu veux faire fondre la glace, utilise le ResetMachin. Si il n'y en a pas, place la à la première entrée dans la zone, puis vire là avant de mettre la glace. J'ai essayé vite fait ça marche comme ça. Un truc que j'ai pas compris, c'est le zOffset à 1.3, j'ai essayé, on a la glace quasiment aux épaules (enfin c'est rigolo ) |
Revenir en haut | |
Djezebel Héros Messages: 252 |
Citation : Un truc que j'ai pas compris, c'est le zOffset à 1.3, j'ai essayé, on a la glace quasiment aux épaules (enfin c'est rigolo ) Ce n'est pas de ma faute si tu choisis des personnages Nains pour tester ^^
Je reverrais le zOffset, ne t'en fais pas. L'eau est sensée être mise là par le TLbidule donc je vais voir ce que je peux faire avec tes indications. Merci ! |
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
Djezebel a écrit : Ce n'est pas de ma faute si tu choisis des personnages Nains pour tester ^^ |
Revenir en haut | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
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