Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > Combiner deux scripts
Combiner deux scripts
Par Alustriel_LZ le 8/12/2002 à 13:41:43 (#2736751)
Je cherche à intégrer les HCM à mon module. Problème car certains scripts du fichierHCMbase.erf doivent être sélectionner à certains endroits où j'ai déjà des scripts perso actifs. Entre autres dans le Onacquire du module. J'ai voulu tout bêtement copier coller mais dans ce cas la le script ne se compile plus. SI quelqu'un peut m'aiguiller quant à la démarche à suivre ce serait très sympa, d'avance merci.
Alustriel_LZ
Eveningstar : campagne indépendante dans les Royaumes Oubliés
http://perso.wanadoo.fr/alustriel/nwnperso/nwn.htm
Par coolstar le 8/12/2002 à 13:50:55 (#2736804)
Difficile de répondre sans connaître le Script incriminé... :D
...
Par Jedaï le 9/12/2002 à 0:10:16 (#2740938)
[list=1]
*Copier le contenu entre les accolades du main() à partir de ton script perso
*Coller ce contenu juste avant l'accolade fermante du main() du script HCR
[/list=1]
//ton script perso :
void main()
{/*
Tu copie tout ce qui se trouve ici
*/}
//Le script HCR
void main()
{
//Tout le code HCR
//Tu colle ici
}
Si ça ne compile toujours pas, c'est sans doute que tu as des variables dont le nom est identique dans les deux scripts avec un type différent. Reessaie mais en changeant systématiquement le nom des variables dans ton script perso (rajoute "_p" à la fin par exemple :p ).
Si ça ne compile toujours pas, c'est que tu n'as pas suivi les instructions correctement.:o
Par ailleurs, le fait que ça compile ne garantit rien quand au fonctionnement du script par la suite... Il est même assez peu probable que ça marche, enfin ça vaut le coup d'essayer.;)
Par eMRaistlin le 9/12/2002 à 0:15:47 (#2740960)
une deserreur frequente lors d'un copie/coller de script, c'est d'(oublier de mettre a jour les GET :
si tu a un effet sur le OnPlayerDeath qui te plait, et que tu le veux sur le OnPlayerDying, si tu change pas le GetLastPlayerDead() pour un GetPlayerDying(), tu obtiendra rien.
(je sais que ce ne sont pas les bons Get, mais c'est pour illustrer...)
Par coolstar le 9/12/2002 à 0:21:19 (#2740989)
Heeuuu... et d'ailleurs, en parlant des "On" eMR, je n'ai pas encore saisi comment s'utilisait le "OnUserDefined" ??? :confus:
:D
Par Jedaï le 9/12/2002 à 0:42:24 (#2741077)
Par ailleurs il est quasi certains que si tu fusionne juste tes scripts, tu auras des interférences...:(
Par Jedaï le 9/12/2002 à 0:48:28 (#2741104)
Par coolstar le 9/12/2002 à 0:49:30 (#2741108)
Par eMRaistlin le 9/12/2002 à 0:50:07 (#2741112)
Tu declare que tu envoi un Signal vers un objet. Ce signal sera ensuite interpreté par cet objet pour verifier si il le comprend. Ca marche un peu comme les SILENT_SHOUT, mais sans notion de perception :
event eSpecialEvent = EventUserDefined(1234);
SignalEvent(oNPC,eSpecialEvent);
ici, tu declare que ce que tu veux declencher va porter le numero 1234. Tu envoi ce signal a a cible oNPC.
Dans le UserDefined du NPC, tu met ca :
event eSpecialEvent = GetUserDefinedEventNumber();
if (eSpecialEvent ==1234)
{}
En gros : le NPC recoit un signal. Il en recupere l'Id. Si celui ci correspond a une evenement parametré specialement pour lui, alors il balance le script prevu a cet effet...
(enfin, c'est comme ca que je l'ai compris.)
Par coolstar le 9/12/2002 à 0:52:17 (#2741123)
:merci: :merci:
Par Mastokk le 9/12/2002 à 1:10:30 (#2741194)
Provient du message de eMRaistlin
En gros :
Tu declare que tu envoi un Signal vers un objet. Ce signal sera ensuite interpreté par cet objet pour verifier si il le comprend. Ca marche un peu comme les SILENT_SHOUT, mais sans notion de perception :
event eSpecialEvent = EventUserDefined(1234);
SignalEvent(oNPC,eSpecialEvent);
ici, tu declare que ce que tu veux declencher va porter le numero 1234. Tu envoi ce signal a a cible oNPC.
Dans le UserDefined du NPC, tu met ca :
event eSpecialEvent = GetUserDefinedEventNumber();
if (eSpecialEvent ==1234)
{}
En gros : le NPC recoit un signal. Il en recupere l'Id. Si celui ci correspond a une evenement parametré specialement pour lui, alors il balance le script prevu a cet effet...
(enfin, c'est comme ca que je l'ai compris.)
et bien merci, je cherchais la logique de ce truc depuis pas mal de temps (ouais ok j'ai pas trop cherché :rolleyes: ...) :).
pour l'instant ça marche
Par Alustriel_LZ le 9/12/2002 à 13:33:59 (#2743547)
Merci à tous. :)
JOL Archives 1.0.1
@ JOL / JeuxOnLine