[script] Statues

Répondre
Partager Rechercher
un petit include qui fait des statues " les doigts dans le nez" puisque maintenant tous le monde a la 1.30 et ça marche avec et sans SoU

Code PHP:

///////////////////////////////////////////////////////////
//: FILE NAME: gb_statue
//: EVENT HANDLE: Function
//: FUNCTION: Apply / Remove Petrify effect
///////////////////////////////////////////////////////////
//: CREATED BY: Glenn J. Berden aka Jassper
//: CREATED ON: 09/01/03
//: MODIFIED BY: Whalebones aka Le grognon
//: MODIFIED ON: 15/01/03
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
//: oCreature = Object Creature qu'on transforme en statue
//: iPerma    = on peut déstatufier par sort : FALSE, on peut pas déstatufier par sort : TRUE (default)
//: fDelay    = temps d'attente en secondes pour laisser jouer une animation avant de petrifier la creature (pour la figer dans une posture speciale ).
//: iAnimation = n'importe laquelle des constantes ANIMATION_*
//: iVisual   = n'importe lequel des effets visuels.
////////////////////////////////////////////////////////////
void MakeStatue(object oCreature OBJECT_SELF,int iPerma TRUEfloat fDelay 0.0int iAnimation 0int iVisual = -1);
void MakeStatue(object oCreature OBJECT_SELF,int iPerma TRUEfloat fDelay 0.0int iAnimation 0int iVisual = -1)
{
    
int iPlot FALSE;
    
int iImmortal FALSE;
    if(
GetObjectType(oCreature) == OBJECT_TYPE_CREATURE)
        {
        if(
GetPlotFlag(oCreature))
            {
            
SetPlotFlag(oCreature,FALSE);
            
iPlot TRUE;
            }
        if(
GetImmortal(oCreature))
            {
            
SetImmortal(oCreature,FALSE);
            
iImmortal TRUE;
            }
        
effect eStone EffectPetrify();
        
effect eVis;
        
effect eStatue;
        if(
iVisual > -1)
            {
            
eVis EffectVisualEffect(iVisual);
            
eStatue EffectLinkEffects(eStone,eVis);
            }
        else
            {
            
eStatue eStone;
            }
        
AssignCommand(oCreature,ActionPlayAnimation(iAnimation,1.0,fDelay));
        if(
iPerma == FALSE)
            {
            
DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_PERMANENT,eStatue,oCreature));
            }
        else
            {
            
DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT,eStatue,oCreature));
            }
        if(
iPlot == TRUE)
            
DelayCommand(fDelay+0.5,SetPlotFlag(oCreature,TRUE));
        if(
iImmortal == TRUE)
            
DelayCommand(fDelay+0.5,SetImmortal(oCreature,TRUE));
        
SetAILevel(oCreature,AI_LEVEL_VERY_LOW);
        }
}
//////////////////////////////////////////////////////////////
void RemoveStatue(object oCreature OBJECT_SELF)
{
    
effect ePar GetFirstEffect(oCreature);
    while(
GetIsEffectValid(ePar))
        {
        if(
GetEffectType(ePar) == EFFECT_TYPE_PETRIFY)
            {
            
RemoveEffect(oCreature,ePar);
            
SetAILevel(oCreature,AI_LEVEL_NORMAL);
            }
        
ePar GetNextEffect(oCreature);
        }

à sauver dans un fichier du nom de "gb_statue"

puis il suffit de rajouter un #include "gb_statue" au debut du script ou vous compter utiliser les commandes de "statufication"

makestatue : fait une statue
RemoveStatue : destatufie

exemple de fonction sur le "onspawn" d'une creature

Code PHP:

#include "gb_statue"
void main()
{
MakeStatue (OBJECT_SELF,TRUE,5.0,ANIMATION_LOOPING_DEAD_FRONT,-1);

http://perso.wanadoo.fr/nwnhakpack/prob.JPG


bon j'ai un prob avec ton script!

j'ai 2 statues, avec le meme script et j'obtient un truc qui tourne pas rond. ouai ça tourne carré qwa!


Voilà, je souhaite avoir 2 dragon qui sur leurs derrieres, se regardent l'un en face de l'autre!

resultat, j'en ai un avec le cul au sol, et lautre qui se tiens comme un chien de chasse qui a senti un gibier!

alors je me demandais si tu pouvais m'aider a comprendre le pk du comment....
celui qui fait "le chien de chasse" a les ailes droites vers le haut ? si c'est ça, c'est que tu n'as pas laissé assez de temps à l'animation pour qu'elle se deroule avant quela fonction "fige" le dragon, et dans ce cas le monstre est figé dans sa position de base dans le mdl qui est souvent pas top... faut que tu joues avec le fdelay dans la fonction en l'augmentant (essaye 5/6 secondes ) et il vaut mieux utiliser l'animation "ANIMATION_LOOPING_PAUSE" (de memoire) pour ce que tu veux...

sinon tu peux virer tous les script sdes 2 dragons et tu colles un trigger à l'entree de la zone qui va les figer quand un pj arrivera pas loin type .. (tag des dragons : D1 et D2 )

sur le "onenter" du trigger..
Code PHP:

#include "gb_statue"
void main()
{
Object oD1=getobjectbytag("d1");
Object oD2=getobjectbytag("d2");
MakeStatue (oD1,TRUE,5.0,ANIMATION_LOOPING_PAUSE,-1);
MakeStatue (oD2,TRUE,5.0,ANIMATION_LOOPING_PAUSE,-1);

Tout simplement génial, les gargouilles manquaient vraiment, on va s'en donner à coeur joie.

Merci Tonton.
Re: [script] Statues
Citation :
Provient du message de Le grognon
... RemoveStatue : destatufie

faut tous lire

tu l'utilises comme suit :
d1 : tag d'une bestiole statufié


Object oD1=getobjectbytag("d1");
RemoveStatue(oD1);


par defaut cette fonction agit sur Object_self
bien, j'ai pu tester correctement depuis hier soir les statue avec ce script!

Il y a quelques surprise si on applique le script tel que tu nous l'as présenté grognon.


Il faut créer un script "statue" a ajouter dans le OnsPawn de la creature que l'on veut statufier.

Code PHP:

  #include "gb_statue"


void main()
{


MakeStatue (OBJECT_SELF,FALSE,6.1,ANIMATION_LOOPING_PAUSE2,-1);



jusque là, rien de neuf! Sauf qu'il faut retirer tous les autres scripts de la creature sauf celui du Onconversation!
Cela a pour effet d'eviter les réations de la creature! en effet si vous laissez pas le script de OnConversation, vous verez votre statue se retournait vers vous qd vous aller cliquer dessu!

Autre point a prendre en compte, les statue se dépétrifi lorsque vous vous eloignez de celle-ci. Ca pourrait etre génant pour ceux qui utilise le hak camera qui debloque la distance et l'angle de vu imposé par bioware.

Alors petite question a grogon , y a t'il un moyen de faire appliquer ce script des qu'un pj est present n'importe ou sur la zone...



bon bah en fin de compte, j'ai fini par faire un strigger!

sinon ça marche pas correctement! meme petrifier, qd on revient sur les statues, les statues finissent tj par avoir une posture non souhaité!

du simplement a la pétrification/dépétrification dés que le pj est vu par les statues.
oui... effectivement (je rapelle que je ne suis pas l'auteur du script , voir entete ).. je pense que c'est du à la gestion de l'AI qui a changer avec la 1.30 ....

je ne comprend pas et surtout je ne vois pas quoi y faire... on attend la 1.32 pour voir s'il ne s'agit pas d'un bug lié à nwn ?
ouai je te le demande trés gentillement alors

mais le dragon que j'ai c'est une wyrn, le genre hors norme qwa!
qd on est collé aux pied du dragon on ne voit que la moitié du dragon!

et c'est celui ci qu'il me faudrait comme statue..

c'est possible ça ? ah oui! et bien sur je ne souhaite pas perdre le model
Bah moi j'ai fais comme toi sojkowski, avec le même script sur 2 dragons pour voir, et avec ANIMATION_LOOPING_PAUSE et je n'ai pas ton problème il me semble.
Pour info je suis en 1.32 beta. C'est peut être pour ça

Par contre le coup du script sur le OnConversation oui bien joué

PS : zolie script qui donne de superbes statues plus vrais que nature
Citation :
Provient du message de Damonya
Bah moi j'ai fais comme toi sojkowski, avec le même script sur 2 dragons pour voir, et avec ANIMATION_LOOPING_PAUSE et je n'ai pas ton problème il me semble.
Pour info je suis en 1.32 beta. C'est peut être pour ça

Par contre le coup du script sur le OnConversation oui bien joué

PS : zolie script qui donne de superbes statues plus vrais que nature
bah, met un ou deux npc en jeu, parles et attaques les tous en restant loin des statues et reviens voir tes statues.

elles ont tendances a bouger et ce n'est pas a chaque coup.
Citation :
Provient du message de Le grognon
si tu le demandes gentiment , je peux voir à rajouter des statues de dragons à mon pack de statue ?

pas trop mal le petit hakpack de statue, c'est vrai que bioware nous a pas gaté avec leur statue pourri a 2francs.


bien, ma zone d'acceuil a de la gueule avec les statues

Si tu peux me faire une statue de dragon géant ça serait super cool! il faut prendre le hackpack wyrn, c'est un hack pack avec 40 dragon de toutes les tailles.

et j'aimerai que tu prennes un model géant pour en faire une statue! tu peux faire ça?
bon tiens.. un hak rien que pour toi..

il contient uniquement une GROSSE statue de dragon.. inclue les portrait.2da, placeable.2da et portraits ...
il est compatible avec mon pack de statue pour CEP, il suffit qu'il soit au dessus du pack dans la list des hacks de ton module...

par contre je te laisse la joie de faire le dragon dans ta palette car j'ai la flemme de faire un .erf..
nwn explorer pour exporter le mdl du jeu puis 3dmax pour le bricoler (je sais qu'il existe un utilitaire pour changer facilement la taille d'un mdl ) , tu le trouves trop gros ? pourtant c'est ce que tu voulais... je vais en faire une version moins grosse....
EDIT: voila tu recharges le hack à la meme adresse même nom.. j'ai reduis de 50 % la taille...
Répondre

Connectés sur ce fil

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