Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > Des cadavres
Des cadavres
Par Blam le 25/9/2002 à 13:28:32 (#2228848)
void main()
{
ActionDoCommand(SetIsDestroyable(FALSE));
ActionDoCommand(ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDeath(),OBJECT_SELF));
}
pour simplifier y a til un moyen de:
a)-le faire automatiquement ?
b)-le faire pour tous les pnj d'une zone ?
car pour faire un champ de bataille rempli de corps je n'ai trouvé que cette solution et je la trouve un peu "lourde".
Re: Des cadavres
Par Darkmore le 25/9/2002 à 14:05:52 (#2229156)
Est ce que c'est plus léger ?? pas sure ! :confus:
Par Azrael07 le 26/9/2002 à 7:12:54 (#2233859)
Sinon tu peut en effet utiliser la solution de Darkmore, mais je n'en voit pas vraiment l'interet si c pour passser des heures sur la création d'un script qui au final est remplacable par qlqc de bcp + simple.
Enfin si t'y tient vraiment dit le je te le ferais....
une petite note :
void main()
{
ActionDoCommand(SetIsDestroyable(FALSE));
ActionDoCommand(ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDeath(),OBJECT_SELF));
}
le "ActionDoCommand" ne sert absolument a rien, tu peut parfaitement faire
void main()
{
SetIsDestroyable(FALSE);
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDeath(),OBJECT_SELF);
}
à ce propos...
Par Le Hamster le 26/9/2002 à 14:11:16 (#2236060)
Ma question est : existe-t-il un EffectRéveilDeboutLàDedans quelque part, j'ai pas trouvé ?
_________________________________________
Au fait Azrael pour les coffres : :) merci :ange: bisous :amour: :amour: :amour: :amour:
j'ai pas encore essayé mais je le fais tout de suite.
Par Azrael07 le 26/9/2002 à 18:05:06 (#2237773)
tu met ca au debut du script :
effect GetEffect(object oCreature, int nEffectType)
{
effect eEffect = GetFirstEffect(oCreature);
while(GetIsEffectValid(eEffect))
{
eEffect = GetNextEffect(oCreature);
if( GetEffectType(eEffect) == nEffectType)
return eEffect;
}
return eEffect;//attention la ca fait un gros bug si jamais le gars ne dormais pas avant, je chercherais comment le corriger, il faudrais renvoyer un genre de "EFFECT_INVALID" mais ca existe pas :(
}
et ca la ou tu veut reveiller le mec(pense a initialiser oCreature) :
effect eSleep = GetEffect(oCreature, EFFECT_TYPE_SLEEP);
RemoveEffect(oCreature, eSleep);
EDIT : bon ben j'espère ke ca marchera mieux comme ca, sinon esite pas a reposter
Par Tyn' le 26/9/2002 à 19:10:12 (#2238297)
Par Azrael07 le 26/9/2002 à 21:27:24 (#2239289)
blam ca marche comme ca
Par Lys le 27/9/2002 à 13:03:00 (#2242603)
Par contre les 20bandits qui pillent les cadavres sont trop, des qu'ils nous voient ils se ruent sur nous pour nous occire, c'est pénible, on devrait pouvoir les éviter, non ?
A bientot dans la clairière
Azarael, j'ai rien compris
Par Le Hamster le 27/9/2002 à 20:16:17 (#2245551)
Même avec les parenthèses corrigées (après GetNextEffect(); ) le script ne compile pas (variable parsing error)
en fait, j'ai appliqué le dodo du pnj sur son script OnSpawn, je fais démarrer un dialogue avec un trigger qaund le PJ approche du "cadavre" (Bon, pendant le dialogue, le pnj se relève un peu mais c'est pas grave il est bourré ), et je voudrais le réveiller définitivement sur une phrase de ce dialogue.
Petit détail rigolo, j'ai vu quelque part qu'on pouvait faire monter des ZZZzzz au dessus de la tête de quelqu'un qui dort, c'est possible de l'intégrer ici ?
Deux petites choses encore pour Azrael, un, n'oublie pas mon problème de coffres si tu as le temps, et deuze le lien que tu as en signature apparemment ne fonctionne pas.
Bises
Par Azrael07 le 27/9/2002 à 21:26:58 (#2245929)
Quand a l'utilisation, tu met la fonction au debut du script, et pis les lignes de codes dans la fonction main ki doit reveiller le perso
pour le reveiller a la fin d'une conversation, tu peut mettre le script dans la conversation(dans le conversation editor), les fonctions doivent êtres placées en premier, puis vient la fonction main dans laquelle tu met les quelques lignes qui appellent la fonction
pour les ZZZZZzzzzzz ben j'ai fait la fonction, la voici :
void DoActionSnore(object oCreature, float fDelay = 10.0f)
{
string sSnore = "ZZZZzzzz";
AssignCommand(oCreature, ActionSpeak(sSnore));
AssignCommand(oCreature, DelayCommand(fDelay, DoActionSnore(oCreature)));
}
il suffit de mettre un chti ClearAllAction() pour ki s'arrete de ronfler
mais apparament y'a qlqc ki merde(peut etre k'un perso endormis ne peut pas faire d'actions)
Par contre, un petit truc, je te conseille de lire mon tut sur les fonction pasque je vais pas tjrs te mettre les scripts en entier, je presenterais sous forme de fonctions(t'en fait pas c pas dur a utiliser)
Grand merci pour l'url, j'avais jamais vu(kel con, deja je suis pas foutu d'écrire un script non buggé, mais en plus je sais pas tapper une URL -_-)
JOL Archives 1.0.1
@ JOL / JeuxOnLine