La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 02/06/2024 11:17:33


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Josueff
Ecuyer
Inscrit le: 30 Déc 2003
Messages: 48
Répondre en citant
Posté le : 23/01/2004 20:18:11 Sujet du message : fusion

Salut les gars j'aimerais si vous avez le temps et si c'est possible de me faire la fusion de ce script car j'ai main et main et main de fois essaye et sans succès Mad
NWScript :
include "in_g_cameramove"
void main()
{
object oPC = GetEnteringObject();
int iXP = GetXP(oPC);
object ob1 = GetObjectByTag("ob1");
object ob2 = GetObjectByTag("ob2");
AssignCommand(oPC, ActionUnequipItem(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND , oPC)));
AssignCommand(oPC, ActionUnequipItem(GetItemInSlot(INVENTORY_SLOT_LEFTHAND , oPC)));
DelayCommand(0.1,SetCommandable(FALSE,oPC));


DelayCommand(0.1,
    GestaltCameraMove(0.0, 30.0, 40.0,
                      260.0, 20.0, 40.0,
                    24.0, 20.0,
                    oPC, 0));


DelayCommand( 2.0,FloatingTextStringOnCreature("Bienvenue aux Contrees d'Elianor", oPC));
DelayCommand( 5.0,FloatingTextStringOnCreature("Ceci est un server Rp",oPC));
DelayCommand( 5.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SCREEN_SHAKE), oPC));
DelayCommand( 6.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_FREEZE_ANIMATION), oPC));

DelayCommand( 8.0,FloatingTextStringOnCreature("Vous allez arriver dans une ville",oPC));
DelayCommand(11.0,FloatingTextStringOnCreature("nommee",oPC));
DelayCommand(14.0,FloatingTextStringOnCreature("Elianor ",oPC));
DelayCommand(15.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SCREEN_SHAKE), oPC));
DelayCommand(15.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_LIGHTNING_M), ob2));

DelayCommand(17.0,FloatingTextStringOnCreature("Vous devrez braver les obstacles vous faire respecter...",oPC));
DelayCommand(16.5, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_DUR_PROTECTION_EVIL_MAJOR), oPC, 8.7));

DelayCommand(23.0,FloatingTextStringOnCreature("Un rappel, pas d'armes en ville !!",oPC));

DelayCommand(24.2,
    GestaltCameraMove(260.0, 20.0, 30.0,
                      260.0, 0.0, 30.0,
                    0.7, 20.0,
                    oPC, 0));
DelayCommand(23.2, SetCommandable(TRUE,oPC));

DelayCommand(23.3, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_BEAM_FIRE_LASH), oPC));
DelayCommand(23.4, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_LIGHTNING_M), ob1));
DelayCommand(23.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_LIGHTNING_M), ob2));
DelayCommand(23.6, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_BIGBYS_CRUSHING_HAND), oPC));
DelayCommand(23.7, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_ELEMENTAL_SHIELD), oPC));
DelayCommand(23.8, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_GLOBE_INVULNERABILITY), oPC));
DelayCommand(23.9, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_LIGHT), oPC));
DelayCommand(24.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_MAGIC_RESISTANCE), oPC));
DelayCommand(24.1, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_PARALYZED), oPC));
DelayCommand(24.2, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_SANCTUARY), oPC));
DelayCommand(24.3, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_FIREBALL), oPC));
DelayCommand(24.4, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_HEALING_L), oPC));

DelayCommand(26.0, AssignCommand (oPC, ActionJumpToObject(GetObjectByTag("demarrerelianor"))));
/* 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.

et...
NWScript :
void main()
{
object oPlayer = GetEnteringObject();
object oMT = GetObjectByTag("elianor");
ExploreAreaForPlayer(oMT, oPlayer);
}
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.

Merci d'avance.... Cool
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Lavok
Légende vivante
Inscrit le: 22 Oct 2002
Messages: 434
Localisation: Sphère planaire
Répondre en citant
Posté le : 23/01/2004 20:37:09 Sujet du message :


Josueff a écrit :

NWScript :

void main()
{
object oPC = GetEnteringObject();
//
//
//
object oMT = GetObjectByTag("elianor");
ExploreAreaForPlayer(oMT, oPC);
//
//
//
int iXP = GetXP(oPC);
object ob1 = GetObjectByTag("ob1");
object ob2 = GetObjectByTag("ob2");
AssignCommand(oPC, ActionUnequipItem(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND , oPC)));
AssignCommand(oPC, ActionUnequipItem(GetItemInSlot(INVENTORY_SLOT_LEFTHAND , oPC)));
DelayCommand(0.1,SetCommandable(FALSE,oPC));


DelayCommand(0.1,
GestaltCameraMove(0.0, 30.0, 40.0,
260.0, 20.0, 40.0,
24.0, 20.0,
oPC, 0));


DelayCommand( 2.0,FloatingTextStringOnCreature("Bienvenue aux Contrees d'Elianor", oPC));
DelayCommand( 5.0,FloatingTextStringOnCreature("Ceci est un server Rp",oPC));
DelayCommand( 5.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SCREEN_SHAKE), oPC));
DelayCommand( 6.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_FREEZE_ANIMATION), oPC));

DelayCommand( 8.0,FloatingTextStringOnCreature("Vous allez arriver dans une ville",oPC));
DelayCommand(11.0,FloatingTextStringOnCreature("nommee",oPC));
DelayCommand(14.0,FloatingTextStringOnCreature("Elianor ",oPC));
DelayCommand(15.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SCREEN_SHAKE), oPC));
DelayCommand(15.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_LIGHTNING_M), ob2));

DelayCommand(17.0,FloatingTextStringOnCreature("Vous devrez braver les obstacles vous faire respecter...",oPC));
DelayCommand(16.5, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_DUR_PROTECTION_EVIL_MAJOR), oPC, 8.7));

DelayCommand(23.0,FloatingTextStringOnCreature("Un rappel, pas d'armes en ville !!",oPC));

DelayCommand(24.2,
GestaltCameraMove(260.0, 20.0, 30.0,
260.0, 0.0, 30.0,
0.7, 20.0,
oPC, 0));
DelayCommand(23.2, SetCommandable(TRUE,oPC));

DelayCommand(23.3, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_BEAM_FIRE_LASH), oPC));
DelayCommand(23.4, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_LIGHTNING_M), ob1));
DelayCommand(23.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_LIGHTNING_M), ob2));
DelayCommand(23.6, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_BIGBYS_CRUSHING_HAND), oPC));
DelayCommand(23.7, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_ELEMENTAL_SHIELD), oPC));
DelayCommand(23.8, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_GLOBE_INVULNERABILITY), oPC));
DelayCommand(23.9, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_LIGHT), oPC));
DelayCommand(24.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_MAGIC_RESISTANCE), oPC));
DelayCommand(24.1, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_PARALYZED), oPC));
DelayCommand(24.2, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_SANCTUARY), oPC));
DelayCommand(24.3, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_FIREBALL), oPC));
DelayCommand(24.4, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_HEALING_L), oPC));

DelayCommand(26.0, AssignCommand (oPC, ActionJumpToObject(GetObjectByTag("demarrerelianor"))));
/* 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.

Pour fusionner deux scripts, c'est la plupart du temps tout simple ! Il suffit d'enlever le
void main ()
{
}
de l'un et d'éliminer les doublons (comme oPC) Wink.

EDIT : Argh ! J'avais cru voir oPC au lieu de oPlayer dans le deuxième script Neuneu à lunette, d'où grosse confusion Malade !
_________________
ToB : Une seule chose semble certaine : tant que le trône de sang de Bhaal restera vide, le chaos règnera.

Moi : Une seule chose semble certaine : tant que la tête de singe de Bush restera vide, le chaos règnera.
Dernière édition par Lavok le 24/01/2004 11:35:23; édité 1 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Josueff
Ecuyer
Inscrit le: 30 Déc 2003
Messages: 48
Répondre en citant
Posté le : 23/01/2004 20:57:24 Sujet du message :

Quand tu me dis les doublons comme oPC c'est a dire enlever tous les oPC????? JE te previens je debutes donc ca peut etre long.... Embarassed
ps: merci de m'aider.Car en fait je veux que tous les effets s'appliquent sur le joueur...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Lavok
Légende vivante
Inscrit le: 22 Oct 2002
Messages: 434
Localisation: Sphère planaire
Répondre en citant
Posté le : 23/01/2004 21:38:30 Sujet du message :

Non, uniquement quand il est déclaré, c'est-à-dire :
object oPC = GetEnteringObject();
On ne peut déclarer deux objets sur le même nom (qu'ils soient identiques ou non d'ailleurs) car alors oPC peut désigner l'un OU l'autre.

J'espère avoir été clair Surprised.
_________________
ToB : Une seule chose semble certaine : tant que le trône de sang de Bhaal restera vide, le chaos règnera.

Moi : Une seule chose semble certaine : tant que la tête de singe de Bush restera vide, le chaos règnera.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Josueff
Ecuyer
Inscrit le: 30 Déc 2003
Messages: 48
Répondre en citant
Posté le : 23/01/2004 21:50:38 Sujet du message :

Et j'enleve toute la ligne où il y a oPC??? ou juste jusqu'au egal???
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Age
Novice
Inscrit le: 23 Jan 2004
Messages: 14
Répondre en citant
Posté le : 23/01/2004 23:46:50 Sujet du message :

J'ai aussi été confronté au problème, et je pense l'avoir résolu avec la fonction ExecuteScript, qui prend en argument une chaîne représentant le nom du script, ainsi que l'objet qui va exécuter le script, dans ton cas précis, ça donnerait quelque chose du genre :

NWScript :
void main()
{

ExecuteScript("script1",OBJECT_SELF);

object oPlayer = GetEnteringObject();
object oMT = GetObjectByTag("elianor");
ExploreAreaForPlayer(oMT, oPlayer);
}
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.


Bien entendu, tu peux faire le contraire, ou même créé un troisième script :
NWScript :
void main()
{

//et le second script2
ExecuteScript("script1",OBJECT_SELF);
ExecuteScript("script2",OBJECT_SELF);
}
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
 
Josueff
Ecuyer
Inscrit le: 30 Déc 2003
Messages: 48
Répondre en citant
Posté le : 24/01/2004 08:55:56 Sujet du message :

Bon je vais essayer ca mais ce n'est pas sur un objet que je veux creer ca c'est dans le OnEnter de la zone...Je veux faire une fusion de la carte visible et d'un message d'entre sur le module qui apparait au dessus du joueur( j'ai pris ca dans un module de Longbow qui est vraiment super...) si quelqu'un me fait la fusion apres je comprendrais....Je saurais ce qu'il faut enlever etc...Ou c'est moi qui divague Confused Sad Embarassed
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Age
Novice
Inscrit le: 23 Jan 2004
Messages: 14
Répondre en citant
Posté le : 24/01/2004 10:22:33 Sujet du message :

Quand tu fais un script, il est toujours associé a un objet, que tu peux retrouver grâce a OBJECT_SELF. Dans le onEnter d'une zone l'objet est la zone elle même. La fonction ExecuteScript a pour effet d'exécuter la fonction main du script passé en argument, par l'objet passé en second argument (ici la zone).
Maintenant, l'usage de la fonction m'a l'air pertinent lorsque l'on veut fusionner des scripts de taille importante. Ici le second script est court, donc aisément modifiable. Regarde dans le second script ce que tu as déjà défini dans le premier : l'objet entrant, que tu appelle dans le premier oPC et dans le second oPlayer. Tu peux donc supprimer dans le second la définition de oPlayer et remplacer dans le script par oPC. Pour l'objet de nom "elianor", (si j'ai bien compris c'est la zone dans laquelle tu entre, si c'est le cas tu peux donc la retrouver avec OBJECT_SELF, au lieu de l'identifier par son tag), tu peux la laisser tel quel. Voici donc ce que ça donnerait :
NWScript :
#include "in_g_cameramove"

void main()
{
object test = OBJECT_SELF;
FloatingTextStringOnCreature(GetName(test),GetEnteringObject(),FALSE);

object oPC = GetEnteringObject();
int iXP = GetXP(oPC);
object ob1 = GetObjectByTag("ob1");
object ob2 = GetObjectByTag("ob2");
AssignCommand(oPC, ActionUnequipItem(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND , oPC)));
AssignCommand(oPC, ActionUnequipItem(GetItemInSlot(INVENTORY_SLOT_LEFTHAND , oPC)));
DelayCommand(0.1,SetCommandable(FALSE,oPC));





DelayCommand( 2.0,FloatingTextStringOnCreature("Bienvenue aux Contrees d'Elianor", oPC));
DelayCommand( 5.0,FloatingTextStringOnCreature("Ceci est un server Rp",oPC));
DelayCommand( 5.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SCREEN_SHAKE), oPC));
DelayCommand( 6.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_FREEZE_ANIMATION), oPC));

DelayCommand( 8.0,FloatingTextStringOnCreature("Vous allez arriver dans une ville",oPC));
DelayCommand(11.0,FloatingTextStringOnCreature("nommee",oPC));
DelayCommand(14.0,FloatingTextStringOnCreature("Elianor ",oPC));
DelayCommand(15.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SCREEN_SHAKE), oPC));
DelayCommand(15.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_LIGHTNING_M), ob2));

DelayCommand(17.0,FloatingTextStringOnCreature("Vous devrez braver les obstacles vous faire respecter...",oPC));
DelayCommand(16.5, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_DUR_PROTECTION_EVIL_MAJOR), oPC, 8.7));

DelayCommand(23.0,FloatingTextStringOnCreature("Un rappel, pas d'armes en ville !!",oPC));

DelayCommand(24.2,
    GestaltCameraMove(260.0, 20.0, 30.0,
                      260.0, 0.0, 30.0,
                    0.7, 20.0,
                    oPC, 0));
DelayCommand(23.2, SetCommandable(TRUE,oPC));

DelayCommand(23.3, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_BEAM_FIRE_LASH), oPC));
DelayCommand(23.4, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_LIGHTNING_M), ob1));
DelayCommand(23.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_LIGHTNING_M), ob2));
DelayCommand(23.6, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_BIGBYS_CRUSHING_HAND), oPC));
DelayCommand(23.7, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_ELEMENTAL_SHIELD), oPC));
DelayCommand(23.8, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_GLOBE_INVULNERABILITY), oPC));
DelayCommand(23.9, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_LIGHT), oPC));
DelayCommand(24.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_MAGIC_RESISTANCE), oPC));
DelayCommand(24.1, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_PARALYZED), oPC));
DelayCommand(24.2, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_SANCTUARY), oPC));
DelayCommand(24.3, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_FIREBALL), oPC));
DelayCommand(24.4, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_HEALING_L), oPC));

DelayCommand(26.0, AssignCommand (oPC, ActionJumpToObject(GetObjectByTag("demarrerelianor"))));

// second script
object oMT = GetObjectByTag("elianor");
ExploreAreaForPlayer(oMT, oPC);
}
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.


Je n'ai pas put tester dans la mesure ou deja le premier script ne compile pas: il y a chez moi une erreur sur les parametre de la fonction GestaltCameraMove. Dans la mesure ou ce bug peut etre associé au fait que nous ayons differentes versions de la librairie de la librairie "in_g_cameramove" à savoir la version 2.0 chez moi. Si par contre tu n'arrive pas a compiler essaye alors ceci :
NWScript :
#include "in_g_cameramove"

void main()
{
object test = OBJECT_SELF;
FloatingTextStringOnCreature(GetName(test),GetEnteringObject(),FALSE);

object oPC = GetEnteringObject();
int iXP = GetXP(oPC);
object ob1 = GetObjectByTag("ob1");
object ob2 = GetObjectByTag("ob2");
AssignCommand(oPC, ActionUnequipItem(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND , oPC)));
AssignCommand(oPC, ActionUnequipItem(GetItemInSlot(INVENTORY_SLOT_LEFTHAND , oPC)));
DelayCommand(0.1,SetCommandable(FALSE,oPC));



GestaltCameraMove(0.1,0.0, 30.0, 40.0,
                    260.0, 20.0, 40.0,
                    24.0, 20.0,
                    oPC, 0);


DelayCommand( 2.0,FloatingTextStringOnCreature("Bienvenue aux Contrees d'Elianor", oPC));
DelayCommand( 5.0,FloatingTextStringOnCreature("Ceci est un server Rp",oPC));
DelayCommand( 5.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SCREEN_SHAKE), oPC));
DelayCommand( 6.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_FREEZE_ANIMATION), oPC));

DelayCommand( 8.0,FloatingTextStringOnCreature("Vous allez arriver dans une ville",oPC));
DelayCommand(11.0,FloatingTextStringOnCreature("nommee",oPC));
DelayCommand(14.0,FloatingTextStringOnCreature("Elianor ",oPC));
DelayCommand(15.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SCREEN_SHAKE), oPC));
DelayCommand(15.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_LIGHTNING_M), ob2));

DelayCommand(17.0,FloatingTextStringOnCreature("Vous devrez braver les obstacles vous faire respecter...",oPC));
DelayCommand(16.5, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_DUR_PROTECTION_EVIL_MAJOR), oPC, 8.7));

DelayCommand(23.0,FloatingTextStringOnCreature("Un rappel, pas d'armes en ville !!",oPC));


GestaltCameraMove(24.2,260.0, 20.0, 30.0,
                    260.0, 0.0, 30.0,
                    0.7, 20.0,
                    oPC, 0);
DelayCommand(23.2, SetCommandable(TRUE,oPC));

DelayCommand(23.3, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_BEAM_FIRE_LASH), oPC));
DelayCommand(23.4, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_LIGHTNING_M), ob1));
DelayCommand(23.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_LIGHTNING_M), ob2));
DelayCommand(23.6, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_BIGBYS_CRUSHING_HAND), oPC));
DelayCommand(23.7, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_ELEMENTAL_SHIELD), oPC));
DelayCommand(23.8, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_GLOBE_INVULNERABILITY), oPC));
DelayCommand(23.9, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_LIGHT), oPC));
DelayCommand(24.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_MAGIC_RESISTANCE), oPC));
DelayCommand(24.1, ApplyEffectToObject(DURATION_TYPE_INSTANT, DelayCommand(0.1,
    GestaltCameraMove(0.0, 30.0, 40.0,
                      260.0, 20.0, 40.0,
                    24.0, 20.0,
                    oPC, 0));EffectVisualEffect(VFX_DUR_PARALYZED), oPC));
DelayCommand(24.2, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_SANCTUARY), oPC));
DelayCommand(24.3, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_FIREBALL), oPC));
DelayCommand(24.4, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_HEALING_L), oPC));

DelayCommand(26.0, AssignCommand (oPC, ActionJumpToObject(GetObjectByTag("demarrerelianor"))));

// second script
object oMT = GetObjectByTag("elianor");
ExploreAreaForPlayer(oMT, oPC);
}
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 seulement changé :
NWScript :

DelayCommand(0.1,
    GestaltCameraMove(0.0, 30.0, 40.0,
                      260.0, 20.0, 40.0,
                    24.0, 20.0,
                    oPC, 0));
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 :
GestaltCameraMove(0.1,0.0, 30.0, 40.0,
                    260.0, 20.0, 40.0,
                    24.0, 20.0,
                    oPC, 0);
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.


et aussi une modification similaire quelque ligne plus bas, afin que l'appelle de la fonction remplisse la spécification suivante donnée par la librairie :

NWScript :
void GestaltFaceTarget(object oTarget, float fRange, float fPitch, object oPC, int iFace, int iParty = 0, int iCamID = 0);

// Moves the camera smoothly from one position to another over the specified time
    // STARTING TIME -
        // fDelay          how many seconds to wait before starting the movement
    // STARTING CONDITIONS -
        // fDirection      initial direction (0.0 = due east)
        // fRange          initial distance between player and camera
        // fPitch          initial pitch (vertical tilt)
    // FINAL CONDITIONS -
        // fDirection2      finishing direction
        // fRange2          finishing distance
        // fPitch2          finishing tilt
    // TIME SETTINGS -
        // fTime            number of seconds it takes camera to complete movement
        // fFrameRate      number of movements per second (governs how smooth the motion is)
    // MISC SETTINGS -
        // oPC              the PC you want to apply the camera movement to
        // iClockwise      set to 1 if you want the camera to rotate clockwise, 0 for anti-clockwise, or 2 for auto-select
        // iFace            sets whether the camera (0), the character (2) or both (1) turn to face the specified direction
        // iParty          sets whether to move the camera of only oPC (0), all the players in oPC's party (1) or all the players on the server (2)
void GestaltCameraMove(float fDelay, float fDirection, float fRange, float fPitch, float fDirection2, float fRange2, float fPitch2, float fTime, float fFrameRate, object oPC, int iClockwise = 0, int iFace = 0, int iParty = 0);
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.


Enfin dernière chose : si le second script révèle bien la carte au joueur entrant, le premier fait apparemment bien plus que d'afficher un message au dessus du joueur, es-tu bien sur qu'il s'agisse du script adéquate pour ce que tu désires faire ?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Josueff
Ecuyer
Inscrit le: 30 Déc 2003
Messages: 48
Répondre en citant
Posté le : 24/01/2004 10:50:49 Sujet du message :

En fait je t'ai donne ce script mais je l'ai grandement changé j'ai enlevé le camera move etc... et j'ai juste laissé le message au dessus du joueur et les effets speciaux. execute script ( le deuxieme )marche parfaitement a mon avis c'est une bonne technique de fusion. Merci a toi Very Happy Rocket
_________________
Rien ne sert de courir mon cher, il faut partir à point...Fumeur à chapeau
Module persistant en construction:
Merabell Cnr Cep HoTu
________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Lavok
Légende vivante
Inscrit le: 22 Oct 2002
Messages: 434
Localisation: Sphère planaire
Répondre en citant
Posté le : 24/01/2004 11:48:10 Sujet du message :

Pas vraiment. 'ExecuteScript()' ne sert pas à fusionner deux scripts ! C'est une fonction très utile par exemple quand une condition doit être remplie, mais pas pour tout de suite, étant donné qu'on ne peut retarder un 'if()' avec un 'DelayCommand()'. Bref, c'est pour des cas plus complexes Very Happy.

Je m'excuse pour t'avoir involontairement induit en erreur en pensant voir oPC à la place de oPlayer dans le deuxième script (j'avais mal regardé Surprised)! Ce qui aurait fait deux oPC, or ce n'est pas le cas. Toutefois, il y a quand même une répétition inutile.

Ici, inutile de faire appel à cette fonction, vu que cela alourdit tout (deux scripts au lieu d'un seul). Un bête copié/collé suffit à condition de respecter les deux règles d'or :
_un seul 'void main () {}' par script.
_deux variables ne peuvent avoir le même nom (ici le problème ne se pose donc pas, contrairement à ce que j'avais dit précédement, suite à ma faute de distraction Neuneu à lunette).

Voici le deuxième script :
NWScript :

void main()
{
object oPlayer = GetEnteringObject();
object oMT = GetObjectByTag("elianor");
ExploreAreaForPlayer(oMT, oPlayer);
}
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.


Nous retenons donc du deuxième script
NWScript :

object oPlayer = GetEnteringObject();
object oMT = GetObjectByTag("elianor");
ExploreAreaForPlayer(oMT, oPlayer);
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.


Mais dans le premier script, il y a déjà
object oPC = GetEnteringObject();

Autant remplacer oPlayer par oPC, voici ce que nous prenons du deuxième script finalement :
NWScript :

object oMT = GetObjectByTag("elianor");
ExploreAreaForPlayer(oMT, oPC);
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.


Tu peux ajouter cela n'importe où dans le premier script, SAUF avant la déclaration de oPC Wink.
_________________
ToB : Une seule chose semble certaine : tant que le trône de sang de Bhaal restera vide, le chaos règnera.

Moi : Une seule chose semble certaine : tant que la tête de singe de Bush restera vide, le chaos règnera.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Age
Novice
Inscrit le: 23 Jan 2004
Messages: 14
Répondre en citant
Posté le : 24/01/2004 12:14:55 Sujet du message :

Lavok, la methode que tu proposes est exeactement la même que ma seconde methode sans les ExecuteScript() Wink (si on excepte ma petite discussion sur la caméra qui est un peu Hors-Sujet)

Néanmoins je ne vois pas ou est le probleme avec ExecuteScript(), même si dans le cas present ça n'est peut etre pas la meilleur solution. EvecuteScript ne permet pas en soit de fusionner des scripts mais il peut être utilisé pour enchainer l'execution de 2 scripts differents dans un même evenement. Confused
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Lavok
Légende vivante
Inscrit le: 22 Oct 2002
Messages: 434
Localisation: Sphère planaire
Répondre en citant
Posté le : 24/01/2004 13:49:02 Sujet du message :

Ben... deux scripts au lieu d'un, c'est plus lourd et inutile. D'autant qu'on arrive rapidement à un nombre de scripts conséquent et s'y retouver devient parfois difficile. Alors autant s'encombrer le moins possible.
_________________
ToB : Une seule chose semble certaine : tant que le trône de sang de Bhaal restera vide, le chaos règnera.

Moi : Une seule chose semble certaine : tant que la tête de singe de Bush restera vide, le chaos règnera.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Juan
Voyageur
Inscrit le: 06 Nov 2005
Messages: 1
Répondre en citant
Posté le : 06/11/2005 14:22:56 Sujet du message :

Salut je fait un mod dans lequel le joueur doit fusionner avec un NPC (le but etant de prendre le controle du corp du NPC ainsi que de ses caracterisctiques) mais je sais pas comment simuler une fusion et prendre le controle du NPC si qqn c'est comment le faire merci de me le dire.
 
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 84.136ms