Neverwinter Nights, scripts multi-usages

Répondre
Partager Rechercher
Salut à tous !

Première intervention sur ce site pour soumettre à celles et ceux qui sont intéressés par le moding sur Neverwinter Nights, mais sans trop s'y connaître en script (tout comme moi en fait) une ou deux astuces de scripts que je nommerais "multi-usages" ...

Alors c'est tout à fait par curiosité que j'ai découverts que le script qui transformait le plaçable "tas de crânes" en squelette (ainsi, logiquement, que celui qui change des corps en zombies) pouvait avoir un tout autre usage pratique, non sur des plaçables, mais sur des créatures. En effet, il se révèle une alternative pratique aux scripts compliqués qui gèrent les transformations des lycanthropes ! Pour mieux vous détailler l'astuce, je vous affiche ici le script original qui destiné à changer les tas de crânes en squelettes :

//::///////////////////////////////////////////////
//:: NW_O2_SKELETON.nss
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Turns the placeable into a skeleton
if a player comes near enough.
*/
//:://////////////////////////////////////////////
//:: Created By: Brent
//:: Created On: January 17, 2002
//:://////////////////////////////////////////////
void ActionCreate(string sCreature, location lLoc)
{
CreateObject(OBJECT_TYPE_CREATURE, sCreature, lLoc);
}
void main()
{
object oCreature = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC);
if (GetIsObjectValid(oCreature) == TRUE && GetDistanceToObject(oCreature) < 10.0)
{
effect eMind = EffectVisualEffect(VFX_FNF_SUMMON_UNDEAD);
string sCreature = "NW_SKELWARR01";
// * 10% chance of a skeleton chief instead
if (Random(100) > 90)
{
sCreature = "NW_SKELCHIEF";
}
location lLoc = GetLocation(OBJECT_SELF);
DelayCommand(0.3, ActionCreate(sCreature, lLoc));
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eMind, GetLocation(OBJECT_SELF));
SetPlotFlag(OBJECT_SELF, FALSE);
DestroyObject(OBJECT_SELF, 0.5);
}
}

J'ai surligné en rouge les options à modifier pour faire se changer un objet en autre chose qu'un squelette. Il vous suffit de les remplacer par le TAG de n'importe quelle autre créature de votre choix. Vous constaterez aussi dans le script un pourcentage de chances que l'un ou l'autre des squelettes apparaissent. Vous pouvez modifier à loisir ce pourcentage. Si vous souhaitez qu'un seul type de créature apparaisse, copiez simplement le TAG de la créature et collez-le aux deux emplacements que j'ai surligné en rouge. Ainsi il n'y aura qu'un seul type de créature pouvant apparaître.

En bleu, j'ai surligné l'effet visuel et sonore qui intervient lors de la transformation. Vous pouvez le modifier en consultant la liste dans l'onglet "Constantes" situé à droite de la boîte de scriptes. Si vous remplacez par exemple VFX_FNF_SUMMON_UNDEAD utilisé pour générer un nuage blanc lumineux et un effet sonore au moment de la transformation par VFX_IMP_DESTRUCTION , vous obtiendrez un effet assez dégueu d'explosion d'os, de chair et de sang. Et il y a bien d'autres effets possibles.

Si vous souhaitez appliquer ce script sur des créatures, vous pouvez le mettre dans "OnDamaged", "OnDeath" ou "OnPhysicalAttacked" d'une créature pour la voir se changer respectivement sur une blessure qu'elle reçoit, à sa mort ou dès qu'on l'attaque. Essayez de mettre le script original NW_O2_SKELETON sur une créature de votre choix pour faire des tests. Vous verrez c'est assez bluffant. Le seul défaut à ceci que j'ai constaté est que la créature transformée n'apparait pas exactement à l'endroit de son ancienne forme, il y a un tout petit décalage.

Voilà, amusez-vous bien, vous verrez que de nombreux scripts peuvent être ainsi utilisés en dehors de leurs fonctions premières avec des effets tout à fait acceptable.
Quelques petits exemples....
J'ai omis de vous proposer quelques petits exemples qui fonctionnent très bien :

J"ai créés différents plaçables que j'ai nommé "spawners" et qui se changent en différentes créatures lorsqu'on les approche OU qu'on les utilise, selon qu'on placele script dans le "OnUsed" ou dans le "OnHeartbeat".

Un sarcophage qui se change en squelette, en zombie, en goule, en momie ou ce que vous voulez lorsqu'on l'ouvre (vous pouvez tout de même y mettre un trésor quelconque, il apparaitra sur le sol à côté du squelette)

Un cocon qui se change en araignée quand on l'approche.

Et bien d'autres possibilités amusantes ou surprenantes.

Voilà, je crois que j'ai dis l'essentiel. Bon jeu !!
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés